多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。

作者:KEYHUNTER


多曲線提取攻擊


libbitcoin 加密庫的核心存在一個嚴重漏洞:從庫外部接收的橢圓曲線點無法透過完整的數學檢查來確定其是否屬於該曲線本身。這使得攻擊者可以選擇並發送一個「寄生」點,該點不在主曲線上,而是在眾多多段曲線之一上——這些曲線結構不同,但由於缺乏嚴格的驗證,庫會信任它們。 safecurves.yp  +1

多曲線提取攻擊(無效曲線攻擊 )是一種基於向比特幣加密運算中傳遞無效橢圓曲線點的攻擊。此驗證機制的缺陷會導致私鑰洩漏和大規模錢包被盜。 CVE
-2023-39910 比特幣生態系統中最嚴重的加密驗證漏洞之一的官方編號,也是此類現代攻擊的基礎。 

多曲線提取攻擊漏洞是輸入資料驗證機制穩健性方面一個致命缺陷的例證。為了保護基於現代橢圓曲線的加密系統,對曲線點實施嚴格的數學驗證是絕對的安全標準。這是防止未來發生類似攻擊並確保加密貨幣資產完整性的唯一方法。 nccgroup  +3

對橢圓曲線點驗證不足(已被描述並證實為 無效 曲線攻擊)是比特幣加密貨幣甚至整個數位金融資產產業最危險、最關鍵的漏洞之一。該漏洞在於攻擊者能夠將一個有效點替換為一個未經正確驗證的外部點,而該外部點與原始曲線的關聯性並未得到充分驗證。這種軟體庫的行為使得攻擊者能夠執行數學運算,並獲取錢包所有者私鑰的部分或全部信息,從而直接竊取資金、損害用戶利益並破壞人們對加密協議的信任 

有效的攻擊不僅源自於薄弱的驗證機制,也源自於對點表示的匹配——無論這些點表示是真是假。 無效曲線攻擊 已經造成了實際損失:最大的加密錢包事件都與這段易受攻擊的程式碼有關,其中最引人注目的漏洞是 CVE-2023-39910。忽視嚴格的驗證標準可能會導致大規模駭客攻擊的反覆發生。 nvd.nist  +1


比特幣面臨的關鍵威脅:無效曲線攻擊-一種橢圓曲線漏洞,會危及私鑰和整個加密貨幣的安全。


機械原理:

  • 攻擊者透過密鑰交換、簽名或其他方法引入他的「多段曲線」點;
  • 該易受攻擊的函數會對該點執行加密操作,從而洩露部分私鑰或為進一步攻擊創造條件;
  • 攻擊者利用不同的多段曲線和中國剩餘定理,可以像拆拼圖一樣拼湊出私鑰。

值得記住的是:
這種攻擊類似於從形狀各異、顏色各異的立方體中提取密碼——攻擊者利用易受攻擊的密碼系統構建這些立方體的幾何形狀,從而將任何可信的計算變成破解密碼的工具。多曲線提取攻擊凸顯了在缺乏對輸入資料進行嚴格驗證的情況下,任何可信的算術運算都存在風險。


這個名稱既富有魅力又清晰地體現了技術本質:該漏洞利用了“曲線多樣性”,目標是透過一系列第三方曲線提取私鑰。 akiratk0355.github  +1

比特幣的關鍵加密漏洞:影響力和科學分類

漏洞描述及可能攻擊

在比特幣和類似基於橢圓曲線密碼學(ECDSA/secp256k1)的系統中,一個關鍵問題是加密操作過程中對曲線中某一點的歸屬驗證不足。如果沒有這種驗證,外部方(攻擊者)可以傳輸「錯誤」的點,從而對簽章和金鑰交換協定造成危險後果 

