Coldcard离线签名机制详解:SD卡空气间隙的安全模型
如果让我用一句话概括Coldcard的核心价值,答案是「彻底的离线签名」。Coldcard离线签名机制并非简单的「设备不联网」,而是一整套从硬件到协议的攻击面收敛体系。本文展开讲讲它的内部原理。
一、什么是空气间隙
空气间隙(Air Gap)来自传统计算机安全术语,指设备之间完全没有有线或无线连接,仅通过物理介质(SD卡、QR码、NFC)交换数据。Coldcard选择SD卡作为主通讯介质,原因有三:
- SD卡传输速度足够,几百KB的PSBT瞬间完成;
- FAT32文件系统通用性强;
- 物理可见的传输过程,用户能完全掌控时机。
这种设计和Coldcard评测里强调的「攻击面收敛」哲学一以贯之。
二、PSBT:核心数据格式
离线签名的关键是PSBT(Partially Signed Bitcoin Transaction,BIP174标准):
- 在联网钱包构建未签名PSBT;
- 包含交易输入输出、脚本类型、派生路径等;
- 不包含任何签名;
- 文件大小通常几KB到几十KB。
Coldcard读取PSBT后会校验:
- 输入UTXO是否属于本钱包;
- 派生路径是否合理(防Path欺骗攻击);
- 输出地址是否在已知Change路径(防Change劫持);
- 手续费是否合理(防异常高费率)。
校验通过才会在屏幕上显示交易细节供用户确认。
三、用户确认的关键步骤
Coldcard屏幕上显示PSBT细节时,用户必须做三件事:
- 逐字核对接收地址(至少前6位和后6位);
- 确认金额单位是BTC不是satoshi(容易看错);
- 验证手续费率在合理范围(防异常)。
按物理按钮确认后,签名才会被写入PSBT。这一步是整个流程的「人类把关」环节,无可替代。具体的核对实操可看Coldcard怎么用。
四、签名后的输出
确认签名后:
- Coldcard内部用secp256k1椭圆曲线签名;
- 签名结果以PSBT格式写回SD卡;
- 输出文件命名规则是原文件名+「-signed」;
- 私钥从未离开Coldcard安全芯片。
用户取出SD卡,插回联网钱包,导入已签名PSBT后由钱包广播。整个签名过程的安全性由Coldcard的Microchip ATECC608A安全芯片背书。
五、攻击面分析
离线签名的攻击面非常窄:
- SD卡侧信道:理论上恶意SD卡固件可能修改PSBT内容,但Coldcard在屏幕上显示后由人确认,仍能拦截;
- Evil Maid攻击:物理接触设备并替换硬件,需要拆机重做防伪贴纸;
- 供应链攻击:在出厂前植入恶意固件,被Coldcard的反钓鱼提示语机制拦截;
- PSBT构造攻击:联网钱包被入侵后构造恶意PSBT,但用户屏幕确认时能发现;
- 冷启动攻击:物理解剖安全芯片提取种子,难度极高且需要破坏设备。
相比Coldcard被黑过吗里讨论的实际历史攻击案例,离线签名机制的有效性已经被反复验证。
六、与USB签名的对比
一些硬件钱包(如Ledger)通过USB连接电脑做签名:
- 优势:传输速度快,用户体验流畅;
- 劣势:USB驱动是潜在攻击面,恶意软件可能伪造PSBT;
- 风险:电脑被入侵后,对硬件钱包的攻击窗口大大扩展。
Coldcard用SD卡完全避开了USB攻击面。Mk4也支持USB(保持灵活性),但Coinkite官方仍然推荐SD卡作为默认通讯方式。具体的硬件接口差异可看Coldcard硬件版。
结语
Coldcard离线签名是把传统空气间隙概念彻底应用到硬件钱包上的典范。从PSBT标准、安全芯片、用户屏幕确认到SD卡物理介质,每一环都经过严密设计。理解了这套机制,你就明白为什么Coldcard被很多比特币长期持有者视为冷储首选。安全感不来自单一功能,而来自整套体系。