IT时代网8月2日消息,比特币硬件钱包厂商 Coinkite 摊上了大事。旗下 Coldcard 系列钱包近日遭遇连环盗币,海外安全媒体报道称,自上周四以来,攻击者已从 4585 个地址转走 1367 枚比特币,按当前汇率折算价值约 8670.12 万美元,约合人民币 5.87 亿元。

盗币不是一次完成的,而是分三轮推进。有区块链研究机构在 8 月 2 日披露了第三轮攻击的数据:世界协调时 7 月 31 日 12 时 23 分至 8 月 1 日 6 时 42 分之间,207.73 枚比特币被转出,波及 1912 个地址。往前追溯,第一轮发生在世界协调时 7 月 30 日 1 时 10 分,只持续了 41 分钟,却卷走 1082.65 枚比特币,涉及 1195 个地址;第二轮在当地时间 7 月 31 日,规模小一些,71.16 枚比特币、1478 个地址。

前两轮的资金流向其实不难追。攻击者把赃款先归集到少量公共地址,再统一汇入 P2WPKH 钱包,交易路径全程公开,链上一查便知。第三轮换了打法——每个受害者的资产被打进各自独立的地址,最终分散躺在 293 个 P2WSH 地址里。这类地址只有在资金首次支出时才会暴露脚本,追踪难度陡增。

漏洞的根子埋得很深,可以一直追到 2021 年 3 月 17 日发布的那版固件。当时厂商把 MICROPY_HW_ENABLE_RNG 设为 0,可 libngu 加密库只检查这个宏存不存在,压根不判断它是否被启用。结果就是生成助记词时,系统悄悄退回到 MicroPython 自带的 Yasmarang 伪随机数生成器,随机源仅有芯片唯一 ID 和计时器寄存器,不再补充新的熵。

后果有多严重?Coldcard Mk3 的助记词随机性只剩 40 bit,而业界常规是 128 bit。Mk4、Q 和 Mk5 虽然引入了安全元件提供的随机数,候选密钥空间也不过 40 亿种组合,一套 GPU 集群跑暴力破解就能啃下来。

整个盗币过程压根不需要碰到设备。攻击者在离线环境里穷举所有可能的助记词,推导出地址,再和公开的 UTXO 数据集比对,对上号的钱包就是猎物。

Coinkite 已在 7 月 31 日推送紧急固件更新,公司 CEO Rodolfo Novak 公开致歉,表态将为这次漏洞造成的损失承担全部责任。需要提醒的是,光刷新固件并不能自动脱险——旧助记词已经处在可被破解的密钥空间里,用户得用新固件重新生成助记词,再把资产迁移过去,风险才算真正解除。

打开网易新闻 查看精彩图片

注:本文中包含AI辅助创作的内容。