层层防护依旧失守?Coldcard 随机数漏洞揭开硬件钱包安全盲区

BiyaNews
一个配置项开关,如何让 1367 枚比特币暴露在风险中?

早在硬件钱包接入网络之前,钱包的安全防线就有可能失守。一款空气隔离硬件钱包或许能将私钥隔绝互联网数年之久,但从助记种子生成的那一刻起,风险就已经埋下。

Coldcard 近期对外披露的随机数漏洞,完美印证了这一安全陷阱。受漏洞影响的钱包能够生成一组看起来完全正常的 12 词或 24 词恢复助记词,用户可以将助记词妥善保管、离线签署交易。但底层随机数生成器的可选范围实际上大幅缩小。攻击者可以在其他设备上穷举所有可能的种子组合,还原出候选种子;再对照比特币公开账本,筛选出能够匹配真实地址的有效种子。

在我看来,钱包的安全命运在种子创建之时就已注定。在 PIN 码、钢制助记备份板、防篡改封袋、空气隔离这些防护手段发挥作用之前,种子首先必须依托真正可靠的随机源生成。

一套优质的现代随机数生成器能够输出充足的熵。但如果攻击者掌握随机数生成器的运行逻辑,就有可能逆向推导整个生成流程。

手动掷骰子能够为用户提供一套随机源,随机性直观可控,并且独立于厂商编写的代码之外。

比特币钱包安全潜藏的薄弱环节

Coldcard 种子生成暗藏安全隐患。攻击者可在设备外部生成候选种子,转换为公钥地址,并与比特币公共账本上的地址交易记录进行匹配筛查,以此实施攻击。

漏洞的技术根源微小到令人后怕。2021 年 3 月 1 日的一次代码改动,把 Coldcard 的种子生成功能迁移至全新代码库。量产固件中将配置项 MICROPY_HW_ENABLE_RNG 设为 0,代表硬件随机发生器被禁用;但代码集成逻辑仅检查该配置项是否存在,并未读取配置数值。只要这个配置项存在,系统就会放弃硬件随机发生器,转而启用 MicroPython 中确定性算法 Yasmarang 作为备用方案。根据 Block 联合分析报告,这套存在缺陷的逻辑随 4.0.0 版本固件,在 3 月 17 日正式对外发布。

生成的助记词外观毫无异常,背后可供穷举的搜索空间却被急剧压缩。根据 Coinkite 初步测算,受影响的 Mk2、Mk3 机型种子有效搜索空间仅约 40 比特;受影响的 Mk4、Mk5 以及 Q 系列机型种子有效搜索空间约 72 比特。

Block 团队针对后续机型单独提出限制条件:当备用算法状态与调用历史固定时,最多仅存在 2^32 条可区分的随机流。Coinkite 给出的数据,估算了攻击者能够遍历的有效搜索范围。

两份分析报告均证实,固件修复前的后期机型全部处于风险范围内。Coinkite 安全公告写明:标准 5.6.0 版本、Edge 6.6.0X 版本之前的 Mk4、Mk5 固件;标准 1.5.0Q 版本、Edge 6.6.0QX 版本之前的 Q 系列固件均受影响。针对 Mk2 和 Mk3,Coinkite 列明风险版本为 4.0.1 至 4.1.9,而 Block 团队认为漏洞自 4.0.0 版本就已经存在。对于这个存在争议的版本边界,建议用户保守看待。

本次事件充分说明:仅仅安装新版固件无法修复现有钱包的安全隐患。升级至修复版本,只能保障后续新生成的种子安全;所有已经生成的旧种子,只会保留创建当时获得的熵值,由该种子衍生出的全部地址,共享同一个底层密钥。

所有使用风险固件版本的用户都应当查阅官方安全公告。除非你能够确认种子由足量手动掷骰子生成,否则必须使用修复后的固件、依靠可信随机源生成全新种子,并将资金转移至新钱包。如果只是用旧助记词生成新地址,原有安全缺陷会原样保留。

比特币 Optech 在 7 月 31 日发布动态估算数据,受威胁资产规模超过 1000 枚比特币。截至 8 月 2 日,Galaxy Research 估算,共计 4585 个地址内约有 1367 枚比特币面临风险。一名网名为 Graham_Quantum 的 X 平台用户称,7 月 29 日已有 18.25245043 枚比特币从相关钱包转出。

消息曝光后,大量用户出于避险目的转移资产,衍生出规模更加庞大的资金流动。漏洞消息披露之后,有 77402 枚比特币从老旧未花费交易输出(UTXO)池转出。

两类数据需要区分:

层层防护依旧失守?Coldcard 随机数漏洞揭开硬件钱包安全盲区

这场安全事故同时引发两大冲击:一是黑客盗取资产,二是规模更大的用户主动迁移自保浪潮。

Coldcard 这起价值约 8900 万美元的钱包漏洞,引发自 FTX 暴雷以来最大规模的比特币链上资金转移,还严重干扰市场信号解读。数万用户紧急转移旧钱包内的比特币,导致各项核心链上指标释放的看跌信号难以辨别真伪。

