一、可攻击性维度
密深科技首席科学家郭伟基从技术门槛、经济成本、犯罪成本、预期收益四个方面将攻击钱包的成本收益分解为三个层次:
- 第一层次,高可攻击性,对应技术门槛低、经济成本低、犯罪成本低、预期收益高;
- 第二层次,中可攻击性,对应技术门槛低,经济成本低,犯罪成本高,预期收益低;
- 第三层次,低可攻击性,对应技术门槛高、经济成本高,犯罪成本高,预期收益低。
可攻击维度对比,来源:达令智库
这三个层次可以指导我们采用针对性的安全设计。
二、可用性维度
加密钱包的可用性包括安全性与用户体验。有别于通常把可用性等同于用户体验的常规做法,我们在这里把安全性列为可用性的一个关键指标。原因很简单,作为钱包产品,安全性至关重要。如果某个加密钱包安全性差,使用上就有很多限制,特别是其管理的资产规模只能是非常小、即便损失掉也关系不大的,这就导致钱包在很多情形下不可以使用。
另外,不好的用户体验也会导致安全性流失。例如,如果某款钱包的安全性主要依赖用户输入一个比较复杂的密码,那么用户体验就会很差;而出于人性的懒惰,用户可能使用看似复杂其实容易破解的口令。
理想的加密钱包安全性高,用户体验又非常好。但是这两者极难兼顾。为此,郭伟基提出一个公式:
技术先进指数 ≥ 安全指数 x 用户体验指数
在给定的技术水平上,安全指数和用户体验指数最多成反比关系,无法兼顾。幸运的是,通过采用更加先进的技术,可以同时提升安全指数和用户体验指数。可以认为,加密钱包可用性的天花板取决于所采用的安全设计及其技术实现。
可用性维度对比,来源:达令智库
从可攻击性维度和可用性维度分析各种钱包架构的优劣之后,本文将进一步提出一个指导钱包安全性设计的思维范式。
三、维度分析之软件钱包
1.可攻击性维度
由于攻击软件钱包的技术门槛低、经济成本低、犯罪成本低、预期收益高,软件钱包的可攻击性高。
从技术门槛上看,软件钱包不具备“三有”要素:连接网络会导致助记词的不安全保存,交易密码设置弱口令,货币价格走势数据被替换等;系统不完整性的话主要是基于安卓系统,安卓系统会导致手机不能觉察到物理攻击;由于前两者不能保证安全性从而导致钱包种子保密性也不会安全。因此攻击软件钱包的技术门槛相对并不高。
从经济成本上看,因为软件钱包时常联网,黑客只需坐在电脑前即可远程攻击无数的软件钱包,而且是同一种攻击手段反复可以用,不需要很多人配合以及很大的运作成本。
从犯罪成本上看,黑客通过互联网可以跨国进行盗窃,而且可以把自己IP隐藏起来或者放置到其他的地方,几乎很难追踪到黑客的真身。
从预期收益上看,现阶段投资者还未能足够重视加密资产的保密性,所以很多用户都是把加密资产放置到软件钱包存储,给黑客很大的可攻击用户基数。黑客可以比较轻松地在电脑背后攻击大量的软件钱包,一旦成功则收益十分可观。
2.可用性维度
目前软件钱包上能够运用的安全技术选择并不多。较低的技术水平造成安全性与用户体验极难平衡,因此总体的可用性处于比较低的水平。
在国内,软件钱包往往等同于手机App钱包,较少用户使用PC上的软件钱包。然而无论如何,软件钱包面临的首要问题就是私钥或者种子如何保密。PC上流行过勒索病毒WannaCry,加密用户的资产文件并索要赎金。其实能够勒索,就能够转移文件。
另外一种就是从PC或手机上盗取加密私钥文件,进行撞库,或者再利用加密方案实现的缺陷进行破解。当然后者的技术门槛就更高了,但也没有高到天际。一项MIT计算机科学与人工智能实验室的研究结果表明,超过10%的错误密码学实现体现为把解密密钥硬编码在代码里面。读者们不要觉得这好像天方夜谭。仔细思考一下软件钱包还能把解密密钥保存在哪些地方?混淆一下放代码里面是很显然的一个选项,其它选项也好不到哪里去,除非底层操作系统提供足够坚固的安全措施。
好一点的做法是要求用户输入一个密码进行加密,但是这里又会有其它问题,弱密码、撞库等等是一方面,利用木马获取键盘输入从而取得用户密码是另一方面。
上面对软件钱包的安全性做了理论上的分析。而真实的现实安全状况远远比理论分析的还要糟糕。例如,有的软件钱包业者认为,钱包应用的安全性无须超出其所在系统的安全性,只要手机系统没有被攻破,资产就是安全的;而如果系统被攻破,那么用什么手段都保护不了资产。为了提高用户的体验,许多钱包干脆把用户的钱包种子或者私钥明文存放在手机里面,给用户的资产安全造成极大的潜在危险。
日前,区块链安全研究中心BSRC公布了一段针对某安卓版软件钱包的攻击视频,该视频显示,攻击者可以通过USB连接用户手机直接获得用户的助记词种子,并在本地破解后获得用户的十二个助记词明文,从而进入用户的账户。在这个攻击案例中,如果钱包种子进行了哪怕是简单的加密保护,攻击也不会如此顺利。
为了用户体验而牺牲安全性,本质上是一种安全错觉。从可用性的角度看,安全性和用户体验都是必不可少的,便利但不安全的加密钱包使得用户资产面临本不必要的风险,其可用性水平很低。
因此,可攻击性高的软件钱包是黑客青睐的“攻击”对象,而糟糕的、缺乏理论指导的、在总体可用性有限约束下牺牲安全性去照顾用户体验的设计,使得软件钱包的安全性更是雪上加霜。这就是为什么会产生硬件钱包的需求。
四、维度分析之安卓硬件钱包
1.可攻击性维度
基于安卓系统开发的硬件钱包,在可攻击性维度上属于第二层次,也就是中可攻击性,具体来说是技术门槛低、经济成本低、犯罪成本高、预期收益低。
从技术门槛上看,攻击安卓系统并不是太难的一件事情。这主要是由于安卓缺乏系统完整性保护,各种安全漏洞也比较多;更重要的是,基于安卓系统的硬件钱包一旦发布之后,往往很难再对底层操作系统作什么重大升级,造成安卓硬件钱包不断被后续发现的新漏洞所威胁。甚至可以说,如果已发布产品无法打补丁,任何人只要了解到新的漏洞,就可以利用来攻击安卓硬件钱包,造成技术门槛偏低的状况。
实战上,Bitfi执行总裁、网络安全先锋John McAfee曾把Bitfi冷钱包称作是全球首个“无法被黑”的设备。为了证明自自己,McAfee于7月24日发起10万美元的悬赏寻找可以攻破此设备的黑客。一周不到,一个十五岁的孩子据悉成功攻破了John McAfee大力支持的Bitfi钱包。在7月举办的看雪安全峰会上,来自知道创宇的安全专家胡铭德利用USB接口缺陷破解了某国产安卓钱包。
从经济成本上看,无论是供应链攻击还是邪恶女佣攻击,成本可能就是植入恶意软件或者利用已知漏洞窃取私钥数据,不需要很高的代价。
但是其中存在一定的犯罪风险。无论是黑客直接接触设备还是买通他人,攻击者都面临身份被识别的可能性。
从预期收益上看,由于攻击者需要先接触到设备,才有可能窃取里面的数字资产,这就使得攻击不能大面积实施,其效率变得十分低下,预期收益也因此较攻击软件钱包大为降低。
从可攻击性分析来看,安卓硬件钱包综合评测预期收益低会导致黑客在一定程度上不会攻击硬件钱包,但是随着硬件钱包的使用人数逐渐提高,黑客的收益也会随之升高,导致硬件钱包也会逐渐受黑客的青睐。
2.可用性维度
目前市场上已有的安卓硬件钱包产品基本都是强调其离线、通过二维码传递签名信息,用户体验比软件钱包要差很多。同时由于仍存在设备丢失或被他人接触的可能,安全措施也不能简化。如果需要用户使用比较复杂的密码组合来保密钱包种子,这对用户体验又是一种伤害。当然,随身携带体型硕大的设备本身对用户体验也是一种伤害。
同时,由于安卓系统缺乏系统完整性保护的先天不足,在攻击者能够接触设备的前提下,安卓硬件钱包的安全性并不比软件钱包高,甚至低于某些较好运用了iOS安全机制的软件钱包。
综合来看,安卓硬件钱包相对软件钱包的主要优势在于其保持离线,造成可攻击性,或者说作为攻击目标对攻击者的吸引力,相对没那么大;其用户体验则逊色于软件钱包。总体来说,是为了安全性牺牲用户体验的典型。
如果既要很高的安全性,又要良好的用户体验,则根据前述公式,只能靠采用更好的技术平台了。这就是芯片级硬件钱包。
五、维度分析之芯片级硬件钱包
1.可攻击性维度
攻击芯片级硬件钱包的技术门槛高、经济成本高、犯罪成本高、预期收益低,因此芯片级硬件钱包处于可攻击性的第三个层次,即低可攻击性。
正面攻击芯片的技术门槛和经济门槛都很高。在芯片级硬件钱包中,钱包种子被写入无法用常规手段读取的存储区。非常规手段则一般是破坏性除去芯片封装,然后用聚焦离子束连接某些电路,用微探针技术提取数据,或者用显微镜提取存储区图像再加以分析,等等。这种攻击涉及到非常昂贵的设备以及大量的时间和经济成本,而且不可避免会留下犯罪线索(例如盗取设备留下线索,租用设备或者委托芯片破解服务留下线索等)。
预期收益很低,一是由于每次只能攻击一个设备,二是由于需要花费大量时间,失主可能早就把资产安全转移到其它地址了。另一方面,用户也可以启用隐藏钱包功能(BIP39协议规定的功能),使用一个密码将大部分资产放入另一个钱包地址,使得即便设备被破解也最多损失小部分资产。
目前还没有已知的芯片级硬件钱包被如此攻击的案例。但是为了给读者一个概念,某些芯片破解公司声称能够在两周内破解大部分常见芯片。这个时间足够让失主从容恢复备份、转移资产了。
从攻击方的角度看,如果大费周章经历过设备盗取、芯片破解后,可能仍然一无所获,大概率也就放弃了攻击的念头。这就是低可攻击性的意义。
另一个不容忽视的安全风险是被从侧面攻击。Trezor和Ledger Nano S都曾经爆出过安全漏洞。漏洞的根源在于软件开发过程中的疏漏,已经很快通过固件升级的方式修复了。广大用户对此倒是不需要太担心。不比安卓,专门的芯片级硬件钱包功能单一,比较容易进行有针对性的加固。
侧面攻击的一种特殊形态是所谓的“侧信道攻击”,这是一种密码学手段。比特币、以太坊以及大部分其它公链使用的签名算法都是ECDSA,底层使用的椭圆曲线名为secp256r1,是一种魏尔斯特拉斯曲线。这种曲线在进行ECDSA运算(签名)的时候,容易引起处理器的电流或者电磁辐射变化,从而可能被分析并提取私钥。
DPA示意图,来自:Tiawna L. Cayton
“理论上,使用USB接口的产品有可能被DPA手段破解。”密深科技首席科学家郭伟基指出,“如果没有专门的算法或者硬件设计,则签名运算会引起USB接口的电压波动,这个波动是可以被利用来恢复正在执行签名运算的私钥的。”
不过,利用电压波动这种攻击方式看上去技术门槛还是比较高的。那么对应电磁辐射泄漏的私钥信息,有什么好的应对方法呢?
郭伟基指出,无非就是硬件上采用抗电磁分析的芯片,或者在软件算法上堵上漏洞,软件算法改进是根本解决办法。郭伟基还补充道,总的来说,无论是攻击还是防守,都需要越过一定的技术门槛,而密深科技已经越过这个门槛。
除了克服技术门槛,攻击方还需要特别灵敏的信号采集设备,需要非常靠近正在工作中的设备,所以其它成本也是很高的。至于预期收益,则要看具体针对的是哪个产品。如果目标设备已经应用了对抗技术,攻击就不会成功,也就没有收益。
2.可用性维度
芯片级硬件钱包的安全性前面已经介绍了很多,那么可用性维度的另一部分,用户体验方面是怎么样的状况呢?这其实也要分开来看。
国内用户普遍反映国外那些使用USB接口的产品并不好用,例如Trezor还需要翻墙才能使用。
另一方面,芯片方案通过固件签名技术保证了系统完整性,较高的技术水平容许安全性和用户体验在更高的等级上进行平衡。这就给一些产品留下了兼顾安全性和用户体验的空间。
“我们的具体做法等条件成熟了就会披露。”郭伟基表示。
六、安全性设计之概率范式
回到前面讲过的软件钱包安全错觉上来。为什么会产生这种错觉呢?对此,密深科技首席科学家郭伟基解释道,根本上这是一个思维范式问题:我们不能认为某个技术手段是100%有效的。例如,部分产品鼓吹其使用银行卡芯片保护私钥,但是银行卡芯片本身也暴露过成功的中间人攻击事件(法国,2011),以及银行卡芯片的出厂测试电路也有可能被恢复用来提取芯片内部的数据。
从攻击一方去展开,只需要使用单一技术手段去攻击,成功率会比需要使用多种技术手段的要高,成本也要低一些。从防守的一方去展开,则复合使用多种技术手段有助于提高安全性。所以,比起将某个安全技术因素绝对化的思维范式,概率范式更能指导总体的安全设计。
所谓概率范式,即是并不认为任何单一技术能够绝对保证安全,而总是有一定的安全失败概率。例如,即便密码学算法或者协议本身并没有什么缺陷,工程师也可能在实现的时候引入缺陷。研究表明,83%的密码学相关漏洞源自对密码学的错误理解和错误实现;例如,65%的安卓应用在加密用户数据的时候使用了不安全的AES-ECB加密模式。另外,我们今天认为安全的算法,可能以后也会出现针对性的攻击手段。硬件设备的破解成本也有可能会下降。
精心复合使用多种安全技术能够极大降低失败概率,同时显著提升攻击方的成本。例如,假如单一技术能够将失败概率降低到千分之一,则有效复合使用两种技术手段,可以将失败概率降低到百万分之一;三种则为十亿分之一。而攻击方在复合安全手段面前,则需要克服多种技术障碍,付出巨大成本。
2013年的时候Adobe发生过一起安全事故,3800万用户的数据被盗,包括登录密码。致命的是,Adobe使用AES-ECB模式加密用户密码。由于ECB模式,也就是电子密码本模式总是将同样的原文加密为同样的密文,导致大量使用相同密码的账户被黑客识别利用,以及大量使用相同前缀的密码被识别利用(例如“password123”, “password456”在AES-ECB模式加密后具有相同的前缀。具体前缀取决于加密用的密码)。这个案例说明,在复合使用的安全技术中,还不能有薄弱环节,不能认为已经有外层的防护了,所以这一级的防护就可以简单一点。
反映在硬件钱包的安全设计上,即便是芯片级、并且已经具备“三有一无”要素了,仍然需要层层设防。
七、总结
总的来说,设计一款优质的加密钱包应该做到:
• 通过高攻击技术门槛排除掉大多数潜在攻击者。
• 通过高经济成本、高犯罪成本、低预期收益让少数能够越过门槛的攻击者不会产生攻击欲望。
• 通过采用先进技术打开安全性与用户体验的平衡空间,在更高的水平上兼顾安全性与用户体验。
• 通过精心复合多种安全技术降低安全失败概率。
作者:密深科技&达令智库