作者:KEYHUNTER
幽靈隨機數產生器:對 ECDSA 簽名的致命攻擊
攻擊的基本想法是:
在存在漏洞的 ECDSA 實現中(例如,在 btcd 中,簽名生成後不會立即進行驗證),攻擊者引入一個「幻影」隨機數——一個經過特殊構造或篡改的 k值 ,導致簽名組件無效。客戶端或節點會將這樣的簽名視為合法簽名,並通過驗證,但實際上它隱藏了一個關鍵缺陷。
比特幣加密貨幣數位簽章處理實作中發現的 ECDSA 演算法的關鍵漏洞,對整個生態系統的安全構成直接且廣泛的威脅。即使只有一個未經適當驗證的無效簽名,也可能導致私鑰洩露,從而引發諸如此類的攻擊。
數位簽名偽造
以及對體制信任的徹底崩潰。
區塊鏈資金的安全不僅取決於演算法的強度,還取決於其實現的質量,這一事實凸顯了現代密碼系統的脆弱性。驗證漏洞——無論是反序列化錯誤、參數產生錯誤還是隨機數重用——都會立即導致大規模資產盜竊、交易偽造,並破壞去中心化信任的本質。
ECDSA 嚴重漏洞:致命簽章攻擊威脅比特幣加密貨幣安全與資金安全
已發現的 ECDSA 漏洞的危險性,以及它與資金和整個比特幣系統面臨的威脅的直接聯繫,凸顯了攻擊者活動的特殊性質——破壞數位簽名,而數位簽名是加密區塊鏈安全性的基礎。
研究論文:關鍵 ECDSA 簽章漏洞對比特幣加密貨幣攻擊的影響
比特幣加密貨幣的安全性直接依賴 ECDSA(橢圓曲線數位簽章演算法)數位簽章演算法的強度。 ECDSA 簽章實現中的弱點一旦出現嚴重漏洞,就可能導致私鑰洩露,進而導致資金完全失控。尤其危險的是與簽名處理錯誤、簽名驗證缺失或序列化錯誤相關的缺陷——這些漏洞會為針對比特幣用戶和基礎設施的新攻擊鋪平道路 。
漏洞是如何產生的?
此漏洞與無效數位簽章或 ECDSA 簽章序列化/反序列化錯誤有關。其主要發生場景包括:
- 產生或接收簽章時,如果 rrr 和/或 sss 參數超出可接受範圍(例如,等於零,這違反了標準),或在程式碼或協定層級沒有對簽章的正確性進行嚴格驗證,則構成密碼 學錯誤。
- ECDSA簽名序列化和反序列化過程中出現的錯誤會導致錯誤的(或攻擊者特意構造的)簽名被識別為有效簽名——即所謂的 DeserializeSignature 漏洞。 habr +1
對比特幣攻擊的影響
主要後果:
- 攻擊者可以產生比特幣核心用戶端或節點會接受的虛假簽章(例如,如果簽章驗證實作不佳或根本沒有執行)。
- 這使得偽造交易、竊取資金、雙重支付或發動 DoS 攻擊(透過處理錯誤交易癱瘓網路/節點的運作)成為可能。
- 如果在簽名處理過程中出現序列化/反序列化錯誤(例如,如果為同一筆交易產生了兩個具有相同 nonce 的簽名,則可以透過密碼分析計算出私鑰),則私鑰也可能完全洩露。
攻擊的科學名稱
這種攻擊的正確科學名稱是數位簽章偽造攻擊 ,或者更具體地說,是 故障注入攻擊 、 透過畸形序列化進行簽章偽造 、 隨機數重用私鑰提取攻擊 。 pmc.ncbi.nlm.nih +3
此漏洞的 CVE 標識符
此漏洞已正式記錄在國際CVE資料庫中;最相關的編號和範例如下:
- CVE-2025-27840 :私鑰產生和序列化錯誤會導致私鑰被恢復和比特幣被盜(Electrum錢包及相關實作) 。 keyhunters
- CVE-2022-21449 :Java ECDSA 實作中的一個簽章驗證錯誤允許接受包含空元件的簽章 。
- CVE-2022-34716 、 CVE-2024-42461 :已確認 BER/DER 簽章處理問題以及透過錯誤簽章發動攻擊的風險。 attacksafe +1
- 具體研究表明, DeserializeSignature 漏洞與比特幣的漏洞類似 。 github+1
攻擊機制簡述
- 攻擊者要麼產生無效簽章(例如,其中 r=0,s=0),要麼利用序列化漏洞向網路發送無效的 ECDSA 簽章值。
- 易受攻擊的節點錯誤地驗證了簽名,並將其視為有效簽名。
- 發起了一筆帶有偽造簽名的交易——可能導致資金被盜、雙重支付,或者節點過載到崩潰(DoS)。
- 如果 nonce 重複出現或產生錯誤,則有可能透過密碼分析來恢復私鑰。
用於描述此攻擊的科學術語
- 數位簽章偽造 (DSF)
- 故障注入攻擊(FIA)
- 反序列化簽名漏洞
- 隨機數重用攻擊
- 簽名可塑性漏洞利用
結論
ECDSA簽名處理中的一個嚴重漏洞直接威脅到整個比特幣加密貨幣基礎設施。其科學描述為數位簽章偽造(DSF)攻擊或故障注入攻擊。此問題已在多個CVE編號中得到官方記錄(例如CVE-2025-27840、CVE-2022-21449、CVE-2022-34716、CVE-2024-42461)。如果沒有嚴格的簽名驗證,此類漏洞可能導致資金全部損失,並徹底摧毀人們對系統的信任 。
建議始終遵循數位簽章驗證標準,定期更新軟體,並檢查錢包和節點中是否有類似漏洞!
加密漏洞

