数字钱包安全开发与应用实践.pdf
2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 12 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 2 2 0 2 0 云 安 全 联 盟 大 中 华 区 - 保 留 所 有 权 利 。 你 可 以 在 你 的 电 脑 上 下 载 、 储 存 、 展 示 、 查 看 、 打 印 及 , 或 者 访 问 云 安 全 联 盟 大 中 华 区 官 网 ( h t t p s : / / w w w . c - c s a . c n ) 。 须 遵 守 以 下 : ( a ) 本 文 只 可 作 个 人 、 信 息 获 取 、 非 商 业 用 途 ; ( b ) 本 文 内 容 不 得 篡 改 ; ( c ) 本 文 不 得 转 发 ; ( d ) 该 商 标 、 版 权 或 其 他 声 明 不 得 删 除 。 在 遵 循 中 华 人 民 共 和 国 著 作 权 法 相 关 条 款 情 况 下 合 理 使 用 本 文 内 容 , 使 用 时 请 注 明 引 用 于 云 安 全 联 盟 大 中 华 区2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 3 致 谢 云安全联盟大中华区(简称:CSA GCR)区块链安全工作组在 2020 年 2 月份成立。 由黄连金担任工作组组长, 9 位领军人分别担任工作组下的 9 个项目小组组长, 分别有 : 知 道 创 宇 创 始 人 云安全联盟 CSA 公众号2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 4 序 言 随着数字经济的发展, 伴随着区块链技术而来的数字钱包形成对数字资产管理方式 的冲击, 对于大部分区块链的用户来说, 数字钱包是他们首先接触的用户界面 。 数字钱 包有各种不同的形式, 但是都会直接或间接地对数字资产进行控制, 或者说直接或间接 地存储了可以控制数字资产所需要的私钥。 数字钱包安全开发与应用实践 白皮书分析各种不同的数字资产钱包, 和可能的 风险和案例, 对于如何开发和使用数字钱包提出了中肯的意见和最佳实践, 并且提出了 数字钱包安全测试标准。 数字钱包的技术和安全随着区块链技术的发展, 也在不断的发 展, 本文档对数字钱包安全进行的系统性分析和建议, 希望对终端用户和钱包开发者有 借鉴作用。 李雨航 Y a l e L i C S A 大中华区主席兼研究院院长2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 5 目 录 致谢. 3 序言. 4 1 数字货币钱包分类使用场景. 6 2 数字钱包安全风险分析. 8 2.1 数字钱包使用过程安全分析. 9 2.2 数字钱包开发&应用技术安全分析. 1 0 3.数字钱包安全案例分析. 1 3 3.1 数字钱包安全事件回溯. 1 3 3.2 用户安全使用引导. 1 3 3.3 数字钱包安全设计. 1 4 4 数字钱包安全设计应用实践. 1 5 4.1 无私钥钱包用户需求分析. 1 5 4.2 企业级数字资产钱包需求分析. 2 0 5. 数字钱包安全测试标准. 2 5 参考文献. 3 7 关于云安全联盟大中华区. 3 82 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 6 1 数 字 货 币 钱 包 分 类 使 用 场 景 数字货币钱包是用来帮助你存储、 管理、 交易数字货币的工具, 利用钱包中生成的 数字货币收款地址 (公钥) , 可以接受他人给你转账的数字货币 , 也可以把你钱包中所 拥有的数字货币资产转账给他人。 从私钥存储方式、存储数据量和使用主体三个维度将钱包进行分类介绍: 按照 私钥 存储方 式分 类,可 以将钱 包分 类冷钱 包和 热钱包 两大 类 。 (1) 冷钱 包: 是指使用时不需私钥接触网络的钱包,网络无法访问私钥,比如专业的硬件设备, 也称硬件钱包或离线钱包,一般通过 USB 接口、蓝牙、二维码等方式完成私钥签名。 优点: 安全等级最高, 避免了被黑客盗取私钥的风险 ; 自己真正拥有私钥, 不受他 人监管。 缺点: 硬件相对较贵; 创建钱包和交易相对复杂 , 效率偏低; 只支持主流币种, 一 般新的小币种不支持;存在硬件丢失或损坏的物理安全风险。 适用场景: 交易所、 企业、 银行、 机构、 大额持币用户等资产管理安全性较高的场 景。 (2) 热钱 包: 使用时需要接触网络的钱包,包含电脑客户端钱包、手机 APP 钱包、网页钱包等, 也称在线钱包。 优点:创建钱包和交易均简单,使用方便,转账效率高。 缺点: 安全性不足, 私钥容易被黑客盗取 ; 手机或电脑丢失, 私钥容易被专业人士 破解。 适用场景: 新手、 持币数量较少者、 频繁交易者用于个人用户数字资产便捷交易 (客 户端钱包,浏览器钱包,网页版钱包2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 7 按 照 数字 货 币 是否 中 心 化 管理 分 类 , 可 以 将钱 包 分 为去 中 心 化 钱包 和 中 心 化钱 包 , 按照 存储 区块链 数据 方式, 去中心 化钱 包又分 为全 节点钱 包( 重钱包 )和轻 钱包 。 (1) 全节 点钱 包:是 指需 要同步 所有区 块链 数据的 钱包 。 优点:可以实现去中心化,更好的隐私性;可以在本地验证交易数据的有效性。 缺点: 占用很大的硬盘空间, 每次使用前需要同步数据 ; 多币种数字资产支持不好 , 用户体验欠佳。 适宜人群:企业、专业人士主要代表 (2) 轻钱 包 , 指依 赖区 块链网 络上 其他全 节点 , 仅保 存和 同步与 自己 相关的 数据 。 优点: 占用硬盘空间较小, 使用时不需同步数据 ; 可以支持多币种数字资产, 设计 功能简单,用户体验好。 缺点:实现去中心化不足,交易验证相对较慢。 适宜人群:个人、小白用户主要代表 (3 )中 心 化钱 包 ,是 指 不依 赖 区 块链 网 络 ,所 有 的数 据 均 从自 己 的 中心 化 服 务 器 中获 得, 也称链 下钱 包。 优点: 平台负责私钥的安全管理, 私钥 (密码) 忘记或丢失可以找回; 交易效率很 高,可以实时到账,可以支持多币种;钱包被盗,大型交易所一般会给予等值赔偿。 缺点: 过度依赖中心化, 存在平台自盗 、 倒闭、 跑路等风险, 另外是黑客重点攻击 目标。 适宜人群:炒币群体,需要频繁交易主要代表。 按 照 钱 包 的 表 现 形 态 分 类 , 分 为 : 网 页 钱 包 、 浏 览 器 插 件 钱 包 、 P C 端 钱 包 、 硬 件 钱包 、手 机 a p p 钱包 。 (1) 网页 钱包 : 网页形式发布的钱包程序, 无需安装 , 打开即可使用 、 跨平台, 有浏览器的设备即2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 8 可。 (2) 浏览 器插 件钱包 : 以浏览器插件的形式存在,比如 c h r o m e 浏览器的 M e t a m a s k 钱包插件。 (3) P C 端钱 包: 指电脑终端的数字货币钱包,可以通过这个终端进行操作,不便捷。 (4) 硬件 钱包 : 指用专业的硬件存储数字货币, 将数字资产私钥单独储存在一个芯片中, 与互联网 隔离 ,即 插即用 。硬件 钱包 是一个 实体设 备, 不能保 证 1 0 0 % 安全 。只 是相对 于其他 保 管手段,这是最安全的储存手段之一。 (5) 手机 A PP 钱包 : 目 前 最常 见 的 ,适 用 于 新人 的 就 是 A P P 轻 钱 包 , 也 是 大家 用 的 比较 多 的 ,相 对 于 网 页钱包更加灵活方便, 安全性较高。 但对于大额的数字资产用来说安全性欠缺 , 可使用 不联网的手机生成冷钱包,联网手机仅用于查看钱包。 近 几 年 A P P 钱 包 出 现 一 种 基 于 智 能 合 约 的 钱 包 , 用 户 可 以 控 制 私 钥 和 资 产 , 但 是 利 用 智 能 合 约 可 以 增 加 一 些 基 于 区 块 链 的 功 能 , 比 如 M Y K E Y 、 A r g e n t 、 G n o s i s S a f e 、 A u t h e r e u m 这些, 核心风险主要在智 能合约这块 。 我们在第五章安全 测试标准对于这种 类型的钱包的测试提出建议。 2 数 字 钱 包 安 全 风 险 分 析 2 0 1 9 年 1 月黑客利用 E l e c t r u m 钱包漏洞窃取了约价值 7 5 万美元的 B T C 。 2 0 1 9 年 5 月, 黑客入侵币安交易所并盗取了 7 0 0 枚 B T C , 总价值高达 4 0 0 0 万美元 。 2 0 1 9 年 6 月 Ga t e h u b 存放用户 A P I 访问令牌 的数据库遭受 入侵 , 初步统计 已有 1 0 0 个 X R P 钱包信息泄露,损失估计为 1 0 0 0 万美元。 2 0 1 9 年 7 月 位 于 新 加 坡 的 加 密 通 证 交 易 所 B i r t u e 遭 受 黑 客 攻 击 , 因 其 风 险 管 控 漏2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 9 洞,黑客共盗取了价值 5 0 0 万美元的 X R P 与 A D A 。 数字钱包安全性问题日益严峻, 交易所钱包的安全漏洞、 风险管控的疏忽使用户的 加密资产面临被黑客攻击、 盗取的风险, 对加密通证市场的发展产生不良影响 , 但客观 上也为未来数字钱包行业的完善进步指明了方向。 2 . 1 数字 钱包 使用 过程 安全 分析 在加密数字货币钱包的日常操作使用过程中,主要有创建钱包和使用(包含交易, 钱包余额查看等) 两个环节, 针对不同的环节我们整理了软硬件层面大部分的安全漏洞 和黑客攻击方式。 图 1 - 12 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 0 环节 漏洞 攻击 方式 创建 钱包 随机 数 1 2 8 b i t 随机 数的 随机问 题 , 空间 分布 不均 , 缺乏 专门 的审计 流程 对随机 数 进行 安全 测试 随机 数攻 击 助记 词 助记 词保 存不安 全 , 助记 词强 度不足 盗取、 暴力 破解 私钥 存储 A p p 钱包 数据 没有加 密存 储 , 运行 环 境存 在未 知病毒 以及 操作系 统漏洞 漏洞 利用 、 复制 盗取 硬件 钱包 设备接 口过 多 , 未采 用安 全 芯片 ,软 系统过 于复 杂 盗取 设备 暴力 破解 私钥 使用 联网 操作 存在 H T T P S 及 D N S 劫持 风 险 钓鱼 攻击 交易 环节 创建 交易 交易 双方 的账号 没有 二次验 证 收款 账户 信息 被恶 意替 换 交易 签名 在线 环境 不安全 ,协 议设计 不严格 盗取 P IN 码 交易 广播 操作 系统 不安全 ,非 私密链 接 通讯 拦截 交易 表 1 - 1 2 . 2 数字 钱包 开发 & 应用 技术 安全 分析 1 ) 运行 环境 的安全 风险 加密数字货币钱包最核心的文件私钥/ 助记词是存储在终端设备上的 , 无论是 P C 端 还是 移动 端 ,终 端设 备 如果 出 现不 安全 的 现象 ,对 于 私钥 / 助 记词 来说 是 有非 常高 的 安全风险的。 一个安全的数字钱包, 在设计之初就应该避免因为运行环境不安全而导致 的 私钥 / 助 记词 被盗 的 可能 。终 端 上运 行 环境 的安 全 问题 主要 包 括病 毒软 件 、操 作系 统 漏洞等。 (1 )病毒软件 和普 通的银 行客 户端或 支付 A P P 不同 的是, 加密 数字货 币钱包 的私 钥 / 助记 词不具 备挂失能力, 无法通过对账户进行冻结来降低损失, 一旦被盗则资产一定会丢失 。 一款 安全的数字钱包, 能否对扫描出的终端环境里面的病毒软件和未知病毒软件进行防御是 核心考核指标之一2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 1 (2 )操作系统漏洞 利用操作系统漏洞,可以轻易的绕过操作系统设计的一系列安全边界或沙箱机制, 获得 访问 加密数 字货币 钱包 私钥 / 助记 词的 能力。 无论是 A n d r o i d 、 i O S 、 W i n d o w s 还是 L i n u x , 每 年 都 有 大 量 的 安 全 漏 洞 被 公 开 和 修 复 , 而 这 些 漏 洞 里 面 就 有 不 少 高 危 的 本 地 提权的漏洞。 利用这些提权漏洞就可以轻易的打破操作系统的安全设计边界, 获得访问 用户数字钱包私钥/ 助记词存储文件的能力。 目前大多数加密数字货币钱包的安全设计都是完全依靠操作系统的安全边界, 对于 私 钥 / 助 记 词 的 存 储 和 处 理 还 是 停 留 在 早 期 的 使 用 固 定 密 钥 进 行 加 密 甚 至 直 接 明 文 保 存 , 完 全 依 靠 操 作 系 统 的 安 全 边 界 来 限 制 其 他 A P P 的 访 问 , 由 于 缺 乏 对 于 系 统 漏 洞 的 防御, 这些数字钱包的用户如果安装了带有本地提权机制的应用, 那么其数字资产将面 临严重的被盗风险。 2 ) 网络 传输 的安全 风险 网络传输的安全性更多的体现在是否有良好的对抗中间人攻击的能力上。 中间人攻 击 (英语 : M a n - i n - t h e - m i d d l e a t t a c k , 缩写: M I T M ) 是指攻 击者与通 讯的两端 分别创建 独立的联系, 并交换其所收到的数据, 使通讯的两端认为他们正在通过一个私密的连接 与对方直接对话,但事实上整个会话都被攻击者完全监听和控制。 虽然大部分数字钱包应用都会使 用 H T T P S 协议和服务端进行通讯 , 但是中间人攻击 方法上是可以通过在用户终端中安装一个数字证书的方式拿到 H T T P S 协议里面的内容 。 安全的数字钱包需要能够对终端里面全部的数字证书的合法性进行扫描、 对网络传 输过程中的代理设置进行检查并能够保障基础的网络通讯环境的安全性。 在数字钱包的 开发中, 在网络传输层面是否使用双向校验的方式进行通讯验证也是衡量一个数字钱包 应用安全性的重要评判标准。 3 ) 私钥 (助 记词) 随机 数生成 风险 私钥的保管对于用户加密通证的安全极为关键。 私钥本质是一串随机选出的一定长 度的数字。 这串数字控制着通证账号的所有权, 因此这串数字相当重要 , 要具有足够的 随 机 性 。 在 私 钥 的 产 生 过 程 中 , 一 般 采 用 密 码 学 安 全 的 随 机 数 生 成 器2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 2 ( C r y p t o g r a p h i c a l l y S e c u r e P s e u d o r a n d o m N u m b e r G e n e r a t o r : C S P N G ) , 并 且 需 要 有 一 个 来 自具有足够熵值的源的种子( s e e d ) 。 硬件钱包在私钥的随机性上主要依托于自身的安全芯片进行随机数生成, 而有些硬 件钱包会采用更为有效的方法生成随机数, 例如采集硬件噪声所生成的系统熵作为随机 数,或使用自身搭载的摄像头进行环境图像采集,生成系统熵用于私钥产出。 4 ) 私钥 (助 记词) 存储 方式风 险 对 于数 字 钱包 的私 钥 / 助 记词 , 终端 设备 的 存储 方 式也 是 需要 在 安全 性设 计 上加 以 注意的。 私钥 / 助记词文件存放目录的访问权限 、 私钥/ 助记词存储的形式和加密算法设 计都需要通过严密设计。 在对多款主流数字钱包进行安全性分析时, 我们发现即便是知名的数字钱包, 在私 钥/ 助 记词 的存 储 上也 是比 较 随意 的 。既 有明 文 存储 的, 也 有虽 然是 加 密存 储但 是 解密 的密钥却是在代码里面固定写死的,起不到任何的安全防御作用。 5 ) 应用 自身 的安全 风险 数字钱包应用自身的安全风险主要集中在应用安装包自身的安全防御上。 应用安装 包是否具备抗篡改能力是非常核心的技术能力。 另外, 应用运行过程中的内存安全 、 反 调 试能 力、 私 钥 / 助 记词 使用 的 生命 周期 管 理、 调 试日 志的 安 全性 、开 发 流程 的安 全 等 方面也是需要去设计增强的。 6 ) 数据 备份 的安全 风险 如果数字钱包应用的数据能够被备份出来, 就可以使用计算性能更加强大的机器对 私 钥 / 助 记 词 进 行 暴 力 破 解 。 举 例 来 说 , 如 果 A n d r o i d 属 性 设 置 为 允 许 备 份 , 那 么 就 可 以 利用 系统 的 备份 机制 对 应用 的 数据 文件 进 行备 份, 而 加密 数字 货 币的 私钥 / 助 记词 也 就被备份到外部介质了,这就从另外一个方向打破了操作系统的安全边界设计2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 3 3 . 数 字 钱 包 安 全 案 例 分 析 3 . 1 数字 钱包 安全 事件 回溯 2 0 1 8 年 1 2 月 2 8 日 , 知 名 比 特 币 钱 包 E l e c t r u m 遭 受 新 型 钓 鱼 攻 击 已 经 损 失 近 2 5 0 个比特币 ( 约 9 1 . 4 万美元 ) , 黑客利用僵尸网络发 动约每秒 2 5 G b 的恶意流量阻塞服务 器, 然后劫持服务器并诱导用户跳转钓鱼网站。 这个钓鱼网站声称用户需要升级钱包客 户端并向用户提供携带后门的版本,用户升级后比特币会被立即转走。 2 0 1 9 年 6 月 5 日 , 用 于 安 全 存 储 / 处 理 X R P 的 钱 包 和 网 关 G a t e H u b 中 大 约 有 8 0 - 9 0 个 受 害 者受 到 黑 客 攻 击, 被 窃 总 量 大 约为 2 3 , 2 0 0 , 0 0 0 瑞 波 币 。没 有 确 凿 证 据指 向 攻 击 的 源 头 , 攻 击 的 发 生 可 能 有 各 种 方 式 , 包 括 钓 鱼 、 G a t e h u b 账 户 被 黑 客 攻 击 , G a t e h u b 包含用户私钥的加密数据库被盗并且被离线暴力平均等。 2 0 1 9 年 1 0 月 1 1 日, 网页加密 货币钱包 S a f u w a l l e t 被黑客通 过注入恶意代码窃 取了 大量资金。 2 0 2 0 年 7 月 2 5 日, 数字钱包 L e d g e r 的数据库被未经授权 访问 , 导致数据 泄漏 。 泄 漏的数据包括电子商务和市场营销数据。 付款信息和加密资产是否安全, 外界不能确定, 虽然 L e d g e r 官方认为 是安全的 。 L e d g e r 的公告声 称 黑客利用 被盗的 A P I 密钥用于 未经 授权访问数据库。目前 A P I 密钥已失效。 3 . 2 用户 安全 使用 引导 必须要对私钥或助记词加以备份保管, 放在不同安全地方, 备份后并进行验证, 备份信息不要接触网络。 钱包 下载时 官网下 载最安 全, 下 载后 可以通 过检验 哈希值 是否和 官方公 示一致 的方法进行验证真伪,其他下载渠道就尽量不要使用。 及时更新数字钱包版本,防止最新的安全漏洞给黑客攻击的机会。 一般个人用户而言,选择中心化钱包,不用担心私钥备份和丢失问题。 对于 持币量 较大的 用户, 或者长 期投资 不做频 繁交易 的,需 要选择 专业的 硬件2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 4 冷钱包。 对于 去中心 化钱包 ,私钥 交由用 户保存 ,重视 钱包安 全核心 要素的 手动备 份。 建议通过相对原始的方法来手动记录, 远离截图、 复制等一切电脑操作 , 养成良好的上 网习惯, 将风险降到最低。 条件许可的话, 可以考虑专门用于数字钱包的手机, 不下载 其他任何移动应用。 3 . 3 数字 钱包 安全 设计 1 . 网络 传输 安全 大部分数字 钱包应用都会使用 H T T P S 协议和服务 端进行通讯,但是中间 人攻击方 法上是可以通 过在用户终端中安装一 个数字证书的方式拿到 H T T P S 协议里面的内 容。 安全的数字钱包需要能够对终端里面全部的数字证书的合法性进行扫描。 在数字钱包的 开发中, 在网络传输层面是否使用双向校验的方式进行通讯验证是衡量一个数字钱包应 用安全性的重要评判标准。 2 . 接口 调用 权限安 全 钱包本身只是区块链世界 的接口软件 , 目前 很多都是使用 R P C 调用相应接口 , 这样 调用过程对数据传输的权限控制是数据通讯时的安全之本, 对代码和各种场景的设计要 非常仔细。 远程过程调用时安全策略 : 如在以太坊钱包节点 G e t h 上启用远程过程调用 访问时,千万不要允许带有解锁账户功能的远程过程调用的外部访问等。 3 . 客户 端文 件管理 安全 文件安全主要考虑的是安装在用户端的文件是加密并不可被破解的, 以及对用户的 一些禁止性操作或者增加对某些风险操作的不便利性来降低用户造成的风险。 1 )抵御终端不良程序对关键文件的访问 加密数字资产钱包最核心的文件私钥/ 助记词是存储在终端设备上的 , 无论是 P C 端 还是 移动 端 ,终 端设 备 如果 出 现不 安全 的 现象 ,对 于 私钥 / 助 记词 来说 是 有非 常高 的 安 全风 险的 。 一个 安全 的 数字 钱 包, 在设 计 之初 就避 免 因为 运行 环 境而 导致 的 私钥 / 助 记词存在被盗可能, 比如增加用户操作要访问到核心文件时必须进行人脸识别或者短信2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 5 确认的功能等。 2 )终端关键文件加密 对终端关键文件采用高安全的加密方式, 防止普通程序访问, 或者即使关键文件被 复制出去, 第三方也不能轻易破解的功能。 在设计钱包时需考虑实际安全操作性采取限 制直接导出关键文件的操作, 或者允许导出关键文件但是解密方法以不能进行任何操作 的显示方式,供用户手动记录。 3 )助记词等关键信息生成和管理 对于钱包的核心关 键信息 , 如助记词 、 私钥 、 K e y s t o r e 的生成和管理需充 分考虑安 全性。这三者的设计原则和思路基本相同,以助记词为例:为确保客户端生成助记词, 不能经过任何云端或者服务器, 这是去中心化钱包的核心, 任何访问助记词的过程都需 要用户主动确认,如上面提到的人脸识别或者短信确认的功能等。 4 . 开发 扩展 安全 考虑到钱包作为区块链的接口端, 对应用扩展需求很重要, 所以设计上需严格控制 开放 端口的权 限,确 保通讯 只是公钥 签名。 同时 对应用程 序要严 格审查 是否具备 抗篡 改能力的核心技术能力,以及应用运行过程中的内存安全、反调试能力等。除此之外, 考虑到用户密码忘记的风险, 可以考虑采用多签方式增加各种应用场景, 如密码找回功 能等。 4 数 字 钱 包 安 全 设 计 应 用 实 践 4 . 1 无私 钥钱 包用 户需 求分 析 加密货币钱包一直被认为是未来加密数字经济必中不可少的基础设施。 传统的加密 钱包提供的解决方案是, 基于密码学生成公私钥, 用户通过手中的私钥来验明自己的身 份, 从而获得资产的控制权。 但私钥的存储方式十分考究 。 没有了私钥, 就失去了资产 的掌控权, 几乎所有传统钱包都在用户注册时就提示用户使用物理方式记录自己的私钥 信息。 出于手机的私钥存储文件可能遭遇病毒、 误删清理等方式等威胁 。 手动抄写纸质2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 6 版私钥的方式相对更安全、 隐蔽。 但这样的操作逻辑对于初级用户来说是非常不友好的, 不仅私钥的概念增加了其理解负担, 物理存储私钥的模式也一样有丢失风险。 如何在妥 善保障私钥安全的前提下提升钱包易用性,是钱包开发者永恒的命题。 因 为 丢 失 助 记 词 而 导 致 自 身 加 密 资 产 无 法 找 回 的 情 况 屡 见 不 鲜 , 根 据 2 0 1 9 年 C o i n m e t r i c s 发 布 的 报 告 : 有 近 1 7 0 万 枚 B T C 已 经 丢 失 。 许 多 钱 包 在 创 建 的 过 程 中 , 也 都要求用户手抄助记词以防止在联网环境下被转移资产。 为了保证资金的安全, 助记词 (或私钥) 的保管就需要足够的小心 , 一方面我们要进行备份 , 以防私钥丢失, 另一方 面由于备份也会增加被盗风险, 这也是钱包糟糕的体验的一大原因 (安全与体验需要权 衡 折中 考虑 ) 。因 此, 如 何在 保 障用 户资 产 安全 的同 时 摆脱 对私 钥 / 助 记词 的依 赖 ,更 好获得区块链钱包的用户体验,成为越来越多团队的研究方向。 门限 签名 技术实 现 “私钥 自由 ”: 为 了 提 高 资 产 的 安 全 性 , 尤 其 是 大 额 资 产 , 目 前 通 常 有 这 三 个 方 案 : 多 签 签 名 ( M u l t i S i g ) 、 密 钥 共 享 ( S e c r e t S h a r i n g ) 模 式 和 门 限 签 名 ( T h r e s h o l d s i g n a t u r e s : T S S ) 方案。 多签 签名 ( M u l t i S i g ) 如 果 大 额 的资 产 , 通 常 会 使 用 多签 ( M u l t i S i g ) 的 方 式 来分 担 风 险 与 责 任 , 多签 通 常需 要有多 个私钥( N ), 只有当 其中的 M 个私 钥参与 的签名, 才可以 动用资 产,因 此正确使用 (不把私钥放在一起, 由不同的人保管 ) , 确实可以提高安全性, 因为即使 部分私钥被盗或丢失,资产依然是安全的。 多签可以理解为一个有多把钥匙的保险柜, 使用多签签名时, 还应该避免私钥复用, 私钥复用会增加私钥泄漏的风险。 多签签名通常使用链上合约 (或脚本) 实现, 这也给 多签带来一个缺点: 需要支付更高的交易费用以及多人异步签名导致的更长的交易确认 时间。 密钥 共享 ( S e c r e t S h a r i n g ) 与 多签 不 同 ,密 钥 共享 模 式 ( S h a m i r s S e c r e t S h a r i n g : S S S ) 可 以理 解 为 一个 把 钥匙 分层多个部分。 通过将密钥分成多个部分并以冗余方式分开保管, 发起交易则将一定数2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 7 量的密钥重新组装为密钥进行签名, 这个方案也可以解决密钥被盗的风险, 同时解决了 上 述多 签 费用 高 的缺 点。 不 过 S S S 有 一个 主 要缺 点 :当 密钥 被 重新 组 装时 , 会为 攻 击 者提供了获取密钥的可乘之机。 门限 签名 ( T h r e s h o l d s i g n a t u r e s : T S S ) 方案 门限签名方案 (简称: T S S ) 结合 S S S 和多签的优点, 它基于多方安全 计算 ( M P C : M u l t i - P a r t y C o m p u t a t i o n ) 使 用 多 个 分 片 的 密 钥 轮 流 进 行 ( 交 易 ) 签 名 , 生 成 最 终 有 效 的签名。 B i n a n c e 门限 签名 方案( T S S ) T S S 作 为 一 种 分 布 式 密 钥 生 成 和 签 名 的 加 密 协 议 , 通 过 分 布 式 的 密 钥 管 理 方 式 让私钥不再成为钱包和资产托管的最脆弱的环。 允许构造一个在不同参与方 (例如三 个用户) 之间分发的签名每个人都只持有部分私钥碎片, 为了进行交易签名 , 需要将至 少两个用户的签名数据整合在起才能构建有效签名。 对于 个人而 言,门 限签名 机制可 以帮助 使用持 有的多 个设备 共同管 理私钥 ,从 而使单个受损设备不会对资产造成风险。 对于业务运营商, 门限签名机制可实现更好的 访问控制策略, 以防止内部或外部员窃取公司资 金 。 T S S 技术使我们可以用分布式计 算替换所有签名命令,从而让私钥不再成为一个单点风险。 门限 签名 方案跟 前面 多签和 S S S 方案 不同 的是: 多签通常是需要 M / N 个签名,而门限签名(目前)需要多方都参与签名。 多签 通常是 链上进 行的, 费用较 高,并 且不同 的链多 签的实 现方案 差别很 大。 而门限签名是链下的纯密码学的计算生成签名,兼容性更强。 多签 是可以 异步进 行签名 ,而门 限签名 要求所 有参与 方在操 作过程 中都同 时在 线。 T S S 和 S S S 不 一 样 在 于 , S S S 虽 然 分 片 密 钥 , 但 是 最 终 要 重 构 出 密 钥 来 签 名 , 那 么 就 存 在 单 点 故 障 和 重 构 出 的 密 钥 被 泄 露 的 可 能 。 而 门 限 签 名 ( T S S ) 不 需 要 重 构出密钥2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 8 基于 门限 签名技 术的 无私钥 钱包解 决方 案 Z e n G o 2 0 1 9 年 9 月 , 以 色 列 加 密 货 币 钱 包 Z e n G o 发 布 了 2 . 0 版 本 , 旨 在 借 助 突 破 性 的 加 密技术, 打造了第一款无私钥安全加密钱包, 将安全性分布在自主可控设备与钱包服务 器之间, 无需担心私钥, 即使被黑或者丢失了钱包 , 资产也始终安全, 通过完全自主的 控制钱包来获得最大的安全性体验。 Z e n G o 基 于 门 限 签 名 技 术 方 案 采 用 将 单 个 私 钥 拆 分 为 多 个 私 钥 碎 片 ( 目 前 是 两 个 部 分 ) 由 约 定多 个 参 与 方 各自 保 管 的 模 式。 这 里 我 们 将其 中 一 个 密 钥保 存 在 用 户 自主 可 控 的设备上, 另一个存储在钱包服务器上, 在进行交易的时候, 手机和钱包服务器通信共 同完成签名。 这套机制和中心化的钱包完全不一样, 只有用户本人才可以发起转账 , 钱 包是无法使用用户资金的。 如果需要发起转账, 用户需要主动发起, 然后服务端和客户 端将会使用这两个密钥份额进行通讯并签署转账请求, 但不会将这两个密钥本身暴露给 对方。 备 份 钱 包 也 是 相 当 简 单 的 。 一 份 加 密 过 的 客 户 端 持 有 的 密 钥 会 储 存 在 钱 包 服 务 器 中 , 而 解 密 的 方 法 是 单 独 存 储 在 用 户 个 人 账 户 中 , 只 有 用 户 本 人 的 面 部 3 D 扫 描 图 才 可以用来进行解密。 所以如果用户不小心删除了钱包软件, 或者不小心遗失了手机 , 都 可以在几秒钟之内恢复钱包,因为只需要扫描面部就可以取回备份数据。 钱包不仅使用了无密钥机制, 还使用了 无密码授权 机制。 使用期间不需要记住 任何的密码,因为他们采用了一些方法才到达了这种既方便又安全的方案: 1 . 通过 魔法链 接授权 ,也就 是依赖 邮箱的 安全性 。当用 户通过 邮件注 册的时 候, 将会发送一个魔法链接给用户,点击后即可完成授权。 2 . 基 于 设 备 的 授 权 , 也 就 是 依 赖 设 备 本 身 的 安 全 性 。 当 用 户 使 用 A p p 签 署 签 名 时,需要使用面容 I D 或触控 I D 进行授权。 3 . 基于面部 3 D 扫描图的授权,也就是依赖钱包提供的解决方案。 当用户需要跨 设备恢复账户时,就需要使用面部 3 D 扫描图进行授权。 除此之外, 钱包还提供了方案应对服务关停的风险: 钱包构建了第三方独立的托管 服 务 E s c r o w 和 监 听 服 务 T r u s t e e 。 E s c r o w 可 以 理 解 为 是 钱 包 服 务 器 的 一 个 备 份 , 而2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 1 9 T r u s t e e 则会监听 钱包服务的状态 , 当 T r u s t e e 发现钱包 服务关停时 , 它会请求 E s c r o w 把 对 应 的 服 务 器 端 的 恢 复 密 钥 转 移 到 T u s t e e 指 定 的 G i t H u b 账 号 ( h t t p s : / / g i t h u b . c o m / Z e n G o - T r u s t e e ) 。 钱 包 ( 客 户 端 ) 会 在 每 次 启 动 时 , 判 断 G i t H u b 提供的恢复模式, 如果是恢复模式就自动进入恢复模式, 从而还原客户端的私钥 , 这个 私钥可以直接进行交易签名进行资产转移, 也可以把这个私钥导入到其他的钱包。 总体 来 说 , 这 种 数 字 钱 包 安 全 设 计 方 法 照 顾 到 用 户 失 去 私 钥 和 Z e n G o 作 为 企 业 倒 闭 后 , 钱 包的系统能够继续运行, 用户的私钥可以恢复 。 因此是一个非常好的设计。 但是, 也需 要注意 E s c r o w 和 T r u s t e e 合谋的 风险 , 和黑客 攻击 T r u s t e e 指定的 G i t H u b 账号引 起不必 要的恢复模式和由此可能造成的合成秘钥被盗的风险。 除此之外 I m t o k e n 也是这类安全实践 的典型 , I m t o k e n 充分利用设备安全 沙箱机制 , 将加密后的 K e y s t o r e 文件存储在手机设备的安 全沙箱内 , 防止其他程序恶意读取及 由此 造成的用户资产损失。 并通过标准的 K e y s t o r e 文件方式进行加密存 储 , 助记词通过业界 标准方案 K e y s t o r e 方式加密保存 在手机内部 , 并设置加密次 数为 1 0 2 4 0 有效防止暴力 破 解的可能。 其升级后的硬件钱包 I m k e y 在此基础上加入了更加成熟可靠的安全机制。 1 )安全 P I N 码保护机制 安全 P I N 码是打开硬件钱包 的密码 , 硬件钱包所有行为 操作均需 P I N 码验证通过后 方可执行。 在 5 分钟内 I m K e y 硬件钱包无按键行为 操作则自动锁屏 , 需要重新输入正确 的 P I N 码才能继续使用 。 为防止钱包遗失后 P I N 码被暴力破解, 系统内置安全保护 机制 , 当 P I N 码输入错误次数达到 5 次以后, 钱包将会被自动销毁, 私钥数据从硬件钱包完全 清除,只能通过重新导入助记词方式恢复。 2 )真伪验证机制 I m K e y 硬件钱包在初次使用时, 会进行一次服务端安全 认证 。 托管在云服务商机房 内的专用 设备加密机会对 I m K e y 进行真伪 认证 , 只有 I m K e y 官方渠道 发售的 I m K e y 硬件 钱包才能通过验证。从根源上避免因为伪造和仿冒的假钱包给用户造成资产损失。 3 )应用验签机制2 0 2 0 云 安 全 联 盟 大 中 华 区 - 版 权 所 有 2 0 钱包内的应用程序可以负责进行数据签名功能, 为防止恶意应用被安装, 应用程序 签名只能由核心负责人