作者: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. 總結
無論如何,如果硬體錢包一旦遺失或落入駭客手中,建議立即啟用備份助記詞,盡快轉移資產,確保萬無一失。比起助記詞觸網儲存和釣魚攻擊,這個風險仍然較小。