首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

iOS https(SSL/TLS)数据捕获

要捕获iPhone上的appstore的数据还真的没那么容易,以前介绍的那些使用代理手工导入证书的方法已经完全失效了,结果就是安装证书之后再打开appstore也无法正常的建立连接。按照我的分析其实是appstore在检测证书无效之后直接就没有发起任何的请求(可以通过wireshark抓包查看网络数据) 随之而来的是第二种方法,patch ssl证书校验函数,根据这个原理实现的有两个工具,一个是ssl kill switch,另外一个是trustme。原理都是一样的,并且也非常的简单,按照作者的说法是truestme实现的更底层一些。但是很不幸的是,结局是同样的悲哀的,在iOS6之后这个东西也是失效了。 其实我这里要说的方法也比较简单,如果阅读过上面两个工具的源代码(请自行搜索相关代码),并且理解mac os/iOS 下https实现的相关原理,那么也就自然的想到hook发送和接收函数的方法来捕获数据了。 需要关心的函数只有两个sslread和sslwrite: 代码:

03

苹果安全体系架构

下图是IOS系统安全架构图,它分为两个部分,第一个部分是硬件和固件层上面提供的安全保障,第二个部分是软件上面提供的安全保障,可以看到的是在硬件层上面它有一个加密引擎对我们的设备密钥、组密钥以及Apple的根证书进行加密,除了加密引擎以外它还有一个Secure Enclave的一个模块,这个模块是用来加密和解密我们Touch ID保存用户的指纹密码,在软件层有一个用户分区,整个用户分区是完全加密的,而且这个加密功能是不能关闭的,苹果的加密引擎是硬件级别的,所有进出的存储数据都要通过苹果加密引擎进行加密,而且加密引擎进行加密的key是跟硬件相关的,所以说我不能把一个设备加密的数据拿到另外一个设备上面去解密,应用沙盒提供了一个数据保护类的一个安全机制,这个数据保护类可以保护我们应用类数据的安全性,比如我们在应用沙盒里面写入的数据,我们可以通过数据保护类限定只有在用户解锁了设备之后才能读取这个数据

01
领券