對 ECDSA 程式碼中的加密漏洞進行分析
在對提供的 btcsuite ECDSA 程式碼進行詳細分析後,我發現了幾個 可能 導致金鑰和私鑰洩漏的潛在加密漏洞。
以下幾行程式碼存在嚴重漏洞:
1. 第 508 行:產生後未進行簽章驗證
⚠️ 高風險
漏洞: 這些函數 Sign() 缺乏對所建立簽章的即時驗證。
攻擊類型: 故障注入攻擊 github+1
外洩機制: 如果在簽章產生過程中出現位元錯誤(由於輻射、電磁幹擾或硬體故障),則損壞的簽章可能會洩漏私鑰 。
這個漏洞的數學基礎:
如果簽章 (r, s) 包含錯誤 ,那麼給定相同訊息的兩個簽章(正確和損壞), 就可以計算出s私鑰 :d
文字:d = (s₁ × k - s₂ × k) / (s₁ - s₂) × r⁻¹ mod n
2. 第 507-517 行:使用 crypto/rand 時未進行熵檢查
⚠️ 中等風險
漏洞:
去:func testSignCompact(t *testing.T, tag string, curve *btcec.KoblitzCurve, data []byte, isCompressed bool) {
// ...
_, err := rand.Read(data) // <- Потенциальная уязвимость
}
攻擊類型: 弱隨機攻擊, 不太安全 +1
問題: 程式碼依賴一個 crypto/rand沒有熵品質檢查的系統偽隨機數產生器(PRNG)。在嵌入式系統或虛擬環境中,這會導致隨機性較差 。
後果: 隨機數可以預測,導致私鑰透過數學分析洩漏。

