近期在链节点社区中,硬件钱包的话题再度被推上风口浪尖,其中最受关注仍是其安全性的讨论。11 月 19 日上午,Cobo 硬件负责人刘力心(Cobo 金库大掌柜)和 BITHD 负责人果子作客链节点 ChainNode AMA,就硬件钱包开源的意义、安全芯片的安全价值、钱包产品未来的发展等话题展开了激烈的讨论。

在本期 AMA 中,果子一阵见血地指出:对于硬件钱包来说,开源是“前提”,原因很简单,每一个硬件钱包都需要“自证清白”,而你不开源,就完全没法自证清白。

而刘力心则强调:钱包没有绝对的安全这一说。一款合格硬件钱包相比于别的存币方案,把被攻击成功的可能性降到了最低。不合格的硬件钱包(比如没有使用安全芯片)其实不一定比软件钱包安全多少。

此外,两位大咖就开源和安全芯片的问题还给出了很多优质回答,接下来就一起回顾一下吧。

对于硬件钱包来说,开源是“前提”

在传统的计算领域中,开源支持者一直强调一个观点——开源是更安全的,如 Linus 定律所说:只要有足够多的眼睛,所有 bug 都是浅层的。

在硬件钱包领域,这一点也同样适用。但也同样存在领域门槛较高,大多数用户可能不会费力刻录或调试源代码的状况,这时,钱包开源是否只能提供心理上的安慰而并不会有实质上的帮助?关于这一点,果子给出了这样的回答:
对于硬件钱包来说,开源是“前提”,原因很简单,每一个硬件钱包都需要“自证清白”,而不开源,就完全没法自证清白。用户为什么需要硬件钱包?因为要把资产安全的保管在自己手里,无需信任第三方。

在“自证清白”这一点上,Trezor、Ledger 和 BITHD 其实都是做的很努力的, BITHD 和 Trezor 也一样,因为硬件设计+固件源码全开源,任何有兴趣的第三方都可以基于 github 上的内容做一个自己的 BITHD 和 Trezor;这也同样是自证清白;哪怕是 Ledger,除了安全芯片+安全芯片中非常少的代码外(这部分需要你自己选择并编写少量代码),你仍然可以自己做一款跟 Ledger 一样的硬件钱包,这同样是在自证清白方面做出的努力。

开源钱包很重要的一点就是任何第三方都可以通过提供的开源信息自己 diy 出一款一模一样的钱包,以此来证明果子提到的钱包本身的“清白”。除此以外,开源的另一个好处是为社区里更多的团队做更多种类的硬件钱包提供便宜,这其实也是开源本身的意义之所在。

如果子所说,这里硬件钱包的开源包括了硬件设计全部开源、固件源码全部开源,和完整的版本历史全部开源。在日常使用中,用户会遇到安全芯片里有芯片厂商的代码,却没有钱包厂商的代码的情况,这时是否符合全开源的要求呢?果子补充道:

如果是像 Ledger 这类的双芯片模型,主芯片+密码芯片模型,主芯片中包含了全部固件逻辑(并且全部开源),密码芯片包含了私钥签名相关逻辑(这部分闭源),这种虽然不能算严格意义上的开源,但其实还是比较接近的,因为你可以自己参考这个方案做出自己版本的 Ledger,你可以选择一样的主芯片运行 Ledger 的固件代码,再自行选择一个自己觉得合适的密码芯片,在里面编写自己需要的这部分代码,最终能够做出自己版本的硬件钱包。

没有绝对的安全,当攻击需要付出的成本远小于收益时,可以视为安全

钱包开源归根结底是为保护资产安全服务的,对于持币者来说,最关心也就是钱包开源能否为资产带来绝对的安全?硬件钱包开源主要面临的安全挑战无外乎钱包方偷偷留有后门(内部攻击)和黑客的攻击(外部攻击),关于这两点,果子表示:

首先,世界上不存在“绝对”的事情,安全也一样。通常来说,当攻击需要付出的成本远小于收益时,可以视为安全。

针对上述两种风险,第一点,开源硬件钱包通过代码、固件开源可以自证钱包本身的清白,杜绝任何后门。如果使用不开源的钱包就始终要面临着后门的威胁。第二点,因为 BITHD 为不联网的硬件冷钱包,使黑客的远程攻击几乎变成了不可能。如果是获取钱包进行物理攻击则需要付出巨大成本。加上 BITHD 拥有密码账户功能,当你在 BITHD 开启密码账户功能时,黑客即使付出了巨大的成本获取了你的助记词,在无法得知你自定义的密码的情况下,仍然无法完成攻击。

关于硬件钱包的安全问题,刘力心补充道:

安全没有绝对的安全这一说。一款合格硬件钱包相比于别的存币方案,把被攻击成功的可能性降到了最低。不合格的硬件钱包(比如没有使用安全芯片)其实不一定比软件钱包安全多少。另外,其实相对硬件钱包的安全性,人为原因造成丢币的可能性更大。比如最关键的助记词如何保存。

也有用户提出,硬件钱包开源后从代码角度可以提高资产的安全。那么同样的硬件钱包代码的开源能否保证芯片等硬件本身的安全性?关于这点,刘力心表示:

硬件部分的安全性,这里最核心的部分就是安全芯片的安全性——有一种攻击形式(供应链攻击)是,黑客在用户收到产品前对产品进行了篡改,把安全芯片给禁用掉了或者绕过了。安全芯片不再正常工作,所有的相关密码学运算没有发生在安全芯片内。为了避免这种攻击,Cobo 金库设计了验真环节,确保安全芯片正常工作。只要保证安全芯片没有被禁用或者绕过,安全芯片再去验证上层应用的安全性。

安全芯片的核心保护对象是私钥的真随机性,而这一随机数正是加密算法背后的关键核心。正如刘力心关于 Cobo 钱包的介绍那样:安全芯片的使用、官网验证环节、防拆触发的结构设计、passphrase 功能、金属助记板等等功能,为用户资产做足了安全保障,不会受到供应链攻击、旁路攻击等威胁,即使攻击者拿到你的金库,也只是拿到了一块砖而已。

以上就是本次 AMA 中刘力心和果子关于钱包开源和安全芯片的问题给出的一些解答,开源已经成为硬件钱包未来的趋势——资产安全的探索,