随着区块链的火爆,市面上的硬件钱包琳琅满目,我们应该如何选择呢?
知道创宇区块链安全实验室就这个问题进行深度探讨,解答什么才是安全的硬件钱包。
安全芯片
硬件钱包主要功能是生成、保存私钥,同时还能对用户的交易进行签名验证,而完成这一切的核心,便是钱包安全芯片。
钱包安全芯片保存了我们的私钥,当需要对交易进行签名时,通过调用芯片接口(一般采用 I2C 或 SPI 通信),把需要签名的数据传输给安全芯片,安全芯片返回签名后的数据,实现了在不对外暴露私钥的情况下,完成交易签名,从而保证了私钥安全(这里只是简要描述签名流程,实际情况会有多次的鉴权验证等操作)。
所以钱包芯片的安全等级(保存的私钥不能被非法提取),直接决定了整个硬件钱包的安全系数。
对于安全芯片的安全等级评测,国际上公认的标准是 CC(Common Criteria)标准,CC标准对安全保障等级(Evaluation Assurance Level,简称 EAL ), 规定了七个级别(EAL1 - EAL7):
等级
定义
说明
EAL1
功能测试
EAL1等级表示系统功能正常,但是系统安全不是很重要。EAL1提供对客户可用的TOE(评估目标)的评估,包括针对规范的独立测试,以及对所提供的指导文档的检查
EAL2
结构测试
EAL2需要开发人员提供设计文档和测试结果,但是不必遵循商业要求。因此,它不需要大量成本或时间的投入
EAL3
有条理地测试和检查
EAL3表示尽责的开发人员在设计阶段考虑到系统在安全方面获得最大的保证。EAL3适用于开发人员或用户需要中等程度的保证安全性的情况,并且需要彻底调查TOE及其开发过程中没有进行(大量代码、架构)重新设计
EAL4
有条理地设计、测试和审查
EAL4要求开发人员基于良好的商业开发实践对系统安全方面做最大的保证。EAL4要求开发人员或用户在常规产品中有中等到高水平的安全保证,并能承担额外的基于安全的工程成本(比如维护)
EAL5
半正式设计和测试
EAL5要求开发人员根据严格的商业开发标准最大程度地保证系统的安全。TOE可能是为了实现EAL5保证而设计和开发的。EAL5要求开发人员或用户在计划开发时就考虑(准备或提供)高水平的保证系统安全性的开发方法(包括设计和验证),并且保证不会产生不合理成本的情况
EAL6
半正式验证、设计和测试
EAL6要求开发人员从应用更高级别的安全工程技术到使用更严格的开发环境等方式,以获得高度的保证,以保护高价值资产免受重大风险。因此,EAL6适用于开发安全TOE
EAL7
正式验证设计和测试
EAL7适用于安全TOEs的开发,适用于极高风险或高价值的产品,并且成本较高的情况
从上述定义可以看出,安全芯片至少要满足 EAL5 等级标准,才是一个合格的钱包安全芯片。换一个通俗(不严谨)的说法:ELA5 及以上安全芯片,可以保证芯片中的数据、密钥、代码,外部无法破解读取,可以安全保存我们的私钥!
如果硬件钱包的安全芯片,没有进行 EAL 认证,那么不管宣称的多么安全,都是值得怀疑的!
私钥生成
安全芯片可以保证我们的私钥存储安全、签名验证安全,但如果我们的私钥本身不安全,那么为私钥所设计的一切安全保护,都是空中楼阁。
私钥是一串256位的随机数,而硬件钱包一般遵循 BIP32、BIP39、BIP44 协议,通过随机数,生成我们的助记词和私钥种子,如果硬件钱包产生的随机数不够随机(假随机数),那生成的私钥就有可能被他人推算出来。
设计真随机数生成器 (TRNG),是一项非常复杂的工作。为了确保随机数质量,需要以可验证和经过严谨统计的方式证实 TRNG 的真随机性。国际上一般采用美国国家标准与技术研究院 ( National Institute of Standards and Technology,NIST )制定的 NIST SP 800-90A/B/c 标准(“c”仍处于草案阶段)或德国标准机构( BundesamtfürSicherheitin der Informationstechnik, BSI )制定的 AIS 20-31 标准:
如果硬件钱包,没有采用符合标准的随机数生成器,那钱包本身生成的私钥就不安全,随时都有被推算破解的可能。
公开透明
硬件钱包即使使用了高安全等级芯片、真随机数,也有可能因为其他问题(如不正确使用安全芯片),导致整个钱包的安全问题。所以一个真正安全的硬件钱包,还应该做到公开透明。让大家知道钱包是如何生成私钥,如何安全的保存私钥,如何安全的进行芯片通信和交易签名,只有经得起各方审查的硬件钱包,才是真正安全的硬件钱包。
知道创宇唯一指定存证平台:www.attest.im
联系我们:[email protected]
知道创宇区块链安全实验室导航
微信公众号
@创宇区块链安全实验室
微博
@知道创宇区块链实验室
https://weibo.com/BlockchainLab
知乎
@知道创宇区块链安全实验室
https://www.zhihu.com/org/zhi-dao-chuang-yu-qu-kuai-lian-an-quan-shi-yan-shi
@KS_Blockchain
https://twitter.com/KS_Blockchain
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。