保护RAM中的加密密钥?

时间:2013-06-17 12:50:04

标签: c security encryption cryptography aes

有没有办法保护存储在RAM中的加密密钥免受冰箱攻击? (在重新启动恶意代码以访问RAM内容之前将计算机挂在冰箱中)

这似乎是我的应用程序中安全性的合法问题。

编辑:还值得一提的是,我可能会在裸机上做一个概念验证操作系统,所以请记住,依赖性越少越好。然而,TRESOR确实听起来真的很有趣,如果它看起来可管理,我可能会把它的源代码移植到我的概念验证操作系统中,但我对其他解决方案(即使是那些依赖程度很高的解决方案)持开放态度。

3 个答案:

答案 0 :(得分:9)

您可以使用TRESOR Linux内核补丁之类的东西将密钥保存在仅限0(最高权限级别)CPU调试寄存器中,当与支持AES-NI指令的Intel CPU结合使用时,与通用加密实现相比,不需要导致性能损失(尽管需要重新计算密钥)。

答案 1 :(得分:0)

没有程序化的方法。您无法阻止攻击者冻结您的计算机并移除RAM芯片进行分析。

如果有人获得了对您硬件的访问权限 - 您拥有的所有内容都掌握在攻击者手中。

始终牢记: http://cdn.howtogeek.com/wp-content/uploads/2013/03/xkcd-security.png

答案 2 :(得分:0)

正如谢尔盖指出的那样,如果硬件在他们手中,你就无法阻止某人攻击RAM。防御硬件的唯一可能解决方案是使用防篡改硬件安全模块。市场上有几种品种:TPM芯片和智能卡浮现在脑海中。智能卡可能对您更有效,因为用户在离开时应将其从设备中移除,并且您可以在移除卡时简单地擦除密钥。

我会做一些风险分析,帮助你弄清楚冻结的RAM攻击的可能性。哪些电脑最容易被盗?笔记本电脑,服务器,平板电脑或智能手机?您的攻击者可能从被盗的计算机中获得什么价值?您是否希望阻止他们解密加密的磁盘映像?从恢复当前加载到RAM中的文档?从恢复一个会导致解密整个磁盘的密钥?从恢复提供内部人员访问网络的凭据?

如果风险真的很高,但您有远程访问的业务需求,请考虑仅在安全的企业服务器上保密,并且只允许浏览器访问它们。使用双因素身份验证,例如硬件访问令牌。也许您需要仅从只读媒体和只读书签列表启动远程计算机,以帮助确保防范病毒和其他基于浏览器的攻击。<​​/ p>

如果您可以对风险进行货币价值,您应该能够证明保护数据所需的其他基础设施。