RAM 加密。是否可以?

信息安全 加密 记忆 闪存 虚拟内存
2021-08-23 04:00:37

在不添加任何额外硬件的情况下,是否可以进行 RAM 加密?如果是,是否有任何已知和当前使用的 Linux 或 Windows 系统实现?如果这在没有额外硬件的情况下是可能的,是否有任何可用的软件可以执行此任务而无需重新安装操作系统?

2个回答

在不添加任何额外硬件的情况下,是否可以进行 RAM 加密?

当然。
您可以在 RAM 中加密任何您喜欢的内容,就像加密其他所有内容一样。
更有趣的问题是“钥匙在哪里”。您也可以将密钥留在 RAM 中,或者将它们交给操作系统,操作系统也会将它们存储在 RAM 中。您可以应用Schneier 等
人提出的一些奇特技术。人。在密码学工程中,即一次性加密数据密钥,将加密数据存储在 RAM 中并仅在需要时解密数据。

如果是这样,是否有任何已知和当前使用的 Linux 或 Windows 系统实现

Windows 提供数据保护 API (DPAPI),让您可以使用用户的登录凭据加密数据。我知道至少有一些密码管理器(例如KeePass)使用它来保护 RAM 中有价值的密码。

使用受信任的平台模块(TPM;随着 Windows 现在需要它们而变得越来越流行)或其他一些专用硬件确实可以通过将密钥卸载到您信任的地方来最好地解决问题,以防 RAM 受到损害。

但是,目前正在推出一种解决方案:英特尔的软件保护扩展(SGX),它与 ​​Skylake 和更新的 CPU 一起提供。它们允许您将程序加载到处理器中,远程验证其状态是否正确,然后保护其执行。CPU 将自动加密离开处理器的所有内容(即卸载到 RAM 的所有内容),从而确保您的安全。大规模部署的唯一问题是 SGX 要求您拥有您的处理器将接受的签名代码,即英特尔必须为此目的向您颁发证书。

绝对可以,特别是如果您将 RAM 用作非持久性存储,在这种情况下,您可以像任何磁盘、文件或目录一样在将其分区并将其挂载到命名空间后对其进行加密。

但是,可执行程序数据有时需要以“明文”形式存在于内存中,因此尝试以这种方式保护内核和程序内存是无效的。

必要的工具简单且无处不在(openssl 等)。