首页 > 代码库 > 如何保护敏感信息不被篡改

如何保护敏感信息不被篡改

问题背景

系统中的敏感信息,如账户余额,需要给予特殊保护,不能被篡改。

如何从程序角度给予保证?

分析

采用非对称加解密算法,原理如下:

1、网站生成一对公钥和密钥,使用时必须成对使用。

2、公钥发布给公众,私钥自己保存,需要保证私密性。私钥不泄露是这套体系生效的前提。

3、只有自己用私钥加密产生的密文,用自己发布出去的公钥才能打开。(一般用于签名,防抵赖)

4、我们采用私钥加密,公钥打开,是以后可能有数据交互的需要。

5、灵活使用各种小技巧,可以进一步提高安全性。

方案

以下方案只是框架方案,实际实现时需要进一步充实。
1、网站生成私钥、公钥对。
2、需要保存(或更新)余额时候,用私钥对余额加密,得到密文。
3、网站只保存密文。
4、需要读取余额时,读取密文,用公钥解密,得到余额数组。
优点:
通过非对称加密体系,极大提高了系统安全性。
缺点:
体系安全取决于密钥的私密性,可以使用KeyStore(通过密码保护私钥)、物理证书(在服务器上插证书U盘或卡,容易造成性能瓶颈,可以指定策略多整几个)、物理加密机(效果最好、成本高、容易形成性能瓶颈)等方法进一步加强。
加解密算法会带来额外的计算工作,但几乎可以忽略不计。

实现

实现时,以下技巧需要注意:
1、通过摘要算法,进一步确认数据没有被篡改。
2、多种非对称加密算法可以组合使用。
3、最大程度保护程序算法私密性,不公开程序逻辑,防止程序被反编译。

如何保护敏感信息不被篡改