硬件钱包离线保存私钥,可以降低联网设备带来的攻击风险,但私钥是否安全,还取决于创建钱包时使用的随机数。本文结合 COLDCARD 事件,介绍初始熵、助记词与私钥之间的关系,说明硬件 TRNG、固件调用路径和密钥处理边界为何同样重要,并梳理 imKey 在安全芯片、随机数评估及芯片内密钥处理方面的安全依据。
创建钱包时,用户最终看到的是 12 个或 24 个助记词,而生成这些助记词的背后,首先需要设备生成一组足够随机且难以预测的数据。这组数据通常被称为“初始熵”,它是钱包安全的起点。
如果初始熵足够强,攻击者几乎不可能猜中它;如果初始熵存在缺陷,那么助记词即使看起来毫无规律,背后的可能范围也可能远小于我们以为的范围。攻击者不需要接触设备,也不需要拿到助记词,只要能够重现这套弱随机数,就可能在自己的电脑上枚举私钥并寻找对应的链上资产。
近期披露的 COLDCARD 随机数事件,再次让这个不太容易被普通用户注意到的问题进入公众视野。它也提醒我们:判断一台硬件钱包是否安全,不能只看它是否离线、有没有安全芯片,还要看创建钱包时究竟使用了什么随机数,以及正式固件是否按设计走完了正确的调用路径。
需要先说明的是:COLDCARD 官方公告针对其特定产品和固件版本,影响范围不包括 imKey。imKey 用户不需要仅因为这次事件迁移资产。
助记词是如何生成的
以常见的 BIP-39 钱包为例,钱包的创建过程可以简化为:
初始熵 → 助记词 → 种子(Seed)→ 私钥、公钥和地址
设备首先生成初始熵,再加入校验信息,并按照固定词表把它编码成助记词。12 个单词通常对应 128 位初始熵,24 个单词通常对应 256 位初始熵。
助记词与可选的 BIP-39 Passphrase 经过计算得到 Seed,Seed 再按照确定性规则派生出不同账户的私钥、公钥和地址。
这意味着,同一组助记词与相同的 Passphrase,每次都会恢复出同一个钱包。这种确定性让钱包备份和恢复变得可行,但也意味着后续计算无法弥补起点上的随机性缺陷。
如果最初只有很少的随机状态可供选择,后面无论经过多少次哈希或密钥派生,攻击者仍然可以从那一小批候选状态重新计算出所有可能的钱包。
为什么离线无法弥补弱随机数
硬件钱包将私钥保存在离线设备中,可以有效降低手机或电脑中的恶意软件直接窃取私钥的风险。但离线本身并不等同于随机数安全:它主要保护私钥生成后的存储和使用,而助记词是否安全,还取决于生成时所使用的随机数是否足够不可预测。可以把生成助记词想象成抽签。正常情况下,设备会从一个大到几乎无法穷尽的“号码箱”中随机抽取一个号码,攻击者基本不可能猜中。如果随机数生成出现问题,这个号码箱可能实际上只包含很少一部分号码。即使最终生成的助记词看起来毫无规律,攻击者只要掌握这个缺陷,就可能把有限的结果逐一尝试,找到对应的钱包。
这种风险在助记词生成时就已经形成。此后,即使硬件钱包始终保持离线,或者设置了 PIN,也无法改变这组助记词最初来自一个较小、可能被尝试的范围。
这并不意味着离线设备无法生成安全的随机数。可靠的硬件钱包可以通过合格的真随机数发生器(TRNG)在设备内部生成高质量随机数,但还需要确保钱包创建流程正确调用该随机数源。因此,在选择硬件钱包时,建议重点了解设备是否采用经过验证的真随机数发生器,以及助记词生成流程是否有清晰、可验证的安全设计。
足够强、独立且从未泄露的 BIP-39 Passphrase,可能为最终钱包增加额外的搜索难度。但它不会提高原助记词的初始熵,也不能代替厂商针对受影响助记词给出的迁移要求。对于不熟悉备份管理的用户,贸然增加 Passphrase 还可能因为遗忘或记录错误造成永久损失。
COLDCARD 事件带来了什么启示
根据 Coinkite 公布的技术说明,COLDCARD 原本被设计为只依赖硬件真随机数生成器创建钱包,并没有计划在硬件随机数失效时主动降级到较弱的软件随机数。这一问题是在后续代码迁移过程中被引入的。
由于构建和链接集成错误,钱包创建过程中调用的 rng_get() 最终指向了 MicroPython 内置的通用软件 PRNG,而不是设计中预期的硬件 TRNG 实现。换句话说,预期的 TRNG 实现虽然已经包含在固件中,但 Seed 生成过程并未按原设计调用它。
也就是说,问题不在于硬件 TRNG 运行时发生故障,也不是设备遭到远程入侵,而是最终运行的固件与原有安全设计之间出现了偏差。在这种情况下,攻击者无需接触用户的设备。由于软件 PRNG 产生的可能结果范围有限,攻击者可以在其他计算设备上重建候选私钥,再与区块链上公开的地址进行比对,从而找到可能受影响的钱包。
这次事件说明,判断随机数是否安全,不能只确认设备是否配置了硬件 TRNG,还需要确认钱包创建过程实际调用了哪一种随机数实现。因此,完整的安全评估需要同时关注随机数来源、实际调用路径、固件构建以及异常处理等环节。
固件升级可以修复后续创建钱包时的随机数生成流程,但无法改变升级前已经生成的助记词。如果厂商确认某些型号或固件版本生成的助记词受到影响,用户仍需按照官方指引,在修复后的可信环境中创建新的助记词,并将资产迁移至新钱包。
imKey 如何保护随机数与私钥
imKey Pro 采用 Infineon SLE78 系列安全芯片。根据该芯片平台的 Common Criteria 安全文档,其内部包含硬件真随机数生成器,随机数机制通过 AIS 31 PTG.2 级别评估。
AIS 31 是德国 BSI 体系下用于评估随机数生成器的方法。PTG.2 不仅关注输出结果是否足够随机,还会对物理熵源、随机模型、在线健康检测和异常检测等环节进行评估。简单来说,它关注的是随机数如何从物理噪声中产生,以及这一过程能否持续、可靠地运行。
同时,该安全芯片所对应的平台和型号组合通过 Common Criteria EAL6+ 安全认证,表明其在认证覆盖范围内经过了高等级安全评估。
按照 imKey 的产品安全架构,创建钱包所需的随机数由安全芯片提供,Seed、私钥的生成与存储以及交易签名等关键操作均在安全芯片的安全边界内完成;手机或普通主机系统不负责生成钱包的初始熵,也不会取得私钥。更多的相关设计和说明文档可参见 imKey 安全芯片 TRNG FAQ 以及 《真“芯”,真随机》。
从随机数来源和密钥处理边界看,这套架构与本次 COLDCARD 事件披露的软件 PRNG 进入 Seed 生成路径的机制不同。
综合来看,经过评估的硬件 TRNG、安全芯片内的密钥处理机制,以及配套的软件与工程保障,共同构成了 imKey 随机数安全的基础。
如何综合判断硬件钱包的安全性
imKey 固件并非全部开源,用户和社区研究者无法像审查完全开源项目一样,直接查看完整代码或独立复现正式固件。因此,对产品安全性的判断,还需要结合芯片认证、产品架构、安全测试和持续维护等多个维度。
开源与否并不是判断安全性的唯一标准。代码公开可以降低外部研究者参与检查的门槛,但“代码可以查看”并不代表所有实现都已经得到充分验证。COLDCARD 事件也提醒我们,一些问题可能出现在跨模块调用、构建或链接等环节,仅查看单独的代码片段未必能够发现。
在 imKey 已公开的资料中,安全芯片的 TRNG 和相关安全能力具有第三方认证依据,产品架构也对随机数来源及 Seed、私钥和签名的处理边界进行了说明。这些信息可以帮助用户了解 imKey 随机数与密钥安全机制的基本依据。
需要注意的是,仅通过连续创建几组助记词,或者观察单词排列“看起来是否足够随机”,无法可靠判断设备的随机数安全性。某些弱随机数的输出同样可能显得杂乱,甚至通过一些常见的统计测试。
真正有意义的安全评估,除了安全芯片,还需要结合产品架构、关键实现、构建流程和异常处理机制综合判断。
遇到类似安全事件,用户应该怎么做
截至本文发布时,COLDCARD 官方公告的影响范围不包含 imKey,也没有证据显示 imKey 受到该事件影响。因此,imKey 用户无需仅因为这次事件更换助记词或迁移资产。
如果未来看到类似的随机数安全消息,不必仅凭社交媒体截图立刻操作。先确认消息来自哪个厂商、涉及哪些型号和固件版本、自己的助记词由哪台设备生成,以及厂商是否明确要求迁移。
如果厂商确认某个型号或固件版本生成的助记词存在弱熵,用户通常可以根据自己的情况选择以下处理方式:
方案一:升级原设备并重新创建钱包
从厂商官方渠道安装已经修复的固件,使用升级后的设备创建一套全新助记词。妥善完成备份并核对钱包地址后,先进行小额转账测试,确认无误再迁移剩余资产。
需要注意的是,仅升级固件不能修复此前已经生成的助记词,资产仍需迁移至新创建的钱包。
方案二:更换硬件钱包并迁移资产
如果用户希望更换设备,可以选择随机数来源、密钥处理边界和安全认证信息相对清晰的硬件钱包,在新设备上重新创建钱包。
imKey Pro 采用具备硬件 TRNG 的 Infineon SLE78 系列安全芯片,钱包所需的随机数由安全芯片提供,Seed、私钥的生成与存储以及交易签名等关键操作均在芯片安全边界内完成。
使用 imKey Pro 迁移资产时,应通过官方渠道购买设备,安装最新固件,并选择“创建钱包”生成一套全新助记词,不要将可能受到影响的旧助记词直接导入新设备。完成备份核对和小额转账测试后,再迁移剩余资产。
更换设备不是关键,使用安全的随机数机制重新生成助记词,才是完成此次迁移的核心。
安全来自完整体系
硬件钱包的价值没有因为一次事件消失。把私钥与联网设备隔离,并在独立硬件中完成签名,仍然能有效降低恶意软件和远程攻击直接获取私钥的风险。
硬件钱包的安全来自多层机制的共同作用:可靠的随机数来源、安全的密钥处理边界、正确的固件实现,以及持续的软件维护和安全响应。
对用户而言,不必只凭“离线”“安全芯片”或“开源”等单一标签作出判断。了解私钥如何生成、在哪里保存、交易在哪里签名,以及厂商如何持续维护产品,才能更完整地认识一台硬件钱包的安全性。
imKey 将持续完善产品安全机制与相关说明,让用户更清楚地了解每一项安全设计如何保护自己的数字资产。
参考资料
- Coinkite:Technical Deep Dive into the Entropy Issue
- imKey:安全芯片真随机(TRNG)FAQ
- imKey:真“芯”,真随机
- BIP-39:Mnemonic code for generating deterministic keys
- Common Criteria:Infineon M7892/M7893 B11 Security Target
- Infineon:SLE78 系列产品信息
- Oracle:Security Target Lite – Java Card Platform on SLE78
- BSI:AIS 31——随机数生成器功能等级与评估方法
重要声明:imKey 仅提供实体安全硬件产品,不提供虚拟资产交易、托管、代操作或投资建议。文中提及的第三方产品和事件仅用于安全机制说明,具体影响范围和处置要求应以相关厂商的最新官方公告为准。
0 条评论
文章评论已关闭。