攻擊者利用某些 Coldcard 硬體錢包生成的弱種子,於 7 月 30 日從數百個地址竊取了價值數千萬美元的比特幣。
重點摘要
- 7 月 30 日,與 Coldcard 關聯的竊案導致數百個錢包中的比特幣被盜。
- Coinkite 表示 Mk3 种子的熵約為 40 位,而非 128 位。
- Coldcard 使用者必須安裝修復版固件,並在轉移資金前建立新的種子。
根據 Galaxy Research 的深入分析,核心盜竊事件在約 25 分鐘內以高度協調的方式發生,而後續的廣泛分析則將約 1,196 個地址和高達 1,083 比特幣(價值近 7,000 萬美元)與持續約 41 分鐘的活動聯繫起來。隨著調查人員繼續追蹤公開的比特幣區塊鏈上的交易,最終數字可能有所變化。
一個已存在五年的漏洞影響了全球的比特幣錢包
受影響的錢包主要屬於長期持有者,他們使用在2021年3月起發布的Coldcard 設備運行易受攻擊的固件生成恢復密鑰。Coldcard 是由加拿大製造商 Coinkite 製造的空氣隔離硬體錢包,專為將比特幣(BTC)密鑰與互聯網連接設備隔離而設計。
許多被清空的钱包地址已長期處於休眠狀態。攻擊者迅速行動,支付了較高的固定交易費用,且未留下任何找零輸出,意味著每個地址的資金均被完全清空。這種模式表明,這是一次使用預先準備好的私鑰列表進行的自動化操作,而非客戶自行轉移資金。
此次盜竊並非由釣魚攻擊、用戶電腦上的惡意軟體、實體設備盜竊或傳統的遠端入侵引起。相反,一個固件錯誤削弱了部分 Coldcard 設備在生成錢包種子時所使用的隨機性。這些種子看起來正常,但實際上來自比用戶所承諾的少得多的可能組合範圍。
Coldcard 的隨機數生成器悄然失敗
比特幣錢包的助記詞是一組秘密文字,通常顯示為 12 個或 24 個單詞,錢包依此生成其地址和私鑰。一個正確生成的 12 個單詞助記詞包含 128 位熵,這是一種技術指標,描述了極其龐大的可能組合數量,使猜測助記詞幾乎不可能。
Coldcard 裝置本應透過裝置微控制器內的硬體隨機數產生器獲取該隨機性。該元件從物理電氣噪聲中提取資料,外部觀察者應無法預測。
然而,在2021年的一次軟體函式庫遷移過程中,Coinkite 披露了兩個介面相同的隨機數函數發生了混淆:一個訪問設備的正確硬體生成器,另一個則是為缺乏合適硬體的板卡設計的弱軟體備用方案。
一個設定值禁用了預設的 MicroPython 硬體路徑,因為 Coinkite 提供了其自己的硬體封裝。軟體僅檢查該設定是否存在,而非檢查其是否已啟用。由於該設定存在但被賦值為 0,因此建置成功完成,而種子生成則靜默地切換至較弱的軟體生成器。
工廠數據與時間取代了真實隨機性
該備用方案嚴重依賴可預測的裝置資訊,包括類似序列號的晶片識別碼以及與啟動時間相關的內部時鐘值。攻擊者若能縮小這些輸入範圍,所需搜尋的範圍將遠小於安全生成種子所預期的 128 位元範圍。
Coinkite 根據目前的假設,估計易受攻擊的 Mk3 金鑰的有效搜尋空間約為 40 位。這仍然是一個相當大的可能性數量,但使用專用計算設備即可進行搜尋,特別是當攻擊者可以將候選金鑰與 區塊鏈上可見的比特幣地址 進行比對時。

