2022年现实世界密码学会议:硬件安全、侧信道与协议混淆的深度解析

本文深入解析2022年现实世界密码学会议的核心议题,涵盖可信硬件漏洞、安全工具使用障碍、无处不在的侧信道攻击以及协议混淆风险,揭示密码学理论与实际工程间的关键差距。

2022年现实世界密码学会议主题

上周,全球500多名密码学家齐聚阿姆斯特丹,参加2022年现实世界密码学会议(Real World Crypto 2022),这是两年多来首次线下聚会。

与往年一样,我们派遣了多名研究员和工程师参加会议,聆听演讲,并观察当前密码学研究和实际工程之间的主要主题。

以下是我们从2022年现实世界密码学会议中收集到的主要主题:

可信硬件并不那么可信

可信硬件(无论是可信执行环境(TEE)、硬件安全模块(HSM)还是安全飞地)的实现者继续犯下工程错误,从根本上违反了硬件所做的完整性承诺。

可信硬件中的基本非密码学漏洞并不新鲜。多年的漏洞导致英特尔决定从其下一代消费级CPU中移除SGX,而ROCA在2017年影响了四分之一的TPM。

新的是可信硬件在面向消费者的角色中的普及。普通用户越来越多地(并且不知不觉地!)通过密码管理器和2FA方案(如手机和电脑上的WebAuthn)与安全飞地和TEE交互。这从根本上扩大了与可信硬件漏洞相关的风险:可信硬件的中断现在对个人用户构成直接风险。

这就是我们2022年RWC的第一个亮点:“信任死于黑暗:揭示三星TrustZone密码设计”(幻灯片,视频,论文)。在本环节中,演讲者描述了三星TrustZone OS实现TEEGRIS中的两个关键弱点:允许攻击者提取硬件保护密钥的IV重用攻击,以及使甚至最新和已修补的三星旗舰设备易受第一次攻击的降级攻击。我们将看看两者。

TEEGRIS中的IV重用

TEEGRIS是一个完全独立的OS,与“正常”主机OS(Android)隔离并行运行。为了与主机通信,TEEGRIS提供了一个可信应用程序(TA),该程序在TEE内运行,但通过Keymaster(Google标准化的命令和响应协议)向正常主机暴露资源。

Keymaster包括“blob”的概念:加密密钥本身已使用TEE的密钥材料加密(“包装”)并存储在主机OS上。因为包装的密钥存储在主机上,它们的安全性最终取决于TEE在密钥包装期间正确应用加密的安全性。

那么TEEGRIS Keymaster如何包装密钥?使用AES-GCM!

正如您所记得的,结合操作模式(GCM)的块密码(AES)通常有三个参数:

  • 用于初始化块密码的密钥
  • 用于扰动密文并防止ECB企鹅的初始化向量(IV)
  • 我们打算加密的明文本身(在这种情况下,是另一个加密密钥)

AES-GCM的安全性取决于IV永远不会对同一密钥重用的假设。因此,能够强制密钥和IV在多个“会话”(在这种情况下是密钥包装)中使用的攻击者可以违反AES-GCM的安全性。演讲者发现了三星Keymaster实现中的错误,这些错误违反了两个安全假设:密钥派生函数(KDF)不能被操纵多次产生相同的密钥,以及攻击者不能控制IV。方法如下:

在Galaxy S8和S9上,用于生成密钥的KDF仅使用攻击者控制的输入。换句话说,攻击者可以强制给定Android应用程序的所有加密blob使用完全相同的AES密钥。在这种情况下,只要攻击者不能强制IV重用,这是可以接受的,除了……

Android应用程序在生成或导入密钥时可以设置IV!Galaxy S9上的三星Keymaster实现信任主机传递的IV,允许攻击者多次使用相同的IV。

此时,流密码本身的属性为攻击者提供了从另一个blob恢复加密密钥所需的一切:恶意blob、恶意密钥和目标(受害者)blob的XOR产生目标的明文,即未包装的加密密钥!

最终,演讲者确定这种特定攻击仅适用于Galaxy S9:S8的Keymaster TA从攻击者控制的输入生成密钥,但不使用攻击者提供的IV,防止了IV重用。

演讲者于2021年3月报告了此错误,并被分配了CVE-2021-25444。

降级攻击

作为对三星TrustZone实现分析的一部分,演讲者发现Galaxy S10、S20和S21设备上的Keymaster TA默认使用较新的blob格式(“v20-s10”)。这种新格式改变了用于种子KDF的数据:不是完全由攻击者控制,而是混合了随机字节(来自TEE本身),防止了密钥重用。

但别急:S10、S20和S21上的TEE默认使用“v20-s10”格式,但允许应用程序指定使用不同的blob版本。没有任何随机盐的版本(“v15”)是有效选项之一,因此我们又回到了可预测密钥生成的起点。

演讲者于2021年7月报告了此错误,并被分配了CVE-2021-25490。

要点

TEE并不特殊:它们受到与其他所有东西相同的密码工程要求的约束。硬件保证仅与运行在其上的软件一样好,软件应该(1)使用具有抗误用操作模式的现代密码,(2)最小化攻击者对密钥和密钥派生材料的潜在影响,以及(3)消除攻击者降级格式和协议的能力,这些格式和协议应该对主机OS完全不可见。

