我正在使用 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 */
}