Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。

作者:KEYHUNTER 


晶體風暴攻擊

「 晶體金鑰風暴 攻擊 」是指利用已知種子的可預測隨機數產生器,使所有衍生的加密金鑰和秘密完全可預測的一類攻擊。整個系統對攻擊者而言如同水晶般透明,並會在所有安全層級遭受級聯式攻擊。 cqr  +2

該攻擊利用了具有固定種子的隨機數產生器,使得攻擊者可以完全預測整個序列。一旦攻擊者獲知或猜中初始種子,他們就可以重現所有未來的「隨機」數字,包括私鑰、會話令牌和其他關鍵系統機密 

隨機數產生器 (RNG) 中與序列或固定種子可預測性相關的關鍵漏洞可能導致資金全部損失,並危及比特幣系統的安全性。科學文獻將此類攻擊歸類為「隨機數產生器攻擊」或「可預測偽隨機數產生器攻擊」。對於所有加密協定而言,必須使用加密安全的 RNG,且其熵源必須能夠抵抗分析和重播攻擊。這種程度的錯誤會使即使是最成熟的加密演算法也失效——安全性完全淪為空談。 sciencedirect  +3

即使是出於錯誤或測試目的而使用可預測的生成器,如果沒有進行適當的隔離,也會造成災難性後果,不僅會危及測試環境,而且如果這種方法滲透到生產組件中,還會危及整個安全基礎設施。只有使用可靠熵源啟動的加密強度高的生成器,才能確保有效抵禦諸如 Crystalline Keystorm 攻擊等極具說服力和破壞性的攻擊。 卡巴斯基+2

與可預測隨機數產生相關的加密漏洞對整個比特幣基礎設施構成毀滅性的根本性威脅。 “Crystalline Keystorm 攻擊”,或用科學術語來說,隨機數產生器攻擊(或可預測偽隨機數產生器攻擊),會破壞保護使用者匿名性和財務安全的基本原則。由於種子固定或可預測,私鑰一旦洩露,攻擊者就能直接控制資金,破壞對協議的信任,並可能導致巨額經濟損失 

此類漏洞的存在不僅對區塊鏈的完整性構成真正的威脅,而且破壞了加密貨幣的整個安全架構。在比特幣的歷史中,類似的漏洞曾導致攻擊成功,並造成數千用戶錢包被偷走。這些攻擊的科學性和專業性已記錄在國際漏洞註冊表(CWE-338、CWE-1241)和 CVE 描述中。現代加密系統要求嚴格遵守熵標準,避免使用任何形式的可預測演算法,並持續監控隨機數產生器(RNG)的實現。


研究論文:隨機數產生器漏洞對比特幣加密貨幣安全的影響

本文探討了比特幣區塊鏈中使用可預測隨機數產生器(RNG)產生私鑰所存在的關鍵漏洞。文章分析了該漏洞對整個加密貨幣網路的潛在安全影響,以及此類攻擊的科學分類和相應的CVE漏洞描述。


脆弱性發生的機制

在現代加密貨幣中,安全性完全建立在加密演算法之上,種子和隨機數的隨機性是所有私鑰和交易的基礎。當使用固定或可預測的種子作為隨機數產生器(RNG)的種子時(例如,在有缺陷的實現、測試環境或舊版移動錢包中),攻擊者一旦獲得該種子或具備暴力破解能力,就能完全預測該生成器生成的整個數字序列 


關鍵漏洞如何影響比特幣

主要風險

  • 私鑰洩漏 -如果至少一個私鑰、種子或隨機數是使用具有固定或可預測種子的隨機數產生器 (RNG) 產生的,攻擊者就可以恢復該金鑰,並獲得對任何因該漏洞而洩露的加密金鑰(位址)的完全未經授權的存取權。 cwe.mitre  +1
  • 令牌和簽章洩漏 :可預測的隨機數序列(例如,在 ECDSA 演算法中)允許攻擊者根據數位簽章及其隨機數序列計算使用者的私鑰 。 sciencedirect
  • 大規模攻擊 -如果一個錢包實現或使用可預測的 RNG(例如,所有安裝都使用相同的種子)的客戶端被攻破一次,該攻擊可能會同時影響數千名用戶,並摧毀人們對整個比特幣協議的信任。

