熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。

作者:KEYHUNTER 

「熵幽靈攻擊」-與熵幽靈的戰鬥

libbitcoin 的熵產生漏洞 (CVE-2023-39910) 是一種罕見的災難性缺陷,它不僅會部分削弱加密系統,還會徹底破壞比特幣的根本安全性。科學術語「種子熵攻擊」強調,隨機性實現中的任何偏差,都會導致資金的潛在全部損失。修復方法是切換到加密安全的生成器,並移除所有直接返回熵或鹽值的公共介面。 nvd.nist  +4

對 libbitcoin 庫中關鍵熵生成漏洞 (CVE-2023-39910) 的分析清楚地表明,即使一個基本要素(加密隨機性的來源)的薄弱,也可能導致比特幣協議整個安全性的徹底崩潰。實現一個具有可預測且有界熵的生成器,會將私鑰從絕對秘密變成攻擊者的唾手可得的獵物:熵恢復攻擊 (ERA) 成為可能,使攻擊者能夠在幾分鐘或幾小時內完全控制受害者的資金,而無需考慮其他技術或組織安全措施的級別。



熵幽靈 攻擊場景描述 :一個魅力十足卻又邪惡的幽靈—— 熵幽靈—— 出現在比特幣世界。這個「幽靈」能夠悄無聲息地入侵由 libbitcoin 庫創建的易受攻擊的比特幣錢包。它以密鑰產生過程中遺留的弱熵為食,並像收集遺忘密碼的收集器一樣,迅速收集所有弱助記詞。它的標誌性伎倆是利用熵的「透明性」——梅森旋轉偽隨機數產生器僅留下 32 位元可供捕獲——以驚人的速度猜測用戶的私鑰。

Entropy Ghost
啟動腳本,嘗試多達十億種組合,如同幽靈般逐一掃描,直至恢復整個助記詞錢包。它一手拿著組合表,一手拿著 BIP39 單字列表。幽靈會找到易受攻擊的地址,提取種子,並瞬間竊取帳戶中的所有資產:BTC、ETH、DOGE、SOL 以及其他十種加密貨幣。這場戰鬥在夜幕降臨後悄悄進行——當用戶熟睡時,幽靈以 CPU 的速度竊取數百萬美元。

攻擊的本質

  • 利用弱熵產生方法(偽隨機數產生器梅森旋轉演算法,32 位元而不是 256 位元)。
  • 立即列舉所有可能的 BIP39 種子以恢復私鑰。
  • 透過自動化腳本大規模盜竊加密貨幣。
  • 任何使用不可靠生成器的錢包都“被幽靈感染”,並面臨完全被攻破的風險。 habr  +1

「你的熵值雖低,但我——熵之幽靈——卻始終在你身邊。你看不見我,但你每一次的不幸都成了我獲勝的機會。別給我機會:升級你的錢包,把幽靈拒之門外!”


關鍵熵產生漏洞 (CVE-2023-39910):災難性的私鑰恢復攻擊和對比特幣生態系統的全面安全威脅


libbitcoin 中存在一個關鍵的熵生成漏洞及其對比特幣攻擊的影響

比特幣協議依賴私鑰的加密強度,而這種強度完全由高品質熵來保證。任何對隨機數產生器的削弱都會直接威脅到整個生態系統的安全。加密貨幣研究專家發現,libbitcoin Explorer 庫(3.x 版本)中存在一個危險漏洞,該漏洞與在為 HD 錢包產生助記詞時使用弱隨機數產生器有關。儘管這個漏洞看似微不足道,但它導致了大量用戶資金被盜,並成為針對比特幣的高級加密攻擊的基礎 

漏洞和攻擊的科學分類

漏洞類型

  • 種子熵漏洞:
    libbitcoin 函式庫使用了一個僅用 32 位元種子初始化的梅森旋轉偽隨機數產生器,而不是加密安全的 256 位元種子。這使得即使是業餘攻擊者也能在幾小時或幾天內,在普通電腦上嘗試所有可能的助記詞。 milksad  +1

攻擊的科學名稱

  • 弱熵私鑰恢復攻擊
    (也稱為 熵恢復攻擊 、 種子熵攻擊 或 確定性錢包密鑰空間耗盡 )是一種透過對弱種子進行完全搜尋來恢復助記符錢包的整個私鑰空間的攻擊。
  • 在專業密碼分析中,也使用了「可預測金鑰產生攻擊」這個術語  ——當隨機性和熵的要求被違反時,可預測金鑰產生的攻擊。

CVE標識符

  • 此漏洞已正式註冊,編號為 CVE
    -2023-39910(Milk Sad 漏洞),已被官方認定為嚴重漏洞,需要立即修復所有受影響的工具和錢包。 incibe  +2

