后量子密码学崛起与真实世界加密漏洞剖析

本文深入解析2023真实世界密码学会议核心议题,涵盖EDHOC协议安全分析、后量子密码标准化进展、谷歌/Cloudflare/NXP的PQC实践案例,以及非密码学因素导致的加密系统漏洞,揭示现代密码学部署中的关键挑战与解决方案。

Real World Crypto 2023 回顾 - Trail of Bits 博客

上月,数百名密码学家齐聚东京,参加亚洲首届真实世界密码学会议(RWC)。与往年一样,我们派遣多名研究员和工程师进行演讲并参会。

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: Bypassing Wi-Fi Encryption by Manipulating Transmit Queues》中,Mathy Vanhoef 提出了 802.11 标准(包括 WPA/2 和 WPA/3)中一类已知弱点的两个新变体。第一个变体通过诱骗接入点(AP)使用全零密钥或其他未定义的密钥上下文不安全地“加密”缓冲数据包,完全绕过 Wi-Fi 加密。因此,与其针对加密方案开发复杂新颖的密码攻击,不如利用此漏洞诱骗 AP 使用空加密密钥。

第二个变体涉及绕过客户端隔离,这是无线网络常见功能,旨在供不受信任的客户端使用(如公共热点和全球网络 eduroam)。提供客户端隔离的 AP 依赖于 802.11 栈两个名义上解耦层之间的临时同步:使用 802.1X 身份的安全层和使用 IP 地址和设备 MAC 的数据包路由层。通过观察解耦层之间的这种依赖关系,攻击者可以插入带有欺骗 MAC 的请求,并在时间正确时诱骗 AP 使用新生成的密钥加密传入响应。结果是攻击者不仅可以欺骗受害者的 MAC(通常只是拒绝服务),还可以解密针对受害者的传入流量。此攻击不依赖任何新型密码攻击。很容易诱骗 AP 为你解密东西!

这两个新变体在过程或场景上并不特别相似,但起源相似:规范中关于供应商通常提供的扩展功能(客户端隔离)或优化(数据包缓冲)的模糊性。这些共同清晰地代表了形式化建模价值的最大挑战之一:被证明的模型必须正确且完整地反映实际设备行为。正如我们从编译器优化世界所知,可观察的等效行为不一定对所有观察者安全——同样的基本真理适用于协议设计!

弱 RNG 和弱测试是有毒组合

在《Randomness of random in 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 会议上演讲的研究人员,他们为保护我们生活的世界付出了巨大努力,我们自豪成为这个社区的活跃成员。

如果你喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

页面内容 我们的 EDHOC 演讲 邀请你的朋友和对手参加你的协议派对! 后量子密码学稳步推进 行业应用 其他演讲中的 PQC 密码学失败往往非密码学原因 Wi-Fi 故障 弱 RNG 和弱测试是有毒组合 需要全村之力

最近帖子 构建安全消息传递很难:对 Bitchat 安全辩论的 nuanced 看法 用 Deptective 调查你的依赖项 系好安全带,Buttercup,AIxCC 评分回合正在进行中! 使你的智能合约超越私钥风险 Go 解析器中意想不到的安全隐患 © 2025 Trail of Bits. 使用 Hugo 和 Mainroad 主题生成。

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