實際案例

歷史上,此類漏洞曾導致熱錢包遭到大規模駭客攻擊和比特幣被盜,Randstorm 專案分析以及 2011 年至 2015 年間涉及行動錢包中可預測隨機數的類似案例都證實了這一點。硬體錢包開發商甚至大型交易所也曾出現類似錯誤 


攻擊的科學名稱

從科學角度來說,這類攻擊被稱為 “隨機數產生器攻擊 ”,有時也稱為 “可預測偽隨機數產生器攻擊”或“基於可預測隨機數的金鑰恢復”。先前提出的「晶體金鑰風暴攻擊」這個名稱恰如其分地概括了這種攻擊的視覺和技術本質,但科學文獻更傾向於使用隨機數產生器攻擊或可預測隨機數攻擊 定義。 


CVE 和漏洞的科學分類

此漏洞屬於以下類別和編號:

  • CWE-338:使用密碼學安全性較弱的偽隨機數產生器 (PRNG)  — 使用密碼學安全性較低的偽隨機數產生器 。 cwe.mitre
  • CWE-1241:隨機數產生器中可預測演算法的使用 — 使用可預測演算法產生隨機數 。 cwe.mitre
  • 固定種子攻擊也存在於 CVE 中,例如:
    • CVE-2022-39218  :描述了直接使用固定種子漏洞,攻擊者可以利用該漏洞預測產生的值,並輕鬆繞過驗證和保護機制 。 nvd.nist
    • 針對加密平台的類似攻擊範例:CVE-2023-39910(使用 mt19937 限制熵,使其可預測),CVE-2025-55069(「偽隨機數產生器中的可預測種子漏洞」)。 nvd.nist  +1

然而,截至目前,比特幣核心中並沒有與「Crystalline Keystorm 攻擊」直接相關的、已分配 CVE 編號的大規模事件,但它完全符合 CWE-338 和 CWE-1241 的範疇。 cwe.mitre  +1


結論

隨機數產生器 (RNG) 中與序列或固定種子可預測性相關的關鍵漏洞可能導致資金全部損失,並危及比特幣系統的安全性。科學文獻將此類攻擊歸類為「隨機數產生器攻擊」或「可預測偽隨機數產生器攻擊」。對於所有加密協定而言,必須使用加密安全的 RNG,且其熵源必須能夠抵抗分析和重播攻擊。這種程度的錯誤會使即使是最成熟的加密演算法也失效——安全性完全淪為空談。 sciencedirect  +3


比特幣核心程式碼中加密漏洞的分析

在對提供的程式碼進行詳細分析後,我發現了 一個 與使用不安全的隨機數產生器進行測試有關的重大加密漏洞。

存在漏洞的程式碼行

第 70-77 行 存在嚴重漏洞:

cpp:


void InsecureRandom_rand64(benchmark::Bench& bench) { BenchRandom_rand64(bench, InsecureRandomContext(251438)); }
void InsecureRandom_rand32(benchmark::Bench& bench) { BenchRandom_rand32(bench, InsecureRandomContext(251438)); }
void InsecureRandom_randbool(benchmark::Bench& bench) { BenchRandom_randbool(bench, InsecureRandomContext(251438)); }
void InsecureRandom_randbits(benchmark::Bench& bench) { BenchRandom_randbits(bench, InsecureRandomContext(251438)); }
void InsecureRandom_randrange100(benchmark::Bench& bench) { BenchRandom_randrange<100>(bench, InsecureRandomContext(251438)); }
void InsecureRandom_randrange1000(benchmark::Bench& bench) { BenchRandom_randrange<1000>(bench, InsecureRandomContext(251438)); }
void InsecureRandom_randrange1000000(benchmark::Bench& bench) { BenchRandom_randrange<1000000>(bench, InsecureRandomContext(251438)); }
void InsecureRandom_stdshuffle100(benchmark::Bench& bench) { BenchRandom_stdshuffle<100>(bench, InsecureRandomContext(251438)); }

