作者:KEYHUNTER
“Bitflip Oracle Rush 攻擊”
攻擊描述:
攻擊者巧妙地篡改了加密的 wallet.dat Bitcoin Core 檔案中的位元組,對每個 AES-256-CBC 密文區塊中的單一位元進行翻轉。攻擊者利用系統對填充錯誤的回應(該協議的獨特特性),將服務變成一種“預言機”,指示修改是否成功。透過這一系列連續的請求,攻擊者逐步恢復了錢包的真實密碼,並最終獲得了對私鑰的完全訪問權限——而無需知道用戶的原始助記詞或密碼。
CBC 位元翻轉(填充預言機攻擊)是比特幣生態系統中針對私鑰儲存最危險的加密漏洞之一。它表明,有效保護數位資產不僅需要強大的加密演算法,還需要嚴格的完整性檢查和通用的錯誤處理協議。正確實施 AEAD、HMAC 以及禁止未經身份驗證解密對於比特幣加密貨幣在不斷演變的攻擊面前的 長期安全至關重要。
Bitflip Oracle Rush 攻擊中利用的漏洞清楚地表明,僅使用現代認證加密方案至關重要,而忽略解密機密資料時的整合控制將導致嚴重的後果。對於 Bitcoin Core 和其他錢包而言,切換到 AEAD(AES-GCM/ChaCha20Poly1305)是確保加密強度並防止私鑰未來洩漏的明智之舉。 pikabu +3 對 Bitcoin Core 中的關鍵漏洞——比特翻轉(填充預言機)攻擊——的研究得出了一個清晰而根本的科學結論:即使是像 AES-256-CBC 這樣最強大可靠的加密演算法,缺乏完整性檢查和過大的錯誤粒度也會導致整個加密金鑰儲存系統的災難性洩露。這種攻擊依賴於側通道填充預言機,攻擊者可以逐步破解 wallet.dat 檔案中的加密私鑰,從而在不知道用戶密碼或助記詞的情況下完全控制用戶的資金。
「逆轉預言」漩渦反映了該方法的迅捷、狡猾和必然性:每一次微小的比特變化都讓攻擊者離夢寐以求的私鑰和資金控制權更近一步,而毫不知情的加密貨幣用戶甚至不會注意到這個幽靈般的「漩渦」正在破壞數字秘密的完整性。 pikabu +1
CVE 式解釋:
Bitflip Oracle Rush 攻擊針對 Bitcoin Core wallet.dat 中的 AES-256-CBC 實現,它利用填充錯誤,透過 CBC 模式的行為洩露和缺陷,逐步恢復加密資料或私鑰。 temofeev +1
該攻擊介於密碼分析和社會工程之間,其名稱朗朗上口,易於記憶:Bitflip Oracle Rush。
研究文章:關鍵的比特翻轉(填充預言機)攻擊漏洞對比特幣加密貨幣的影響及防護方法
近年來,比特幣核心一直積極使用 AES-256-CBC 對稱加密演算法來保護 wallet.dat 檔案中的私鑰。儘管演算法強度很高,但仍發現了一個嚴重漏洞—— 比特翻轉 攻擊(學名: CBC 比特翻轉攻擊 ,也稱為 填充預言機攻擊 )。當利用所謂的填充預言機實施此漏洞時,攻擊者可以操縱和解密關鍵數據,從而威脅整個比特幣生態系統的安全 。
脆弱性的科學分類
- 該攻擊的科學名稱:
- 應用:
- 針對使用 AES-256-CBC 加密或類似演算法且沒有身份驗證/完整性檢查的密碼系統。
- CVE編號:
位翻轉和填充預言機攻擊的工作原理
數學本質
在 CBC 模式下,解密過程如下:Pi=DK(Ci)⊕Ci−1P_i = D_K(C_i) \oplus C_{i-1}Pi=DK(Ci)⊕Ci−1
其中 PiP_iPi 是解密區塊,DKD_KDK 是解密器,Ci,Ci−1C_i, C_{i-1}Ci,Ci−1 是密文區塊。
- 透過更改 Ci−1C_{i-1}Ci−1 中的一位,攻擊者可以可預測地更改 PiP_iPi 中的值。 cryptodeeptools +1
- 如果該服務還提供填充訊息,它相當於一個“預言機”,使得尋找和恢復原始文字和私鑰變得更加容易。 維基百科+2
此次攻擊對比特幣生態系統的影響
加密貨幣面臨的關鍵風險
- 私鑰洩漏: 攻擊者可以逐步解密 wallet.dat 文件,提取私鑰,並完全控制用戶的資金。 pikabu +2
- 潛在危害規模: 如果私鑰儲存結構仍有漏洞,這次攻擊不僅可能具有針對性,還可能被別有用心的人利用進行大規模駭客攻擊。 pikabu +1
- 匿名且不可偵測: 攻擊者不知道密碼,但透過分析「填充預言機」的回應,他可以逐步恢復關鍵資料。
實際意義
- 資金損失:成功的攻擊已造成數百萬美元的損失。 pikabu +1
- 對交易所和服務的威脅:任何整合類似加密方案但未進行身份驗證的服務都可能受到此漏洞的影響。 cryptodeeptools +1
- 違反交易完整性:攻擊者不僅可以獲得金鑰,還可以更改解碼資料的內容,例如地址、金額和提款條件。
解決方案和現代防護方法
- 使用認證加密模式(AEAD):
- AES-GCM、ChaCha20-Poly1305——它們結合了加密和完整性控制。 github +1
- 解密前請檢查 HMAC:
- 在嘗試解密之前,必須對加密資料進行任何身份驗證,以防止對密文的修改未被發現。
- 隱藏填充狀態回應:
- 錯誤必須是普遍適用的,不能向攻擊者提供關於加密區塊結構的資訊 。 cryptodeeptools
- 定期安全審計和錢包更新:
- 僅使用現代加密庫,排除不安全的實作。
安全程式碼範例(程式碼片段,C++ 和 OpenSSL):
cpp// Проверка тегов аутентификации до расшифрования — с использованием AES-256-GCM
if (!VerifyTag(ciphertext, tag)) {
throw std::runtime_error("Invalid authentication tag: possible tampering detected.");
}
// Только если тег валиден — продолжаем расшифровать
std::vector<unsigned char> plaintext = Decrypt(ciphertext, key, iv, tag);
結論
CBC 位元翻轉(填充預言機攻擊)是比特幣生態系統中針對私鑰儲存最危險的加密漏洞之一。它表明,有效保護數位資產不僅需要強大的加密演算法,還需要嚴格的完整性檢查和通用的錯誤處理協議。正確實施 AEAD、HMAC 以及禁止未經身份驗證解密對於比特幣加密貨幣在不斷演變的攻擊面前的 長期安全至關重要。
對比特幣核心程式碼中的加密漏洞進行分析
在對提交的程式碼進行徹底分析並研究比特幣核心中已知的漏洞後, 發現了兩個與加密資料相關的潛在安全問題:
已識別的漏洞
第 15 行:硬編碼加密數據
cpp:constexpr std::array<uint8_t, 32> v{"c97f5a67ec381b760aeaf67573bc164845ff39a3bb26a1cee401ac67243b48db"_hex_u8};
漏洞類型: 敏感加密資料外洩
嚴重程度: 中等
描述: 程式碼中硬編碼的靜態 32 位元組數組可能代表私鑰、助記詞或其他敏感加密資料。 inhq +1

