2018全球加密数字货币钱包安全白皮书

内容较长,涉及到的一些专有名词需要您搜索了解。

酷币钱包下载地址:https://kubi.io 点击去安装

前言

2017年是加密数字货币的爆发之年——比特币涨幅近13倍,很多人认为,加密数字货币是金融行业中最大的革命力量之一。但与此同时,作为金融领域中最具争议的话题,也有不少人抨击比特币背后毫无支撑,是彻头彻尾的泡沫。

毋庸置疑的是,比特币的崛起和上涨,引发了全球对加密数字货币未来前景的关注和期待。2018年,加密数字货币将有希望迎来重大转折。在当下加密货币的发展探索中,安全是最为关键的一环,是决定其健康可持续发展的基石。因此,打造安全可靠的数字货币钱包作为数字资产的存储地是至关重要的。

基于对区块链技术的深度探索与挖掘、在安全领域多年积攒的经验和认知,猎豹移动“区块链中心实验室”和“猎豹全球智库”联合发布2018全球数字货币钱包安全白皮书,详细解读数字货币钱包目前存在的安全漏洞问题,对数字货币钱包用户提出安全性建议,并独家发布数字货币钱包安全标准方案。

一、加密数字货币钱包的概念和用途

1. 加密数字货币钱包是什么?

加密数字货币是一种基于区块链技术的数字货币,加密数字货币钱包是专门用来管理这些资产的应用。

加密数字货币钱包提供钱包地址的创建、加密数字货币转账、每个钱包地址交易历史的查询等基础金融功能。

钱包应用按照密码学原理创建1个或多个钱包地址,每个钱包地址都对应1个密钥对:私钥和公钥。

公钥是根据私钥进行一定的数学运算生成,与私钥一一对应。公钥主要是对外交易使用,每次交易都必须使用私钥对交易记录进行签名以证明对相关钱包地址里面的资产有控制权。

私钥是唯一能够证明对于数字资产有控制权的凭证,因此对于数字资产钱包来说,私钥是最重要的。私钥的生成和存储方式决定了资产安全与否。

因此,通常意义上的数字资产安全其实就是私钥的安全,一个钱包是不是安全主要看它能否安全的管理和使用私钥。助记词是明文私钥的另一种表现形式,其目的是为了帮助用户记忆复杂的私钥。因此能否安全的管理助记词也是区别钱包是否安全的重要条件。

2. 加密数字货币钱包分为哪几类?

按使用平台 按支持币种 按私钥存储方式划分
移动端、PC端 单一币种、多样币种 存储在终端设备里、硬件芯片、纸上等

3. 加密数字货币钱包有哪些功能?

加密数字货币钱包是用于管理和使用私钥的工具,有了私钥就可以拥有相应地址上的加密数字货币的支配权。

加密数字货币钱包最基本的功能包括:

私钥的生成和管理
助记词的生成和管理
钱包地址的生成
支持导入其他钱包生成的私钥和助记词
对数字资产进行转账等

二、加密数字货币钱包存在哪些安全隐患?

加密数字货币钱包的安全隐患主要存在于用户使用上和钱包的安全技术设计上。

1.用户使用上的安全隐患

(1)将私钥托管在交易所是非常不安全的行为

将私钥托管在服务提供者的服务器上是最常见的私钥管理方式。所有的加密数字货币交易所,都采用了类似的模式来管理用户的私钥。

用户要对资产进行管理和使用,需要如下步骤:

在服务商提供的网站上进行账户注册 → 使用账户登录的方式登录到服务商的网站上 → 进行相关操作

仅在上述几项行为中,就至少存在4个重大安全隐患:

1) 服务商服务器被黑客攻击而导致资产大量丢失的问题 每年都有大量的交易所被黑客攻击,导致数字资产大量丢失。由于加密数字货币的不可追溯、不可挂失、匿名的特性,一旦数字资产丢失,就再也不可能找回。

2) 账户名和密码的安全隐患 大多数用户习惯性的使用同一个账户名和密码在不同的网站里面进行注册,如果这其中有任意一个网站被黑客攻击成功,那么这个网站的全部用户名和密码都可能被用于对交易所账户系统的登录攻击。黑客在获取对于用户托管账户的控制权限后,即可对数字资产进行转移。

3) 浏览器的安全隐患 登录过程中的浏览器漏洞或浏览器的插件也会对账户的安全性产生影响。

4) 网络传输的安全隐患 网络传输过程中的中间人攻击行为以及HTTPS证书劫持也是一种常见的安全风险。

(2) 轻钱包模式存在的安全问题

轻钱包模式主要是指钱包应用不在钱包使用的设备里面架设完整区块链节点,而使用服务器提供的节点进行广播来进行交易。所有移动设备上的钱包都属于轻钱包模式。

对于轻钱包来说,私钥创建一样存在2种模式:a.在云端生成私钥;b.在客户端生成私钥。

前一种模式,私钥其实是托管在别人的服务器里面,一旦这个服务器被攻击成功,那么数字资产有着极大的可能性被盗取,以这种模式为代表的轻钱包产品有Blockchain - Bitcoin & Ether Wallet等。对于后一种模式,钱包设计上的安全性更加重要,本文后面会对此进行详细分析。

(3)输入方式上存在的风险

数字资产进行交易的时候需要输入一个PIN码来验证身份,PIN码最重要的安全问题就是避免Keystroke logging的出现,PIN码输入是否采用安全键盘是衡量一个金融类数字钱包产品安全性的关键考核点。

