作者:KEYHUNTER
秘密膠囊攻擊(可預測偽隨機數產生器種子攻擊)
Libbitcoin Explorer 的熵生成機制中發現的嚴重「Milk Sad」漏洞 (CVE-2023-39910) 清楚地表明,隨機數產生器中的一個缺陷如何能從根本上危及比特幣加密貨幣及其相關區塊鏈的安全性。該漏洞利用了一個非加密的梅森旋轉演算法生成器,並以 32 位元時間初始化,將暴力破解助記詞和私鑰的難度從天文數字般的 2^256 次嘗試降低到微不足道的 2^32 次嘗試,從而為大規模暴力破解攻擊和用戶資金被盜鋪平了道路,最終導致超過 90 萬美元的用戶資金被盜 。
這事件生動地印證了密碼學的一項基本原則:整個加密貨幣生態系統的強度取決於其最薄弱的環節。這個漏洞在科學上被稱為“可預測偽隨機數產生器種子攻擊”,正式名稱為“可預測隨機數產生漏洞”。它摧毀了人們對低熵密鑰產生器的信任,並表明在關鍵系統中使用非加密生成器是不可接受的,即使只是為了演示目的。
Milk Sad 嚴重漏洞 (CVE-2023-39910):Libbitcoin Explorer 中的可預測熵攻擊和大規模比特幣安全漏洞
Milk Sad,一個嚴重的加密漏洞,及其對比特幣安全的影響。
現代加密貨幣系統(例如比特幣)建立在這樣的假設之上:產生的私鑰具有密碼學安全性,能夠抵禦暴力破解攻擊。然而,2023 年,金鑰產生基礎設施中最危險的漏洞之一 ——Milk Sad (CVE-2023-39910)被發現,導致數千個錢包遭到入侵,並對人們對開源程式碼安全性的信任造成了重大打擊。 nvd.nist +3
脆弱性的科學特徵
描述和機制
Milk Sad漏洞被歸類為“由於熵不足導致的加密金鑰產生器洩漏”, 根據NIST的定義, 這稱為可預測隨機數產生(PRNG )。當使用梅森旋轉演算法(mt19937)產生初始加密熵時,就會出現此漏洞,該演算法使用32位元時間值進行初始化。這種實現方式將可能的私鑰搜尋空間從2²⁵⁶大幅 限制在2³²,使得攻擊者能夠以最小的計算成本嘗試所有可能的種子值,從而恢復用戶的私鑰。
該攻擊的正式科學名稱
在國際科學和工業文獻中,這種攻擊被稱為:
- 可預測偽隨機數產生器種子 攻擊
- 低熵錢包種子 漏洞利用
- CVE-2023-39910(milk sad 漏洞,libbitcoin-explorer 中的熵崩潰)
對比特幣生態系統的影響
後果的規模
2023年6月至8月期間, 使用有漏洞的錢包產生器創建的錢包直接損失 約90萬美元。 milksad +2
主要負面後果:
- 隱私外洩 :任何攻擊者都可以輕易取得存在漏洞錢包的種子金鑰和私鑰。 github +1
- 資金被竊 :資金透過暴力破解作為主要攻擊手段轉移到攻擊者的地址。
- 對軟體的普遍不信任 :對助記詞和開源工具的信任正受到威脅。
- HD錢包安全崩潰:種子產生器被攻破 後,BIP32/BIP39不再適用
理論威脅
這次攻擊意味著,對於運行缺乏加密強度的熵生成機制的軟體的用戶而言,比特幣的加密安全性幾乎可以降至零。即使網路中只有一小部分使用了易受攻擊的生成器,整個用於維持長期餘額的威脅模型也將失效。
科學論證與分類
在科學出版物和 CVE 資料庫中,該攻擊被記錄為 「加密弱偽隨機數產生器種子」 或 「偽隨機數產生器種子可預測性」 。網路安全資料庫已將其分配了標識符 CVE-2023-39910。 clouddefense + 2
- CVE 名稱 :CVE-2023-39910
- 該類別的通用科學名稱 :可預測隨機數產生器(PRNG)漏洞
- 專業名稱 :牛奶悲傷脆弱性/熵崩潰
一個實際的科學例子
cpp:// Уязвимый пример:
const auto now = high_resolution_clock::now();
return static_cast<uint32_t>(now.time_since_epoch().count());
// Порождает seed с крайне ограниченным количеством уникальных значений
攻擊分析器可以以 1 秒的步長遍歷給定時間間隔(月/年)內的所有時間戳,模擬種子併計算私鑰。
結論
Milk Sad 嚴重漏洞是廣泛部署的軟體中基本密碼學原則遭到嚴重破壞的典型例子。它不僅會導致經濟損失,還會破壞人們對加密貨幣協議可信賴安全基礎的信任。 徹底緩解此類攻擊的唯一方法是完全放棄傳統的偽隨機數產生器 (PRNG),轉而採用系統級且密碼學安全的隨機數產生器 (CSPRNG), 並在每個階段進行熵品質檢查。
主要來源 :[milksad.info]、[nvd.nist.gov]、[habr.com]、[github.com/demining]、[blog.inhq.net]、[cryptodeep.ru] cryptodeep+5
加密漏洞
分析 libbitcoinauthority.cpp 中的加密漏洞
在仔細分析所提供的程式碼並蒐索有關 libbitcoin 中加密漏洞的資訊後,應該指出的是, 這個特定的 authority.cpp 檔案不包含任何與洩露秘密金鑰或私鑰相關的直接加密漏洞 。
authority.cpp 中缺少加密操作
libbitcoin-system 提供的 authority.cpp 程式碼執行下列功能: stackoverflow
- 設定網路位址(IPv4/IPv6)
- 處理連接埠和CIDR子網
- 解析網路端點的字串表示
- 比較和序列化權限對象
程式碼的主要特點:
- 不包含密碼學原語
- 不適用於私鑰或金鑰。
- 受網路配置限制
libbitcoin 中存在的真實加密漏洞
libbitcoin 生態系的主要漏洞是在 另一個元件 libbitcoin-explorer 中發現的,漏洞編號為 CVE-2023-39910(「Milk Sad」): reddit+2
易受攻擊的檔案: pseudo_random.cpp 在 libbitcoin-system incibe+1中
cpp:// Уязвимая строка в pseudo_random.cpp:
const auto now = high_resolution_clock::now();
return static_cast<uint32_t>(now.time_since_epoch().count());
漏洞的技術本質:
- 使用梅森旋轉演算法(mt19937)作為偽隨機數產生器 cryptorank+1
- 將熵限制為 32 位元而不是所需的 256 位元 binance+1
- 使用系統時間algosone+1初始化生成器
authority.cpp 中的潛在問題
雖然不存在直接的加密漏洞,但可以識別出潛在的安全性問題:
第 98-102 行 – 輸入資料處理:
cpp:std::istream& operator>>(std::istream& input,
authority& argument) THROWS
{
std::string value{};
input >> value;
if (!parse_authority(argument.ip_, argument.port_, argument.cidr_, value))
throw istream_exception(value);
return input;
}
潛在風險:
- 缺少輸入資料長度驗證
- 處理大型字串時可能發生緩衝區溢出
- 格式化輸入資料的驗證不足

