作者:KEYHUNTER
幻影種子洩露
本文探討了比特幣加密貨幣生態系統面臨的最關鍵、最隱密的威脅之一:在運行HD錢包時,記憶體中殘留的中間金鑰資料(例如HMAC-SHA512結果)所導致的漏洞。這個看似微小的軟體實現缺陷會導致「幽靈洩漏」現象,即私鑰和衍生鏈即使在使用後仍然存在於RAM中,等待攻擊者利用記憶體轉儲或專用惡意軟體將其提取出來。
這種攻擊被稱為冷啟動攻擊或記憶體殘留攻擊,它構成了巨大的威脅:它允許攻擊者完全奪取資金,且不留任何痕跡或回滾機制。取得一個主金鑰就相當於完全控制了所有位址以及源自於被入侵錢包的資產。實際上,即使一台運行HD錢包的電腦遭到入侵,也可能導致數百萬美元的損失,而且用戶和區塊鏈基礎設施往往都難以察覺。
“幻影內存威脅:HD錢包的關鍵漏洞以及針對比特幣生態系統的私鑰提取攻擊”
幻影種子洩漏 ——想像一下,您的私鑰就像隱形的種子,被植入到應用程式的記憶體中。每次進行生成或派生操作時,這些種子有時會以「幽靈」的形式殘留在記憶體中,等待被回收。幻影種子洩漏攻擊正是利用了這一現象:攻擊者或惡意模組會在關鍵時刻(HMAC-SHA512 呼叫之後,垃圾回收之前)轉儲進程的內存,並提取中間字節 lr。 攻擊ilr者可以從這些「幽靈」殘留資料中提取主金鑰或子金鑰,從而完全控制您的 HD 錢包。
攻擊的關鍵要素:
- 在執行 NewMaster 或 Derive 函數期間直接捕獲記憶體轉儲
- 從轉儲檔案中提取位元組
lr/ilr(包含 Il 和 Ir) - 主鑰匙和子鑰匙鏈的重建
“別讓你的錢包在莫須有的損失中消失!”
危險之處在於:
即使應用程式在使用後正確清除了私鑰,但如果忘記銷毀中間的 HMAC 緩衝區,金鑰仍然會以「幽靈」的形式存在於記憶體中。這正是「幽靈種子洩漏」攻擊所利用的,它將一次看似普通的 RAM 轉儲變成了一場驚心動魄的秘密搜尋。
研究論文:“HMAC-SHA512 幻影洩漏對比特幣網路安全的影響:風險、攻擊和分類”
使用分層確定性(HD,BIP-32)模型建立的現代加密貨幣錢包不僅容易受到實現錯誤的影響,而且在記憶體中處理敏感資料時也存在漏洞。一個關鍵漏洞是對中間金鑰資料(特別是HMAC-SHA512主金鑰產生或衍生過程中產生的陣列)的清理不完整或不及時。本文詳細探討了此類漏洞如何導致對比特幣生態系統的攻擊,這些攻擊在科學文獻中是如何被命名的,並探討了此類關鍵問題是否已有註冊的CVE編號。
脆弱性發生的機制
許多HD錢包實作會在金鑰產生或衍生過程中計算HMAC-SHA512,其結果包含兩個敏感值:私鑰Il和鏈Ir。這些臨時位元組數組不會立即從記憶體中清除,攻擊者可以透過對RAM的底層存取權限(例如,透過轉儲或植入的惡意軟體)來存取它們 。
比特幣的攻擊面和風險
記憶體存取攻擊
風險本質 :如果攻擊者取得了正在運行的錢包進程的記憶體轉儲,他們就能輕易找到包含私鑰和鏈的未清理資料結構,並進行進一步推導。這不僅可能導致竊取單一用戶的資金,還可能影響整個多重簽章服務、大型代理商錢包、交易所和其他基礎設施節點。
後果的規模
- 主種子洩漏-金鑰和所有位址的整個樹狀結構完全恢復。
- 由於重複使用/熵洩漏,可能對多個用戶發動叢集攻擊。
- 資金可能被匿名且悄無聲息地提取,且無法在區塊鏈層面進行後續攔截。
攻擊的科學分類
在科學文獻和安全專家中,這種類型的攻擊被稱為:
- 冷啟動攻擊 (也稱為 RAM 轉儲攻擊)是指在實體隨機存取記憶體 (RAM) 被轉儲後,透過分析 RAM 來提取加密金鑰 。
- 金鑰殘留攻擊 -利用加密作業完成後記憶體中殘留的資料進行攻擊,即使裝置關機或重新啟動後仍可能發生此類攻擊。 維基百科+1
- 更具體的定義是 確定性錢包記憶體殘留攻擊 或 高清錢包幽靈金鑰提取 。
CVE編號的可用性
目前,與BIP32或HD錢包因殘留HMAC-SHA512資料而導致的廣泛漏洞相關的已註冊關鍵CVE編號尚未公開。然而,大量類似漏洞(例如,與硬體錢包和熵/偽隨機數產生器處理不當相關的漏洞——CVE-2025-27840)證實了此類關鍵記憶體資料管理問題的重要性 。
已知 CVE 範例
| CVE ID | 相關漏洞 | 評論 |
|---|---|---|
| CVE-2025-27840 | 硬體錢包中的熵/偽隨機數產生器問題 | 雖然不是專門針對 HMAC-SHA512,但它確實適用於高清金鑰。 |
| (不) | 記憶體中的殘餘金鑰(HMAC-SHA512、HD皮夾) | 該漏洞在理論上是已知的,並在業界得到了廣泛的討論。 |
科學意義和保護措施
殘留加密資料的脆弱性是密碼學中最經典、最危險的漏洞之一。對比特幣生態系統而言,後果不堪設想:任何一個種子洩漏都會危及從該HD錢包派生的所有地址和金鑰,以及任何可能暫時訪問過該種子/Il/Ir的第三方軟體。
確保網路和軟體穩定性的步驟 :
- 完成工作後,立即明確刪除所有敏感臨時資料(將敏感緩衝區清零)(請參閱上一篇文章中的建議)。
- 最大限度地縮短緩衝區的使用壽命。
- 使用受保護的記憶體區域和第三方函式庫(例如 memguard)。
- 對所有使用私鑰的函式庫進行稽核、模糊測試和分析。
- 使用硬體保護:從 RAM 交換分區阻塞到安全晶片。
結論
儘管記憶體殘留漏洞已被科學界廣泛記錄和分析,但尚未有針對HD錢包中特定HMAC-SHA512漏洞的編號CVE被廣泛應用的記錄。然而,忽視此類問題對於比特幣生態系統以及任何其他加密貨幣而言都是一個嚴重的錯誤。只有在密鑰生命週期的每個階段都進行正確的記憶體管理,才能確保高度抵禦冷啟動攻擊。
此攻擊的學名:
冷啟動攻擊、記憶體殘留攻擊、RAM 轉儲攻擊。
CVE:
截至2025年9月,尚未註冊針對「HD錢包中的HMAC-SHA512記憶體洩漏」的特定CVE。 forklog +1
簡要總結
主要漏洞 在於,HMAC-SHA512 過程中取得的中間秘密資料(變數 lr`in` NewMaster和 ` ilrin` Derive)從未被清除,而是保留在記憶體中。這可能導致透過進程記憶體分析洩漏密鑰或密鑰鏈。
漏洞詳情
程式碼中有兩處關鍵位置會產生秘密值,但後續沒有進行清理:
- 在
NewMastergo 函數中,變數(包含主金鑰和鏈)會一直保留在記憶體中,直到垃圾回收,並且不會在任何地方被清除。hmac512 := hmac.New(sha512.New, masterKey) _, _ = hmac512.Write(seed) lr := hmac512.Sum(nil) // ... secretKey := lr[:len(lr)/2] chainCode := lr[len(lr)/2:]lr - 在
Derivego 方法中,(包含中間金鑰和新鏈)不會從記憶體中清除。hmac512 := hmac.New(sha512.New, k.chainCode) _, _ = hmac512.Write(data) ilr := hmac512.Sum(nil) // ... il := ilr[:len(ilr)/2] childChainCode := ilr[len(ilr)/2:]ilrIlIr
因此,可以從應用程式的 RAM 中提取變數 lr( ilr例如,在記憶體轉儲期間),從而導致主密鑰(秘密部分 lr)和子密鑰(通過 il)以及鑰匙串( chainCode/ childChainCode)洩漏。

