關鍵 Coldcard 錢包漏洞導致近六百枚比特幣迅速被竊
目錄
你可能想知道的事
如果硬體錢包的韌體不小心跳過了硬體亂數來源,該裝置會變得不安全嗎?單一實作錯誤如何導致數百個獨立比特幣錢包被快速盜取?
主要議題
在一次集中且快速的攻擊中,約 594 bitcoin —— 事件發生時價值約 3,800 萬美元 —— 在不到 30 分鐘內,從大約 500 個單簽錢包中被轉出。這些轉移發生於週五 01:31 到 01:56 UTC 之間,集中在窄小的區塊窗口內。盜取行為追溯到某些版本 Coldcard 韌體在 2021 年 3 月引入的金鑰產生實作缺陷。
Coldcard 是由加拿大公司 Coinkite 生產的廣泛使用專用硬體錢包。該裝置旨在離線產生並保護私鑰,將種子短語與簽名操作與連網系統隔離。Coinkite 的產品線以 Mk2、Mk3、Mk4、Q 與 Mk5 等世代發布。本次事件所造成的風險並非與實體型號本身綁定,而是與生成錢包種子時所執行的韌體相關。
問題的核心在於隨機性。密碼學種子短語必須由足夠大的亂數來源產生,以致暴力破解或預測結果變得不可行。在此案例中,某個韌體建置設定導致 Coldcard 裝置繞過其板上硬體亂數產生器。支援函式庫包含一個檢查,只確認設定選項是否存在,而非該硬體 RNG 是否實際啟用。當硬體 RNG 被跳過時,裝置無聲地回退到以可預測晶片資料(例如裝置序號與內部時鐘暫存器)為種子的基本軟體偽隨機例程。
序號或時鐘暫存器都不是秘密值。晶片序號是固定的出廠資料;攻擊者可以取得或猜測序號範圍,而時鐘暫存器提供可被對手縮小或重現的時間狀態。由於回退的亂數來源衍生自非祕密值,產生的種子或金鑰變得比預期可預測得多。Block 的比特幣工程與安全團隊將有問題的變更追溯到 2021 年 3 月 1 日的一次提交,該提交在同月成為 Coldcard 韌體 4.0.0 的一部分。
曝光範圍超出初始種子生成。相同的弱亂數產生器也用於產生 Coldcard 紙錢包私鑰(其產生器輸出直接對應私鑰且無進一步推導)、種子拆分遮罩、裝置克隆金鑰與 Key Teleport 轉移。簡言之,任何依賴受影響亂數輸出的功能都可能產生被妥協的祕密。
分析與揭露在短時間內展開。Block 公開描述了他們的發現並通知 Coinkite,Coinkite 承認該問題。Coinkite 警告在 Mk3 裝置上、運行韌體 4.0.1 或更高版本時生成種子的用戶要小心。根據初步評估,Coinkite 表示 Mk4、Q 與 Mk5 型號似乎未受影響。Block 表示在完成全面的可利用性測試前即發布其分析,因為當時已存在現實世界的利用。
竊取本身顯示出特定模式:大約 1,324 個獨立比特幣分塊在約 500 筆交易中被轉移,全部發生於三個區塊的時間範圍內。在被轉移的資金中,有 562 BTC 被合併到一個在報告時保持不動的單一地址。每個被抽空的錢包都是單簽且持有超過 0.15 BTC;許多錢包已多年閒置,餘額的存款時間橫跨 2021 至 2026 年 —— 與韌體錯誤的時間範圍相符。
儘管抽空規模與可見度高,比特幣整體市場當時反應有限:亞洲早盤時段價格仍維持在或高於 64,000 美元附近。這種有限的影響可能反映了市場深度、被盜幣並未立即在交易所販售,以及投資人理解到一旦被追蹤或難以變現,被盜幣可能短期內無法使用等因素的組合。
從技術與防禦角度來看,該事件強化了對裝置製造商、安全工程師與終端使用者的幾項重要教訓。首先,建置時的設定與執行時的檢查必須謹慎實作:僅驗證選項存在並不等同於確認它已啟用。其次,像密碼學亂數這類關鍵操作的回退機制應以與主要機制相同的嚴謹度對待。當安全硬體 RNG 無法使用時,回退要麼拒絕操作,要麼使用經過建立且可審計的決定性替代方案,並透過外部引入安全熵,而非依賴可預測的晶片元資料。
對使用者而言,實際的結論是:確認用來生成任何錢包種子的韌體版本,根據廠商公告保持裝置韌體更新,並在廠商或安全研究人員建議下,考慮將資金遷移至在未受影響韌體或不同硬體上生成的新種子。由於曝露取決於生成種子時所執行的韌體,僅更新韌體可能無法修復已使用脆弱亂數建立的錢包 —— 已衍生出的金鑰仍然存在風險,需進行遷移。
最後,此事件強調一項更廣泛的原則:硬體裝置可以降低風險但無法消除對嚴謹軟體工程、安全供應鏈實務、透明的漏洞揭露與在發現缺陷時快速協調回應的需求。即使是小團隊或小眾產品供應商,也可能產生被廣泛使用的基礎設施;在實作層面的錯誤若與可預測的利用方式結合,可能導致大規模的被盜。
重點一覽表
| 面向 | 說明 |
|---|---|
| 受影響錢包 | 大約 500 個使用有缺陷亂數生成種子的單簽錢包。 |
| 總被盜數量 | 大約 594 BTC,報告時約為 3,800 萬美元。 |
| 根本原因 | 韌體建置設定導致繞過硬體 RNG;函式庫檢查確認設定存在而非其是否啟用,導致回退至可預測的軟體種子。 |
| 時間範圍 | 脆弱程式碼可追溯至 2021 年 3 月 1 日針對韌體 4.0.0 的提交;被轉移的幣分其存款時間跨 2021–2026 年。 |
| 提及型號 | Coinkite 警告在韌體 4.0.1 或更高版本上運行的 Mk3 裝置;初步分析顯示 Mk4、Q 與 Mk5 似乎未受影響。 |
| 其他曝露 | 使用相同產生器的紙錢包私鑰、種子拆分遮罩、克隆金鑰與轉移可能被妥協。 |
事後…
展望未來,該事件應促使廠商強化建置與執行時驗證,採用對關鍵密碼學操作更安全的回退政策,並改善漏洞揭露程序。使用者應稽核用來產生種子的韌體來源、密切遵循廠商公告,並假定任何在受影響韌體上建立的種子可能需要遷移。此事件凸顯密碼學安全不僅依賴硬體能力,也依賴謹慎的軟體工程、測試與研究人員與製造商之間負責任的協調以限制損害。