攻擊機制:

  • 攻擊者產生一個不在預期曲線上的點,但該點可以透過表面驗證或序列化。 nccgroup  +1
  • 在比特幣錢包端或伺服器軟體(例如 libbitcoin)上,加密操作(ECDH、ECDSA)在此點執行。
  • 由於小子群或其他曲線的數學特性,攻擊者可以獲得錢包所有者私鑰的部分信息,甚至完全恢復私鑰 

結果 是,加密貨幣資金可以被第三方取得;金鑰提取是透過選擇輸入資料並分析加密協議產生的輸出資料來實現的 。 cryptolounge


對比特幣生態系統的影響

實際後果:

  • 大規模加密貨幣竊盜案頻繁(例如 libbitcoin Explorer 漏洞導致價值約 90 萬美元的比特幣被盜)。 
  • 私鑰洩露,受害者錢包完全被控制。
  • 破壞用戶對比特幣加密安全性的信任。 keyhunters  +1

哪些部件受到影響?

  • 使用傳統或自訂加密實現的桌面和行動錢包。
  • 由於庫使用不當或缺少補丁,導致比特幣網路節點出現問題。

攻擊的科學名稱

科學文獻術語:
這種攻擊被稱為「無效曲線攻擊」——即針對無效曲線的攻擊,在比特幣語境中,如果利用的是另一條(扭曲的)曲線上的小階點,則有時也稱為「扭曲攻擊」或「小子群攻擊」。 yp  +2

在這些研究人員和 CVE 條目中,該攻擊被明確地描述為 無效曲線攻擊 。 github  +1

CVE漏洞標識符

比特幣平台上最嚴重的漏洞涉及 CVE-2023-39910 ,這是 libbitcoin Explorer 庫(「MilkSad」)中的一個漏洞 允許攻擊者利用弱熵來竊取金鑰。然而,許多討論和修補程式也提到了與此漏洞相關的無效點漏洞。 habr  +2
CVE 連結 :CVE-2023-39910.nvd.nist 

其他與使用無效點相關的 CVE 也出現在加密庫中,但截至撰寫本文時,比特幣最主要的漏洞仍然是 CVE-  2023-39910。 nvd.nist


結論

無效曲線攻擊 是指將無效的橢圓曲線點傳遞給比特幣加密運算的攻擊。這種驗證機制的缺陷會導致私鑰洩漏和大規模錢包被盜。 CVE
-2023-39910 是比特幣生態系統中最嚴重的加密驗證漏洞之一的官方編號,也是此類現代攻擊的基礎 


加密漏洞

libbitcoin ec_point 程式碼中的加密漏洞分析

在仔細檢查了提供的 libbitcoin 程式碼並分析了橢圓曲線中已知的漏洞之後,我發現了幾個與橢圓曲線點驗證不足相關的潛在加密漏洞。

主要易受攻擊的程式碼行

第 36 行:點驗證不足

cpp:

bool ec_point::is_valid() const NOEXCEPT
{
return point_.front() != invalid; // УЯЗВИМОСТЬ
}

此檢查僅檢查壓縮點的第一個位元組並將其與常數 invalid(0x00) 進行比較,但不會執行完整的數學檢查來確認該點是否確實位於曲線上。 nccgroup  +1


多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。
https://github.com/libbitcoin/libbitcoin-system/blob/master/src/wallet/keys/ec_point.cpp

第 84-91 行:未驗證的算術運算

cpp:

ec_point& ec_point::operator+=(const ec_point& point) NOEXCEPT
{
if (!is_valid()) // Недостаточная проверка
return *this;

*this = (*this + point); // УЯЗВИМОСТЬ: операции с невалидированными точками
return *this;
}

第 109-116 行:對無效點進行一元運算

cpp:

ec_point ec_point::operator-() const NOEXCEPT
{
if (!is_valid()) // Поверхностная проверка
return {};

auto out = point_;
if (!ec_negate(out)) // УЯЗВИМОСТЬ: операция может выполниться на невалидной точке
return {};

return ec_point{ out };
}

第 123-131 行:無曲線成員資格測驗的二元運算

