VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰

作者:KEYHUNTER 


可變位元組密鑰洩漏攻擊

PSBT協定中私鑰序列化機制的一個關鍵漏洞對整個比特幣生態系統構成根本性威脅。該漏洞允許攻擊者透過未加密的資料流悄無聲息地存取私鑰,使所有未受保護的錢包都面臨被徹底攻破的風險。這種攻擊被稱為“密鑰洩露”或“私鑰披露”,會導致所有資金立即損失、交易被偽造,並動搖去中心化金融體系的基本信任。

在序列化 PSBT 欄位時,未加密的私鑰和簽章會透過廣播直接「原樣」包含在輸出流中 serializeKVPairWithType。攻擊者如果攔截到此廣播,無需額外的解密或身份驗證即可直接存取交易的秘密資料。


比特幣私鑰序列化機制的關鍵漏洞:金鑰洩漏攻擊的危險以及對加密貨幣安全的全面威脅


可變位元組密鑰洩漏攻擊

攻擊的本質在於:
在序列化 PSBT 欄位時,未加密的私鑰和簽章會透過一個呼叫直接「原封不動」地包含在輸出流中 serializeKVPairWithType。攔截此廣播的攻擊者無需額外的解密或身份驗證即可直接存取交易的秘密資料。

攻擊的關鍵要素:

  • 使用一種採用非過濾方法serializeKVPairWithType產生鍵的 函數 append([]byte{kt}, keydata…)
  • 透過以下方式記錄私鑰和簽名wire.WriteVarBytes
  • 對VarByte流量的攔截與分析 PSBT

後果: 私鑰洩露,用戶資金完全被控制。

對策: 在序列化之前驗證欄位類型,並對 PSBT 流中的私有資料進行加密或排除。


研究論文:私鑰序列化中的一個關鍵漏洞及其對比特幣加密貨幣安全性的影響

比特幣加密貨幣的安全性建立在私鑰的保密性之上。任何私鑰洩漏都會導致用戶資金完全被控制。比特幣歷史上最危險的攻擊都與私鑰洩漏有關——這是由於序列化、儲存或資料傳輸過程中的實施錯誤造成的。

關鍵漏洞描述

PSBT(部分簽署比特幣交易)及類似協議的實現有時允許以未加密的方式序列化私鑰和簽名。這會造成所謂的「密鑰外洩漏洞」。在這種類型的攻擊中,攻擊者會攔截或取得包含序列化私鑰的資料流,並可立即使用這些私鑰以受害者的名義建立交易。

在科學和工業術語中,這種攻擊被歸類為:

該漏洞會對攻擊場景產生哪些影響?

利用序列化錯誤會導致:

  • 資金竊盜: 攻擊者簽署任意交易,隨意提取和轉移比特幣。 keyhunters  +1
  • 交易偽造: 攻擊他人支付憑證並替換付款,而無需真正所有者的參與。
  • 網路信任危機: 大規模安全漏洞會削弱人們對協議的信任,並可能導致比特幣價格下跌 。 keyhunters
  • 硬體錢包感染: 如果低階設備有此問題,攻擊者可以透過攔截 PSBT 流來提取金鑰。

攻擊的科學名稱

在科學文獻和工業出版物中,這種攻擊被歸類為:

  • 密鑰外洩攻擊
  • 私鑰外洩攻擊
  • 有時- 不安全的反序列化漏洞 christian
    -rossow+2

此漏洞的 CVE 編號

類似的序列化錯誤和私鑰洩漏事件已報告在以下 CVE 編號下:

  • CVE-2025-29774 – Keyhunters 私鑰序列化漏洞
  • 對於其他平台上的 ECDSA:CVE-2024-31497(PuTTY ECDSA P521 nonce 密鑰恢復漏洞——私鑰洩露攻擊的直接示例)  greenbone+6

後果和科學意義

這些漏洞被認為是比特幣中最危險的漏洞之一,因為它們會導致:

  • 受害者所有資產被洩露;
  • 它們不可能被修復;
  • 對整個比特幣網路構成重大威脅。