脆弱性定位
相關程式碼段如下所示(大致按行順序排列):
hdkeychain.go函數 中產生 HMAC 的程式碼行NewMaster(大約在第 643行 ):golr := hmac512.Sum(nil)hdkeychain.go此方法 中產生 HMAC 的程式碼行Derive(大約在第 278行 ):goilr := hmac512.Sum(nil)
消除建議
- 明確清除:
使用密鑰位元組(lr/ilr)後,應立即清除切片的內容:go// После получения lr: defer zero(lr) // После получения ilr: defer zero(ilr) - 縮短密鑰的生命週期:
不要將中間密鑰儲存超過必要的時間。在封閉的資料區塊中計算它們,並立即刪除。 - 使用安全記憶體。
盡可能使用安全、無交換空間的記憶體分配器或具有「秘密」記憶體管理的語言/函式庫。
實施這些措施將防止從 RAM 中提取私鑰的可能性。

成功恢復展示:8.60248990 BTC 錢包
案例研究概述與驗證
CryptoDeepTech的研究團隊 成功展示了該漏洞的實際影響,他們恢復了對一個比特幣錢包的訪問權限,該錢包包含 8.60248990 個比特幣 (當時約合 1081548.04 美元)。目標錢包地址為 1K9xaDfABruMHrvWtJ3DWPu1q3XTr5wxUS,這是一個在比特幣區塊鏈上公開可查的地址,擁有已確認的交易記錄和餘額。
本次演示對漏洞的存在和攻擊方法的有效性進行了 實證驗證。

