Permit:一个平平无奇的签名 如何骗走你的资产?
作者:OneKey 中文 来源:X,@OneKeyCN
自测一下,你是不是还认为:只要不是发起交易,我签个名「连接登陆」网站,就不会丢失资产?
如果你点头了,那可能你的安全意识停留在了 21 年前。
从 Scam Sniffer 公布的 24 年 3 月钓鱼报告*来看,90% 的被钓鱼资产为 ERC-20 代币。而这其中主要的钓鱼方式就是 Permit / Permit2 钓鱼签名。
仅仅是今年 3 月中旬,就有 4 笔价值平均资产约 $2M 的被盗交易,其中 3 笔都是被 Permit 钓鱼签名盗走的 Pendle PT 本金代币。
从受害者的角度,这简直就是一部恐怖片——某天突然发现资产被转走,检查了一圈以为是私钥被盗了,最后才发现是曾经一个不经意的离线签名,无可奈何。
而这一切,本可以被避免。
一句话说明白 Permit / Permit2
为了节约时间,OneKey 在这里不会讲太多 EIP-2612 引入 Permit 或者 Uniswap 推出 Permit2 的加密「课本知识」。(可能你光看这句话就开始头疼了)
你只需要意识到:时代变了,「浓眉大眼」的签名也不简单。
你可以直接粗暴理解为 —— 现在不少的 ERC-20 代币授权将通过一个「中介」来管理。
在以前,你的代币额度,是一个个授权(Approve)给每个 dApp 合约的。而每一次授权,都需要花费 Gas。
而现在,通过 Permit / Permit2 技术(已经有相当数量的 dApp 采用),你只需要把代币授权给 Permit / Permit2 这个「中介」。
集成了这个技术的 dApp 都可以请求用这个授权额度——只需要简单签个名就能授权给它们(甚至是批量的),不需要一次又一次花费 Gas 授权。
一把双刃剑
这个类型的签名升级,虽然对于跨应用操作带来了便利并节约成本,有各式各样的好处。但是也留下了一些隐患。
其危险之处就在于,上一轮牛市,加密用户们已经养成了「登入 Dapp 需要签名进行连接」的操作习惯,并且默认普通签名就是安全的、毫无防备之心。
殊不知,新版本的签名如果不注意区分(盲签),就会中招钓鱼。这对于用户安全意识和各种基础设施如钱包,提出了新的挑战。
对于黑客来说,那就是可以更好地「借刀杀人」了。
攻击者只需要部署一个钓鱼合约,向你获取一个 Permit 授权签名,即可随后提交一个盗走你资产的交易(甚至可以等过几天你忘记了这件事再提交)。并且, Permit2 还可以让黑客批量获取你的全部已授权代币的权限。
例如最近 SlowMist 创始人余弦分享的这个案例(https://x.com/evilcos/status/1771338665052287307),某用户在质押期间被签名钓鱼了相关代币的授权,而自己一无所知(也没有注意检查),黑客在其提出代币到自己钱包的时候,立刻盗走了资产,损失惨重。
从伪装手段上看,似乎钓鱼也变得更简单了一些。他们完全可以做一个「空投检查」网站,让你「连接钱包」查看空投。或者是,做一个工具网站让你登陆,以满足你在某些热点事件/项目中的需求。花样无穷无尽。而使用过程中,你很可能就被诱导做了 Permit / Permit2 类型的签名。
展望未来,随着以太坊推进账户抽象(EIP-3074 正式纳入下次 Pectra 硬分叉升级),你甚至还可以直接授权整个地址控制权限给一个合约,让合约地址直接操作用户的钱包地址。这也一样会在便利的同时引入新的钓鱼风险。
当然,这是后话了。
如何这种类型的钓鱼预防?有后悔药吗?
关于 Permit / Permit2 钓鱼的预防方法,已经有无数的推文、文章写过。在这里我们也是不厌其烦地再次总结——这很值得。
1、不要盲签
就和现实世界里的有法律效力的合同一样,没有人会随意给出自己的签名。
识别伪装的钓鱼网站属于是加密安全的基操了。而陌生土狗网站的「登陆请求」也一样要小心,黑客会想尽办法
伪装按钮的意图,诱骗你签名。
大家常用的小狐狸是可以识别出 Permit/ Permit2 签名的,如果你交互的 dAPP 弹出了这个类型的签名,那最好再三确认你是否要授权相关的代币。如果只是普通的签署消息,是不可能弹出特别类型的签名的。
除了 Permit 类之外,还有 increaseAllowance、多 dApp 组合操作甚至是 0x 开头的完全无可读性的各种签名,都有可能危害到你的资产安全。
总之,如果不清楚弹出来的签名的内容和后果,一定要慎之又慎,尤其是钱包内的资产比较多的情况。
2、干湿分离
常在河边走,哪有不湿鞋。
喜欢在小网站「无视风险警告」打土狗的你,如果实在要经常发生「高危行为」,那就做好资产的隔离。
经常用于交互的小钱包,不存放大量资产。举个不太恰当的比喻,你外出随意逛街的时候,肯定不会把家当带在身上,钱包里只会放一些小钱。
并且每隔一段时间,就换整理资产、换新钱包,以及取消授权和签名,尽可能地降低自己的风险敞口。
对于存放大量资产的钱包,就不要随意「连接」网站。或者就干脆放在硬件钱包中冷保存,需要地时候专门转出进行交互。这也是老生常谈的预防钓鱼的方式了。
3、检查授权
如果不是高强度使用,在第一次授权 Permit / Permit2 代币额度的时候,建议选择按需授权。也就是使用多少授权多少,而不是默认的最大(无限)额度。
已经授权了 Permit / Permit2 无限额度的,也是有后悔药可以吃。你可以在 http://Revoke.Cash 中检查自己的代币授权风险敞口——你会明确地看到某个代币授权给 Permit / Permit2 多少额度。
该工具也支持取消签名,你也可以在其中找到签名来取消(在黑客激活相关签名偷走你的资产之前)。
要注意的是,Permit 类型的签名是一种离线签名,在被使用之前,链上是没有痕迹的(黑客通常会在服务器上储存这些偷来的签名)。
定期使用工具检查授权与签名是个好习惯。
结语
如果你不幸中招了,最好及时寻求专业安全团队如 SlowMist 的帮助,及时转移资产和亡羊补牢,把损失最小化。甚至是使用一些技术手段抢救资产。
值得注意的是,这些签名钓鱼已经趋向于专业化、产业化,分工分赃明确。如果资产已经被专业的 Drainer 黑客团队转移并洗钱,很大的概率是拿不回来的!所以还得是防患于未然,不让他们有任何可趁之机。

币安网
欧易OKX
HTX
Coinbase
大门
Bitget
Bybit
K网(Kraken)
双子星(Gemini)
Upbit
泰达币
以太坊
比特币
USD Coin
Solana
瑞波币
币安币
First Digital USD
狗狗币
OFFICIAL TRUMP