如何用2个簽名黑掉你的硬體錢包私鑰?

admin
admin
管理员
135
文章
0
粉丝
加密货幣百科评论阅读模式

概要:本文介绍了一种名為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元红包作為押金(未發广告無違規,退群时退还)。


文章末尾固定信息

我的微信
这是我的微信掃一掃
weinxin
我的微信
微訊號已复制
我的微信公眾号
我的微信公眾号掃一掃
weinxin
我的公眾号
公眾号已复制
 
admin
  • 本文由 admin 发表于2024 年 11 月 4 日 21:21:54
  • 轉载请務必保留本文链接:https://zuizhiyou.com/%e5%a6%82%e4%bd%95%e7%94%a82%e4%b8%aa%e7%ad%be%e5%90%8d%e9%bb%91%e6%8e%89%e4%bd%a0%e7%9a%84%e7%a1%ac%e4%bb%b6%e9%92%b1%e5%8c%85%e7%a7%81%e9%92%a5%ef%bc%9f.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证