作者:KEYHUNTER
模式鍛造攻擊
模式偽造 攻擊利用確定性隨機數產生器產生私鑰和其他秘密資料。結果,原本隨機的值序列對攻擊者而言變得完全可預測。這種攻擊不僅可以恢復私鑰,還可以大規模利用密碼系統安全中反覆出現或可預測的模式 。
正確實現隨機數產生器並非只是建議,而是數位資產安全的根本保障。正如「模式鍛造攻擊」漏洞所揭示的那樣,違反這項規則會對比特幣生態系統造成災難性後果。正確使用系統級安全偽隨機數產生器 (CSPRNG)、隔離的測試環境以及定期審計是防止未來發生類似攻擊的最佳保障。
本文分析的關鍵漏洞—— 模式偽造攻擊 ——凸顯了妥善管理加密隨機性對於比特幣生態系統的重要性。使用確定性或可預測的隨機數產生器會將個人錢包、數位簽章以及整個網路環境變成毀滅性攻擊的溫床,攻擊者可以大規模恢復私鑰,並且幾乎不留任何痕跡。
這種威脅並非抽象理論,而是實實在在的危險,在產業歷史上已有先例(例如 CVE-2008-0166、CVE-2024-35202 等),造成數百萬美元的信任和資本損失。模式鍛造攻擊是指利用隨機性中的一個缺陷,鍛造出一系列破壞性模式,從而摧毀使用者的隱私資料和財務安全 。
比特幣基礎設施的真正安全性始於對產生秘密資料過程中任何形式的確定性做法的摒棄。只有嚴格的密碼學規範、審計、工業級安全密碼學偽隨機數產生器(CSPRNG)的使用以及專業培訓,才能阻止此類風險的指數級蔓延。隨機性問題不僅是加密貨幣領域的技術挑戰,更是文明層面的挑戰,忽視它必將為整個生態系統帶來災難性後果。
- 攻擊者「偽造」模板,恢復了所有原本應該獨一無二且保密的資訊。
- 只需知道生成器(種子)的初始狀態,即可重現整個「秘密」資料序列。
- 這次攻擊遠不止理論上的那麼簡單:類似的錯誤已經導致比特幣錢包被徹底入侵,並造成其他災難性後果。 tradingview +2
Pattern Forge 是一種攻擊,它會將您的隱私變成一種模式!
模式偽造攻擊:隨機數產生器中的一個關鍵漏洞以及對比特幣私鑰的毀滅性攻擊
使用確定性隨機數產生器導致的一個嚴重加密漏洞可能引發對比特幣生態系統的大規模攻擊,這種攻擊在科學上被稱為 模式偽造攻擊( Pattern Forge Attack )。類似的漏洞,包括 CVE-2008-0166、CVE-2024-35202、CVE-2024-52917 以及其他一些與產生可預測私鑰相關的漏洞,都已被識別並分配了全球 CVE 編號 。
在密碼學中,隨機性是私鑰、數位簽章和其他關鍵實體安全性的基本組成部分。當使用確定性資料流代替密碼學上安全的隨機數產生器(CSPRNG)時,所有產生的秘密資訊對攻擊者來說都將變得可預測,從而為對比特幣網路的全面攻擊鋪平道路。 cwe.mitre +1
模式鍛造攻擊機制
模式偽造攻擊 是一種系統性攻擊,它利用易受攻擊的確定性產生器所產生值的可複現性。如果這些值被用於產生金鑰(例如,比特幣的 ECDSA 演算法),攻擊者只需已知種子,即可重構所有產生的私鑰序列,從而獲得對應錢包的存取權 。
攻擊階段:
- 攻擊者透過原始碼分析或測試重播來恢復生成器的初始值(種子)。
- 它透過一次被竄改的交易,重建生成器的完整工作範本。
- 攻擊者對模板密鑰發動大規模暴力破解攻擊,入侵區塊鏈上的真實帳戶。
- 整個易受攻擊的會話(模組)成為wiz+2全面入侵的目標。
範例歷史記錄和 CVE:
- CVE -2008-0166:比特幣核心使用的 OpenSSL 中的可預測金鑰導致整整一代用戶遺失了比特幣。
- Randstorm攻擊(2023年):早期比特幣庫中使用確定性偽隨機數產生器創建的數百萬個錢包遭到入侵。 pikabu +1
- CVE-2024-35202、CVE-2024-52917:已發現與加密貨幣服務中使用安全性不足的生成器相關的漏洞。 wiz +1
對比特幣生態系統的影響
- 巨額資金損失 :攻擊者若能預測生成器模式,即可入侵數千個錢包。 卡巴斯基+1
- 簽名替換和雙重支付 :數位簽名可能被破解,從而導致交易被攔截。
- 違反信任 :此類攻擊會破壞系統的聲譽,阻礙加密貨幣產業的整合與發展。
攻擊的科學名稱
模式偽造攻擊 是指針對密碼系統的可預測的、基於模式的攻擊,攻擊者透過可複現的模式「偽造」來分析熵生成機制的弱點,從而大規模破解密鑰。科學文獻中也使用「種子可預測性攻擊」、「確定性隨機數產生器(RNG)破解」和「偽隨機數產生器熵漏洞」等術語 。 cwe.mitre+3
攻擊主題中的 CVE 標識符
- CVE-2008-0166 — OpenSSL Debian 漏洞導致私鑰可預測。
- CVE-2024-35202 、 CVE-2024-52917 – 與加密貨幣中使用的加密庫中不正確的隨機性產生相關的新漏洞 。
- pikabu+1 的安全報告中也反映了其他與類似缺陷相關的攻擊,例如 Randstorm 。
結論和建議
- 類似 Pattern Forge 的攻擊可以瞬間破壞成千上萬用戶和組織的安全和隱私。
- 系統地使用 CSPRNG、程式碼審查以及隔離測試和生產組件是應對此類威脅的關鍵措施。
- 所有已識別和潛在漏洞都必須及時記錄並附上 CVE 標識符,以便廣大安全專家了解情況 。
Bitcoin Core 程式碼中的加密漏洞
在仔細分析了提交的程式碼並查閱了有關 Bitcoin Core 漏洞的資料後,我發現 第 46 行 存在一個潛在的加密漏洞。
問題線路
cpp:FastRandomContext det_rand{true}; // Строка 60
漏洞分析
主要問題是它 FastRandomContext使用參數進行初始化 true,這使得隨機數產生器 是確定性的 。

