硬件钱包固件怎么验证?更新前核对签名与版本

 / 
2

硬件钱包固件验证的目的很简单:确认你准备安装到设备上的文件,确实由官方发布,并且没有在下载或传输过程中被替换或篡改。做到这一点,需要两个动作——核对签名(确认发布者身份)和核对哈希/版本(确认文件内容未被改动)。不同品牌把这个流程做得深浅不一:有些靠设备自身在安装时自动校验,有些则需要你在电脑上手动跑命令。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

这篇文章按照"确认需要验证什么→拿到官方文件→在电脑上核对→在设备上安装并确认"的顺序,把 Coldcard、OneKey、Trezor 以及通用签名逻辑讲清楚。你不需要同时用所有品牌的方法,找到自己设备对应的部分即可。

先分清:签名、哈希、版本,各自解决什么问题

版本号告诉你是哪个发布批次,但它本身不具备防篡改能力。一个被修改过的固件文件可以保留同样的版本号。

哈希(如 SHA-256) 是文件的"指纹"。哪怕文件只改了一个字节,哈希值也会完全不同。但哈希的局限在于:如果攻击者同时替换了固件文件和官方页面上的哈希值,你仍然比对不出问题。

数字签名解决的是"哈希值发布者身份"的问题。官方用私钥对包含哈希值的发布清单进行签名,你用官方公钥验证签名。签名通过,说明这份哈希清单确实来自官方,没有被中间人伪造。

所以完整的验证链条是:用官方公钥验证发布清单的签名 → 从清单中取出官方哈希值 → 计算你下载的固件文件的哈希 → 两者比对。

不过,并非所有品牌都要求用户手动走完这条链。

哪些设备需要手动验证,哪些不需要

设备端自动校验(你不需要在电脑上做任何事):Trezor 从 Suite 24.11.2 开始,每次连接设备时都会自动运行固件哈希检查。如果你在电脑上安装的 Suite 版本与设备固件版本匹配,检查会自动执行;如果版本不匹配(比如设备固件过旧),检查会跳过,等更新后再进行。KeepKey 的引导加载程序(bootloader)会拒绝任何未经 KeepKey 签名密钥签名的固件,即使你从非官方来源下载了文件,设备层面也会拦截。

需要用户在电脑上手动核对(通常是开源或强调可验证性的设备):Coldcard 要求你验证 signatures.txt 的 OpenPGP 签名,并手动计算固件的 SHA-256 哈希与清单比对。OneKey 对 Pro 型号提供了 Checksum 验证流程,需要你在 GitHub 下载固件后通过脚本提取主控固件部分,再计算校验和。OneKey 的安全芯片在出厂时烧录了官方多签名,非官方固件会在开机时提示"非官方固件",但这只是第一层,手动验证是进一步确认固件内容与 GitHub 发布版本一致。

如果你用的是 Trezor 或 KeepKey,且配套应用保持更新,手动验证不是必须的。如果你用的是 Coldcard 或 OneKey Pro,手动验证是推荐完成的操作。

以 Coldcard 为例:手动验证的完整流程

Coldcard 的验证流程在官方文档中有详细说明,适用 macOS、Linux、Windows。

第一步:拿到两样东西

从 Coldcard 官方固件下载页获取当前标准版(standard release)的 .dfu 文件,同时下载 signatures.txt 发布清单。不要只下载固件文件就跳过清单。

第二步:先验签名,再比哈希

顺序很重要。先确认 signatures.txt 本身的签名有效,再从中取哈希值比对。如果清单本身是伪造的,后面的哈希比对就没有意义。

macOS(GPG Keychain + Terminal):导入官方公钥(文档中给出了公钥指纹),用 gpg --verify signatures.txt 验证。终端输出应包含 Good signature from...。过程中可能看到一条警告说该密钥未被信任认证,这是正常的,不影响验证结果,可以忽略。

Linux:通过 keyserver 导入公钥后执行 gpg --verify signatures.txt,同样确认输出中有 Good signature。

Windows(Kleopatra):将 signatures.txt 保存为 .asc 扩展名(Kleopatra 不识别 .txt),导入公钥后完成签名验证。

签名通过后,在 signatures.txt 中找到你下载的固件版本对应的 SHA-256 哈希值。然后在终端或命令提示符中计算本地文件的哈希:

  • macOS:shasum -a256 文件名.dfu

  • Linux:sha256sum 文件名.dfu

  • Windows:certutil -hashfile 路径\文件名.dfu SHA256

比对两串字符是否完全一致。一致即验证通过,可以安装。

Coldcard 的官方帮助页还强调了一点:不要因为文件名相似就推断兼容性,必须根据 Downloads 页面和升级指南确认你的型号和发布族系。

以 OneKey 为例:Checksum 验证的逻辑

OneKey 的验证方式与 Coldcard 不同。它不是让你比对文件哈希,而是让设备自己显示当前固件的 Checksum 前七位,然后你从 GitHub 源码计算出的 Checksum 进行比对。

在设备上进入 系统设置 → 关于设备,固件信息中会显示类似 4.9.0[fccbac8-5ff2c88] 的内容。fccbac8 是版本 ID,5ff2c88 是 Checksum 前七位。

然后去 OneKey 的 GitHub Releases 页面,找到匹配版本,下载 .bin 文件。这里有一个关键差异:OneKey Pro 的 .bin 文件包含主控固件(MCU)、安全元件(SE)固件和签名信息,直接计算整个文件的哈希会得到错误结果。需要用官方文档提供的脚本提取 MCU 部分,然后对提取出的 firmware.bin 计算 SHA-256。

提取后的计算命令因型号而异。例如 OneKey Touch 使用 tail -c +2561 firmware.bin | shasum -a 256 -b,计算出的哈希前七位应与设备屏幕上显示的 Checksum 一致。

