我有时听说 RAM 使用了加密,但我真的不明白为什么需要这样做。
为什么需要对 RAM 进行加密?这是由硬件、操作系统还是应用程序完成的?
它可以防止什么样的攻击?只有当人们可以物理访问计算机,或者甚至当人们可以通过网络访问计算机时,它才有用吗?
我认为操作系统正在保护,因此应用程序无法访问彼此的内存。这还不够吗?
真的,“加密 RAM”有什么好处?
我有时听说 RAM 使用了加密,但我真的不明白为什么需要这样做。
为什么需要对 RAM 进行加密?这是由硬件、操作系统还是应用程序完成的?
它可以防止什么样的攻击?只有当人们可以物理访问计算机,或者甚至当人们可以通过网络访问计算机时,它才有用吗?
我认为操作系统正在保护,因此应用程序无法访问彼此的内存。这还不够吗?
真的,“加密 RAM”有什么好处?
加密 RAM 是为了防止未经授权访问 RAM 内容。
在正常操作条件下,操作系统维护 RAM 访问权限并阻止应用程序从其他应用程序看到内存;因此,我们谈论的是攻击者“从外部”插入 RAM 的攻击上下文。它已在实验室条件下得到证明。从理论上讲,正确应用的加密可以阻止此类攻击。
如果 RAM 被加密,它必须自动解密以供 CPU 使用。CPU 不直接对 RAM 进行操作;它将代码和数据从 RAM 加载到其内部缓存中。这个加载/卸载过程对应用程序和操作系统都是透明的。这意味着自动 RAM 加密系统是可以想象的,但必须在硬件中完成,最好在 CPU 本身中完成(如果在 RAM 芯片中完成,攻击者可以冻结 RAM,然后将其插入自己的机器; 同样,外部 RAM 控制器中的解密不会阻止主动攻击)。
这种带有 RAM 加密的 CPU 存在(但仍然很少见)。这篇来自 Anderson 和 Kuhn 的15 年前的文章引用了Dallas DS5002FP微处理器,这是一种兼容 8051 的 CPU,它今天仍在生产中(文章解释说加密实际上很弱)。
请注意,加密的 RAM(仅在 CPU 中解密)不能很好地与DMA配合使用——因此在具有加密 RAM 的 PC 中磁盘和网络访问会非常慢。
加密 RAM 有助于防止实时取证分析。
要回答您为什么要加密 RAM 以及对它构成的威胁的问题:
首先,RAM 抓取器可以为攻击者读取 RAM 内存。想想计算机使用的敏感数据:加密密钥、个人信息、信用卡,甚至可能是销售点设备的 PIN 码。该数据需要未加密才能使用,如果它在未加密的 RAM 中徘徊(或者攻击者很幸运),那么它很容易受到攻击。
由于 RAM 抓取器是恶意软件,因此如果可以远程安装并能够通过网络将数据发送回攻击者,则攻击者不需要对计算机进行物理访问。
如果攻击者可以物理访问您的计算机(例如被盗的笔记本电脑),那么还有其他攻击可以利用 RAM 失去电源和实际失去其状态之间的时间(冷启动攻击)。如果密钥保存在 RAM 中,这也可用于规避硬盘加密。
我不知道加密 RAM 能在多大程度上减轻这些攻击,但这可能取决于解密密钥的保存位置。
除非操作系统对它有特殊的支持(甚至可能除非还有硬件支持),否则尝试加密 RAM 就相当于尝试制造永动机,或者尝试通过拉动你的鞋带来飞行。你可以试试,但你不会走得太远。
你将把密钥存放在哪里?内存。
处理数据时,您会将数据存储在哪里?内存。