第 27 行:靜態比特幣地址
cpp:std::string addr = "bc1qkallence7tjawwvy0dwt4twc62qjgaw8f4vlhyd006d99f09";
漏洞類型: 潛在地址資料外洩
嚴重程度: 低-中
描述: 原始碼中硬編碼的比特幣地址可能允許追蹤交易或用於社會工程攻擊。
比特幣核心漏洞的背景
研究表明,比特幣核心歷來都存在各種類型的加密漏洞:
Bech32解碼漏洞: 在 Bech32的C語言實作中發現了一個緩衝區溢位漏洞,該漏洞可能導致硬體錢包遭到入侵。 bitcoinops +1
記憶體管理問題: Bitcoin Core v22 發現了記憶體管理漏洞,攻擊者可以利用該漏洞修改儲存在記憶體中的錢包位址 (CVE-2023-37192) 。
網路協定漏洞: 多個與網路訊息處理中的整數溢位和邏輯錯誤相關的 CVE 漏洞(CVE-2024-52912)。
安全建議
對於第 15 行: 將硬編碼的加密資料替換為動態產生的測試值,或使用 bitcoincore 加密庫中的安全常數。
對於第 27 行: 使用運行時測試位址產生或指派明確標記為非工作的特殊測試位址 。
通用措施: 定期將 Bitcoin Core 更新到最新版本,因為開發人員正在積極修復已發現的漏洞。 cryptodnes +1
雖然這段 程式碼 是基準測試程式碼,並非比特幣核心邏輯的關鍵部分,但遵循安全編碼原則對於防止潛在攻擊和資料外洩仍然非常重要。

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

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

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

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

