空间商网站,推广普通话的意义是什么,计算机短期速成班,wordpress可爱主题Fiddler抓取https设置及其原理
2018-02-02
目录
1 HTTPS握手过程 2 Fiddler抓取HTTPS过程 3 Fiddler抓取HTTPS设置参考 数字签名是什么#xff1f; 1 HTTPS握手过程
HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL #xff08;安全套接字层#xff09;和…Fiddler抓取https设置及其原理
2018-02-02
目录
1 HTTPS握手过程 2 Fiddler抓取HTTPS过程 3 Fiddler抓取HTTPS设置参考 数字签名是什么 1 HTTPS握手过程
HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL 安全套接字层和TLS 安全传输层协议代替而已。即添加了加密及认证机制的 HTTP 称为 HTTPS HTTP Secure 。
HTTPS HTTP 认证 加密 完整性保护
握手过程如下
第一步客户端发起明文请求将自己支持的一套加密规则、以及一个随机数Random_C发送给服务器
第二步服务器选出一组加密规则和hash算法并将自己的身份信息以证书CA包含网站地址、加密公钥、证书颁发机构等信息和一个随机数Random_S发给客户端
第三步客户端接到服务器的响应
验证证书的合法性颁发证书的机构是否合法证书中包含的网站地址是否与正在访问的地址一致等。如果证书受信任则浏览器栏里面会显示一个小锁头否则会给出证书不受信的提示。
如果证书受信任或者是用户接受了不受信的证书客户端做以下事情
生成密码浏览器会生成一串随机数的密码Pre_master并用CA证书里的公钥加密(enc_pre_master)用于传给服务器。计算协商密钥enc_keyFuc(random_C, random_S, Pre-Master)生成握手信息使用约定好的HASH计算握手消息并使用协商密钥enc_key及约定好的算法对消息进行加密。发送以下信息到服务器 用公钥加密过的服务器随机数密码enc_pre_master客户端发给服务器的通知以后我们都要用约定好的算法和协商密钥进行通信的哦。客户端加密生成的握手信息。
第四步服务器接收客户端发来的数据要做以下四件事情
私钥解密使用自己的私钥从接收到的enc_pre_master中解密取出密码Pre_master。计算协商密钥enc_keyFuc(random_C, random_S, Pre-Master)解密握手消息使用协商密钥enc_key解密客户端发来的握手消息并验证HASH是否与客户端发来的一致。生成握手消息使用协商密钥enc_key及约定好的算法加密一段握手消息发送给客户端。这里要发的数据有两条 服务器发给客户端的通知”听你的以后我们就用约定好的算法和协商密钥进行通信哦“。服务器加密生成的握手信息。
第五步客户端拿到握手信息解密握手结束。
客户端解密并计算握手消息的HASH如果与服务端发来的HASH一致此时握手过程结束。
第六步正常加密通信
握手成功之后所有的通信数据将由之前协商密钥enc_key及约定好的算法进行加密解密。
这里浏览器与网站互相发送加密的握手消息并验证目的是为了保证双方都获得了一致的密码和hash算法并且可以正常的加密解密数据为后续真正数据的传输做一次测试。
从握手过程我们可以得知
通过CA可以确认网站的合法性通过enc_key来加密解密在传输过程中为了保证enc_key不被解破在客户端用公钥加密后在服务器端用私钥解密私钥只有服务器端有所以即使报文被截获也无法破解。hash算法确保报文的完整性
hash算法确保
2 Fiddler抓取HTTPS过程
我们都知道Fiddler是个很好的代理工具可抓取协议请求用于调试。
Fiddler抓取HTTPS协议主要由以下几步进行
第一步Fiddler截获客户端发送给服务器的HTTPS请求Fiddler伪装成客户端向服务器发送请求进行握手 。
第二步服务器发回相应Fiddler获取到服务器的CA证书 用根证书这里的根证书是CA认证中心给自己颁发的证书公钥进行解密 验证服务器数据签名 获取到服务器CA证书公钥。然后Fiddler伪造自己的CA证书这里的CA证书也是根证书只不过是Fiddler伪造的根证书 冒充服务器证书传递给客户端浏览器。
第三步与普通过程中客户端的操作相同客户端根据返回的数据进行证书校验、生成密码Pre_master、用Fiddler伪造的证书公钥加密并生成HTTPS通信用的对称密钥enc_key。
第四步客户端将重要信息传递给服务器 又被Fiddler截获。Fiddler将截获的密文用自己伪造证书的私钥解开 获得并计算得到HTTPS通信用的对称密钥enc_key。Fiddler将对称密钥用服务器证书公钥加密传递给服务器。
第五步与普通过程中服务器端的操作相同服务器用私钥解开后建立信任然后再发送加密的握手消息给客户端。
第六步Fiddler截获服务器发送的密文 用对称密钥解开 再用自己伪造证书的私钥加密传给客户端。
第七步客户端拿到加密信息后用公钥解开验证HASH。握手过程正式完成客户端与服务器端就这样建立了”信任“。
在之后的正常加密通信过程中Fiddler如何在服务器与客户端之间充当第三者呢
服务器—客户端Fiddler接收到服务器发送的密文 用对称密钥解开 获得服务器发送的明文。再次加密 发送给客户端。 客户端—服务端客户端用对称密钥加密被Fiddler截获后解密获得明文。再次加密发送给服务器端。由于Fiddler一直拥有通信用对称密钥enc_key 所以在整个HTTPS通信过程中信息对其透明。
3 Fiddler抓取HTTPS设置
从上面可以看到fiddler相当于代理客户端和服务器交互都要通过fiddlerFiddler抓取HTTPS协议成功的关键是根证书根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。,这是一个信任链的起点这也是Fiddler伪造的CA证书能够获得客户端和服务器端信任的关键。
没有受信任的fiddler根证书不能让客户端相信fiddler伪造的CA证书从而得到Pre_master。
接下来我们就来看如果设置让Fiddler抓取HTTPS协议。
Fiddler菜单-Tools-Telerik Fiddler Options 在跳出的对话框点击‘Yes’ 在跳出的对话框点击‘是Y’后通过IE的Internet选项我们可以看到Fiddler的根证书被加入到“受信任的根证书颁发机构”。