許多使用者習慣將加密貨幣錢包安裝為瀏覽器擴充功能(Extension),認為只要不洩漏私鑰或助記詞,資產就是安全的。然而,比利時 KU Leuven 大學的 DistriNet 安全研究團隊在對 85 款主流錢包(涵蓋約 3,500 萬用戶)的調查中發現,即便沒有程式漏洞(Bug),錢包本身的設計邏輯就足以讓使用者的真實身分與多個匿名地址被關聯,導致隱私完全失效。
這項研究揭示了一個核心問題:目前的 Web3 錢包在追求便利性與相容性時,犧牲了隱私保護。以下將這項研究發現的三大隱私風險,以工程實務的視角為 Junior 工程師詳細分析。
第一大風險:多地址關聯導致的去匿名化
許多進階使用者會建立多個錢包地址,目的是將不同的財務活動(例如:投資、日常消費、隱私交易)分開,實現一種程度的匿名化。但研究發現,錢包在更新餘額時,會頻繁向外部伺服器(如 RPC 節點)發送請求。
問題在於,部分錢包會在單次 API 請求中同時包含多個地址,或者在極短的時間間隔內(毫秒級)連續發送多個地址的請求。對於運行伺服器的端點來說,這種行為模式就像是在告訴伺服器:這幾個地址都屬於同一個人。一旦這些數據被記錄,外部觀察者就能將原本獨立的地址拼湊成同一個人的完整財務畫像。
第二大風險:失效的登出機制與設備指紋
在 Web 開發中,我們習慣認為點擊登出(Logout)或斷開連接(Disconnect)就能清除身分資訊,但在 Web3 擴充錢包的生態中,這往往只是視覺上的欺騙。
首先是設備指紋(Fingerprinting)問題。許多錢包會在頁面加載時主動宣告自己的存在。這意味著網站即使在使用者尚未連接錢包的情況下,也能偵測到你安裝了哪些錢包。這種特徵組合在跨站追蹤中非常強大,且不受 Cookie 清除的影響。
其次是權限撤銷失效。研究發現,許多 Web3 應用在使用者點擊登出時,並未向錢包發送真正的撤銷命令(Revoke Command),僅僅是清空了前端頁面的顯示。更糟糕的是,即便發送了撤銷命令,許多錢包依然忽略該請求,導致網站能持續在後台讀取使用者的地址。由於地址是全球唯一的永久標識符,它成了比 Cookie 更強大的追蹤標籤。
第三大風險:利用隱形框架(iFrame)進行跨站追蹤
這是研究中最嚴重的發現。部分錢包允許在嵌入式框架(iFrame)中回應地址請求。這為攻擊者提供了一條路徑:
假設一個追蹤腳本同時被安裝在一個你曾經授權過的加密貨幣 App A,以及一個普通的第三方網站 B 上。當你訪問網站 B 時,追蹤腳本會在後台悄悄加載一個隱形的 App A 框架。由於你之前已經授權過 App A 訪問你的錢包,錢包會在框架內直接交出你的地址,全程無需你點擊任何確認按鈕。
一旦追蹤者將這個加密地址與網站 B 已有的個資(如電子郵件、真實姓名)關聯,你的匿名加密身份就直接被揭露。
業界的反應與實務建議
令人擔憂的是,當研究人員向錢包廠商回報時,許多廠商並不認為這是 Bug。例如 MetaMask 認為這是已知問題且為了相容性無法立即更改;OKX 則認為這僅是資訊洩漏而非資產盜取,因此風險較低。
對於開發者與使用者,目前的應對方案如下:
使用者端: 定期手動檢查錢包的已連接網站列表,並主動移除不再使用的權限。 針對不同用途使用不同的瀏覽器設定檔(Browser Profile)或獨立的瀏覽器,以隔離指紋與權限。 對於高風險操作,使用一次性錢包(Throwaway Wallet)。
開發端: 實作真正的權限撤銷邏輯,而非僅在前端隱藏 UI。 限制錢包在 iFrame 中的行為,防止被利用於跨站追蹤。 建立統一的 Web3 登出標準,確保權限在各端同步失效。
總結來說,這次研究提醒我們,安全性(Security)不等於隱私(Privacy)。即便錢包能安全地保管私鑰,其交互邏輯若設計不當,依然會讓使用者在透明的區塊鏈世界中完全失去隱私。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。