选择语言

窃取信任:揭秘Web3认证中的盲签名消息攻击

分析Web3认证中一种新型的“盲签名消息攻击”漏洞,通过Web3AuthChecker进行检测,以及使用Web3AuthGuard for MetaMask进行缓解。
tokens-market.com | PDF Size: 0.6 MB
评分: 4.5/5
您的评分
您已经为此文档评过分
PDF文档封面 - 窃取信任:揭秘Web3认证中的盲签名消息攻击

1. 引言与概述

Web3建立在去中心化的区块链技术之上,在DeFi、NFT和游戏等领域经历了爆炸式增长,锁定的总价值高达数百亿美元。该生态系统的一个基本组成部分是Web3认证,这是一种质询-响应协议,用户通过其公钥(钱包地址)进行身份识别。应用程序向用户的加密钱包(例如MetaMask)发送一条消息,用户使用其私钥对该消息进行签名,然后应用程序验证签名以授予访问权限。

尽管该认证流程作为通往Web3应用和资产的门户起着关键作用,但其安全性在很大程度上被忽视了。先前的研究主要集中在智能合约漏洞和DeFi攻击上,而本文则识别了认证层本身存在的一个系统性漏洞,并将其命名为“盲签名消息攻击”

关键统计数据一览

  • 测试的Web3认证部署中,75.8% 存在漏洞。
  • 29个真实应用中有22个面临风险。
  • 使用Web3AuthGuard的攻击检测成功率80%
  • 为发现的漏洞分配了两个CVE编号

2. 盲签名消息攻击

2.1 攻击模型与漏洞

核心漏洞在于用户无法验证签名请求的真实来源和意图。在典型的Web3认证流程中,钱包弹窗会显示一条消息(通常是一个随机数)供用户签名。该攻击利用了以下事实:此消息是不透明的,并且其来源可以被伪造。

攻击场景:攻击者创建一个模仿合法Web3应用登录页面的恶意网站。当用户连接其钱包时,恶意网站将来自目标合法应用的认证请求(消息)转发给用户的钱包。用户在钱包界面中看到一个通用的签名请求,便盲目地签署了它。然后,签名通过攻击者发送回合法应用,从而授予攻击者对该应用上用户账户的未授权访问权限。

2.2 技术机制

该攻击是应用层的一种中间人攻击形式,但它是由钱包与应用交互协议中的设计缺陷促成的。钱包的API(例如 eth_requestAccountspersonal_sign)并未强制要求或清晰显示所有消息类型关于请求域的上下文元数据,从而为用户创造了一个“盲区”。

3. 检测与缓解

3.1 Web3AuthChecker工具

作者开发了Web3AuthChecker,这是一个动态分析工具,可自动与Web3应用的认证相关API进行交互。它通过尝试模拟盲签名消息攻击向量——拦截并中继签名请求——来探测漏洞,并检查应用的会话管理是否可能被从不同来源获取的签名所破坏。

3.2 Web3AuthGuard for MetaMask

作为一种客户端防御措施,作者实现了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认证依赖于使用椭圆曲线密码学的数字签名,通常是Ethereum使用的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. 步骤1 - 侦察: 使用Web3AuthChecker调用仪表板的登录API端点并捕获质询消息$C_d$。
  2. 步骤2 - 中继模拟: 将$C_d$嵌入到一个由模拟恶意站点$M$生成的签名请求中。
  3. 步骤3 - 签名提交: 将在$M$的上下文中签署$C_d$生成的签名$\sigma$,提交回原始仪表板的验证端点。
  4. 步骤4 - 漏洞确认: 如果仪表板接受$\sigma$并建立会话,则确认存在盲签名消息攻击。漏洞在于仪表板仅验证$\text{Verify}(C_d, \sigma, Q)$,而未验证$\text{Origin}(\sigma) == \text{Dashboard}$。

6. 分析师视角

核心见解: Yan等人的论文对Web3行业在用户体验安全方面的自满情绪给予了沉重一击。它揭露了被吹捧为用户主权机制的加密签名,存在一个致命的用户体验缺陷,使其在钓鱼场景中传统密码更不安全。用户可以检测到虚假的密码输入框;但他们无法辨别伪造的签名请求。这不是智能合约漏洞;这是钱包-应用握手过程中根本性的协议级设计失败,让人想起早期网络缺乏TLS和同源策略的时代。

逻辑流程: 研究逻辑无懈可击。从一个假设开始(认证消息可以被恶意中继),构建一个工具(Web3AuthChecker)进行大规模测试,发现惊人的普遍性(75.8%),然后设计一个实用的对策(Web3AuthGuard)来证明可缓解性。分配CVE编号使威胁正式化,将其从学术概念转变为必须修补的漏洞。

优势与不足: 优势在于攻击向量极其简单却先前被忽视,以及其巨大的现实影响。原型防御措施是务实的。不足之处在于,与许多系统安全研究一样,Web3AuthGuard只是一个权宜之计。它在协议本身应强制执行安全性的地方增加了一层检查。长期修复需要钱包提供商(如MetaMask)和标准机构(如EIP-712)强制要求将域上下文加密绑定到可签名消息。依赖用户注意警告已被证明会失败,数十年的钓鱼研究就是明证。

可操作的见解: 对于开发者:立即审计你的认证流程。 不仅要验证签名;还要通过会话绑定验证签名的来源是否与你的域匹配。对于钱包构建者:这是最高级别的警报。实施具有强制性域分离的EIP-712结构化数据签名,并将其设为所有认证请求的默认方式。对不受信任的纯文本personal_sign请求,使用醒目、带有危险标志的UI进行渲染。对于标准机构:加快制定使中继攻击在密码学上不可能实现的协议,而不仅仅是视觉警告。礼貌建议的时代已经结束;价值520亿美元的DeFi生态系统需要健壮的安全原语。

7. 未来应用与方向

其影响超出了登录范畴。任何Web3签名请求——用于交易、代币授权、DAO投票——都可能受到类似的盲中继攻击。未来的研究和开发必须关注:

  1. 协议级解决方案: 广泛采用并强制执行EIP-712及其后续标准,这些标准允许消息被类型化和结构化,并带有可验证的域参数,使其无法被中继。
  2. 硬件钱包集成: 将上下文验证扩展到硬件钱包屏幕,目前这些屏幕也显示有限的消息数据。
  3. 认证流程的形式化验证: 应用形式化方法,类似于用于智能合约的方法(例如在KEVM框架中),以验证链下认证协议本身的安全属性。
  4. 机器学习检测器: 基于Web3AuthChecker等工具,为dApp商店或安全审计人员创建持续监控系统,自动标记易受攻击的认证实现。
  5. 去中心化身份融合: 这项工作强调了需要从一开始就考虑到这些攻击向量而设计的、更健壮的DID认证标准(如W3C可验证凭证)。

8. 参考文献

  1. 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).
  2. Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
  3. MetaMask. https://metamask.io
  4. EIP-712: Ethereum Typed Structured Data Hashing and Signing. https://eips.ethereum.org/EIPS/eip-712
  5. Atzei, N., Bartoletti, M., & Cimoli, T. (2017). A survey of attacks on Ethereum smart contracts (SoK). Principles of Security and Trust.
  6. 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).
  7. DeFi Llama. Total Value Locked Statistics. https://defillama.com