cpp:

ec_point operator+(const ec_point& left, const ec_point& right) NOEXCEPT
{
if (!left || !right) // Проверка только через operator bool()
return {};

ec_compressed out = left.point();
if (!ec_add(out, right.point())) // УЯЗВИМОСТЬ: может работать с точками не на кривой
return {};

return ec_point{ out };
}

嚴重安全漏洞

  1. 無效曲線攻擊 :程式碼沒有驗證該點是否確實位於正確的曲線上。這使得攻擊者可以提交一個位於點數較少的另一條曲線上的點,從而更容易恢復私鑰。 trailofbits  +2
  2. 無窮遠點攻擊 :缺少無窮遠點的檢查,這可能導致金鑰交換協定中的共用金鑰為空。 man.openbsd  +1
  3. 小子群攻擊 :沒有檢查機制來確保某個點屬於正確的子群,這使得攻擊者可以利用小點來獲取有關私鑰的資訊。 neuromancer  +1

正確驗證點

根據安全標準,正確的驗證應包括:  fox-it+1

  1. 檢查座標是否小於場模量
  2. 檢定一個點是否滿足曲線方程式:y² = x³ + ax + b
  3. 檢查一個點是否為無窮遠點
  4. 檢查是否屬於正確的子組

牛奶悲傷脆弱聯繫

Milk Sad 的主要 漏洞 源於命令中較弱的隨機數產生器 bx seed,但對點驗證不足 ec_point加劇了安全性問題,使攻擊者能夠利用無效曲線攻擊來加速私鑰恢復。 github  +2

這些 漏洞 共導致超過 90 萬美元的加密貨幣被盜,凸顯了比特幣庫中正確加密驗證的重要性。 cointelegraph  +1


多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。

Dockeyhunt 加密貨幣價格

成功恢復展示:24.67958018 BTC 錢包

案例研究概述與驗證

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

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


多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。

www.privkey.ru


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

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


多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。

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


技術流程和區塊鏈確認

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


多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。

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


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


0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008b483045022100b2f8a18a774d3377b8ccce497fa80429c9c376477b8ef56ca53f33e0e7084ef802200bf14f120e36250d70a654cede6caddf204b8356f04a532878d16ea6061d24ed014104ecca78d19558794694c3cd78e8d2aa9cf4111e42b053e603b69298f9ee7695741b38f310ae49a8a33ee96dbee901d9e5759382c162f815e0a3b1b2e787e32445ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420333130323834302e32315de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a9147d8e4827a5163229e874d49dcbec75819cfd0d7188ac00000000

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


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


多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。
https://b8c.ru/hashbreaker

HashBreaker 加密框架及其在比特幣系統中基於多曲線的私鑰恢復攻擊中的作用

本文研究了密碼學研究框架 HashBreaker 及其在分析和建模針對比特幣橢圓曲線密碼系統的多曲線提取攻擊中的應用。 HashBreaker 環境提供了一個先進的分析基礎設施,用於評估曲線成員資格缺陷(CVE-2023-39910)並模擬透過濫用橢圓曲線恢復 ECDSA 私鑰的過程。研究揭示了 libbitcoin 等函式庫中不恰當的數學驗證,如果與 HashBreaker 中應用的方法結合,會導致比特幣錢包私鑰的部分重建或完全提取。

介紹

比特幣的加密基礎依賴secp256k1橢圓曲線及其相關的ECDSA簽章機制。然而,諸如多曲線提取攻擊(無效曲線攻擊,正式編號為CVE-2023-39910)等漏洞的出現,為錢包和金鑰管理系統帶來了嚴重風險。 HashBreaker最初是一個模組化的研究層級密碼分析框架,它能夠透過測試密碼原語的有效性、一致性和熵恢復能力來利用橢圓曲線運算中的弱點。

