我试图确保敏感数据(密码,...)不会以明文形式保存在进程内存中,并且我发现发送到 OpenSSL 或从 OpenSSL 接收的所有数据都保存在内存中...
这是一个问题,因为从 SSL 连接发送或接收的数据可能包含我们不想保留在进程内存中的敏感信息。
笔记:
- 只有在使用 SSLv3 或 TLSv1 时才会出现这种情况。使用 SSLv2 时,数据不会保存在内存中。
- 我正在使用来自 Ubuntu Lucid 的 0.9.8k-7ubuntu8.6 版本。如果这与安全修复有关,我认为它是最新的。
复制很容易:
- 使用 '
openssl client -tls1 -connect hostname:443
' 连接到 SSL 服务器 - 在 TLS 连接中发送数据
- 强制生成核心文件(
kill -SEGV
例如) - 检查核心文件,接收和发送的数据将存在
OpenSSL 是否有理由需要保留该数据?是否可以选择改变其行为?