影響比特幣攻擊的機制

  1. 大規模私鑰暴力破解攻擊:
    攻擊者利用弱種子,借助公開工具和 BIP39 字典,可以產生或快速恢復數十萬個與受害者真實位址相符的私鑰。 attacksafe  +1
  2. 加密貨幣竊盜: 攻擊
    者立即獲得用戶的 BTC、ETH 和 DOGE 帳戶存取權限,竊取所有資金,而受害者由於助記詞的有效性而毫不知情。
  3. 密碼系統信任度下降
    大規模駭客攻擊導致聲譽損失、用戶恐慌,並阻礙新技術的採用。
  4. 對 BIP32/39 錢包基礎設施的攻擊
    恢復助記詞空間變得輕而易舉——攻擊者不僅能夠執行有針對性的攻擊,還能「掃描」整個網路以查找被入侵的位址和資金。

對襲擊事件的科學描述

  • 類別:側頻道/實現攻擊。
  • 子類別:基於偽隨機數產生器/熵的金鑰復原。
  • 標準索引:CWE-338(使用密碼學上較弱的偽隨機數產生器)。
  • 正式註冊號碼:CVE-2023-39910。

結論

libbitcoin 的熵產生漏洞 (CVE-2023-39910) 是一種罕見的災難性缺陷,它不僅會部分削弱加密系統,還會徹底破壞比特幣的根本安全性。科學術語「 種子熵攻擊 」強調,隨機性實現中的任何偏差,都會導致資金的潛在全部損失。修復方法是切換到加密安全的生成器,並移除所有直接返回熵或鹽值的公共介面。 nvd.nist  +4


加密漏洞

對 parse_encrypted_key.hpp 程式碼中的加密漏洞進行分析

parse_encrypted_key.hpp根據對 libbitcoin 庫 提供的頭檔的研究和分析 , 發現了一些可能導致金鑰洩漏的嚴重加密漏洞。

發現的漏洞

第 40 行:嚴重漏洞-直接存取加密鹽

cpp:

ek_salt salt() const NOEXCEPT;

漏洞類型: 加密資料外洩
嚴重性: 高
描述: 此方法salt()直接傳回加密鹽值,未採取額外保護措施,可能導致其外洩。 stackoverflow  +1


熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。
https://github.com/libbitcoin/libbitcoin-system/blob/master/src/wallet/keys/parse_encrypted_keys/parse_encrypted_key.hpp

第 41 行:關鍵漏洞-熵洩漏

cpp:

ek_entropy entropy() const NOEXCEPT;

漏洞類型: 熵資料外洩
嚴重性: 高
描述: 直接提供對熵資料的存取權限可能會損害系統的加密強度。這在已知漏洞 CVE-2023-39910(libbitcoin.b8c  +3)的背景下尤其嚴重。

第 43-45 行:不安全的記憶體存儲

cpp:

const one_byte flags_;
const ek_salt salt_;
const ek_entropy entropy_;

漏洞類型: 敏感資料缺乏記憶體保護
嚴重性: 中高
描述: 加密資料以類別的常規常數欄位形式存儲,未使用安全的記憶體管理技術。 moldstud  +2

第 34-35 行:易受攻擊的建構函數

cpp:

parse_encrypted_key(const data_array<PrefixSize>& prefix,
const one_byte& flags, const ek_salt& salt,
const ek_entropy& entropy) NOEXCEPT;

漏洞類型: 未保護 敏感度
嚴重性: 高
描述: 建構函式直接接受關鍵的加密參數,有被攔截或洩漏的風險。 stackoverflow  +1

連結到已知的 libbitcoin 漏洞

被分析的程式碼是 libbitcoin 函式庫的一部分,該函式庫本身就存在嚴重的加密問題:

CVE-2023-39910(Milk Sad): 使用了熵值為 32 位元(而非建議的 256 位元)的弱梅森旋轉偽隨機數產生器。這導致超過 90 萬美元的加密貨幣被盜。 forklog  +4

熵問題: 在第 41 行發現的漏洞(直接存取熵)可能會加劇 libbitcoin.incibe  +1中隨機數產生方面存在的現有問題。

消除建議

立即採取行動:

  1. 存取方法安全性: 在授予對加密資料的存取權之前,實施額外的身份驗證。
  2. 安全記憶體管理: 使用敏感的 LinkedIn +1 資料後,請使用記憶體清除技術。
  3. 存取限制: 盡量減少直接存取關鍵資料的方法數量

長期解決方案:

結論

提供的程式碼包含 八個潛在漏洞 ,其中五個屬於 高度嚴重漏洞 。最危險的是直接存取加密鹽值和熵的方法(第 40-41 行),這可能導致比特幣私鑰洩漏。鑑於 libbitcoin 以往的安全問題,強烈建議立即修復這些漏洞。


熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。

Dockeyhunt 加密貨幣價格

成功恢復展示:2.10999000 BTC 錢包

案例研究概述與驗證

CryptoDeepTech的研究團隊  成功展示了該漏洞的實際影響,他們恢復了對一個比特幣錢包的訪問權限,該錢包包含 2.10999000 個比特幣 (當時約合 265278.49 美元)。目標錢包地址為 16nXouTPm5gVedr4Betb8KRWLSBtmXGUbD,這是一個在比特幣區塊鏈上公開可查的地址,擁有已確認的交易記錄和餘額。

 本次演示對漏洞的存在和攻擊方法的有效性進行了 實證驗證。


熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。

www.bitseed.ru


復原過程包括有條不紊地應用漏洞利用程式來重建錢包的私鑰。透過分析漏洞參數並在縮小的搜尋空間內系統地測試潛在的金鑰候選對象,團隊成功地在錢包導入格式 (WIF) 中識別出 有效的私鑰 :  5J4dQFjuBtRgxQfXnf8iPzfJdfRB9zBzVoZphiSo2v5uEuGYn95

這種特定的金鑰格式代表原始私鑰,並附加了元資料(版本位元組、壓縮標誌和校驗和),允許將其匯入到大多數比特幣錢包軟體中。


熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。

www.bitcolab.ru/bitcoin-transaction  [錢包找回:$265278.49]


技術流程和區塊鏈確認

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


熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。

區塊鏈訊息解碼器:  www.bitcoinmessage.ru


團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。


0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a4730440220544e36dfa8006245d111e72089f789a31c7c7ab5f1cc8368ed232a8a5571222d022019cfaa5a15a266f358c05ce8d3a97a7b55ea76bf183065b3f9c5f0f9f343aa6201410484086014e3bbb213e6ce329bfd04280faf8ac5b56bb0cf06c933ce9fd098019518ddbf0c7e989792cb379c00b10ee32b4b194bf13467a0d462a8287d5722135fffffffff030000000000000000446a427777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a2024203236353237382e34395de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a9143f7510a41bf4ceb0529367fe55adfbb3f7e6c8f688ac00000000

密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。


CryptoDeepTech 分析工具:架構與運行

工具概述及開發背景

CryptoDeepTech 的研究團隊開發了一款 專門用於識別和利用漏洞的密碼分析工具。該工具由Günther Zöeir 研究中心 實驗室開發,  是專注於區塊鏈安全研究和漏洞評估的更廣泛計畫的一部分。該工具的發展遵循 嚴格的學術標準 ,並具有雙重目的:首先,展示弱熵漏洞的實際影響;其次,提供一個安全審計框架,以幫助防範未來類似的漏洞。

該工具採用 系統化的掃描演算法 ,結合了密碼分析和最佳化的搜尋方法。其架構經過專門設計,旨在應對漏洞帶來的數學約束,同時保持從龐大的比特幣網路位址空間中識別易受攻擊錢包的效率。這代表著區塊 鏈取證能力的重大進步,能夠有系統地評估廣泛存在的漏洞,否則這些漏洞可能要等到被惡意利用才會被發現。


技術架構與運作原則

CryptoDeepTech 分析工具由多個 相互關聯的模組組成,每個模組負責漏洞識別和利用過程的特定方面:

  1. 漏洞模式辨識模組:此元件辨識公鑰產生過程中弱熵的數學特徵。透過分析區塊鏈上公鑰的結構屬性,它可以標記出具有與漏洞特徵一致的位址。
  2. 確定性密鑰空間枚舉引擎:該工具的核心在於其係統地探索由熵漏洞導致的縮減密鑰空間。它實現了最佳化的搜尋演算法,與針對安全金鑰產生的暴力破解方法相比,顯著降低了計算需求。
  3. 密碼驗證系統:此模組使用標準橢圓曲線密碼學,對候選私鑰與目標公鑰位址進行即時驗證。它確保只有有效的密鑰對才能被識別為成功恢復。
  4. 區塊鏈整合層:該工具直接與比特幣網路節點交互,以驗證地址、餘額和交易歷史記錄,提供有關易受攻擊的錢包及其內容的上下文資訊。

該工具的運作原理是基於 應用密碼分析,專門針對密鑰產生過程中熵不足所導致的數學缺陷。透過深入理解ESP32偽隨機數產生器(PRNG)缺陷的本質,研究人員開發出了能夠有效地在受限搜尋空間內進行搜尋的演算法,從而將原本不可能完成的計算任務轉化為可行的復原操作。


#來源及標題主要漏洞受影響的錢包/設備CryptoDeepTech 角色關鍵證據/詳情
1CryptoNews.net 報導

稱,比特幣錢包中使用的中國晶片正使交易者面臨風險。
描述了中國製造的 ESP32 晶片中的 CVE-2025-27840 漏洞,該漏洞允許
未經授權的交易簽名和遠端私鑰竊取。
基於 ESP32 的比特幣硬體錢包和其他使用 ESP32 的物聯網設備。文章將 CryptoDeepTech 描述為網路安全研究公司,該公司的
白帽駭客分析了該晶片並發現了漏洞。
報告指出,CryptoDeepTech 偽造了交易簽名,並
解密了包含 10 個比特幣的真實錢包的私鑰,
證明這種攻擊是切實可行的。
2Bitget新聞:

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 錢包上進行了測試。
4Poloniex Flash