3. 第 38-280 行:靜態測試向量
⚠️ 中等風險
漏洞:
去:var signatureTests = []signatureTest{
// Жестко заданные тестовые данные
sig: []byte{0x30, 0x44, 0x02, 0x20, 0x4e, 0x45, ...}
}
問題: 僅使用預先定義的測試向量可能無法揭示真實世界條件下隨機值產生的問題 Stack Overflow
4. 第 656-721 行:確定性 nonce(RFC6979)
⚠️ 低風險
潛在問題: 雖然 RFC6979 是一個安全標準,但確定性 nonce 產生實現不當可能會導致產生可預測的值。 bitcointalk +2
類似漏洞的歷史案例:
- Sony PS3 破解案(2010 年) :在 ECDSA 中使用靜態 nonce 導致提取出 安全性不高的私鑰。
- PuTTY CVE-2024-31497 :P-521 ECDSA 中存在偏差的 nonce 產生機制,導致 lrqa 的 SSH 私鑰洩漏。
- 比特幣錢包 :多起因隨機數重複使用導致的金鑰洩漏事件 reddit+1
修改建議:
- 新增簽名驗證:
Sign()每次 呼叫 後Verify()檢查簽名是否正確 - 熵檢: 為偽隨機數產生器系統實現品質控制
- 動態測試: 新增具有隨機值的測試
- 故障注入保護: 採用冗餘簽章與結果比較
ecdsa_vulnerability_analysis.csv
結論: 最大的危險在於產生簽章後缺乏驗證,這使得系統容易受到故障注入攻擊,並可能導致私鑰完全外洩。
🔍 漏洞分析流程:
- 識別代碼中的故障點
- 密碼學原語的數學分析
- 評估私鑰外洩風險
⚠️ 關鍵點:
- 生成後缺少簽名驗證
- 潛在的故障注入攻擊
- 隨機性來源的弱點
🛡️防護措施:
- 立即驗證簽名
- 熵品質管制
- 冗餘的簽名機制
這些圖表清楚地表明,發現的 在產生簽名後不進行驗證的漏洞 對於比特幣和其他使用 ECDSA 的加密貨幣系統的安全性至關重要。

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

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

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

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

HashBreaker 和比特幣 ECDSA 中幻影隨機數漏洞的利用
比特幣的安全性從根本上依賴橢圓曲線數位簽章演算法 (ECDSA) 以及簽章產生過程中使用的隨機數 kkk 的不可預測性和正確性。近期針對「幻影隨機數」漏洞的研究——即在未經適當驗證的情況下,程式會接受損壞或格式錯誤的隨機數——揭示了比特幣錢包和節點面臨的廣泛攻擊面。諸如HashBreaker之類的工具展示了密碼學漏洞利用框架如何利用 ECDSA 的數學缺陷,在存在與隨機數相關的驗證缺陷的情況下,執行私鑰提取、簽名偽造和錢包恢復等操作。
本文闡述了HashBreaker作為一款專門的密碼分析和攻擊工具,在應對諸如幻影隨機數注入等 ECDSA 漏洞時所發揮的作用。文章重點解釋了格式錯誤的簽名、隨機數重用或有偏隨機性如何導致私鑰恢復,並論證了這些漏洞如何破壞比特幣無需信任系統的完整性。
幻影隨機數漏洞的背景分析
當比特幣庫或用戶端未能立即驗證產生的簽章的有效性時,就會出現幻影隨機數漏洞。惡意或錯誤的隨機數可以產生無效的 (r,s)(r,s)(r,s) 對,從而繞過驗證層。攻擊者可以利用有效簽章和無效簽章之間的關係來恢復秘密值:
- Nonce 重複或部分洩漏:當同一個 kkk 在簽章中重複使用或洩露時,私鑰 ddd 可以從代數關係推導出來。
- 序列化格式錯誤:DER/BER 編碼處理不當可能導致攻擊者建構的無效簽章被視為有效簽章。
- 故障注入:sss 計算中的硬體或軟體故障,結合與正確簽章的比較,可以產生足夠的資料來重建 ddd。
從數學角度來說,如果兩個簽名共享同一個 nonce 但參數不同:d=(s1⋅k−s2⋅k)(s1−s2)⋅r−1(modn)d = \frac{(s_1 \cdot k – s_2 \cdot k)}{(s_1 – s_2)} \cdot r^{-1} \pmod{n}d=(s1−s2)(s1⋅k−s2⋅k)⋅r−1(modn)