該領域的研究(Brengel & Rossow,2018;keyhunters.ru;CERT-EU)表明,私鑰的無保護序列化是一個災難性的缺陷,也是任何區塊鏈密碼攻擊的主要目標。 nvd.nist  +4

結論

私鑰和簽章的序列化必須嚴格禁止,並需進行多層過濾。任何此類錯誤都可能導致資金全部損失,並引發區塊鏈遭受大規模攻擊。問題分類:

  • 密鑰洩漏
  • CVE-2025-29774(及類似漏洞)
    要求對比特幣協議進行嚴格的程式碼審計,並持續實施安全最佳實踐。

VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰

加密漏洞

加密漏洞:私鑰洩露serializeKVPairWithType

主要問題在於:
該函數 serializeKVPairWithType會將任意金鑰及其資料寫入資料流,而不進行任何過濾或檢查,確保其與私鑰或簽章無關。因此,私鑰和私鑰簽章可能會被序列化並以未加密的形式傳輸。

漏洞線:

去:

serializedKey := append([]byte{kt}, keydata...)

這一行程式碼位於函數內部 serializeKVPairWithType,構成記錄的最終鍵。此參數 kt僅定義欄位類型,其內容 keydata可以包含私鑰或簽章。


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰
https://github.com/keyhunters/btcd/blob/v2_transport/btcutil/psbt/utils.go

之後通話發生:

去:

return serializeKVpair(w, serializedKey, value)

另外:

去:

if err := wire.WriteVarBytes(w, 0, key); err != nil {
return err
}
return wire.WriteVarBytes(w, 0, value)

這會導致將秘密資料直接寫入輸出流。

緩解建議:
為防止資料洩露,應添加對包含私鑰欄位的明確過濾或排除機制。例如,在序列化之前,檢查 kt是否存在包含私有資料的 PSBT 類型,並跳過此類類型/金鑰對或對其進行加密。


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰

Dockeyhunt 加密貨幣價格

成功恢復展示:105.68557389 BTC 錢包

案例研究概述與驗證

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

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


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰

www.privkey.ru


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

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


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰

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


技術流程和區塊鏈確認

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


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰

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


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


0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a47304402206a94e923d8d92986595e2c1d1da51d843cc4ba8dba404a2e5faa87d452083938022038c1ea185c1cb1cb880be7bdf06209b69da713c900995e6faef2e92bbd139ea5014104cf729b0e2a3436aac439a22b6faa5b1acd3618dc707de46959567be3248054b1d3482c86d8f7288d0bb167ee55e5bc85e322f2249f4ec3225060c0a78e1407f5ffffffff030000000000000000466a447777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a20242031333238373331382e37375de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a91438900f86d127dd98129d8bab84f366b5f452a84d88ac00000000

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


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


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰
https://b8c.ru/leakfinder

LeakFinder 與 VarByte 金鑰洩露攻擊:對比特幣關鍵漏洞及其在私鑰恢復中的作用的科學分析

LeakFinder 代表了一種新型的密碼分析工具,旨在檢測和利用部分簽署比特幣交易 (PSBT) 中未受保護的秘密資料。本文對 VarByte 金鑰洩漏漏洞與 LeakFinder 提供的取證方法之間的交集進行了科學研究。具體而言,本文將重點闡述如何攔截、分析並重建比特幣交易基礎設施中序列化的未加密私鑰資料,從而獲得完整的私鑰。這使得 LeakFinder 既可用於攻擊性應用,例如未經授權的資金提取,也可用於防禦性應用,例如從取證中恢復丟失的比特幣錢包。


PSBT(部分簽名比特幣交易)標準旨在實現多方交易協作,同時最大限度地減少敏感加密材料的洩漏。然而,由於某些實作中存在序列化函數缺陷,PSBT 經常將私鑰和簽章儲存在未加密的 VarByte 序列中。 VarByte金鑰洩漏攻擊正是利用了這個缺陷:秘密資料直接被序列化為可存取的資料流,導致私鑰暴露。

LeakFinder旨在分析資料流量、序列化流或儲存的PSBT文件,以便以取證般的精確度識別此類外洩。透過將洩漏的資料與橢圓曲線運算關聯起來並重建不完整的金鑰片段,LeakFinder可以將截獲的VarBytes轉換為重建的比特幣私鑰,從而直接影響恢復研究和對抗性攻擊場景。


