随着通过区块链技术实现去中心化数字代币的出现,P2P交易的新时代正在发展。 随着加密钱包使用的增加,其已经成为安全风险的焦点。本文旨在全面探讨加密代币钱包的安全问题,包括钱包类型的分类,其设计和实现,识别常见漏洞和攻击,以及防御机制和缓解策略。 分类涵盖托管、非托管、热钱包和冷钱包,突出了它们的特征和相关的安全考虑。
0x01 简介
区块链是一种分布式账本技术,可以在没有中央权威的情况下实现透明且不可变的交易记录,催生了去中心化金融(DeFi, decentralized finance),这是一个旨在取代银行和经纪人等传统中介机构的金融应用生态系统。 通过利用以太坊等区块链网络上的自动执行智能合约,DeFi 协议允许去中心化借贷、交易、衍生品和更多点对点金融活动。 DeFi 的可组合性、可访问性、透明度和抗审查性吸引了数十亿美元的加密资产投资。
加密钱包是允许用户在区块链网络上管理、接收和传输数字资产的软件程序或硬件设备。 它们包含公钥和私钥,分别类似于银行帐号和用于访问资产的 PIN 码。 钱包与区块链交互以监控余额并使用密钥广播有效交易。 随着 DeFi 的兴起,钱包成为参与 Uniswap 和 Compound 等平台上交易活动的门户。 它们是保存密钥的重要工具,可帮助用户访问区块链网络并无需许可地交易价值或利用智能合约支持的 DeFi 功能。
钱包安全的重要性怎么强调都不为过,据报道,自 2011 年以来,加密代币领域的损失已超过惊人的 167 亿美元。 这一令人震惊的统计数据凸显了钱包安全问题的严重性。 钱包泄露和交易所网络攻击事件(例如导致约 850,000 比特币被盗的 Mt. Gox 攻击)会产生严重后果,不仅影响个人用户,还影响依赖交易所服务的社区。 NiceHash、YouBit 和 Coincheck 等例子证明了交易所对攻击者的吸引力。
公共区块链网络上交易的不可变性给加密钱包带来了严重的安全风险。 一旦交易经过验证并添加到链中,从加密角度来说,就无法逆转钱包中的任何意外或恶意转账。 尤其是私钥,必须受到严格保护,因为它们的丢失或被盗会导致钱包资金的完全控制和不可逆转的耗尽。黑客不断开发网络钓鱼网站、键盘记录器和剪贴板劫持等策略来窃取密钥。 密钥生成复杂性、钱包软件漏洞、用户粗心以及盗窃后缺乏追索权等等,为安全漏洞提供了肥沃的土壤。 虽然多重签名钱包、离线冷存储和去中心化托管服务等解决方案有所帮助,但在没有集中监管的情况下,加密代币钱包的安全性仍然是一个持续的挑战。 公共区块链上的错误和盗窃的不可逆性加剧了风险。
0x02 钱包分类
加密代币钱包可以根据私钥的存储位置、与互联网的连接以及底层技术等各种特征分为几类。 然而,在实践中,这些类别通常会结合起来创建更细致的钱包解决方案,如下图所示。一种常见的方法是将热钱包和在线钱包结合起来,使用户能够快速方便地访问其资金 频繁的交易。 相反,以安全性高而闻名的冷钱包可以通过使用离线存储私钥的硬件钱包来进一步强化,从而增加一层额外的保护,以防止潜在的黑客攻击。 此外,可以通过集成不同类型钱包的功能来形成混合钱包,有效地将在线钱包的可访问性与硬件钱包的强大安全功能结合起来。 这些合并不仅扩大了用户可用的选择范围,还使他们能够定制加密钱包以满足他们的特定需求,在可访问性和安全性之间取得最佳平衡。
A、资金可控性
(1)托管钱包:由第三方服务提供商托管和管理,保留对用户私钥和资金的控制权。 用户必须信任提供商能够代表他们安全地存储资产并执行交易。 这些钱包优先考虑便利性和可用性,提供客户支持和保险等功能,但随着用户放弃对其加密代币的唯一控制权,它们会带来交易对抗风险。 密钥的集中管理和缺乏用户自我保管与加密代币的去中心化性质相冲突。 然而,托管服务可以实施机构级安全实践,例如冷存储和加密,这可能超出典型的个人用户安全能力。 尽管实施了机构级安全措施,但必须认识到某些风险,例如 MiTM 攻击、域名系统 (DNS)、拒绝服务 (DoS)、社会工程和暴力破解仍然存在。 为了评估使用托管钱包提供商的风险和收益,必须对治理、审计和保险范围进行适当的尽职调查。
(2)非托管钱包:这些钱包为用户提供对其私钥的独占访问和控制,符合加密代币的自治和自我原则。 用户独立管理密钥,无需依赖任何中介。 这种方法赋予用户更大的责任,要求他们采取强大的安全实践来保护密钥和资产。 非托管钱包使用户能够完全控制他们的加密代币,与去中心化网络交互,并避免交易风险。 然而,个人密钥管理不善可能会导致不可挽回的丢失或被盗。 此外,它们还容易受到网络钓鱼、恶意软件、字典攻击和网络攻击,例如去匿名化 、MiTM、DoS。 最佳实践包括仔细生成和存储密钥、多重签名配置以及针对网络钓鱼等威胁的教育。 通过适当的预防措施,非托管钱包使用户能够充分受益于加密代币的去中心化和独立性。
B. 网络连接
(1)热钱包:连接互联网的钱包用于在线交易,可以从计算机、智能手机或平板电脑等设备方便地访问,允许用户实时管理自己的数字资产。 然而,持续连接到互联网使他们更容易受到网络和应用程序攻击。 这些通常用于日常交易,提供快速、无缝的资金访问。 为了降低风险,用户必须实施强大的安全措施,例如使用强密码、启用双因素身份验证以及定期更新其软件。
(2)冷钱包:离线钱包通过保持私钥和敏感信息免受在线威胁来优先考虑用户数字资产的安全。 这些可以是硬件设备或物理介质,例如专用硬件钱包、纸钱包或离线存储解决方案。 离线存储私钥可显着降低未经授权的访问、黑客攻击和恶意软件攻击的风险。 虽然这些需要额外的交易步骤,但它们是优先考虑长期存储和加密代币持有安全的用户的首选。 它们非常适合存储大量加密代币或“存储并持有”投资策略,保护有价值的数字资产。 冷钱包虽然具有诸多优势,但也容易受到 MiTM、社会工程和侧信道攻击。
C. 基础设施
(1)软件钱包:它们是存储私钥并允许用户管理其资产的数字应用程序。 根据安装的设备类型,它们可以进一步分为以下几类:
i) 网络钱包:这些钱包通过网络浏览器访问,使用起来很方便,因为可以从任何具有互联网连接的设备进行访问。
ii) 移动钱包:这些是用户可以在智能手机上安装的软件应用程序,提供随时随地的便利和可访问性。 然而,它们被认为不如桌面钱包安全。
iii) 桌面钱包:这些软件程序安装在计算机上,只能从安装它们的设备中访问,这使得它们比网络和移动钱包更安全。 然而,它们很容易受到恶意软件和黑客的攻击,因此需要定期更新最新的安全补丁。
iv) 机器人钱包:这些钱包集成到聊天应用程序中,例如 Telegram Wallet Bot,通过无缝地支持用户发送和接收加密代币交易,彻底改变了应用内支付。 Telegram 为其用户提供方便且易于访问的加密代币交易,支持比特币、Tether 和 TON 等代币,从而无需第三方网关。
(2)硬件钱包:它们是存储私钥并允许用户管理其加密代币资产的物理设备,提供高级安全措施,例如安全元件和 PIN 保护。
i) 智能卡:这些钱包利用卡技术的安全微控制器和加密功能来存储私钥并执行加密操作。 通常需要通过 PIN 码或生物识别验证来进行用户身份验证。
ii) 基于 USB 的钱包:这些钱包是通过 USB 端口连接到计算机的小型设备。 它们具有一个安全的微控制器,可以存储私钥并促进安全交易。 基于 USB 的硬件钱包通常配有内置屏幕和按钮,用于用户交互,确保交易的安全验证。
iii) 近场通信钱包(NFC) :这些钱包允许用户使用移动设备安全地管理其数字资产。 他们利用 NFC 与移动设备建立安全连接,以启动交易和验证信息,为用户提供额外的便利性和便携性。
iv) 气隙钱包:这些钱包设计为完全离线操作,与任何网络或互联网连接断开连接。 他们通过将私钥与潜在的在线威胁隔离来优先考虑安全性。 离线硬件钱包通常涉及在离线设备上生成私钥并离线签署交易,以增强针对黑客攻击的保护。
(3)纸质钱包:这涉及打印私钥并将其存储在安全位置,提供先进的安全措施,例如离线存储。 然而,它们可能比其他类型的钱包更难使用。
(4)记忆钱包:这些钱包要求用户记住助记词来存储加密代币。 如果忘记助记词或永久遗忘,加密代币将无法挽回地丢失。 虽然由于人类记忆的易错性而不被推荐,但记忆钱包在特殊情况下可能很有价值。
(5)智能合约钱包:这些是非托管 web3 钱包,采用智能合约来管理资产,提供增强的安全性和高级定制功能。 这些钱包支持可恢复钱包、无符号交易和批量交易等功能,这是传统加密钱包无法实现的。
D. 钱包功能
(1)M-of-N 标准交易:BIP-11标准建议使用 OP_CHECKMULTISIG 操作码来启用需要 M-of-N 签名才能验证有效性的多重签名交易。 这通过使伪造变得更加复杂,为托管服务等用例提供了更高的安全性。 然而,BIP-11 仍然依赖于比特币中使用的 ECDSA 签名的底层安全性。 它还容易受到密钥泄漏的影响,因此签名者必须保护密钥。 此外,scriptSig 的可延展性允许在不完全失效的情况下更改签名。 BIP-11 的签名线性扩展增加了成本和延迟。 根据当时客户的限制,3 个签名的初始限制是合理的,但灵活性受到限制。 虽然 BIP-11 直接实现了支持多重签名交易的主要目标,但签名方案、操作码和重放保护的增强可以提供更好的属性。
(2)分层确定性钱包(HD):BIP-32标准基于椭圆曲线离散对数问题的难度和逆向HMAC-SHA512的不可行性,提出了使用父子密钥推导的分层确定性钱包。 来自 256 位链码的附加熵提高了安全性,超越了单独的密钥派生。 即使给定子私钥,强化密钥也能防止父级发现。 通过正确的序列化编码来确保公钥的有效性。 限制最大子密钥深度会限制区块链的增长。 间隙限制和账户发现有助于防止未经检查的推导造成的泄漏。 这些机制共同提供了具有灵活结构的稳健的分层密钥生成,同时保持了互操作性。 然而,根种子的保护和泄漏风险仍然是一个问题。
(3)HD 钱包的助记码:BIP-39 标准提出了一种基于密码熵、强制有效性的校验和精心构建的单词列表的人类可读助记词恢复短语的标准化方法。 与原始熵相比,密码加盐和使用 PBKDF2 迭代可提高暴力破解能力。 由于