我们常说的数据安全:主要分为两种,数据本身的安全和数据防护安全。
数据本身的安全包括数据保密,数据完整性验证,数据双向认证等。
数据防护安全包括磁盘阵列,数据备份,异地容灾等。
App安全问题主要包括:
App代码安全,包括代码混淆,加密或者app加壳。
App数据存储安全,主要指在磁盘做数据持久化的时候所做的加密。
App网络传输安全,指对数据从客户端传输到服务器中间过程的加密,防止网络传输过程当中其他节点对数据的篡改。
我在这里主要想跟大家分享数据在网络传输过程中的安全问题。
数据安全简介
数据安全的基本概念
数据安全:是一种主动的包含措施,数据本身的安全必须基于可靠的加密算法与安全体系,主要是有对称算法与公开密钥密码体系两种(非对称算法),都包含了数据的加密和解密过程。
对称算法:对称密码算法有时又叫传统密码算法,是指加密密钥可以从解密密钥中推算出来,反过来也成立。
非对称算法:非对称密钥也叫公开密钥加密,就是不能由其中一个密钥推导出另一个密钥。
密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称 密钥与非对称密钥(也可以根据用途来分为加密密钥和解密密钥)。
明文:没有进行加密,能够直接代表原文含义的信息。
密文:经过加密处理处理之后,隐藏原文含义的信息。
加密:将明文转换成密文的实施过程。
解密:将密文转换成明文的实施过程。
网络数据安全传输要实现的效果
例如数据从A传输到B,怎么才算安全传输。
1.Message有A的电子签名,表明消息确实是来自A。
2.Message没有被篡改过。
3.Message被某种加密算法加密过,只有A和B知道如何解密。
数据安全的原则
1.在网络上不允许传输用户隐私数据的明文。(即:App网络传输安全,指对数据从客户端传输到Server中间过程的加密,防止网络世界当中其他节点对数据的窃听)。
2.在本地不允许保存用户隐私数据的明文。(即:App数据存储安全,主要指在磁盘做数据持久化的时候所做的加密)。
3.App代码安全。(即:包括代码混淆,加密或者app加壳)。
4.要想非常安全的传输数据,建议使用https。
5.防止中间人攻击,建议双向验证。
常用的加密算法
1.编码方案:指定数据的编码格式,通过简单 BASE64编码防止数据明文传输。如 Base64编码方案。
Base64可以成为密码学的基石,非常重要。它可以将任意的二进制数据进行Base64编码,并且所有的数据都能被编码为并只用65个字符(A~Z a~z 0~9 + / =)就能表示的文本文件。
注意:对文件进行base64编码后文件数据的变化:编码后的数据~=编码前数据的4/3,会大1/3左右。
Base64编码原理:
(1) 将所有字符转化为ASCII码
(2) 将ASCII码转化为8位二进制
(3) 将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位
(4) 统一在6位二进制前补两个0凑足8位
(5) 将补0后的二进制转为十进制
(6) 从Base64编码表获取十进制对应的Base64编码
Base64处理过程:
(1) 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区