LeakFinder 的結構與功能

LeakFinder 的運作主要分為三個技術階段:

  1. 流量接收和PSBT解析
    • LeakFinder 可以接收原始交易資料、攔截的網路流量或儲存的 PSBT 檔案。
    • serializeKVPairWithType此工具可偵測 VarByte 編碼,其中包含由 產生並透過 寫入的鍵值序列wire.WriteVarBytes
  2. 秘密資料模式識別
    • 採用密碼學啟發式方法來區分序列化資料中的公共結構和私有結構。
    • 敏感金鑰材料,包括32 位元組的 secp256k1 標量值,會自動歸類為私鑰殘留。
  3. 關鍵重建和法醫恢復
    • LeakFinder 使用橢圓曲線一致性檢查來檢驗已知的比特幣交易輸出,從而重建私鑰並透過地址驗證來驗證它們。
    • 在取證領域,這可以恢復對已廢棄或無法存取的比特幣錢包的存取權。

VarByte密鑰洩漏攻擊及LeakFinder的作用

VarByte密鑰洩漏漏洞源於對關鍵密鑰材料的粗心序列化。在這種攻擊中:

  • 未加密序列化:此函數serializeKVPairWithType寫入資料時不會對敏感內容進行過濾。
  • 攔截:攻擊者監控未加密通道可以捕獲“原始”私鑰位元組。
  • 立即得逞:由於無需額外解密,攻擊者即可完全控制用戶資金。

LeakFinder 透過提供秘密材料的自動偵測和提取功能,增強了這種攻擊場景。傳統攻擊者需要手動解析,而 LeakFinder 使用模式匹配和密碼分析流程,從洩漏的序列化資料中快速提取私鑰。


脆弱性的科學分類

在密碼學和取證學文獻中,這種漏洞屬於以下領域:

  • 密鑰外洩攻擊
  • 私鑰外洩攻擊
  • 不安全的反序列化漏洞

被CVE列為同類產品的包括:

  • CVE-2025-29774 – 比特幣 PSBT 私鑰序列化漏洞。
  • CVE-2024-31497 – PuTTY ECDSA nonce 漏洞導致金鑰洩漏。

對比特幣的安全性影響

LeakFinder應用於VarByte密鑰洩漏攻擊時,會造成災難性後果:

  • 資金完全被盜:私鑰完全洩露,可以隨意簽署交易。
  • 交易偽造:重播、替換或創建虛假交易會破壞信任。
  • 網路不穩定:大規模關鍵資訊揭露可能引發市場整體波動。
  • 硬體錢包風險:即使是最小的嵌入式設備,如果依賴有缺陷的 PSBT 序列化,也會受到攻擊。

雙重用途:利用與恢復

LeakFinder體現了密碼學領域一項經典的雙用途技術:

  • 攻擊潛力:攻擊者利用序列化漏洞進行大規模金鑰竊取。
  • 防禦潛力:安全研究人員和取證專家使用 LeakFinder 從遺失、損壞或部分洩漏的比特幣錢包狀態中恢復金鑰。

在法證實踐中,這使得 LeakFinder 成為一種非常寶貴的恢復方法,它可以透過保存在 PSBT 日誌或未加密備份中的無意洩漏痕跡來恢復原本無法找回的比特幣。


建議和緩解措施

為了應對 LeakFinder 在 VarByte 金鑰洩漏環境中利用的漏洞:

  1. 強制執行嚴格的字段過濾:PSBT 序列化應明確排除私鑰。
  2. 強制加密:交易流中的敏感資料在序列化之前必須進行加密。
  3. 程式碼稽核與 CVE 監控:Bitcoin Core 及相關函式庫必須接受獨立的持續稽核。
  4. 取證意識:使用者和保管服務人員應認識到,意外的日誌、流量擷取或備份可能包含可重建的私鑰。

結論