手动掷骰子能够带来哪些改变

Coldcard 官方骰子相关文档测算:一枚公平的六面骰子,每一次独立投掷可产生约 2.585 比特熵。投掷 50 次,能够产生约 129.25 比特原始熵,满足常规 128 位安全标准;投掷 99 次可产生约 255.91 比特原始熵,基本达到 256 位安全标准(该数值尚未经过钱包内置转换算法处理)。

这套数值和广泛使用的 BIP-39 助记词标准匹配:12 词助记词编码 128 比特熵外加 4 位校验和;24 词助记词编码 256 比特熵外加 8 位校验和。

层层防护依旧失守?Coldcard 随机数漏洞揭开硬件钱包安全盲区

硬件钱包的离线隔离机制只能保护生成完成后的助记词,无法修复生成过程中的弱随机漏洞,采用私密掷骰子获取独立熵才能生成安全的 BIP-39 助记词。

校验和仅用于识别助记词抄写错误。真正决定安全性的,是底层原始随机数据。哈希运算、规范排版可以美化低熵输入,但密钥全部可能性的总空间不会扩大。那些看起来让人安心的 12 个单词,有可能来自极小的随机池。

手动掷骰子发挥防护作用的前提:钱包内置流程正确接纳骰子生成的随机数据。骰子本身合格,每一次投掷真实且互不干扰,投掷序列全程保密。重复使用投掷规律、拍摄记录、云端留存序列、在联网电脑录入结果,都会破坏随机性的独立性与保密性。

针对本次 Coldcard 安全事件,Coinkite 表示:只有用户能够证实最终种子生成时,至少进行了 50 次公平、独立且保密的掷骰子操作,才可以不迁移资产;凡是存在不确定情况,官方都建议迁移资金。

对我而言,手动骰子的核心价值在于:依靠设备内置随机数,意味着你必须无条件信任硬件、固件、编译流程、集成代码整条链路。

规范的骰子录入流程,能引入脱离这条信任链路、由用户自主掌控的熵。大致 50 次公平掷骰子对应 128 位安全等级,99 次对应 256 位安全等级。但用户必须严格遵循设备官方操作流程,不要自行设计随机数转换方案。

设置高强度、独一无二的 BIP-39 通行密码,能够从另一个维度提升攻击门槛。通行密码相当于独立密钥;即便攻击者拿到助记词,还需要破解通行密码才能动用资产。注意:助记词本身的熵值不会因为添加通行密码而提升。任何通行密码(哪怕只是输错一个字符)都会衍生出一组合法钱包地址,一旦通行密码遗失,资产将永久锁定。硬件钱包 PIN 码作用和通行密码完全不同。

启用通行密码本身存在取舍:如果你能够妥善保管、精准复现通行密码,它会构筑一道强有力的第二防线;但如果备份方案不完善,这项功能反而会导致你彻底无法访问资产。

弱随机性隐患反复出现

Coldcard 漏洞再次警示所有人:比特币钱包的安全根基,是种子生成瞬间具备充足的强随机性。同类底层缺陷,曾经在多款不同钱包产品上接连爆发。

2023 年,Ledger Donjon 对外披露:特定版本 Trust Wallet 浏览器扩展在 WebAssembly 运行路径中,使用基于 32 位梅森旋转算法生成随机种子。这类看似正常的助记词,全部来源于约 40 亿组初始值。风险范围明确:搭载 3.1.1 版本之前 Trust Wallet Core 的浏览器扩展 0.0.172 至 0.0.182 版本。美国国家漏洞数据库记录,该漏洞分别在 2022 年 12 月、2023 年 3 月遭到利用。

「Milk Sad 漏洞」事件,直观展现了同类风险。Libbitcoin Explorer 3.x 的 bx seed 命令,采用基于系统时间播种的 32 位梅森旋转算法;在相同时钟条件下,软件有可能生成一模一样的助记词。攻击者只要大致掌握种子创建时间,穷举范围就会远小于助记词表面暗示的空间。

研究人员在风险区间内找到超过 2600 个仍在活跃使用的比特币钱包;按照 2023 年 8 月行情估算,多条公链上相关被盗资产价值超 90 万美元。其中 2550 余个钱包表现出自动化操作特征,极有可能归属同一持有者。研究人员同时指出,部分资产被盗事件或许叠加了其他安全漏洞。

这类漏洞每次都披着不同外衣登场:Coldcard 意外触发固件备用随机算法;Trust Wallet 浏览器扩展、Libbitcoin 命令行工具,则因依赖系统时钟产生弱随机数。最终生成的钱包密钥看上去毫无破绽,但可供遍历的密钥池规模小到足以带来致命风险。

市面上绝大多数比特币托管建议,都是在种子生成之后展开:离线保存助记词、使用耐用备份载体、权限隔离、测试恢复流程。这些措施依然具备价值。但 Coldcard 的事故提醒我们,安全防线需要往前推进一步。

空气隔离只能保护你已经录入设备的密钥。正因如此,比特币钱包安全,必须始于可信的随机源。

发布于
免责声明:市场有风险,投资需谨慎,本文不构成投资建议