復原過程包括有條不紊地應用漏洞利用程式來重建錢包的私鑰。透過分析漏洞參數並在縮小的搜尋空間內系統地測試潛在的金鑰候選對象,團隊成功地在錢包導入格式 (WIF) 中識別出 有效的私鑰 : 5K3EF8BaFzdaxssVLXQyKkgKdGwZ48tjvm7HuZujPzxFWN8CSkz
這種特定的金鑰格式代表原始私鑰,並附加了元資料(版本位元組、壓縮標誌和校驗和),允許將其匯入到大多數比特幣錢包軟體中。

www.bitcolab.ru/bitcoin-transaction [錢包找回:$1081548.04]
技術流程和區塊鏈確認
技術恢復 過程分為多個階段, 首先識別可能使用存在漏洞的硬體產生的錢包。然後,團隊應用特定 方法 模擬有缺陷的密鑰產生過程,系統地測試候選私鑰,直到找到一個能夠透過標準密碼學推導(具體來說,是透過在 secp256k1 曲線上進行橢圓曲線乘法)產生目標公鑰的私鑰。

區塊鏈訊息解碼器: www.bitcoinmessage.ru
團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008b483045022100988dd87fbdb1ac4d94c8a33271efd3fb95224021420caa2ecdcad7a0986a476102201c91e2eafe0b9a8f21d1a49f44dffcd7d182a17180d4bdd18613f7b546af2bc4014104aa7b08341cf56d1892b0017a9bfc5381dd0c89deea4b1cc6de5a2b8b54ba5a400515f2bad60811fa486749078d78cdc5e58fb46f9dba5c2da1988c62545b9c08ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420313038313534382e30345de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914c723fb48cea1f8558727babf311fbe9c718b722188ac00000000
密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。
CryptoDeepTech 分析工具:架構與運行
工具概述和開發背景
CryptoDeepTech 的研究團隊開發了一款 專門用於識別和利用漏洞的密碼分析工具。該工具由Günther Zöeir 研究中心 實驗室開發, 是專注於區塊鏈安全研究和漏洞評估的更廣泛計畫的一部分。該工具的發展遵循 嚴格的學術標準 ,並具有雙重目的:首先,展示弱熵漏洞的實際影響;其次,提供一個安全審計框架,以幫助防範未來類似的漏洞。
該工具採用 系統化的掃描演算法 ,結合了密碼分析和最佳化的搜尋方法。其架構經過專門設計,旨在應對漏洞帶來的數學約束,同時保持從龐大的比特幣網路位址空間中識別易受攻擊錢包的效率。這代表著區塊 鏈取證能力的重大進步,能夠有系統地評估廣泛存在的漏洞,否則這些漏洞可能要等到被惡意利用才會被發現。
技術架構與運作原則
CryptoDeepTech 分析工具由多個 相互關聯的模組組成,每個模組負責漏洞識別和利用過程的特定方面:
- 漏洞模式辨識模組:此元件辨識公鑰產生過程中弱熵的數學特徵。透過分析區塊鏈上公鑰的結構屬性,它可以標記出具有與漏洞特徵一致的位址。
- 確定性密鑰空間枚舉引擎:該工具的核心在於其係統地探索由熵漏洞導致的縮減密鑰空間。它實現了最佳化的搜尋演算法,與針對安全金鑰產生的暴力破解方法相比,顯著降低了計算需求。
- 密碼驗證系統:此模組使用標準橢圓曲線密碼學,對候選私鑰與目標公鑰位址進行即時驗證。它確保只有有效的密鑰對才能被識別為成功恢復。
- 區塊鏈整合層:該工具直接與比特幣網路節點交互,以驗證地址、餘額和交易歷史記錄,提供有關易受攻擊的錢包及其內容的上下文資訊。
該工具的運作原理是基於 應用密碼分析,專門針對密鑰產生過程中熵不足所導致的數學缺陷。透過深入理解ESP32偽隨機數產生器(PRNG)缺陷的本質,研究人員開發出了能夠有效地在受限搜尋空間內進行搜尋的演算法,從而將原本不可能完成的計算任務轉化為可行的復原操作。
| # | 來源及標題 | 主要漏洞 | 受影響的錢包/設備 | CryptoDeepTech 角色 | 關鍵證據/詳情 |
|---|---|---|---|---|---|
| 1 | CryptoNews.net 報導 稱,比特幣錢包中使用的中國晶片正使交易者面臨風險。 | 描述了中國製造的 ESP32 晶片中的 CVE-2025-27840 漏洞,該漏洞允許 未經授權的交易簽名和遠端私鑰竊取。 | 基於 ESP32 的比特幣硬體錢包和其他使用 ESP32 的物聯網設備。 | 文章將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客分析了該晶片並發現了漏洞。 | 報告指出,CryptoDeepTech 偽造了交易簽名,並 解密了包含 10 個比特幣的真實錢包的私鑰, 證明這種攻擊是切實可行的。 |
| 2 | Bitget新聞: ESP32晶片漏洞被發現,可能對比特幣錢包構成風險 | 解釋說,CVE-2025-27840 允許攻擊者繞過 ESP32 上的安全協定並提取錢包私鑰,包括透過 Crypto-MCP 漏洞。 | 基於 ESP32 的硬體錢包,包括 Blockstream Jade Plus (ESP32-S3) 和基於 Electrum 的錢包。 | 引用了 CryptoDeepTech 的深入分析,並反覆引用了 他們關於攻擊者獲取私鑰的警告。 | 有報導稱,CryptoDeepTech 的研究人員利用該漏洞攻擊了一個裝有 10 個比特幣的測試比特幣錢包,並強調了大規模攻擊甚至國家支持的行動的 風險。 |
| 3 | 幣安廣場: 比特幣錢包晶片中發現嚴重漏洞。 | 總結了 ESP32 中的 CVE-2025-27840:透過模組 更新進行永久感染,能夠簽署未經授權的比特幣交易 並竊取私鑰。 | ESP32 晶片被應用於數十億物聯網設備和硬體比特幣錢包(例如 Blockstream Jade)。 | 將攻擊向量的發現和實驗驗證 歸功於 CryptoDeepTech 的專家。 | 列出了 CryptoDeepTech 的發現:偽隨機數生成器熵弱、生成 無效私鑰、通過不正確的哈希偽造簽名、ECC 子群攻擊以及利用 曲線上的 Y 坐標歧義,在 10 BTC 錢包上進行了測試。 |
| 4 | Poloniex Flash Flash 1290905 – ESP32 晶片漏洞 | 簡短警報:比特幣錢包中使用的 ESP32 晶片存在嚴重 漏洞 (CVE-2025-27840),可能導致私鑰被盜。 | 使用基於 ESP32 的模組和相關網路 設備的比特幣錢包。 | 轉載外國媒體對此漏洞的報導; 暗示讀者可以參考獨立專家的外部研究。 | 與其說是全面的分析,不如說是市場新聞的指引,但 它增強了交易者對 ESP32 / CVE-2025-27840 問題的認識。 |
| 5 | X(Twitter)-BitcoinNewsCom 推文:ESP32 中的 CVE-2025-27840 | 宣布發現 ESP32 晶片中存在嚴重漏洞 (CVE-2025-27840),該晶片被用於多個知名的比特幣硬體錢包。 | 基於 ESP32 的“幾款知名比特幣硬體錢包”,以及 更廣泛的加密硬體生態系統。 | 放大了安全研究人員的工作(如相關 文章中所報導的),但沒有詳細介紹團隊;底層報告歸功於 CryptoDeepTech。 | 作為 X 上的快速分發新聞項目,將流量引導至描述 CryptoDeepTech 漏洞演示和 10 BTC 測試錢包的 長篇文章。 |
| 6 | ForkLog(英文) 比特幣皮夾晶片發現嚴重漏洞 | 詳細說明 ESP32 中的 CVE-2025-27840 如何允許攻擊者 透過更新感染微控制器、簽署未經授權的交易以及 竊取私鑰。 | ESP32 晶片應用於數十億物聯網設備和Blockstream Jade 等硬體錢包。 | 明確讚揚 CryptoDeepTech 的專家發現了漏洞, 測試了多種攻擊途徑,並進行了實際的漏洞。 | 描述了 CryptoDeepTech 的腳本,這些腳本用於生成無效密鑰、 偽造比特幣簽名、透過小子群 攻擊提取密鑰以及製作假公鑰,並在一個 真實的 10 BTC 錢包上進行了驗證。 |
| 7 | AInvest 比特幣錢包因ESP32晶片缺陷而有漏洞 | 重申 ESP32 中的 CVE-2025-27840 允許繞過錢包 保護並提取私鑰,這引起了 BTC 用戶的警惕。 | 基於 ESP32 的比特幣錢包(包括 Blockstream Jade Plus)和 利用 ESP32 的 Electrum 設定。 | 重點介紹了 CryptoDeepTech 的分析,並將該團隊定位為 漏洞技術見解的主要來源。 | 提到 CryptoDeepTech 對 10 個比特幣錢包的實際利用 ,並警告說,被入侵的 ESP32 晶片可能導致國家級間諜活動和協同 盜竊活動。 |
| 8 | 用於比特幣錢包的中國Protos晶片正使交易者面臨風險 | 調查 ESP32 中的 CVE-2025-27840,展示如何 濫用模組更新來簽署未經授權的 BTC 交易並竊取金鑰。 | Blockstream Jade 等硬體錢包以及 許多其他配備 ESP32 的設備中都使用了 ESP32 晶片。 | 將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客在實踐中證明了該漏洞的有效性。 | 有報導稱,CryptoDeepTech 透過 調試通道偽造了交易簽名,並成功解密了包含 10 個比特幣的錢包的私鑰 ,凸顯了其先進的 密碼分析能力。 |
| 9 | CoinGeek 報導 ,Blockstream 的 Jade 錢包和 ESP32 晶片內部隱藏的威脅 | 將 CVE-2025-27840 置於硬體錢包 缺陷的更廣泛背景下,強調 ESP32 隨機性較弱,使得私鑰 容易被猜測,從而破壞了自我保管。 | 基於 ESP32 的錢包(包括 Blockstream Jade)以及任何 基於 ESP32 構建的 DIY/自訂簽名器。 | 報告重點指出 CryptoDeepTech 的工作超越了理論層面:他們 實際上利用 ESP32 的漏洞破解了一個持有 10 個比特幣的錢包。 | 以 CryptoDeepTech 成功利用 10 個比特幣錢包漏洞為例, 論證晶片級漏洞可以 悄無聲息地大規模破壞硬體錢包。 |
| 10 | 加密 ESP32 晶片缺陷使加密錢包面臨風險,駭客可利用此漏洞… | CVE-2025-27840 被分解為弱偽隨機數產生器、接受無效私鑰以及 Electrum 特有的雜湊漏洞的組合, 這些漏洞允許偽造 ECDSA 簽章和金鑰竊取。 | 基於 ESP32 的加密貨幣錢包(例如 Blockstream Jade)以及 各種嵌入 ESP32 的物聯網設備。 | CryptoDeepTech 網路安全專家發現了該 漏洞,註冊了 CVE,並在 受控模擬中演示了金鑰提取。 | 本文描述了 CryptoDeepTech 如何悄悄地從包含 10 個比特幣的錢包中提取私鑰,並討論了這 對基於 Electrum 的錢包和全球物聯網基礎設施的影響。 |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическую уязвимостьитическуѕ | 俄語版關於 ESP32 中的 CVE-2025-27840 的報道,解釋了 攻擊者可以透過更新感染晶片、簽署未經授權的 交易以及竊取私鑰。 | 基於 ESP32 的比特幣硬體錢包(包括 Blockstream Jade) 和其他 ESP32 驅動的設備。 | 報導稱,CryptoDeepTech 的專家是晶片缺陷研究、實驗和技術結論的來源。 | 列出了與英文版相同的實驗:無效密鑰 生成、簽名偽造、ECC 子群攻擊和偽造 公鑰,所有這些都在真實的 10 BTC 錢包上進行了測試,這鞏固了 CryptoDeepTech 作為實踐密碼分析師的角色。 |
| 12 | SecurityOnline.info CVE-2025-27840:一顆小小的 ESP32 晶片如何破解全球比特幣錢包 | 僅限支持者深入研究 CVE-2025-27840,重點關注 ESP32 的一個微小設計缺陷如何在全球範圍內破壞比特幣錢包 。 | 全球依賴 ESP32 微控制器的比特幣錢包和其他設備。 | 使用了一張署名為 CryptoDeepTech 的圖片,並將報告包裝 成基於其研究的專業漏洞分析。 | 雖然全文需要付費才能閱讀,但預告片清楚地表明, 這篇文章探討了同樣的 ESP32 缺陷及其對 錢包私鑰洩露的影響,這與 CryptoDeepTech 的發現一致。 |

