主流密鑰管理項目深度對比
隨著區塊鏈和其他加密用例的激增,私鑰在經濟等方面被賦予更多價值。隨之而來的是密鑰管理的重要性不斷上升,目前,已經有了多個密鑰管理系統。本文將進一步深入探討密鑰管理的幾個問題及密鑰管理系統的取舍方案。
01 基于用戶設備的密鑰管理
這幾乎是管理密鑰對的最基本方式——將其存儲在用戶的設備上。設備包括他們的瀏覽器、桌面、移動設備或硬件錢包/ 賬本。這是目前在錢包上管理私鑰的最常見方式,但它有幾個缺點。
首先,大多數用戶并不熟悉密鑰和助記詞管理方法。此外,標準密鑰管理在安全性(密鑰被泄露的可能性)和冗余性(在沒有備份的情況下丟失密鑰)以及便利性三者之間需要有所取舍。這就有了其他管理方案。
02 托管式密碼管理
受信任的第三方代表用戶管理私鑰,并在登錄時將私鑰返回給用戶 .
03 密碼管理模式
密碼管理模型使用用戶提供的容易記憶的密碼來加密客戶端生成的密鑰,然后將這些加密密鑰和密碼散列存儲在服務器上。
密碼管理模型是指,通過用戶設置的密碼口令在客戶端對私鑰進行加密,他們再將加密后的私鑰和密碼哈希存儲在服務器上。

當用戶登錄時,他們向服務器提供用戶名 / 密碼哈希組合,檢索并在本地對密鑰進行加解密。尤其方便的是,該模型允許用戶使用任意設備去訪問其密鑰。
密碼管理模型的非托管性使得我們在使用該模型時仍需要做出取舍。由于是用密碼加密用戶密鑰,因此該模型也會遭受與傳統密碼系統相同的暴力 / 彩虹攻擊。任何能夠訪問密碼哈希 / 加密密鑰的攻擊者都能夠重復嘗試破譯用戶密鑰。對于帶有符號、字母和數字的密碼,破解 6 字符的密碼組合需要 34 秒,而 8 字符需要 1-2 天。此外,還可能拒絕訪問加密密鑰,從而導致審查的麻煩。
04 門限密鑰管理
門限密鑰管理通常使用某種密鑰共享將用戶密鑰分割成多份。只要擁有某個最低份數的密鑰分片就可用于重建用戶密鑰。門限密鑰管理允許多個 EOA 控制單個帳戶,允許用戶對一個密鑰擁有多個分片,允許用戶在不損害主密鑰的情況下保留分片作為備份,并且,允許在不造成安全隱患的前提下實現密鑰分片重復使用。
門限密鑰管理模型的屬性取決于用戶保存每個密鑰分片的位置。不同的錢包和方案根據實際用例制定了不同的方法。
05 智能合約錢包模式
智能合約錢包不是密碼,而是持有和管理用戶資產的合約,由私鑰或外部擁有的帳戶(EOA)管理。因此,智能合約錢包的屬性同樣取決于應用場具及其 EOA 的管理方式。與門限密鑰管理類似,智能合約錢包具有多個 EOA 控制單個帳戶的優點。此外,還可以利用抽象計算來實現諸如日常開支限制或權限之類的功能,從而保護用戶資產。
與較強的算力相伴而生的是更少的可組合性和更高的成本。智能合約錢包僅限于在其所在的區塊鏈上使用,甚至被局限在 L1 和 L2 之間。智能合約錢包也不是一個簡單的密鑰,而是一個合約。因此,用戶預期的簡單本機函數(如簽名或認證)無法工作。另外,盡管隨著更快、更具可擴展性的解決方案的推出,成本有希望進一步降低。但是成本仍是目前存在的無法忽視的問題。
解決方案
- Metamask
Metamask 可用于普通的 Chrome 瀏覽器中訪問,稱為 Chrome 擴展錢包或移動錢包。Metamask 可管理設備上的密鑰,具有操作簡單且非托管的特點,但需要將助記詞和設備同步
- Portis
使用密碼管理器模型保存密鑰。作為一個集成到 DAPP 中的 web 錢包,Portis 利用用戶的瀏覽器 iFrame 和域安全模型來保護用戶的密鑰。Portis 有一個 npm 包(javascript 著名的包管理工具),為開發者提供 Web3 支持。
- Fortmatic/Magic
由于 Magic (前身為以太坊錢包解決方案提供商 Fortmatic)使用密碼 / 電子郵箱組合,所以經常被誤認為是密碼管理器模型。然而,他們實際上是由 HSM (硬件安全模塊)和 AWS (亞馬遜云服務)保管的。在深入挖掘 Fortmatic 的內在機制后,我們發現其博客也印證了我們的結論:

上圖向我們展現了注冊過程中的交互流程。其訪問密鑰的明確身份驗證取決于調用憑據(Access Token)。fortmatic relayer 和 AWS cognito 也可以訪問此調用憑據。
Magic 的密鑰恢復過程印證了以上結論。除非您暴力破解用戶的密碼,密碼管理器模型是不可能的實現密鑰恢復的。但 Magic 可以在不知道您以前的密碼的情況下,通過電子郵件發送、驗證和重置您的密碼。

- Bitski
Bitski 是托管類電子錢包。它們從不在前端或瀏覽器公開用戶密鑰,從而避免系統漏洞,提高安全性。
- Argent
Argent 使用智能合約錢包和存儲在其移動應用程序中的密鑰。Argent 與其他 Argent 智能合約錢包共同實現社交恢復,甚至代表用戶支付 gas 費用。
- Authereum
Authereum 同樣是一款智能合約錢包,專為網絡使用而設計,其 EOA 通過密碼管理器模型進行管理。Authereum 支持密鑰恢復,整個恢復過程是通過附加并下載另一個密鑰來完成的。
- Torus/tKey
- Fireblocks
Fireblocks 也同樣進行閾值密鑰管理,但通常面向企業而不是個人級別。Fireblocks 允許不同的個人以不同的配置來管理公司中的資產。
06 小結
