钱包安全性评估指标
安全事件数量不断增加的原因有多种。首先,使用钱包的用户缺乏保护私钥和助记词不被盗用或泄露的安全意识。其次,钱包应用里存在攻击者可能利用的逻辑或编程缺陷。由于区块链的不变性,一旦钱包应用程序在区块链上启动,修补漏洞是不切实际的。
在我的本科毕业文章里,仅仅评估钱包安全、数据安全、软件防护安全三部分,其中前两个部分是测评的重点内容。
钱包安全从两个角度评估,即密钥安全和交易安全。密钥安全是指在密钥生成、导入和存储过程中设置评估点,而交易安全则是在代币转移和合约调用过程中进行风险检测。
助记词生成时,要求种子的熵值足够大,应采取随机数生成种子。冷钱包或者硬件钱包,可以采集硬件噪声所生成的系统熵作为随机数,或使用自身搭载的摄像头进行环境图像采集,生成系统熵用于私钥产出。
私钥或者助记词存储时,数字钱包数据必须加密存储,加密算法以及加密密钥应经过设计,禁止明文存储助记词、私钥等关键信息。
钱包导入时,应输入相应的密码验证钱包账户的所有权。
只要存放私钥的钱包触网,理论上都存在被黑客攻击和被恶意软件盗取的风险,尽可能降低交易风险是评判一个钱包的重要指标。设置交易密码可以降低交易风险。
交易密码应检测弱口令,提示用户设置8至16位,数字,大小写字母的组合强密码密码。
查看余额、交易签名验证以及确认交易这三个子检查项,应确保接口所调用函数的使用方法是安全的,不存在因程序员编程时未安全使用所造成的漏洞。若存在调用智能合约,则需保证智能合约的正确性。
对于数据安全方面,指标可以分为网络通信安全、弱加密风险和数据存储安全。网络通信安全识别网络通信中的潜在漏洞和威胁。弱加密风险识别加密部分是否采用弱加密,而数据存储安全检测数据存储位置是否存在泄露风险。
在网络通信安全方面,安全的数字钱包需要能够对终端里面全部的数字证书进行合法性的扫描、对网络传输过程中的代理设置进行检查并能够保障基础的网络通讯环境的安全性。
对于加密所用的算法,应检查是否采用了弱加密算法,密钥长度是否合适。
对于数据存储安全,检查是否有日志,且日志备份何处,多久备份一次。在使用钱包时,若用户操作被攻击者截屏、录屏,则可以导致用户的助记词、私钥、交易密码等关键信息泄露,钱包不安全,因此,应禁止剪切板中存储敏感信息,对与截屏和录屏的功能也要有所限制。
软件防护安全分为运行环境安全和正版验证。
如果是数字钱包应用,正版验证主要集中在应用安装包自身的安全防御上,应用安装包应该具备抗篡改能力。
检测系统运行环境。加密数字货币钱包最核心的文件,私钥和助记词文件,无论是PC端还是移动端,终端设备如果出现不安全现象,私钥和助记词都有非常高的安全风险。一个安全的数字钱包,在设计之初就应该避免因为运行环境不安全而导致的私钥或者助记词被盗的可能。终端上运行环境的安全问题主要包括病毒软件、操作系统漏洞等。
以上仅仅是钱包安全性测评很少的几个方面,除此之外还有敏感操作、权限信息、组件安全等。下期细🔒