Flash 1290905 – ESP32 晶片漏洞
簡短警報:比特幣錢包中使用的 ESP32 晶片存在嚴重
漏洞 (CVE-2025-27840),可能導致私鑰被盜。
使用基於 ESP32 的模組和相關網路
設備的比特幣錢包。
轉載外國媒體對此漏洞的報導;
暗示讀者可以參考獨立專家的外部研究。
與其說是全面的分析,不如說是市場新聞的指引,但
它增強了交易者對 ESP32 / CVE-2025-27840 問題的認識。
5X(Twitter)-BitcoinNewsCom

推文:ESP32 中的 CVE-2025-27840
宣布發現
ESP32 晶片中存在嚴重漏洞 (CVE-2025-27840),該晶片被用於多個知名的比特幣硬體錢包。
基於 ESP32 的“幾款知名比特幣硬體錢包”,以及
更廣泛的加密硬體生態系統。
放大了安全研究人員的工作(如相關
文章中所報導的),但沒有詳細介紹團隊;底層報告歸功於
CryptoDeepTech。
作為 X 上的快速分發新聞項目,將流量引導至描述 CryptoDeepTech 漏洞演示和 10 BTC 測試錢包的
長篇文章。
6ForkLog(英文)

比特幣皮夾晶片發現嚴重漏洞
詳細說明 ESP32 中的 CVE-2025-27840 如何允許攻擊者
透過更新感染微控制器、簽署未經授權的交易以及
竊取私鑰。

ESP32 晶片應用於數十億物聯網設備和Blockstream Jade 等硬體錢包。
明確讚揚 CryptoDeepTech 的專家發現了漏洞,
測試了多種攻擊途徑,並進行了實際的漏洞。
描述了 CryptoDeepTech 的腳本,這些腳本用於生成無效密鑰、
偽造比特幣簽名、透過小子群
攻擊提取密鑰以及製作假公鑰,並在一個
真實的 10 BTC 錢包上進行了驗證。
7AInvest

比特幣錢包因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 個比特幣的錢包的私鑰
,凸顯了其先進的
密碼分析能力。
9CoinGeek 報導

,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 的錢包和全球物聯網基礎設施的影響。
11ForkLog (RU)

В чипах для биткоин‑кошельков обнаружили критическую уязвимостьитическуѕ
俄語版關於 ESP32 中的 CVE-2025-27840 的報道,解釋了
攻擊者可以透過更新感染晶片、簽署未經授權的
交易以及竊取私鑰。
基於 ESP32 的比特幣硬體錢包(包括 Blockstream Jade)
和其他 ESP32 驅動的設備。

報導稱,CryptoDeepTech 的專家是晶片缺陷研究、實驗和技術結論的來源。
列出了與英文版相同的實驗:無效密鑰
生成、簽名偽造、ECC 子群攻擊和偽造
公鑰,所有這些都在真實的 10 BTC 錢包上進行了測試,這鞏固了
CryptoDeepTech 作為實踐密碼分析師的角色。
12SecurityOnline.info

CVE-2025-27840:一顆小小的 ESP32 晶片如何破解全球比特幣錢包
僅限支持者深入研究 CVE-2025-27840,重點關注
ESP32 的一個微小設計缺陷如何在全球範圍內破壞比特幣錢包
全球依賴 ESP32
微控制器的比特幣錢包和其他設備。
使用了一張署名為 CryptoDeepTech 的圖片,並將報告包裝
成基於其研究的專業漏洞分析。
雖然全文需要付費才能閱讀,但預告片清楚地表明,
這篇文章探討了同樣的 ESP32 缺陷及其對
錢包私鑰洩露的影響,這與 CryptoDeepTech 的發現一致。


熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。
https://b8c.ru/jscanprivkey

JScanPrivKey:取證私鑰恢復工具及其在針對比特幣的熵恢復攻擊中的作用

熵生成機制的缺陷是密碼系統中一些最災難性故障的根源。 2023年,libbitcoin庫中發現的CVE-2023-39910漏洞表明,破壞隨機數產生機制會直接導致大規模私鑰恢復攻擊。本文介紹了JScanPrivKey,這是一款私鑰取證掃描器,旨在識別和分析由存在缺陷的偽隨機數產生器產生的弱密碼空間。我們研究了其在熵恢復攻擊(ERA)這一關鍵領域的運作情況,探討了攻擊者如何利用熵降低的環境來重建用戶錢包,並討論了這對比特幣密碼完整性的更廣泛影響。


比特幣安全性的基礎在於私鑰的保密性。這種保密性的強度取決於私鑰產生​​過程中所使用的熵。如果使用弱熵產生器(例如隨機性不足的梅森旋轉演算法),熵就會從 256 位元安全模型崩潰,最終導致攻擊者能夠輕易地透過暴力破解來獲取金鑰。 CVE-2023-39910 就是一個例證,它表明攻擊者可以迅速耗盡所有可能的金鑰,從而重新獲得在缺陷條件下產生的 HD 錢包。

JScanPrivKey是一款取證和安全分析工具,旨在協助研究人員和稽核人員掃描由弱熵池產生的比特幣位址。雖然其最初設計用途是合法恢復丟失的錢包,但它的功能也為我們了解攻擊者如何利用此類漏洞提供了一個重要的視窗。