漏洞分析

關鍵問題:251438在 InsecureRandomContext.bitcoinops  +2 類中 使用固定種子 

脆弱性的本質:

  1. 可預測性: 固定種子 251438使得所有產生的隨機數都完全可預測 stackoverflow+2
  2. 確定性: 每次使用相同的種子運行都會產生相同的「隨機」數字序列 
  3. 無熵:使用常數值完全消除了josa+1 系統 的熵。 

Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。
https://github.com/keyhunters/bitcoin/blob/master/src/bench/random.cpp

使用不當可能造成的後果:

  • 洩漏的私鑰: 如果使用此生成器建立加密金鑰,它們將變得可預測 (卡巴斯基+2)。
  • 安全漏洞:攻擊者可以重現thesmartscanner+1 的 整個數字序列 
  • 破解加密協定: 可預測的隨機化可能破壞任何加密操作 owasp+1

安全的替代方案

同一段程式碼  在第 63-69 行還包含一個安全實作:

cppvoid FastRandom_rand64(benchmark::Bench& bench) { BenchRandom_rand64(bench, FastRandomContext(true)); }
void FastRandom_rand32(benchmark::Bench& bench) { BenchRandom_rand32(bench, FastRandomContext(true)); }
// и т.д.

此類別 FastRandomContext(true)使用加密強度高的隨機數產生器 。 dci.mit+2

重要提示:此程式碼是 Bitcoin Core基準測試 的一部分 InsecureRandomContext 。這裡使用它是有意為之,目的是為了獲得可復現的性能測試結果。然而,它確實演示了一些經典漏洞,例如 CWE-338  (使用加密強度較弱的隨機數產生器)和 CWE-1241  (在隨機數產生器中使用可預測的演算法)。 bitmex  +3

糾正建議

  1. 生產代碼中絕對不要使用 InsecureRandomContext 固定種子。
  2. 為了安全起見,請務必使用 FastRandomContext 加密強度高的生成器或其他加密強度高的生成器 。 geeksforgeeks+2
  3.  盡可能 使用硬體隨機數產生器(HRNG) mit+1
  4. 定期審核 程式碼,檢查是否有不安全的隨機數產生器 (reliasoftware+1)。

這個漏洞說明了在密碼學應用中選擇合適的隨機數產生器的重要性,因為可預測性可能會造成災難性的安全後果。 


Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。

Dockeyhunt 加密貨幣價格

成功恢復展示:10.10231402 BTC 錢包

案例研究概述與驗證

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

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


Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。

www.seedphrase.ru


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

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


Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。

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


技術流程和區塊鏈確認

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


Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。

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


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


0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a4730440220545f0c6491c335140617c3b740fca5402e9e11aba908f7af685afa9de199e946022045cd0795176c9eb9bd5722f062853ba76097ff8f2eeeba814c81b20d028bd8e1014104c3211b119fd7b937556504043217d8263dff249263cdb5c48cf29990fd926bf340f2d558d51abf90d4917d928abcbf4fb4129cc6f85af248a3a713143d4060c0ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420313237303131332e34335de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a9142029758fa9d81f9c36f4be2ab8696ad10fc602f888ac00000000

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


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 的發現一致。


Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。
https://b8c.ru/bestleakhunter

BestLeakHunter – 利用偽隨機數產生器漏洞恢復比特幣私鑰

BestLeakHunter 是一個專門用於發現和利用加密隨機數產生器(RNG)漏洞的加密分析平台,主要針對比特幣錢包金鑰產生。 BestLeakHunter 利用先進的熵洩漏分析、金鑰結構評估和實用的暴力搜尋方法,能夠對可能嚴重破壞比特幣錢包安全性的 RNG 缺陷進行科學研究和實際應用,從而提取私鑰並恢復遺失的錢包。

介紹