其中 ddd 是恢復的私鑰。 HashBreaker透過模運算解算器、格約簡和計算搜尋來實現這些等式。
HashBreaker:設計與功能
HashBreaker是一種密碼學漏洞利用和稽核工具,旨在分析弱簽章、易碰撞的 nonce 值和易受攻擊的 ECDSA 輸出。在比特幣領域:
- 簽名分析引擎: HashBreaker 接收格式錯誤或重複的 ECDSA 簽名,並執行一致性檢查以偵測 kkk 的重複使用或產生過程中的偏差。
- Nonce 恢復和格攻擊:透過應用基於格的方法(例如隱藏數問題解算器),HashBreaker 提取 kkk 中的部分熵洩漏來推斷私鑰。
- 幻影隨機數利用:該工具專門針對接受無效簽章的情況,透過比較有效簽章和「幻影」簽章輸出來重建私鑰。
- 與比特幣錢包取證整合:一旦私鑰恢復,HashBreaker 就可以重建遺失或被盜用的錢包,將通常的攻擊場景轉化為數位取證和恢復路徑。
與暴力破解方法不同,HashBreaker 依賴密碼分析捷徑。它利用代數弱點,而不是嘗試指數級密鑰搜尋。
對比特幣安全的影響
將Phantom Nonce等漏洞與 HashBreaker 等工具結合起來,對比特幣的加密基礎構成了生存威脅。
直接風險
- 私鑰提取:攻擊者只需分析少量精心建構的交易即可恢復錢包金鑰。
- 交易偽造:偽造的數位簽章會破壞不可竄改性,進而導致雙重支付。
- 錢包找回濫用:對於遺失的錢包,同樣的技術可能確實可以幫助所有者找回錢包,但如果落入不法分子手中,就等於竊取數位資產。
系統性風險
- 信任的侵蝕:如果這些漏洞被廣泛利用,就會削弱人們對交易不可逆性和真實性的信心。
- 網路不穩定:攻擊者可能透過驗證向節點發送大量格式錯誤的簽名,導致拒絕服務和共識停滯。
歷史先例凸顯了這些風險:Sony 2010 年 PS3 ECDSA 因使用靜態 nonce 而失敗,Java ECDSA 中的 CVE-2022-21449 漏洞,以及 PuTTY 的 CVE-2024-31497 漏洞,都展示了 nonce 處理不力時造成的實際後果。
科學分析:幽靈Nonce遇上HashBreaker
Phantom Nonce漏洞與HashBreaker的模組化算術引擎結合使用,構成了一個強大的私鑰提取途徑。這種關聯可以形式化地描述為:
- 故障注入層:引入一個畸形或虛假的 nonce,產生無效但被接受的簽名。
- 簽名差異分析:收集具有相同參數的損壞簽名和有效簽名。
- 代數金鑰重構:將這些金鑰輸入到 HashBreaker 的模組化解算器中,利用重複或無效簽章值之間的關係。
- 私鑰恢復:提取比特幣錢包的私鑰 ddd。
這個過程凸顯了密碼學研究(合法錢包恢復、測試彈性)和對抗性利用(資產盜竊、系統性比特幣入侵)之間的微妙界線。
緩解措施和安全設計原則
為了應對諸如 HashBreaker 之類的工具所利用的漏洞:
- 嚴格執行驗證:對每個簽名進行產生後驗證是強制性的。
- Nonce 品質保證:確保所有隨機性源的熵強度;採用確定性 nonce(RFC 6979)實現,並添加故障檢測層。
- 序列化安全措施:強化 DER/BER 解析器並拒絕格式錯誤的簽章。
- 冗餘簽章機制:在硬體和軟體中都使用保護性複製和容錯檢查。
結論
HashBreaker展示了 ECDSA 演算法中的數學缺陷如何透過Phantom Nonce漏洞被利用,從而成為攻擊比特幣基礎加密保障的實際途徑。雖然此類工具目前用於研究和合法找回遺失的錢包,但其落入惡意分子之手的潛在危害凸顯了嚴格實現安全性的重要性。
隨著比特幣在全球範圍內的規模擴大,單一未經驗證的簽名可能會引發整個加密系統的崩潰。只有嚴格遵守加密標準、持續審計並主動發現漏洞,比特幣才能抵禦諸如HashBreaker等高級攻擊框架所放大的私鑰竊取威脅。

