iOS开发_性能优化iOSiOS精选

iOS移动端防止被抓包

2017-04-27  本文已影响288人  分贝丶

首先介绍一下在https建立的过程中是如何被中间人抓到包的吧,前提是如果不熟悉https建立连接的过程,先看一下相关资料再接着看本文


移动端防止被抓包

过程分析

解决问题方案

客户端为了解决这个问题,最好的方式其实就是内嵌证书,比对一下这个证书到底是不是自己真正的“服务端”发来的,而不是中间被替换了。

下面就介绍一下解决的步骤吧:

1、问运维要到接口站点的证书(即当初证书机构签完的那个放到nginx里的公钥证书),放到工程里面就可以,AF会自动去查找
2、AFNetworking设置以下代码

AFSecurityPolicy * policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
_manager.securityPolicy = policy;

AF的安全策略会自动的在bundle里面查找公钥证书,建立https的时候进行比对。不一样直接就失败了。

PS:顺带介绍一下AF的AFSSLPinningMode的三个级别

这样做了之后,就可以即使手机上安装了抓包工具的CA,抓包工具也不能抓到包了。因为你的客户端在验证“服务端”下发的公钥证书的真伪的时候就不会通过“中间人”下发的公钥证书,也就不会建立起来https的连接了。
其实使用了https,并且在系统没有被攻破或者有证书漏洞的时候就能保证通信过程的安全了。但是这样可以更近一步,以防止竞争对手抓取你们的数据之类的,毕竟数据被别人抓走了总是不好的。在写这个博文的时候尝试了一下可以被中间人抓包工具抓到完整包的有很多,知乎,贴吧,等好多。但是银行的金融类app就抓不到,相对的安全了很多了。

上一篇 下一篇

猜你喜欢

热点阅读