Dark Skippy:如何用 2 个签名破解你的硬件钱包私钥?
作者:OneKey 中文 来源:X,@OneKeyCN
近期,海外加密安全圈炸锅了!又一个改进的硬件钱包破解手段被披露,速度更快、效率更高。难道黑客和白帽们也在搞“奥运”?
在这篇文章中,OneKey 将用尽量简单的语言为你解释这一切。让我们一起来潜入这个话题吧。
1. 黑客是如何破解硬件钱包的?
-
刷入恶意固件:攻击者将恶意固件刷到你的硬件钱包上。
-
发送交易:黑客使用这个带有恶意固件的硬件钱包发送比特币交易。恶意固件会将你的助记词通过低随机性签名的方式“嵌入”到这笔交易中,而这笔交易会公开存储在区块链上。
-
提取助记词:攻击者在区块链上找到你的交易,运行特殊算法,从中提取出你的比特币助记词。
-
盗取比特币:拿到助记词后,攻击者就能访问并盗走你的比特币。
2. 这个攻击算法的原理是什么?
要理解这个算法,你需要对 BTC 转账有些了解。如果你不是那种爱刨根问底的好奇宝宝,可以直接跳到下一部分,了解如何避免被攻击。
在进行比特币转账前,你需要准备交易数据,包括交易的输入(即你要花费的比特币来源)和输出(你要将比特币转到哪里)。随后,通过哈希算法计算出消息哈希值,这是需要签名的数据摘要,可理解为“浓缩的交易数据”。
关键步骤:签名
接下来是重头戏:你需要对这个交易数据进行签名。以椭圆曲线数字签名算法(ECDSA)为例,你需要结合一个内部随机数 k 来生成签名结果。
随机数 k 的引入是为了确保每次签名的唯一性和安全性。如果每次使用相同的随机数 k,即便你签署的消息(交易)不同,生成的签名可能会出现规律,从而被攻击者通过数学分析破解你的私钥。
因此,每次都使用一个不可预测的随机数 k,可以确保每次生成的签名都是独一无二的,即使对同一个消息进行多次签名,结果也会不同。
最后,矿工会验证并将交易打包广播到区块链。
黑客如何利用弱随机数攻击?
虽然无法直接从加密芯片上读取私钥,但如果黑客能修改你的固件里的随机算法,使随机数 k 不再随机,那么通过几次签名后,便可以通过链上广播的信息反推出你的私钥。
在 Dark Skippy 中,黑客将这个需求降低到只需 2 个签名(对于 12 个助记词)或 4 个签名(对于 24 个助记词)即可破解私钥。这比以往的方法更高效。
3. 如何避免被攻击?
这类攻击成功的关键在于:黑客成功拿到了用户的硬件钱包,并植入了恶意固件。
所以,建议采取以下防护措施:
1. 确保硬件钱包的安全
-
防供应链攻击:确保硬件钱包从出厂、运输直到你的手里,未被第三方碰过。现在多家硬件钱包品牌,包括 OneKey,都有多层防拆封设计,确保如果有拆封痕迹能够立即发现。
-
录像开箱:建议您从收到货开始全程录像开箱,作为售后依据。
-
保管好钱包:开始使用后,确保硬件钱包不会被他人接触,以防被恶意修改。
2. 确保固件代码的安全
-
从官网渠道下载更新:确保你从官方渠道下载固件更新。
-
做好校验工作:不同厂商的措施不一。以 OneKey 为例,我们的软件和硬件代码是开源的,并通过了知名安全机构的审计。OneKey 最新硬件采用多颗军工级保密 EAL 6+ 芯片,机器和 App 会自动校验固件,非官方固件的签名会被检测到并硬抹除助记词数据。
4. 总结
无论如何,如果硬件钱包一旦丢失或落入黑客手中,建议立即启用备份助记词,尽快转移资产,确保万无一失。相比助记词触网存储和钓鱼攻击,这个风险仍然较小。