加密货币硬件钱包安全使用的10条黄金法则

本文详细介绍了安全使用加密货币硬件钱包的10条关键规则,涵盖设备采购、初始化、恢复词保护、完整性验证、多重签名设置等核心安全实践,帮助用户有效保护数字资产免受各类威胁。

加密货币硬件钱包安全使用的10条规则 - Trail of Bits博客

硬件钱包的出现

在加密货币早期,用户只需使用标准PC上的客户端软件生成支付地址(密码学术语中的公钥/私钥对)。不幸的是,一旦加密货币成为热门商品,在通用计算机上使用"软件钱包"安全存储账户私钥就变成了一个负担。软件钱包文件可能会丢失或删除,并且成为盗窃目标。大多数用户对安全可靠存储私钥的重大责任准备不足。这在一定程度上推动了托管存储服务(如加密货币交易所)的采用。

多年来,这些服务遭受了大量未受惩罚的盗窃,使许多用户意识到他们永远不能像信任受监管银行持有法币那样信任第三方保管他们的加密货币持有。因此,在过去几年中,硬件钱包作为在不依赖托管服务的情况下保护加密货币账户的有用工具而越来越受欢迎。

万无一失的解决方案?

硬件钱包是一种消费级硬件安全模块(HSM),具有类似的目的:一种体现防篡改保险库的设备,用户可以在其中创建和使用加密身份(在这种情况下是加密货币账户),而私钥永远不会离开设备。从根本上说,硬件钱包只需要获取在主机计算机上创建的交易,对其进行签名使其有效,并输出签名后的交易供主机计算机发布到区块链。

实际上,这并不那么简单。用户必须正确初始化他们的钱包。有时设备需要固件更新。然后是恢复代码(也称为BIP39恢复短语或种子词)的问题。硬件钱包比将私钥存储在防火保险箱中的纸上或笔记本电脑目录中有了巨大改进,但硬件钱包仍然存在风险。用户需要采取一些安全预防措施。用Bruce Schneier的话说:“安全是一个过程,而不是产品。”

加密货币硬件钱包安全使用的10条规则

1: 从可信来源购买设备,最好直接从供应商处购买全新未开封的产品

