iOS APP 如何做才安全

3995
    


来源:
Licence:
联系:
分类:
平台:
环境:
大小:
更新:
标签:
联系方式 :
免费下载 ×

下载APP,支持永久资源免费下载

限免产品服务请联系qq:1585269081

下载APP
免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
下载 ×

下载APP,资源永久免费


如果出现不能下载的情况,请联系站长,联系方式在下方。

免费下载 ×

下载论文助手APP,资源永久免费

免费获取

如果你已经登录仍然出现不能下载的情况,请【点击刷新】本页面或者联系站长


作者:云端之巅 原文链接:http://www.cnblogs.com/dahe007/p/5565643.html iOS 如何做才安全: 1、首先,我们可以通过iTunes下载 AppStore的ipa文件(苹果 把开发者上传的ipa包 进行了加壳再放到AppStore中),所以我们从AppStore下载的ipa都是加壳的,所以不能直接用来反编译

得到ipa文件可以分析APP 里包含的一些资源,如:图片、plist文件、静态wap页、.bundle 等

所以不要 在plist文件、项目中的静态文件中存储关键的信息,如果要保存,记得 对称加密(这样可以增加破解的难度)

如果是越狱的手机,从 手机上的PP助手下载的ipa包 都是 脱壳之后的,可以直接用来反编译

2、我们可以用软件查看APP的沙盒,查看里面存储的文件:sqlite、plist(NSUserdefault会存到Library下的Preferences中 的 plist文件中)、图片等,NSUserdefault 中不要保存关键信息,如果要保存,还是加密吧

sqlite也是这样子的

iOS 8.3之前不越狱的手机也可以直接用MAC上的PP助手、iTool 来查看任何APP的沙盒(系统APP除外)

iOS 8.3之后就不行了

越狱手机都可以查看任意APP的沙盒,包括系统APP的沙盒

还有iOS的系统目录等

3、越狱手机直接用PP助手下载的就是脱壳的ipa,所以不用再脱了

对AppStore下载的ipa包可以用工具对加壳的ipa进行脱壳,再用IDA、Hopper 进行反编译,进行分析 ,可以得到近乎易懂的伪代码

但是反编译后的代码要一个方法一个方法的去分析,类似面向过程编程

当然也有工具去提取项目中的所有.h文件

不过反编译终归是个 耐心的活,急躁的人容易砸电脑

4、所有的APP都是可以反编译的,所以 很关键的数据 最好通过接口获取

那么接口如何保证安全呢

首先用HTTPS,虽然HTTPS已经很安全了,但是数据也是有可能被破解的,这个后面会介绍

所以接口一定要自己加密

非对称加密(RSA)现在还是没有办法破解的,但是因为非对称加密的效率低,所以很少有企业将所有的接口都用非对称加密

接口如果用对称加密,密钥放到代码里是能被反编译出来的

如果你的 APP的安全性很高,就不要把密钥写到代码里

可以这样处理: 先通过非对称加密的接口获取密钥,然后再在后面的接口通信中用这个密钥进行加密

这样做就类似 HTTPS 的简化版实现了

安全性很高

目前应该是不能破解的

5、根据APP的安全性,也可以把关键数据写在代码里,可以保存的是加密后的数据

比如,我给一个变量赋值:U2FsdGVkX1+rN+sgpLmOYTqoVhRRerZj9oobZAIPzjo=,你不知道 我这个字符串解密后是 123456,我只是使用的时候才解密处理用

这样也只是增加了黑客获取关键数据的难度

6、密钥要定期更换

比如3个月或半年换一次,如果密钥是从接口通过非对称加密获取的,直接修改服务端就可以了

如果密钥是写在代码里的

就等APP升级新的版本的时候,新版本的APP和其对应的接口版本都修改为新的密钥就可以了

旧的接口版本和APP版本还用以前的密钥,等强制更新的时候才会失效

如果一个APP 一个密钥用上几年都不变 ,是很危险的

离职的人员都可以直接用以前的代码来获取相关的数据

特别是支付相关的,有的服务端甚至没有去校验支付的金额或其他数据,导致离职人员用1分钱可以买到任何价格的线上产品(服务端这种在线上环境留后门的安全性问题,我是真的遇到有人这么搞)

7、最好能进行代码混淆,能增加反编译的难度,当然只是增加了难度,还是能破解的

但是代码混淆的性价比是很高的,就是你这边付出了 一点时间,而黑客就要多付出几十倍的时间

其实接口自己加密的性价比也很高

8、接口返回的数据最好也进行加密

比如,现在大家都连我的热点,或者代理服务器,我是有可能直接获取你的APP的 HTTPS 解密后的json数据(如何获取相见《逆向工程》)

当然,如果你觉得你的APP返回的json数据都是不重要的,也可以不对数据进行加密