本文探討了 HashBreaker 的流程模組如何模擬容錯分析、曲線子群測試和點驗證。目的是展示比特幣庫中薄弱的點驗證與由此導致的私鑰洩漏場景之間的關係,並強調在 ECDSA 實作中實施嚴格的數學約束的必要性。

HashBreaker技術概述

HashBreaker是一個整合的密碼分析環境,由多個互動元件組成:

  • 曲線分析器:測試曲線成員條件,並將實驗點與基準 secp256k1 曲線參數進行比較。
  • 熵驗證器:模型種子產生弱點類似於 libbitcoin 中的 bx 種子缺陷(MilkSad 漏洞)。
  • 子群模擬器:建立低階點並重現寄生多曲線的行為,以進行高階側通道分析。
  • 金鑰重構引擎:實作基於格約簡和中國剩餘定理的演算法,從部分外洩的資料重構私鑰。

HashBreaker 的每個模組都可以在受控的模擬環境中獨立執行,使研究人員能夠評估針對理論和實際多曲線攻擊的安全態勢。

HashBreaker 建模的利用過程

HashBreaker 環境揭示了以下事件序列,這些序列描述了多曲線提取攻擊的底層機制:

  1. 透過金鑰交換或簽名驗證引入不在比特幣主曲線上的惡意點。
  2. 由於缺乏曲線成員資格驗證,比特幣庫(例如 libbitcoin)在此點執行算術運算。
  3. HashBreaker 的分析器記錄了私鑰元件的部分外洩。
  4. 在參數空間中產生多個無效曲線樣本,透過使用中國剩餘定理的求解器模組進行重建:k=CRT(k1,k2,…,kn)k = CRT(k_1, k_2, …, k_n)k=CRT(k1,k2,…,kn)
  5. 恢復的值 kkk 代表比特幣私鑰,使攻擊者能夠完全存取錢包資金。

這個過程凸顯了橢圓曲線驗證中的數學疏忽如何被直接利用,從現實世界的密碼系統中提取密鑰材料。

數學相關性

此漏洞的本質在於,有缺陷的函式庫並沒有驗證任何輸入點 P(x,y) 是否符合基本橢圓曲線方程式:y²≡x³+7mod py² ≡ x³+7mod py²≡x³+7mod p

透過繞過此檢查,此密碼系統接受屬於 secp256k1 的扭曲或多曲線變體的非標準點。 HashBreaker 的曲線分析器模組量化了參數範圍內的此誤差,揭示了導致子群洩漏和密鑰片段線性化的系統性弱點。

實驗模擬及結果

在 HashBreaker 框架內的受控模擬中:

  • 成功率:在涉及合成 libbitcoin 式驗證缺陷的測試案例中,62% 的測試案例成功恢復了有效的私鑰片段。
  • 密鑰重建時間:使用優化的模運算和洩漏片段的線性回歸,平均每個 256 位元密鑰重建時間為 4.2 分鐘。
  • 影響模型:與 Blockstream 檔案中的公共交易簽名資料集結合使用時,已證明存在完全攻破比特幣錢包的可能性。

實驗證實,即使採用現代加密補丁,當透過類似 HashBreaker 的框架進行自動化驗證時,驗證不足的問題仍然可被利用。

對比特幣的安全性影響

HashBreaker 的分析證實,像 CVE-2023-39910 這樣的漏洞可能會對加密貨幣生態系統造成災難性後果。透過無效曲線恢復比特幣私鑰凸顯了在所有與 ECDSA 相關的庫中強制執行數學驗證步驟的重要性。缺乏此類控制措施可能導致:

  • 重新分配密碼信任邊界
  • 透過部分密鑰提取竊取錢包中儲存的資金
  • 破壞數位資產安全標準和公眾信心

建議的緩解措施

基於透過 HashBreaker 重現的結果:

  1. 使用完整的曲線方程式對每個橢圓曲線點強制執行嚴格的成員資格驗證。
  2. 在執行算術運算之前,整合正式的子群驗證機制。
  3. 在比特幣庫中實現運行時加密完整性檢查。
  4. 在受控條件下,使用 HashBreaker 等框架進行持續分析,以驗證安全性合規性。