第 110-117 行 – 輸出流:
cpp:BC_PUSH_WARNING(NO_THROW_IN_NOEXCEPT)
output
<< argument.to_literal()
<< (!is_zero(argument.port()) ? ":" + serialize(argument.port()) : "")
<< (!is_zero(argument.cidr()) ? "/" + serialize(argument.cidr()) : "");
BC_POP_WARNING()
問題: 抑制編譯器對潛在異常的警告。
結論
為確保安全,建議:
- 加強運算子中的輸入驗證
>>(第 98-102 行) - 檢查警告抑制巨集的使用情況(第 110-117 行)
- 定期將 libbitcoin 更新到 CVE-2023-39910 之後的安全版本。

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

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

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

區塊鏈訊息解碼器: www.bitcoinmessage.ru
團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008b483045022100903274aea85abf8a9d952b974eb6cb56c837ad627a34abc8d24f6192b5cc45b302203af2bf83aa00e4e5336c31aacf0ac3f3a49ac942fb07bbde616f8363b762ea8a014104efcc741838368363e29cb3b2f0985faf8693f13750294dd4277c49f8bae06e7a686610ea328222c28fe018a0533d6a89013c0ecf6b14a773520d1c09a6d24428ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420313834333836372e32335de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914269c967268197f7dfb7403d2c2aeddf4ed38065a88ac00000000
密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。
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 的發現一致。 |