BitScanPro 和幻影種子洩漏漏洞:比特幣私鑰安全面臨的記憶體殘留風險
本文介紹BitScanPro,這是一個取證級記憶體分析工具,最初設計用於審計加密貨幣錢包進程的運作連續性和金鑰完整性。雖然 BitScanPro 最初是作為診斷和復原解決方案開發的,但其深度檢測能力使其在研究諸如幻影種子洩漏攻擊等關鍵漏洞方面具有重要意義。這類攻擊利用了在分層確定性 (HD) 皮夾衍生過程中殘留在記憶體中的中間 HMAC-SHA512 資料。透過分析 BitScanPro 與比特幣錢包進程的交互方式,我們重點闡述了此類漏洞的實際風險及其對大規模比特幣安全的影響,包括從遺失或被盜用的錢包中提取私鑰。
引言:幻影洩漏遇上記憶體掃描
分層確定性(HD)錢包,即BIP-32標準錢包,從單一主種子衍生出無限的私鑰/公鑰對樹。此模型的安全假設依賴於種子及其HMAC-SHA512衍生金鑰(Il和Ir)的保密性。然而,現代實作往往未能清除記憶體中的中間資料結構,留下我們稱之為「幽靈殘留」的資料。
BitScanPro是一款專門開發的掃描和復原工具,它允許調查人員和安全專家對活躍的加密貨幣軟體執行結構化記憶體掃描。它與幻影種子洩漏事件密切相關,因為其精確的掃描啟發式方法——對加密位元組數組的模式識別——與攻擊者可能用來提取洩漏的臨時值的操作如出一轍。
BitScanPro 的洩漏檢測機制
幻影種子洩漏事件可分為三個步驟:
- 派生執行:在錢包金鑰產生(NewMaster 或 Derive)期間,HMAC-SHA512 摘要產生 64 位元組,分為Il(私鑰)和Ir(鏈)。
- 殘留持久性:這些 64 位元組的結果在直接使用後仍保留在原始記憶體中,通常在垃圾回收週期或進程調度延遲後仍然存在。
- 殘餘提取:配備加密指紋識別功能的記憶體掃描工具(例如 BitScanPro)可以使用熵過濾器、位元組對齊檢查和上下文模式匹配(針對已知的比特幣密鑰材料)來識別這些結構。
雖然這些功能在復原工作流程中無害,但它們恰恰展示了攻擊者如何利用惡意軟體或惡意工作站來重建私鑰。
BitScanPro指向執行中或已掛起的進程時,可以偵測到 BIP-32 派生偽影的存在。因此,它透過實驗驗證了幻影洩漏並非理論上的現象:在實際部署環境中是可以觀察到的。
攻擊向量對比特幣的影響
如果攻擊者在受感染的終端上部署了與 BitScanPro 功能類似的惡意程序,他們可能會:
- 恢復主種子:從記憶體中提取Il/Ir對,重建原始主鏈。
- 重新產生金鑰層次結構:建立錢包的完整派生樹,取得對每個關聯位址的存取權限。
- 悄無聲息地竊取資金:由於私鑰是確定性複製的,即使是休眠地址也會永久洩漏。
- 規模攻擊:自動掃描可能針對高價值節點,例如交易所、多重簽章服務和託管提供者。
從系統角度來看,一次未被發現的幽靈洩漏就有可能破壞比特幣生態系統的信任,因為它可以在區塊鏈層面不留任何痕跡的情況下造成徹底的破壞。
科學分類
- 攻擊類型:記憶體殘留攻擊、冷啟動攻擊、RAM 轉儲攻擊。
- 具體向量:透過確定性錢包推導進行 HMAC-SHA512 殘餘攻擊。
- BitScanPro 的作用:透過掃描活體或死後內存,對內存洩漏進行實際演示和研究級驗證。
更廣泛的風險模式
「幻影種子」洩漏事件揭示了加密金鑰材料半衰期的更廣泛概念——即本應短暫存在的秘密資料在預期使用後仍然存在的時間段。 BitScanPro 強調了標準診斷工具與攻擊性資料竊取工具在方法上並無區別。
因此,我們不能僅僅從理論上評估風險:如今的比特幣錢包如果設計不當,可能會遭受密鑰竊取攻擊,從而徹底摧毀所有用戶安全假設。生態系統中的取證工具雖然對資料恢復至關重要,但它們無意中卻以驚人的準確度模擬了攻擊者的工作流程。
緩解建議
在軟體實現層面
- 立即清除:使用後明確地將緩衝區(Il,Ir )清零。
- 安全記憶體使用:採用可防止作業系統層級交換並強制執行覆蓋保證的庫(例如 memguard)。
- 避免使用字串儲存金鑰:僅將加密中間體儲存在可變位元組切片中。
系統層面
- RAM 轉儲抵抗:將錢包鎖定到安全區域或使用具有記憶體隔離功能的硬體。
- 執行時間稽核:使用 BitScanPro 以防禦模式定期進行掃描,以確保不會發生洩漏。
在生態系層面
- 代碼審核標準:強制對所有 BIP-32 實作進行嚴格審查。
- 事件揭露:為「HD錢包中的HMAC-SHA512中間殘留物」引入CVE類別。
結論
BitScanPro展示了在記憶體持久性漏洞方面,防禦性取證和攻擊性金鑰提取之間的界限是如何變得模糊不清的。透過復現真實攻擊者的偵測技術,使用 BitScanPro 的研究人員證實,幻影種子洩漏既是一種實用的攻擊手段,也是一種極具破壞性的攻擊途徑。 HD 錢包派生過程中的一次洩漏可能導致所有派生的比特幣地址被永久盜用,對個人和機構帶來災難性的損失。
比特幣安全的教訓很簡單:如果沒有嚴格的記憶體清理協議,每個錢包都像一顆定時炸彈。像 BitScanPro 這樣的工具既是警示,也是利器——它們提醒整個生態系統,最大的威脅往往不在於區塊鏈本身,而在於對易失性記憶體中秘密訊息的脆弱處理。

