在加密货币世界,无论你如何强调安全,都不为过。
随着全球加密货币市值不断增长,资产安全成为广大投资者最为关注的问题,2018年以来,发生在加密货币行业的黑客攻击事件不胜枚举,导致的损失更是高达数十亿人民币。
更为严重是,加密资产一旦丢失,就很难找回。
在这样的背景下,不同形式的加密货币存储“工具”被发明出来:硬件钱包、热钱包、去中心化钱包、全节点钱包、多签钱包等等。那么,有没有一种能够保证资产“绝对安全”的工具呢?
火币研究院在其报告《火币区块链产业专题报告:钱包篇》中认为,冷钱包是相当对安全的加密资产存工具,“冷钱包将私钥存储在完全离线的设备上,相比于热钱包是更安全的方法”。与此同时,广大普通用户也会有这样的观念:硬件钱包是绝对安全的,可以完全放心。
但真实情况是这样么?
1
攻击
硬件钱包在设计上将钱包私钥与网络完全隔绝,由于不触网的特性,这种类型的钱包又被称为冷钱包。也由于这种特性,人们普遍认为硬件钱包是安全可靠,不会遭到攻击。
但可惜的是,硬件钱包所谓的绝对安全也是相对的。
2018年初,Reddit用户moodyrocket发帖称,因其在eBay上购买了一个二手的硬件钱包,而损失了价值3.4万美金的积蓄。“这是我所有的积蓄。”moodyrocket在帖子中表示。
经调查,这位用户购买的二手钱包是被卖方采用了“中间人攻击”的形式,预先将硬件钱包造商Ledger公司的随机数替换成了卖方的随机数种子,进而获得用户私钥,这才导致了盗币事件发生。
中间人攻击,是指攻击者从硬件钱包出厂到买家手中的过程中,对钱包动手脚,以修改固件的形式,破解并控制钱包私钥。持币人一旦将自己的加密货币资产存入其中,攻击者就会伺机转走这些加密货币资产。
这种随机数泄露导致钱包丢币并不是个案,2014年,Blockchain.info钱包的随机数被黑客破解,导致大量用户私钥泄露,万幸白帽黑客及时发现问题,才挽救了用户损失。
这两个事件也从侧面表明,硬件钱包实际上并不是“无懈可击”。
“(钱包生产、运输、存放过程中)我知道这是一个硬件钱包,那我把它拆掉,换上一个我改过固件的硬件钱包,这在真实世界发生过。”Cobo联合创始人CEO神鱼解释道,随机数失去了“随机”的意义,“我就有可能转走你的币,这其实非常危险。”
这种针对硬件钱包的“中间人攻击”,在国内也可能存在。
31QU在国内较为知名的二手物品交易网站上搜索关键词“硬件钱包”时,发现了不少卖家。而出售说明中不少备注有“已拆封,作用不大,故出售”,或者未对已经拆封的钱包标明拆封。而用户一旦贪图便宜购买这种钱包,就有可能面临“中间人攻击”。
“硬件钱包,一定要从原厂购买,”加密货币钱包公司产品安全负责人郎平告诉31QU,“哪怕是你信任的人给的,也最好别用。”
除了“中间人攻击”会导致用户丢币,硬件钱包本身的漏洞,也有可能给攻击者可乘之机。
2018年12月27日,在第35届混沌通讯大会上,来自初创公司Wallet Fail的三人团队演示了他们攻破Trezor One、Ledger Nano S和Ledger Blue三款硬件钱包的过程,在业内掀起了轩然大波。
被“攻破”的钱包公司,则迅速对自身产品的安全问题做出了回应。
Trezor官方表示:“攻击者必须拿到你的设备,如果你的Trezor依然在你手中,你可以放心继续使用,这个漏洞不会影响到你。”而Ledger钱包团队则表示:“他们并未成功提取任何种子或者PIN码。”
这并不是这些硬件钱包制造商头一次遇到类似的“危机”。
2017年3月份,一名15岁的英国黑客Saleem Rashid爆出,Ledger Nano S这款比特币硬件钱包有严重的安全性漏洞,它可能会被黑客控制,成为黑客安插在你身边的“间谍”,偷走你的比特币。
“虽然中间人攻击看起来很吓人,但是很多厂家也在极力防范类似事件发生。”郎平说道。
2
防御
一款硬件钱包由硬件与软件两部分组成。硬件部分包括钱包出厂包装、钱包主板、芯片、外壳等;软件部分主要是开源代码库。“如果厂商在设计钱包之初,能够保证这些部分安全,那么钱包基本上也就相对安全了。”郎平告诉31QU。
以2013年国内上市的某硬件钱包产品为例,用户收到钱包之后,整个钱包由一层透明塑料包裹,内部包装还由一次性胶带封闭。这些虽然是最基础的物理手段,但也能降低硬件钱包在物流途中直接暴露在攻击者手中的可能性。
“你的私钥直接保存在硬件钱包中,暴露在不怀好意者面前,是比较危险的。”郎平告诉31QU。
如果攻击者破了基础“防火墙”,神不知鬼不觉地拿到钱包并尝试暴力拆解,这时钱包核心部件就会暴露出来。针对这种情况,不少钱包还设计了防拆除功能。“很多硬件钱包外壳都是超声波塑封,很难拆开,一旦被拆开过,用户就很容易被发现。”郎平说道。
“有的硬件钱包被人拆了,然后把里面的精密信息读出来,比如从闪存芯片里恢复出来一些敏感信息(导致私钥泄露,很危险)。”神鱼在谈到攻击者针对硬件钱包暴力拆除时,认为硬件钱包确实会遇到被拆开读取信息的可能性,他认为比较安全的做法是,厂商在设计钱包就要做到“拆开即毁”,使用者第一次开机就要“校验你的系统有没有被改过”。
除了硬件防范,软件安全也是较为重要的一个环节。“衡量软件安全最重要的环节就是软件代码是否开源。”郎平告诉31QU。
同时,火币研究院也认为,钱包开源一方面可以接受各方对其代码进行监督审查,另一方面也更容易获得技术极客的帮助,不断地改进升级。
钱包代码开源,也能让钱包使用者监督项目方代码架构与更新情况,更为重要的是验证钱包私钥随机数是否真正随机。
“如果私钥并非真正随机产生。危险系数就比较高,有可能被破解。”郎平告诉31QU,“但验证私钥是否随机产生的操作对于绝大多数用户而言过于复杂,一般用户很难操作。”
实际上,在2018年下半年,EOS公链博彩类DApp就发生过大量因随机数被破解而导致的安全事件,这造成了价值上百万的EOS代币被黑客卷走。不过,由于硬件钱包的离线断网特性,攻击者发动类似攻击还是有难度的。
代码开源的另一个好处就是“监控”项目方的开发进度。
以国内某知名硬件钱包为例,该钱包目前开源了6个代码库,其中的3个关键代码库是从trezor代码库中分叉而来。trezor是国际老牌硬件钱包公司,这一定程度上说明了该钱包软件部分的可靠性。
但是,分析项目代码更新情况之后却发现了问题。打开该硬件钱包的蓝牙代码库,我们发现自2018年5月份之后,代码库代码几乎很少更新。
同时,打开该钱包源代码,发现该钱包源代码在2018年8月份之后更新频率也明显降低。
蓝牙代码库更新停止与整个代码库更新活跃程度大幅度降低,说明项目发展遇到阻碍,产品更新比较慢。代码更新频率下降,实际上也能反映出钱包团队的工作状态,钱包安全性则需要打一个大大的问号。
通过开源代码更新频率,我们能够得知硬件钱包产品开发进度,进而判断产品安全性,这也众多钱包、公链项目对于开源与否极为敏感的原因之一。
对于加密货币资产持有者而言,钱包私钥的安全性是不允许出现任何“差池”的。这方面,硬件钱包是如何保证这一点呢?
3
私钥
硬件钱包发送交易的过程大致是这样的:通过手机端APP构造交易,硬件端确认交易信息,再用手机端把交易联网发送出去。然后等待区块链确认完成,交易就成功了。
正是由于硬件钱包在交易过程中全程离线,保证了钱包私钥的安全性。
交易过程中硬件钱包通过蓝牙、USB与App发生链接,这也个过程保证了钱包能够绝对断网。“目前蓝牙的安全距离是9米,只要周围不存在可疑人员,就可以放心操作了。”郎平告诉31QU。
实际上,钱包内部也有相当完整的“保密”程序。
硬件钱包通过分层确定的方法,将种子生成主私钥,然后再派生海量的子私钥和地址。由于种子是一串很长的随机数,不利于记忆,所以钱包会用特殊算法将种子转化为一串助记词 (Mnemonic),通过助记词就能够得到种子以及种子背后所有的私钥。
从种子到私钥,再到海量私钥的转换过程
由此看来,助记词的安全性关乎重大,那么有没有可能猜出助记词呢?通常情况下,一个硬件钱包助记词是由12个单词组成,这12个单词出自2048个单词库。如何计算出随机生成的助记词的所有可能性是一个排列问题,根据公式:n!/( n – r )! ,即2048!/(2048-12)!= 5.2715379713014884760003093175282 e+39 。
5.2乘以10的39次方,这个数据有多大?
有人用数学模型对这个数据进行了测算,这个数量相当于在美国本土上铺满一堆1块钱硬币,这堆硬币要铺多高呢?高度大约相当于从地球表面到月球的距离。而一次性猜对助记词的概率,就相当于从如此众多的硬币中随手一抓,就抓到了那个正确的硬币的概率,这几乎是不可能发生的事情。
而有的硬件钱包更是设置了24个助记词,将猜出助记词的可能性降到了零。
“只要你不泄露钱包助记词,硬件钱包相对来说还是最安全的。”郎平说道。Reddit用户moodyrocket之所以丢失私钥,就是因为其购买的二手钱包的随机数种子被销售者获取,才导致丢币。
结语
加密货币作为一种“丢了就找不回来”的资产,从靠谱的途径获得一款安全性靠谱的硬件钱包,对资产安全至关重要。避开“中间人攻击”与避免使用自带漏洞的钱包,基本上就能够保证资产安全了。
即便躲开了所有坑,有人还是对自己钱包安全性不放心,“老韭菜”会告诉你,“去瑞士吧”。
瑞士有全世界安保措施最严的防空洞,“甚至能防核弹”。届时,你就能与罗斯柴尔德家族一起,接受世界上最安全的财富保管服务了。
声明:“31QU”所有原创文章,转载均须获得“31QU”授权。未获授权严禁转载。