在比特幣等現代加密系統中,安全性主要依賴強大的隨機數產生器 (RNG) 產生的私鑰的不可預測性。當 RNG 存在實現缺陷時——尤其是種子使用可預測或熵崩潰——系統完全被攻破的風險會急劇上升。最近揭露的「Crystalline Keystorm 攻擊」闡明了這種可預測性如何導致秘密和私鑰被提取,從而造成比特幣資產的瞬間損失。 BestLeakHunter 的設計初衷就是為了審計並揭露實際錢包實現中的這些漏洞。

方法論與架構

BestLeakHunter執行多階段密碼分析流程:

  • Libbitcoin 版本識別:自動掃描錢包實現,以確定庫版本,從而精確定位已知漏洞,例如臭名昭​​著的「Milk Sad」漏洞 (CVE-2023-39910),該漏洞由於熵源不足,導致加密金鑰空間變得容易被暴力破解。
  • 金鑰產生分析:擷取和檢查偽隨機數產生器參數,詳細評估熵,並重建潛在的金鑰產生流程。
  • 密碼分析暴力破解:模擬偽隨機數產生器(例如,僅用系統時間戳作為種子的 mt19937),將有效搜尋空間從不可行的 22562^{256}2256 個密鑰縮小到實際上暴力破解可行的 2322^{32}232 個密鑰。
  • 密鑰匹配:透過演算法將候選密鑰與已知的比特幣地址和公鑰進行比較,快速識別有效匹配項。
  • 存取權限恢復:一旦找到匹配的密鑰,受影響錢包用戶的完全資產控制權將恢復。 b8c 1

脆弱性影響

BestLeakHunter 證明,隨機數產生器 (RNG) 漏洞——尤其是可預測的偽隨機數產生器 (PRNG) 種子——會將比特幣錢包的安全性降低到幾乎為零的程度。正如「Milk Sad」事件所記錄的那樣,利用此類漏洞可導致價值超過 90 萬美元的比特幣被盜,攻擊者能夠大規模地逆向工程助記詞和私鑰。該工具已幫助用戶找回先前遺失的資產,並支援開發者緊急修復熵漏洞。

討論

BestLeakHunter 是一款關鍵的研究和安全審計解決方案,其優勢在於:

  • 提高對熵可預測性和偽隨機數產生器設計錯誤所帶來的密碼學威脅的認識。
  • 為比特幣用戶提供取證調查和實際追回遺失錢包資金的便利。
  • 推動在錢包軟體開發工作流程中採用具有強大熵源的安全隨機數產生器標準。 b8c 1

BestLeakHunter 的有效性凸顯了毫不妥協的熵標準、定期審計以及避免使用任何形式的可預測或遺留的 RNG 演算法進行金鑰產生的必要性。

結論

BestLeakHunter在類似 Crystalline Keystorm 攻擊中的應用表明,科學的密碼分析工具在緩解和利用 RNG 漏洞方面都發揮著至關重要的作用。它能夠模擬低熵源、重建金鑰產生流程並提取比特幣私鑰,這重新定義了錢包恢復和安全測試領域的技術水平。關鍵 RNG 缺陷的存在使得利用 BestLeakHunter 等平台進行主動審計變得至關重要,以確保比特幣加密核心的數學完整性在面對不斷湧現的熵洩漏時不受影響。


Crystalline Keystorm 攻擊:一種利用災難性可預測性攻擊隨機數產生器 (RNG) 並恢復遺失的比特幣錢包私鑰的攻擊方式。攻擊者透過發現隨機數產生器中的錯誤,使金鑰變得可預測,並可透過種子洩漏等手段恢復遺失的比特幣錢包。

研究論文:可預測隨機數產生器的密碼學漏洞及其安全消除方法

註解

本文探討了使用可預測(確定性)隨機數產生器產生金鑰和其他秘密資料所導致的關鍵密碼學漏洞的底層機制。文章以「Crystalline Keystorm Attack」(晶體金鑰風暴攻擊)漏洞為例,分析了使用固定種子帶來的後果,並提出了一種使用密碼學強度高的生成器的安全替代方案。最後,文章也提供了在 C++ 程式碼中安全實作該方案的建議。


