[閒聊] permit鏈下簽名釣魚

數位貨幣

1180

我剛剛看到一篇關於用permit鏈下簽名的方式來轉走你帳戶內的token,而且這個方式你的
帳戶內不會有approve紀錄,之前我在用paraswap、uniswapV3、1inch有遇過這種授權方式
所以特別來提醒大家,現在連鏈下簽名都要仔細看一下,別無腦簽名。

鏈下簽名比較常出現的方式是連入defi網站的時候,需要你用帳號簽一份聲明書,例如par
aswap連進去會要你簽一份這個網站不提供給美國人使用的聲明。
https://i.imgur.com/UFznnNW.png


permit功能可以看USDC的etherscan上的code,簡單來說就是用鏈下簽名的方式根據permit
需要參數讓你簽名,拿到你簽完名的加密資訊v.r.s,然後駭客再call USCD permit函數,
那就可以完成approve的動作。這個方式比較特別的是鏈下簽名不會消耗gas,所以你不會
去特別在意這個簽名,你以為一切都正常,但是其實你已經把token授權給別人動了,而且
revoke工具也不會偵測到,revoke工具原理其實是掃你的帳戶內的approve tx,這個permi
t方式,permit tx其實會出現在駭客的帳戶下面,所以revoke不會偵測到。對permit tx
fee是駭客幫你付的。

現在可以從1inch看一下permit鏈下簽名會長怎樣。有沒有發現permit鏈下簽名跟上面的網
站聲明基本上一樣,只是message data部分不一樣,換成要你簽permit需要參數,其實這
是metamask有幫解析後的結果,有些錢包不支援解析的話,應該會是0xd505accf開頭一串
bytes32 code,大家可以比較一下一般USDC approve,現在metamask已經不會無腦無限
approve了,會問你要approve多少。

permit鏈下簽名
https://i.imgur.com/PdMw4JL.png

approve tx
https://i.imgur.com/Qi9en0h.png


結論
如果遇到鏈下簽名請仔細看清楚。

ref:https://foresightnews.pro/article/detail/33330

--
對了,謝謝版主昨天贊助pizza day

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.113.147 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1684633192.A.F6D.html
s895051231樓推推 05/21 09:48
SamuelLuo2樓專業推 05/21 11:03
gR7P4zXH3樓 05/21 11:42
JapaZPa48674樓permit 是基於 EIP712 的 signTypedData 05/21 15:56
JapaZPa48675樓一般訊息簽名是用的是 signMessage 05/21 15:56
JapaZPa48676樓前端或插件都會提示簽名類型 注意就好 05/21 15:56
sazabijiang7樓好恐怖..這好像傳統簽名文件下墊複寫紙以及另一份 05/21 18:12
sazabijiang8樓文件的伎倆。你以為只簽了A,其實是A+B套餐 05/21 18:12
leofu1009樓推謝謝 05/21 18:18
DarkerDuck10樓小狐狸permit鏈下簽章也要跟approve一樣警告無腦按的 05/21 18:57
DarkerDuck11樓message差很多,理論上用UI就可以預先警告的 05/21 18:58
本人12樓很多無腦簽的沒說根本看不出是在簽EIP-712還是簽message 05/21 20:20
yahooyamgoog13樓這種簽名的傷害是一次性的還是永久性的?若不小心 05/22 12:03
yahooyamgoog14樓簽名,有辦法取消授權嗎? 05/22 12:03
本人15樓看你授權多少,可以取消,但是需要點技術,直接換帳號比較 05/22 14:30
本人16樓 05/22 14:30
ECZEMA17樓麻瓜覺得害怕 05/25 22:10