硬件钱包的开源并不代表钱包升级,而是一次重大的安全妥协 | 火星技术帖

来源:Medium_Cobo官博

编译 :头等仓(First.vip)

编者注:原标题为《观点:硬件钱包应该开源吗?》

作为开源软件的热情倡导者,我们非常尊重那些将他们的工作分享给全世界的先驱开发者,毫无疑问,我们身处加密货币领域要感谢区块链技术的创始人。正是因为中本聪和其他伟大的开拓者将他们的工作开源,我们才得以收获Linux、比特币和蓬勃发展的加密货币市场等令人惊叹的创新所带来的收益。

但是,当涉及到使源代码可用对硬件钱包的安全性是否有利时,我们进入了一个全新的讨论。本文解释了我们为什么认为开放源代码的本质并不代表硬件钱包的升级,而是一次重大的安全性妥协。

了解开源的好处

在传统的计算领域中,开源支持者一直强调一个观点——开源是更安全的,因为它使公众能够检查源代码并通过帮助修复潜在漏洞来提高安全性。Linus定律(“只要有足够多的眼睛,所有bug都是浅层的”),通过统计数据清楚地显示了:对闭源的Safari浏览器的零日攻击平均需要9天才能修复,而对开源的Firefox浏览器的零日攻击平均只需要1天就能修复。

但是,必须在特定情境中理解Linus定律,即传统的计算机领域。在讨论开源软件在硬件钱包方面的优势时,我们必须谨记的事实是, 与硬件钱包开发相比,传统的计算机开发社区规模巨大。

GitHub是全球最大的源代码托管者,它表明最大的硬件钱包品牌Trezor的开源代码只有大约180个贡献者。这一统计数据与Raspberry Pi(树莓派)等其他硬件产品的社区形成了鲜明的对比,树莓派的开源固件贡献者大约有9500人。

无论项目多大,都无法完全避免暴露其代码的潜在危险。以Linux Mint为例,它在2016年被黑客入侵。尽管该后门问题在一天内得到解决,但其快速响应时间在很大程度上是由于Linux开源社区的规模。

在我们的开发社区相对较小的情况下,我们需要特别注意以下事实:共享源代码是一把双刃剑。 不幸的是,对于硬件钱包而言,发布源代码可使黑客更容易检测到漏洞并进行攻击。 开源代码甚至可以为网络犯罪分子敞开大门,制造能够欺骗消费者的假冒硬件钱包——Trezor已经成为其受害者。

(头等仓注:2018年,Trezor官推曾发布推文称市面上出现了“盗版”Trezor硬件设备,仿真程度极高,提醒用户仔细辨别真假!)

零日攻击的风险增加

安全硬件钱包所有者需要注意的一个安全问题就是零日攻击。在零日攻击中,从暴露或宣布先前未知的漏洞到修复漏洞之间的时间段为黑客提供了进行攻击的绝佳机会。由于硬件钱包中的漏洞通常是通过固件升级来解决的,所以通常需要一段时间,在正式的安全补丁发布后,用户才能真正安装并修复问题。有些用户在设置好硬件钱包后,几个月甚至几年都不打开它,这大大增加了零日攻击的风险。对于具有开放源代码软件开发经验的人来说,也许觉得有悖常理, 黑盒子或带有闭源代码的设备比带有开源代码的白盒子更安全。

硬件钱包用户在更新固件之前,无法免受零日攻击。

心理安慰还是实际利益?

虽然我们很容易将比特币作为开源代码提供安全性的一个主要实例,但是假设所有区块链项目都应效仿并成为开源代码是一个合理的。比特币从其开源开发社区获得的安全性是其社区规模参与的直接结果。无论是源代码还是挖矿能力,比特币社区都参与了项目的维护和保护,涉及到很多的安全功能。然而,由于目前涉及硬件钱包安全性的开发人员相对较少,因此我们无法对共享源代码带来的好处做出任何假设。

除了大量增加检查代码的审阅者之外,传统计算领域中开源代码开发的另一个好处是,任何人都可以自己下载,安装,刻录,调试甚至删除源代码的某些方面。

这种程度的自治所带来的安全性依赖于特定技术的基础。然而,即使有坚实的技术基础,安全措施仍有被超越的潜力。那些在计算机领域工作的人应该很熟悉Ken Thompson Hack (KTH)是如何在C编译器中创建后门的,它可以监视或控制世界上任何软件程序。您必须使用二进制代码编写自己的编译器,或者使用在安装KTH之前已编译的工具,才能克服这种安全隐患。KTH证明,从源代码编译的任何系统总是容易受到攻击。

像Ken Thompson这样的专业人士告诉我们,除非您能够自己编写编译器(只有极少数的开发人员能做到),否则您将不得不信任第三方。除了不得不编译自己的编译器之外,大多数硬件钱包用户甚至都不会费力刻录或调试源代码。对于这一类用户来说, 知道他们的硬件钱包是开源的,更多的是一种心理安慰,而不是实际上可以使他们的钱包的安全性得到显着改善。

二维码签名输出的“可审查性”

在传统的计算领域,它有助于将开源软件带来的安全性视为对源代码的一种“审查”。虽然这种情况还不适用于冷库加密货币安全,但有什么可以替代硬件钱包作为可靠的“审计”来源呢?

幸运的是,经过签名的交易输出并不像其他类型的软件输出那样复杂。如果提供源代码不是审计硬件钱包的最安全选择,我们可以考虑仔细检查其交易签名输出。

人们购买硬件钱包是因为他们知道存储私钥的最安全方法是将其离线放入冷存储器中。所有硬件钱包服务都需要一种在离线存储和在线终端之间进行通信的方式。冷端(离线存储)负责存储私钥和签署交易,而热端(在线终端)则需要从区块链获取数据,为冷库端构建签名交易并将签名的交易广播到区块链

在传输签名输出时,大多数冷存储硬件都使用数据线,蓝牙甚至NFC。由于其数据传输的不透明性,这些方法使签名输出极难审核。冷库硬件通信的一种被忽略的方法是二维码,这是一种“所见即所得”的解决方案。我们认为二维码是在冷端和热端之间传输数据的理想方法,因为二维码输出的数据是透明的。这使用户可以轻松地确保传输到冷存储设备的每个未签名交易都是有效的,并确保来自冷端的签名输出不会以任何方式泄露私钥或敏感信息。

结论

我们认为开源对于增强硬件钱包的安全性没有多大意义,只是开源可以使用户能够看到随机数是由真随机数生成器(TRNG)生成的,还是由伪随机数生成器(PRNG)生成的。

转载请保留版权信息。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章