鏈上操作必備,給錢包密鑰加個安全鎖

在Web3.0 世界裡,私鑰和助記詞的安全是最重要的。一旦有了它們,人們可以隨意訪問一個人的數字資產,因此它們的丟失或被盜可能會導致用戶的財產受到巨大損失。
隨著Web3.0 領域中移動錢包應用程序的興起,了解保護這些密鑰的各種安全機制就顯得至關重要了。
本文總結了Web3.0 移動錢包應用程序提供的不同級別的安全保護。通過對當下流行的九個開源移動錢包進行研究,我們從簡單的密碼保護到硬件支持的可信執行環境等方面探討了這幾個流行錢包在實踐中是如何實現對用戶私鑰或助記詞的安全保護的。通過研究,我們發現其中一些安全保護機制可以有效地解決一些常見的私鑰竊取攻擊。然而我們也發現,來自系統層面的威脅(如利用root 等)卻在很大程度上被忽略了。
錢包安全核心:私鑰保護
移動錢包應用程序中最重要的的數據就是私鑰和助記詞。
因此,移動錢包應用程序面臨的最嚴重的威脅相應也就是他們的私鑰或助記詞遭洩漏。為了適當緩解這種威脅,一個設計良好的移動錢包應用程序應該有一個系統的方法來保障私鑰在存儲或者使用階段的安全性。

在上表中,我們總結了Web3.0 錢包在安卓移動設備上保護用戶私鑰所使用的常見做法。該表對在安卓移動設備上的錢包用於私鑰和助記詞保護的通用做法進行了總結。每個級別的安全做法都是按照安全級別的提高而按順序列出的,並且包括了其不能完全解決的相應威脅。
通過研究九個流行的開源Web3.0 錢包,我們可將它們劃分成不同的安全級別,並更好地了解這些做法在現實世界中的應用方式。
下圖也顯示了這些移動錢包應用程序的名稱和它們在谷歌遊戲商店的下載次數。

二級標題
二級標題
S 0 (無存儲保護)
圖片描述
圖片描述

從Protobuf 文件恢復比特幣錢包
圖片描述
圖片描述

二級標題
二級標題
S 1 (密碼加密)
二級標題
圖片描述

二級標題
S 2 [Keystore(Trustzone)]
為了防止密鑰存儲文件的加密密鑰被攻擊者在內存中被截獲,一些錢包應用程序,如Metamask,會使用Android Keystore 系統來生成和使用加密密鑰。
二級標題
二級標題
S 3 [Keystore(Trustzone)+root 檢測]
二級標題
二級標題

S 4 (專用可信執行環境TA Trusted Application)
移動錢包應用程序中最高級別的安全實踐是使用專用的Trusted Execution Environment(TEE)可信執行環境來存儲和處理私鑰信息。這是通過在設備上安裝一個專門的基於TEE 的可信應用(TA)來實現的。
例如,這種保護方法目前被三星區塊鏈應用程序在某些高端三星智能手機上使用。這種方法提供了額外的保護,因為私鑰信息存儲在TEE 中並由僅在TEE 中被使用,TEE 與主操作系統隔離,只能由供應商信任的代碼訪問。即使是有特權的用戶或應用程序也不能直接訪問這些信息。然而,這種方法的局限性在於,它要求智能手機製造商為錢包開發者提供特定的接口來使用TEE。
移動錢包應用安全
在S 3 級別的保護中,我們提到root 檢測可以和Keystore 系統一起使用,以保護用戶的私人信息。請注意,我們認為root 檢測是確保設備保持基本完整性的一個重要方面,應該與任何安全實踐結合起來實施,以確保更高水平的保護。
然而,重要的是:root 檢測技術可能有所不同,且不一定有效。例如,雖然Airgap Vault r 我們的測試設備已經被root,但Samourai 錢包在相同的測試環境下並未成功檢測到設備被root。
總結
總結
總結
在本文中,CertiK 的專家團隊分析了Web3.0 錢包應用程序在移動設備上面臨的威脅,特別是私人密鑰的存儲和相關的潛在威脅。通過對九個不同的流行錢包應用程序的測試及研究,CertiK 的專家團隊揭示了每個應用程序所採用的安全級別,且發現大多數主要的錢包是使用硬件支持的密鑰保護技術來解決密鑰存儲問題的,如安卓上的Keystore 系統。
然而我們也注意到,大多數錢包沒有檢查設備完整性,例如是否被root,這可能導致在內存中執行私鑰操作時出現安全問題。除了我們在本文中總結的五個級別的安全實踐外,我們認為錢包開發者還應該注意如何在安卓系統上充分利用Trustzone 設計,以更好地減輕常見風險。我們將在今後的文章中繼續介紹這個話題,並協助開發者更好地保護用戶的資產。


