一款旨在将比特币私钥隔离于黑客之外的硬件钱包,如今却在告知自家用户:其中一部分私钥可能已经遭到泄露。Coldcard 钱包的制造商 Coinkite 已经推送了新的固件,用于修补一个Coldcard 助记词种子漏洞,该漏洞允许攻击者仅通过追踪按键操作就重建私钥。此次修复强化了新钱包生成助记词种子的方式,但也带来了另一件事:它迫使持有者直面一个令人不安的事实——如果你的种子是在补丁发布前创建的,仅仅更新固件并不能拯救它。
Summary
要点速览
- Coinkite 为 Coldcard Mk4 和 Mk5 设备发布了 5.6.1 固件,为 Coldcard Q 发布了 1.5.1Q 固件,要求新种子必须混入物理随机性。
- 新建种子现在需要至少 65 次按键、50 次六面骰掷骰,或 128 次抛硬币,并与设备熵结合。
- 在存在漏洞的固件上生成的种子,即使更新后仍然暴露;受影响的持有者必须创建全新的种子并迁移资金。
- 来自 Block 的独立分析表明,漏洞窗口可能比 Coinkite 官方公告所承认的范围更广。
漏洞曝光后,Coinkite 加强 Coldcard 种子生成机制
针对这次泄露事件,Coinkite 的应对措施是重构固件,使 Coldcard 不再允许仅依赖设备自身的随机性来生成种子。公司在周四发布的博客文章中公布了这一更新,告知 Mk4 和 Mk5 设备的持有者安装 5.6.1 版本,而 Coldcard Q 用户则需升级到 1.5.1Q。两项更新均于 8 月 20 日推出,Coinkite 正敦促所有用户尽快升级。
新固件版本与物理随机性要求
核心变更用语言描述很简单,但在实践中意义重大。每一个新种子现在都必须将设备熵——来自 Coldcard 安全元件和硬件随机数生成器——与人为提供的随机源结合。这意味着至少需要在不可预测的时间间隔内完成65 次按键、50 次六面骰掷骰,或128 次抛硬币。逻辑很直接:即便设备内部的随机数生成器再次失效或遭到操控,由人手提供的外部熵仍能保证最终种子的不可预测性。
这之所以重要,是因为最初的缺陷可追溯到一段代码:它会在悄无声息间,将种子请求导向一个确定性的 MicroPython 备用路径,该路径由一个被定义为 0 却被当作激活状态处理的功能标志触发。换句话说,钱包声称生成的随机数并不总是像宣传的那样随机——而 Block 的技术审查发现,攻击者可以根据这种可预测模式,通过按键记录逆向推导出私钥。
为何旧种子依然暴露
安装新固件对已经存在的种子毫无修复作用。这是 Coinkite 目前正在向其客户群体传达的冷酷现实,也是这则新闻中与资金安全最直接相关的部分。在受影响固件版本上生成的种子,如今依旧和补丁前一样容易被猜中,无论运行它的钱包是否已经更新。
Coinkite 官方披露的受影响范围包括:Mk2 和 Mk3 4.0.1 至 4.1.9 版本固件,Mk4 和 Mk5 5.6.0 之前的标准固件以及 6.6.0X 之前的 Edge 固件,Q 1.5.0Q 之前的标准固件以及 6.6.0QX 之前的 Edge 固件。而 Block 自身的分析则将边界再往前推了一步,将 Mk2 和 Mk3 的 4.0.0 版本也纳入危险区——这意味着部分在 Coinkite 划定范围外自认为安全的持有者,实际上可能并不安全。
迁移步骤与掷骰例外
Coinkite 的迁移指引非常直接:除非钱包的种子是通过私下的 50 次掷骰例外方式生成,否则受影响用户需要创建一个全新的助记词种子,验证其对应的备份和钱包指纹,并在硬件设备上直接验证目标地址,先发送一笔小额测试交易,之后再将所有与旧种子关联的余额全部迁移过去。
有一条指示被反复强调是有原因的——克隆或恢复旧钱包并不会创建新种子。Coinkite 明确指出,这种捷径不会触及底层漏洞。任何试图通过简单恢复备份来绕过繁琐的掷骰与按键流程的人,实际上都在继续保留那把已经暴露的私钥。
Coldcard 还提供一个高级的“仅掷骰(Dice Rolls Only)”模式,完全跳过硬件随机性,仅依赖 50 次掷骰生成 12 个单词的种子,或 99 次掷骰生成 24 个单词的种子。这是一条与当前默认要求的混合熵流程截然不同、更为严格的独立路径。
Coldcard 种子漏洞究竟有多深?
与这一缺陷相关的资金损失已经不再是理论问题。Coinkite 自身已承认部分客户遭受了严重损失,且执法机构正在介入调查,但公司尚未公布经过核实的受害者数量或自身统计的总损失金额。
已确认损失与官方披露之间的落差值得关注。公开数字来自独立研究者而非 Coinkite,而 Block 更宽泛的漏洞边界也暗示,公司公告可能低估了实际处于风险中的钱包数量。对于一个建立在“硬件钱包是存放私钥最安全之地”这一前提上的行业而言,一个允许攻击者通过按键时序重建私钥的缺陷,不仅是一个需要修复的 bug,更是严重的声誉与技术问题。
在种子生成之外,新固件还收紧了签名与交易验证流程。它将 USB 接口与一个临时 PSBT 哈希关联,在应用签名前验证交易数据,默认阻止 SIGHASH_SINGLE 操作,并将 USB 文件传输限制在当前加密会话内,同时验证固件文件长度。Coinkite 还加入了持久化的 RNG 故障停止机制、启动时的硬件 RNG 关联检查、更强的 Delta 模式隔离,以及新的活动钱包备份行为。公司将此次审查描述为有针对性的源代码分析、真实设备 RNG 路径测试,以及带有掷骰路径追踪的可复现构建——但并未将其称为对所有修复后二进制文件的完整审计。
时间点也为钱包持有者增添了一层担忧:微软此前单独警告称,CryptoBandits 恶意软件能够利用 USB 设备攻击加密钱包,这提醒人们,硬件钱包的安全性从来不只是固件一项因素。
常见问题
新的 Coldcard 固件更新带来了哪些变化?
5.6.1 和 1.5.1Q 固件更新要求新钱包种子必须包含强制性的物理随机性:通过 65 次按键、50 次掷骰或 128 次抛硬币,并与设备熵结合。
在受影响固件版本上创建的现有 Coldcard 种子,在更新后是否安全?
不安全。在受影响固件上创建的现有种子仍然存在漏洞,仅靠安装更新固件无法加固;受影响用户必须创建新种子并迁移资金。
用户能否通过克隆或恢复旧钱包来保护自己的钱包?
不能。克隆或恢复旧钱包不会创建新种子。出于安全考虑,必须生成新的种子。
如果用户的种子符合 50 次掷骰例外条件,该怎么办?
根据 Coinkite 的指引,种子符合私下 50 次掷骰例外条件的用户可能无需迁移——但对于不确定自己的种子是否符合条件的人而言,将其视为已暴露会更安全。
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”新的 Coldcard 固件更新带来了哪些变化?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”5.6.1 和 1.5.1Q 固件更新要求新钱包种子必须包含强制性的物理随机性:通过 65 次按键、50 次掷骰或 128 次抛硬币,并与设备熵结合。”}},{“@type”:”Question”,”name”:”在受影响固件版本上创建的现有 Coldcard 种子,在更新后是否安全?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”不安全。在受影响固件上创建的现有种子仍然存在漏洞,仅靠安装更新固件无法加固;受影响用户必须创建新种子并迁移资金。”}},{“@type”:”Question”,”name”:”用户能否通过克隆或恢复旧钱包来保护自己的钱包?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”不能。克隆或恢复旧钱包不会创建新种子。出于安全考虑,必须生成新的种子。”}},{“@type”:”Question”,”name”:”如果用户的种子符合 50 次掷骰例外条件,该怎么办?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”根据 Coinkite 的指引,种子符合私下 50 次掷骰例外条件的用户可能无需迁移——但对于不确定自己的种子是否符合条件的人而言,将其视为已暴露会更安全。”}}]}
本文在人工智能协助下完成,由编辑团队审核。