安全工具仍然太难使用

我们Trail of Bits是自动化安全工具的忠实粉丝:这就是我们编写并开源dylint、pip-audit、siderophile和Echidna等工具的原因。

这就是为什么我们对“‘它们并不难缓解’:密码库开发者对时序攻击的看法”(幻灯片,视频,论文)中的调查结果感到悲伤:在27个主要开源密码项目中调查的44名密码学家中,只有17人实际使用过自动化工具来查找时序漏洞,尽管100%的参与者都知道时序漏洞及其潜在严重性。以下是参与者选择不使用自动化工具的一些原因:

  • 对风险的怀疑:许多参与者表示怀疑他们需要额外的工具来帮助缓解时序攻击,或者存在实际的世界攻击证明缓解所需的努力是合理的。
  • 安装或使用困难:许多调查的工具具有复杂的安装、编译和使用说明。开源维护者在尝试使具有过时依赖项的项目在现代系统上工作时感到沮丧,特别是在它们最有用的情况下(CI/CD中的自动化测试)。
  • 维护状态:许多调查的工具是学术工作的源工件,要么未维护,要么维护非常松散。其他工具没有容易发现的源工件,只有二进制版本,或者具有商业或其他限制性许可。
  • 侵入性:许多工具对它们分析的程序引入了额外要求,例如特定的构建结构(或程序表示,如仅C/C++或某些二进制格式)和用于指示秘密和公共值的特殊DSL。这使得许多工具不适用于用Python、Rust和Go等语言编写的新项目。
  • 开销:许多工具涉及显著的学习曲线,会占用开发者本已有限的时间。许多工具即使在使用后也需要大量时间,例如手动审查和消除误报和漏报,调整工具以提高真阳性率等。

也许不直观的是,对工具的认识与它们的使用并不相关:大多数调查的开发者(33/44)知道一个或多个工具,但只有一半的人实际选择使用它们。

要点

用演讲者的话说,从对时序漏洞的认识(几乎普遍),到工具认识(大多数开发者),再到实际工具使用(一小部分开发者),存在明显的“泄漏管道”。阻止这些泄漏需要工具变得:

  • 更容易安装和使用:这将减少在选择工具和实际能够应用它之间所需的认知开销。
  • 容易获得:工具必须可以在不需要深入了解活跃密码研究的情况下发现;工具应该可以从知名来源(如公共Git主机)下载。

此外,演讲者将编译器本身确定为一个重要的新前沿:编译器始终存在,开发者已经熟悉,并且是引入更高级技术(如秘密类型)的理想场所。我们Trail of Bits恰好同意!

无处不在的侧信道

侧信道漏洞的伟大之处在于它们的惊人普遍性:似乎有无穷无尽的越来越有创意的技术从目标机器提取信息。

侧信道通常沿两个维度描述:被动-主动(即,攻击者是否需要与目标交互,以及到什么程度?)和本地-远程(即,攻击者是否需要位于目标的物理附近?)。因此,远程、被动侧信道从攻击者的角度来看是“两全其美”:它们完全隐蔽,不需要物理存在,使它们(原则上)受害者无法检测。

我们喜欢“借我你的耳朵:PC上的被动远程物理侧信道”(视频,论文)中描述的侧信道。总结如下:

  • 演讲者观察到,在笔记本电脑上,板载麦克风物理连接到音频接口(因此连接到CPU)。数字逻辑控制有意的数据流,但这只是电线,因此是下面的无意噪声。
  • 实际上,这意味着板载麦克风可能充当CPU本身的EM探头!
  • 我们在互联网上与可能不受信任的方共享音频:公司会议、会议、与朋友和家人的VoIP、视频游戏的语音聊天等。
  • ……那么我们能从这些数据中提取任何感兴趣的东西吗?

演讲者提供了三个案例研究:

  • 网站识别:受害者在浏览网站时通过VoIP通话,攻击者(与受害者在同一通话中)想知道受害者当前在哪个网站上。
    • 结果:使用具有14路分类器(用于14个流行新闻网站)的卷积神经网络,演讲者能够达到96%的准确率。
  • 密码密钥恢复:受害者在本地机器上执行ECDSA签名时通过VoIP通话,攻击者想要提取用于签名的密钥。
    • 结果:演讲者能够使用与Minerva相同的侧信道弱点,但无需本地仪器。即使有后处理噪声,他们在大约20,000次签名操作后演示了密钥提取。
  • CS:GO透视黑客:受害者在玩在线第一人称射击游戏时通过VoIP与其他玩家交谈,攻击者想知道受害者在游戏地图上的物理位置。
    • 结果:当受害者隐藏在 opaque 游戏对象(如汽车)后面时,频谱图中视觉上可识别出不同的“斑马图案”。演讲者观察到这绕过了标准的“反作弊”缓解措施,因为没有操纵客户端代码来揭示受害者的游戏内位置。

要点

侧信道是不断给予的礼物:它们难以预测和缓解,并且它们破坏了在抽象中完全健全的密码方案。

演讲者正确指出,这种特定攻击颠覆了关于物理侧信道的传统假设:它们不能远程利用,因此可以从攻击者纯粹远程的威胁模型中排除。

密码上下文中的LANGSEC

LANGSEC是“安全

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计