在数字货币的初期,客户只需采用规范PC上的客户端转化成她们的付款详细地址(以加密术语,他们的公钥/私钥对)。感到遗憾,一旦数字货币变成受欢迎货品,在通用性电子计算机上安全性地储存账号公钥(采用“使用”)就变成一种承担。手机软件钱夹文档将会会遗失或删掉,而且是对于偷盗的总体目标,大部分客户也没有提前准备好可以信赖地储存公钥的重大责任。这就促进了在数字货币互换中的密匙储存的发展趋势。
多年来的大规模盗窃事件,使用户永远不会相信第三方来托管他们的加密货币。因此,在过去几年中,硬件钱包已成为保护加密货币帐户的有力工具,用户再也不用依赖于托管服务。
硬件钱包是一个万无一失的解决方案吗?
硬件钱包是一种消费级硬件安全模块(HSM),具有以下的用途:一种防篡改保险库的设备,在其中可以创建用户的加密身份,可以在没有私钥的情况下使用,私钥不会离开设备。
从根本上说,硬件钱包只需要在主机上创建一个事务,对其进行签名以使其有效,并输出已签名的事务以便主机发布到区块链。
但在实践中,它并非如此简单。用户必须正确初始化他们的钱包。有时设备有固件更新。然后是恢复代码的问题(也称为BIP39恢复短语或种子词)。
硬件钱包相比将私钥存储在防火保险柜中的纸张或笔记本电脑上的目录中是一个巨大的进步,但硬件钱包仍然存在风险。用户需要采取一些安全预防措施。用Bruce Schneier的话来说,“ 安全是一个过程,而不是一个产品。”
10个安全使用加密货币硬件钱包的规则:
1:从受信任的来源购买设备,最好直接从供应商手上购买,必须是新的,没有打开过的
避免任何不必要的供应链风险。直接从制造商(例如,Ledger或Trezor)而不是从经销商处购买设备可以最大限度地降低获取由中间人篡改的伪造品或设备的风险。据报道,超过一家eBay的经销商在向出售硬件时欺诈买家。
2:切勿使用预先初始化的硬件钱包
如果用户接受预先初始化的硬件钱包,他们会将他们的加密货币放入钱包中,该钱包可能只是攻击者控制的钱包的副本。确保您(并且只有您)在使用前正确初始化您的硬件钱包。按照硬件钱包供应商网站上的初始化说明书来进行操作。
您需要看到类似的提示,开箱即用。
3:切勿使用预先选定的一组恢复单词,仅使用在设备上生成的恢复单词
切勿接受预先选择的恢复单词。牢记要使用设备上生成的新随机恢复单词,从一个干净的平板初始化硬件钱包。任何知道恢复单词的人都可以完全控制钱包,观察你的交易行为,以及窃取你所有的代币。因为,这些词就是您的秘钥。
据报道,2017年12月,一家硬件钱包经销商在包装盒中装了一张假冒刮刮卡,每张卡都交付给客户。刮开卡显示了恢复单词列表,并且卡片指示买方使用恢复步骤设置其设备,而不是初始化它以安全地生成一组新单词。这是一个聪明的骗局,诱骗用户使用预先配置的钱包。
要注意像这样的经销商欺诈:官方预选的恢复词
4:首选能够提供其完整性证明的设备
虽然重置或初始化设备可以解决问题,但用户仍然存在购买假冒或篡改硬件钱包的风险。在购买之前,请确认您将能够验证新硬件钱包的出处,真实性或完整性。查找设备制造商提供的软件,该软件可以询问设备上的安全元件,并提供设备完整性的证明。按照钱包供应商的验证说明进行操作(例如,Ledger使用安全元件证明检查设备完整性的说明)。然而,今天的钱包的证明能力仍有差距。用户应该继续要求更好、更完整的证明。
5:测试你的恢复单词
数据保护“始终测试您的备份”:在这种情况下,您的备份是一组恢复单词。使用备用硬件钱包设备,使用记录的恢复词来初始化测试钱包。消除所记录的单词可以成功恢复原始钱包状态的任何疑问。在测试恢复字的正确性后,重置/擦除此测试设备。请勿使用通用计算机或软件钱包来验证恢复单词。请从供应商的指令执行恢复空运行,以测试你的种子单词。
6:单独保护您的恢复单词并平等保护硬件钱包。不要拍他们的照片。不要把它们打成任何东西。
用手写下恢复字(不要将它们输入计算机或拍摄它们进行打印),然后将纸张(最好是档案质量的无酸纸)进行长期存放。将其存放在不透明的防篡改密封信封(示例)中,以确保未经授权不得查看。请记住,如果恢复字存储在设备旁边,则设备的PIN码无法防御具有物理访问权限的攻击者。不要将它们存放在一起。
把文字写下来,但不要拍这样的照片!
7:验证用于与硬件钱包通信的软件; 了解后门桌面UI是威胁模型的一部分
硬件钱包依靠桌面软件来启动事务,更新硬件钱包的固件以及其他敏感操作。加密货币软件的用户应该要求可重复的构建和代码签名的可执行文件,以防止攻击者在安装后进行篡改。与使用GPG等工具进行手动验证相比,代码签名的优势在于,每次启动应用程序时,操作系统都会自动验证代码签名,而手动验证通常只执行一次(如果有的话)。但是,即使是可验证的软件,仍然可以在运行时被破坏。认识到通用计算设备会定期暴露于来自不受信任来源的潜在风险数据。
8:考虑使用高保证工作站,即使是硬件钱包
通过将工作站专用于操作硬件钱包的单个任务,可以将其锁定到更大程度,因为它不用于日常任务,也不会暴露于尽可能多的潜在危害源。考虑仅从不可变的主机PC配置操作硬件钱包。此工作站仅脱机,专用于使用硬件钱包创建和签名事务的任务。
首先,锁定系统的固件配置(例如,限制引导设备,禁用网络引导等)以确保引导过程的完整性。然后,可以通过安全启动来保护引导介质 使用TPM支持的加密SSD /硬盘驱动器,或者 - 实现真正的不变性 - 通过将可信操作系统映像刻录和验证到一次写入DVD-R介质上,并将DVD-R存储在硬件钱包旁边的防篡改包中。
9:考虑具有独立存储设备的M-of-N多重签名钱包
“ 多签名 ”是指需要多个密钥来授权交易。这是对单点故障的极好保护。可以使用生成的密钥创建一个多签名钱包,并将其保存在存储在物理上不同位置的硬件钱包中。
请注意,如果设备将由不同的个人保管,请仔细考虑如何协调并决定从钱包中花费。对于增加的偏执,硬件钱包可能是不同的设备品牌。然后,即使在其中一个硬件钱包制造商的员工成功后退他们的设备的情况下,他们仍然只能控制多签名钱包中的一个密钥。
10:考虑手动验证新的多签名地址的生成
这与规则7、8相关,通过将几个私钥持有者“加入”由脚本定义的单个地址来创建多签名钱包。
在比特币的场景下,这称为P2SH地址(“ 付费到脚本哈希 ”)。这部分地址创建是在使用公钥的桌面软件UI中完成的,而不是在硬件钱包上完成的。如果受损工作站在生成新P2SH地址期间提供脚本基础,攻击者可以加入或控制多个sig钱包。
例如,攻击者控制或转发的桌面软件可能会秘密地将3个2中的钱包变成2个2的钱包,并且攻击者会插入两个额外的公钥。请记住,硬件钱包并不能完全排除保护与其接口的主机的安全性。
仍然需要更安全,更可用的解决方案
关于加密货币硬件钱包的风险和建议的讨论,说明了安全行业在尝试设计其他类型的固定功能设备以进行私钥保护时所面临的挑战。例如,U2F令牌和安全飞地。
十多年来,安全研究人员一直在推动“ 可用安全性 ” 的目标。可用的安全性只不过是安全计算应该很容易做到,而且很难做错的想法。比较现代安全消息传递客户端的可用性,例如,使用GPG所需的繁琐且容易出错的密钥管理。获得正确的可用性是保护数千名技术人员和保护数以千万计的普通用户之间的区别。
整个行业应避免自满。需要更安全,设计更好的设备,不容易出现陷阱和错误,我们希望将来,安全可用的硬件钱包将成为我们认为理所当然的商品设备。