当前位置:首页 > 知识 >

区块链钱包漏洞修复策略解析

如何修补区块链钱包漏洞?

区块链钱包漏洞可窃取加密货币

CheckPoint研究人员在Everscale区块链钱包中发现安全漏洞,可以窃取用户加密货币。

EverSurf

EverSurf是一个跨平台的消息应用,一个区块链浏览器,也是Everscale区块链的加密货币钱包。使用React Native开发框架编写,同时上传到了Google Play Market和Apple Store应用市场。同时,还有一个可运行在任意平台的EverSurf web版本。

图1 EverSurf web版

漏洞分析

Surf钱包中用于对交易进行签名的密钥只保存在用户设备上。所有对区块链的操作都是在客户端来实现的。因此,与其他非托管钱包类似,无需注册过程。

用户首次运行应用时,会被建议创建一个新的钱包。Surf会生成一个seed词组和公私钥对。此外,用户会被要求创建一个6位数字的PIN码。

然后该PIN码被用于登录应用和确认交易。Surf有应对暴力破解PIN码的保护机制:

图2 EverSurf预防暴力破解PIN码

即使没有这类保护机制,创建的密钥和seed词组都保存在浏览器的本地存储中。本地存储是使用localstorage特征从JS访问的key-value存储。

Surf以下面的格式将密钥和seed词组保存在本地存储的“surf.ton.wallet”key中:

图3 保存在浏览器localStorage中的加密的钱包数据

本地存储在web浏览器中并不是受保护的。比如,在Firefox中本地存储以非加密的SQLite数据库的形式存储:

Mozilla\Firefox\Profiles\{profile_name}\webappstore.sqlite

Chrome将localstorage以非加密的levelDB数据库的形式存储:

Google\Chrome\UserData\Default\LocalStorage\leveldb\

也就是可以通过物理或恶意软件访问用户计算机的用户就可以获得这些数据。

此外,本地存储还可以被浏览器扩展访问,然后浏览器扩展可以泄露保存的数据。研究人员创建了一个简单的Chrome web扩展实现了该功能:

alert(localStorage.getItem("surf.ton.wallet"));

安装该扩展后,打开Surf网站后,就可以看到包含加密的keystone的消息:

图4 使用浏览器扩展从localStorage中提取加密的钱包数据

因为控制用户钱包的数据是保存在用户计算机上的,因此对用户资金的唯一保护就是强加密。

Keystore加密

Surf应用会在用户输入正确PIN码后加密seed词语并向用户显示:

图5 Surf要求用户输入PIN码

研究人员分析发现askForPassword函数会被调用,并接收加密的keystore。

图6 负责取回seed词语的函数

askForPassword函数会调用validatePassword函数来执行PIN码验证。

图7 askForPassword函数读取和验证PIN码

最重要的动作是PIN码验证。通过调用deriveKeyFromPasswordAndSalt函数,Surf会生成派生密钥,用于解密keystore。然后在isDerivedKeyCorrect函数中使用nacl_secret_box_open执行解密过程。

在deriveKeyFromPasswordAndSalt函数中,Surf会使用使用Scrypt密钥派生函数从PIN码中派生出解密密钥:

图8–Surf派生keystore解密密钥

攻击场景

CheckPoint研究人员

{"encSeed":{"encStr":"6rjkbh88WXkrJWl4os3cjRzvZkQGlnV39U3YvLYUrM7yzf6h79XxXX/VziNde2bkPeSnJZ11Yi4T8CFgPJMyI1W+EN0Yzw+FDdtTq5gaKHjk5nF60CSHZ4qKXObIQ7zBbped","nonce":"2Tdr9FFP0RcpjecwcS8XtcC5M2/FRY+I"}}

攻击过程只花费了38分钟。最后成功获得了派生密钥,并解密了seed词组,可以用于恢复另一个设备上的密钥。

图9 PIN码暴力破解结果

漏洞修复

CheckPoint研究人员将该漏洞提交给了EverSurf开发者,开发团队通过发布桌面版的方式修复了该漏洞。目前,该web版本只用于开发用途。账户的seed词组不在EverSurf web版中使用。

参考及来源:https://research.checkpoint.com/2022/check-point-research-detects-vulnerability-in-the-everscale-blockchain-wallet-preventing-cryptocurrency-theft/

责任编辑:

猜你喜欢

微信二维码

微信