IOS:用户数据安全
一:网络
A : 一定要使用POST请求提交用户的隐私数据
B : 请求的URL一般会记录在服务器的访问日志中
用户的隐私数据
A:账户登录密码
B:支付密码
C:银行账户
D:.......
仅仅使用POST请求提交用户的隐私数据,还是不能完全解决安全问题
非法者可以利用软件比如:(Charles)设置代理服务器,通过免费无加密的wifi,拦截查看手机的请求数据,而POST请求是存放在请求体内的,如果不进行加密,那么你的账户就存在很大的安全隐患了。
因此:提交用户的隐私数据时,一定不要进行明文提交,要经过加密后变成暗文在进行提交。每一种加密方式都用在各个不同的领域中,一般按照公司接口文档或者开发需求进行相符合的加密方式
常用的是MD5算法。
MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。
MD5功能:
1、输入任意长度的信息,经过处理,输出为128位的信息(数字指纹)。
不同的输入得到的不同的结果(唯一性)。
根据128位的输出结果不可能反推出输入的信息(不可逆)。
2、防止直接看到明文
B:对明文进行MD5加密然后再撒盐
提交隐私数据的安全过程 - 登录
二:本地
iOS应用的数据在本地通常保存在本地文件或本地数据库中。如果对本地的数据不进行加密处理,很可能被黑客篡改。比如某款手游单机的游戏,打开它的本地文件,可以很容易地找到某些文件是用来变量保存生命数值 。于是我们可以简单修改该值,达到修改游戏参数的目的。而在淘宝上,也可以找到许多以此挣钱的商家。对于本地的重要数据,我们应该加密存储或将其保存到keychain中,以保证其不被篡改。
源代码安全
通过file、class-dump、theos、otool等工具,黑客可以分析编译之后的二进制程序文件,不过相对于这些工具来说,IDA的威胁最大。IDA是一个收费的反汇编工具,对于Objective-C代码,它常常可以反汇编到可以方便阅读的程度,这对于程序的安全性,也是一个很大的危害。因为通过阅读源码,黑客可以更加方便地分析出应用的通信协议和数据加密方式。
下面分别示例了一段代码的原始内容和通过IDA反汇编之后的结果。可以看到,IDA几乎还原了原本的逻辑,而且可读性也非常高。
原始代码:
反汇编后:
反汇编的代码被获得后,由于软件内部逻辑相比汇编代码来说可读性高了很多。黑客可以用来制作软件的注册机,也可以更加方便地破解网络通信协议,从而制作出机器人(“僵尸”)账号。最极端的情况下,黑客可以将反汇编的代码稍加修改,植入木马,然后重新打包发布在一些越狱渠道上,这将对用户产生巨大的危害。
总结
由于移动互联网的快速发展,人们的购物、理财等需求也在移动端出现,这使得移动应用的安全性越来越重要。由于部署在用户终端上,移动应用比服务器应用更容易被攻击,大家也需要在移动应用的网络通信、本地文件和数据、源代码三方面做好防范,只有这样才能保证应用的安全。