在加密货币的早期,用户只需使用标准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 钱包。
例如,攻击者控制或转发的桌面软件可能会秘密地将三合二钱包变成二合二钱包,攻击者插入两个额外的公钥。请记住,硬件钱包并不能完全排除与其连接的主机的安全性。
仍然需要更安全、可用的解决方案。对加密货币硬件钱包的风险和建议的讨论说明了安全行业在尝试设计其他类型的固定功能设备来保护私钥时所面临的挑战。例如,U2F 令牌和安全飞地。
十多年来,安全研究人员一直在推动“可用安全”的目标。可用的安全性无非是这样的想法:安全计算应该容易做,很难做错。例如,将现代安全消息传递客户端的可用性与使用GPG 所需的繁琐且容易出错的密钥管理进行比较。获得正确的可用性是保护数千名技术人员和保护数千万普通用户之间的区别。
整个行业应该避免自满。人们需要更安全、设计更好、不易出现陷阱和错误的设备。
我们希望在未来,安全可用的硬件钱包将成为我们理所当然的商品设备。