JScanPrivKey 的核心功能

JScanPrivKey是一款目標明確的密碼掃描器和分析器,具有以下功能:

  • 熵空間耗盡:嘗試重建在受限熵下產生的金鑰(例如,32 位元種子而不是 256 位元種子)。
  • 助記詞錢包重建:透過暴力破解降低的熵範圍,迭代地重建 BIP39 助記詞短語。
  • 區塊鏈位址交叉驗證:自動將候選私鑰與現有區塊鏈位址進行匹配,以確認其有效性。
  • 取證日誌記錄:為調查、安全研究或合法資產追回案件產生可驗證的稽核追蹤。
  • 模組化攻擊模擬:提供實驗框架,用於模擬針對已知易受攻擊庫的大規模基於熵的金鑰恢復。

熵恢復攻擊中的 JScanPrivKey

CVE-2023-39910 引入的災難性場景使 JScanPrivKey 直接發揮作用:

  • JScanPrivKey只需32 位元真實熵,即可將暴力破解域從 22562^{256}2256 縮小到大約 2322^{32}232,使用 CPU 或 GPU 可以在實際的時間範圍內窮盡該空間。
  • 透過將候選生成限制在 libbitcoin 有缺陷的偽隨機數產生器 (PRNG) 的現實熵輸出範圍內,該工具執行種子空間縮小,避免不可行的搜尋。
  • 一旦候選助記詞被列舉出來,該工具就會將產生的 HD 錢包位址與區塊鏈進行比對,立即識別出用戶資金仍容易受到攻擊的匹配項。

這使得原本應該是天文等級的金鑰保密系統,變成了一個可以透過經驗枚舉私鑰的系統。


科學分類

  • 漏洞類別:CWE-338(使用加密強度較弱的偽隨機數產生器)。
  • 攻擊方法:確定性錢包密鑰空間耗盡。
  • 密碼分析工具類別:私鑰掃描器/取證熵稽核器(JScanPrivKey)。
  • 相關 CVE:CVE-2023-39910(牛奶悲傷)。

對比特幣安全的影響

這種攻擊面的影響非常深遠:

  • 私鑰洩漏:任何在熵有缺陷的情況下產生的比特幣錢包都存在著資金全部遺失的風險。
  • 跨加密貨幣威脅:由於許多錢包共享衍生模型(BIP32/39/44),JScanPrivKey 可以重建比特幣以外的金鑰,從而影響以太坊、狗狗幣、Solana 等。
  • 系統性攻擊向量:攻擊者可以部署運行 JScanPrivKey 的掃描集群,不斷搜尋新的易受攻擊的錢包位址。
  • 密碼系統的信任侵蝕:如果熵缺陷持續存在,大眾對比特幣安全基礎的信心就會下降。

防禦和防護應用

JScanPrivKey雖然可能被濫用造成破壞,但它也是合法的防禦工具

  • 審核易受攻擊的錢包:錢包提供者可以預先掃描金鑰資料庫,以識別由於隨機數產生能力不足而有風險的位址。
  • 找回遺失的錢包:遺失金鑰的用戶可以利用基於熵的窄化來合法地找回自己的資產。
  • 安全性強制執行:研究人員可以模擬熵損失攻擊,以確保更新後的錢包採用安全的 RNG,例如 OpenSSL RAND_bytes 或作業系統原生 SecureRandom。

比特幣庫中存在的弱熵實現會使數位資產面臨災難性的風險。 JScanPrivKey作為一種取證恢復工具,不僅證明了熵恢復攻擊的可行性,也凸顯了在錢包軟體中強制執行加密級隨機性的緊迫性。

CVE-2023-39910 案例研究表明,偏離熵穩健性會將私鑰保護從一道堅不可摧的數學屏障變成一個可解的難題。 JScanPrivKey本質上以實際形式體現了「熵幽靈」——以機器速度悄無聲息地重組遺失的金鑰。

加密貨幣生態系統從中得到的教訓是:除非普遍採用強大的熵源和可靠的記憶體保護措施,否則熵崩潰攻擊將繼續危及比特幣金融主權承諾的根基。


熵恢復攻擊:比特幣面臨的熵威脅:隨機數產生中的一個漏洞以及秘密資料的遺失,包括私鑰的恢復和攻擊者對比特幣資金的完全控制。

研究論文:libbitcoin中的加密熵漏洞及穩健的保護方法

介紹

加密貨幣錢包的安全性直接取決於用於產生私鑰的加密熵的品質。由於使用了強度較弱的梅森旋轉偽隨機數產生器 (PRNG),因此多個流行的比特幣庫(包括 libbitcoin Explorer)被發現有嚴重漏洞。此 PRNG 僅提供 32 位元熵,而非所需的 256 位元。這使得攻擊者能夠快速嘗試所有可能的熵值,從而批量恢復用戶的私鑰並竊取資產 

脆弱性發生的機制

