https报文分析

https为什么安全?从自签名证书到wireshark -0的解密/之前用库写了一个-0的特定算法的解密,iOS启用Https和调试:设置charles查看加密的请求内容 。网上有太多的教程教你如何用Charles调试,但是说到Https,大部分教程只允许你启用ssl代理,但并没有说明如何真正通过charles查看https的加密数据,这里我给出一个完整的教程来指导你如何启用https并且仍然查看加密的请求 。

1、HTTPS安全通信原理HTTP采用明文传输,存在三大风险:窃听风险、篡改风险和冒名顶替风险 。由于HTTP以明文传输,中介可以很容易地获取通信内容 。篡改风险:中间人可以篡改信息传递的内容,冒充风险:中间人可以伪装成与客户端通信的服务器,也就是钓鱼网站 。安全通信需要包括:机密性、完整性、身份认证和不可否认的机密性:即中间人无法获得通信的真实内容完整性;通信内容在传输过程中不会被篡改;身份认证:确认双方真实身份 , 不被钓鱼网站冒充;通信是不可否认的:不可否认的是,已经发生的行为是明文传输的,而HTTP使用对称加密对传输的报文进行加密 。

HTTPS确保双方使用相同的密钥对通信内容进行加密 , 从而保证安全通信的机密性 。但是,对称加密的密钥是如何获得的呢?如果服务器像客户端一样直接传输密钥 , 密钥仍然会被中间人截获甚至替换,因此无法保证安全通信的机密性和完整性 。非对称加密:加密和解密使用不同的密钥,其中一个可以作为公钥公开;不能作为私钥公开 。

2、Wireshark抓包理解HTTPS请求流程 Directory我的操作是这样的:让手机和电脑在同一个局域网(比如连接同一个wifi),然后在手机的wifi上设置一个代理 , 电脑用Charles作为代理 , IP就是电脑的局域网IP 。在我的环境下,手机IP是172.17.32.117,电脑IP是172.17.32.19 。然后将代理端口设置为8888 。设置好代理后,下一个手机请求会通过电脑的网卡代理请求发送 。

【https报文分析】之所以多设了一个代理,是因为电脑创建的wifi热点手机收不到 。这样做是为了让手机套餐通过电脑网络嗅探 。最方便的方法就是在电脑上放一个wifi热点连接手机 。创建代理连接后 , 使用Wireshark来嗅探网卡 。比如我这里用etho0网卡接入网络 。这时候你玩手机打开几个请求,Wireshark上就会出现大量抓取的数据包 。有各种各样的协议,包括ARP搜你(寻找IP对应的物理地址) , TCP连接包,HTTP请求包 。

    推荐阅读