
生成原理与适用范围
冷钱包通常将私钥生成、保存和签名放在与联网端隔离的环境中。私钥用于签名,公钥由私钥推导;确定性钱包还可通过父密钥派生子密钥。联网端可以承担观察链上信息和广播等工作,不必持有私钥。
Bitcoin Developer Guides 的钱包章节介绍了这种功能分离。以下检查适用于比特币离线钱包及专用签名设备的通用设计,不能直接证明某款产品安全。
随机性:检查秘密是否可预测
RFC 4086 强调,安全随机数的核心是攻击者难以猜测。输出看起来杂乱、通过统计测试,并不足以证明其适合生成密钥。
检查重点包括随机源是否适用于密码学用途、初始化是否获得足够熵,以及失败时是否停止生成。若主要依赖时间、序列号等可推测输入,即使输出很长,也可能只有很少的候选值。确定性派生能扩展密钥体系,但无法弥补初始秘密的可预测性。
生成环境:检查隔离是否贯穿始终
断网能够减少远程攻击入口,但不能清除设备原有的恶意程序。应关注生成软件和运行环境是否可信,以及私钥是否曾进入联网端。只在生成瞬间断开网络,无法说明后续保存和使用仍然安全。
判断隔离效果时,可以沿着秘密数据的流向检查:在哪里产生、在哪里保存、在哪里被读取。任何未经确认的复制或导出环节,都会扩大需要信任的范围。
签名与传递:检查设备实际确认的内容
离线签名仍需要接收外部数据。移动介质或设备通信接口因此属于检查范围;隔离设计必须同时考虑输入处理和签名确认。
联网端可能提供被篡改的待签名内容。签名端能否独立显示并核对输出地址、金额,是重要的安全边界。设备仅显示笼统确认提示时,用户难以判断授权对象是否正确;私钥没有导出,也不代表签名内容必然符合意图。
常见问题:加密和备份能解决什么
钱包文件加密主要保护未使用状态下的秘密。Bitcoin Developer Guides 指出,它无法阻止恶意程序捕获解密密钥或读取内存中的明文私钥,因此不能代替可信运行环境。
备份需要兼顾保密与可恢复性。检查时应确认备份是否包含恢复所需的信息、是否存在无意复制,以及恢复过程会不会暴露秘密。冷钱包的安全应覆盖生成、保存、签名和恢复各阶段,不能仅凭“离线”标签作判断。