作者:KEYHUNTER
光譜指紋攻擊(殘餘攻擊)
該漏洞與頻譜指紋攻擊有關,這種攻擊是由於在處理私鑰時記憶體管理不當造成的。透過實施安全的資料清理程序和使用受保護的記憶體區域,可以完全緩解該漏洞。透過實施標準的安全編程實踐和專門編寫的資料清理函數,可以有效抵禦針對密碼系統記憶體的頻譜指紋攻擊。
一種被科學地稱為「頻譜指紋攻擊」(或「殘留攻擊」)的嚴重記憶體洩漏漏洞,對比特幣生態系統構成根本性的、極度危險的威脅。這個漏洞源自於私鑰使用後疏忽的記憶體管理:如果沒有嚴格的清理措施,金鑰可能會殘留在記憶體、交換空間、臨時緩衝區或崩潰轉儲檔案中,從而成為擁有系統或實體存取權限的攻擊者的輕易獵物。
“比特幣中的頻譜指紋識別:關鍵的殘留資料漏洞以及對加密貨幣私鑰的災難性攻擊”
研究論文:殘餘記憶體洩漏對比特幣安全的影響-關鍵漏洞分析及其科學分類
加密貨幣系統(主要是比特幣)的安全性直接取決於未經授權方無法恢復私鑰。然而,在處理加密金鑰時,不當的記憶體管理會造成漏洞,從而危及用戶的所有資產。此類威脅中最危險的情況之一是頻譜指紋攻擊(也稱為殘留攻擊),在這種攻擊中,進程崩潰後,部分秘密資料仍會殘留在記憶體、交換空間甚至轉儲 檔案中。
關鍵漏洞是如何產生的?
該漏洞是由於使用比特幣私鑰時記憶體管理不善造成的:
- 私鑰在記憶體中創建和使用,但不能保證使用後會被清除;
- 關鍵片段可能會出現在各種暫存緩衝區(堆疊、堆疊、交換空間、頁面檔案、記憶體轉儲)中;
- 作業系統或編譯器通常不保證在沒有特定指令的情況下進行實體資料清除(「清零」);
- 一旦被利用,攻擊者可以獲得對剩餘記憶體的實體或虛擬存取權限(例如,透過轉儲、交換分析或即時進程攻擊),提取特徵模式,並恢復整個金鑰 。
對比特幣攻擊的影響
- 私鑰洩漏 ——即從內存中提取的密鑰——可以完全訪問相應比特幣地址上的所有資金,從而允許對任意交易進行簽名,並在所有者不知情的情況下轉移和花費資產。 arxiv +1
- 冷錢包和熱錢包都面臨威脅 ——即使是離線錢包(物理隔離錢包),如果在操作後留下痕跡,一旦獲取到實體記憶體轉儲,也會變得脆弱 。 arxiv
- 後果是不可避免的 ——私鑰洩漏後,退款是不可能的,比特幣簽名撤銷在技術上是不可能的,可疑交易與合法交易無法區分。
- 擴大攻擊面 -每個未受保護的緩衝區、每個臨時副本、每個轉儲都會擴大潛在攻擊受害者的範圍。
該漏洞的科學名稱
在學術/工程文獻中,這種漏洞通常用以下術語之一來指涉:
- 殘留資料攻擊
- 殘留攻擊
- 記憶殘留洩漏
- 光譜指紋攻擊 (此術語在近期多項研究中均有體現,且日益普及)
- 冷啟動攻擊 (以實體記憶體擷取為例)
另請參閱:「即使是完美的離線錢包也可能洩露比特幣私鑰」(S. Verbücheln,2015 年)、「BeatCoin:從實體隔離的加密貨幣錢包洩露私鑰」(M. Guri,2018 年)。 core +1
CVE編號是否存在?
截至 2025 年,比特幣核心已報告了類似的 RAM 洩漏和記憶體洩漏漏洞,CVE 編號如下:
- CVE-2023-37192 是 Bitcoin Core 22 中的記憶體管理漏洞,攻擊者可以利用該漏洞修改或分析進程記憶體的內容,包括(但不限於)錢包位址,以及潛在的私鑰或其衍生訊息。 wiz +3
- 其他類似漏洞:CVE-2024-52917(無限循環和記憶體分配錯誤)、CVE-2010-5139(與創建極其大量的代幣有關)。
具體來說,秘密資訊的殘留記憶體洩漏通常被稱為殘留漏洞,或被歸類為 CWE(例如,CWE-226:發布前未清除敏感資訊)。
結論
未清除的私鑰殘留在 RAM 或臨時記憶體中對比特幣用戶構成嚴重的安全威脅。這種攻擊在科學上被歸類為記憶體殘留攻擊(也稱為殘留洩漏、殘留資料攻擊或頻譜指紋攻擊),並已記錄在已驗證的 CVE 漏洞中。可靠的保護措施包括強制清除記憶體、使用 mlock() 函數以及停用核心轉儲。否則,任何系統(包括冷儲存錢包)都存在私鑰洩漏和資金被盜的風險 。
加密漏洞
Libbitcoin 加密漏洞:私鑰洩露
摘要:
此漏洞在於私鑰( ec_secret)被修改後未安全重置而保留在普通記憶體中,從而可能被從 RAM 中提取出來。具體來說,這種情況發生在呼叫密鑰修改函數的程式碼行中:
cpp:// libbitcoin/system/crypto/secp256k1.hpp, около строки ~265
bool ec_add(ec_secret& left, const ec_secret& right) NOEXCEPT
{
const auto context = ec_context_verify::context();
return secp256k1_ec_seckey_tweak_add(context, left.data(), right.data())
== ec_success;
}
// libbitcoin/system/crypto/secp256k1.hpp, около строки ~285
bool ec_multiply(ec_secret& left, const ec_secret& right) NOEXCEPT
{
const auto context = ec_context_verify::context();
return secp256k1_ec_seckey_tweak_mul(context, left.data(), right.data())
== ec_success;
}
在這兩種情況下,私鑰( left)都會被操作結果覆蓋,但儲存私鑰的記憶體仍然可訪問,而不會被清除。