9、像HTTPS本身是否有漏洞这种我们就不去说了

就去年iOS的AFNetworking 漏洞事件,完全是代码的问题

虽然不是HTTPS的安全机制的问题

但是黑客还是能很容易拿到HTTPS解密后的数据

去年iOS的AFNetworking曝SSL漏洞就涉及2.5万个APP

有的银行的APP,只用了HTTPS,通信都不加密,就很容易拿到明文数据了

有的APP里的各种数据都 采用复杂的加密算法,破解人员看到都烦,去破解这个APP的时间还不如去搞其他的几个APP

HTTPS 本身是安全的

但是数据还是可能被破解

所以不要觉得我只用HTTPS 就安全了

理论上说任何的协议、代码都是可能有漏洞的,只是有的现在 还没被发现或破解,并不代表一直不能被破解

10、黑客不会 去一个手机一个手机的 把沙盒数据 拿出来 来看每个用户的数据(黑客也不可能拿到你的手机)

11、黑客最主要的还是通过网络来获取他们想要的数据(网络的安全级别是最高的)

如果恰好你的APP加密密钥明文保存到了沙盒里或者你的数据通信还没有进行加密,恭喜你,你的数据和裸奔没啥区别

有人说:“我就做了个聊天的APP,没啥机密信息

再说大家连的都是公司的wifi、4G网络,不会有问题的,所以我的通信才不加密,麻烦

免费wifi确实有可能是黑客设的坑,新闻上经常报道)

所以不要让自己的数据裸奔

12、代码方面: 在release环境下 NSLog 不要打印日志 否则iOS系统日志里都可以查看到,在.pch文件中加下面的几行代码就可以解决

很早大家都这么做了

#ifdef DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #define debugMethod() NSLog(@"%s", __func__) #else #define NSLog(...) #define debugMethod() #endif 现在很多APP的部分页面开始使用 Swift,在Swift 文件中是允许用 NSLog 的语法来打印,但是不要这么做,因为这样就会导致这段代码在release环境中也可以正常输出

通过 PP助手、iTools,可以直接查看iOS的系统日志

也可以直接通过Xcode-Window-Devices - 点最下面的向上的小箭头,来看日志

所以Swift中打印还是用print吧

AFNetworking 的 allowInvalidCertificates 属性 要设置成 false,validatesDomainName属性 设置成true

否则 HTTPS通信就可以被解密

这块涉及到AFnetworking 去年的通信漏洞 就不详述了

但是一般开发的 测试环境 的HTTPS 不是CA颁发的,而是自签名证书,访问的也不是域名,而是IP

所以可以在测试环境 忽略证书和域名,代码如下: #ifdef DEBUG manager.securityPolicy.allowInvalidCertificates = YES; manager.securityPolicy.validatesDomainName = NO; #endif 答疑: 像上文中提到的接口模拟HTTPS进行通信,基本上是破解不了的

非对称加密毕竟还是很安全的

黑客也是有时间成本的,有性价比的

文中多次写到,可以增加破解的难度,不是这样做了就一定不会被破解

有人会觉得在代码中加密了反正也能被破解,那还加啥密,反正没啥卵用

(比如关键数据加密后,存到代码里)打个比方:我装个防盗门,反正也防不住贼,干脆就别装门了,反正也没啥卵用

再比如:有几个房间放着同样价值的东西(账户数据、聊天数据等)

但这几个房间,有的是全封闭防炸弹的,有的就只是一个木门,有的甚至门都是开着的,你会选择哪个

这就像为什么现在 iOS 系统的越狱速度越来越慢,不是说越狱人员的水平变低了,而是现在越狱的用户越来越少

关键数据加密后存到代码里, 这样总比你直接把明文保存到代码中,更难破解,我们要做的是让黑客知道,你要来惹我,你就必须付出更多的时间和精力

近期热文 30岁年薪20万算不算很失败? 工作5年的程序员如何拿到月薪25K? 25岁毕业,拿一万块钱月薪…… 程序员2W/月和1W/月的工作,你会怎么选? IT行业加班到底有没有价值? 他工作了8 年多,分享程序员个人发展经验! 面试题: 你被困在一幢200米高的大楼的楼顶

你手里有一根150米长的绳子和一把瑞士军刀

你所站的地方有一个铁钩子

往楼下看时,你发现大楼正中间,也就是100米高的位置上,有一个可以落脚的金属支架,上面还有另外一个钩子

你怎样才能利用这些东西安全到达地面? 请回复“ 逃生 ”给程序源公众号查看分析!


免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。
扫描加我微信 ×

演示

×
登录 ×


下载 ×
论文助手网
论文助手,最开放的学术期刊平台
				暂无来源信息			 
回复
来来来,吐槽点啥吧

作者联系方式

×

向作者索要->