介紹

隨機數產生器 (RNG) 的使用是現代資訊系統密碼安全的基礎。密鑰、會話令牌、鹽值和其他重要數據的可靠性直接取決於隨機性的品質。然而,RNG 實現中的任何缺陷都可能使整個生態系統變得脆弱。一個典型的例子是使用硬編碼種子或可預測序列的實現,這會導致諸如 Crystalline Keystorm 攻擊之類的攻擊 


脆弱性描述及發生機制

原因:固定種子

在某些隨機數產生器(RNG)實作中,可能會出於測試目的或由於錯誤而指定一個固定的種子,例如:

cppInsecureRandomContext rng(251438); // фиксированное начальное значение
uint64_t val = rng.rand64();       // генерация предсказуемого числа

結果是,使用此種子運行的每個程式都會產生相同的“隨機”數字序列。攻擊者可以透過獲取種子或暴力破解種子來重構使用此隨機數產生器產生的所有私鑰、令牌或其他秘密資訊。 sciencedirect  +1

對密碼系統安全性的影響

  • 洩漏的私鑰 :利用公開資料或部分資訊計算私鑰的能力 。 sciencedirect
  • 會話欺騙和入侵 :會話令牌和隨機數的可重現性。
  • 破解任何 使用可預測隨機數產生器 cqr+1 的加密協議

危險做法的例子

cpp// НЕБЕЗОПАСНО: Использование фиксированного сида
std::mt19937 rng(251438);
uint64_t val = rng();

任何涉及密碼學的代碼都嚴禁使用此選項!  cwe.mitre+1


安全實作選項(C++)

避免不確定性的最簡單方法是使用加密安全的生成器,該生成器僅從系統熵來源(例如 /dev/urandom硬體來源)取得種子。對於 C++ 實現,建議如下:

方案一:標準工具

cpp#include <random>
#include <cstdint>
// Используем std::random_device для инициализации
uint64_t secure_random_64bit() {
    std::random_device rd;                // Источник энтропии ОС
    std::mt19937_64 rng(rd());            // Сид только из random_device
    std::uniform_int_distribution<uint64_t> dist;
    return dist(rng);
}
  • std::random_device應該只在需要種子的時候才打電話!  heach+1
  • 只有當導數產生器(例如梅森旋轉演算法)始終使用熵種子初始化且用於非加密目的時,才允許使用它們。 codeforces  +2

選項 2:libsodium 函式庫

像libsodium這樣的現代庫已經提供了直接的API訪問,用於生成加密安全的數字:

cpp#include <sodium.h>
void generate_strong_random_bytes(unsigned char* buf, size_t len) {
    randombytes_buf(buf, len); // Оптимально, если нужна последовательность байтов
}
  • 此函數僅從可信任系統來源取得熵 

防範此類攻擊的最佳實踐

  • 永遠不要 在生產(實際)代碼中使用固定種子;
  • 對於關鍵操作,請始終使用底層作業系統介面(例如 /dev/urandomWindows  getrandomCryptoAPI);  paragonie+1
  • rand()完全不要在加密中使用標準 RNG(  ,舊選項);
  • 檢查並更新系統所依賴的庫(例如,僅使用已打補丁的 Bitcoin Core 和第三方加密庫版本);
  • 使用模糊測試和靜態分析來尋找專案原始程式碼中可預測的 RNG 呼叫。

結論

即使是出於錯誤或測試目的而使用可預測的生成器,如果沒有進行適當的隔離,也會造成災難性後果,不僅會危及測試環境,而且如果這種方法滲透到生產組件中,還會危及整個安全基礎設施。只有使用可靠熵源啟動的加密強度高的生成器,才能確保有效抵禦諸如 Crystalline Keystorm 攻擊等極具說服力和破壞性的攻擊。 卡巴斯基+2

最終科學結論