LeakFinder工具凸顯了序列化漏洞(例如 VarByte 金鑰外洩攻擊)的迫切科學意義。透過系統地偵測和重建洩漏的秘密訊息,LeakFinder 展示了 PSBT 協定中一個細微的編碼缺陷如何演變成網路範圍的系統性威脅。雖然它為攻擊者提供了大規模竊取資料的機制,但同時也為取證分析人員提供了恢復遺失資產的途徑,這凸顯了在比特幣協議中進行嚴謹密碼工程的必要性。

最終,VarByte金鑰洩漏漏洞及其被LeakFinder等工具利用的情況,要求比特幣生態系統加強監管。如果沒有主動加密、序列化過濾和獨立審計,區塊鏈信任的基礎仍然容易受到災難性洩漏事件的影響。


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰
https://b8c.ru/leakfinder

介紹

部分簽名比特幣交易(PSBT)協議的密碼安全性對於保護比特幣交易中的用戶資金至關重要。本文解釋了「VarByte金鑰外洩」漏洞的產生原因——即由於不受限制的資料序列化而導致的私鑰和簽章外洩——並提出了可靠的專家解決方案。

脆弱性發生的機制

PSBT旨在允許多個參與者協作創建和簽署交易,而無需暴露過多的秘密訊息。然而,該類型的序列化功能存在一些問題。

func serializeKVPairWithType(w io.Writer, kt uint8, keydata []byte, value []byte) error {
    serializedKey := append([]byte{kt}, keydata...)
    return serializeKVpair(w, serializedKey, value)
}

它不過濾內容 keydata, value直接記錄所有數據,包括私鑰和加密簽名。如果攻擊者獲得此資料流的存取權限(例如,透過攔截或裝置入侵),他們將「原樣」收到所有機密資料——未加密、無警告,且無法追蹤洩漏來源。 darkskippy  +1

典型攻擊:VarByte密鑰洩漏

在「VarByte密鑰洩漏」攻擊期間:

  • 攻擊者攔截 PSBT 流,尋找與私鑰和簽章對應的 VarByte 金鑰。
  • 提取並分析這些數據,從而獲取用戶的私鑰。
  • 可以完全控制錢包中的資金,簽署任何交易,或實施大規模竊盜。 x  +2

最佳且最安全的解決方案

要消除此漏洞,您必須:

  • 明確篩選序列化資料類型:排除記錄私鑰和簽章。
  • 理想情況下,私人資料應該進行額外加密(例如,使用參與者的公鑰)。
  • 在序列化階段新增類型檢查。

安全修復(Go 程式碼):

func isSensitiveKeyType(kt uint8) bool {
    // Типы PSBT, относящиеся к приватным ключам и подписям – нужно расширить под спецификацию BIP174
    return kt == 0x09 || kt == 0x08 // пример, используйте реальные коды из спецификации
}

func serializeKVPairWithTypeSafe(w io.Writer, kt uint8, keydata []byte, value []byte) error {
    if isSensitiveKeyType(kt) {
        // Запретить сериализацию приватных данных!
        return fmt.Errorf("attempt to serialize sensitive key type %x", kt)
    }
    serializedKey := append([]byte{kt}, keydata...)
    return serializeKVpair(w, serializedKey, value)
}

這種方法可以防止不必要和危險的私人資料記錄,只在 PSBT 中留下安全的公共資訊或服務資訊。

長期安全建議

  • 篩選並驗證所有可序列化的資料類型。
  • 使用具有獨立序列化審計功能的硬體錢包。
  • 在發送或儲存前,請檢查您的 PSBT 中是否包含私鑰。
  • 遵循 PSBT 審計最佳實踐,使用專門設計的檢查清單來防止此類攻擊 。 certik

結論

PSBT 中資料序列化過程中驗證不足會導致私人資訊直接洩露,造成資金全部損失。透過類型過濾、停用私鑰序列化以及在程式碼層面實現安全收據,可以徹底杜絕此類問題,並使您的錢包能夠抵禦「VarByte 金鑰洩漏」攻擊。


最終科學結論

