【发布时间】:2013-02-04 10:21:10
【问题描述】:
我正在使用GNU/Linux下的libgcrypt 1.5.0开发一个小型aes256-cbc文件加密软件。
我对交换到磁盘的安全内存和数据存有疑问。
假设我有这个代码:
char *crypto_key;
crypto_key = gcry_malloc_secure(256);
这两件事同时做有用和必要吗?
1) 不允许该内存被分页: mlock(crypto_key, size)
2) 为了防止信息被写入核心转储:
struct rlimit limit;
limit.rlim_cur = 0;
limit.rlim_max = 0;
if (setrlimit(RLIMIT_CORE, &limit) != 0) {
/* Handle error */
}
【问题讨论】:
-
据我所知,安全内存应该被锁定。
标签: c memory-management libgcrypt