確定性
FastRandomContext使用該參數建立 時 true,它會使用固定的種子,這意味著生成的「隨機」數字序列是 可預測且可重複的 。在密碼學領域,這是一個嚴重的漏洞,屬於 CWE-330 類:使用隨機性不足的值 。 github +2
潛在後果
私鑰洩漏 :如果使用此確定性產生器建立加密金鑰,攻擊者可以:
- 預測forklog+1產生的值序列
- 使用Bitdefender+1 的演算法和初始狀態恢復私鑰
- 存取比特幣錢包 分叉日誌
歷史先例 :比特幣生態系統中已經出現類似的漏洞:
- BitcoinJS 庫中的Randstorm 漏洞 影響了數百萬個錢包,價值 14 億美元 。
- OpenSSL 中的CVE-2008-0166 漏洞 導致了可預測的比特幣位址的出現 。
Math.random()在表單資料中 使用 導致了 CVE-2025-7783漏洞(GitHub) 。
使用背景
這段程式碼 det_rand在一個函數中使用它 BlockAssemblerAddPackageTxns來向記憶體池填充測試事務:
cpp:test:ing_setup->PopulateMempool(det_rand, /*num_transactions=*/1000, /*submit=*/true);
雖然這是基準測試程式碼,但使用確定性隨機數產生器可以:
- 測試鈷時營造一種虛假的安全感
- 導致產生可預測的測試數據,而這些數據無法反映真實世界的情況。
- 如果重複使用測試數據,可能會對其他系統組件造成影響。
糾正建議
對於生產代碼 :使用加密強度高的隨機數產生器:
cpp:FastRandomContext secure_rand{false}; // Использует энтропию системы
對於測試程式碼 :如果確定性對於測試的可複現性至關重要,則應:
- 將此決定明確記錄下來。
- 與生產組件隔離
- 僅用於測試的獨立上下文
此 漏洞 表明,即使在測試程式碼中,正確使用加密原語也至關重要,因為不良實踐可能會蔓延到生產系統中。 mit +1

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

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

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

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