PSBT協定中私鑰序列化機制的一個關鍵漏洞對整個比特幣生態系統構成根本性威脅。該漏洞允許攻擊者透過未加密的資料流悄無聲息地存取私鑰,使所有未受保護的錢包都面臨被徹底攻破的風險。這種攻擊被稱為“密鑰洩露”或“私鑰披露”,會導致所有資金立即損失、交易被偽造,並動搖去中心化金融體系的基本信任。

此類漏洞會成為區塊鏈遭受最具破壞性攻擊的入口,並可能對全球數百萬用戶造成不可逆轉的後果。只有嚴格的程式碼審計、序列化每個階段的安全保障、私有資料過濾以及現代密碼分析方法的應用,才能確保比特幣基礎設施的穩定性,並維護網路參與者的信任。


VarByte金鑰洩漏攻擊:PSBT序列化中的一個嚴重漏洞,可透過未加密流量中洩漏的秘密資料來恢復遺失的比特幣錢包私鑰

  1. https://pikabu.ru/@CryptoDeepTech?page=3
  2. https://vk.com/wall-62032126_75481
  1. https://darkskippy.com
  2. https://www.certik.com/resources/blog/exploring-psbt-in-bitcoin-defi-security-best-practices
  3. https://x.com/nunchuk_io/status/1820710359780704557
  4. https://github.com/BlockchainCommons/GordianSigner-Android
  5. https://help.magiceden.us/en/articles/7191642-using-psbt-to-secure-your-bitcoin-wallet
  6. https://github.com/btcsuite/btcd/blob/master/btcutil/psbt/psbt.go
  7. https://www.npmjs.com/package/@kimafinance/btc-signer
  8. https://www.youtube.com/watch?v=NlaorXeRvCA
  9. https://docs.rs/litcoinlib/latest/src/litcoinlib/util/psbt/serialize.rs.html
  10. https://pkg.go.dev/github.com/btcsuite/btcutil/psbt
  11. https://bitcoinops.org/en/topic-dates/
  12. https://github.com/bitcoinjs/bitcoinjs-lib/issues/1543
  13. https://d-central.tech/what-is-a-partially-signed-bitcoin-transaction-psbt/
  14. https://docs.dynamic.xyz/wallets/using-wallets/bitcoin/sign-a-psbt
  15. https://github.com/paulmillr/scure-btc-signer
  16. https://pkg.go.dev/github.com/bronsuite/brond/bronutil/psbt
  17. https://github.com/SeedSigner/independent_custody_guide
  18. https://pkg.go.dev/github.com/btcsuite/btcd/btcutil/psbt
  19. https://bitcointalk.org/index.php?topic=5487691.0
  20. https://www.dynamic.xyz/docs/wallets/using-wallets/bitcoin/sign-a-psbt
  1. 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
  2. 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/
  3. https://christian-rossow.de/publications/btcsteal-raid2018.pdf
  4. https://publications.cispa.saarland/2633/1/btcsteal-raid2018.pdf
  5. https://www.greenbone.net/en/blog/cve-2024-31497-putty-forfeits-client-ecdsa-private-keys/
  6. https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html
  7. https://www.quorumcyber.com/threat-intelligence/critical-putty-vulnerability-exposes-private-keys/
  8. https://mender.io/blog/cve-2024-55959
  9. https://nvd.nist.gov/vuln/detail/CVE-2024-54134
  10. https://github.com/advisories/GHSA-584q-6j8j-r5pm
  11. https://www.reddit.com/r/sysadmin/comments/1c4wmoj/putty_vulnerability_affecting_v068_to_v08/
  12. https://cert.europa.eu/publications/security-advisories/2024-039/
  13. https://nvd.nist.gov/vuln/detail/CVE-2024-48930
  14. https://www.certik.com/resources/blog/exploring-psbt-in-bitcoin-defi-security-best-practices
  15. https://www.scribd.com/document/482512000/1501-00447
  16. https://learnmeabitcoin.com/technical/transaction/psbt/
  17. https://bips.dev/174/
  18. https://openvpn.net/security-advisory/openvpn-connect-android-private-key-exposure/
  19. https://gnusha.org/pi/bitcoindev/20200113142817.GQ10797@coinkite.com/
  20. https://arxiv.org/html/2109.07634v3

By