引介|主流密钥管理项目深度对比
2021-11-12 16:28:47 Author: www.freebuf.com(查看原文) 阅读量:16 收藏

随着区块链和其他加密用例的激增,私钥在经济等方面被赋予更多价值。随之而来的是密钥管理的重要性不断上升,目前,已经有了多个密钥管理系统。本文将进一步深入探讨密钥管理的几个问题及密钥管理系统的取舍方案。

01 基于用户设备的密钥管理

这几乎是管理密钥对的最基本方式——将其存储在用户的设备上。设备包括他们的浏览器、桌面、移动设备或硬件钱包/ 账本。这是目前在钱包上管理私钥的最常见方式,但它有几个缺点。

首先,大多数用户并不熟悉密钥和助记词管理方法。此外,标准密钥管理在安全性(密钥被泄露的可能性)和冗余性(在没有备份的情况下丢失密钥)以及便利性三者之间需要有所取舍。这就有了其他管理方案。

02 托管式密码管理

受信任的第三方代表用户管理私钥,并在登录时将私钥返回给用户 。

03 密码管理模式

密码管理模型使用用户提供的容易记忆的密码来加密客户端生成的密钥,然后将这些加密密钥和密码散列存储在服务器上。密码管理模型是指,通过用户设置的密码口令在客户端对私钥进行加密,他们再将加密后的私钥和密码哈希存储在服务器上。

v2-7652980ea74dd54ffed62b9c731ef60b_720w.png

当用户登录时,他们向服务器提供用户名 / 密码哈希组合,检索并在本地对密钥进行加解密。尤其方便的是,该模型允许用户使用任意设备去访问其密钥。

密码管理模型的非托管性使得我们在使用该模型时仍需要做出取舍。由于是用密码加密用户密钥,因此该模型也会遭受与传统密码系统相同的暴力 / 彩虹攻击。任何能够访问密码哈希 / 加密密钥的攻击者都能够重复尝试破译用户密钥。对于带有符号、字母和数字的密码,破解 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 的内在机制后,我们发现其博客也印证了我们的结论:

v2-98602163c4493e16f4706f35bbd107a4_720w.png

上图向我们展现了注册过程中的交互流程。其访问密钥的明确身份验证取决于调用凭据(Access Token)。fortmatic relayer 和 AWS cognito 也可以访问此调用凭据。

Magic 的密钥恢复过程印证了以上结论。除非您暴力破解用户的密码,密码管理器模型是不可能的实现密钥恢复的。但 Magic 可以在不知道您以前的密码的情况下,通过电子邮件发送、验证和重置您的密码。

v2-522e7f6f7f8847748d5194ec29ff4e15_720w.png

  • Bitski

Bitski 是托管类电子钱包。它们从不在前端或浏览器公开用户密钥,从而避免系统漏洞,提高安全性。

  • Argent

Argent 使用智能合约钱包和存储在其移动应用程序中的密钥。Argent 与其他 Argent 智能合约钱包共同实现社交恢复,甚至代表用户支付 gas 费用。

  • Authereum

Authereum 同样是一款智能合约钱包,专为网络使用而设计,其 EOA 通过密码管理器模型进行管理。Authereum 支持密钥恢复,整个恢复过程是通过附加并下载另一个密钥来完成的。

  • Torus/tKey

  • Fireblocks

Fireblocks 也同样进行阈值密钥管理,但通常面向企业而不是个人级别。Fireblocks 允许不同的个人以不同的配置来管理公司中的资产。

06 小结

v2-b7feb43f5860f18b745f0f23e400ae61_720w.png


文章来源: https://www.freebuf.com/articles/database/304564.html
如有侵权请联系:admin#unsafe.sh