1. 簡介與概述
Web3建基於去中心化區塊鏈技術,喺DeFi、NFT同遊戲等領域出現爆炸性增長,鎖定總價值高達數十億美元。呢個生態系統嘅一個基本組成部分係Web3認證,係一種挑戰-回應協議,用戶透過其公鑰(錢包地址)進行識別。應用程式會向用戶嘅加密錢包(例如MetaMask)發送一條訊息,用戶用其私鑰簽署,然後應用程式驗證簽名以授予存取權限。
儘管呢個認證過程作為進入Web3應用程式同資產嘅閘道至關重要,但其安全性一直被嚴重忽視。雖然先前嘅研究集中喺智能合約漏洞同DeFi攻擊,但本文指出認證層本身存在一個系統性漏洞,並將其命名為「盲簽訊息攻擊」。
關鍵統計一覽
- 測試嘅Web3認證部署中,有75.8%存在漏洞。
- 29個實際應用程式中,有22個面臨風險。
- 使用Web3AuthGuard嘅攻擊偵測成功率達80%。
- 為已發現漏洞分配咗兩個CVE ID。
2. 盲簽訊息攻擊
2.1 攻擊模型與漏洞
核心漏洞在於用戶無法驗證簽署請求嘅真實來源同意圖。喺典型嘅Web3認證流程中,錢包彈出視窗會顯示一條訊息(通常係隨機數)畀用戶簽署。攻擊利用咗呢條訊息係不透明嘅,而且其來源可以被偽造呢個事實。
攻擊情境:攻擊者創建一個模仿合法Web3應用程式登入頁面嘅惡意網站。當用戶連接其錢包時,惡意網站會將來自目標合法應用程式嘅認證請求(訊息)轉發到用戶嘅錢包。用戶喺其錢包介面中見到一個通用嘅簽署請求,就會盲目簽署。然後,簽名透過攻擊者發送回合法應用程式,授予攻擊者未經授權存取用戶喺該應用程式上嘅帳戶。
2.2 技術機制
呢種攻擊係應用層面嘅一種中間人攻擊形式,但係由錢包-應用程式互動協議中嘅設計缺陷所促成。錢包嘅API(例如eth_requestAccounts、personal_sign)並未強制執行或清晰顯示所有訊息類型嘅請求域名上下文元數據,為用戶創造咗一個「盲點」。
3. 偵測與防禦
3.1 Web3AuthChecker工具
作者開發咗Web3AuthChecker,呢個動態分析工具會自動同Web3應用程式嘅認證相關API互動。佢透過嘗試模擬盲簽訊息攻擊向量——攔截同轉發簽署請求——來探測漏洞,並檢查應用程式嘅會話管理係咪會因為從唔同來源獲得嘅簽名而受到損害。
3.2 MetaMask用Web3AuthGuard
作為客戶端防禦,作者實現咗Web3AuthGuard,呢個瀏覽器擴充功能原型與開源MetaMask錢包整合。其功能係分析簽署請求嘅上下文。佢會比較發起請求嘅域名同訊息內嵌或關聯嘅預期接收域名。如果檢測到唔匹配或可疑嘅轉發模式,就會喺用戶簽署之前向用戶發出警報。
4. 評估與結果
4.1 實驗設置
研究評估咗29個流行嘅Web3應用程式,涵蓋類別包括DeFi平台(例如Uniswap、Aave)、NFT市場(例如OpenSea)同Web3遊戲。部署咗Web3AuthChecker來自動測試佢哋嘅認證端點。
4.2 主要發現與統計數據
結果令人震驚:29個應用程式中,有22個(75.8%)容易受到盲簽訊息攻擊。呢個高普及率表明漏洞係系統性嘅,並非邊緣情況。隨後對Web3AuthGuard嘅評估顯示,佢能夠喺測試嘅80%易受攻擊認證流程中成功觸發警報,證明咗實時用戶保護嘅可行性。
圖表描述(想像):一個柱狀圖會顯示「易受攻擊應用程式(22)」明顯高於「安全應用程式(7)」。第二個圖表會顯示Web3AuthGuard嘅「成功警報」柱覆蓋「已測試易受攻擊流程」柱嘅80%。
5. 技術深入探討
5.1 數學基礎
Web3認證依賴使用橢圓曲線密碼學嘅數位簽名,通常係以太坊使用嘅secp256k1曲線。對公鑰$Q$(從地址導出)嘅訊息$m$上嘅簽名$(r, s)$嘅核心驗證係:
$ \text{Verify}(m, (r, s), Q) = \text{true} \quad \text{if} \quad s^{-1} \cdot (eG + rQ)_x \equiv r \ (\text{mod}\ n) $
其中$e$係訊息$m$嘅哈希值,$G$係生成點,$n$係曲線階數。攻擊並未破解呢個密碼學。相反,佢打破咗協議假設,即$m$係綁定到特定來源/上下文嘅。安全失敗係$ \text{Context}(m) \neq \text{PerceivedContext}_{user} $。
5.2 分析框架示例
案例研究:分析DeFi儀表板登入。
- 步驟1 - 偵察: 使用Web3AuthChecker調用儀表板嘅登入API端點並捕獲挑戰訊息$C_d$。
- 步驟2 - 轉發模擬: 將$C_d$嵌入由模擬惡意網站$M$生成嘅簽署請求中。
- 步驟3 - 簽名提交: 將喺$M$上下文中簽署$C_d$而生成嘅簽名$\sigma$,提交返畀原始儀表板嘅驗證端點。
- 步驟4 - 漏洞確認: 如果儀表板接受$\sigma$並建立會話,則確認盲簽訊息攻擊。漏洞在於儀表板只驗證$\text{Verify}(C_d, \sigma, Q)$,而唔驗證$\text{Origin}(\sigma) == \text{Dashboard}$。
6. 分析師觀點
核心見解: Yan等人嘅論文對Web3行業喺UX安全方面嘅自滿情緒造成沉重打擊。佢揭示咗被吹捧為用戶主權嘅機制——密碼學簽署——存在一個致命嘅UX缺陷,令佢喺網絡釣魚情境中比傳統密碼更唔安全。用戶可以檢測到假嘅密碼欄位;但佢哋無法辨別偽造嘅簽署請求。呢個唔係智能合約漏洞;而係錢包-應用程式握手過程中嘅根本協議層面設計失敗,令人回想起早期網絡缺乏TLS同同源政策嘅情況。
邏輯流程: 研究邏輯無懈可擊。從假設開始(認證訊息可以被惡意轉發),構建一個工具(Web3AuthChecker)進行大規模測試,發現驚人嘅普及率(75.8%),然後設計一個實用對策(Web3AuthGuard)來證明可緩解性。分配CVE將威脅正式化,將其從學術概念轉變為必須修補嘅漏洞。
優點與缺點: 優點在於攻擊向量極其簡單卻先前被忽視,以及其巨大嘅現實世界影響。原型防禦措施係務實嘅。缺點在於,正如許多系統安全研究一樣,Web3AuthGuard只係一個權宜之計。佢喺協議本身應該執行安全性嘅地方增加咗檢查。長期解決方案需要錢包供應商(例如MetaMask)同標準機構(例如EIP-712)強制要求將域名上下文密碼學綁定到可簽署訊息。依賴用戶留意警告已被證明會失敗,數十年嘅網絡釣魚研究就係證據。
可行建議: 對於開發者:立即審核你嘅認證流程。 唔好只係驗證簽名;要透過會話綁定驗證簽名嘅來源係咪匹配你嘅域名。對於錢包構建者:呢個係五級火警。實施具有強制性域名分隔嘅EIP-712結構化數據簽署,並使其成為所有認證請求嘅預設選項。以醒目、危險標誌嘅UI呈現不可信嘅純文本personal_sign請求。對於標準機構:加快制定令轉發攻擊喺密碼學上變得不可能嘅協議,而不僅僅係視覺警告。禮貌建議嘅時代已經結束;價值520億美元嘅DeFi生態系統需要強大嘅安全原語。
7. 未來應用與方向
影響超越登入。任何Web3簽署請求——用於交易、代幣授權、DAO投票——都可能容易受到類似嘅盲轉發攻擊。未來嘅研究同開發必須集中於:
- 協議層面解決方案: 廣泛採用同執行EIP-712及其後續版本,佢哋允許訊息被類型化同結構化,並帶有可驗證嘅域名參數,令佢哋無法被轉發。
- 硬件錢包整合: 將上下文驗證擴展到硬件錢包屏幕,目前硬件錢包屏幕亦只顯示有限嘅訊息數據。
- 認證流程嘅形式化驗證: 應用形式化方法,類似用於智能合約嘅方法(例如喺KEVM框架中),來驗證鏈下認證協議本身嘅安全屬性。
- 機器學習偵測器: 基於Web3AuthChecker等工具,為dApp商店或安全審計員創建持續監控系統,自動標記易受攻擊嘅認證實現。
- 去中心化身份融合: 呢項工作強調咗對更強大嘅DID認證標準(例如W3C可驗證憑證)嘅需求,呢啲標準從一開始就考慮到呢啲攻擊向量。
8. 參考文獻
- Yan, K., Zhang, X., & Diao, W. (2024). Stealing Trust: Unraveling Blind Message Attacks in Web3 Authentication. Proceedings of the 2024 ACM SIGSAC Conference on Computer and Communications Security (CCS’24).
- Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
- MetaMask. https://metamask.io
- EIP-712: Ethereum Typed Structured Data Hashing and Signing. https://eips.ethereum.org/EIPS/eip-712
- Atzei, N., Bartoletti, M., & Cimoli, T. (2017). A survey of attacks on Ethereum smart contracts (SoK). Principles of Security and Trust.
- Zhuang, Y., et al. (2020). Tools and benchmarks for automated log parsing. IEEE International Conference on Software Engineering (ICSE). (Example of rigorous tool evaluation methodology).
- DeFi Llama. Total Value Locked Statistics. https://defillama.com