无论是中心化还是去中心化钱包, 软件钱包还是硬件钱包在安全性方面必须有充分的安全测试,针对数字钱包的安全审计,零时科技安全团队的审计项目包括但不限于如下测试项:
1、网络和通信安全测试
- 网络节点应达到及时发现和抵抗网络攻击的功能;
2、钱包运行环境安全
- 钱包能够对操作系统进行已知重大漏洞进行检测,虚拟机检测,完整性检测;
- 数字钱包需具有第三方程序劫持检测功能,防止第三方程序劫持钱包盗取相关用户信息。
3、钱包认证安全
- 钱包认证过程中必须设置钱包解锁密码用于解锁钱包,防止设备丢失后钱包信息被窃取;
- 使用钱包进行交易签名必须设置支付密码,防止解锁后解密的私钥被窃取;
- 使用钱包日志功能必须设置日志密码,防止钱包密码丢失后攻击者直接清除钱包操作日志;
- 交易密码需使用多因素认证,例如:指纹、面部识别、OTP令牌、短信验证码等,防止密码泄露导致私钥丢失。
4、钱包交易安全
- 钱包发出的所有交易必须进行签名,签名时必须通过输入支付密码解密私钥,交易签名生成后必须清除内存中解密后的私钥,防止内存中的私钥被窃取而泄漏等。
5、钱包日志安全
- 为了方便用户进行审计钱包操作行为,防止异常操作和未授权的操作,需记录钱包的操作日志,同时钱包日志必须通过脱敏处理,不得含有机密信息。
6、节点安全审计
- 钱包节点应能记录用户的连接记录、交易记录,能够保存审计记录的过程和结果,便于管理员进行查询;
- 必须对节点服务器进行安全设计和安全加固。
7、节点接口安全审计
- 接口需要对数据进行签名,防止黑客对数据被篡改;
- 接口访问需要添加token认证机制,防止黑客进行重放攻击;
- 节点接口需要对用户连接速率进行限制,防止黑客模拟用户操作进行CC攻击。
8、数据存储安全
- 钱包生成的私钥必须通过加密算法加密后才能进行存储,同时钱包的本地静态文件不得含有明文的敏感信息。
9、数据的备份与回复
- 钱包生成的私钥或者助记词,必须在确保安全的情况下进行备份处理,避免私钥意外丢失导致资金无法找回。
- 如果移动应用能够被备份出来,就可以使用计算性能更加强大的机器对私钥/助记词进行暴力破解。
10、静态代码安全审计
- 钱包APP必须进行正规的代码审计,以确保钱包不会有额外功能权限用来收集用户私钥,保证APP本身的安全性。