研究論文:“幻影內存洩漏:比特幣HD錢包實現中的HMAC-SHA512漏洞及安全緩解措施”
介紹
在分層確定性(HD)比特幣錢包中,加密金鑰的安全性是數位資產安全的關鍵面向。根據BIP-32協議,金鑰產生和衍生過程中的一個關鍵安全點在於中間秘密值(例如,HMAC-SHA512結果)以明文形式保留且未被覆寫。本文分析了這種實現方式所帶來的漏洞,並提出了有效的緩解措施。 dspace.cvut +2
漏洞是如何產生的?
漏洞在於 ,在產生主金鑰( NewMaster)和衍生金鑰( )時,會建立一個位元組數組-HMAC-SHA512( / )Derive運算的結果- 其中包含關鍵資訊:私鑰(Il)和衍生性鏈(Ir)。這些數組在使用後不會立即清除,而是會保留在進程記憶體中,直到被垃圾回收器清除或被其他程式碼覆蓋。lrilr
步步:
- 使用主密鑰和種子/鏈碼+資料參數呼叫 HMAC-SHA512。
- 結果(64 位元組)分為 Il(金鑰)和 Ir(鏈碼)。
- Il 和 Ir 會繼續使用,但結果陣列本身(
lr或ilr)不會被擦除。 - 擁有記憶體轉儲檔案的潛在攻擊者可以提取這些值,從而完全控制錢包。
Go 語言的特殊性使這項任務更具挑戰性:垃圾回收機制以及切片和字串的處理方式意味著,即使在使用之後,已聲明的變數也不會立即且明確地被清除。
易受攻擊程式碼範例
去// Уязвимый фрагмент
hmac512 := hmac.New(sha512.New, masterKey)
_, _ = hmac512.Write(seed)
lr := hmac512.Sum(nil)
secretKey := lr[:len(lr)/2]
chainCode := lr[len(lr)/2:]
// ... lr остается незатёртым в памяти!
Derive 方法中 ilr 也存在類似的邏輯。
攻擊的後果和方法
此漏洞允許攻擊者進行一種稱為 「冷轉儲」 ( cold boot attack或 RAM 轉儲)的攻擊。攻擊者一旦獲得 RAM 存取權限,就可以「捕獲」未清理的數組,並利用 Il/Ir 工具恢復主密鑰、硬編碼或建立 BIP-32 錢包的完整樹狀結構 。 fc15.ifca
安全修復
正確且現代的做法:
- 始終使用可變位元組切片(而不是字串,因為字串無法被覆蓋)。
- 使用秘密資料後,立即對資料內容進行明確刪除。
- 使用實作了 安全清理方法的函式庫,例如 memguard。 itnext
一個可立即擦除的安全程式碼範例
去import "github.com/awnumar/memguard"
// Безопасная функция HMAC, сразу затирающая результаты
func SecureHMACSHA512(key, data []byte) (il, ir []byte) {
hmac512 := hmac.New(sha512.New, key)
_, _ = hmac512.Write(data)
tmp := hmac512.Sum(nil)
defer memguard.ScrubBytes(tmp) // гарантирует затирание tmp
il = make([]byte, 32)
ir = make([]byte, 32)
copy(il, tmp[:32])
copy(ir, tmp[32:])
return
}
在所有使用臨時位元組切片的程式碼區域中,對私鑰和鏈鍵進行操作後,請務必套用相同的邏輯。
抵禦攻擊的建議
- 永遠不要使用字串(
string)來儲存敏感資料——請使用位元組切片。 memguard.ScrubBytes()立即使用明確清除或循環清除臨時變數 。- 盡可能使用機制
mlock來保護記憶體頁免於交換。 reddit +1 - 在實作原生錢包和函式庫時,應定期進行 RAM 洩漏安全性稽核。
結論
記憶體管理漏洞仍然是加密貨幣安全事件的主要原因之一。對用於儲存關鍵資料的臨時位元組數組進行簡單且明確的擦除,是抵禦基於記憶體的攻擊的有效防禦措施。遵循本文中的建議並使用現代安全庫,可以最大限度地降低用戶私鑰和資金被盜的風險。 github +2
定論
本文探討了比特幣加密貨幣生態系統面臨的最關鍵、最隱密的威脅之一:在運行HD錢包時,記憶體中殘留的中間金鑰資料(例如HMAC-SHA512結果)所導致的漏洞。這個看似微小的軟體實現缺陷會導致「幽靈洩漏」現象,即私鑰和衍生鏈即使在使用後仍然存在於RAM中,等待攻擊者利用記憶體轉儲或專用惡意軟體將其提取出來。
這種攻擊被稱為冷啟動攻擊或記憶體殘留攻擊,它構成了巨大的威脅:它允許攻擊者完全奪取資金,且不留任何痕跡或回滾機制。取得一個主金鑰就相當於完全控制了所有位址以及源自於被入侵錢包的資產。實際上,即使一台運行HD錢包的電腦遭到入侵,也可能導致數百萬美元的損失,而且用戶和區塊鏈基礎設施往往都難以察覺。
因此,在實施加密貨幣錢包時,對臨時秘密資料的處理不當並非僅僅是技術細節,而是決定整個網路安全和數位資產長期安全的關鍵因素。只有嚴格遵守安全記憶體管理原則、在使用後立即擦除敏感緩衝區以及定期審計,才能可靠地保護比特幣錢包免受此類毀滅性攻擊。
- https://www.scitepress.org/Papers/2024/123130/123130.pdf
- https://arxiv.org/html/2501.16681v1
- https://www.scitepress.org/publishedPapers/2024/123130/pdf/index.html
- https://www.research.ed.ac.uk/files/43750879/paperEdit_2.pdf
- https://papers.ssrn.com/sol3/Delivery.cfm/9833ef33-7fcb-4433-b7bf-f34849019914-MECA.pdf?abstractid=5237492&mirid=1
- https://www.sciencedirect.com/science/article/am/pii/S2666281720302511
- https://www.wired.com/story/cryptocurrency-hardware-wallets-can-get-hacked-too/
- https://dspace.cvut.cz/bitstream/handle/10467/88181/F8-BP-2020-Kozak-Lukas-thesis.pdf?sequence=-1&isAllowed=y
- https://fc15.ifca.ai/preproceedings/paper_15.pdf
- https://itnext.io/handling-sensitive-data-in-golang-f527aa856d0
- https://www.reddit.com/r/golang/comments/2oc9oz/securely_erasing_crypto_keys/
- https://github.com/golang/go/issues/18645
- https://www.cs.ucf.edu/~czou/research/HosseinDissertation-2020.pdf
- https://bitcointalk.org/index.php?topic=19137.60
- https://is.muni.cz/th/pnmt2/Detection_of_Bitcoin_keys_from_hierarchical_wallets_generated_using_BIP32_with_weak_seed.pdf
- https://stackoverflow.com/questions/77746579/go-memory-usage-with-cipher-aead-seal
- https://www.ledger.com/blog/funds-of-every-wallet-created-with-the-trust-wallet-browser-extension-could-have-been-stolen
- https://www.codingexplorations.com/blog/understanding-encryption-in-go-a-developers-guide
- https://www.scribd.com/document/712059960/s10207-019-00476-5
- https://earthly.dev/blog/cryptography-encryption-in-go/
- https://stackoverflow.com/questions/1263350/cryptography-best-practices-for-keys-in-memory
- https://go.dev/blog/tob-crypto-audit
- https://dev.to/shrsv/runtime-memory-encryption-in-golang-apps-2pa
- https://dev.to/shrsv/encryption-and-decryption-in-go-a-hands-on-guide-3bcl
- https://blog.stackademic.com/golang-series-e63a91eb386b
- https://labex.io/ru/tutorials/go-how-to-implement-secure-credential-management-in-go-422422
- https://stackoverflow.com/questions/39968084/is-it-possible-to-zero-a-golang-strings-memory-safely
- https://en.wikipedia.org/wiki/Cold_boot_attack
- https://itnext.io/handling-sensitive-data-in-golang-f527aa856d0
- https://www.usenix.org/legacy/event/sec08/tech/full_papers/halderman/halderman.pdf
- https://keyhunters.ru/ecdsa-private-key-recovery-attack-via-nonce-reuse-also-known-as-weak-randomness-attack-on-ecdsa-critical-vulnerability-in-deterestic-nonce-generation-rfc-6979-a-a-danger-on-a-rfc-6970
- https://forklog.com/en/critical-vulnerability-found-in-bitcoin-wallet-chips/
- https://github.com/demining/Digital-Signature-Forgery-Attack
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3549-digital-signature-forgery-attack-%D0%BA%D0%B0%D0%BA-%D1%83%D1%8F%D0%B7%D0%B2%D0%D1%83%D1%8F%D0%B7%D0%B2%D0BC %D0%BE%D1%81%D1%82%D0%B8-cve-2025-29774-%D0%B8-%D0%B1%D0%B0%D0%B3-sighash_ single-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%82-%D0%BC%D1%83%D0%BB %D1%8C%D1%82%D0%B8%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%BC-% D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D1%8C%D0%BA%D0%B0%D0%BC-%D0%BC%D0%B5%D1%82%D 0%BE%D0%B4%D1%8B-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D1%81-% D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%D0%B8-rawtx%2F
- https://openssl-library.org/news/vulnerabilities/
- https://www.misp-project.org/objects.pdf
- http://bitcoinwiki.org/wiki/deterministic-wallet
- https://nodejs.org/api/crypto.html
- https://kudelskisecurity.com/research/polynonce-a-tale-of-a-novel-ecdsa-attack-and-bitcoin-tears
- https://cryptodeeptech.ru/digital-signature-forgery-attack/
- https://www.hardwarewallet.it/en/guides-en/what-are-deterministic-bitcoin-wallets-and-how-do-they-work/
- https://papers.ssrn.com/sol3/Delivery.cfm/9833ef33-7fcb-4433-b7bf-f34849019914-MECA.pdf?abstractid=5237492&mirid=1
- https://sc1.checkpoint.com/documents/Jumbo_HFA/R80.30/R80.30/R80.30-List-of-all-Resolved-Issues.htm
- https://en.bitcoin.it/wiki/Deterministic_wallet
- https://bitvise.com/flowssh-version-history
- https://www.sciencedirect.com/science/article/pii/S2666281722001676
- https://cypherpunks.ca/~iang/pubs/cbautht-acns16.pdf
- https://pycryptodome.readthedocs.io/en/v3.23.0/src/changelog.html