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