關於 bithorecover 的科學文章:利用 Bitflip Oracle Rush 攻擊漏洞恢復比特幣私鑰
本文對 bithorecover 工具及其在利用 Bitflip Oracle Rush 攻擊中的作用進行了深入分析。 Bitflip Oracle Rush 攻擊是比特幣核心 AES-256-CBC 加密的 wallet.dat 檔案中的關鍵加密漏洞。 bithorecover 利用填充預言機處理和認證機制中的弱點,作為自動化恢復引擎,使攻擊者或取證分析師能夠系統地從被入侵的錢包文件中提取私鑰。本文概述了 bithorecover 的方法論、它與底層 Bitflip Oracle Rush 加密缺陷的交互,以及對比特幣安全性的影響。最後,本文討論了緩解此漏洞和保護加密貨幣資產的建議。
介紹
Bitcoin Core 的 wallet.dat 檔案使用 AES-256-CBC 加密來保護私密金鑰。雖然 AES-256 以其強大的加密能力而聞名,但傳統的 CBC 模式容易受到填充預言機攻擊。 Bitflip 預言機突襲攻擊利用了 AEAD 和 HMAC 完整性檢查實現不當的問題,從而允許對密文進行位元級篡改並逐步恢復私鑰。
Bithorecover專注於自動化這種攻擊途徑,它透過系統地修改密文區塊並分析協定回應來揭示 wallet.dat 檔案中的私鑰。該工具凸顯了缺乏強大身份驗證機制的傳統加密方案所帶來的實際風險。
bithorecover概述
Bithorecover 是一款專門用於利用加密漏洞的工具,其設計目的是:
- 實現針對 AES-256-CBC 加密的 Bitcoin Core 錢包的填充預言攻擊自動化。
- 將受控位元翻轉注入 wallet.dat 的密文區塊中。
- 分析比特幣核心對修改密文的錯誤回應(預言機行為)。
- 逐步恢復明文區塊,重建包括私鑰在內的敏感資料。
- 支援在實驗室或受控條件下進行錢包取證分析和遺失金鑰的恢復。
Bithorecover 的重要性在於它能夠精確地重建私鑰,而無需原始用戶密碼或助記詞,這是透過利用 Bitflip Oracle Rush 漏洞實現的。
bitflip Oracle Rush 攻擊被 bithorecover 利用
這次安全漏洞的關鍵在於 Bitcoin Core 如何使用 AES-CBC 演算法解密 wallet.dat 文件,而沒有採用認證加密或可靠的填充錯誤混淆技術。 Bitflip Oracle Rush 攻擊的運作方式如下:
- 協定回應會洩漏詳細的填充錯誤訊息。
- Bithorecover 會切換密文區塊(Ci-1)的各個位元,進而影響後續區塊(Pi)的解密。
- 透過觀察響應模式,bithorecover 確定有效的填充狀態。
- 迭代分析揭示了原始明文,包括私鑰。
這種行為違反了關鍵的密碼原則,使得 bithorecover 成為一款強大的基於預言機的密鑰恢復工具。
對比特幣生態系統的影響
在主動攻擊場景中成功使用 bithorecover 會危及:
- 私鑰保密性:提取的金鑰可能導致未經授權的人控制比特幣資金。
- 使用者安全:由於實施缺陷,即使採用強加密,一般使用者仍面臨資金損失的風險。
- 交易所和錢包服務安全:使用 AES-CBC 但不使用 AEAD 的服務容易受到大規模攻擊。
- 加密貨幣信任:凸顯了加密技術升級的迫切需求。
緩解措施和安全措施
為了防範 bithorecover 及類似漏洞,比特幣核心和錢包應實施以下措施:
- 具有關聯資料的認證加密 (AEAD) 模式,例如 AES-GCM 或 ChaCha20-Poly1305。
- 在任何解密嘗試之前,必須進行 HMAC 驗證。
- 統一的錯誤回應以防止填充預言機洩漏。
- 定期進行安全審計並及時升級加密庫。
實施這些措施會消除預言機回饋通道,從而使 bithorecover 的攻擊機制失效。
結論
Bithorecover是一個重要的案例研究,它展示瞭如何利用 Bitflip Oracle Rush 攻擊來攻擊傳統的比特幣錢包加密。它的能力凸顯了忽視加密協定中的完整性檢查和錯誤處理所帶來的災難性風險。比特幣生態系統必須從易受攻擊的 AES-CBC 加密過渡到現代的認證加密標準,以可靠地保護私鑰和加密貨幣資產。

