什么才是安全的硬件钱包?
摘要: 知道创宇区块链安全实验室,就什么才是安全的硬件钱包的问题展开深度探讨。
随着区块链的火爆,市面上的硬件钱包琳琅满目,我们应该如何选择呢?
知道创宇区块链安全实验室 就这个问题进行深度探讨,解答什么才是安全的硬件钱包。
安全芯片
硬件钱包主要功能是生成、保存私钥,同时还能对用户的交易进行签名验证,而完成这一切的核心,便是钱包安全芯片。
钱包安全芯片保存了我们的私钥,当需要对交易进行签名时,通过调用芯片接口(一般采用 I2C 或 SPI 通信),把需要签名的数据传输给安全芯片,安全芯片返回签名后的数据,实现了在不对外暴露私钥的情况下,完成交易签名,从而保证了私钥安全(这里只是简要描述签名流程,实际情况会有多次的鉴权验证等操作)。
所以钱包芯片的安全等级(保存的私钥不能被非法提取),直接决定了整个硬件钱包的安全系数。
对于安全芯片的安全等级评测,国际上公认的标准是 CC(Common Criteria)标准,CC标准对安全保障等级(Evaluation Assurance Level,简称 EAL ), 规定了七个级别(EAL1 - EAL7):
从上述定义可以看出,安全芯片至少要满足 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 标准:
如果硬件钱包,没有采用符合标准的随机数生成器,那钱包本身生成的私钥就不安全,随时都有被推算破解的可能。
公开透明
硬件钱包即使使用了高安全等级芯片、真随机数,也有可能因为其他问题(如不正确使用安全芯片),导致整个钱包的安全问题。所以一个真正安全的硬件钱包,还应该做到公开透明。让大家知道钱包是如何生成私钥,如何安全的保存私钥,如何安全的进行芯片通信和交易签名,只有经得起各方审查的硬件钱包,才是真正安全的硬件钱包。
作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com
评论(0)
Oh! no
您是否确认要删除该条评论吗?