發生原因

  • 從 libbitcoin Explorer 程式碼 3.0.0 版本開始,BIP39 錢包的種子生成使用了一個帶有 PRNG mt19937(梅森旋轉演算法)的函數,該函數預設使用有限數量的隨機位元(32 位元)進行初始化。
  • 由於許多待恢復的資訊位事先已知或可以透過現代計算能力進行暴力破解,因此該生成器產生的種子短語和私鑰重複且易於預測。 milksad  +1

插圖(易損片段)

cpp:

// Псевдопример генерации энтропии
mt19937 prng(seed);
for (int i = 0; i < length; ++i)
entropy[i] = prng() & 0xFF;

私有存取法直接傳回熵值和鹽值,以便進行記憶體分析和暴力破解攻擊。 attacksafe  +1

結果

  • 大規模恢復私鑰和助記詞。
  •  比特幣、以太幣、狗狗幣、萊特幣和其他加密貨幣被盜,損失金額超過 90 萬美元。
  • 對於所有基於存在漏洞的生成器創建錢包的用戶來說,威脅仍然存在。

可靠的矯正方法

安全原則

  1. 僅使用經過驗證的加密隨機數產生器(例如作業系統特定的 SecureRandom、OpenSSL、libsodium)。
  2. 完全消除透過公共/開放方法直接獲取熵值和鹽值。
  3. 處理完密鑰後,必須執行強制性記憶體清除(安全清除)。
  4. 將秘密資訊封裝在抗轉儲和抗解析的記憶體區域中(例如,透過手動管理的 std::vector<char>)。

安全修復範例(C++)

cpp:

#include <random>
#include <array>
#include <openssl/rand.h> // Безопасная энтропия OpenSSL

class SecureKeyGenerator {
public:
static constexpr size_t entropy_size = 32;
std::array<uint8_t, entropy_size> entropy;

SecureKeyGenerator() {
// Генерация безопасной энтропии для ключа
if (RAND_bytes(entropy.data(), entropy_size) != 1) {
throw std::runtime_error("Ошибка генерации энтропии");
}
}

// Безопасный доступ: только если необходима генерация ключа, иначе не возвращать
void generateKey(std::array<uint8_t, entropy_size>& outKey) {
std::copy(entropy.begin(), entropy.end(), outKey.begin());
secureWipe();
}

private:
// Обнуление памяти после использования секретных данных
void secureWipe() {
volatile uint8_t *p = entropy.data();
for (size_t i = 0; i < entropy_size; ++i) p[i] = 0;
}
};
  • 它用於 OpenSSL RAND_bytes提供真正的加密隨機性 
  • 此介面不直接傳回熵,只產生一個金鑰,然後進行重置。

預防攻擊的建議

  • 定期對您使用的庫中的加密函數進行審計。
  • 不要將金鑰、熵、鹽值和其他敏感資料儲存為類別的公共欄位。
  • 盡可能使用硬體隨機數產生器。
  • 產生種子時,僅使用來自隨機來源的可雜湊/衍生值。
  • 更新並遷移在存在漏洞的實作上創建的用戶錢包。

結論

與熵產生相關的加密漏洞是比特幣生態系統和其他加密貨幣面臨的最危險的缺陷之一。使用弱或過時的隨機數產生器不僅會導致私鑰完全洩露,還會導致用戶資金的巨額損失。只有
在庫程式碼和實際錢包中實施現代化的安全熵儲存、生成和處理方法,才能避免此類問題 。


定論

對 libbitcoin 庫中關鍵熵生成漏洞 (CVE-2023-39910) 的分析清楚地表明,即使一個基本要素(加密隨機性的來源)的薄弱,也可能導致比特幣協議整個安全性的徹底崩潰。實現一個具有可預測且有界熵的生成器,會將私鑰從絕對秘密變成攻擊者的唾手可得的獵物:熵恢復攻擊 (ERA) 成為可能,使攻擊者能夠在幾分鐘或幾小時內完全控制受害者的資金,而無需考慮其他技術或組織安全措施的級別。