避免任何不必要的供应链风险。直接从制造商(例如Ledger或Trezor)购买设备而不是从经销商处购买,可以最大限度地减少获取假冒产品或被中间商篡改设备的风险。据报道,至少有一个恶意的eBay经销商设计了巧妙的方案来欺骗买家,即使向他们销售的是正品和未开封的产品(见规则#3)。

2: 切勿使用预先初始化的硬件钱包

如果用户接受预先初始化的硬件钱包,他们就是将加密货币放入一个可能只是攻击者控制的钱包副本中。确保您(且只有您)在使用前正确初始化硬件钱包。遵循硬件钱包供应商网站上的初始化说明(例如,Ledger品牌钱包的说明;Trezor钱包的说明)。

您希望看到的提示类型,全新开箱(图为Ledger Nano S)

3: 切勿使用预先选择的恢复词集合,只使用设备上生成的词

永远不要接受预先选择的恢复词。始终从零开始初始化硬件钱包,使用设备生成新的随机恢复词。任何知道恢复词的人都可以完全控制钱包,能够监视其活动,并能够窃取其所有硬币。实际上,这些词就是密钥。

2017年12月,据报道,一家硬件钱包经销商在每个交付给客户的设备盒子中包装了一张假冒刮刮卡。刮刮卡显示了一个恢复词列表,并指示买家使用恢复步骤设置设备,而不是通过初始化安全生成一组新词。这是一个巧妙的骗局,诱使用户使用预先配置的钱包(见规则#2)。

警惕像这样的经销商欺诈:看起来官方的预先选择恢复词(图片来源:Ledger,Reddit用户’moodyrocket’)

4: 优先选择能够提供完整性证明的设备

虽然重置或初始化设备应该足够,但理论上仍然存在购买假冒或篡改硬件钱包的风险。在购买之前,确认您将能够验证新硬件钱包的来源、真实性或完整性。寻找设备制造商提供的软件,该软件可以查询设备上的安全元件并提供设备完整性的证明。遵循钱包供应商的验证说明(例如,Ledger使用安全元件证明检查设备完整性的说明)。然而,当今钱包的证明能力仍存在差距。用户应继续要求更好、更完整的证明。

5: 测试您的恢复词

数据保护的基本原则是"始终测试您的备份":在这种情况下,您的备份就是恢复词集合。使用备用的硬件钱包设备,使用记录的恢复词初始化测试钱包。消除任何关于记录的词能否成功恢复原始钱包状态的疑虑。测试恢复词的正确性后,重置/擦除此测试设备。不要使用通用计算机或软件钱包来验证恢复词。遵循供应商的说明执行恢复演练以测试您的种子词(Trezor钱包用户的步骤和Ledger用户的步骤)。

6: 将恢复词与硬件钱包分开且同等保护。不要拍照。不要将它们输入任何东西。

手写恢复词 - 不要将它们输入计算机或拍照打印 - 然后将纸张层压(最好使用档案质量的无酸纸进行长期存储)。将其存储在 opaque tamper-evident sealed envelope(示例)中,以确保未经授权不会被查看。请记住,如果恢复词与设备存储在一起,设备的PIN码无法防止具有物理访问权限的攻击者。不要将它们存储在一起。

写下这些词,但不要像这样拍照!

7: 验证您用于与硬件钱包通信的软件;理解后门桌面UI是您威胁模型的一部分

硬件钱包依赖桌面软件来发起交易、更新硬件钱包的固件以及其他敏感操作。加密货币软件用户应要求可重现构建和代码签名可执行文件,以防止攻击者在安装后进行篡改。与使用GPG等工具进行手动验证相比,代码签名的优势在于代码签名在每次启动应用程序时由操作系统自动验证,而手动验证通常只执行一次(如果有的话)。然而,即使是可验证的软件,在运行时仍可能被颠覆。认识到通用计算设备经常暴露于来自不受信任来源的潜在风险数据。

8: 考虑使用高保证工作站,即使使用硬件钱包

通过将工作站专门用于操作硬件钱包的单一任务,可以将其锁定到更高程度,因为它不用于日常任务,也不暴露于许多潜在的妥协源。考虑仅从不可变的主机PC配置操作硬件钱包。该工作站将仅离线,并专门用于使用硬件钱包创建和签名交易的任务。首先,锁定系统的固件配置(例如,限制启动设备,禁用网络启动等)以确保启动过程的完整性。然后,可以通过使用TPM支持的加密SSD/硬盘的安全启动来保护启动媒体,或者 - 为了真正的不可变性 - 通过将受信任的操作系统映像刻录并验证到一次性写入的DVD-R媒体上,并将DVD-R与硬件钱包一起存储在防篡改袋中。

9: 考虑使用M-of-N多重签名钱包,并独立存储设备

“多重签名"指的是需要多个密钥来授权交易。这是对单点故障的极好保护。考虑创建一个多重签名钱包,其中密钥在存储在物理上分开位置的硬件钱包中生成和保存。请注意,如果设备将由不同个人保管,请仔细考虑如何协调和做出从钱包支出的决策。为了增加偏执,硬件钱包可以是不同设备品牌。这样,即使在一个硬件钱包制造商的员工成功后门其设备的不太可能情况下,他们仍然只控制您多重签名钱包中的一个密钥。

10: 考虑手动验证新多重签名地址的生成

与规则#7和#8相关,请注意多重签名钱包是通过将几个私钥持有者"加入"到由脚本定义的单个地址中来创建的。在比特币的情况下,这称为P2SH地址(“支付到脚本哈希”)。地址创建的这部分是在桌面软件UI中使用公钥完成的,而不是在硬件钱包上。如果受损的工作站在生成新P2SH地址期间提供脚本基础,则攻击者可能能够加入或控制多重签名钱包。例如,攻击者控制或颠覆的桌面软件可能秘密将2-of-3钱包变成2-of-5钱包,其中插入了攻击者的两个额外公钥。请记住,硬件钱包并不完全排除保护与其接口的主机的需要。

仍需更安全、更易用的解决方案

这次关于加密货币硬件钱包风险和建议的讨论说明了更广泛的安全行业在设计其他类型的固定功能设备用于私钥保护方面面临的挑战。例如,U2F令牌和安全飞地。

十多年来,安全研究人员一直推动"可用安全"的目标。可用安全 simply 是安全计算应该易于正确执行,难以错误执行的想法。比较现代安全消息客户端的可用性,例如,与使用GPG所需的繁琐且容易出错的关键管理相比。正确获得可用性是保护几千名技术人员与保护数千万普通用户之间的区别。

避免自满。要求更安全、设计更好的设备,不易陷入陷阱和错误。最好的硬件钱包应该有点无聊!我们希望将来,安全可用的硬件钱包将成为我们可以视为理所当然的商品设备。

在此之前,我们将继续与W3F等组织合作,独立建立安全 awareness。如果您在为创建硬件钱包的公司工作,我们欢迎您联系我们以帮助保护您的用户。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计