【发布时间】:2011-08-30 16:00:01
【问题描述】:
我注意到一些程序在使用后显式地将敏感内存分配归零。例如,OpenSSL 有一个方法可以清除 RSA 密钥占用的内存:
“释放 RSA 结构 rsa。此函数应始终用于释放 RSA 结构,因为它还通过首先清除内存来安全地释放子字段。”
如果任何 (C/C++) 程序包含这样的敏感变量,您是否应该像上面那样显式地将内存归零? (或者,归零记忆是一种偏执的行为还是只是一种保护措施)?
此外,当一个程序完成时,任何分配的内存最终都会分配给另一个程序。在 Linux 系统上,内存在分配给另一个程序之前是否已清理或清理?或者,第二个程序可以读取第一个程序的一些旧内存内容吗?
【问题讨论】:
-
我不确定那句话是否声称它正在归零内存。
标签: c linux security memory-management