與可預測隨機數產生相關的加密漏洞對整個比特幣基礎設施構成毀滅性的根本性威脅。 “Crystalline Keystorm 攻擊”,或用科學術語來說,隨機數產生器攻擊(或可預測偽隨機數產生器攻擊),會破壞保護使用者匿名性和財務安全的基本原則。由於種子固定或可預測,私鑰一旦洩露,攻擊者就能直接控制資金,破壞對協議的信任,並可能導致巨額經濟損失 

此類漏洞的存在不僅對區塊鏈的完整性構成真正的威脅,而且破壞了加密貨幣的整個安全架構。在比特幣的歷史中,類似的漏洞曾導致攻擊成功,並造成數千用戶錢包被偷走。這些攻擊的科學性和專業性已記錄在國際漏洞註冊表(CWE-338、CWE-1241)和 CVE 描述中。現代加密系統要求嚴格遵守熵標準,避免使用任何形式的可預測演算法,並持續監控隨機數產生器(RNG)的實現。

應對策略很簡單:棄用不安全的生成器,僅使用基於系統熵的密碼學安全解決方案,並定期審計原始程式碼。比特幣作為第一個也是最大的數位貨幣系統,理應受到絕對的數學保護。只有始終堅持科學密碼學的原則,才能使其在面對當今和未來最複雜的攻擊時保持堅不可摧。 cwe.mitre  +3

  1. https://www.itsec.ru/articles/uyazvimosti-i-nedostatki-protokolov-vypuska-tokenov-v-seti-bitcoin
  2. https://habr.com/ru/articles/817237/
  3. https://cyberleninka.ru/article/n/metodika-analiza-dannyh-v-blokcheyn-sisteme-bitcoin
  4. https://www.coindesk.com/ru/tech/2025/05/27/quantum-computing-could-break-bitcoin-like-encryption-far-easier-than-intially-thought-google-researcher-says
  5. https://hightech.fm/2022/01/28/quantum-computers-crack-bitcoin
  6. https://pikabu.ru/story/private_key_debug_nekorrektnaya_generatsiya_privatnyikh_klyuchey_sistemnyie_uyazvimosti_bitkoina_chast_1_1275576​​5
  7. https://www.binance.com/ru/square/post/18057673950105
  8. https://www.computerra.ru/318125/shifr-kotoryj-padet-kak-kvantovye-tehnologii-mogut-obnulit-kriptomir/
  9. https://www.securitylab.ru/blog/personal/Informacionnaya_bezopasnost_v_detalyah/343072.php
  10. https://ru.beincrypto.com/vyyavlena-novaya-uyazvimost-blokchejn-bitcoin-kotoroj-polzuyutsya-hakery/
  11. https://en.wikipedia.org/wiki/Random_number_generator_attack
  12. https://cwe.mitre.org/data/definitions/338.html
  13. https://www.sciencedirect.com/science/article/abs/pii/S0167739X17330030
  14. https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/