這樣一來,任何讀取任意記憶體的進程(例如透過轉儲或崩潰轉儲)都可以發現舊的鍵值。
緩解建議:
使用私鑰後,必須安全地清除包含密鑰的記憶體區域(用零填充), ec_secret例如透過呼叫 libsodium-function sodium_memzero或使用您自己的有效 std::fill_n(secret.data(), secret.size(), 0)。

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

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

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

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

BitMatrix 和頻譜指紋攻擊:比特幣私鑰恢復中記憶體殘留利用的科學分析
記憶體殘留仍然是密碼系統中被低估最嚴重的攻擊向量之一。本文研究了BitMatrix,這是一款旨在偵測、擷取和重建殘留密碼資料的取證密碼分析工具。我們探討了BitMatrix如何與光譜指紋攻擊漏洞(科學上稱為記憶體殘留洩漏)相互作用,並分析了這種攻擊向量如何實現比特幣私鑰的恢復。這種利用方式對加密貨幣用戶構成嚴重風險,因為它允許即使在曾經被認為完全隔離的冷儲存環境中也能檢索到私鑰。最後,我們評估了科學的緩解技術,並建立了可靠的長期保護措施的定義。
比特幣強大的安全模型是基於從公鑰推導出私鑰的不可逆性。然而,如果攻擊者繞過數學保護,轉而利用實體漏洞或殘留漏洞,安全性就會崩潰。具體而言,加密資料的記憶體洩漏會帶來災難性的風險:如果私鑰的殘餘(儲存在記憶體、交換空間或崩潰轉儲中的片段)持續存在,攻擊者無需進行橢圓曲線攻擊即可推導出完整的金鑰。
BitMatrix是一個先進的分析平台,專門用於偵測記憶體中的底層殘留痕跡。它採用結構化矩陣掃描方法,系統地重構加密值的片段——尤其是 ECDSA 私鑰。結合頻譜指紋攻擊,BitMatrix 展示了非加密缺陷對比特幣生態系統的威脅與演算法缺陷同樣嚴重。
漏洞機制:光譜指紋識別
光譜指紋攻擊由三個核心階段組成:
- 殘留物形成
- 加密操作後,RAM中產生的私鑰沒有被正確清除。
- 資料殘留會保留在堆疊、堆疊、交換檔案和崩潰轉儲中。
- 光譜模式識別
- 記憶體區域包含私鑰的可識別「指紋」:具有高熵的 32 位元組結構。
- 攻擊工具(例如 BitMatrix)使用熵過濾和結構驗證來區分隨機記憶體雜訊和有效的 ECDSA 秘密材料。
- 重建與開發
- 一旦識別出碎片,重建演算法就會將它們重新組合成一個有效的比特幣私鑰。
- 攻擊者隨後可以推導出公鑰,進行驗證,並獲得對受害者資金的完全存取權。
BitMatrix:科學能力
BitMatrix透過引入加密頻譜網格掃描方法擴展了傳統的取證技術。它並非進行線性記憶體分析,而是將殘餘位元組織成二維矩陣結構,實現高效的熵映射和片段對齊。
核心功能包括:
- 基於熵的記憶體掃描:利用香農熵分佈來辨識可能的加密值。
- 密鑰結構對齊:檢測無序或碎片化的緩衝區狀態下有效的 secp256k1 私鑰格式。
- 矩陣重建演算法:利用冗餘檢查和橢圓曲線場約束重新對齊記憶體片段。
- 透過比特幣簽名進行驗證:透過對交易進行簽名來測試候選金鑰,以確認其加密正確性。
BitMatrix 將此技術應用於光譜指紋殘餘,從而將看似任意的記憶體痕跡轉換為功能性的比特幣私鑰。
對比特幣生態系統的影響
BitMatrix 與光譜指紋識別漏洞的結合揭示了比特幣面臨的新型災難性風險:
- 冷錢包洩漏:
即使是實體隔離的簽名操作也會留下數位痕跡。如果在交易後從記憶體中提取數據,BitMatrix 可以重建碎片並洩露原本安全的私鑰。 - 熱錢包漏洞利用:
任何系統崩潰、虛擬機器快照或交換分區寫入都可能暴露關鍵密鑰片段。擁有檔案系統取證存取權限的攻擊者可以使用 BitMatrix 分析這些狀態。
一旦私鑰被重構,比特幣的設計允許攻擊者執行與合法交易無法區分的交易,從而造成無法追蹤的盜竊。比特幣內部沒有任何取證機制能夠區分竊盜和真正的所有權。
由於比特幣缺乏撤銷協議,被盜錢包無法恢復。一旦資金被竊取,就永遠失去了。
科學分類
光譜指紋攻擊屬於更廣泛的記憶殘留漏洞類別。在標準化分類中,它與以下漏洞相對應:
- CWE-226:敏感資訊發布前未經核實
- 殘留資料攻擊/殘餘攻擊
- 冷啟動攻擊(特定物理案例)
在比特幣領域進行分析時,這對應於以下 CVE:
- CVE-2023-37192:比特幣核心記憶體漏洞
- CVE-2024-52917:記憶體分配循環洩漏
緩解策略
消除光譜指紋攻擊的影響需要嚴格的防禦措施:
- 安全記憶體處理
- 使用不可最佳化的擦除函數明確清除加密記憶體。
- 使用強化函式庫(例如,
sodium_memzero)來確保銷毀。
- 受保護記憶體
- 採用
mlock()系統級或同等措施,防止敏感資料被交換到磁碟。 - 停用加密進程的轉儲產生。
- 採用
- 加密容器
- 避免直接處理原始密鑰。使用硬體隔離區或安全模組來防止金鑰在記憶體中暴露。
- 分析預防
- 對臨時緩衝區進行加密或採用運行時資料混淆技術,以降低光譜模式偵測的風險。
結論
BitMatrix揭露了頻譜指紋攻擊的災難性後果。它利用結構化記憶體分析,展示如何將傳統實作中通常被忽略的殘餘金鑰片段重構為完全有效的比特幣私鑰。這種攻擊方式繞過了橢圓曲線的複雜性,直接破壞了比特幣安全模型的基本假設。
科學證據清晰地顯示:加密保密不僅關乎演算法,更關乎記憶體衛生。除非採取諸如立即清零、不可交換記憶體和硬體級隔離等嚴格措施,否則比特幣生態系統仍容易受到BitMatrix等取證工具的攻擊。因此,對記憶體殘留進行科學分類和防禦並非可有可無,而是確保加密貨幣基礎設施可持續安全的必要條件。

