数据加密安全
一、不加密的数据有何安全问题?
1、数据容易被不法问题抓包,一览无余,特别是密码,与金融相关的数据,数据安全问题尤其重要。
2、易被篡改,接收方与发送方的内容不一致。
3、没有鉴权,易被假冒身份。
网络数据安全建议使用HTTPS(iOS在appstore上线审核有建议要求),但HTTPS需要收费。https = http + 加密+ 认证 + 完整性保护,可自己在http的基础上加密,并实现完整性验证。下面是实现过程的简介。
- 常见加密算法简介
- 对称加密
公钥和私钥属于统一把钥匙,特点是加密速度快,适合是大数据加密,安全系数低
①DES:数据加密标准,速度较快,适用于加密大量数据的场合。
②3DES:是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
③AES:高级加密标准,是下一代的加密算法标准,速度快,安全级别高
2.非对称加密
公钥与私钥属于不同把钥匙,公钥加密,私钥解密,私钥签名,公钥解签名加密,速度慢,安全系数高。常见的加密算法用RSA算法加密。
3.散列(哈希)函数
常用的md5,sha1、sha256、sha512,一般用于身份验证,数据完整性,结果不可逆,加密是对数据进行机密性保护,签名主要用于身份验证。
三、加密方案总结
充分利用对称加密,非对称加密,散列函数的特点来加密。
分析:对称加密与非对称加密对比,对称加密较非对称加密速度,但是非对称加密更安全。对称加密的钥匙一旦被公开,安全问题随之暴露。因此可以将对称加密的钥匙交给非对称加密来管理,即非对称加密来加密对称加密的密钥,因为加速速度问题,内容加密用对称加密更适合。 加密的内容,也存在被流量篡改的可能,因此要验证完整性,可利用散列函数的不可逆性的特点来进行完整性验证。散列函数的安全性不高且不可逆性,据说被破解了,因此不适合于加密,更适合于验证完整性。采用md5较SHA安全性更低,但数据长度只有16个字符,更短,因方案的散列函数只用于验证完整性,不针对安全,因此md5更适合。
总体请求流程如下:
先看发送方
这里,发送方我们分为5步操作。
- 将提交内容加密进行md5加密,得到md5加密的内容,这个内容的目的在于验证内容的完整性
- 产生随机的对称加密的密钥,这个密钥随机生成,加大了被破解的可能性
- 把第1部的md5加密内容和随机的对称加密密钥加一起,用RSA的非对称加密算法进行加密管理,用公钥加密,提升被加密的安全性
- 将第2部生成的随机对称加密密钥来加密提交的内容。用对称加密加密内容,主要是对称加密速度较非对称加密速度快,适合加密大数据情况
- 将第4部的加密内容和第3部的结果整合一起数据包发送出去
再看接收方:
接收方在接收到数据包之后,有步操作:
1、解发送方的第5步骤,分出加密内容、加密的密钥与md5内容的结合
2、会使用匹配的非对称加密私钥解密加密的对称密码,获取到真实的对称密钥和md5加密内容。
3、使用第2部解密出来的对称密钥,解密加密报文,获取原报文内容。
4、将解密出来的报文内容进行md5加密,然后与解密出来的md5值进行比对,如果相同,则证明没有被篡改过。
四、总结
加密算法固然重要,但不是只要加密了就不会出现数据安全问题,它只是为数据安全提供了更进一层的安全保障。如私匙都被泄露,接口代码等被泄露,那问题必然挡不住。因此,必要法律保护知识也是很重要的一层保障。