後期的 Coldcard 型號,包括 Mk4、Q 和 Mk5,從安全元件中增加了部分隨機性。然而,僅有有限的部分到達了受影響的生成器,導致在安裝修正固件前創建的助記詞僅有約 72 位的有效熵。這比 Mk3 的路徑更強,但仍低於預期的 128 位標準。
這種差異類似於將一個真正隨機的鎖定組合,替換為根據鎖的序列號和首次開機時間推導出的組合。所得的組合可能看起來是隨機的,但知道公式並能估算起始資訊的人可以重現它。許多用戶正在遷移,不僅從 Mk3 設備,也從 Mk4、Q 和 Mk5 設備遷移。
Coinkite 建議用戶創建全新的助記詞
Coinkite 發布了安全通告 和 在發現此主動威脅後修復了固件。該公司表示,曾在受影響固件上生成助記詞的用戶,應使用已修復的版本創建全新的助記詞,並將其比特幣轉帳至由該助記詞控制的地址。
僅安裝更新是不夠的。在有缺陷的系統下創建的助記詞會永久處於弱狀態,因為固件更新無法為已存在的詞語添加隨機性。
Coinkite 建議用戶更新設備、建立新的助記詞、驗證備份和錢包指紋、確認收款地址、發送一小筆測試交易,然後轉移剩餘餘額。用戶應保留舊備份,直至轉帳確認,但不應再將舊助記詞視為安全。
公司已確認固定版本,包括 Mk3 4.2.0 或更高版本、Mk4 和 Mk5 5.6.0 或更高版本,以及 Q 1.5.0Q 或更高版本,並附帶相應的 Edge 版本。Tapsigner、Opendime 和 Satscard 產品使用不同的代碼,據報未受影響。
新增安全功能保護部分 Coldcard 使用者
在生成種子時,若使用者加入了足夠的獨立擲骰次數,便會受到顯著保護,因為他們自身的隨機性會壓過有缺陷的軟體輸入。Coinkite 表示,至少 50 次公平骰子的私有擲骰即可提供足夠的保護,以應對此問題,而額外的擲骰則能提供更寬廣的保證金。
一個強大的 BIP-39 密語也會建立一個獨立的錢包,僅靠助記詞無法重建。多重簽名錢包在比特幣轉移前需要來自多個裝置或地點的密鑰,當易受攻擊的 Coldcard 助記詞僅代表簽署安排中的一部分時,這些錢包基本或完全受到保護。
然而,這些防護措施是可選的。許多受害者似乎當時遵循了標準的安全建議:購買信譽良好的硬體錢包、離線生成助記詞、保護備份,並從未在連接互聯網的設備上輸入助記詞。
Coinkite 承認錯誤,討論轉向 AI
Coinkite 執行長 Rodolfo Novak,廣為人知的 NVK,於 7 月 31 日公開致歉,並表示公司對固件故障負全責。「我很抱歉,也感到心碎。我們的團隊對昨天的新聞感到悲痛,」Novak 寫道。他承認,熱修補程式可保護新生成的種子,但無法修復在有漏洞軟體下生成的種子。

諾瓦克解釋說,Coinkite 在核實細節後將發布完整的技術報告,並協助受影響的用戶處理警方報告、保險索賠或獨立調查。他還警告開發者,人工智慧(AI)工具現在能夠比傳統審查流程更快地掃描舊的公開代碼以發現隱藏的弱點。
Coinkite 強調,必須假設攻擊者使用 AI 檢查其開源固件,但尚未有證據證明該漏洞是如何被發現的。該公司也承認,最近與一頂尖 AI 模型進行的審查未能識別出該問題。幾家競爭對手的硬體錢包製造商已在社群媒體上指出,其產品不受影響。
「在 Coldcard 事件發生後,該公司告知 X 用戶:『Ledger 裝置不受最近發布的 Coldcard Mk3 警告影響。Ledger 裝置使用內建於我們安全元件晶片中的認證真隨機數生成器(TRNG),為每個 24 個詞的秘密恢復短語生成完整的 256 位熵。』」
Trezor 使用者:您的資金是安全的,」硬體錢包製造商 Trezor 於週五解釋。「最近的 Coldcard 問題僅限於其自行開發的固件以及部分設備生成隨機數的方式。Trezor 並未使用該代碼。」
已新增 Trezor X 帳戶:
我們一直將多個獨立的隨機來源混合在一起(裝置硬體 + 主機 + 新型號上的安全元件)。對於所有損失比特幣的人,我們深感抱歉。
冷錢包用戶接下來應關注的內容
攻擊者的身份仍未知,被盜的比特幣隨時可能從其整合地址轉移。調查人員仍在努力確定實際生成了多少個易受攻擊的種子、仍有多少比特幣處於暴露狀態,以及攻擊者是否已識別出其他高價值錢包。然而,Coinkite 可能對很久以前的錢包所有者並無太多資訊。
「有趣的雙刃劍:Coinkite 在 120 天後會清除所有客戶記錄,以防止資料外洩,」Casa 的共同創辦人 Jameson Lopp 在 X 上報告。「這意味著他們無法聯繫過去 5 年內購買了有漏洞的 Coldcard 的客戶,以警告他們此漏洞。」

此事件也將測試 Coinkite 是否能恢復對 Coldcard 的信心,以及硬體錢包製造商是否會採用更嚴格的獨立種子生成審查。對於用戶而言,當務之急更為簡單:任何在受影響的固件上建立種子但未使用強大的獨立骰子熵、密碼短語或多簽保護的用戶,都應將該種子視為已受損,並謹慎將資金轉移至新生成的錢包。
除了這起毀滅性的盜竊事件外,社區中的比特幣用戶正發出警報,並敦促他人在更多易受攻擊的錢包被清空前廣為宣傳。
