背景
在上一期 web3 安全入門避坑指南中,我們主要講解下載/購買錢包時的風險,找到真官網和驗證錢包真偽的方法,以及私鑰/助記詞的泄露風險。我們常說 “not your keys, not your coins”,但也存在即使你有私鑰/助記詞,也無法控制自己資產的情況,即錢包被惡意多簽了。結合我們收集到的 misttrack 被盜表單,一些用戶的錢包被惡意多簽后,不明白為什么自己錢包賬戶里還有余額,卻無法把資金轉出。因此,本期我們將以 tron 錢包為例,講解多簽釣魚的相關知識,包括多簽機制、黑客的常規操作及如何避免錢包被惡意多簽等內容。
多簽機制
我們先簡單解釋下什么是多簽,多簽機制的本意是為了使得錢包更安全,允許多個用戶共同管理和控制同一個數字資產錢包的訪問和使用權限。盡管部分管理者丟失或泄露了私鑰/助記詞,錢包里的資產也不一定會受損。
TRON 的多重簽名權限系統設計了三種不同的權限:Owner、Witness 和 Active,每種權限都有特定的功能和用途。
Owner 權限:
- 擁有執行所有合約和操作的最高權限;
- 只有擁有該權限才能修改其他權限,包括添加或移除其他簽名者;
- 創建新賬戶后,默認為賬戶本體擁有該權限。
Witness 權限:
這個權限主要與超級代表(Super Representatives) 相關,擁有該權限的賬戶能夠參與超級代表的選舉和投票,管理與超級代表相關的操作。
Active 權限:
用于日常操作,例如轉賬和調用智能合約。這個權限可以由 Owner 權限設定和修改,常用于分配給需要執行特定任務的賬戶,它是若干授權操作(比如 TRX 轉賬、質押資產)的一個集合。
上文中提到,新建賬戶時,該賬戶的地址會默認擁有 Owner 權限(最高權限),可以調整賬戶的權限結構,選擇將該賬戶的權限授權給哪些地址,規定這些地址所占權重的大小,以及設置閾值。閾值是指需要簽名方權重到達多少才能執行特定操作。在下圖中,閾值設置為 2,3 個被授權地址的權重都為 1,那么在執行特定操作時,只要有 2 個簽名方的確認,這個操作就可以生效。
惡意多簽的過程
黑客獲取用戶私鑰/助記詞后,如果用戶沒有使用多簽機制(即該錢包賬戶僅由用戶一人控制),黑客便可以將 Owner/Active 權限也授權給自己的地址或者將用戶的 Owner/Active 權限轉移給自己,黑客的這兩種操作通常都被大家稱為惡意多簽,但其實這是一個廣義的說法,實際上,可以根據用戶是否還擁有 Owner/Active 權限來區分:
利用多簽機制
下圖中,用戶的 Owner/Active 權限未被移除,黑客給自己的地址授權了 Owner/Active 權限,此時賬戶由用戶和黑客共同控制(閾值為 2),用戶地址和黑客地址的權重都為 1。用戶雖然持有私鑰/助記詞,也有 Owner/Active 權限,但無法轉移自己的資產,因為用戶發起轉出資產請求時,需要用戶和黑客的地址都簽名,這個操作才能正常執行。
雖然被多簽的賬戶執行轉出資產的操作需要多方簽名的確認才可以實現,但是向錢包賬戶入賬是不需要多方簽名的。如果用戶沒有定期檢查賬戶權限情況的習慣或者近期沒有轉出操作的話,一般不會發現自己錢包賬戶的授權被更改,那么便持續受損。如果錢包內的資產不多,黑客可能會放長線釣大魚,等待該賬戶積累了一定數字資產后,再一次性盜取所有數字資產。
利用TRON的權限管理設計機制
還有一種情況是黑客利用 TRON 的權限管理設計機制,直接將用戶的 Owner/Active 權限轉移給黑客地址(閾值仍為 1),使得用戶失去 Owner/Active 權限,連“投票權”都沒有了。需注意,此處黑客并不是利用多簽機制使得用戶無法轉移資產,但大家習慣上稱這種情況也為錢包被惡意多簽。
以上就是Web3 安全入門避坑指南:錢包被惡意多簽風險的詳細內容,更多請關注本站其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。