简述
加州大学圣迭戈分校和法国INRIA的研究人员在一台硬件安全模块内伪造了RSA签名,却没有把密钥从设备中取出。该设备属于托管方用来保护加密密钥的那类硬件。相关论文已于9月20日提交至IACR Cryptology ePrint Archive。
不过,加密货币持有者不必恐慌。这并不是比特币或以太坊的漏洞。比特币使用的是椭圆曲线数字签名算法,也就是ECDSA。(其曲线也支持Schnorr签名。)以太坊以及大多数大型区块链也使用同类方案。本文讨论的是Rivest-Shamir-Adleman密码学,也就是RSA,一种不同的签名方案。
尽管如此,这一结果仍然是对密钥如何被保护的一次压力测试。根据BitGo等机构托管服务商的做法,硬件安全模块是一种防篡改设备,公司用它来保护密钥,使密钥从不离开设备。这里密钥始终没有离开设备,但研究人员仍然伪造了签名。
研究人员关闭了硬件安全模块的FIPS模式——这是一种经过认证的安全设置——这样设备就会对未格式化的数字进行签名,并且他们使用的是自己准备的测试密钥。
他们让设备对大约40亿个由他们挑选的数字进行签名,然后对这些结果做数学分析。可以把它想成一只从不打开的保险库,但会给你从门缝塞进去的空白纸盖章。只要请求足够多次,就能学会自己做出这个印章。
什么是签名?
每次你确认一笔交易时,钱包都会用你的私钥对其签名。这个数字签名就是密钥持有人已批准该消息、且消息在传输途中未被篡改的证明。
RSA是构建这种证明的一种方式,由Ron Rivest、Leonard Adleman和Adi Shamir于1977年提出,名称中的“S”就来自Shamir。
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,也就是转向能够抵御量子计算机的加密方案。
对比特币而言,量子问题落在椭圆曲线签名上。Caltech研究人员在3月底估计,1万到2万个量子比特——也就是比特的量子版本——可能足以运行Shor算法,而这种算法会威胁这类签名。
谷歌已将2029年设为完成自身系统迁移到后量子密码学的截止时间。












