业务数据安全是一个很大的命题,今天将通过工作过程中遇到的一些问题以及解决它的一些经验来阐述他。
业务数据安全,顾名思义,就是保证数据的安全性,防止他人盗用我们的数据作为他用。
业务数据包括App本地文件数据,传输数据,数据库数据;
本地文件数据(不敏感的数据):
客户端因业务需求在本地存储数据,在我们设计代码的时候建议该存储的数据的是不敏感的,毕竟客户端是装在客户的手机上,存在不可控的风险比较大;但是有些人说我就是有些敏感数据需要存在本地咋办,那么此时建议是将该数据进行加密处理,并且加密的逻辑都需要在普通人无法破解的情况下进行,例如通过C写一个加解密方法,接着生成一个so库,本地通过调用so库中的加解密方法进行加解密。
数据传输(不安全的环节)
数据传输是数据最不安全的一个环节,任何人都可以在这个环节上插一脚,截取你的数据或者伪造你的数据。在这里,https数据加密是必备,业务内安全是常备,https数据加密我们就不说了,我们如何保证我们的业务内安全呢?通常情况是加密+验签两种方式的组合。
客户端从接口开始,通过请求参数+影响因子生成签名,然后签名和请求参数通过加密算法生成Params,网络传输过程中只有Params,业务服务器接收到Params后进行解密,得到sign1,然后通过签名工具生成Sign2,对比两个签名,成功即匹配成功,业务服务器返回给客户端也可采用此流程。
数据传输是一个不安全环节,我们在做业务的时候一定要结合自身业务需求定制符合我们自己业务的内安全系统,以此保证数据安全。
数据库数据(底层的数据)
基本业务数据的最终流向一测则是用户,一测则是数据库,对于数据库中数据,我们应该如何处理,如何保证他的安全性呢?答案还是加密,针对特殊数据进行加密,例如联系电话,紧急联系人等,亦或者针对数据库加密,一个针对表,一个针对库。
在我们使用业务数据的时候,要时刻注意我们的业务数据是否是安全的,是否被人盯上了,在信息大爆炸的时代,人们获取信息的手段是五花八门,我们在做数据安全的同时,切记定期更换我们的私钥。