当前位置:首页 > 区块链新闻 > 正文

区块链钱包的下一代安全性——现在开源

来源: 互联网时间:2019-03-10 11:05:01

区块链的安全性仍然是一个挑战

区块链正在从根本上改变以交易为基础的行业。保护这些加密货币资产交易,需要保护一个私钥,这是必须的。无论交易类型如何,无论是保密货币、还是关于用户身份、投票交易还是供应链包的元数据,所有这些交易都依赖于所有人用其私人钥匙安全签署交易的最基本能力。

这种必须保护私钥的嵌入式漏洞是一个折衷点,但在很大程度上仍是一个未解决的挑战。如下图所示,只要看一眼黑客攻击的总数就足够了,而且只要涉及到保护加密货币的安全,投资者的焦虑情绪就很容易理解。

在传统银行业,银行可以通过多种方式保护消费者和投资者的交易,包括收回同行恭敬回应的资金。区块链资产的情况并非如此,因此更需要保护这些资产及其密钥。

备选区块链安全解决方案

当今的区块链安全解决方案要么是免费的、不安全的,要么是安全的,但开发、操作和使用成本高昂且复杂。最近,Unbound Tech发布了一个开源库,它正在解决这个挑战。

区块链资产是一个单点妥协,他们是一个非常脆弱的和有利可图的目标,当存储在内存中,即使使用白盒密码术等方法也被证明是容易遭到破坏的(如,在CHES 2017捕获大笔挑战中,有94个白盒实现都被破坏了,其中大多数在不到一天的时间内就被破坏了)。

像Multi Sig这样更安全的方法引入了显著的复杂性管理和开发开销,因为需要管理更多的密钥,而且它们严重依赖于分类,因此需要不断的编码工作来支持新的和现有的资产,以及维护复杂的审批策略。

专用的基于加密货币硬件的解决方案,如HSMs,需要支持区块链加密货币(特别是BIP32和相关签名算法),否则提供的安全价值非常有限;例如,使用移动设备enclave(假设它在硬件中不支持BIP32)可以提供边际值,因为当生成BIP32种子并在使用时,该种子将出现在未受保护的OS内存中——在这些内存中,它非常容易受到攻击。

使用安全硬件可信执行环境(TEE)的替代方案(如Intel SGX)听起来很诱人,但是在过去几年里,它多次被软件端通道攻击所破坏,所以它的安全保证也是值得怀疑的。

此外,所有基于硬件的解决方案的常见问题,如高成本、平台可用性、维护和设备丢失,使之成为一个安全但非常不方便、不灵活和非加密的敏捷选择。

保护区块链钱包——现在开源

保护区块链钱包致力于支持区块链安全和开源社区,新发布的区块链Crypto MPC库免费提供了保护加密货币资产所需的所有加密技术,同时比专用加密硬件更安全。

在内容方面,开源库包括:

1. 支持Two-party ECDSA secp256k1——关键的生成和签名

2. Two-party EdDSA ed25519——关键的生成和签名

3.Two-party BIP32——生成、硬派生和规范推导。

4. 关键份额的刷新

5. 零知识备份

利用MPC保护加密密钥,区块链安全开源库具有以下关键的安全特性:

1. 没有单一的折衷点——折衷点或关键材料要求攻击者同时折衷服务器和端点。敏感密钥和加密货币作为两个随机共享数据,存储在单独的、隔离的机器上(“机器”代表任何计算设备)。这些数据本身并不能说明任何关于关键材料的信息。

2. 在清楚的整个生命周期中,包括在使用期间和生成期间,都不会出现关键或种子材料。在密钥生命周期中执行的所有加密操作都是在没有将这两个共享组合在一起的情况下执行的。这包括签名、派生甚至生成。底线——记忆中永远没有关键的材料或秘密。从数学上证明,获取关键材料需要访问两个关键共享,因此需要牺牲两台机器。一台机器,即使完全受到攻击者的攻击和控制,也不能显示关于关键材料的任何信息,这仅仅因为关键材料从来没有驻留在任何一台机器中。

3.密钥共享:密钥共享被不断地修改,而数据修改是在不修改密钥本身的情况下完成的。它的计算效率很高,而且可以非常频繁地执行——从而迫使攻击者几乎同时对两台机器进行攻击,以获取关键材料。

4.保证不可抵赖性;没有端点设备的合作,应用服务器不能签署任何事务。

5. 抗侧通道攻击能力强。

6. 毫秒性能速度(假设您使用机器人来批准事务)。人类可以想花多长时间就花多长时间。

多方计算(MPC)密钥永远不会作为一个实体存在

典型用例是什么?

如何利用这个开源库?我们想到了两个典型的用例,钱包会发现这个开源库很有用:

端点/服务器用例——这种用例对于钱包服务提供者很常见。用户在终端设备上有一个移动钱包,通常是他们的手机或笔记本电脑。钱包应用程序与服务器应用程序通信。BIP32和所有签名密钥总是在终端用户的设备(参与者1)和服务提供者(参与者2)之间分割,对私钥执行任何加密操作都需要双方的合作(以及他们之间的通信)。

移动/笔记本电脑用例——这是一个涉及两个通常属于同一用户的终端用户设备的用例。例如,手机和笔记本电脑。每台设备都运行一个应用程序,双方合作创建一个安全的区块链钱包并签署交易。BIP32种子和所有签名密钥总是在移动设备(参与者1)和笔记本电脑(参与者2)之间分割,对种子或私钥执行任何加密操作都需要双方的合作(以及双方之间的通信)。

别忘了备份密钥。这本身就是一个挑战。

备份是加密货币资产密钥管理中最具挑战性的方面之一。本节简要描述MPC开源库提供给您的备份功能以及两个潜在的使用场景。

开源库包括一种独特的备份机制,它引入了零知识备份:一种允许公开可验证性的加密冷备份。此属性很重要,因为它允许两个参与者在任何时间点验证备份的正确性,而无需解密它。因此,它确保了验证的安全性,并防止了生成和存储错误备份的情况。

1. 用户管理备份——这是一种常见的备份形式,备份管理的角色主要由最终用户承担。钱包的加密备份可以存储在多个位置以实现冗余(例如,可以由服务提供者存储,如端点/服务器用例中所述)。此备份的私钥应由用户独占,最好是在冷备份中。备份恢复过程应该只用于灾难恢复。

2. 服务提供者和受信任的第三方、托管备份——下面的场景是端点/服务器用例的扩展,其中包括第三方托管服务。只有当用户的设备或服务提供者丢失各自的密钥份额时,才使用托管服务。

该模型创建一个用户透明的备份,有效地类似于2-of-3场。这是通过在钱包和种子生成上创建三个不同的随机共享对来实现的。在图中,密钥共享A被用户的设备和托管服务使用,密钥共享B被用户的设备和钱包服务提供商使用,密钥共享C被钱包服务提供商和托管服务使用。需要强调的是,每一对都是完全独立的,每一对都是相同种子的有效备份。

把它们结合在一起

Unbound Tech发布了这个开源库——帮助区块链开发人员解决与加密货币资产和区块链应用程序相关的持续挑战:加密签名密钥和种子加密的保护。

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。