Coldcard固件漏洞致1亿美元损失,强制手动随机性修复

Coldcard固件升级应对严重随机数缺陷,用户需主动参与种子生成

Coinkite针对其Coldcard设备中长期存在的种子生成漏洞推出关键固件更新,要求用户在创建新钱包时必须手动提供足够随机性输入,包括至少50次骰子投掷、128次硬币抛掷或65次定时按键操作。

双系列固件同步更新,区分Mk4/Mk5与Q型号

为确保各设备兼容性,本次补丁分为两个版本:Mk4与Mk5系列适配5.6.1版本,配备键盘和二维码扫描功能的Q系列则对应1.5.1Q版本,分别覆盖不同硬件架构。

启动阶段引入多层随机性校验机制

新版固件将用户输入的随机性与STM32真随机数生成器及两个独立安全元件提供的熵值合并使用,形成完整种子源。该设计旨在杜绝此前因构建错误导致的软件路径误用问题。

追溯发现,原系统本应仅依赖硬件生成器,但链接配置失误使随机调用被导向MicroPython中的Yasmarang伪随机算法,自2021年3月起持续影响种子生成流程。

受影响种子仅具备约72比特熵值,远低于标准128比特,直接引发7月30日大规模资金外泄事件,约594.5 BTC从500个地址中被转移。

当前版本在启动时执行严格检查,确认随机数调用是否正确抵达硬件路径,若异常则终止运行。同时,系统已用符合NIST SP 800-90A标准的SHA-256 Hash_DRBG替代原有算法,并在初始化阶段采用两个安全元件输出的256位完整摘要,取代旧版仅取32位的做法。

按键输入机制遵循Peter Todd提出的按钮式随机生成方案,以CPU周期精度记录按键时间间隔,首次按下设定基准点后,每64次按键间隔赋予2比特熵值。

旧有种子仍存风险,须主动迁移至新生成密钥

Coinkite明确指出:“此次更新无法修复已有易受攻击的种子。”建议所有在2021年至2026年7月期间使用受影响固件生成的用户立即创建新种子并转移资产。

Mk2与Mk3系列未包含在本次更新范围,其最低可用版本维持在4.2.0。

此外,设备新增交易完整性校验功能,可在签名前重新核对数据字节。若检测到来自恶意USB主机的篡改行为,将立即中断流程并显示“交易已被修改”警告。

新安全状态页面展示四项独立验证环节,含一次实机测试,结果显示为32字节种子请求共执行8次硬件随机读取,且重建结果与签名固件每字节完全一致。

公司强调,上述检查并非对全部固件二进制文件的全面审计。据媒体披露,此次漏洞造成的总损失已超过1亿美元,其中Galaxy Research统计显示约7300个地址涉及1596 BTC,疑似第四波攻击于8月3日再夺走近449 BTC。