防抓包(证书攻击)策略-iOS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防抓包(证书攻击)策略-iOS相关的知识,希望对你有一定的参考价值。
参考技术A 2.1把证书机构签完的公钥证书放到工程里名称为"server.cer"2.2设置AFSSLPinningMode
使用AFSSLPinningModePublicKey和AFSSLPinningModeCertificate方法基本可以防止青花瓷等的证书攻击
所有方法都是有漏洞的,iOS的app够安全,但是圈内依然有一群逆向工程师
方法1中在使用Class-Dump还是能够找到方法并且运行时替换或者直接hook方法进行修改返回逻辑,动态库注入方式,再使用企业签名把ipa包进行 重新签名ios-app-signer , fir发布 。
方法2中在逆向工程师眼里也是很简单破解的,app砸壳,再显示包内容,依然可以直接把你证书放在青花瓷中使用。
只是提高了破解难度,有树叶遮羞总比裸露在外面好一点
ios开发防止App被抓包
ZXRequestBlock
实现iOS应用底层所有网络请求拦截(如ajax请求拦截),包含http-dns解决方法,有效防止DNS劫持,用于分析http,https请求,禁用/允许代理,防抓包
用到第三方库 ZXRequestBlock
1,安装
通过CocoaPods安装
pod 'ZXRequestBlock'
手动导入
将ZXRequestBlock拖入项目中。
导入头文件
#import "ZXRequestBlock.h"
使用方法
拦截全局请求
[ZXRequestBlock handleRequest:^NSURLRequest *(NSURLRequest *request)
//拦截回调在异步线程
NSLog(@"拦截到请求-%@",request);
dispatch_async(dispatch_get_main_queue(), ^
self.blockTv.text = [self.blockTv.text stringByAppendingString:[NSString stringWithFormat:@"拦截到请求--%@\\n",request]];
);
//在这里可以将request赋值给可变的NSURLRequest,进行一些修改(例如根据request的url过滤单独对一些请求的请求体进行修改等)然后再return,达到修改request的目的。
return request;
];
禁止网络代理抓包(开启后将无法通过网络代理抓包,通过Thor,Charles,Burp等均无法抓取此App的包,且在代理网络下App内部请求不受任何影响)
[ZXRequestBlock disableHttpProxy];
允许网络代理抓包【默认为允许】
[ZXRequestBlock enableHttpProxy];
启用HTTPDNS(将会直接从本地或http://119.29.29.29 进行DNS解析,是一种避免DNS劫持的措施)
[ZXRequestBlock enableHttpDns];
关闭HTTPDNS【默认为关闭】
[ZXRequestBlock disableHttpDns];
禁止所有网络请求
[ZXRequestBlock cancelAllRequest];
恢复所有网络请求
[ZXRequestBlock resumeAllRequest];
https://github.com/SmileZXLee/ZXRequestBlock
以上是关于防抓包(证书攻击)策略-iOS的主要内容,如果未能解决你的问题,请参考以下文章