新闻加密货币Coldcard低熵漏洞促使比特币持有者重新审视硬件钱包信任

Coldcard低熵漏洞促使比特币持有者重新审视硬件钱包信任

作者: Cointelegraph·

要点速览

  • 攻击者利用Coldcard硬件钱包中的低熵漏洞暴力破解私钥,窃取了超过1亿美元的比特币。
  • 该漏洞源于2021年3月发布的固件版本4.0.1,该版本将STM32硬件随机数生成器替换为MicroPython的Yasmarang伪随机数生成器。
  • Coinkite估计Mk2和Mk3设备生成的种子约含40位熵,而Mk4、Mk5和Q型号约为70位,两者都远低于安全12词种子短语所需的128位。
  • 添加了额外骰子熵或使用BIP-39密码短语配合非标准派生路径的用户免受了该漏洞的影响。
  • Coinkite已针对受影响设备发布官方种子生成警告,包括掷骰子和纸质查找表在内的多种物理熵方法正被推广为更安全的替代方案。
Coldcard低熵漏洞促使比特币持有者重新审视硬件钱包信任

随着Coldcard硬件钱包严重低熵漏洞的披露——该漏洞与7月30日开始被公开观察到的盗窃事件相关——比特币持有者正在重新审视其自托管设置中的信任假设。攻击者利用该漏洞暴力破解私钥,导致超过1亿美元的BTC被盗。

由Coinkite制造的Coldcard一直被广泛认为是比特币生态系统中安全性最高的硬件钱包之一,其特别以空气隔离设计和对多重签名及PSBT工作流等高级功能的支持作为市场定位。这一安全定位的失守加剧了业界对硬件钱包供应商如何实现和维护其最关键安全代码路径的审视。

Coldcard熵值漏洞的工作原理

Coldcard设备配备了STM32"真随机数生成器"(TRNG),旨在依靠物理过程生成不可猜测的种子短语。然而,当Coldcard创建者NVK发起固件重写,将项目从GPL许可的自由软件模型转变为只读模型时,一个严重漏洞似乎被引入了。

从2021年3月发布的固件版本4.0.1开始,设备使用了MicroPython的Yasmarang伪随机数生成器(PRNG),而非正确利用STM32硬件RNG。这一偏差实际上绕过了基于硬件的熵源。随机数生成在计算机科学中始终是一个根本性的难题,这也是为什么安全、不可猜测的私钥的创建必须始终在一定程度上依赖外部物理过程。脱离GPL许可还降低了独立开发者实时审计固件变更的能力——开源硬件钱包社区长期以来一直将这种紧张关系标记为系统性风险。

分析师普遍将Yasmarang的使用描述为预设的后备方案。然而,Coinkite作为Coldcard背后的制造商,在近期的一篇X帖子中对此描述提出了异议。

Coldcard可能默认使用一种明显不安全的种子生成方法,这一可能性在X上引发了关于该漏洞是否为故意植入的后门的猜测。调查型比特币记者Hodlnaut推测该漏洞源于粗心的开发实践以及通过随意修改代码来压制错误的尝试。

根据Coinkite自己的估算,Mk2和Mk3设备生成的种子仅约40位熵,而Mk4、Mk5和Q型号约为70位。两个数值都远远达不到安全12词种子短语所需的128位。

相关阅读:Coldcard黑客将64枚BTC和200枚ETH转入加密货币混币器

特定钱包被攻破的可能性取决于用户是否添加了额外的骰子熵,或是否使用了BIP-39密码短语结合非标准派生路径。

James O'Beirne随后推出了cktripwire,这是一个部署蜜罐地址的网站,旨在识别攻击者正在积极扫描哪些钱包配置。

Coinkite还针对受影响设备发布了官方种子生成警告。

物理熵如何保护了部分钱包

Coldcard漏洞事件以惨痛的方式再次印证了比特币社区的基本准则之一:不要信任,要验证。

那些在最关键的安全阶段拒绝依赖不透明硬件组件生成熵——而是使用足够数量的物理掷骰——的用户,完全免受了该漏洞的影响。掷骰子是一个简单、视觉透明的过程,任何普通用户都可以自行审计并直观地理解。相比之下,验证TRNG则需要对设备电子元件进行详细的物理检查,并对其固件进行全面审查。

虽然一些评论人士将近期事件作为自托管存在根本缺陷的证据,但遵循熵最佳实践只给远程攻击者留下了极少的可乘之机。当种子短语通过物理熵而非依赖硬件的过程生成时,钱包创建中最关键的单点故障就被消除了。

从种子派生的扩展公钥(xpub)和收款地址可以通过将种子导入多个独立设备进行交叉验证。跨空气间隙的随机数泄露也可以通过确认两台设备在处理相同的未签名交易时产生相同的RFC 6979合规签名来检测。

因此,安全的熵生成是安全钱包的绝对前提。自Coldcard漏洞公开以来,各种可信熵生成的方法和提案在X上广泛传播。

最流行的方法是对设备将骰子面值正确转换为BIP-39种子短语的能力进行交叉验证,方法是对骰子结果应用SHA-256哈希。使用100次以上的掷骰即可为24词种子生成足够的熵。

更简单的纸质方法,如Bitbox发布的查找表,将BIP-39词表进行分区,使得六次掷骰加一次抛硬币的组合可以直接映射到一个种子词,无需使用任何电子设备。

更高级的工具,如codex32骰子去偏工作表,采用冯·诺依曼提取器——一种完全可手工计算的过程——即使使用有偏骰子也能生成安全的种子短语。

掷骰子的替代方法包括打印完整的BIP-39词表,将词语剪成大小相同的纸条,充分打乱后随机抽取24个词。Seedsticks或Entropia等产品为这种方法提供了更便捷和耐用的实现。

诸如Frostsnap等专用硬件尝试以可验证的方式将熵生成分布到多个设备上。一些用户甚至开始设计自己的物理熵设备,能够几乎与专用电子硬件钱包一样快地生成种子短语。

杂志:Coldcard攻击是否意味着所有硬件钱包现在都不安全了?