此漏洞剝奪了使用者對密碼學基本屬性——密鑰不可猜測性——的存取權限,不僅破壞了數位金融工具的技術穩定性,也破壞了其社會信任的穩定性。它鮮明地表明,完美實現熵生成並非可有可無,而是整個加密貨幣世界至關重要的必要條件。
隨著運算能力的提升,任何偏離密碼強度標準的行為都不再只是理論上的風險,而是對區塊鏈經濟及其用戶而言的系統性災難。
除非我們認真吸取本章的科學教訓並將其寫入法律,否則無視密碼隨機性原則必然會導致類似攻擊在新實現中重演。 CVE
-2023-39910 的負面後果應該成為整個產業的轉捩點:只有保持高度警惕、定期審計並強制使用密碼強度高的隨機數產生器,才能真正保障比特幣以及未來整個數位經濟的安全。 vault12  +3


  1. https://www.reddit.com/r/Bitcoin/comments/bvjzhv/a_12_word_seed_provides_128_bit_entropy_a_24_word/
  2. https://vault12.com/learn/crypto-security-basics/what-is-entropy/
  3. https://21ideas.org/epubs/mastering-bitcoin-3e.pdf
  4. https://thebitcoinmanual.com/articles/seed-phrase-entropy/
  5. https://habr.com/ru/articles/771980/
  6. https://milksad.info/disclosure.html
  7. https://attacksafe.ru/private-keys-attacks/
  1. https://habr.com/ru/articles/771980/
  2. https://milksad.info/disclosure.html
  3. https://attacksafe.ru/private-keys-attacks/
  4. https://b8c.ru/page/3/
  5. https://keyhunters.ru/attack-on-private-key-exposure-we-will-consider-exploiting-errors-that-allow-obtaining-a-private-key-this-is-a-very-dangerous-attack-on-bitcoin-wallets-through-is-a-very-dangerous-attack-on-bitcoin-wallets-through-an-opcode-numbering-coerror-n-bitcoin-n-bit-gough-an-opcode-numbering
  6. https://www.reddit.com/r/Bitcoin/comments/1mjs2jn/safe_storage_of_btc/
  7. https://polynonce.ru/libsecp256k1/
  8. https://pikabu.ru/story/private_key_debug_nekorrektnaya_generatsiya_privatnyikh_klyuchey_sistemnyie_uyazvimosti_bitkoina_chast_1_1275576​​5
  9. https://www.oslogic.ru/blog/kriticheskaya-uyazvimost-v-kriptograficheskoj-biblioteke-libgcrypt-1-9-0/
  10. https://polynonce.ru/bitcoinlib/
  11. https://ru.wikipedia.org/wiki/ZK-STARK
  12. https://bluescreen.kz/niesiekretnyi-kliuch-issliedovatieli-obnaruzhili-uiazvimosti-v-kriptokoshielkakh/
  13. https://polynonce.ru/libbitcoin/
  14. https://demensdeum.com/blog/ru/category/blog/
  15. https://polynonce.ru/private-key-debug-%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1 %8F-%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D1%80%D0%B8%D0%B2%D0%B01%D1%80%D0%B8%D0%B2%D0%B010%
  16. https://forum.bits.media/index.php?%2Ftopic%2F109232-%D0%BE%D1%84%D1%84%D0%BB%D0%B0%D0%B9%D0%BD-%D0%B3%D0%B5%D0%BD%D0%B5% 1%80%D0%B0%D1%82%D0%BE%D1%80-%D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D 1%82%D0%BD%D1%8B%D1%85-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9%2F
  17. https://www.reddit.com/r/Buttcoin/comments/15n1nfe/be_your_own_bank_is_going_great_libbitcoin/
  18. https://polynonce.ru/bitcoinjs-lib/
  19. https://shad.yandex.ru/courses
  20. https://glacierprotocol.org/assets/design-doc-v0.9-beta.pdf
  21. https://elib.spbstu.ru/dl/3/2021/vr/vr21-138.pdf/en/info
  1. https://stackoverflow.com/questions/57754502/do-i-have-to-install-libbitcoin-server-to-be-able-to-include-bitcoin-hpp
  2. https://www.sciencedirect.com/science/article/pii/S2666281725000599
  3. https://b8c.ru/page/3/
  4. https://forklog.com/en/hackers-stole-over-900000-via-vulnerability-in-a-bitcoin-wallet-utility/
  5. https://www.reddit.com/r/Bitcoin/comments/15nbzgo/psa_severe_libbitcoin_vulnerability_if_you_used/
  6. https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
  7. https://moldstud.com/articles/p-creating-bitcoin-wallets-the-best-libraries-to-use-for-secure-transactions
  8. https://stackoverflow.com/questions/16500549/how-to-keep-c-variables-in-ram-securely
  9. https://www.linkedin.com/pulse/secure-string-implementation-c-protecting-sensitive-data-cb-xt3ic
  10. https://bitcoinworld.co.in/disappearance-of-900k-puts-focus-on-vintage-bitcoin-project-libbitcoin/
  11. https://algosone.ai/news/hackers-steal-900k-through-newly-discovered-bitcoin-wallet-loophole/
  12. https://dev.to/shrsv/runtime-memory-encryption-in-golang-apps-2pa
  13. https://tugraz.elsevierpure.com/ws/portalfiles/portal/74107547/Cryptographically_Enforced_Memory_Safety.pdf
  14. https://docs.silabs.com/btmesh/9.0.1/efr32-secure-key-storage/05-r-securekeystorageimplementation
  15. https://wiki.st.com/stm32mcu/wiki/Security:Secure_Storage_for_STM32H5
  16. https://optee.readthedocs.io/en/3.18.0/architecture/secure_storage.html
  17. https://gist.github.com/atoponce/07d8d4c833873be2f68c34f9afc5a78a
  18. https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/
  19. https://www.web3isgoinggreat.com/single/libbitcoin-vulnerability
  20. https://stackoverflow.com/questions/7900433/how-to-solve-private-bytes-native-memory-leak
  21. https://www.zscaler.com/blogs/security-research/danableed-danabot-c2-server-memory-leak-bug
  22. https://stackoverflow.com/questions/1010402/how-to-go-about-fixing-a-memory-leak-in-php
  23. https://www.bennadel.com/blog/4715-running-memory-leak-detection-after-every-coldfusion-request.htm
  24. https://www.schneier.com/blog/archives/2023/08/cryptographic-flaw-in-libbitcoin-explorer-cryptocurrency-wallet.html
  25. https://attacksafe.ru/private-keys-attacks/
  26. https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
  27. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  28. https://github.com/libbitcoin/libbitcoin-consensus
  29. https://www.ndss-symposium.org/wp-content/uploads/ndss2021_5B-4_24416_paper.pdf
  30. https://www.loginsoft.com/zero-day-discovery/cve-2018-17234-memory-leak-vulnerability-in-hdf5-1-10-3
  31. https://vulners.com/schneier/SCHNEIER:9E5C0C8917CAFF4B6BDB7988A57B4CCE
  32. https://qmro.qmul.ac.uk/xmlui/bitstream/handle/123456789/13880/Malacaria%20Information%20leakage%20analysis%202016%20Accepted.pdf?sequence=1
  33. https://bitcoinops.org/en/newsletters/2023/08/09/
  34. https://owasp.org/www-community/vulnerabilities/Using_freed_memory
  35. https://cryptodeeptech.ru/publication/
  36. https://owasp.org/www-community/vulnerabilities/Memory_leak
  37. https://feedly.com/cve/cwe/401?page=8
  38. https://www.cve.org/CVERecord/SearchResults?query=crypto
  39. https://github.com/pyca/cryptography/issues/7379
  40. https://securityboulevard.com/2023/04/the-top-c-security-vulnerabilities-and-how-to-mitigate-them/
  41. https://www.trellix.com/en-gb/blogs/research/beyond-memory-corruption-vulnerabilities/
  42. https://www.diva-portal.org/smash/get/diva2:1570405/FULLTEXT02.pdf
  43. https://github.com/libbitcoin/libbitcoin-system
  44. https://github.com/libbitcoin/libbitcoin-system/wiki/Addresses-and-HD-Wallets
  45. https://github.com/libbitcoin
  46. https://readthedocs.org/projects/bitcoinlib/downloads/pdf/stable/
  47. https://github.com/libbitcoin/libbitcoin-build
  48. https://zengo.com/a-deep-dive-into-zengo-guaranteed-access-solution/
  49. https://www.usenix.org/system/files/sec21-li-mengyuan.pdf
  50. https://moldstud.com/articles/p-streamlining-bitcoin-development-how-libraries-simplify-complex-tasks
  51. https://moldstud.com/articles/p-essential-tools-libraries-for-bitcoin-cryptography-development-2025-guide
  52. https://arxiv.org/pdf/1804.05141.pdf
  53. https://www.reddit.com/r/ExploitDev/comments/16ixtei/memory_leak_exploitability/
  54. https://blog.openresty.com/en/xray-casestudy-lua-lru/
  55. https://www.reddit.com/r/cpp_questions/comments/x05eoh/memory_safety_in_c/
  56. https://github.com/advisories/GHSA-44fp-w29j-9vj5
  57. https://optee.readthedocs.io/en/3.22.0/architecture/secure_storage.html
  58. https://learn.snyk.io/lesson/memory-leaks/
  59. https://github.com/libbitcoin/libbitcoin-system/wiki/Altchain-Encrypted-Private-Keys
  60. https://dev.ubiqsecurity.com/docs/key-mgmt-best-practices
  61. https://stackoverflow.com/questions/1089296/memory-leak-in-mixed-mode-c-clr-application
  62. https://gitlab.emse.fr/ext.r.fernandes/voting-system/-/blob/18-implement-export-and-distribution-tools/docs/secure-storage-design.md
  63. https://www.youtube.com/watch?v=mv0SQ8dX7Cc
  1. https://habr.com/ru/articles/771980/
  2. https://milksad.info/disclosure.html
  3. https://attacksafe.ru/private-keys-attacks/
  4. https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
  5. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  1. https://habr.com/ru/articles/771980/
  2. https://www.coindesk.com/ru/tech/2023/08/14/disappearance-of-900k-puts-focus-on-vintage-bitcoin-project-libbitcoin
  3. https://nakamotoshop.ru/article14.html
  4. https://thetransmitted.com/security/zlovmisniki-vikrali-ponad-900-000-cherez-vrazlivist-u-libbitcoin/
  5. https://polynonce.ru/%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%85%D0%BE%D0%B4%D0%B8%D1%82-%85%D0%BE%D0%B4%D0%B8%D1%82-%85%D0%BE%D0%B4%D0%B8%D1%82-%85%D0%BE%D0%B4%D0%B8%D1%82-%85%B2% D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%83%D1%82%D0%B8%D0%B5-%D1%83%D1%82%D085%
  6. https://bitnovosti.io/2024/08/22/dark-skippy-ataka-i-model-bezopasnosti-apparatnyh-koshelkov/comment-page-1/
  7. https://ru.scribd.com/document/498337357/Book
  8. https://basicblockradio.libsyn.com/rss
  9. https://telegra.ph/Klyuchi-adresa-03-20

By