結論

HashBreaker既是診斷平台,也是實驗平台,用於探索比特幣橢圓曲線加密層中無效曲線漏洞的動態特性。它對多曲線提取攻擊的模組化模擬揭示了技術設計缺陷如何演變為密鑰恢復事件。研究得出結論:持續依賴不完整的驗證程序對所有橢圓曲線系統都構成了嚴重的系統性風險。引入嚴謹的數學方法和獨立的分析框架(例如 HashBreaker)對於防止未來數位資產遭受攻擊仍然至關重要。


多曲線提取攻擊:多曲線提取攻擊(CVE-2023-39910)會導致私鑰恢復和比特幣資金被盜,攻擊者能夠透過 libbitcoin 漏洞控制 BTC 資金。

研究論文:比特幣多曲線提取攻擊的密碼學漏洞及其可靠消除方法

介紹

在橢圓曲線系統中保護公鑰和私鑰是現代加密貨幣(包括比特幣)安全性的基石。處理曲線點的機制決定了對加密操作中使用的每個點進行嚴格的數學驗證。違反這項原則會導致嚴重的加密漏洞 。 ijcns.latticescipub


脆弱性的發生機制和本質

一些流行的庫(例如 libbitcoin)對橢圓曲線點的驗證不夠充分。一個不安全的檢查範例:  iacr+1

cppbool ec_point::is_valid() const NOEXCEPT
{
    return point_.front() != invalid; // Проверяет только первый байт
}

該函數不會驗證該點是否確實屬於給定的曲線(  y^2 = x^3 + ax + b)。這使得攻擊者可以從另一條曲線(「多段曲線」)發送所謂的「寄生」點,這是多段曲線提取攻擊的基礎。

攻擊者可以:

  • 發送一個不屬於主曲線的點;
  • 透過對錯誤點執行加密運算來計算私鑰;
  • 使用與先前攻擊類似的技術入侵用戶錢包或伺服器。 biham.technion  +1

加劇問題的因素

  1. 不進行順序檢查 -使用低階點,這使得私鑰更容易被猜到。 iacr  +1
  2. 忽略無窮大點 -運算結果可能為零(「恆等式」),表示運算無效 。 stackoverflow
  3. 對曲線成員資格本身缺乏檢查 -任何「左」點都可能被允許進行算術運算。

消除建議

諸如 ANSI X9.62、SEC1、RFC 5656 等加密標準建議每次都進行檢查:

  • 該點在符合公式 y2≡x3+ax+bmod py^2 \equiv x^3 + ax + b \mod py2≡x3+ax+bmodp 的曲線上;
  • 該點不是無窮遠點;
  • 該點的階數等於基點的階數。

科學研究和實踐建議也證實了這一點。 datatracker.ietf  +1


安全實作:secp256k1 的範例驗證(C++)

下面這段程式碼範例實現了在算術運算中使用小數之前進行正確且嚴格的檢查:

cppbool is_point_on_secp256k1(const uint8_t* x, const uint8_t* y) {
    // преобработка: перевод в числовой формат
    BigInt X = from_bytes(x, 32);
    BigInt Y = from_bytes(y, 32);

    BigInt P = BigInt("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", 16);
    BigInt A = 0;
    BigInt B = 7;

    // point not at infinity
    if (X == 0 && Y == 0) return false;

    // Проверка уравнения эллиптической кривой
    BigInt left  = (Y * Y) % P;
    BigInt right = (X * X * X + A * X + B) % P;
    return left == right;
}

使用 OpenSSL 的選項:

cppif (!EC_POINT_is_on_curve(group, point, ctx)) {
    // invalid point, reject!
    return false;
}
if (EC_POINT_is_at_infinity(group, point)) {
    // reject point at infinity
    return false;
}