采用内置的安全键盘,键盘使用乱序的方案,可以最大程度的保证用户输入密码时的安全性。

2. 技术上的安全问题

一个安全的加密数字货币钱包,在安全技术上需要进行全方面的考核和设计,避免私钥/助记词被盗窃或丢失。

区块链中心实验室认为,安全的数字钱包应该至少从4个维度来进行设计:

(1) 运行环境的安全风险

加密数字货币钱包最核心的文件—私钥/助记词是存储在终端设备上的,无论是PC端还是移动端,终端设备如果出现不安全的现象,对于私钥/助记词来说是有非常高的安全风险的。

一个安全的数字钱包,在设计之初就避免因为运行环境而导致的私钥/助记词存在被盗可能。

终端上运行环境的安全问题主要包括病毒软件、操作系统漏洞和硬件漏洞。

病毒软件

和普通的银行客户端或支付手段不同的是,加密数字货币钱包的私钥/助记词不具备挂失能力,无法通过对账户进行冻结来降低损失,一旦被盗资产一定会丢失。

一款安全的数字钱包,能否对扫描出的终端环境里面的病毒软件和未知病毒软件进行防御是核心考核指标之一。

操作系统漏洞

利用操作系统漏洞,可以轻易的绕过操作系统设计的一系列安全边界或沙箱机制,获得访问加密数字货币钱包私钥/助记词的能力。

无论是Android、iOS、Windows 还是 Linux,每年都有大量的安全漏洞被公开和被修复,而这些漏洞里面就有不少本地提权的漏洞。利用这些提权漏洞就可以轻易的打破操作系统的安全设计边界,获得访问用户数字钱包私钥/助记词的能力。

目前大多数加密数字货币钱包的安全设计都是完全依靠操作系统的安全边界,对于私钥/助记词的存储和处理还是停留在早期的使用固定密钥进行加密甚至直接明文保存,完全依靠操作系统的安全边界来限制其他APP的访问,由于缺乏对于系统漏洞的防御,这些数字钱包的用户如果安装了带有本地提权机制的应用,那么其数字资产将面临严重的被盗风险。

硬件漏洞

以CPU漏洞Meltdown(熔断)和Spectre(幽灵)为例,利用CPU架构设计上的瑕疵,可以直接通过CPU在处理机密信息时留下的Cache内容,读取到用户的私钥/助记词内容。

(2) 网络传输的安全风险

网络传输的安全性更多的体现在是否有良好的对抗中间人攻击的能力上。中间人攻击(英语:Man-in-the-middle attack,缩写:MITM)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

虽然大部分数字钱包应用都会使用HTTPS协议和服务端进行通讯,但是中间人攻击方法上是可以通过在用户终端中安装一个数字证书的方式拿到HTTPS协议里面的内容。

安全的数字钱包需要能够对终端里面全部的数字证书的合法性进行扫描、对网络传输过程中的代理设置进行检查并能够保障基础的网络通讯环境的安全性。

在数字钱包的开发中,在网络传输层面是否使用双向校验的方式进行通讯验证也是衡量一个数字钱包应用安全性的重要评判标准。

(3) 文件存储方式的安全风险

对于数字钱包的私钥/助记词,终端设备的存储方式也是需要在安全性设计上加以注意的。私钥/助记词文件存放目录的访问权限、私钥/助记词存储的形式和加密算法设计都需要通过严密设计。

在对多款主流数字钱包进行安全性分析时,我们发现即使是知名的数字钱包,在私钥/助记词的存储上也是比较随意的。既有明文存储的,也有虽然是加密存储但是解密的密钥却是在代码里面固定写死的,起不到任何的安全防御作用。

(4)应用自身的安全风险

应用自身的安全风险主要集中在应用安装包自身的安全防御上。

应用安装包是否具备抗篡改能力是非常核心的技术能力。另外,应用运行过程中的内存安全、反调试能力、私钥/助记词使用的生命周期管理、调试日志的安全性、开发流程的安全等方面也是需要去设计增强的。

(5)数据备份的安全风险

如果移动应用能够被备份出来,就可以使用计算性能更加强大的机器对私钥/助记词进行暴力破解。举例来说,如果android:allowBackup 属性设置为允许备份,那么就可以利用系统的备份机制对应用的数据文件进行备份,而加密数字货币的私钥/助记词也就被备份到外部介质了,这就从另外一个方向打破了操作系统的安全边界设计。

三、如何应对加密数字货币钱包的安全风险?

基于在安全领域多年的经验积累,猎豹移动区块链中心实验室对加密数字货币钱包安全性问题提出如下修正建议:

(1) 对于钱包应用开发商来说,如果应用有安全漏洞出现,可按照本白皮书所述进行修正,然后给用户升级。由于旧版本用户私钥/助记词可能已经因为漏洞而泄露,唯一的解决办法就是升级到最新版本,然后重新创建一个新的加密数字钱包,通过转账的方式让用户将旧的资产转移到新的钱包地址,再将旧地址作废。

(2) 对于普通用户来说,如果正在使用的加密数字钱包存在安全漏洞,应在开发商完成漏洞修补升级版本之前换用其他安全的加密数字钱包应用,并重新创建一个全新的钱包地址,通过转账的方式将旧地址的资产转移到新地址,最后将旧地址作废。

摘录自互联网。