您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[CSA GCR]:数字钱包安全开发与应用实践 - 发现报告
当前位置:首页/行业研究/报告详情/

数字钱包安全开发与应用实践

信息技术2023-02-22CSA GCR棋***
数字钱包安全开发与应用实践

©2020云安全联盟大中华区-版权所有1 @2020云安全联盟大中华区-保留所有权利。你可以在你的电脑上下载、储存、展示、查看、打印及,或者访问云安全联盟大中华区官网(https://www.c-csa.cn)。须遵守以下:(a)本文只可作个人、信息获取、非商业用途;(b)本文内容不得篡改;(c)本文不得转发;(d)该商标、版权或其他声明不得删除。在遵循中华人民共和国著作权法相关条款情况下合理使用本文内容,使用时请注明引用于云安全联盟大中华区。 致谢 云安全联盟大中华区(简称:CSAGCR)区块链安全工作组在2020年2月份成立。由黄连金担任工作组组长,9位领军人分别担任工作组下的9个项目小组组长,分别有:知道创宇创始人&CEO赵伟领衔数字钱包安全小组,北大信息科学技术学院区块链研究中心主任陈钟领衔共识算法安全小组,赛博英杰创始人&董事长谭晓生领衔交易所安全小组,安比实验室创始人郭宇领衔智能合约安全小组,世界银行首席信息安全架构师张志军领衔Dapp安全小组,元界DNA创始人兼CEO初夏虎领衔去中心化数字身份安全小组,北理工教授祝烈煌领衔网络层安全小组,武汉大学教授陈晶领衔数据层安全小组,零时科技CEO邓永凯领衔AML技术与安全小组。 区块链安全工作组现有100多位安全专家们,分别来自中国电子学会、耶鲁大学、北京大学、北京理工大学、世界银行、中国金融认证中心、华为、腾讯、知道创宇、慢雾科技、启明星辰、天融信、联想、OPPO、零时科技、普华永道、安永、阿斯利康等六十多家单位。 本白皮书主要由数字钱包安全小组专家撰写,感谢以下专家的贡献: 原创作者:黄连金、肖龙、姚昌林、赵伟(按照字母排序) 审核专家:陈钟、徐正伟、杨士田、姚晓宇、余弦、赵淦森(按照字母排序)贡献单位:北京大学、知道创宇(按照字母排序) 关于研究工作组的更多介绍,请在CSA大中华区官网(https://c-csa.cn/research/)上查看。 如本白皮书有不妥当之处,敬请读者联系CSAGCR秘书处给与雅正!联系邮箱:info@c-csa.cn;云安全联盟CSA公众号: 序言 随着数字经济的发展,伴随着区块链技术而来的数字钱包形成对数字资产管理方式的冲击,对于大部分区块链的用户来说,数字钱包是他们首先接触的用户界面。数字钱包有各种不同的形式,但是都会直接或间接地对数字资产进行控制,或者说直接或间接地存储了可以控制数字资产所需要的私钥。 《数字钱包安全开发与应用实践》白皮书分析各种不同的数字资产钱包,和可能的风险和案例,对于如何开发和使用数字钱包提出了中肯的意见和最佳实践,并且提出了数字钱包安全测试标准。数字钱包的技术和安全随着区块链技术的发展,也在不断的发展,本文档对数字钱包安全进行的系统性分析和建议,希望对终端用户和钱包开发者有借鉴作用。 李雨航YaleLiCSA大中华区主席兼研究院院长 目录 致谢3 序言4 1数字货币钱包分类使用场景6 2数字钱包安全风险分析8 2.1数字钱包使用过程安全分析9 2.2数字钱包开发&应用技术安全分析10 3.数字钱包安全案例分析13 3.1数字钱包安全事件回溯13 3.2用户安全使用引导13 3.3数字钱包安全设计14 4数字钱包安全设计应用实践15 4.1无私钥钱包用户需求分析15 4.2企业级数字资产钱包需求分析20 5.数字钱包安全测试标准25 参考文献37 关于云安全联盟大中华区38 1数字货币钱包分类使用场景 数字货币钱包是用来帮助你存储、管理、交易数字货币的工具,利用钱包中生成的数字货币收款地址(公钥),可以接受他人给你转账的数字货币,也可以把你钱包中所拥有的数字货币资产转账给他人。 从私钥存储方式、存储数据量和使用主体三个维度将钱包进行分类介绍:按照私钥存储方式分类,可以将钱包分类冷钱包和热钱包两大类。 (1)冷钱包: 是指使用时不需私钥接触网络的钱包,网络无法访问私钥,比如专业的硬件设备,也称硬件钱包或离线钱包,一般通过USB接口、蓝牙、二维码等方式完成私钥签名。 优点:安全等级最高,避免了被黑客盗取私钥的风险;自己真正拥有私钥,不受他人监管。 缺点:硬件相对较贵;创建钱包和交易相对复杂,效率偏低;只支持主流币种,一般新的小币种不支持;存在硬件丢失或损坏的物理安全风险。 适用场景:交易所、企业、银行、机构、大额持币用户等资产管理安全性较高的场景。 (2)热钱包: 使用时需要接触网络的钱包,包含电脑客户端钱包、手机APP钱包、网页钱包等,也称在线钱包。 优点:创建钱包和交易均简单,使用方便,转账效率高。 缺点:安全性不足,私钥容易被黑客盗取;手机或电脑丢失,私钥容易被专业人士破解。 适用场景:新手、持币数量较少者、频繁交易者用于个人用户数字资产便捷交易(客户端钱包,浏览器钱包,网页版钱包)。 按照数字货币是否中心化管理分类,可以将钱包分为去中心化钱包和中心化钱包,按照存储区块链数据方式,去中心化钱包又分为全节点钱包(重钱包)和轻钱包。 (1)全节点钱包:是指需要同步所有区块链数据的钱包。 优点:可以实现去中心化,更好的隐私性;可以在本地验证交易数据的有效性。缺点:占用很大的硬盘空间,每次使用前需要同步数据;多币种数字资产支持不好, 用户体验欠佳。 适宜人群:企业、专业人士主要代表 (2)轻钱包,指依赖区块链网络上其他全节点,仅保存和同步与自己相关的数据。优点:占用硬盘空间较小,使用时不需同步数据;可以支持多币种数字资产,设计 功能简单,用户体验好。 缺点:实现去中心化不足,交易验证相对较慢。适宜人群:个人、小白用户主要代表 (3)中心化钱包,是指不依赖区块链网络,所有的数据均从自己的中心化服务器中获得,也称链下钱包。 优点:平台负责私钥的安全管理,私钥(密码)忘记或丢失可以找回;交易效率很高,可以实时到账,可以支持多币种;钱包被盗,大型交易所一般会给予等值赔偿。 缺点:过度依赖中心化,存在平台自盗、倒闭、跑路等风险,另外是黑客重点攻击目标。 适宜人群:炒币群体,需要频繁交易主要代表。 按照钱包的表现形态分类,分为:网页钱包、浏览器插件钱包、PC端钱包、硬件钱包、手机app钱包。 (1)网页钱包: 网页形式发布的钱包程序,无需安装,打开即可使用、跨平台,有浏览器的设备即 可。 (2)浏览器插件钱包: 以浏览器插件的形式存在,比如chrome浏览器的Metamask钱包插件。 (3)PC端钱包: 指电脑终端的数字货币钱包,可以通过这个终端进行操作,不便捷。 (4)硬件钱包: 指用专业的硬件存储数字货币,将数字资产私钥单独储存在一个芯片中,与互联网隔离,即插即用。硬件钱包是一个实体设备,不能保证100%安全。只是相对于其他保管手段,这是最安全的储存手段之一。 (5)手机APP钱包: 目前最常见的,适用于新人的就是APP轻钱包,也是大家用的比较多的,相对于网页钱包更加灵活方便,安全性较高。但对于大额的数字资产用来说安全性欠缺,可使用不联网的手机生成冷钱包,联网手机仅用于查看钱包。 近几年APP钱包出现一种基于智能合约的钱包,用户可以控制私钥和资产,但是利用智能合约可以增加一些基于区块链的功能,比如MYKEY、Argent、GnosisSafe、Authereum这些,核心风险主要在智能合约这块。我们在第五章安全测试标准对于这种类型的钱包的测试提出建议。 2数字钱包安全风险分析 2019年1月黑客利用Electrum钱包漏洞窃取了约价值75万美元的BTC。 2019年5月,黑客入侵币安交易所并盗取了700枚BTC,总价值高达4000万美元。 2019年6月Gatehub存放用户API访问令牌的数据库遭受入侵,初步统计已有100 个XRP钱包信息泄露,损失估计为1000万美元。 2019年7月位于新加坡的加密通证交易所Birtue遭受黑客攻击,因其风险管控漏 洞,黑客共盗取了价值500万美元的XRP与ADA。 数字钱包安全性问题日益严峻,交易所钱包的安全漏洞、风险管控的疏忽使用户的加密资产面临被黑客攻击、盗取的风险,对加密通证市场的发展产生不良影响,但客观上也为未来数字钱包行业的完善进步指明了方向。 2.1数字钱包使用过程安全分析 在加密数字货币钱包的日常操作使用过程中,主要有创建钱包和使用(包含交易,钱包余额查看等)两个环节,针对不同的环节我们整理了软硬件层面大部分的安全漏洞和黑客攻击方式。 图1-1 环节 漏洞 攻击方式 创建钱包 随机数 128bit随机数的随机问题,空间分布不均,缺乏专门的审计流程对随机数 进行安全测试 随机数攻击 助记词 助记词保存不安全,助记词强度不足 盗取、暴力破解 私钥存储 App钱包数据没有加密存储,运行环 境存在未知病毒以及操作系统漏洞 漏洞利用、复制 盗取 硬件钱包设备接口过多,未采用安全 芯片,软系统过于复杂 盗取设备暴力 破解 私钥使用 联网操作存在HTTPS及DNS劫持风险 钓鱼攻击 交易环节 创建交易 交易双方的账号没有二次验证 收款账户信息被恶意替换 交易签名 在线环境不安全,协议设计不严格 盗取PIN码 交易广播 操作系统不安全,非私密链接 通讯拦截交易 表1-1 2.2数字钱包开发&应用技术安全分析 1)运行环境的安全风险 加密数字货币钱包最核心的文件—私钥/助记词是存储在终端设备上的,无论是PC端还是移动端,终端设备如果出现不安全的现象,对于私钥/助记词来说是有非常高的安全风险的。一个安全的数字钱包,在设计之初就应该避免因为运行环境不安全而导致的私钥/助记词被盗的可能。终端上运行环境的安全问题主要包括病毒软件、操作系统漏洞等。 (1)病毒软件 和普通的银行客户端或支付APP不同的是,加密数字货币钱包的私钥/助记词不具备挂失能力,无法通过对账户进行冻结来降低损失,一旦被盗则资产一定会丢失。一款安全的数字钱包,能否对扫描出的终端环境里面的病毒软件和未知病毒软件进行防御是核心考核指标之一。 (2)操作系统漏洞 利用操作系统漏洞,可以轻易的绕过操作系统设计的一系列安全边界或沙箱机制,获得访问加密数字货币钱包私钥/助记词的能力。无论是Android、iOS、Windows还是Linux,每年都有大量的安全漏洞被公开和修复,而这些漏洞里面就有不少高危的本地提权的漏洞。利用这些提权漏洞就可以轻易的打破操作系统的安全设计边界,获得访问用户数字钱包私钥/助记词存储文件的能力。 目前大多数加密数字货币钱包的安全设计都是完全依靠操作系统的安全边界,对于私钥/助记词的存储和处理还是停留在早期的使用固定密钥进行加密甚至直接明文保存,完全依靠操作系统的安全边界来限制其他APP的访问,由于缺乏对于系统漏洞的防御,这些数字钱包的用户如果安装了带有本地提权机制的应用,那么其数字资产将面临严重的被盗风险。 2)网络传输的安全风险 网络传输的安全性更多的体现在是否有良好的对抗中间人攻击的能力上。中间人攻击(英语:Man-in-the-middleattack,缩写:MITM)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全监听和控制。 虽然大部分数字钱包应用都会使用HTTPS协议和服务端进行通讯,但是中间人攻击方法上是可以通过在用户终端中安装一个数字证书的方式拿到HTTPS协议里面的内容。 安全的数字钱包需要能够对终端里面全部的数字证书的合法性进行扫描、对网络传输过程中的代理设置进行检查并能够保障基础的网络通讯环境的安全性。在数字钱包的开发中,在网络传输层面是否使用双向校验的方式进行通讯验证也是衡量一个数字钱包应用安全性的重要评判标准。 3)私钥(助记词)随机数生成风险 私钥的保管对于用户加密通证的安全极为关键。私钥本质是一串随机选出的一定长度的数字。这串数字控制着通证账号的所有权,因此这串数字相当重