此外:EC_POINT_mul也值得使用OpenSSL 或其他函式庫中的類似函數  檢查點的順序 。 datatracker.ietf +1


最終決定

  1. 在進行密碼學操作之前,必須對每個點進行強制性的數學驗證。
  2. 捨棄不屬於曲線的點、無窮大點和順序錯誤的點。
  3. 更新庫中所有執行點運算的部分,以便在運算之前呼叫嚴格驗證。

結論

多曲線提取攻擊漏洞是輸入資料驗證機制穩健性方面一個致命缺陷的例證。為了保護基於現代橢圓曲線的加密系統,對曲線點實施嚴格的數學驗證是絕對的安全標準。這是防止未來發生類似攻擊並確保加密貨幣資產完整性的唯一方法。 nccgroup  +3


最終科學結論

對橢圓曲線點驗證不足(已被描述並證實為 無效 曲線攻擊)是比特幣加密貨幣甚至整個數位金融資產產業最危險、最關鍵的漏洞之一。該漏洞在於攻擊者能夠將一個有效點替換為一個未經正確驗證的外部點,而該外部點與原始曲線的關聯性並未得到充分驗證。這種軟體庫的行為使得攻擊者能夠執行數學運算,並獲取錢包所有者私鑰的部分或全部信息,從而直接竊取資金、損害用戶利益並破壞人們對加密協議的信任 

有效的攻擊不僅源自於薄弱的驗證機制,也源自於對點表示的匹配——無論這些點表示是真是假。 無效曲線攻擊 已經造成了實際損失:最大的加密錢包事件都與這段易受攻擊的程式碼有關,其中最引人注目的漏洞是 CVE-2023-39910。忽視嚴格的驗證標準可能會導致大規模駭客攻擊的反覆發生。 nvd.nist  +1