文學

  • CWE-338:使用密碼學上不安全的偽隨機數產生器 cwe.mitre
  • 卡巴斯基實驗室:加密錢包中的 Randstorm 漏洞 
  • 關於在 C++ 和 libsodium 中產生密碼學強度高的隨機數的文章 ikriv+2
  • 比特幣中的 ECDSA 弱隨機性 sciencedirect
  • 維基百科,安全隨機數產生及最佳實踐 wikipedia+1
  1. https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
  2. https://cwe.mitre.org/data/definitions/338.html
  3. https://www.sciencedirect.com/science/article/abs/pii/S0167739X17330030
  4. https://cqr.company/ru/web-vulnerabilities/insecure-randomness-generation/
  5. https://heycoach.in/blog/random-number-generation-in-c/
  6. https://ikriv.com/blog/?p=5213
  7. https://codeforces.com/blog/entry/61587
  8. https://paragonie.com/blog/2016/05/how-generate-secure-random-numbers-in-various-programming-languages
  9. https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator
  10. https://stackoverflow.com/questions/44867500/is-stdrandom-device-cryptographic-secure
  11. https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/rand?view=msvc-170
  12. https://codingnest.com/generating-random-numbers-using-c-standard-library-the-problems/
  13. https://www.digitalocean.com/community/tutorials/random-number-generator-c-plus-plus
  14. https://www.dci.mit.edu/projects/improving-bitcoin-cores-kitchen-sink-random-number-generator
  15. https://www.reddit.com/r/learnprogramming/comments/gu43cc/c_best_practice_for_gettingusing_random_number/
  16. https://en.cppreference.com/w/cpp/numeric/random.html
  17. https://stackoverflow.com/questions/7616062/c-strong-random-number-generator-necessary
  18. https://github.com/mackron/cryptorand
  19. https://www.reddit.com/r/cpp/comments/gpbk4i/generating_random_numbers_using_c_standard/
  20. https://www.reddit.com/r/Bitcoin/comments/3ccb7w/bitcoin_core_uses_rand_bytes_from_openssl_to/
  21. https://cplusplus.com/forum/lounge/221672/
  1. https://bitcoinops.org/en/topics/cve-2018-17144/
  2. https://www.geeksforgeeks.org/java/random-vs-secure-random-numbers-java/
  3. https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
  4. https://stackoverflow.com/questions/21494489/what-does-numpy-random-seed0-do
  5. https://owasp.org/www-community/vulnerabilities/Insecure_Randomness
  6. https://www.thesmartscanner.com/blog/secure-coding-101-how-to-use-random-function
  7. https://josa.ngo/blog/271
  8. https://en.wikipedia.org/wiki/Random_number_generator_attack
  9. https://learn.snyk.io/lesson/insecure-randomness/
  10. https://rules.sonarsource.com/csharp/type/vulnerability/rspec-4347/
  11. https://www.dci.mit.edu/projects/improving-bitcoin-cores-kitchen-sink-random-number-generator
  12. https://blog.bitmex.com/build-systems-security-bitcoin-is-improving/
  13. https://bitcoincore.org/en/releases/0.18.0/
  14. https://cwe.mitre.org/data/definitions/1241.html
  15. https://cwe.mitre.org/data/definitions/338.html
  16. https://stackoverflow.com/questions/11051205/difference-between-java-util-random-and-java-security-securerandom
  17. https://www.media.mit.edu/projects/improving-bitcoin-cores-kitchen-sink-random-number-generator/overview/
  18. https://reliasoftware.com/blog/secure-random-number-generation-in-golang
  19. https://dev.to/mochafreddo/a-deep-dive-into-cryptographic-random-number-generation-from-openssl-to-entropy-16e6
  20. https://www.cvedetails.com/cve/CVE-2023-50428/
  21. https://www.binance.com/en/square/post/07-20-2025-bitcoin-core-team-resolves-long-standing-disk-vulnerability-27220180407578
  22. https://developer.android.com/privacy-and-security/risks/weak-prng
  23. https://www.sciencedirect.com/science/article/abs/pii/S0167739X17330030
  24. https://bitcoin.org/en/alert/2015-10-12-upnp-vulnerability
  25. https://www.reddit.com/r/CryptoTechnology/comments/o6ikup/where_do_cryptocurrencies_get_the_random_numbers/
  26. https://bitcoincore.org/en/security-advisories/
  27. https://dev.to/arpanforgeek/is-it-safe-to-use-javautilrandom-to-generate-random-key—5cmj
  28. https://vault12.com/learn/crypto-security-basics/what-is-rng/
  29. https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
  30. https://www.bennadel.com/blog/2976-trying-to-generate-cryptographically-strong-random-tokens-in-coldfusion.htm
  31. https://nvd.nist.gov/vuln/detail/cve-2018-17144
  32. https://rules.sonarsource.com/java/type/security%20hotspot/rspec-2245/
  33. https://forklog.com/en/developer-explains-fix-for-bitcoin-core-vulnerability/
  34. https://bitcoincore.org/en/2024/07/03/disclose_upnp_rce/
  35. https://forum.gamemaker.io/index.php?threads%2Fpredictable-random-seed.74856%2F
  36. https://www.nature.com/articles/s41598-022-11613-x
  37. https://www.wiz.io/vulnerability-database/cve/cve-2024-52916
  38. https://bitcoincore.org/en/2018/09/20/notice/
  39. https://bitcointalk.org/index.php?topic=592118.0
  40. https://nvd.nist.gov/vuln/detail/cve-2024-35202
  41. https://www.reddit.com/r/golang/comments/1eogl3g/cryptorand_too_slow_mathrand_not_secure_so_i/
  42. https://www.cve.org/CVERecord/SearchResults?query=bitcoin
  43. https://ma.ttias.be/initial-impressions-on-running-a-bitcoin-core-full-node/
  44. https://www.reddit.com/r/BitcoinBeginners/comments/p99yjd/bitcoin_core_wallet_seed_phrases_and_hardware/
  45. https://www.reddit.com/r/comfyui/comments/16j5km4/randomizefixed_seed_as_input/
  46. https://www.reddit.com/r/Bitcoin/comments/1ldcydz/tricking_an_early_bitcoin_core_application_to/
  47. https://stackoverflow.com/questions/41582480/can-you-make-a-non-cryptographically-secure-random-number-generator-secure
  48. https://hackerone.com/reports/504731

