在Web3.0世界里,私钥和助记词的安全是最重要的。一旦有了它们,人们可以随意访问一个人的数字资产,因此它们的丢失或被盗可能会导致用户的财产受到巨大损失。
随着Web3.0领域中移动钱包应用程序的兴起,了解保护这些密钥的各种安全机制就显得至关重要了。
本文总结了Web3.0移动钱包应用程序提供的不同级别的安全保护。通过对当下流行的九个开源移动钱包进行研究,我们从简单的密码保护到硬件支持的可信执行环境等方面探讨了这几个流行钱包在实践中是如何实现对用户私钥或助记词的安全保护的。通过研究,我们发现其中一些安全保护机制可以有效地解决一些常见的私钥窃取攻击。然而我们也发现,来自系统层面的威胁却在很大程度上被忽略了。
钱包安全核心:私钥保护
移动钱包应用程序中最重要的的数据就是私钥和助记词。
Aave社区发起关于添加Centrifuge真实世界资产市场的提案:8月25日消息,Aave社区发起提案决定是否在Aave协议上推出Centrifuge真实世界资产(RWA)市场。这个市场能够使Aave储户针对稳定的、不相关的真实世界抵押品赚取收益,同时Centrifuge资产发起人可以从Aave借入资金。投票将于8月31日6:00 pm截止,目前共有2655枚AAVE投了赞成票。Centrifuge是一个基础设施供应商,使资产发起人能够通过Tinlake创建一个链上资产基金,为贷款提供资金。[2021/8/25 22:35:56]
因此,移动钱包应用程序面临的最严重的威胁相应也就是他们的私钥或助记词遭泄漏。为了适当缓解这种威胁,一个设计良好的移动钱包应用程序应该有一个系统的方法来保障私钥在存储或者使用阶段的安全性。
孙宇晨就Justswap上线致币圈的公开信:关于变更为JST流动性挖矿奖励:据最新消息显示,波场TRON创始人兼BitTorrent CEO孙宇晨刚刚发布了就Justswap上线致币圈的公开信,孙宇晨表示:“停止针对于TRX持有者的月度JST空投奖励,变更为JST流动性挖矿奖励。停止对于TRX持有者的JST月度空投奖励,将极大的降低JST的市场流动量,提升JST价值,与此同时,我们将全部奖励用于流动性挖矿,鼓励锁仓TRX,BTT,JST等代币来获得JST奖励,具体活动细则将近期宣布,细则将全部公示!”[2020/8/19]
在上表中,我们总结了Web3.0钱包在安卓移动设备上保护用户私钥所使用的常见做法。该表对在安卓移动设备上的钱包用于私钥和助记词保护的通用做法进行了总结。每个级别的安全做法都是按照安全级别的提高而按顺序列出的,并且包括了其不能完全解决的相应威胁。
金色财经现场报道 圆桌环节嘉宾关于超级节点会不会在此后成为新的商业模式的观点:金色财经现场报道,今日在纽约举行的2018区块链无国界峰会上,Certik联合创始人顾荣辉表示超级几点在接下来的一段时间内还会比较火热。 星云链联合创始人钟馥百表示超级节点不是一种商业模式,是分片的形式。 IOST联合创始人及CEO钟家鸣表示很多项目都决定做超级节点。EOS主网后半年上市后如果效果好,90%都会跟随退出超级节点。钟家鸣认为超级节点不是最终的完美解决方案,真正可以落地的产品不能太复杂,他们想做出一个更有意义的项目。Hydro Protocol联合创始人王博闻超级节点只是一种尝试,超级节点不一定能解决项目问题,目前确实比较火热。[2018/5/13]
通过研究九个流行的开源Web3.0钱包,我们可将它们划分成不同的安全级别,并更好地了解这些做法在现实世界中的应用方式。
以太坊24h链上交易量上升21.97%:金色财经消息,据欧科云链OKLink数据显示,截至下午2时,以太坊2.0存款合约地址已收到212.72万ETH,近24小时新增1.39万ETH。
以太坊24h链上活跃地址数逾54.26万,环比下降3.26%;链上交易量近429.2万ETH,环比上升21.97%;当前建议Gas费用为134.97Gwei,环比上升36.47%。[2020/12/30 16:05:16]
下图也显示了这些移动钱包应用程序的名称和它们在谷歌游戏商店的下载次数。
钱包安全:从S0到S4
接下来,我们将简要介绍每种安全做法,以及它们在不同应用程序上的实施方式。其中也包括对每种做法的优点和缺点的讨论,以及分析攻击者如何利用不同的攻击载荷绕过这些缓解措施。
分析 | 以太坊30天ROI有一定改观?链上表现较为稳定 ?:据 TokenGazer 数据分析显示,截止至 10 月 30日 11 时,以太坊价格为$190.78,总市值为$20,650.34M,主流交易所24H交易量仍然保持较高水平,当前交易量约为$116.63M,环比昨日增长32.2%;近期以太坊对比特币汇率有一定上行趋势;基本面方面,以太坊链上交易量、新增地址增速、链上DApp交易量保持相对稳定,算力持续下滑;以太坊 30 天开发者指数约为 2.24;以太坊与 BTC 180 天关联度保持稳定,30 天 ROI 有一定反弹;ERC20 代币总市值约为以太坊总市值的 62.27%,有一定回升。[2019/10/30]
S1
S1级别保护钱包安全的做法则是使用用户定义密码来加密包含私钥和助记词短语的存储文件,这可以防止非特权用户或应用程序直接访问存储文件。然而,当应用程序启动时,存储文件必须被解密,有特权的用户或应用程序可以趁机侵入钱包并截获加密密码。这可以让他们在获得加密后的密钥文件后在本地进行解密或者直接进行暴力破解。
为了证明使用S1级保护具有潜在漏洞,我们进行了一个测试:在一个被root的安卓设备上安装了开源钱包Samourai。使用Frida,我们能够在应用程序启动时截获加密密码,并使用该密码来进一步访问用户的私钥和助记词。值得注意的是,尽管Samourai钱包试图检测设备是否被root,但在我们的实验中该检测行为并未生效。
S2
为了防止密钥存储文件的加密密钥被攻击者在内存中被截获,一些钱包应用程序,如Metamask,会使用AndroidKeystore系统来生成和使用加密密钥。
Keystore系统由一个可信的应用程序来实现,该应用程序在安卓系统的可信执行环境中运行。这个环境与主操作系统隔离,并受到基于硬件的安全功能的保护。通过使用Keystore系统,存储文件的加密或解密发生在TEE中,降低了加密密钥被泄露的可能性。
然而,Keystore系统并不提供区块链相关的加密操作API,如交易签名或验证。因此,钱包仍然需要在内存中解密用户的私钥进行相关签名验签操作,这也令它容易受到特权级攻击者的攻击,比如黑客可以转储应用程序的内存并提取私钥。
S3
为了提高S2级保护的安全性,一些钱包应用程序通过检查移动设备是否已被root来更进一步保护用户资产。这种检测利于确保设备的完整性,因为被root的设备更容易被攻击者利用。
例如,AirgapVault钱包使用Keystore系统来保护用户的加密密钥,但也会在运行时检查设备是否已被root。如果发现设备被root,AirgapVault钱包会拒绝运行,最大限度地提高保护水平。这一额外的安全层提供了额外的保护,防止潜在的设备被恶意root的风险。
S4
移动钱包应用程序中最高级别的安全实践是使用专用的TrustedExecutionEnvironment可信执行环境来存储和处理私钥信息。这是通过在设备上安装一个专门的基于TEE的可信应用来实现的。
例如,这种保护方法目前被三星区块链应用程序在某些高端三星智能手机上使用。这种方法提供了额外的保护,因为私钥信息存储在TEE中并由仅在TEE中被使用,TEE与主操作系统隔离,只能由供应商信任的代码访问。即使是有特权的用户或应用程序也不能直接访问这些信息。然而,这种方法的局限性在于,它要求智能手机制造商为钱包开发者提供特定的接口来使用TEE。
移动钱包应用安全
在S3级别的保护中,我们提到root检测可以和Keystore系统一起使用,以保护用户的私人信息。请注意,我们认为root检测是确保设备保持基本完整性的一个重要方面,应该与任何安全实践结合起来实施,以确保更高水平的保护。
然而,重要的是:root检测技术可能有所不同,且不一定有效。例如,虽然AirgapVaultr我们的测试设备已经被root,但Samourai钱包在相同的测试环境下并未成功检测到设备被root。
此外,这项研究只包括移动设备上的软件钱包应用程序,没有任何额外的硬件实现。基于硬件的Web3.0钱包和冷钱包安全都提供了有吸引力的安全功能,它们都值得单独写一篇文章来详细介绍。
在实践中,我们相信移动钱包应用程序由于其简单易用的特性将继续增加其用户群。但是我们认为,钱包开发者应该尽可能利用Trustzone设计,为钱包用户提供最大程度的安全。
总结
在本文中,CertiK的专家团队分析了Web3.0钱包应用程序在移动设备上面临的威胁,特别是私人密钥的存储和相关的潜在威胁。通过对九个不同的流行钱包应用程序的测试及研究,CertiK的专家团队揭示了每个应用程序所采用的安全级别,且发现大多数主要的钱包是使用硬件支持的密钥保护技术来解决密钥存储问题的,如安卓上的Keystore系统。
然而我们也注意到,大多数钱包没有检查设备完整性,例如是否被root,这可能导致在内存中执行私钥操作时出现安全问题。除了我们在本文中总结的五个级别的安全实践外,我们认为钱包开发者还应该注意如何在安卓系统上充分利用Trustzone设计,以更好地减轻常见风险。我们将在今后的文章中继续介绍这个话题,并协助开发者更好地保护用户的资产。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。