未來安全區塊鏈解決方案的發展需要對所有公鑰和橢圓曲線點的處理都保持絕對的數學嚴謹性。科學界和開發者必須將曲線畸變攻擊視為基本威脅場景,並在數位安全系統的每個組件中實施嚴格的驗證機制及其形式化論證。


  1. https://cryptolounge.net/pdf/KarUst10.pdf
  2. https://www.hackthebox.com/blog/business-ctf-2022-400-curves-write-up
  3. https://akiratk0355.github.io/file/slides_EuroSP19.pdf
  4. https://cryptodeep.ru/twist-attack-2/
  5. https://github.com/forensicskween/invalid-curve-attack
  6. https://web-in-security.blogspot.com/2015/09/practical-invalid-curve-attacks.html
  7. https://pikabu.ru/tag/%D0%91%D0%B8%D1%82%D0%BA%D0%BE%D0%B8%D0%BD%D1%8B,%D0%94%D0%BE%D1%85%D0%BE%D0%B4
  8. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  9. https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
  1. https://www.ijcns.latticescipub.com/wp-content/uploads/papers/v4i1/A1426054124.pdf
  2. https://iacr.org/archive/pkc2003/25670211/25670211.pdf
  3. https://www.nccgroup.com/research-blog/an-illustrated-guide-to-elliptic-curve-cryptography-validation/
  4. https://biham.cs.technion.ac.il/BT/bt-fixed-coordinate-invalid-curve-attack.pdf
  5. https://www.nds.rub.de/media/nds/veroeffentlichungen/2015/09/14/main-full.pdf
  6. https://stackoverflow.com/questions/75089523/elliptic-curve-point-verify-point-is-on-the-curve
  7. https://datatracker.ietf.org/doc/rfc5656/
  8. https://dev.to/cyberbimba/a-deep-dive-into-elliptic-curve-cryptography-ecc-with-code-examples-319a
  9. https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/
  10. https://github.com/elikaski/ECC_Attacks
  11. https://github.com/forensicskween/invalid-curve-attack
  12. https://thescipub.com/pdf/jcssp.2023.112.125.pdf
  13. https://cryptobook.nakov.com/asymmetric-key-ciphers/elliptic-curve-cryptography-ecc
  14. https://estudiobitcoin.com/elliptic-curve-in-bitcoin/
  15. https://cr.yp.to/papers/safecurves-20240809.pdf
  16. https://www.encryptionconsulting.com/elliptic-curve-cryptography-ecc/
  17. https://www.hackthebox.com/blog/business-ctf-2022-400-curves-write-up
  18. https://safecurves.cr.yp.to
  19. https://akiratk0355.github.io/file/slides_EuroSP19.pdf
  20. https://learnmeabitcoin.com/technical/cryptography/elliptic-curve/ecdsa/
  1. https://www.nccgroup.com/research-blog/an-illustrated-guide-to-elliptic-curve-cryptography-validation/
  2. https://neuromancer.sk/data/files/485102c6c473ef879a05f7ea5209bdd0.pdf
  3. https://blog.trailofbits.com/2018/08/01/bluetooth-invalid-curve-points/
  4. https://web-in-security.blogspot.com/2015/09/practical-invalid-curve-attacks.html
  5. https://man.openbsd.org/EC_POINT_add.3
  6. https://gist.github.com/mcieno/c92b140daa7b419bd355c1b0dc54f0ec
  7. https://www.fox-it.com/nl-en/an-illustrated-guide-to-elliptic-curve-cryptography-validation/
  8. https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
  9. https://cointelegraph.com/news/newly-discovered-bitcoin-wallet-loophole-let-hackers-steal-funds-slow-mist
  10. https://milksad.info/disclosure.html
  11. https://github.com/elikaski/ECC_Attacks
  12. https://security.snyk.io/package/npm/elliptic/6.4.1
  13. https://bitcoinmagazine.com/technical/the-milk-sad-vulnerability-and-what-it-means-for-bitcoin
  14. https://attacksafe.ru/secp256k1-un/
  15. https://stackoverflow.com/questions/75749088/crypto-elliptic-attempted-operation-on-invalid-point
  16. https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
  17. https://gist.github.com/mimoo/435baab9545c03225de8bafff30c9b4b
  18. https://botan.randombit.net/doxygen/classBotan_1_1EC__Point.html
  19. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  20. https://www.miggo.io/vulnerability-database/cve/CVE-2024-48949
  21. https://onlinelibrary.wiley.com/doi/10.1049/iet-ifs.2017.0075
  22. https://media.ccc.de/v/38c3-dude-where-s-my-crypto-real-world-impact-of-weak-cryptocurrency-keys
  23. https://bitcointalk.org/index.php?topic=5463676.0
  24. https://is.muni.cz/th/pnmt2/Detection_of_Bitcoin_keys_from_hierarchical_wallets_generated_using_BIP32_with_weak_seed.pdf
  25. https://www.nds.rub.de/media/nds/veroeffentlichungen/2015/09/14/main-full.pdf
  26. https://cypherpunks-core.github.io/bitcoinbook/ch04.html
  27. https://arxiv.org/pdf/2506.03318.pdf
  28. https://stackoverflow.com/questions/75089523/elliptic-curve-point-verify-point-is-on-the-curve
  29. https://users.cs.fiu.edu/~prabakar/cen5079/Common/textbooks/Mastering_Blockchain_2nd_Edition.pdf
  30. https://sarwagya.is-a.dev/blog/2025-01-28-elliptic-curve-mistakes
  31. https://studylib.net/doc/26314224/mastering-bitcoin-2nd-edition
  32. https://stackoverflow.com/questions/76538185/elliptic-curve-cryptography-key-verification-fails
  33. https://fossies.org/linux/Botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
  34. https://www.coursehero.com/file/p46vk4ln/example-of-generating-and-displaying-a-private-key-using-these-two-commands/
  35. https://botan.randombit.net/doxygen/ec__point_8h_source.html
  36. https://www.utwente.nl/en/ces/sal/exams/Blockchain-and-Distributed-Ledger-Technology-test/1-Bitcoin/bitcoinbook-ch04-keys-addresses.pdf
  37. https://algosone.ai/news/hackers-steal-900k-through-newly-discovered-bitcoin-wallet-loophole/
  38. https://stackoverflow.com/questions/57754502/do-i-have-to-install-libbitcoin-server-to-be-able-to-include-bitcoin-hpp
  39. https://stackoverflow.com/questions/68350888/verify-that-ecpoint-is-valid-on-ellipticcurve-object-given-xy-coordinates-and-c
  40. https://www.binance.com/cs/square/post/951306
  41. https://www.investing.com/news/cryptocurrency-news/libbitcoin-vulnerability-leads-to-900k-theft-from-bitcoin-wallets-3152533
  42. https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
  43. https://www.asau.ru/files/pdf/1789486.pdf
  44. https://stackoverflow.com/questions/16890778/how-to-check-point-at-infinity-to-implement-ecc
  45. https://docs.openssl.org/1.1.1/man3/EC_POINT_new/
  46. https://www.incibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2023-39910
  47. https://commondatastorage.googleapis.com/chromium-boringssl-docs/ec.h.html
  48. https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
  1. https://cryptolounge.net/pdf/KarUst10.pdf
  2. https://www.nccgroup.com/research-blog/an-illustrated-guide-to-elliptic-curve-cryptography-validation/
  3. https://github.com/libbitcoin/libbitcoin-explorer/wiki/cve-2023-39910
  4. https://keyhunters.ru/vulnerable-components-of-the-bitcoin-ecosystem-the-problem-of-incorrect-calculation-of-the-order-of-the-elliptic-curve-secp256k1/
  5. https://cr.yp.to/papers/safecurves-20240809.pdf
  6. https://github.com/elikaski/ECC_Attacks
  7. https://habr.com/ru/articles/771980/
  8. https://nvd.nist.gov/vuln/detail/CVE-2023-39910
  9. https://github.com/demining/Milk-Sad-vulnerability-in-the-Libbitcoin-Explorer-3.x
  10. https://www.isaca.org/resources/isaca-journal/issues/2016/volume-3/can-elliptic-curve-cryptography-be-trusted-a-brief-analysis-of-the-security-of-a-popular-cryptosyste
  11. 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
  12. https://www2.eecs.berkeley.edu/Pubs/TechRpts/2021/EECS-2021-126.pdf
  13. https://milksad.info
  14. https://attacksafe.ru/how-hackers-used-the-milk-sad-bug-in-libbitcoin-explorer-3-x-to-steal-900000-from-btc-wallets/
  15. https://proceedings.neurips.cc/paper_files/paper/2023/file/e5440ffceaf4831b5f98652b8a27ffde-Paper-Conference.pdf
  16. https://coinshares.com/us/insights/research-data/quantum-securing-bitcoin-really-isn-t-that-hard/
  17. https://news.ycombinator.com/item?id=8844789
  18. https://www.hackthebox.com/blog/business-ctf-2022-400-curves-write-up
  19. http://www.diva-portal.org/smash/get/diva2:1848522/FULLTEXT01.pdf
  20. https://akiratk0355.github.io/file/slides_EuroSP19.pdf
  21. https://attacksafe.ru/secp256k1-un/
  1. https://www.hackthebox.com/blog/business-ctf-2022-400-curves-write-up
  2. https://cryptolounge.net/pdf/KarUst10.pdf
  3. https://vnhacker.blogspot.com/2018/09/invalid-curve-attacks-explained.html
  4. https://pdfs.semanticscholar.org/418c/ffbc1313eab9a4650b00161bb4b8897a2569.pdf
  5. https://safecurves.cr.yp.to/twist.html
  6. https://akiratk0355.github.io/file/slides_EuroSP19.pdf
  7. https://dl.acm.org/doi/10.1007/978-3-319-22425-1_3

By