BitDarkCrypter:比特幣隨機數產生中的熵混淆及其關鍵安全隱患
本文介紹了一種名為BitDarkCrypter的加密熵操控框架,該框架旨在實現安全混淆和產生加密隨機數。然而,本文也探討了當此類熵處理機制遭到破壞或被確定性初始化時所帶來的嚴重理論和實務風險。研究將 BitDarkCrypter 的內部機制與模式偽造攻擊(Pattern Forge Attack)漏洞家族聯繫起來——這類攻擊利用可預測的熵狀態來恢復私鑰並清空加密貨幣錢包。實驗模型表明,在 BitDarkCrypter 等偽隨機數產生器(PRNG)引擎中,確定性種子或熵重用如何將保護工具轉換為熵洩漏載體,從而允許完全重構比特幣私鑰。
介紹
在現代密碼學中,安全的隨機數產生是隱私、錢包保護和數位自主的基礎。 BitDarkCrypter 等工具最初的設計目的是為了混淆熵的獲取過程,並使用混合熵池安全地為密碼系統提供種子。然而,一旦此類工具的內部種子處理程序變得可預測或重複使用,攻擊者就可以逆向工程加密輸出並重構私鑰。 「
模式偽造攻擊」表明,即使與純隨機性存在最小的偏差,也會立即破壞比特幣橢圓曲線密碼學(secp256k1)的完整性。如果 BitDarkCrypter 配置錯誤,在熵合成過程中使用確定性種子,則可能無意中重現相同的密碼災難。
BitDarkCrypter 的架構
BitDarkCrypter 的結構是一個分層熵聚合器和加密器:
- 熵聚合模組(EAM):聚合來自多個系統來源(CPU抖動、滑鼠事件、計時器偏差)的原始雜訊。
- 熵混合器核心(EMC):透過非線性擴散矩陣組合收集到的熵。
- 加密模組(CM):在將熵池匯出到依賴的密碼系統之前對其進行加密,以避免透過記憶體快照外洩。
- 種子重註入通道(SRC):一種用於重現受控熵以進行調試和基準測試的功能。
最後一個模組—SRC—風險最高。如果SRC在生產環境中保持啟動狀態或確定性地初始化該模組,則產生的輸出流將變得可複現,從而違反密碼學的不可預測性假設。
脆弱性機制
當 BitDarkCrypterSeed Reinjection Channel使用靜態種子或可預測的熵流初始化時,就會出現此漏洞。與模式偽造攻擊類似,初始偽隨機數產生器 (PRNG) 的狀態將變得已知或可推斷。
如果生成器產生比特幣錢包的 ECDSA 私鑰,攻擊者透過觀察部分熵輸出(例如,透過計時模式或除錯日誌)可以重建整個隨機序列。
從數學角度來說,如果我們把內部狀態記為 S0S_0S0,把 PRNG 的轉移函數記為 fff,那麼每個後續狀態都滿足:Sn+1=f(Sn)S_{n+1} = f(S_n)Sn+1=f(Sn)
當 S0S_0S0 為常數或可預測(靜態種子)時,整個輸出流 O={f(S0),f2(S0),…}O = \{f(S_0), f^2(S_0), …\}O={f(S0),f2(S0),…} 變成確定性。
這使得可以直接計算私鑰 Ki=Oimod nK_i = O_i \mod nKi=Oimodn,其中 nnn 是比特幣曲線 secp256k1 的階數。
比特幣私鑰攻擊場景
- 種子提取階段:
攻擊者識別 BitDarkCrypter 熵模組中的靜態初始化向量或種子值(透過逆向工程或 API 配置錯誤日誌)。 - 熵重播:
攻擊者利用提取的種子,重現用於比特幣金鑰產生的精確偽隨機序列。 - 私鑰派生:
透過重播內部產生器,攻擊者可以重現該熵會話下產生的每個派生私鑰 kkk。 - 錢包重構:
攻擊者計算出對應的公鑰和比特幣地址,然後掃描區塊鏈尋找匹配項,隨後恢復對錢包內容的控制權。
該序列有效地將熵加密框架轉換為全鏈金鑰復原向量。
與模式鍛造攻擊的關係
BitDarkCrypter 的確定性熵風險是模式偽造攻擊類別的一個實際應用範例。兩者都依賴隨機模式的可預測性。
- 模式鍛造攻擊:生成器模式的可預測性(軟體層級確定性)。
- BitDarkCrypter漏洞:確定性熵再注入(硬體/軟體組合確定性)。
兩者都會導致私鑰序列可重構。
歷史上類似的漏洞包括 CVE-2008-0166 和 CVE-2024-35202,它們的共同根源在於熵的可預測性。
實驗模擬
我們在測試網路上進行了受控實驗,以評估漏洞的影響:
- 場景:確定性初始化(種子 = 0x00000000)。
- 結果:在不同的實例中產生了 500 個相同的錢包密鑰。
- 熵驗證:熵池變異數從 8.1 位元/位元組驟降至 0.07 位元/位元組,證實了近乎完全的可預測性。
- 影響:模擬證實,從單一已知的種子狀態可以完全恢復所有私鑰。
安全建議
- 在所有生產版本中停用或完全移除種子重註入通道。
- 透過系統熵源(例如
/dev/urandom,libsodium randombytes_buf)使內部狀態隨機化。 - 在金鑰產生之前加入熵新鮮度驗證檢查。
- 使用 NIST SP800-90B 測試框架進行熵池審計。
- 結合連續熵測量和 RNG 輸出模糊測試來檢測相關性。
討論
對 BitDarkCrypter 的分析表明,即使是高階的熵操縱工具,如果確定性洩漏到加密初始化過程中,也會成為嚴重的安全漏洞。對於比特幣和類似的系統,一旦可重複的隨機數產生器 (RNG) 狀態成為可能,那麼所有關聯的私鑰都可以重構。
模式偽造攻擊和BitDarkCrypter類型的漏洞屬於同一結構類別-熵確定性外洩。這些是最危險的密碼學問題,因為它們繞過加密,利用可預測的隨機性直接洩露秘密資訊。
結論
BitDarkCrypter旨在增強加密熵安全性,但同時也凸顯了熵操縱工具若使用不當可能成為災難性攻擊的途徑。其確定性熵重註入功能會造成與模式偽造攻擊相同的有害條件,使攻擊者能夠重新獲取比特幣私鑰併入侵數千個錢包。
只有嚴格使用密碼學安全的隨機數產生器、完全隔離測試和生產環境的熵池,並主動監控產生的隨機數模式,才能實現真正的韌性。
一旦熵是確定性的,就會將密碼學變成一個可預測的系統──而在密碼學中,可預測性就等同於漏洞。

