作者:Coldcard
来源:https://blog.coinkite.com/coldcard-mk3-seed-generation-warning/

Coinkit 公司警告所有用户,如果你曾使用一个 Mk3 签名器在固件 4.0.1 版本(2021 年 3 月发行)到 4.1.9 版本(包含在内)上生成种子词,那么你的资金可能处在风险之中,应该尽快转移。
2026 年 7 月 31 日 12:39 p.m. 更新:已为每一种受相同漏洞影响的款式发布修复后的固件以及版本跟踪:
- Mk3:版本 4.2.0 及后续版本
- Mk4/Mk5 标准版:版本 5.6.0 及后续版本
- Q 标准版:版本 1.5.0Q 及后续版本
- Mk4/Mk5 Edge 版:版本 6.6.0X 及后续版本
- Q Edge 版:版本 6.6.0QX 及后续版本
标准版(Standard)和 Edge 版使用不同的发行版。如果你使用 Edge 版,请使用专门的 Edge 发行版。不要因为版本号数字比较大就以为旧的 Edge 6.x 版本固件是安全的。
Coinkit 公司警告所有用户,如果你曾使用一个 Mk3 签名器在固件 4.0.1 版本(2021 年 3 月发行)到 4.1.9 版本(包含在内)上生成种子词,那么你的资金可能处在风险之中,应该尽快转移。
使用 Mk4、Q 或 Mk5 在本次修复版固件以前的版本也同样受到影响,所生成的种子词只具有 72 比特的熵,而不是我们希望的 128 比特的熵。
更新固件无法改变已生成的种子词,因此也无法修复它们固有的低熵。如果你的种子词是在使用修复版本以前的固件和设备上生成的,请遵循下文的迁移指南,迁移你的资金,除非你在生成种子词时加入了自己掷骰子所生成的熵。
TAPSIGNER 卡片、OPENDIME 胶囊和 SATSCARD 卡片不受此漏洞影响,因为它们使用另一套代码基础。
本次发现的漏洞出现在 Mk3 的固件版本 4.0.1 到 4.1.9(含) 上,也影响 Mk4 和 Mk5 的标准版固件 5.6.0 以前的版本,以及 Edge 版 6.6.0X 以前的版本;影响 Q 的标准版固件 1.5.0Q 以前的版本,以及 Edge 版 6.6.0QX 以前的版本。对 Mk4、Mk5、和 Q 的影响没有那么严重,但依然是相当可怕的。
如果你在生成种子词时掷了骰子
本次发现的漏洞影响的是设备生成的熵,但不会消除你通过掷骰子提供的独立熵源。
(译者注:这里的 “熵” 决定了所生成的种子词本身的随机性,也就决定了它与其他人所生成的种子词意外重合、以及被攻击者暴力搜索而发现的 可能性/安全性。)
在受影响的固件上,ColdCard 会将设备生成的种子与每一次掷骰子的结果一起哈希,只要用户通过 “Add Dice Rolls” 功能输入了骰子点数:
- 50 到 98 次独立、私密的骰子点数输入:光凭骰子输入就能提供至少 128 比特的熵。
- 99 次乃至更多次独立、私密的骰子点数输入:骰子输入自身能提供大约 256 比特的熵。
- 少于 50 次骰子输入,或者你不急的自己输入多少次了:应该遵循下列迁移指南迁移。
只要你输入了至少 50 次独立掷骰子的结果,并且这些点数没有记录下来也没暴露,我们不认为得到的种子词会因为本次发现的 RNG(随机数生成器)漏洞而处在风险之中。
请注意,这是对加入了掷骰子的熵所得到的种子词而言。如果你不确定自己所用的种子词有没有添加掷骰子的熵、输入了多少次掷骰子的结果、这些输入有没有保持秘密,那么请迁移到新的种子词。
迁移和固件状态
修复后的 Mk3 固件版本(4.2.0)已经发布。先从正式的 Mk3 下载页面安装它,再生成替换用的种子词。
版本 4.2.0 修复的新种子词的生成过程,但不会修复已经生成的种子词的低熵缺陷。
本警告反映的是我们的初步分析;研究还在继续,正式的技术报告会尽快发布。
如果你使用了 Passphrase
如果你的 Mk3 种子词有缺陷,但你使用了一个强大的、独特的 BIP-39 passphrase(密语),那么这个密语会添加一个独立的屏障。因此,风险将取决于密语自身的强度:短的、常见的、模式化的密语,或是名人名言,可能会被猜测出来,不应认为已经足够抵御风险。
这里说的是 BIP-39 密语,不是 ColdCard 本身的 PIN 码。即使你使用了强大的密语,尽快迁移到新生成的种子词也有意义。请继续保守你的密语,不要输入任何网页和你不信任的设备。
(译者注:再次提醒,本次的漏洞源于使用特定版本的固件会生成有缺陷的种子词,种子词本身可能遭遇意外重合或被暴力搜索发现,因此设备本身的 PIN 码无法提供保护。相应地,骰子输入的保护作用来自它提高的最终生成的种子词的熵;而密语的保护作用则来自生成比特币地址的私钥的过程用到了密语,而不仅仅依赖于种子词。)
如果 Mk3 是你唯一的设备
固件 4.2.0 让 Mk3 可以正确地生成种子词作为替代,所以理论上,你不需要新的 ColdCard 来迁移资金。升级签名器的固件无法修复已经生成的种子词的缺陷,因此仍需迁移。
使用一个 Mk3 建立两个钱包并完成资金的迁移,需要谨慎地在新旧两套种子词之间切换。如果有另一台设备(比如更新了修复版固件的 ColdCard),那么应该转去使用它。如果 Mk3 是你唯一的一台设备,可以这样迁移资金:
- 先验证有缺陷的种子词的写下来的备份和钱包指纹。
- 为 Mk3 安装 4.2.0 乃至更新版本的固件并确认版本。
- 在清空的 Mk3 上,生成新的种子词。记录下种子词(即备份)、钱包指纹和一个收款地址,并验证它们。
- 在 Mk3 上复原有缺陷的种子词,并发送一笔小额的测试交易到新钱包的地址。
- 复原新的种子词,确认钱包指纹以及收到了测试款项。
- 复原有权限的种子词,将剩余资金发送到新钱包。
- 复原新种子,确认迁移完成。不要急着销毁旧的办法,要等到全部余额都已到达新钱包。
修复版固件的设备生成的种子词已经有足够的上。可以加入摘骰子的结果,但并非解决本次发现的问题的必要措施。BIP-39 密语是一个另外的钱包安全性选择;如果使用了密语,请务必备份密语,并且不要跟种子词备份放在一起。
(译者注:鉴于 ColdCard 面市的所有型号都受此漏洞影响,任何使用 ColdCard 签名器生成种子词的单签名钱包用户都应考虑生成新种子词并迁移资金。尤其是使用 Mk3 的单签名钱包用户,甚至可以考虑先迁移到软件钱包生成的钱包,再更新 Mk3 的固件、生成安全的种子词,再将资金迁移到新种子词。这样虽然会多花一些手续费,但比较容易操作。)
在 Mk 3 上使用骰子生成新种子词
在升级到 4.2.0 版本后,对自己的能力有自信的用户可以不使用设备的随机数生成器、只用掷骰子生成一个新的替换用种子词,然后迁移资金。这并非严格必要,因为在 4.2.0 中,普通的 New Wallet (新钱包)流程已经是正确的了。
在清空的 Mk3 上使用 4.2.0 版本固件,选择 Import Existing > Dice Rolls(导入已有种子词 > 晒骰子),然后输入至少 99 次独立摘骰子的结果,需要使用非常均匀的 6 面骰子。这个专门用于骰子生成种子词(不使用设备熵源)的流程会直接哈希完整的骰子点数序列。
这是一种需要技能的流程。仅使用骰子生成种子词,依然需要安全地在两套种子词之间切换,才能完成迁移。在擦除 Mk3 存储的任何种子词之前,要验证写下来的备份和 XFP;记录新钱包的一个收款地址后,恢复并验证旧钱包,发送小额测试交易,然后再全面迁移资金。保留旧钱包的备份,直到所有资金都完成迁移。
如果使用这套流程,则骰子点数序列本身成了死要材料。绝对不要拍照、不要保存为电子文档,也不要输入联网的计算机。在尝试这个选项之前,请阅读 COLDCARD 骰子方法指南。
谨慎迁移
在迁移到新钱包时,务必保持冷静和谨慎。鲁莽地迁移钱包可能立即给你带来危险,而不是帮你解决问题。
在以下各款式及相应固件上生成的种子词,除非加入了独立且充足的骰子熵,都有风险:
- Mk3 的固件版本 4.0.1 到 4.1.9(含) ;
- Mk4 和 Mk5 的标准版固件 5.6.0 以前的版本,以及 Edge 版 6.6.0X 以前的版本;
- Q 的标准版固件 1.5.0Q 以前的版本,以及 Edge 版 6.6.0QX 以前的版本。
在生成替换用的种子词之前,先升级到修复版本的固件:
- Mk3 升级到 4.2.0 或更新版本;
- Mk4 和 Mk5 标准版升级到 5.6.0 或更新版本;
- Edge 版升级到 6.6.0X 或更新版本;
- Q 标准版升级到 1.5.0Q 或更新版本;
- Edge 版升级到 6.6.0QX 或更新版本。
然后:
- 确认已安装了修复版本的固件。
- 在升级后的 ColdCard 上生成新的种子词。
- 记录并验证新种子词的备份。
- 在 ColdCard 屏幕上验证新钱包的一个收款地址。
- 向新钱包发送一个小额测试交易,确认新钱包是安全的。
- 测试交易确认后再迁移剩余资金。
- 保留旧钱包的备份,直到迁移完成。
我们会继续研究此次发现的漏洞。更多细节将会披露。