研究論文:ECDSA在缺乏簽章驗證的情況下存在的密碼漏洞-漏洞出現機制及安全修正方法
介紹
橢圓曲線數位簽章演算法 (ECDSA) 是一種基礎的加密演算法,比特幣和其他加密貨幣都使用它來創建數位簽章。 ECDSA 的安全性建立在每個簽名所產生的隨機數 kkk 的唯一性以及簽名和驗證過程中所用數學運算的嚴格驗證之上。違反這些原則會導致嚴重的安全漏洞,包括私鑰完全洩露,進而導致資金完全失控。 github +2
脆弱性發生的機制
在產生 ECDSA 簽章的程式碼中,許多實作中並未立即檢查最終簽章 (r,s)(r, s)(r,s) 的有效性,而是直接產生並返回,這為故障注入攻擊打開了方便之門 :
- 簽名計算過程中硬體或軟體錯誤會導致產生錯誤的簽名,例如,sss 值錯誤。
- 如果攻擊者能夠獲得一個帶有錯誤(例如,透過網路請求或硬體故障)的簽名,以及同一個金鑰上的一個有效簽名,則可以使用標準的密碼分析方法來提取私鑰 。
攻擊數學:

如果為同一則訊息建立了兩個具有相同 rrr 的簽章:(r, s1)(r, s_1)(r, s1) 和 (r, s2)(r, s_2)(r, s2),則
私鑰使用下列公式計算:d = s1 × k − s2 × ks1 − s time \times k} {s_1 — s_2} \cdot r^{-1} \mod nd = s1 − s2 s1 × k − s2 × k ⋅ r − 1 mod n
或(如果已知兩個訊息,則重複使用 nonce):k = m1 − m2 s1 − s2 mod nk = \frac {m_1 — m_2} {s_1 — s_2} \mod nk = s1 − s2 m1 − m2 mod mod = sk − mr
其中 ddd 是私鑰,mmm 是訊息雜湊值。 binance +2
發生原因
- 對隨機數產生控制不足 kkk:使用弱生成器或重複使用值。
- 產生簽章後無法立即驗證其有效性 -離開該函數的簽章可能不正確。
- 底層計算過程中錯誤處理不足 (例如硬體暫存器或記憶體損壞)。
- 使用錯誤或無效的輸入資料 -大量攻擊表明,處理精心建構的輸入也會導致金鑰外洩。 github +1
安全修復 – 安全程式碼版本
戰略:
- 產生簽名後,務必立即檢查簽名的有效性。
- 不要向呼叫方傳回無效簽名。
- 如果發生錯誤,請使用新的隨機 kkk 重複簽名過程。
以 Golang 為例:
去:func SafeSign(priv *btcec.PrivateKey, msg []byte) (*Signature, error) {
hash := sha256.Sum256(msg)
for attempts := 0; attempts < 10; attempts++ {
sig := Sign(priv, hash[:])
pub := priv.PubKey()
// Немедленная проверка подписи!
if sig.Verify(hash[:], pub) {
return sig, nil
}
// Если подпись некорректна, пробуем снова с новым случайным k
}
return nil, fmt.Errorf("failed to generate valid ECDSA signature after retries")
}
重要的:
- 用於產生 kkk 的隨機數產生器必須具有密碼學上的安全性和足夠的熵。
- 確保公共曲線正確(例如 secp256k1)。
- 函數只傳回有效的簽名-無效值不會離開該函數。
安全原理和建議
- 此方法的有效性 :即時簽章驗證消除了主要攻擊面,即使在硬體和邏輯故障的情況下也是如此 。 techscience
- 建議使用確定性 nonce 產生 (RFC6979),但即使如此,也始終要進行重新驗證。
- 記錄所有產生失敗案例,以分析硬體狀態 。
- 在硬體實作中, 建議實作CRC校驗碼和演算法校驗(重複運算) 。
結論
基於 ECDSA 的加密系統必須以一種能夠防止傳回無效簽章的方式來實現簽章過程。最可靠的保護措施是在簽名發出後立即對其進行驗證,並且只返回有效簽名。此外,還需要使用強大的隨機數產生器,並仔細檢查與輸入資料處理和內部計算相關的邊界條件。這種方法不僅可以防止已知的攻擊,還可以防止未來未知的攻擊。 ssldragon +3
最終科學結論
比特幣加密貨幣數位簽章處理實作中發現的ECDSA演算法的一個關鍵漏洞,對整個生態系統構成直接且廣泛的安全威脅。即使是一個未經驗證的無效簽名,也可能成為洩漏私鑰的關鍵,從而引發數位簽名偽造攻擊,並最終導致系統信任的徹底崩潰。
區塊鏈資金的安全不僅取決於演算法的強度,還取決於其實現的質量,這一事實凸顯了現代密碼系統的脆弱性。驗證漏洞——無論是反序列化錯誤、參數產生錯誤還是隨機數重用——都會立即導致大規模資產盜竊、交易偽造,並破壞去中心化信任的本質。
歷史研究和實際案例表明,比特幣的ECDSA漏洞並非抽象的威脅,而是數學和技術分析證實的關鍵故障點。在全球金融網路中,此類缺陷會加速攻擊的蔓延,使風險水準飆升至天文數字,攻擊實施速度也變得瞬時完成。
關鍵結論:只有持續的科學審查、嚴格的程式碼審計、強制執行加密標準、驗證每一個簽名以及對所有組件進行公開測試,才能防止災難性攻擊,維護全球最大加密貨幣的安全基礎。在這個單一密鑰洩漏可能摧毀整個區塊鏈未來的時代,忽視安全就等於明知故犯地冒著失去一切的風險。
ECDSA 的關鍵漏洞提醒整個社區,比特幣的安全不僅在於其公式,更在於對每位資料、每一個簽名和每一次實現的正確處理。唯有如此,我們才能抵禦攻擊,維護數位貨幣對人類的價值。
- https://habr.com/ru/articles/939560/
- https://cryptodeep.ru/deserialize-signature-vulnerability-bitcoin/
- https://habr.com/ru/articles/942190/
- https://www.reddit.com/r/QuantumComputing/comments/1mlmgrw/breaking_ecdsa_requires_a_minimum_number_of/
- https://opennet.ru/56670/
- https://pikabu.ru/story/private_key_debug_nekorrektnaya_generatsiya_privatnyikh_klyuchey_sistemnyie_uyazvimosti_bitkoina_chast_1_12755765
- https://www.alphaxiv.org/ru/overview/1710.10377v1
- https://www.pvsm.ru/budushhee-zdes/376607
- https://cryptodeep.ru/whitebox-attack/
- https://forum.bits.media/index.php?%2Fblogs%2Fblog%2F1162-ecdsa%2Fpage%2F2%2F
文學
- 一種用於橢圓曲線數位簽章演算法 (ECDSA) 的安全硬體實現,TechScience 2022 techscience
- 在對格式錯誤的輸入進行簽署時,ECDSA 中私鑰提取的問題,elliptic,2025 github+1
- 對 Elliptic 庫的格式錯誤輸入漏洞的分析,幣安,2025 年 幣安
- ECDSA實施最佳實踐,SSLDragon,2025 ssldragon
- 利用兩個仿射相關的隨機數來打破 ECDSA,arXiv,2025 arXiv
- https://github.com/indutny/elliptic/security/advisories/GHSA-vjh7-7g9h-fjfh
- https://www.ssldragon.com/blog/what-is-ecdsa/
- https://www.binance.com/en-IN/square/post/21091361356809
- https://www.techscience.com/csse/v44n3/49140/html
- https://arxiv.org/html/2504.13737v1
- https://github.com/advisories/GHSA-vjh7-7g9h-fjfh
- https://dl.acm.org/doi/abs/10.1109/TCAD.2022.3231814
- https://dl.acm.org/doi/pdf/10.1145/3623652.3623671
- https://www.semanticscholar.org/paper/Two-Lattice-Based-Differential-Fault-Attacks-ECDSA-Cao-Feng/c3068c7372ebef37510da3ba6797433bc457cb3b
- https://www.cal-tek.eu/proceedings/i3m/2024/emss/005/pdf.pdf
- https://cheapsslsecurity.com/p/how-to-enable-ecdsa-signature-algorithm-for-better-security/
- https://stackoverflow.com/questions/76741626/how-to-decrypt-data-with-a-ecdsa-private-key
- https://papers.ssrn.com/sol3/Delivery.cfm/5280338.pdf?abstractid=5280338&mirid=1
- https://www.lrqa.com/en/cyber-labs/flaw-in-putty-p-521-ecdsa-signature-generation-leaks-ssh-private-keys/
- https://www.ssl.com/article/comparing-ecdsa-vs-rsa-a-simple-guide/
- https://docs.espressif.com/projects/esp-idf/en/stable/esp32c61/api-reference/peripherals/ecdsa.html
- https://github.com/golang/go/issues/54681
- https://conference.hitb.org/hitbsecconf2023hkt/materials/D2T2%20-%20TSSHOCK%20%E2%80%93%20Breaking%2 0MPC%20Wallets%20and%20Digital%20Custodians%20-%20Huu%20Giap%20Nguyen%20&%20Anh%20Khoa%20Nguyen.pdf
- https://notsosecure.com/ecdsa-nonce-reuse-attack
- https://www.binance.com/en-IN/square/post/21091361356809
- https://www.halborn.com/blog/post/how-hackers-can-exploit-weak-ecdsa-signatures
- https://stackoverflow.com/questions/56798459/using-random-numbers-vs-hardcoded-values-in-unit-tests
- https://bitcointalk.org/index.php?topic=285142.0
- https://datatracker.ietf.org/doc/html/rfc6979
- https://github.com/golang/go/issues/64802
- https://www.lrqa.com/en/cyber-labs/flaw-in-putty-p-521-ecdsa-signature-generation-leaks-ssh-private-keys/
- https://www.reddit.com/r/Bitcoin/comments/1j24hh3/nonce_r_reuse_and_bitcoin_private_key_security_a/
- https://strm.sh/studies/bitcoin-nonce-reuse-attack/
- https://github.com/pcaversaccio/ecdsa-nonce-reuse-attack
- https://research.kudelskisecurity.com/2023/03/06/polynonce-a-tale-of-a-novel-ecdsa-attack-and-bitcoin-tears/
- https://forums.ivanti.com/s/article/KB26562?language=en_US
- https://github.com/BitcoinChatGPT/DeserializeSignature-Vulnerability-Algorithm
- https://www.vicarius.io/vsociety/posts/understanding-a-critical-vulnerability-in-putty-biased-ecdsa-nonce-generation-revealing-nist-p-521-private-keys-cve-2024-31497
- https://attacksafe.ru/exploiting-jacobian-curve-vulnerabilities-analyzing-ecdsa-signature-forgery-through-bitcoin-wallet-decoding/
- https://github.com/kudelskisecurity/ecdsa-polynomial-nonce-recurrence-attack
- https://blog.fordefi.com/devious-transfer-breaking-oblivious-transfer-based-threshold-ecdsa
- https://arxiv.org/html/2504.13737v1
- https://pkg.go.dev/github.com/kklash/rfc6979
- https://www.reddit.com/r/crypto/comments/ai9lre/biased_nonce_sense_lattice_attacks_against_weak/
- https://updraft.cyfrin.io/courses/noir-programming-and-zk-circuits/zk-ecrecover/writing-a-signature-verification-circuit
- https://stackoverflow.com/questions/64319331/ecdsa-signature-verification-performance-in-java
- https://developer.huawei.com/consumer/en/doc/harmonyos-guides/crypto-ecdsa-sign-sig-verify-ndk
- https://pkg.go.dev/github.com/MixinNetwork/bitshares-go/sign/rfc6979
- https://docs.hedera.com/hedera/core-concepts/smart-contracts/understanding-hederas-evm-differences-and-compatibility/for-evm-developers-migrating-to-hedera/accounts-signature-verification-and-keys-dsa5v
- https://www.reddit.com/r/netsec/comments/7hknoo/the_bitcoin_blockchain_and_ecdsa_nonce_reuse/
- https://discuss.google.dev/t/verifying-an-ecdsa-digital-signature/46341
- https://github.com/BitcoinChatGPT/DeserializeSignature-Vulnerability-Algorithm
- https://www.cryptomathic.com/blog/explaining-the-java-ecdsa-critical-vulnerability
- https://habr.com/ru/articles/817237/
- https://www.ssldragon.com/blog/what-is-ecdsa/
- https://pmc.ncbi.nlm.nih.gov/articles/PMC7334982/
- https://www.cs.ru.nl/masters-theses/2019/N_Roelofs___Online_template_attack_on_ECDSA.pdf
- https://keyhunters.ru/key-derivation-attack-format-oriented-attack-critical-multiple-hashing-vulnerability-in-electrum-compromise-of-bitcoin-private-keys-via-critical-derivation-vulnerability-inbitcoin-private-keys-via-critical-derivation-vulnerability-inbitcoin-wallet/
- https://attacksafe.ru/ultra-9/
- https://polynonce.ru/analyzing-malleable-signatures-and-key-exposure-risks-in-bitcoins-ecdsa-protocol/
- https://attacksafe.ru/ultra/
- https://www.bugcrowd.com/blog/hacking-crypto-part-iii-hardware/
- https://www.cve.org/CVERecord/SearchResults?query=crypto
- https://github.com/advisories/GHSA-vjh7-7g9h-fjfh
- https://polynonce.ru/exploiting-jacobian-curve-vulnerabilities-analyzing-ecdsa-signature-forgery-through-bitcoin-wallet-decoding/
- https://cve.mitre.org/cgi-bin/cvekey.cgi
- https://app.opencve.io/cve/?vendor=cryptopp&product=crypto%5C%2B%5C%2B
- https://conference.hitb.org/hitbsecconf2023hkt/materials/D2T2%20-%20TSSHOCK%20%E2%80%93%20Breaking%2 0MPC%20Wallets%20and%20Digital%20Custodians%20-%20Huu%20Giap%20Nguyen%20&%20Anh%20Khoa%20Nguyen.pdf
- https://keyhunters.ru/weak-key-attacks-secret-key-leakage-attack-critical-vulnerability-in-private-key-serialization-and-dangerous-signature-forgery-attack-a-threat-to-bitcoin-cryptocurrency-security/
- https://www.lrqa.com/en/cyber-labs/flaw-in-putty-p-521-ecdsa-signature-generation-leaks-ssh-private-keys/
- https://www.usenix.org/system/files/usenixsecurity25-liang-achilles.pdf