BestLeakHunter 和比特幣錢包中可預測熵漏洞的利用
加密貨幣的安全性建立在加密金鑰的不可預測性之上,尤其是用於控制比特幣地址和授權交易的私鑰。然而,Libbitcoin Explorer 中發現的 Milk Sad 漏洞 (CVE-2023-39910) 表明,不合理的隨機數產生方式會徹底破壞此安全基礎。本文介紹了BestLeakHunter(一種分析型密碼學漏洞評估工具)在理解、映射和利用可預測偽隨機數產生器 (PRNG) 弱點方面的作用。透過應用 BestLeakHunter 的系統性熵洩漏檢測功能,研究人員可以展示諸如弱 PRNG 種子等關鍵缺陷如何導致私鑰被恢復和比特幣錢包被大規模入侵,凸顯了對加密安全熵源的迫切需求。
2023 年中,研究人員發現 Libbitcoin Explorer 的熵生成系統存在一個嚴重缺陷,即著名的「牛奶悲傷」(Milk Sad)漏洞。此漏洞源自於僅使用32 位元系統時間值作為種子值的梅森旋轉演算法 (mt19937),導致有效密鑰空間從 22562^{256}2256 種可能性驟降至暴力破解可行的 2322^{32}232 種可能性。因此,攻擊者可以大規模地計算錢包助記詞並提取私鑰。據報道,該漏洞導致價值超過 90 萬美元的比特幣和其他加密貨幣被盜。
雖然這項發現本身就揭示了使用不充分的隨機性來源的危險性,但工具在系統性地識別此類漏洞方面的作用同樣至關重要。 BestLeakHunter正是為此類任務而設計的——定位加密熵洩漏、模擬密鑰可預測性以及評估可能的入侵途徑。
BestLeakHunter 的功能
BestLeakHunter是用於偵測、建模和利用密碼系統中資訊外洩的科學軟體工具。其主要功能包括:
- 熵分析:偵測錢包產生中使用的弱隨機性來源,包括時間戳記、進程標識符或低位元種子等可預測變數。
- 密碼狀態重構:模擬在縮小的搜尋空間內進行偽隨機數產生器初始化,並重構潛在的熵流。
- 漏洞評分:根據 NIST 的 PRNG 分類法和 CVE 漏洞等級等標準對弱點進行分類。
- 密鑰恢復模組:自動在縮小的熵域內進行暴力破解分析,針對區塊鏈資料集測試候選私鑰。
- 影響模擬:將地圖上的關鍵空間與區塊鏈記錄進行比對,以確定可能發生的竊盜規模。
BestLeakHunter 應用於牛奶悲傷漏洞
Libbitcoin Explorer 中可預測的種子漏洞是 BestLeakHunter 方法論的典型應用案例。
- 熵洩漏檢測
BestLeakHunter 發現該系統使用 32 位元時間戳為其偽隨機數產生器 (PRNG) 進行初始化,這被標記為「加密熵不足」。 - 熵空間坍縮
BestLeakHunter 不會分析完整的 22562^{256}2256 空間,而是自動將問題限制在 2322^{32}232 空間內,從而將完全暴力探索所需的時間縮短到使用現代計算資源只需幾個小時。 - 金鑰重構過程
BestLeakHunter 透過產生候選 PRNG 輸出來重建 BIP39 助記詞種子,並透過匯出對應的比特幣位址來驗證它們。 - 攻擊影響模擬
運行模擬,該工具可以演示恢復大量錢包密鑰的精確可行性計算,從而提供下游財務風險的證據。
科學意義
將 BestLeakHunter 整合到密碼分析研究中,顯著強化了在安全關鍵系統中強制使用 CSPRNG 的學術論點。它對 Milk Sad 的案例分析揭示了以下幾個科學要點:
- 熵碰撞導致比特幣安全崩潰:即使是部分可預測性,例如 32 位元種子,也會完全否定橢圓曲線密碼學和基於 SHA 的錢包推導路徑的假定強度。
- 開源系統性風險:BestLeakHunter 指出,開發者工具中廣泛存在的漏洞會在整個生態系統中傳播,損害的不僅是一個用戶,而是成千上萬的用戶。
- 理論與實踐的橋樑:使用 BestLeakHunter 觀察到的概念驗證暴力破解恢復證實了一個關鍵原則——密碼學假設的可靠性僅取決於其最薄弱的實現細節。
對比特幣和未來安全的影響
對 Milk Sad 等漏洞的利用表明,錢包實現仍然是攻擊者的主要目標。 2023 年 6 月至 8 月期間被入侵的錢包為可預測熵攻擊並非僅僅是理論上的提供了經驗證據。使用 BestLeakHunter 進行取證分析揭示了以下後果:
- 巨額資金損失:現實世界中,多個錢包被竊金額超過 90 萬美元。
- 信任喪失:對助記符種子安全性和開源工具的信心立即遭到削弱。
- BIP32/BIP39 推導的失效:如果種子可以被攻擊,則分層確定性錢包(HD 包)將變得毫無意義。
建議
BestLeakHunter 的研究結果強烈建議採取以下防禦措施:
- 強制執行 CSPRNG:在錢包建立中必須只允許使用系統級、加密安全的 RNG(例如
/dev/urandomWindows CryptGenRandom 或硬體 RNG)。 - 熵驗證審計:所有加密貨幣金鑰產生庫在發布前都應該使用 BestLeakHunter 等工具進行結構化審查。
- 持續漏洞監控:研究級工具必須保持活躍,以檢測傳統庫和新興區塊鏈工具中與熵相關的缺陷。
結論
Milk Sad漏洞(CVE-2023-39910)凸顯了可預測的偽隨機數產生器(PRNG)種子如何將比特幣錢包的安全性變成一種假象。在此背景下,BestLeakHunter的使用提供了一個實用且基於研究的框架,用於識別安全漏洞的程度、模擬攻擊並展示密碼系統中災難性的熵崩潰。 BestLeakHunter透過揭示當隨機性被不當使用時,暴力破解變得多麼容易,從而強調了一個至關重要的道理:在比特幣甚至更廣泛的領域,熵是信任的基石。
只有透過毫不妥協地執行 CSPRNG 標準,並結合BestLeakHunter等持續的熵洩漏偵測工具,才能維護加密貨幣的長期完整性。
研究論文:Libbitcoin Explorer 中的 Milk Sad 加密漏洞及安全緩解的有效方法
介紹
2023年6月,研究界發現並詳細描述了一個加密漏洞,後來被命名為 「Milk Sad 」。該漏洞存在於流行的Libbitcoin Explorer工具(版本3.0.0-3.6.0)中,允許遠端攻擊者恢復用戶的私鑰,導致總計超過90萬美元的資金被盜 。
漏洞是如何產生的?
問題描述
此漏洞源自於使用 梅森旋轉偽隨機數產生器 (PRNG) (mt19937) 產生錢包的 BIP39 種子熵,而該產生器並非設計用於密碼學。在 libbitcoin-explorer 中,熵生成函數使用 32 位元系統時間值初始化 mt19937,這嚴重縮小了可能的初始值範圍。 nvd.nist +2
cpp:// Уязвимый код (pseudo_random.cpp):
const auto now = high_resolution_clock::now();
return static_cast<uint32_t>(now.time_since_epoch().count());
- 在這種模式下,梅森旋轉產生器只能提供 2^32 種熵變體,而不是密碼學問題所需的 2^128 或 2^256 種。 clouddefense +1
- 這個選擇使得擁有現代運算資源的攻擊者能夠輕易地暴力破解私鑰。
攻擊機制
- 使用者使用 bx 種子 輸入來啟動助記詞(助記符)產生。
- 系統時間的 32 位元被用作初始熵。
- 攻擊者懷疑使用了易受攻擊的工具,於是嘗試了所有 2^32 種變體,合成了助記詞,從而恢復了私鑰並獲得了資金訪問權限 。
野外剝削
該漏洞被廣泛利用:2023年6月至7月期間,超過2600個錢包在比特幣、以太坊、萊特幣、Solana、狗狗幣、Zcash和其他網路上遭到攻擊 。所有使用來自存在漏洞的Libbitcoin Explorer版本的bx種子創建的錢包,都需要立即將資金轉移到新的地址。
安全性修復:密碼學上強大的熵生成
安全發電機的基本原則
- 使用符合 CSPRNG(加密安全偽隨機數產生器)標準的加密強度高的隨機數源。
- 消除對 time() 函數或類似可預測環境參數的依賴。
- 使用成熟的跨平台庫從系統隨機數產生器中提取熵。
安全實作方案的建議與範例(C++)
使用系統的隨機位元組來源(例如, /dev/urandom在 POSIX 系統中, CryptGenRandom在 Windows 系統中,或使用 std::random_device):
cpp:#include <random>
#include <vector>
#include <stdexcept>
// Генерация криптографически стойкой энтропии:
std::vector<uint8_t> generate_secure_entropy(size_t n) {
std::random_device rd;
std::vector<uint8_t> entropy(n);
for (size_t i = 0; i < n; ++i) {
entropy[i] = static_cast<uint8_t>(rd());
}
// Проверка на неотрицательное значение и достаточность энтропии
if (entropy.empty()) {
throw std::runtime_error("Нет доступа к настоящей энтропии: генерация невозможна.");
}
return entropy;
}
- 這段程式碼保證熵值來自真實的硬體來源或系統,從而最大限度地降低結果的可預測性。 learnmeabitcoin +2
簡而言之,用其他語言
Python :僅使用 os.urandom()或 secrets.token_bytes()
Go : crypto/rand.Read()改用 math/rand
Rust :rand 函式庫應該使用rand::rngs::OsRng
強制性防護措施
- 永遠不要在密碼學中使用標準產生器(
rand(),mt19937)。 - 不要使用確定性/可預測的值(例如時間)來初始化生成器。
- 始終使用系統來源中的 CSPRNG。
- 檢驗結果的穩定性和熵的充分性。
結論
Milk Sad 生動地展示了,一個初始化錯誤的偽隨機數產生器中的一行程式碼就能破壞整個系統的加密安全性,導致用戶私鑰大規模洩漏。只有使用加密偽隨機數產生器並正確管理熵源,才能創造性地、切實有效地保護用戶資金。 github +3
最終科學結論
Libbitcoin Explorer 的熵生成機制中發現的嚴重「Milk Sad」漏洞 (CVE-2023-39910) 清楚地表明,隨機數產生器中的一個缺陷如何能從根本上危及比特幣加密貨幣及其相關區塊鏈的安全性。該漏洞利用了一個非加密的梅森旋轉演算法生成器,並以 32 位元時間初始化,將暴力破解助記詞和私鑰的難度從天文數字般的 2^256 次嘗試降低到微不足道的 2^32 次嘗試,從而為大規模暴力破解攻擊和用戶資金被盜鋪平了道路,最終導致超過 90 萬美元的用戶資金被盜 。
這事件生動地印證了密碼學的一項基本原則:整個加密貨幣生態系統的強度取決於其最薄弱的環節。這個漏洞在科學上被稱為“可預測偽隨機數產生器種子攻擊”,正式名稱為“可預測隨機數產生漏洞”。它摧毀了人們對低熵密鑰產生器的信任,並表明在關鍵系統中使用非加密生成器是不可接受的,即使只是為了演示目的。
無條件遵守密碼學隨機性原則、使用經過驗證的密碼學安全偽隨機數產生器 (CSPRNG)、定期進行代碼審計以及加強開發者培訓,是防止未來發生類似攻擊的關鍵。 Milk Sad 事件將成為比特幣安全史上的一個里程碑,它提醒我們,僅僅一行存在漏洞的程式碼就可能危及成千上萬個錢包、信任以及整個加密貨幣的價值。 pcnews +3
- https://habr.com/ru/articles/771980/
- https://pcnews.ru/top/blogs/day/milk_sad_uazvimost_v_biblioteke_libbitcoin_explorer_3x_krupnaa_kraza_na__900_000_u_polzovatelej_bitcoin_koselkov-1289491.html
- https://habr.com/en/articles/771980/comments/
- https://www.securitylab.ru/news/540834.php
- https://pikabu.ru/story/milk_sad_uyazvimost_v_biblioteke_libbitcoin_explorer_3x_kak_byila_osushchestvlena_kraha_na__900_000_u_polzovateley_bitcoin_koshelkov_na_1079981
- https://dzen.ru/a/ZUeLq8F02UkRfPDV
- https://bitcoinmagazine.com/technical/the-milk-sad-vulnerability-and-what-it-means-for-bitcoin
- https://ru.beincrypto.com/uyazvimost-trust-wallet/
- https://cryptodeep.ru/publication/
- https://cyberleninka.ru/article/n/vyyavlenie-podozritelnyh-uzlov-seti-bitcoin-metodami-analiza-bolshih-dannyh
參考書目:
- [milksad.info]、[github.com/demining]、[nvd.nist.gov]、[habr.com]、[blog.inhq.net]、[learnmeabitcoin.com]、[chain.link]、[github.com/XopMC]、[cryptodeep.ru] chain+8
- https://habr.com/ru/articles/771980/
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://milksad.info
- https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
- https://blog.inhq.net/posts/milk-sad-vuln1/
- https://www.clouddefense.ai/cve/2023/CVE-2023-39910
- https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
- https://cryptodeep.ru/milk-sad-vulnerability-in-libbitcoin-explorer/
- https://learnmeabitcoin.com/technical/keys/hd-wallets/mnemonic-seed/
- https://chain.link/tutorials/how-to-build-a-crypto-wallet
- https://github.com/XopMC/Mnemonic_CPP
- https://www.nasdaq.com/articles/the-milk-sad-vulnerability-and-what-it-means-for-bitcoin
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://creators.spotify.com/pod/profile/bitcoin-explained/episodes/Episode-83-The-Milk-Sad-Vulnerability-e287jpb
- https://www.cve.org/CVERecord?id=CVE-2023-39910
- https://www.stavros.io/posts/perfectly-secure-bitcoin-wallet-generation/
- https://www.reddit.com/r/btc/comments/15n383k/milk_sad_vulnerability_a_practical_explanation_of/
- https://github.com/topics/cve-2023-39910
- https://stackoverflow.com/questions/3429519/safe-mixing-of-entropy-sources
- https://milksad.info/disclosure.html
- https://stackoverflow.com/questions/57754502/do-i-have-to-install-libbitcoin-server-to-be-able-to-include-bitcoin-hpp
- https://www.reddit.com/r/Bitcoin/comments/15nbzgo/psa_severe_libbitcoin_vulnerability_if_you_used/
- https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
- https://cryptorank.io/news/feed/df2a7-crypto-breach-hackers-make-off-with-900k
- https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
- https://www.binance.com/cs/square/post/951306
- https://algosone.ai/news/hackers-steal-900k-through-newly-discovered-bitcoin-wallet-loophole/
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://cointelegraph.com/news/newly-discovered-bitcoin-wallet-loophole-let-hackers-steal-funds-slow-mist
- https://blog.checkpoint.com/wp-content/uploads/2016/10/GreatCryptoFailuresWhitepaper_Draft2.pdf
- https://news.ycombinator.com/item?id=37057601
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://www.schneier.com/blog/archives/2023/08/cryptographic-flaw-in-libbitcoin-explorer-cryptocurrency-wallet.html
- https://forklog.com/en/hackers-stole-over-900000-via-vulnerability-in-a-bitcoin-wallet-utility/
- https://habr.com/ru/articles/771980/
- https://attacksafe.ru/private-keys-attacks/
- https://attacksafe.ru/crypto-plus-plus/
- https://btctranscripts.com/building-on-bitcoin/2018/libbitcoin
- https://attacksafe.ru/libbitcoin/
- https://bitcoinworld.co.in/disappearance-of-900k-puts-focus-on-vintage-bitcoin-project-libbitcoin/
- https://www.investing.com/news/cryptocurrency-news/libbitcoin-vulnerability-leads-to-900k-theft-from-bitcoin-wallets-3152533
- https://vulners.com/schneier/SCHNEIER:9E5C0C8917CAFF4B6BDB7988A57B4CCE
- https://github.com/bitcoin/bitcoin/issues/24303
- https://www.binance.com/id/square/post/951306
- https://stackoverflow.com/questions/57784467/why-is-configure-libbitcoin-system-not-finding-boost-library-on-raspian-butch
- https://bitcoin.review/podcast/episode-46/
- https://formulae.brew.sh/formula/
- https://www.cve.org/CVERecord?id=CVE-2023-39910
- https://bitcoincore.org/logs/2016-05-zurich-meeting-notes.html
- https://bitcoinmagazine.com/technical/lets-talk-libbitcoin-2-1397156427
- https://github.com/BitcoinChatGPT/DeserializeSignature-Vulnerability-Algorithm
- https://www.research-collection.ethz.ch/bitstreams/34793db8-947e-472a-8699-19282322e21b/download
- https://www.binance.com/fr/square/post/1002934
- https://news.ycombinator.com/item?id=37054862
- https://procedures910.rssing.com/chan-58180409/all_p8.html
- https://dev.ndss-symposium.org/wp-content/uploads/2023-263-paper.pdf
- https://arxiv.org/html/2412.05138v1
- https://www.sapphire.net/blogs-press-releases/amid-chaos-there-is-also-crypto-mining/
- https://core.ac.uk/download/pdf/481513588.pdf
- https://nvd.nist.gov/vuln/detail/CVE-2023-39910
- https://habr.com/ru/articles/771980/
- https://milksad.info
- https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
- https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
- https://blog.inhq.net/posts/milk-sad-vuln1/
- https://cryptodeep.ru/milk-sad-vulnerability-in-libbitcoin-explorer/
- https://www.clouddefense.ai/cve/2023/CVE-2023-39910