OneKey Pro 的脚本流程比 Coldcard 复杂,如果你不熟悉终端命令,需要预留足够时间。但 OneKey 的开源策略意味着任何人都可以审计代码与发布固件的一致性,这是它提供 Checksum 验证的前提。

更新前必须确认的版本兼容性

在下载固件之前,你需要确认两件事:设备型号和当前固件版本。

Coldcard 的官方帮助页特别提醒:只使用为你的型号准备的官方固件文件。Mark 1 型号如果安装高于 3.0.6 的固件会变砖,必须停止。不同发布族系(standard 与 edge)不能混用,Edge 固件面向高级用户,有单独的风险提示。

OneKey 的更新日志显示,OneKey Pro 固件版本迭代较快,从 v4.15.0 到 v4.21.0 经历了多个功能版本,且存在 BTC-Only 版本的区分。如果你不确定当前版本,在设备"关于设备"中先确认。

验证通过之后:安装过程中的确认

签名和哈希验证通过,只说明文件本身可靠。安装时还有一步不能跳过:在设备屏幕上确认版本号。

KeepKey 的文档明确描述了这个流程:桌面应用显示即将安装的版本,设备屏幕也会要求你确认,你应该核对设备屏幕上显示的版本号是否与应用显示的一致,然后再批准。

Coldcard 的建议是:对于新设备,先安装并确认推荐的标准固件,在完成更新之前不要选择生成助记词或恢复选项,也不要向钱包转入资产。

常见异常与判断

"MCU firmware is not genuine"(Ledger):这个提示出现在固件更新期间,不一定意味着设备被篡改。Ledger 官方的处理流程是:同时按两个按钮进入"标识符"界面,再按两次进入不安全模式,第三次按后应能访问 Dashboard。如果能看到已安装的应用,先把它们全部卸载(卸载应用不影响资产),然后重新开始更新。如果仍然无法进入 Dashboard,使用 My Ledger 中的修复工具,选择对应错误信息后点击 Repair。修复过程中如果进度到 100% 后卡在 Bootloader,Windows/Linux 下用 Ctrl+R 重启 Ledger Wallet,macOS 用 ⌘+R,然后重新运行修复工具。

OneKey 开机提示"非官方固件":这说明设备检测到了非官方固件签名。但 OneKey 的 Checksum 验证流程是让你进一步确认当前固件是否与 GitHub 发布版本一致。如果你没有主动刷过第三方固件,这个提示本身可能来自出厂状态或更新异常。先通过官方渠道重新安装最新固件,再按 Checksum 流程验证。

Trezor 连接时显示警告横幅:从 Suite 24.11.2 开始,如果哈希检查检测到不匹配,Suite 会显示警告屏,关闭后仍有横幅提示设备可能运行非官方固件。Trezor 会限制部分功能。这种情况下不要继续使用设备进行交易,先通过 Suite 重新安装官方固件,更新后再连接检查。

Coldcard 的历史漏洞提醒:2021 年 Coldcard 固件中存在一个集成错误,导致种子生成时使用了确定性软件伪随机数生成器而非硬件随机数生成器,影响了该期间生成的种子。Coinkite 已在后续固件中修复,但如果你的种子是在受影响版本期间生成的,安装新固件并不能修复已经生成的种子。官方建议在修复后的固件上生成新种子并转移资产。这不是当前的固件验证问题,但如果你持有较早期的 Coldcard 且从未迁移过种子,值得在更新前确认设备状态。

验证完成的标准

对于手动验证的品牌:签名验证输出 Good signature,本地计算的哈希与签名清单中的值完全一致,两个条件同时满足才算完成。对于 Checksum 验证的品牌:设备屏幕显示的 Checksum 前七位与从 GitHub 官方固件计算出的结果一致。

安装完成后,在设备设置中查看当前固件版本,确认与你刚才验证的版本号相同。如果版本号显示为旧版本或异常值,不要进行资产操作,先排查更新是否真正生效。

固件验证的核心不在于流程有多复杂,而在于你是否独立完成了最后一个比对动作。设备屏幕上的版本号、电脑上的哈希值、官方清单里的签名,三者对齐,才算真正确认了这次更新没有引入你不了解的东西。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

参考资料

  1. OneKey 帮助中心·OneKey Pro 固件的开源代码验证,页面未标明更新日期;核查日期:2026-09-24。
  2. Coldcard·Upgrade Firmware,页面未标明更新日期;核查日期:2026-09-24。
  3. Trezor KB·Firmware hash check: how Trezor Suite verifies your firmware,页面未标明更新日期;核查日期:2026-09-24。
  4. KeepKey Docs·Firmware Updates,页面未标明更新日期;核查日期:2026-09-24。
  5. OneKey 帮助中心·验证 OneKey 硬件钱包设备所安装固件的开源代码,页面未标明更新日期;核查日期:2026-09-24。
  6. OneKey 帮助中心·Verifying OneKey Pro Firmware with Open Source Code,页面未标明更新日期;核查日期:2026-09-24。
  7. OneKey 帮助中心·OneKey Pro 固件更新日志,页面未标明更新日期;核查日期:2026-09-24。
  8. Coldcard·Upgrade Firmware(newsletter 来源版本),页面未标明更新日期;核查日期:2026-09-24。
  9. Coldcard·Firmware Help,页面未标明更新日期;核查日期:2026-09-24。
  10. Ledger Support·MCU 固件不是正版,页面更新日期:2022-10-11;核查日期:2026-09-24。
  11. Thailand Computer Emergency Response Team·Coldcard Hardware Wallet Vulnerability Linked to Bitcoin Theft Worth More Than USD 70 Million,页面发布日期:2026-08-02;核查日期:2026-09-24。