OPENSSH保护内存中的金钥免受侧通道攻击 新的OpenSSH补丁使得执行诸如Spectre,Meltdown,Rowhammer和Rambleed等攻击变得更加困难。
OpenSSH
OpenSSH专案已经收到一个补丁,可以防止私钥被硬件漏洞窃取,这些漏洞允许黑客从非特权程序访问受限制的内存区域。其他软件应用程序可以使用相同的方法来保护其在RAM中的秘密,直到问题在未来的SDRAM芯片和CPU中得到修复。
该补丁释出之前,一组研究人员最近提出了一项名为RAMBleed的攻击,利用现代内存模组的设计从分配给特权程序和核心的内存区域中提取资讯。
RAMBleed使用一种名为Rowhammer的软件技术触发物理储存单元内的位翻转,然后通过侧通道恢复敏感资讯。研究人员通过使用以使用者级许可权执行的程式码从OpenSSH服务器恢复RSA 2048位签名金钥来证明他们的攻击。
现代操作系统将分配给核心的虚拟内存与使用者空间应用程序的虚拟内存隔离开来。这样做是因为核心内存包含敏感资料,包括加密金钥和密码,非特权应用程序无法直接访问这些资料。
任何违反此基本原则的行为都是一个严重的安全漏洞,因为攻击者可以通过多种方式获取计算机系统上的程式码执行许可权,包括恶意软件感染或各种使用者空间应用程序中的漏洞。在计算机上执行的所有非特权应用程序的攻击面远远大于核心本身的攻击面。
OpenSSH补丁加密私钥
OpenSSH
新的OpenSSH的补丁,提交OpenBSD的开发者达米安·米勒,是指“在休息对像幽灵,消融,Rowhammer和Rambleed猜测和记忆侧通道攻击RAM增加对私有金钥的保护。”
Spectre,Meltdown以及最近的微架构资料取样(MDS)是利用现代CPU中的推测执行功能的侧通道攻击 - 旨在提高效能的功能。其中一些攻击可用于读取受保护的核心内存。
新的OpenSSH补丁在私钥驻留在内存中时会加密私钥,并且不会与从16KB随机资料派生的另一个对称金钥一起使用。“攻击者必须先高精度地恢复整个预先金钥才能尝试解密遮蔽私钥,但当前一代攻击的误位元速率会累积到整个预密码时使这种情况不太可能发生,”米勒解释道。补丁评论。“在实施方面,金钥在载入时被加密遮蔽,然后在用于签名或储存/序列化时自动且透明地无遮蔽。”
补丁可以被广泛使用或被复制用于其他软件
OpenSSH
OpenSSH是SSH(Secure Shell)协议中最流行的实现,它用于远端访问和管理计算机系统和服务器,也用于自动机器到机器通讯。它最初是为OpenBSD设计的,但它在今天的大多数Linux发行版中都预设使用,并且在Windows 10中受支援。
OpenSSH使用的方法可以被其他软件专案复制,以保护自己的金钥和内存中的秘密。然而,正如补丁说明所暗示的那样,该技术使得成功的侧通道攻击不太可能发生,并非不可能。
攻击总是在不断改进,因此未来发现的一些RAMBleed或Meltdown / Spectre变种可能会破坏这种缓解。底层设计缺陷将在未来的硬件中得到修复,但取代目前使用的CPU和SDRAM芯片需要很多年。
可以合理地假设这些硬件攻击以及任何未来的硬件攻击都会对企业IT产生长期影响,因此开发人员可以通过软件来部分缓解缺陷并使攻击难以实现,这是非常有用的。“希望我们可以在几年后将计算机架构变得不那么不安全时将其删除,”米勒在补丁结束时补充道。