研究論文:Bitflip Oracle Rush 攻擊在比特幣核心中的加密漏洞及其安全修復
註解
本文探討了名為「Bitflip Oracle Rush Attack」(比特翻轉預言機突襲攻擊)的嚴重漏洞,該漏洞會影響使用 AES-256-CBC 對稱加密的 Bitcoin Core 錢包中私鑰的保護。文章示範了攻擊者如何操縱加密的 wallet.dat 資料區塊中的單一比特,並利用填充預言機錯誤逐步恢復原始數據,從而繞過使用者密碼。本文提出了一種現代且安全的緩解方法:在解密前進行完整性檢查並實施認證加密 (AEAD)。文章還提供了一個安全的實作範例,並提出了防止未來發生類似攻擊的建議。
Bitflip Oracle Rush 攻擊漏洞是如何發生的
理論基礎
在CBC對稱加密模式(密碼塊連結)中,每個密文塊透過與解密結果進行異或運算與前一個密文塊連結。解密時,區塊的連結方式如下:Pi = DK(Ci) ⊕ Ci−1 P_i = D_K(C_i) \oplus C_{i-1} Pi = DK(Ci) ⊕ Ci−1
其中 PiP_iPi 是解密後的區塊,DK(Ci)D_K(C_i)DK(Ci) 是使用金鑰 KKK 解密的目前區塊,Ci−1C_{i-1}Ci−1 是前一個密文區塊。
攻擊機制
如果攻擊者能夠修改加密的 wallet.dat 檔案中的字節,並觀察系統對區塊結束錯誤(填充)的回應,他們就能創造一個所謂的「填充預言機」。該預言機允許攻擊者在不知道加密金鑰的情況下,根據加密服務的回應(填入正確/錯誤)逐位計算出原始密碼和私鑰。攻擊者只需操縱密文並分析回傳的錯誤,就能逐步重建敏感資料 。
攻擊階段:
- 對特定密文區塊的位元進行修改。
- 測試對假填充物的反應。
- 重複上述步驟,每次選擇正確的字節,直到原始資料完全恢復。
為什麼這對比特幣核心來說很危險?
- 此攻擊允許從 wallet.dat 檔案中完全洩漏私鑰。 cryptodeeptools +1
- 匿名且難以偵測:攻擊者看不到密碼,但能獲得密鑰。
- 可擴充性:在所有使用 AES-256-CBC 演算法對 wallet.dat 檔案進行加密且未進行身份驗證的實作中,均可重現此漏洞 。 cryptodeeptools
安全解決方案:防止 Bitflip Oracle Rush 攻擊
現代方法
為了抵禦攻擊,你需要:
- 解密前驗證資料完整性(HMAC)
- 使用認證加密模式(AEAD) :AES-GCM、ChaCha20-Poly1305
- 切勿洩漏有關填充狀態的詳細資訊 :錯誤資訊應概括化。
一個安全實作的範例(C++)
cpp// Использовано: OpenSSL (или любая AEAD-библиотека)
#include <openssl/evp.h>
#include <vector>
#include <stdexcept>
#include <cstring>
// Автентифицированное шифрование: AES-256-GCM
bool EncryptAEAD(const std::vector<unsigned char>& key,
const std::vector<unsigned char>& plaintext,
const std::vector<unsigned char>& iv,
std::vector<unsigned char>& ciphertext,
std::vector<unsigned char>& auth_tag) {
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
int len;
int ciphertext_len;
ciphertext.resize(plaintext.size() + 16);
auth_tag.resize(16);
if(!EVP_EncryptInit_ex(ctx, EVP_aes_256_gcm(), NULL, NULL, NULL))
return false;
if(!EVP_EncryptInit_ex(ctx, NULL, NULL, key.data(), iv.data()))
return false;
if(!EVP_EncryptUpdate(ctx, ciphertext.data(), &len, plaintext.data(), plaintext.size()))
return false;
ciphertext_len = len;
if(!EVP_EncryptFinal_ex(ctx, ciphertext.data() + len, &len))
return false;
ciphertext_len += len;
if(!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_GET_TAG, 16, auth_tag.data()))
return false;
EVP_CIPHER_CTX_free(ctx);
ciphertext.resize(ciphertext_len);
return true;
}
// Проверка целостности до расшифровки!
bool DecryptAEAD(const std::vector<unsigned char>& key,
const std::vector<unsigned char>& ciphertext,
const std::vector<unsigned char>& iv,
const std::vector<unsigned char>& auth_tag,
std::vector<unsigned char>& plaintext) {
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
int len;
int plaintext_len;
plaintext.resize(ciphertext.size());
if(!EVP_DecryptInit_ex(ctx, EVP_aes_256_gcm(), NULL, NULL, NULL))
return false;
if(!EVP_DecryptInit_ex(ctx, NULL, NULL, key.data(), iv.data()))
return false;
if(!EVP_DecryptUpdate(ctx, plaintext.data(), &len, ciphertext.data(), ciphertext.size()))
return false;
plaintext_len = len;
if(!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_TAG, 16, (void*)auth_tag.data()))
return false;
// Паддинг ошибки НЕ различать в ответах!
int ret = EVP_DecryptFinal_ex(ctx, plaintext.data() + len, &len);
EVP_CIPHER_CTX_free(ctx);
if(ret > 0) {
plaintext_len += len;
plaintext.resize(plaintext_len);
return true; // Данные подлинны
} else {
throw std::runtime_error("Decryption failed: authentication tag mismatch");
}
}
[在解密前使用 AEAD 和 HMAC 驗證可以完全阻止位元翻轉和填充預言機攻擊。 ] cerias.purdue+2
最佳實踐和建議
- 請務必使用 AEAD :不要使用純 AES-CBC 來儲存金鑰。
- 解密前檢查 HMAC 或內建認證 :防止偽造的密文被解密。
- 統一解碼錯誤 :不傳回特殊填充錯誤訊息。
- 定期審核錢包程式碼安全性 :保持加密庫更新。
- 將密文視為潛在的危險輸入 :記住「信任但要驗證」的原則。
結論
Bitflip Oracle Rush 攻擊中利用的漏洞清楚地表明,僅使用現代認證加密方案至關重要,而忽略解密機密資料時的整合控制將導致嚴重的後果。對於 Bitcoin Core 和其他錢包而言,切換到 AEAD(AES-GCM/ChaCha20Poly1305)是確保加密強度並防止私鑰未來洩漏的明智之舉。 pikabu +3
綜上所述,我們對比特幣核心的關鍵漏洞——比特翻轉(填充預言機)攻擊——進行了深入研究,得出了一個清晰而根本的科學結論:即使是最安全可靠的加密演算法,例如 AES-256-CBC,由於缺乏完整性檢查和錯誤粒度過大,也會導致整個加密演算法儲存系統遭受災難性的破壞金鑰。這種攻擊利用系統回應資訊(填充預言機)的側頻道,使攻擊者能夠逐步從 wallet.dat 檔案中恢復加密的私鑰,從而在無需用戶密碼或助記詞的情況下,完全控制用戶的資金。
位元翻轉和填充預言機攻擊從根本上破壞了比特幣加密貨幣金鑰儲存和使用的基本安全性,凸顯了在任何加密協定中嚴格完整性控制和認證加密(AEAD)的重要性。科學已證明,實現強大加密安全的唯一方法是實施完全認證的加密模式、消除細粒度解密錯誤以及定期軟體更新。只有這些措施才能防止大規模攻擊、私鑰外洩和比特幣用戶遭受經濟損失,確保全球領先加密貨幣的信任度、安全性和技術優勢 。
- https://habr.com/ru/articles/778200/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514
- https://pikabu.ru/story/padding_oracle_attack_na_walletdat_rasshifrovka_parolya_dlya_populyarnogo_koshelka_bitcoin_core_10888097
- https://cryptodeep.ru/padding-oracle-attack-on-wallet-dat/
- https://en.wikipedia.org/wiki/Padding_oracle_attack
- https://cryptodeeptools.ru/bit-flipping-attack-on-wallet-dat/
連結:
cryptodeeptools.ru/bit-flipping-attack-on-wallet-dat/ cryptodeeptools
github.com/demining/Padding-Oracle-Attack-on-Wallet.dat github
www.cerias.purdue.edu/site/secpros_wiki/f08ce4da9461a56fd31cf7a53f0d41a2/[4 ]
pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514 pikabu
- https://github.com/demining/Padding-Oracle-Attack-on-Wallet.dat
- https://cryptodeeptools.ru/bit-flipping-attack-on-wallet-dat/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514
- https://www.cerias.purdue.edu/site/secpros_wiki/f08ce4da9461a56fd31cf7a53f0d41a2/
- https://arxiv.org/pdf/2311.08027.pdf
- https://kth.diva-portal.org/smash/get/diva2:1985719/FULLTEXT01.pdf
- https://article.sciencepublishinggroup.com/pdf/j.ajcst.20240704.12
- https://www.vusec.net/projects/flip-feng-shui/
- https://www.youtube.com/watch?v=Q6wopwjhyig
- https://habr.com/ru/articles/778200/
- https://www.linkedin.com/pulse/cbc-bit-flipping-attack-mahmoud-jadaan-nr7ke
- https://www.nccgroup.com/research-blog/cryptopals-exploiting-cbc-padding-oracles/
- https://memoryleaks.blog/tech/2017/10/22/cbc-bit-flipping.html
- https://attacksafe.ru/decrypting-wallet-dat-passwords-in-bitcoin-core-using-padding-oracle-attacks/
- https://habr.com/ru/articles/868736/
- https://cryptodeep.ru/padding-oracle-attack-on-wallet-dat/
- https://www.infosecinstitute.com/resources/hacking/cbc-byte-flipping-attack-101-approach/
- https://github.com/topics/padding-oracle?o=asc&s=forks
- https://www.brunorochamoura.com/posts/cbc-padding-oracle/
- https://blog.inhq.net/posts/bech32_decode-summary/
- https://bitcoinops.org/en/newsletters/2018/11/06/
- https://dockeyhunt.com/analyzing-the-security-and-efficiency-of-bech32-encoding-in-bitcoin-transactions/
- https://www.wiz.io/vulnerability-database/cve/cve-2023-37192
- https://www.wiz.io/vulnerability-database/cve/cve-2024-52912
- https://bitcoincore.org/en/security-advisories/
- https://cryptodnes.bg/en/bitcoin-developers-unveil-historic-security-fixes/
- https://chinggg.github.io/post/bitcoin-fuzz/
- https://bitcoincore.org/en/releases/0.18.0/
- https://learnmeabitcoin.com/technical/keys/bech32/
- https://blog.bitmex.com/build-systems-security-bitcoin-is-improving/
- https://www.reddit.com/r/Bitcoin/comments/158nyuo/mass_hacking_of_over_1000_bitcoin_accounts/
- http://bitcoinwiki.org/wiki/bech32
- https://bsvblockchain.org/bsv-blockchain-security-audit-helps-resolve-multiple-vulnerabilities-across-different-bitcoin-blockchains/
- https://bitcoinops.org/en/newsletters/2024/06/07/
- https://www.nadcab.com/blog/bech32-in-bitcoin
- https://agroce.github.io/bitcoin_report.pdf
- https://attacksafe.ru/bip-schnorrrb/
- https://onekey.so/blog/ecosystem/segwit-and-native-segwit-bech32-whats-the-difference/
- https://brink.dev/assets/files/2023-07-05-niklas-fuzzing-slides.pdf
- https://moldstud.com/articles/p-troubleshooting-bitcoin-address-generation-problems-common-issues-and-solutions
- https://github.com/sipa/bech32/issues/51
- https://dl.acm.org/doi/10.3103/S0146411623080278
- https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses
- https://www.halborn.com/disclosures/halborn-discovers-zero-day-vulnerability-in-cosmwasm
- https://cryptorank.io/news/feed/dc07f-vulnerability-in-bitcoin-core-raises-concern
- https://ssojet.com/compare-binary-encoding/bech32-vs-rfc-1751-skey/
- https://www.ired.team/offensive-security/code-injection-process-injection/binary-exploitation/stack-based-buffer-overflow
- https://pkg.go.dev/github.com/cosmos/btcutil/bech32
- https://mojoauth.com/compare-binary-encoding/bech32-vs-rfc-1751-skey/
- https://morehouse.github.io/lightning/cln-invoice-parseg/
- https://stackoverflow.com/questions/63245539/dart-bech32-and-hex-encoding-and-decoding
- https://www.cvedetails.com/version/1777959/Bitcoin-Bitcoin-Core-25.0.html
- https://pkg.go.dev/github.com/btcsuite/btcutil/bech32
- https://github.com/bitcoin/bitcoin/issues/15560
- https://blog.inhq.net
連結:
cryptodeeptools.ru/bit-flipping-attack-on-wallet-dat/ cryptodeeptools
github.com/demining/Padding-Oracle-Attack-on-Wallet.dat github
en.wikipedia.org/wiki/Bit-flipwiki-flip nccgroup.com/research-blog/cryptopals-exploiting-cbc-padding-oracles/ nccgroup en.wikipedia.org/wiki/Padding_oracle_attack wikipedia nvd.nist.gov/vuln/detail/CVE-2019-15947 nvd.nist+1 nvd.nist.gov/vuln/detail/cve-2019-3730 nvd.nist pikabu pikabu.ru/@CryptoDeepTech pikabu
- https://www.nccgroup.com/research-blog/cryptopals-exploiting-cbc-padding-oracles/
- https://en.wikipedia.org/wiki/Bit-flipping_attack
- https://cryptodeeptools.ru/bit-flipping-attack-on-wallet-dat/
- https://en.wikipedia.org/wiki/Padding_oracle_attack
- https://github.com/demining/Padding-Oracle-Attack-on-Wallet.dat
- https://nvd.nist.gov/vuln/detail/CVE-2019-15947
- https://www.cvedetails.com/cve/CVE-2019-15947/
- https://nvd.nist.gov/vuln/detail/cve-2019-3730
- https://nvd.nist.gov/vuln/detail/CVE-2025-7071
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514
- https://pikabu.ru/@CryptoDeepTech
- https://www.infosecinstitute.com/resources/hacking/cbc-byte-flipping-attack-101-approach/
- https://github.com/advisories/GHSA-h63v-hw6g-x8hp
- https://www.linkedin.com/pulse/cbc-bit-flipping-attack-mahmoud-jadaan-nr7ke
- https://www.sciencedirect.com/science/article/pii/S2666281722001676
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin
- https://secrypt.scitevents.org/Abstract.aspx?idEvent=aPDwKbhDfEo%3D
- https://cryptodeeptech.ru
- https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/round-2/spec-doc-rnd2/estate-spec-round2.pdf
- https://attacksafe.ru/decrypting-wallet-dat-passwords-in-bitcoin-core-using-padding-oracle-attacks/
- https://habr.com/ru/articles/778200/
- https://pikabu.ru/story/padding_oracle_attack_na_walletdat_rasshifrovka_parolya_dlya_populyarnogo_koshelka_bitcoin_core_10888097
- https://habr.com/ru/articles/817735/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_2_13153514
- https://is-systems.org/blog_article/11600067988
- https://temofeev.ru/info/articles/padding-oracle-attack-na-wallet-dat-rasshifrovka-parolya-dlya-populyarnogo-koshelka-bitcoin-core/
- https://ru.investing.com/news/cryptocurrency-news/article-2511019
- https://cryptodeep.ru
- https://forum.bits.media/index.php?%2Fblogs%2Fblog%2F1162-ecdsa%2F
- https://blog.ishosting.com/ru/bitcoin-core-tutorial