GNU/Linux で libgcrypt 1.5.0 を使用して、小さな aes256-cbc ファイル暗号化ソフトウェアを開発しています。
安全なメモリとディスクにスワップアウトされたデータについて疑問があります。
このコードがあるとしましょう:
char *crypto_key;
crypto_key = gcry_malloc_secure(256);
これら 2 つのことを行うことは有用であり、必要ですか?
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 */
}