加州大学圣迭戈分校与法国国家计算机与自动化研究所的研究人员展示了一种针对硬件安全模块(HSM)的攻击方法:在私钥从未离开设备的情况下,仍可伪造 RSA 签名。相关论文已于 9 月 20 日提交至 IACR Cryptology ePrint Archive。
报道强调,这不是对比特币或以太坊的直接攻破。比特币使用椭圆曲线数字签名算法 ECDSA,其曲线也支持 Schnorr 签名;以太坊以及多数主流区块链也采用同类方案。这篇论文讨论的是另一套签名体系,即 RSA。
不过,这项结果仍然检验了密钥保护机制的边界。根据 BitGo 的说法,机构级托管服务商会使用硬件安全模块来保管密钥,使私钥不会出现在设备之外。而这次研究中,私钥同样没有离开设备,研究人员仍然完成了签名伪造。
研究人员在实验中关闭了硬件安全模块的 FIPS 模式,也就是一项经过认证的安全设置,使设备可以对未格式化的数字进行签名;他们使用的还是自己控制的测试密钥。
随后,他们要求设备对大约 40 亿个由其自行选择的数字进行签名,再对返回结果做数学分析。报道用一个比喻解释这一过程:保险库的门从未打开,但会给你从门缝塞进去的空白纸张盖章;如果请求次数足够多,你最终可能学会自己仿造这个印章。
数字签名在这里意味着什么
用户每次确认一笔交易,钱包都会用私钥对交易进行签名。这个数字签名证明密钥持有人批准了该操作,也证明消息在传输过程中没有被篡改。
RSA 是构建这种证明的一种方式,由 Ron Rivest、Leonard Adleman 和 Adi Shamir 于 1977 年提出,名称中的字母就来自三人的姓氏。
RSA 的核心思路是:把两个极大的质数相乘并不难,但想把乘积重新分解回去,也就是做因式分解,会非常困难。论文作者写道,RSA 的安全性通常被理解为建立在这种困难之上,不过 RSA 被攻破从未被严格证明等同于完成因式分解。而这次研究团队并没有分解任何数。
哪些系统会受到影响
标准 RSA 签名通常会先做填充,也就是在正式计算前加入扰动和格式化步骤,例如 PKCS#1 v1.5 或 PSS。带填充的签名不会产生这次攻击可利用的预言机。论文作者表示,这项攻击对大多数现代 RSA 部署可能不会构成立即的运营威胁。该论文目前仍是预印本。
不过,也有一些系统会有意提供这种预言机能力。基于 RSA 的盲签名允许服务器在看不到具体内容的情况下完成签名,Privacy Pass 的一种变体就是这样工作的。Cloudflare 表示,苹果使用了 Privacy Pass 的一个版本,让用户可以在不暴露身份的情况下证明自己已经通过某项检查,例如 CAPTCHA。
盲签名在加密领域并不新鲜。密码学家 David Chaum 在 1989 年创立 DigiCash 时,就使用过这项技术。
更大的风险仍然是量子计算
「RSA 已被攻破」这类标题过去并不少见。2023 年 1 月,中国研究人员曾宣称一种量子方法会威胁 RSA,但当时只分解了一个 48 位数字,随后被专家否定。这一次的演示对象则是一个真实的 1,024 位密钥,不过前提条件也很明确:攻击依赖那个规模极大的预言机。
论文作者将这项结果称为在经典计算条件下支持逐步摆脱 RSA 的证据,背景是后量子迁移,也就是转向能够抵御量子计算机的加密方案。
对比特币来说,量子问题集中在椭圆曲线签名。加州理工学院研究人员在 3 月底估计,运行 Shor 算法、从而威胁这类签名,可能需要 10,000 到 20,000 个量子比特。
Google 已将 2029 年设为完成其内部系统后量子密码迁移的最后期限。

