iOS技能-chales抓包https 原理

记录在面试的时候 被闻到 chales抓包https原理。。。。。  

在日常开发过程中,用charles抓包已经成为我们主要调试网络包问题的必选工具,http抓包只需要在一个局域网下即可实现,但是我们在抓https包的时候就出出现不能查看包信息;别恐慌,接下来我们一步一步讲解:

本文步骤:

session1 : 了解 https 验证过程

session2: 了解charles怎么修改拦截过程

session3: charles 抓包过程



session1:

   https概念 :

   https就是http+ssl/tls技术(安全套接字、传输层安全)进行连接证书验证、握手,保证传输数据的安全性

  https 验证过程4步骤:

第一步: 客户端向服务端发送自己支持的加密算法,向服务端请求证书;

第二步:服务端接收到请求后,选择一种加密算法,将证书发送给客户端;

第三步:客户端系统校验证书是否是可信任的CA机构颁发证书,生成随机的对称密钥,用公钥加密对称密钥然后发送给服务器;

第四步:服务端通过私钥解密对称密钥,返回一个相应,https连接建立完成;

随后双方通过这个对称密钥进行安全的数据通信。。。。


session2:

了解完https连接过程,charles是怎么拦截请求的呢?

charles 相对客户端是模拟服务器,charles 相对服务端是模拟客户端,通过https连接过程可以知道验证的重要一步虽然charles拦截了服务端的证书,但是在客户端不是受信任的,所以要想charles拦截成功关键是charles返回的受CA机构颁布的证书才可以,否则浏览器上会弹出当前网页存在问题的提示,所以我们在日常开发就是需要在设备上下载charles官方的CA证书,然后需要信任,这是最关键一步;


session3:https://www.jianshu.com/p/c6c18344afc6





你可能感兴趣的:(iOS技能-chales抓包https 原理)