Web3 桌面钱包的初步安全评估
撰文:CertiK
桌面钱包在 Web3.0 生态系统中扮演着关键角色,它们为用户在去中心化网络中安全地管理数字资产提供了可靠的解决方案。Cointelegraph 的报告[1]指出,据 Bitfinex 交易所的分析师观察显示,截至 2023 年 12 月 1 日,全球数字货币持有者的数量显著增长,已经从年初的 4.32 亿增长至 5.75 亿。而在这一新增市场中,桌面钱包占据着重要的份额。
随着 Web3.0 行业的迅速发展,桌面钱包在保障用户资产安全方面的重要性日益凸显。然而,在对多个桌面钱包进行深入的技术分析后,CertiK 安全团队发现了一些潜在的安全漏洞,可能会导致用户在使用过程中面临更高的风险。本报告呈现了该技术分析的细节和结论,旨在提升所有 Web3.0 成员的安全意识。我们期望通过这份报告,提醒用户在使用桌面钱包时保持高度警觉,保护自己的数字资产。
来自供应链的安全隐患
桌面钱包是 Web3.0 用户管理和保护数字资产的重要工具。然而,在供应链攻击[2]的背景下,其安全性往往被忽视。供应链攻击指的是网络犯罪分子以目标组织依赖的第三方供应商、服务提供商或供应链环节等为对象进行攻击。为防止此类安全事件,建议用户对安装包进行哈希值验证,即使是直接从官方网站下载也不应跳过验证步骤,因为只有通过此验证的安装包才能被认定为安全软件。然而,并非所有用户都具备执行此类验证的能力,特别是在使用某些桌面钱包时,用户安全防护能力的不足可能会增加他们遭受攻击的风险。
具体而言,一些桌面钱包可能会无意中使用与后门软件相似的模块或算法,从而导致某些杀毒软件产生误报。然而官方网站通常会对这些误报提供合理解释,缺乏哈希验证能力的用户可能不加质疑地接受,将杀毒警告视为正常情况。这种错误的信任为恶意软件伪装成合法钱包安装包提供潜在隐患,从而使用户面临更大的风险。
如下图所示,VirusTotal 上的 65 款杀毒软件对一个常见的桌面钱包的下载文件进行了分析,结果有 19 款软件将该样本标记为恶意文件。
该分析表明,供应链攻击并非只是理论上的风险。对用户而言,缺乏验证软件真实性的技术手段可能会使其无意中下载并安装恶意软件。即便是从官方网站下载的安装包也可能触发杀毒程序的警告,使用户难以判断其安全性,埋下安全隐患。
本地文件的储存安全风险
在深入调研中,我们发现某些桌面钱包允许用户出于某些业务目的以明文形式存储私钥。这一做法大大增加了用户数字资产的安全风险,因为一旦用户的电脑感染病毒或恶意软件,明文私钥将直接暴露给攻击者,危及其数字资产的安全。
未加密的本地文件:
加密的本地文件:
即使用户使用 PIN 码对本地文件进行加密,密钥的安全性仍无法在恶意软件威胁下得到充分保障。这些钱包无论是作为独立桌面应用程序运行,还是作为浏览器扩展插件运行,都可能成为恶意软件的目标。但用户往往因桌面钱包的便捷性和功能性而信任它们,忽视了潜在的安全漏洞。与移动应用严格的权限管理和数据隔离相比,桌面钱包在保护用户私钥方面显得相对薄弱。因此,用户在使用桌面钱包时,必须时刻警惕操作环境的安全性,以避免因存储不当或设置不安全引起失窃。
PIN 码加密算法的安全性
另一个高风险系数的安全问题是许多桌面钱包采用了有漏洞的文件加密方式,使得攻击者更容易访问并解密用户的加密数据。这种加密方式是指钱包未将文件加密绑定到设备的硬件信息上。这意味着即使文件已被加密,攻击者仍可以将文件转移到其他设备上进行离线解密,从而绕过设备固有的安全保护措施。
通过进一步分析发现,一些钱包在使用 PIN 码时的防暴力破解算法存在弱点。许多钱包采用的加密算法的哈希迭代次数远低于行业标准。例如,OWASP[3]推荐使用 600,000 次迭代来保护密码,Apple 公司为其备份钥匙链设置了 10,000,000 次迭代,1Password 和 LastPass 则分别采用 650,000 次迭代和 600,000 次迭代。然而,一些桌面钱包的加密算法哈希迭代次数却仅设置为 5,000 次,远低于这些行业安全基准。在这种情况下,攻击者可以通过暴力破解技术获取用户的 PIN 码,哪怕是复杂的密码也可能被轻易攻破。
此外,我们还在审计中发现,一些钱包软件的密码保护机制不足以应对复杂的攻击。恶意攻击者通常会先窃取用户的加密数据,然后利用强大的计算资源在离线环境中进行解密。由于某些桌面钱包在加密算法选择上的漏洞,使得其加密数据更容易被破解。这不仅使用户的数字资产面临风险,同时也对 Web3.0 生态系统的整体安全提出了新的挑战。
相对安全的桌面钱包解决方案
在使用桌面钱包时,建议选择 MPC(多方计算)钱包或硬件钱包,因为相较于移动设备,桌面系统(PC 系统)存在固有的安全漏洞。虽然桌面钱包操作简单且易于访问,但不间断的互联网连接使其面临更严峻的黑客和恶意软件威胁。因此,对于需要更高安全性的用户,选择其他类型的钱包是明智之举。
MPC 钱包在提升数字资产安全性和恢复功能方面具有显著优势。利用安全多方计算 (Secure Multi-Party Computation) 技术,钱包将私钥分成多个片段,并分别存储在不同的参与者或节点中。此设计消除了单点故障的风险,确保没有任何单一实体拥有完整的私钥。因此,即使用户的桌面系统遭到入侵,攻击者也无法利用任何单个密钥片段窃取资产。只有当多方参与者的片段组合在一起时,才能生成有效的交易签名。因此,只要不是所有密钥片段同时被盗,用户的资产就是安全的。
除此之外,MPC 钱包的分布式密钥管理体系提供了更大的操作灵活性和更低的交易成本。它支持隐藏签名和链下追责机制,进一步增强了隐私性和安全性。通过这种方式,MPC 钱包确保即便在部分系统被入侵的情况下,数字资产的安全性也不会受到威胁。
MPC 钱包的另一个优势是恢复功能。如果用户的设备丢失或损坏,他们仍然可以通过第三方服务恢复密钥。此过程要求用户利用预先分布在不同位置的密钥片段重建私钥。另外,一些 MPC 钱包还提供社交恢复功能,允许紧急联系人在极端情况下能够帮助用户重新访问钱包。
桌面硬件钱包提供了一种物理隔离的解决方式,即,将私钥存储在硬件设备内。该设计确保所有签名操作都在硬件内离线完成,即使用户的桌面系统被入侵,攻击者也无法访问存储的私钥。此类物理隔离很大程度上增强了资产的安全性。因为私钥避免暴露在互联网中,从而降低了被黑客攻击和盗窃的风险。
如今,大多数硬件钱包同样提供恢复功能,以防止因硬件损坏或丢失而导致资产损失。该恢复过程通常包括创建备份助记词或私钥片段,并且用户可以将其安全地存储在不同位置。如果硬件设备丢失或被损坏,用户可以利用这些备份信息重新访问他们的钱包拿回资产。
此外,一些硬件钱包集成了生物识别技术以增强安全性。这意味着,即使未经授权的个人获取了密钥片段,没有通过生物识别认证,攻击者也无法入侵用户的钱包。生物识别技术可能包括指纹、面部识别或语音识别,为硬件钱包的安全保障加码。
例如,Zengo 的 MPC 系统采用了保存在不同设备上的多个私钥片段,来增强钱包的安全性。MPC 系统中的恢复功能至关重要,使用户在设备丢失或损坏时能够取回钱包。为了确保资产安全,私钥片段与账户牢牢绑定,这意味着只有当私钥片段和账户同时丢失时,资产才会面临丢失风险。
另外,某些硬件钱包制造商(如 Ledger)同样提供基于身份的密钥恢复服务。例如,Ledger 的「Ledger Recover[4]」服务,将钱包恢复词组分成三个加密片段,并分发给三家托管方。如果用户丢失了助记词,经过身份验证后,两个片段可以组合在一起以重新访问被锁定的资金。该服务旨在为数字资产密钥丢失风险提供额外的安全保障,但这也引起一些用户的顾虑,因为这种方式需要在线储存与政府签发的身份证明相关联的助记词。
安全桌面钱包中的多方计算(MPC)
在比较 MPC 钱包与硬件钱包的安全性时,两者都有着微妙的优缺点。
由于硬件钱包的固有限制——例如有限的 CPU 性能、受限的网络连接能力以及简陋的用户界面等——导致展示详细的交易信息存在一定难度。这使得用户在需要深入验证交易细节时难以完全确认交易内容。因此,在这种情况下,MPC 钱包成为了相对更好的选择。MPC 钱包允许多个参与方共同计算和验证交易数据,而不会暴露敏感信息,从而为验证交易目的和完整性提供了更稳健的框架。与硬件钱包不同,基于 MPC 的解决方案[5]可以利用移动设备或其他平台的计算和网络环境,从而更紧密地对接后台系统,减少与交易验证相关的风险。
总的来说,桌面硬件钱包通过物理隔离和钱包恢复功能为用户提供了一种安全、可靠的资产保护手段。生物识别技术的引入进一步加强了这一保护,确保用户的资产即使在极端情况下也能得到安全保障。
桌面钱包解决方案的对比
基于上述风险和安全性分析,我们对多个桌面钱包进行了比较评估。下图总结了这些钱包的安全机制及其针对安全风险的防护措施。(S0 代表着基本风险,等级越高风险越复杂。)
总结
作为管理数字资产的重要工具,桌面钱包面临多重安全挑战:杀毒软件的误报、沙盒保护的缺乏、以及加密算法不足等问题都可能导致用户资产面临被盗风险。这对缺乏技术经验的用户尤其危险,因为他们可能难以识别和应对这些风险。因此,钱包开发者需加强安全措施以确保软件的安全性。
同时,用户也应提升风险意识,采取最佳实践来储存和管理数字资产。通过对桌面钱包的严格审计和持续改进,我们能够更好地保护用户的数字资产安全,促进整个 Web3.0 生态系统的健康发展。