概要:本文介绍了一种名为Dark Skippy的新型硬件钱包破解技术,它通过在硬件钱包中植入恶意固件,利用低随机性签名将用户的助记词嵌入到比特币交易中,再从区块链上提取助记词以盗取用户资产。文章还解释了比特币签名的原理、如何避免此类攻击,并提出了多重签名作为解决方案。
本文作者:OneKey 中文@OneKeyCN。发文时间:下午10:59 · 2024年8月14日
海外加密安全圈炸锅了。
又一个改进的硬件钱包破解手段披露,更高更快更强。服了,难道黑客白帽们也在搞奥运?
OneKey 将会用尽量简单语言来解释,一起潜入 👇
(1)黑客是如何黑入视频里的硬件钱包的?✨
1. 攻击者将恶意固件刷到你的硬件钱包上。
2. 黑客使用这个带有恶意固件的硬件钱包发送比特币交易。恶意固件会将你的助记词通过低随机性签名的方式「嵌入」到这笔交易中,而这笔交易会公开地存储在区块链上。
3. 攻击者在区块链上找到你的交易,运行一个特殊算法,从中提取出你的比特币助记词。
4. 拿到你的助记词后,攻击者就能访问并盗走你的比特币。
(2)这个具体的攻击算法的原理是什么?✨
到这里会需要你对 BTC 转账有点了解。如果你不是个爱刨根问底的好奇宝宝,可以直接跳到下一个如何避免被攻击 :)
在进行比特币转账前——你需要准备好交易数据,这包括交易的输入(也就是你要花费的比特币来源)和输出(你要把比特币转到哪里)。
随后你通过哈希算法计算出消息哈希值。这是需要签名的数据摘要,你可以理解为「浓缩的交易数据」。
接下来重头戏来了——你需要对这个交易数据进行签名。以椭圆曲线数字签名算法(ECDSA)为例,你需要结合一个内部随机数 k 来输出签名结果。
随机数 k 的引入是为了确保每次签名的唯一性和安全性。假如你每次使用相同的随机数 k,那么虽然你签署的消息(交易)可能不同,生成的签名却可能出现规律,导致攻击者通过数学分析破解你的私钥。
因此,每次都使用一个不可预测的随机数 k 可以保证每次生成的签名都是独一无二的,即使对同一个消息进行多次签名,结果也会不同。
随后矿工就会验证并把交易打包广播到区块链。
在早期一些不规范的使用中,多次随机性不好的签名就有可能被黑客算出私钥。(都是 2013 的甚至更早的事情了)现在大部分硬件钱包,包括 OneKey,都采用了 RFC6979 安全标准,保证这个内部随机数在数学上足够随机。
这也是为什么早期的时候很多比特币 OG 的地址都是用一次换一次,公钥暴露降低比特币地址的安全度,还得手动设置专门的找零地址。现代比特币钱包(如HD钱包,分层确定性钱包)可以自动生成和管理大量地址,并将其背后的复杂性隐藏起来。当然,这里就扯远了,有兴趣的朋友可以自行考古。
到这里,理解下面视频里面的攻击就不难了:
虽然我无法直接从加密芯片上读取私钥,但是假如我能修改你的固件里面的随机算法,让这个随机数 k 不随机,我就能通过几次签名,通过链上广播的信息反求出你的私钥。
从某种意义上,这就等于把私钥嵌入到你的多个签名里了。在 Dark Skippy 中,他们将这个需求降低到了只需要2个签名(对于12个助记词而言 2 个,24个助记词需要4个签名)来破解私钥。确实比以往的方法更高效了。
(3)如何避免被攻击?✨
这一攻击成功,在于两件事,他们成功「拿到」了无辜用户的硬件钱包,并且成功「植入」恶意固件。
所以……
1. 确保硬件钱包从出厂、运输直到你的手里,没被第三方碰过。
现在几家硬件钱包品牌包括 Onekey,都有多层的防拆、加密塑封设计的「防供应链攻击」。保证到货后如果有拆封痕迹都能够立即发现。
建议您从收到货开始全程录像开箱,作为售后依据!
开始使用了之后,也要保管好钱包。确保你的硬件钱包不会被别人拿到,防止被恶意修改。
2. 确保固件代码不会被人恶意修改。
确保你是从官网渠道下载的更新。
还要做好校验工作。这里这里各家厂商的措施都不太一样,下面以 OneKey 为例,如果您使用其他厂商的可以查询下相关的措施。
首先,我们的软件和硬件代码是开源的(https://github.com/OneKeyHQ),并通过了慢雾科技
@SlowMist_Team和@Offside_Labs等知名安全机构的审计。
其次,OneKey 最新的硬件采用多颗军工级保密 EAL 6+ 芯片,机器和 App 都会自动校验固件。机器开机后,如果是非官方固件的签名,会被检测到并硬抹除助记词数据。你甚至不能恶意降级——这同样会导致助记词被抹除。
同时,用户可以自行验证的固件代码一致性,参考这篇:验证 OneKey 发布的固件文件与开源代码的一致性。
(4)总之 ✨
无论如何,如果硬件钱包一旦丢失或者落入黑客手中,我们都建议立即启用备份助记词,尽快转移资产,确保万无一失。
这个风险相对于助记词触网储存和钓鱼,还是比较小的。
✨ 补充阅读:
在原文提到的攻击方法中,提到了一种方式也能够预防——“反泄露 Anti-exfil”,是一种防止上述攻击的方法。简单来说,反泄露是一种安全技术,它将硬件签名设备的熵与第二台设备(通常是伴随软件钱包的主机)的熵结合起来生成随机数。
然而,这种方法有两个缺点。
首先,目前还没有反泄露的完全公认的标准,这个还在发展中,所以你必须信任供应商完美实施了反泄露。
其次,由于反泄露改变了生成签名的方式,即每笔交易都需要从第二台设备获取随机数,这与当前大多数比特币钱包的工作方式不兼容,因此会带来用户界面和体验上的挑战。
在反泄露有了明确的标准并获得更广泛的钱包兼容性之前,如果你真的很担心「Dark Skippy」,我们建议使用多重签名作为更实用的解决方案。
多重签名与反泄露在本质上实现了相同的目标:它也需要来自第二台设备的熵来授权每笔比特币交易。如果你愿意,多重签名还可以从不止两台设备中添加熵(例如3-of-5多重签名)。最后但同样重要的是,多重签名在比特币中已经使用了10多年,经受住了考验(保护了数千亿比特币),并且已经非常标准化(比如PSBT、BSMS、输出描述符等标准)。
很多大的公司和基金,包括门头沟、贝莱德等,都在用比特币多签。
英文资源:Dark Skippy Disclosure
Dark Skippy 是一种强大的方法,用于恶意签名设备泄露秘钥。
使用 Dark Skippy,恶意签名者可以利用修改后的签名函数,通过将主秘钥嵌入交易签名中,高效且隐蔽地输出他们的主秘密种子。
这种攻击是在比特币签名设备和硬件钱包的背景下发现和讨论的,尽管可能适用于比特币之外的环境。
Dark Skippy 需要签名者通过恶意固件受损。Dark Skippy 在野外尚未被发现。
https://darkskippy.com/
更多内容请点击“阅读原文”,欢迎进加助手(yun-tianming)进群。为避免垃圾广告骚扰,入群需转助手10元红包作为押金(未发广告无违规,退群时退还)。
评论