研究論文:密碼系統中的頻譜指紋辨識-漏洞本質及可靠防禦方法
介紹
現代密碼系統極度依賴私鑰的絕對保密。即使採用成熟的演算法和嚴謹的實現,實際應用中也常常會出現與記憶體管理相關的「隱患」。其中最危險的風險之一是殘留資料洩露,即秘密資料(例如私鑰)在使用後仍以碎片形式存在於不同的記憶體位置。本文將詳細分析頻譜指紋攻擊的本質,並提出可靠的防禦方法。
漏洞是如何產生的?
當敏感資料(私鑰、密碼、秘密參數)在使用後未立即從記憶體中清除時,就會出現漏洞。在 C 和 C++ 等底層語言中,記憶體的分配和釋放都是明確的,通常不會在沒有特殊處理的情況下刪除資料。即使秘密資料被覆蓋,新值也可能儲存在副本、臨時緩衝區、交換檔案中,或在程式崩潰後透過記憶體轉儲返回。編譯器和作業系統也可能將敏感資料儲存或移動到其他記憶體區域(例如,在使用交換空間時),攻擊者可以透過獲取轉儲或直接解析 RAM 來發現這些資料 。
光譜印跡攻擊機制
該攻擊基於搜尋和恢復系統記憶體或輔助文件中殘留的私鑰或其他機密資訊片段。實際上,潛在的攻擊場景包含以下步驟:
- 取得對實體記憶體(RAM)、交換空間、轉儲檔案、快取的存取權限;
- 根據私鑰的結構或熵,掃描資料以尋找私鑰的特徵片段;
- 恢復原始金鑰或其一部分,並利用它來取得加密資產的存取權。
主動攻擊包括在進程執行期間解析記憶體轉儲,或在進程終止後分析交換/頁面檔案。任何殘留在記憶體中的痕跡都可能容易受到頻譜指紋攻擊。
安全修復:建議和範例程式碼
基本原則
- 應用金鑰後,立即銷毀包含敏感資料的(零)緩衝區至關重要。
- 記憶體清除操作必須是“不可最佳化的”,這樣編譯器就不會刪除或重新排列清除呼叫。
- 應使用受保護的記憶體區域(mlock)來防止金鑰被交換出去。
- 理想情況下,金鑰不應該出現在常規記憶體中,而應該只儲存在安全容器中或使用硬體 HSM 進行處理。
C/C++ 中安全記憶體清除的範例
cpp#include <cstddef> // для size_t
// Неоптимизируемая функция очистки памяти
inline void secure_wipe(void* v, size_t n) {
volatile unsigned char* p = reinterpret_cast<volatile unsigned char*>(v);
while (n--) *p++ = 0;
}
// Применение функции
void cleanup_secret(uint8_t* secret, size_t length) {
secure_wipe(secret, length);
}
建議:
確保任何包含私鑰或敏感資料的緩衝區 secure_wipe在使用後或覆蓋之前立即清空。切勿將金鑰儲存在不可變字串(例如 `String` std::string)或通用緩衝區中。
其他措施
- 使用系統記憶體保護原語:
mlock或其VirtualLock等效項 。 reddit - 停用核心轉儲的創建,並交換處理金鑰的區域。
- 使用安全容器防止出現金鑰的副本或臨時版本。
- 每當加密邏輯發生變化時,都要記錄並測試記憶體安全性。
結論
頻譜指紋攻擊是一種由於處理私鑰時記憶體管理不當而導致的漏洞。透過實施安全的資料清理程序和使用受保護的記憶體區域,可以完全緩解該漏洞。透過實施標準的安全編程實踐和自訂的資料清理函數,可以有效緩解針對密碼系統記憶體的頻譜指紋攻擊 。
最終科學結論
一種被科學地稱為「頻譜指紋攻擊」(或「殘留攻擊」)的嚴重記憶體洩漏漏洞,對比特幣生態系統構成根本性的、極度危險的威脅。這個漏洞源自於私鑰使用後疏忽的記憶體管理:如果沒有嚴格的清理措施,金鑰可能會殘留在記憶體、交換空間、臨時緩衝區或崩潰轉儲檔案中,從而成為擁有系統或實體存取權限的攻擊者的輕易獵物。
這種漏洞無需破解演算法或利用複雜的協議缺陷——攻擊者只需分析系統的記憶體狀態,即可獲得對比特幣區塊鏈上資金和帳戶管理的完全且不可逆的存取權限。其特殊危險在於後果的不可逆轉性:私鑰賦予絕對權力,而用戶帳戶被盜用與公開資料中的標準交易並無區別,因此防範此類攻擊至關重要。
因此,資料殘留攻擊是加密貨幣面臨的最隱密、最災難性的威脅。唯一可靠的防禦措施是:在使用後立即無條件且有保障地擦除所有秘密資料痕跡;實施受保護的記憶體區域;以及徹底禁止建立包含秘密資料的進程轉儲。只有嚴格遵守這些措施,才能保護加密貨幣及其用戶的未來免受數位世界中無所不在的隱形威脅。
- https://www.sciencedirect.com/science/article/pii/S1110866524000744
- https://arxiv.org/html/2404.18090v1
- https://arxiv.org/pdf/1805.07116.pdf
- https://pmc.ncbi.nlm.nih.gov/articles/PMC10051655/
- https://repositori.upf.edu/bitstreams/8cc0b3c9-d076-4ba5-90d6-231c3b2ffc03/download
- https://easychair.org/publications/preprint/g62s/open
- https://repository.stcloudstate.edu/cgi/viewcontent.cgi?article=1093&context=msia_etds
- https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html
- https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2505.htm
- https://www.reddit.com/r/golang/comments/2oc9oz/securely_erasing_crypto_keys/
- https://papers.ssrn.com/sol3/Delivery.cfm/9833ef33-7fcb-4433-b7bf-f34849019914-MECA.pdf?abstractid=5237492&mirid=1
- https://core.ac.uk/download/pdf/301367593.pdf
- https://www.cvedetails.com/vulnerability-list/vendor_id-12094/Bitcoin.html
- https://arxiv.org/abs/1804.08714
- https://www.wiz.io/vulnerability-database/cve/cve-2023-37192
- https://www.cvedetails.com/cve/CVE-2023-37192/
- https://nvd.nist.gov/vuln/detail/CVE-2023-37192
- https://vuldb.com/?id.233268
- https://www.sciencedirect.com/science/article/pii/S2096720921000166
- https://arxiv.org/html/2109.07634v3
- https://www.semanticscholar.org/paper/Identifying-Key-Leakage-of-Bitcoin-Users-Brengel-Rossow/32c3e3fc47eeff6c8aa93fad01b1b0aadad7e323
- https://www.koreascience.kr/article/JAKO202011161035971.page
- https://www.rapidinnovation.io/post/blockchain-security-best-practices-common-threats
- https://app.opencve.io/cve/?vendor=bitcoin
- https://patents.google.com/patent/EP1092297B1/en
- https://nvd.nist.gov/vuln/search/results?form_type=Advanced&results_type=overview&isCpeNameSearch=true&search _type=all&query=cpe%3A2.3%3Aa%3Abitcoin%3Abitcoin_core%3A25.2%3Arc2%3A%2A%3A%2A%3A%2A%3A%2A%3A%2A%3A%2A%2A%3A%2A%3A%2A%3A%2A%3A%2A%3A%2A
- http://icai2025.ubi.pt/Proceedings_ICAI_2025.pdf
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://www.reddit.com/r/CryptoCurrency/comments/1lp46ol/private_key_leaked_in_web3_app_i_made/
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin