HTTPS协议握手过程:

1,客户端明文请求,把自己支持的非对称加密算法(用于使用CA证书公钥加密计算生成协商密钥的随机数per_master)、对称加密算法(用于以后使用协商密钥加密传输内容)、验证数据完整性的HASH算法、随机数Random_C发给服务器。

2,服务器发回客端的明文信息,包含选择一套加密算法、HASH算法、CA证书、随机数Random_S。CA证书中包含服务器地址、公钥、证书颁发机构信息和签名。

3,客户端做五件事:  

  a)对证书合法性、证书中包含的地址与正在访问的地址是否一致等进行校验;

  b)生成一串随机数密码pre_master,并使用服务器选择的非对称加密算法和CA证书里的公钥对pre_master加密,得到enc_pre_master;

  c)计算协商密钥enc_key=Func(random_C,random_S,pre_master);

  d)使用约定好的HASH验证算法计算握手信息,用协商密钥enc_key及约定好的加密算法对握手消息加密。

  e)客户端发送enc_pre_master、同意使用约定的算法和协商密钥通信、加密的握手信息给服务器。

4,服务器收到数据做五件事:

  a)用自己的私钥解密enc_pre_master,得到pre_master;

  b)计算协商密钥enc_key=Func(random_C,random_S,pre_master);

  c)使用协商密钥enc_key和约定的解密算法解密握手信息,并验证HASH与客户端发来的是否一致;

  d)生成握手消息,使用协商密钥enc_key与约定好的加密算法加密握手消息,发给客户端。

5,客户端用协商密钥解密握手消息,计算HASH,如果HASH与服务器发来的一致,握手结束。

此后,所有通信数据将用对称密钥enc_key及约定好的对称加密算法进行加密解密。

这里客户端与服务器互发加密的握手消息并验证,是为了保证双方都获得了一致的密钥enc_key,并且可以正常的加密解密数据,为真正数据的传输做一次测试。

从上面的过程可以看到,enc_key是最终的通信密钥,得到了浏览器生成的pre_master,就得到了enc_key,就可以解密HTTPS报文。

Fiddler截获HTTPS协议过程:

1,F截获浏览器发给服务器的HTTPS请求,伪装成浏览器向服务器发送请求进行握手。

2,服务器发回响应,获取到CA证书,用根证书公钥进行解密,验证服务器签名,获取到服务器CA证书公钥。然后F伪造自己CA证书,冒充服务器证书给客户端浏览器。

3,浏览器对返回的数据进行校验、生成pre_master、用F伪造的证书公钥加密生成enc_pre_master,并生成enc_key。

4,浏览器将重要数据返回给服务器时,又被F截获。F将截获的密文用自己伪造证书的私钥解开,得到enc_pre_master,计算出对称密钥enc_key。F将enc_pre_master用服务器证书公钥加密传给服务器。

5,服务器用私钥解开数据,建立信任,再发送加密握手消息给客户端。

6,F截获服务器发来的密文,用服务器公钥解开,再用自己伪造证书的私钥加密传给浏览器。

7,浏览器得到加密信息,用伪造证书的公钥解开,验证HASH,握手正式完成。

此后,浏览器和服务器之间的消息都是用对称密钥enc_key加密和解密,F知道这个enc_key,所以整个HTTPS信息对F是透明的。

这个过程里,浏览器认可F伪造的CA证书是关键,所以对伪造CA证书签名的根证书是关键。所以系统里要安装这个F伪造的根证书。

Fiddler抓取HTTPS协议的更多相关文章

  1. 浅谈HTTPS以及Fiddler抓取HTTPS协议

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  2. fidder https以及Fiddler抓取HTTPS协议

    一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度.谷歌等. ...

  3. 浅谈HTTPS以及Fiddler抓取HTTPS协议(摘抄)

    一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度.谷歌等. ...

  4. 【转载】浅谈HTTPS以及Fiddler抓取HTTPS协议

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  5. Fiddler抓取https协议的证书导入过程

    fildder抓取https的设置以及证书导出 打开fiddler界面,选择左上角菜单栏Tools-Options 出现Options界面后,选择HTTPS选项卡 勾选上Capture HTTPS C ...

  6. Fiddler: 如何抓取HTTPS协议的网页

    作者:韦玮  转载请注明出处 Fiddler默认只能抓取HTTP协议的网页,不能抓取HTTPS协议的网页,而我们很多时候,都需要抓HTTPS协议的网页,比如抓淘宝数据等.今天,韦玮老师会为大家讲解如何 ...

  7. Fiddler如何抓取HTTPS协议的网页

    Fiddler默认只能抓取HTTP协议的网页,不能抓取HTTPS协议的网页,而我们很多时候,都需要抓HTTPS协议的网页,比如抓淘宝数据等.今天,韦玮老师会为大家讲解如何使用Fiddler抓取HTTP ...

  8. HTTPS-使用Fiddler抓取HTTPS数据包原理

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  9. Fiddler抓取https设置及其原理

    iddler抓取https设置及其原理 2018-02-02 目录 1 HTTPS握手过程2 Fiddler抓取HTTPS过程3 Fiddler抓取HTTPS设置参考 数字签名是什么? 1 HTTPS ...

随机推荐

  1. Jenkins系列-Jenkins邮件通知

    一.安装邮件插件 由于Jenkins自带的邮件功能比较鸡肋,因此这里推荐安装专门的邮件插件,不过下面也会顺带介绍如何配置Jenkins自带的邮件功能作用. 可以通过系统管理→管理插件→可选插件,选择E ...

  2. 使用source创建一个新项目(将本地项目文件和github远程库链接)

    1. 本地创建项目文件夹 2. 将本地的项目添加到source中(我使用的source版本为2.4.7.0) 3. github创建远程库  4. 关联本地项目文件和github库 确定添加就可以了. ...

  3. dedecms给原模型添加新字段

    1.进入dedecms后台 2.点击核心=>频道模型=>内容模型管理(在这里可以看到dedecms预设的模型设置) 3.选中我们需要的模型,点击更改,跳入以下页面 4.点击字段管理(可以看 ...

  4. 使用 ECS 实例创建 FTP 站点 linux

    本文只做记载过程和问题,并不详细 官方教程走一遍 https://help.aliyun.com/document_detail/51998.html#h2-linux-ftp-2 值得注意的是步骤二 ...

  5. 【bzoj2653】middle 可持久化线段树区间合并

    题目描述 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整.给你一个长度为n的序列s.回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[ ...

  6. BZOJ1086:[SCOI2005]王室联邦——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1086 题面源于洛谷. 题目描述 “余”人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每 ...

  7. 洛谷4525 & 4526:【模板】自适应辛普森法——题解

    参考:https://phqghume.github.io/2018/05/19/%E8%87%AA%E9%80%82%E5%BA%94%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%B ...

  8. thread-wait/sleep

    对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...

  9. 用live()方法给新增节点绑定事件

    jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效. 这个方法是基本是的 .bind() 方法的一个变体.使用 .bind() 时,选择器匹配的元素会附加一个事件 ...

  10. Codeforces Round #511 (Div. 2):C. Enlarge GCD(数学)

    C. Enlarge GCD 题目链接:https://codeforces.com/contest/1047/problem/C 题意: 给出n个数,然后你可以移除一些数.现在要求你移除最少的数,让 ...