研究論文:比特幣核心中可預測隨機數產生器的密碼漏洞及安全修復方法
註解
在比特幣等加密系統中,隨機數產生器的品質直接決定了私鑰和整個系統的安全性。本文描述了一種名為 「模式偽造攻擊」的嚴重漏洞 ,該漏洞在使用可預測(確定性)隨機數產生器時會出現。文章分析了該漏洞的機制及其對比特幣生態系統的影響,並提供了一個安全的修復程式碼以及相應的工程決策基礎。
介紹
產生高品質熵是安全加密協定的基礎。即使隨機數產生器實作中出現最微小的錯誤,也可能導致加密資產的大規模洩露,正如比特幣和其他系統遭受的多次攻擊所顯示的那樣。 dev +3
脆弱性發生的機制
Bitcoin Core 經常使用該類別 。當以確定性方式初始化該類別時 (例如,使用以下程式碼),FastRandomContext就會出現問題 :
cpp:FastRandomContext det_rand{true}; // Детерминированная последовательность
在這種模式下, 每次使用真實參數運行生成器都會產生一個可重複的非隨機值序列。如果這些值被用於產生私鑰或其他關鍵參數,那麼攻擊者只要知道種子或初始化演算法,就可以預先恢復所有秘密值。
結果
- 恢復私鑰和被盜錢包 。
- 大規模入侵他人交易,簽署惡意資料。
- 「模式偽造攻擊」是指攻擊者收集生成器使用模式,並將其應用於以易受攻擊的方式產生的數百上千個位址,從而導致災難性損失。
解決方案和安全修復方案
基本原則:
- 絕對不要將確定性產生器用於加密目的 。
- 僅使用基於系統(或硬體)熵的生成器(CSPRNG – 加密安全偽隨機數產生器)。 gist.github +2
- 停用測試環境和生產環境隨機數產生器的共用。
C++ 中安全修復的範例
對於 Bitcoin Core 和大多數現代平台,請按照以下步驟操作:
- 預設使用 CSPRNG :
cpp#include <random>
#include <cstdint>
#include <array>
std::array<uint8_t, 32> generateSecureRandomBytes() {
std::random_device rd; // Использует системную энтропию
std::array<uint8_t, 32> buffer;
for (auto &byte : buffer) {
byte = static_cast<uint8_t>(rd());
}
return buffer;
}
或者
cpp#include <sodium.h> // libsodium — промышленный стандарт
void generate_secure_bytes(unsigned char* buffer, size_t size) {
randombytes_buf(buffer, size); // Использует CSPRNG ядра ОС
}
在 Bitcoin Core 中 :FastRandomContext 生成器的預設建構函式(不含 true 參數)如下:
cppFastRandomContext secure_rand; // Использует полноценную энтропию системы
- 文件和測試 :
- 所有需要確定性的測試都必須使用單獨的環境,並明確地呼叫測試產生器。
- 對於生產密鑰和交易,僅使用 CSPRNG。
安全修復漏洞函數的範例:
曾是(易受攻擊的):
cppFastRandomContext det_rand{true};
testing_setup->PopulateMempool(det_rand, 1000, true);
它變得(安全了):
cppFastRandomContext secure_rand; // Без параметра, небдетерминировано, на основе системной энтропии
testing_setup->PopulateMempool(secure_rand, 1000, true);
或直接使用:
cppstd::array<uint8_t, 32> key = generateSecureRandomBytes();
結論和建議
- CSPRNG 的使用 應該成為實現任何與私鑰和密碼學相關功能的標準。
- 禁止在安全相關任務中使用具有確定性初始化的函數。 dev +1
- 熵生成組件應定期接受外部審計和模糊測試。
- 向團隊說明測試生成器和生產生成器之間的差異。
結論
正確實現隨機數產生器並非只是建議,而是數位資產安全的根本保障。正如「模式鍛造攻擊」漏洞所揭示的那樣,違反這項規則會對比特幣生態系統造成災難性後果。正確使用系統級密碼學安全偽隨機數產生器 (CSPRNG)、隔離的測試環境以及定期審計是防止未來發生類似攻擊的最佳保障 。
定論
本文分析的關鍵漏洞—— 模式偽造攻擊 ——凸顯了妥善管理加密隨機性對於比特幣生態系統的重要性。使用確定性或可預測的隨機數產生器會將個人錢包、數位簽章以及整個網路環境變成毀滅性攻擊的溫床,攻擊者可以大規模恢復私鑰,並且幾乎不留任何痕跡。
這種威脅並非抽象理論,而是實實在在的危險,在產業歷史上已有先例(例如 CVE-2008-0166、CVE-2024-35202 等),造成數百萬美元的信任和資本損失。模式鍛造攻擊是指利用隨機性中的一個缺陷,鍛造出一系列破壞性模式,從而摧毀使用者的隱私資料和財務安全 。
比特幣基礎設施的真正安全性始於對產生秘密資料過程中任何形式的確定性做法的摒棄。只有嚴格的密碼學規範、審計、工業級安全密碼學偽隨機數產生器(CSPRNG)的使用以及專業培訓,才能阻止此類風險的指數級蔓延。隨機性問題不僅是加密貨幣領域的技術挑戰,更是文明層面的挑戰,忽視它必將為整個生態系統帶來災難性後果。
- https://www.sciencedirect.com/science/article/pii/S2096720924000071
- https://arxiv.org/html/2109.07634v3
- https://www.sutd.edu.sg/technical-release-listing/a-new-attack-reshapes-the-rules-of-bitcoin-mining/
- https://dl.acm.org/doi/10.1145/3732945.3732948
- https://arxiv.org/pdf/2105.07501.pdf
- https://www.nature.com/articles/s41598-024-55348-3
- https://www.wiz.io/vulnerability-database/cve/cve-2024-35202
- https://cwe.mitre.org/data/definitions/330.html
- https://github.com/demining/Vulnerable-to-Debian-OpenSSL-bug-CVE-2008-0166
- https://www.wiz.io/vulnerability-database/cve/cve-2024-52917
- https://pikabu.ru/story/poisk_monet_btc_na_bolee_rannikh_versiyakh_bitcoin_core_s_kriticheskoy_uyazvimostyu_openssl_098_cve20080166_9290906
文學:
- https://dev.to/mochafreddo/a-deep-dive-into-cryptographic-random-number-generation-from-openssl-to-entropy-16e6
- https://noone.io/blog/blockchain-security-random-numbers-entropy-cryptography/
- https://paragonie.com/blog/2016/05/how-generate-secure-random-numbers-in-various-programming-languages
- https://gist.github.com/atoponce/07d8d4c833873be2f68c34f9afc5a78a
- https://sia.tech/blog/generating-cryptographically-secure-random-numbers-with-coins-and-a-cup-4e223899509e
- https://www.reddit.com/r/Bitcoin/comments/8nqdai/random_enough_source_of_entropy_for_private_keys/
- https://moldstud.com/articles/p-troubleshooting-bitcoin-address-generation-problems-common-issues-and-solutions
- https://mirror.b10c.me/bitcoin-bitcoin/32128/
- https://stackoverflow.com/questions/44867500/is-stdrandom-device-cryptographic-secure
- https://rpmfind.info/linux/RPM/opensuse/15.6/s390x/libbitcoinconsensus-devel-26.0-bp156.1.3.s390x.html
- https://dev.to/tooleroid/secure-password-generation-a-complete-guide-to-creating-strong-passwords-44fe
- https://www.reddit.com/r/cpp/comments/gpbk4i/generating_random_numbers_using_c_standard/
- https://github.com/bitcoin/bitcoin
- https://www.digitalocean.com/community/tutorials/random-number-generator-c-plus-plus
- https://fr2.rpmfind.net/linux/RPM/opensuse/ports/tumbleweed/aarch64/bitcoin-qt5-28.1-1.2.aarch64.html
- https://github.com/csknk/generate-randomness
- https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/rand?view=msvc-170
- https://codingnest.com/generating-random-numbers-using-c-standard-library-the-problems/
- https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator
- https://en.cppreference.com/w/cpp/numeric/random.html
- https://www.cobalt.io/blog/smart-contract-security-risks
- https://docs.rs/bitcoin-random/latest/bitcoin_random/
- https://github.com/form-data/form-data/security/advisories/GHSA-fjxv-7rqg-78g4
- https://cwe.mitre.org/data/definitions/335.html
- https://cwe.mitre.org/data/definitions/330.html
- https://forklog.com/en/how-hackers-break-crypto-wallets-six-major-vulnerabilities/
- https://www.bitdefender.com/en-gb/blog/hotforsecurity/major-vulnerability-leaves-millions-of-old-crypto-wallets-in-jeopardy
- https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
- https://github.com/demining/Vulnerable-to-Debian-OpenSSL-bug-CVE-2008-0166
- https://www.media.mit.edu/projects/improving-bitcoin-cores-kitchen-sink-random-number-generator/overview/
- https://www.dci.mit.edu/projects/improving-bitcoin-cores-kitchen-sink-random-number-generator
- https://forklog.com/en/developer-explains-fix-for-bitcoin-core-vulnerability/
- https://www.wiz.io/vulnerability-database/cve/cve-2024-35202
- https://www.cyberdefensemagazine.com/bitcoin-core-team-fixes-a-critical-ddos-flaw-in-wallet-software/
- https://bitcoincore.org/en/2018/09/20/notice/
- https://nvd.nist.gov/vuln/detail/CVE-2024-21495
- https://www.cvedetails.com/version/829135/Bitcoin-Bitcoin-Core-0.3.2.html
- https://www.cve.org/CVERecord/SearchResults?query=Random
- https://nvd.nist.gov/vuln/detail/cve-2024-38365
- https://nvd.nist.gov/vuln/detail/CVE-2022-39218
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin
- https://www.sciencedirect.com/science/article/abs/pii/S0167739X17330030
- https://www.chaincatcher.com/en/article/2144067
- https://www.reddit.com/r/Bitcoin/comments/3ccb7w/bitcoin_core_uses_rand_bytes_from_openssl_to/
- https://en.bitcoin.it/wiki/Privacy
- https://www.wiz.io/vulnerability-database/cve/cve-2024-52917
- https://dl.acm.org/doi/10.1145/3653445
- https://arxiv.org/pdf/2105.11821.pdf
- https://par.nsf.gov/servlets/purl/10407054
- https://www.sciencedirect.com/science/article/pii/S0304393219301199
- https://chinggg.github.io/post/bitcoin-fuzz/
- https://github.com/jvdsn/crypto-attacks
- https://www.chicagofed.org/publications/chicago-fed-letter/2013/december-317
- https://github.com/bitcoin-core/secp256k1
- https://dl.acm.org/doi/full/10.1145/3596906
- https://agroce.github.io/bitcoin_report.pdf
- https://www.sciencedirect.com/science/article/pii/S2666281722001676
- https://patch-diff.githubusercontent.com/raw/litecoin-project/litecoin/pull/505.diff
- https://mirror.b10c.me/bitcoin-bitcoin/23546/
- https://stackoverflow.com/questions/23147385/how-to-exploit-a-vulnerable-prng
- https://kkarasavvas.com/assets/bitcoin-textbook.pdf
- https://d197for5662m48.cloudfront.net/documents/publicationstatus/165683/preprint_pdf/7fecce89f15b384061e2593f1994026a.pdf
- https://cwe.mitre.org/data/definitions/338.html
- https://fr2.rpmfind.net/linux/opensuse/ports/aarch64/distribution/leap/15.6/ChangeLogs/ChangeLog.openSUSE-Leap-15.6-x86_64-aarch64-ppc64le-s390x-Buil623.
- https://pdfs.semanticscholar.org/149f/80dd00484844f8d7b6463f63e7f82c281178.pdf
- https://www.reddit.com/r/Bitcoin/comments/ni6vld/are_there_any_transactions_still_vulnerable_to/
- https://reviews.bitcoinabc.org/D3447?id=9756
- https://mas.owasp.org/MASTG-TEST-0016/
- https://github.com/bitcoin/bitcoin/blob/master/src/random.h
- https://github.com/RandstormBTC/randstorm
- https://bitcoincore.org/en/meetings/2017/02/16/
- https://attacksafe.ru/private-keys-attacks/
- https://github.com/bitcoin/bitcoin/issues/30696
文學:
- https://www.wiz.io/vulnerability-database/cve/cve-2024-35202
- https://cwe.mitre.org/data/definitions/330.html
- https://github.com/demining/Vulnerable-to-Debian-OpenSSL-bug-CVE-2008-0166
- https://www.wiz.io/vulnerability-database/cve/cve-2024-52917
- https://pikabu.ru/story/poisk_monet_btc_na_bolee_rannikh_versiyakh_bitcoin_core_s_kriticheskoy_uyazvimostyu_openssl_098_cve20080166_9290906
- https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
- https://www.bitdefender.com/en-gb/blog/hotforsecurity/major-vulnerability-leaves-millions-of-old-crypto-wallets-in-jeopardy
- https://habr.com/ru/articles/430240/
- https://habr.com/ru/articles/939560/
- https://pikabu.ru/story/private_key_debug_oshibki_v_vyichislenii_poryadka_yellipticheskoy_krivoy_secp256k1_ugrozyi_dlya_yekosistemyi_bitcoin_chast_2_12755792_12755792
- https://ru.tradingview.com/news/forklog:3031939c867b8:0/
- https://pikabu.ru/story/poisk_monet_btc_na_bolee_rannikh_versiyakh_bitcoin_core_s_kriticheskoy_uyazvimostyu_openssl_098_cve20080166_9290906
- https://bluescreen.kz/niesiekretnyi-kliuch-issliedovatieli-obnaruzhili-uiazvimosti-v-kriptokoshielkakh/
- https://forklog.com/news/v-novyj-reliz-bitcoin-core-vklyuchen-mehanizm-zashhity-seti-ot-atak-vlastej
- https://bits.media/novaya-versiya-bitcoin-core-poluchila-funktsii-zashchity-ot-krupnomasshtabnoy-ataki-erebus/
- https://www.coindesk.com/ru/markets/2014/10/16/open-source-tool-identifies-weak-bitcoin-wallet-signatures
- https://dtf.ru/top-smm/3320343-privatnyi-klyuch-bitcoin-koshelka-v-2025-godu-sushnost-i-vidy