作者:OneKey 中文 来源:X,@OneKeyCN

近期,海外加密安全圈炸锅了!又一个改进的硬件钱包破解手段被披露,速度更快、效率更高。难道黑客和白帽们也在搞“奥运”?

在这篇文章中,OneKey 将用尽量简单的语言为你解释这一切。让我们一起来潜入这个话题吧。

1. 黑客是如何破解硬件钱包的?

  1. 刷入恶意固件:攻击者将恶意固件刷到你的硬件钱包上。

  2. 发送交易:黑客使用这个带有恶意固件的硬件钱包发送比特币交易。恶意固件会将你的助记词通过低随机性签名的方式“嵌入”到这笔交易中,而这笔交易会公开存储在区块链上。

  3. 提取助记词:攻击者在区块链上找到你的交易,运行特殊算法,从中提取出你的比特币助记词。

  4. 盗取比特币:拿到助记词后,攻击者就能访问并盗走你的比特币。

2. 这个攻击算法的原理是什么?

要理解这个算法,你需要对 BTC 转账有些了解。如果你不是那种爱刨根问底的好奇宝宝,可以直接跳到下一部分,了解如何避免被攻击。

在进行比特币转账前,你需要准备交易数据,包括交易的输入(即你要花费的比特币来源)和输出(你要将比特币转到哪里)。随后,通过哈希算法计算出消息哈希值,这是需要签名的数据摘要,可理解为“浓缩的交易数据”。

关键步骤:签名

接下来是重头戏:你需要对这个交易数据进行签名。以椭圆曲线数字签名算法(ECDSA)为例,你需要结合一个内部随机数 k 来生成签名结果。

随机数 k 的引入是为了确保每次签名的唯一性和安全性。如果每次使用相同的随机数 k,即便你签署的消息(交易)不同,生成的签名可能会出现规律,从而被攻击者通过数学分析破解你的私钥。

因此,每次都使用一个不可预测的随机数 k,可以确保每次生成的签名都是独一无二的,即使对同一个消息进行多次签名,结果也会不同。

最后,矿工会验证并将交易打包广播到区块链。

黑客如何利用弱随机数攻击?

虽然无法直接从加密芯片上读取私钥,但如果黑客能修改你的固件里的随机算法,使随机数 k 不再随机,那么通过几次签名后,便可以通过链上广播的信息反推出你的私钥。

在 Dark Skippy 中,黑客将这个需求降低到只需 2 个签名(对于 12 个助记词)或 4 个签名(对于 24 个助记词)即可破解私钥。这比以往的方法更高效。

3. 如何避免被攻击?

这类攻击成功的关键在于:黑客成功拿到了用户的硬件钱包,并植入了恶意固件。

所以,建议采取以下防护措施:

1. 确保硬件钱包的安全

  • 防供应链攻击:确保硬件钱包从出厂、运输直到你的手里,未被第三方碰过。现在多家硬件钱包品牌,包括 OneKey,都有多层防拆封设计,确保如果有拆封痕迹能够立即发现。

  • 录像开箱:建议您从收到货开始全程录像开箱,作为售后依据。

  • 保管好钱包:开始使用后,确保硬件钱包不会被他人接触,以防被恶意修改。

2. 确保固件代码的安全

  • 从官网渠道下载更新:确保你从官方渠道下载固件更新。

  • 做好校验工作:不同厂商的措施不一。以 OneKey 为例,我们的软件和硬件代码是开源的,并通过了知名安全机构的审计。OneKey 最新硬件采用多颗军工级保密 EAL 6+ 芯片,机器和 App 会自动校验固件,非官方固件的签名会被检测到并硬抹除助记词数据。

4. 总结 

无论如何,如果硬件钱包一旦丢失或落入黑客手中,建议立即启用备份助记词,尽快转移资产,确保万无一失。相比助记词触网存储和钓鱼攻击,这个风险仍然较小。