谨防钱包弹窗的Permit签名钓鱼风险

当下钓鱼攻击成为 Web3 个人用户损失最多的主要风险,通常攻击者模仿官方推特、Telegram、邮件、Discord 回复或私聊用户用 Claim 空投、退款、福利活动引诱用户点击钓鱼网站链接,然后在钱包通过“Permit”签名等将用户授权资产盗走。这是一种采用 EIP-2612 离线签名授权标准,允许用户无需拥有 Eth 来支付 Gas 费即可进行批准,能够简化了用户的审批流程,降低手动审批流程导致的错误或延迟的风险,但也成为了当前钓鱼攻击的常用方式。

什么是Permit签名

简单说,过去我们需要 Approve 后才可以将代币转给别的合约,但如果合约支持 Permit ,可以通过 Permit 离线签名,跳过 Approve 且无需支付 gas 的方式进行授权,进行授权后第三方就拥有了相应控制权,随时可以转走用户授权的资产。

Alice 使用链下签名向协议进行授权,协议调用 Permit 上链拿到授权,然后可以调用TransferFrom 转移相应资产。

交易中附加 permit 签名进行交互,无需预先 approve

链下签名,链上操作由被授权地址操作,只能在被授权地址查看授权交易

要求将相关方法写入ERC20代币合约内,EIP-2612之前发布的 token 不支持

钓鱼攻击者伪造好钓鱼网站后会利用Permit签名获取用户授权,Permit 签名通常包含了:

Interactive:交互网址

Owner:授权方地址

Spender:被授权方地址

Value:授权数量

Nonce:随机数(防重放)

Deadline:过期时间

用户一旦签署了 Permit 签名,Spender 就可以在 Deadline 内转移相应 Value 的资产。

如何防范Permit签名钓鱼攻击

1、不要点击任何陌生、不信任的链接,始终要反复确认正确的官方渠道信息。

2、打开任何网站如果唤醒钱包签名确认弹窗,不要着急点确认,耐心仔细的阅读 Singnature request 上方出现的交互网址和签名内容,一般出现陌生网址和 Permit 包含 Spender 、Value 的 Permit 信息,直接点击【拒绝】可避免资产损失。

3、只有登录注册时唤醒的 消息签名 弹窗才是安全可以点击确认操作,样式如下: