区块链数字钱包存在多种形式,面临的安全风险也是多样性的,主要面临的安全风险包括但不限于如下几方面:
1、运行环境的安全风险
加密数字货币钱包最核心的文件——私钥/助记词是存储在终端设备上的,无论是PC端还是移动端,终端设备如果出现不安全的现象,对于私钥/助记词来说是有非常高的安全风险。
一个安全的数字钱包,在设计之初就应该避免因为运行环境而导致的私钥/助记词存在被盗可能。终端上运行环境的安全问题主要包括病毒软件、操作系统漏洞和硬件漏洞等。
2、网络传输的安全风险
网络传输的安全性更多地体现在是否有良好的对抗中间人攻击的能力上。中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
安全的数字钱包需要能够对终端里面全部的数字证书的合法性进行扫描、对网络传输过程中的代理设置进行检查并能够保障基础的网络通讯环境的安全性。
在数字钱包的开发中,在网络传输层面是否使用双向校验的方式进行通讯验证也是衡量一个数字钱包应用安全性的重要评判标准。
3、文件存储方式的安全风险
对于数字钱包的私钥/助记词,终端设备的存储方式也是需要在安全性设计上加以注意的。私钥/助记词文件存放目录的访问权限、私钥/助记词存储的形式和加密算法设计都需要通过严密设计。
在对多款主流数字钱包进行安全性分析时,我们发现即使是知名的数字钱包,在私钥/助记词的存储上也是比较随意的。既有明文存储,也有加密存储,但是解密的密钥却是在代码里面固定写死的,起不到任何的安全防御作用。
4、应用自身的安全风险
应用自身的安全风险主要集中在应用安装包自身的安全防御上。
应用安装包是否具备抗篡改能力。另外,应用运行过程中的内存安全、反调试、私钥/助记词使用的生命周期管理、调试日志的安全性、开发流程的安全等方面也是需要去设计增强的。
5、数据备份的安全风险
如果移动应用能够被备份出来,就可以使用计算性能更加强大的机器对私钥/助记词进行暴力破解。举例来说,如果终端设备上允许数据备份,那么就可以利用系统的备份机制对应用的数据文件进行备份,而加密数字货币的私钥/助记词也就被备份到外部介质了,这就从另外一个方向打破了操作系统的安全边界设计。
对于广大用户来说,数字钱包的安全也意味着财富的安全,所以我们在选择数字钱包时一定要慎重对待,不可掉以轻心。