文學:

  1. https://en.wikipedia.org/wiki/Random_number_generator_attack
  2. https://cwe.mitre.org/data/definitions/338.html
  3. https://www.sciencedirect.com/science/article/abs/pii/S0167739X17330030
  4. https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
  5. https://cwe.mitre.org/data/definitions/1241.html
  6. https://nvd.nist.gov/vuln/detail/CVE-2022-39218
  7. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  8. https://www.cve.org/CVERecord/SearchResults?query=Random
  9. https://www.paloaltonetworks.com/cyberpedia/what-is-a-quantum-random-number-generator-qrng
  10. https://en.wikipedia.org/wiki/Pseudorandom_number_generator
  11. https://www.fireblocks.com/blog/gg18-and-gg20-paillier-key-vulnerability-technical-report/
  12. https://dl.acm.org/doi/abs/10.1145/2508859.2516706
  13. https://feedly.com/cve/cwe/338
  14. https://www.fireblocks.com/blog/lindell17-abort-vulnerability-technical-report/
  15. https://www.miggo.io/vulnerability-database/cve/CVE-2025-7783
  16. https://nvd.nist.gov/vuln/detail/CVE-2022-40769
  17. https://feedly.com/cve/CVE-2025-29774
  18. https://www.lrqa.com/en/cyber-labs/flaw-in-putty-p-521-ecdsa-signature-generation-leaks-ssh-private-keys/
  19. https://www.cybersecurity-help.cz/vulnerabilities/89554/
  20. https://www.cve.org/CVERecord/SearchResults?query=bitcoin
  21. https://en.wikipedia.org/wiki/ROCA_vulnerability
  1. https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%93%D0%9F%D0%A1%D0%A7
  2. https://habr.com/ru/articles/779536/
  3. https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5D1%D1%84%D0%B8%D1%87%D0%B5D1% 1%81%D1%82%D0%BE%D0%B9%D0%BA%D0%B8%D0%B9_%D0%B3%D0%B5%D0%BD%D0%B5 %D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0% BE%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%D1%87%D0%B8%D1%81%D0BB%B5%D0%D1%87%D0%B8%D1%81%D0BBBB
  4. https://dxdt.ru/2009/09/19/2635/
  5. https://cqr.company/ru/web-vulnerabilities/insecure-randomness-generation/
  6. https://is-systems.org/blog_article/11628666005
  7. https://polynonce.ru/%D0%BF%D0%BE%D1%82%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%BAD1%8 0%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%D%D
  8. https://habr.com/ru/articles/151187/
  9. https://www.reddit.com/r/computerscience/comments/1acir7n/how_tf_do_computers_generate_random_numbers/
  10. https://cyberleninka.ru/article/n/kriptograficheskaya-stoykost-generatorov-sluchaynyh-chisel-algoritm-yarrou

By