Real World Crypto 2023 回顾 - Trail of Bits 博客
上月,数百名密码学家齐聚东京,参加亚洲首届真实世界密码学会议(Real World Crypto Conference)。与往年一样,我们派遣了多名研究员和工程师进行演讲并参会。
RWC 与其他会议的不同之处在于,它高度重视影响现实世界系统的密码学研究、合作与进展。今年,我们注意到几个值得关注的趋势:首先,许多演讲详细描述了安全密码协议开发的艰辛过程;其次,后量子密码(PQC)正在兴起,并稳步从理论走向实践;最后,有时最有趣的密码学缺陷甚至不是密码学缺陷:糟糕的随机数生成器(RNG)和多线程问题同样能轻易破坏加密系统。
我们的 EDHOC 演讲
Trail of Bits 密码学家 Marc Ilunga 介绍了其关于 Ephemeral Diffie-Hellman Over COSE(EDHOC)协议安全性的研究成果(论文、视频、幻灯片)。EDHOC 是一种轻量级密钥交换协议,类似 TLS 但更紧凑。Marc 与其他研究员合作,验证了 EDHOC 协议的多个安全属性,甚至发现了导致 EDHOC 标准更新的理论安全问题。
该演讲强调了 LAKE 工作组如何公开呼吁社区分析 EDHOC,并从众多见解中受益,使协议整体更安全、更完善。随着高保证密码学的兴起,更多工具可用于协助此任务。例如,关于 HACSPEC 的演讲(论文、幻灯片、视频)为密码学的高保证标准铺平了道路,提供了可进一步形式化验证的密码学规范工具。
邀请朋友和对手参加你的协议派对!
我们的演讲呼应了会议的一个共同主题,鼓励人们与研究员和利益相关者合作分析密码和协议,而不是自己从头构建。近年来,许多密码协议(如端到端加密(E2EE)通讯应用)已被攻破,影响程度各异。著名例子包括 2022 年的 Telegram、Bridgefy 和 Threema(论文、幻灯片、视频)。这些例子有一个共同点:缺乏形式化分析。教训是 Telegram、Bridgefy 和 Threema 本不应推出自己的加密方案!但公平地说,部署新的临时协议并不罕见。备受赞誉的 Signal 协议的首次形式化分析是在 Signal 应用部署之后进行的。即便如此,仍需进一步分析以捕捉其他安全方面。
单独来看,“不要自己构建加密方案”这句话并无帮助。总有人在某个时候需要构建一些加密方案。Threema 的案例表明,即使应用使用了所有正确的密码学原语,仍可能被攻破。E2EE 消息领域的一个教训是,或许谁构建了什么并不重要,重要的是对协议执行的分析。对新协议建立信心需要形式化分析和传统的密码分析。
不要独自构建协议!使用所有可用的工具。如果你不熟悉这些工具之一,可以利用愿意将这些工具应用于你的协议的朋友大军。如果你想了解更多关于如何分析这些协议和可用工具的信息,可以预约与我们的密码学家讨论。我们的大门始终敞开!
后量子密码学稳步推进
NIST 去年宣布了后量子密码学(PQC)标准候选方案,因此 PQC 成为 RWC 的重要讨论话题并不令人意外。除了今年的 RWC 会议,还同时举办了额外的真实世界 PQC 研讨会,以涵盖更多主题。
PQC 正在稳步推进,首批原语的标准预计将在未来几年出现。然而,正如今年的演讲所示,后量子世界面临许多挑战。首先,在实际系统中实现这些方案具有挑战性,存在许多未知和未预见的问题。此外,需要更多 PQC 原语和协议。安全有效地设计跨多个用例的更高级原语将具有挑战性。以下是一些关于这些挑战的有趣讨论。
行业应用
谷歌的一场演讲描述了将 PQC 应用于其应用层传输安全(ALTS)协议。ALTS 是一种身份验证协议,类似 TLS,谷歌用于保护其基础设施(如数据中心)内的通信。威胁建模显示,这是最迫切需要 PQC 的地方,因此谷歌决定在 NIST 标准化过程完成之前,为 ALTS 实现 NTRU-HRSS,一种基于格的后量子密码系统。该演讲介绍了一些出现的实现问题;例如,该密码系统的公钥和密文比现有 ALTS 算法大 9-10 倍,在栈上分配大型 HRSS 密钥导致某些架构出现栈溢出,且实际性能与预期基准不符。然而,通过一些调整,他们成功将 NTRU-HRSS 集成到 ALTS 中,满足其要求。
Cloudflare 也发表了一场演讲,描述了一个内部 PQC 项目。Cloudflare 支持 Privacy Pass,这是一种密码协议,允许用户证明自己是人类而非机器人,跨多个网站而不泄露不必要的私人信息。为实现这一点,Privacy Pass 使用称为盲签名和匿名凭证的高级密码原语。不幸的是,NIST 标准化过程没有任何此类高级原语的候选方案,因此 Cloudflare 基于 NIST 选择的数字签名候选方案 Dilithium 设计了自己的后量子方案。结果出奇地高效:证明者时间约 300ms,验证者时间约 20ms,证明大小约 100KB。看到后量子密码学应用于更高级的密码原语和协议(如 Privacy Pass)令人兴奋。
NXP 展示了在嵌入式设备上实现 Dilithium PQC 候选方案的工作。对于嵌入式设备,防止侧信道攻击变得至关重要。该演讲指出了 Dilithium 研究中的一个空白。与另一个候选方案 Kyber 相比,Dilithium 的侧信道防护很少受到关注。NXP 的工作对最先进的缓解措施进行了一些改进。他们的工作还指出,大部分运行时用于通过调用 Keccak 哈希函数来保护实现,而在其嵌入式设备上,如果将这些调用替换为真随机数生成器(TRNG)调用,可以获得显著加速。然而,使用 TRNG 代替 Keccak 会违反规范,这很好地说明了为什么这些标准化过程困难且耗时。设计一个能在许多不同平台和用例上安全且最优运行的系统是困难的。
其他演讲中的 PQC
虽然 NIST PQC 标准化工作专注于密码原语,但这些原语最终必须用于协议中。将现有协议更新为包含后量子弹性原语并非易事,如在 RWPQC 的 IETF 背景下所解释的(幻灯片)。
由于后量子候选方案按密码学标准相对年轻,只有部分人信任其抗攻击能力。不止一个候选方案被可怕的周末运行的笔记本电脑攻破。因此,它们优选采用混合方法,与其经典对应物一起使用,以确保在安全方面两全其美。(你需要攻破两个原语才能攻击协议。)
RWPQC 和 RWC 上介绍了使用此方法的几种协议更新,从用于构建密钥交换协议的 Noise 协议框架的后量子变体开始(视频、幻灯片)。此外,RWC 和 RWPQC 的闪电演讲介绍了 Rosenpass,Wireguard 协议的后量子变体,用于构建 VPN。
密码学失败通常是非密码学的
往年真实世界密码学会议以非密码学错误破坏著名密码方案为特色。今年也不例外:多场演讲展示了对密码硬件、协议和方案的致命非密码学攻击。
密码学是解决软件中许多问题的强大工具;多年的研究和密码分析为我们提供了一套强大的原语,例如,可以安全加密和保护我们的数据。但软件仍然只与其最薄弱环节一样强大,当攻击者可以轻松完全绕过时,安全加密方案就无用武之地,正如我们将在今年的一些演讲中看到:
Wi-Fi 失败
在《Framing Frames: 通过操纵传输队列绕过 Wi-Fi 加密》(论文、幻灯片、视频)中,Mathy Vanhoef 提出了 802.11 标准(包括 WPA/2 和 WPA/3)中一类知名弱点的两个新变体。第一个变体通过诱骗接入点(AP)使用全零密钥或其他未定义的密钥上下文不安全地“加密”缓冲数据包,完全绕过 Wi-Fi 加密。因此,与其针对加密方案开发一些复杂新颖的密码攻击,此漏洞诱骗 AP 使用空加密密钥。
第二个变体涉及绕过客户端隔离,这是无线网络的常见功能,旨在供不受信任的客户端使用(例如,公共热点和全球网络如 eduroam)。提供客户端隔离的 AP 依赖于 802.11 栈两个名义上解耦层之间的临时同步:使用 802.1X 身份的安全层和使用 IP 地址和设备 MAC 的数据包路由层。通过观察解耦层之间的这种依赖关系,攻击者可以插入带有欺骗 MAC 的请求,并在正确计时时,诱骗 AP 使用新生成的密钥加密传入响应。结果是攻击者不仅可以欺骗受害者的 MAC(通常只是拒绝服务),还可以解密针对受害者的传入流量。此攻击不依赖任何新颖的密码攻击。很容易诱骗 AP 为你解密东西!
这两个新变体在过程或场景上并不特别相似,但起源相似:规范中关于供应商通常提供的扩展功能(客户端隔离)或优化(数据包缓冲)的模糊性。 together,这些清晰地代表了形式化建模价值的最大挑战之一: under-proof 模型必须对实际设备行为正确且完整。正如我们从编译器优化世界所知,可观察等效行为不一定对所有观察者安全——相同的基本真理适用于协议设计!
弱 RNG 和弱测试是有毒组合
在《Cisco ASA 中的随机性》(幻灯片、视频)中,Benadjila 和 Ebalard 逐步介绍了他们在测试大型 X.509 证书语料库时观察到的许多重复 ECDSA 密钥和随机数的调查。在评估约 313,000 个源自 Cisco ASA 盒的自签名 ECDSA 证书时,26%(约 82,000)有重复 ECDSA 随机数,36%(约 113,000)有重复 ECDSA 密钥。此外,在约 200,000 个自签名 RSA 证书中,6%(约 12,000)有重复 RSA 模数。
由于糟糕的 RNG 选择或糟糕的熵源导致的 RNG 故障在硬件和软件供应商中有悠久且传奇的历史,包括 Cisco 的 ASA(RWC 2019)。演讲者立即将 2019 年的披露作为可能来源缩小范围,表明先前的披露和修复不足,且可能在没有有意义测试的情况下部署。
密码安全伪随机数生成器(CSPRNG)的正确构建和使用微妙且困难,具有灾难性故障模式。同时,CSPRNG 构建和使用是熟悉的问题:NIST SP-800 90A DRBG 中的尖锐边缘已充分理解和记录,强种子始终是要求,无论底层 CSPRNG 构建如何。与关于绕过 Wi-Fi 加密的演讲非常相似,这里的失败根本在于设计和软件开发生命周期层,而不是低级密码缺陷。要点是维护强大的测试套件,覆盖快乐和悲伤代码路径,并纳入关于软件开发生命周期的最佳实践,以防止重新引入旧错误或代码问题。
需要全村之力
真实世界密码学 2023 告诉我们,当涉及多样化的研究员和分析时,新旧密码技术和协议受益最大。即使通过几轮审查,实现也应定期监控。无论是传输数据、设置 RNG 还是应用 PQC,误解和错误都可能损害数据完整性和隐私。我们感谢所有在今年 RWC 会议上演讲的研究员,他们为保护我们生活的世界付出了如此多的努力,我们自豪成为这个社区的活跃成员。