
Https如何被实行中间人劫持和监听的
中间人劫持成功的先决条件:中间服务器的根证书存在于信任库中,也就是Fiddler抓取HTTPS协议成功的关键是根证书,它能够允许Fiddler伪造的CA证书可获得客户端和服务器端信任。
步骤 1 - 客户端请求与目标合法服务器建立 TCP 连接(客户端会发送加密规则、随机数(Random_C))。该请求被恶意路由到中间服务器,而不是真正的目标服务器。然后,客户端和中间服务器之间建立 TCP 连接。步骤 2 - 中间服务器与目标合法服务器建立 TCP 连接。步骤 3 - 中间服务器将 SSL 证书(实际还包含算法类型,随机数等)发送给客户端。证书包含公钥、主机名、到期日期等。客户端验证证书。 -注:该过程中,客户端会进行证书校验、生成密码、计算协商密钥、生成握手信息。其中证书校验是校验证书的合法性,包括颁发证书的机构是否合法,证书中的网址跟访问的网址是否一致等。生成密码则指的是客户端会生成一串随机数密码,然后使用CA证书里的公钥进行加密。最后就是计算协商密码,生成握手信息。
步骤 4 - 目标合法服务器将其SSL证书(实际还包含算法类型,随机数等)发送到中间服务器。中间服务器验证证书。 -步骤 5 - 客户端生成会话密钥并使用来自中间服务器的公钥对其进行加密。中间服务器接收加密的会话密钥并用私钥对其进行解密。
客户端将第三步得到的数据发送给服务器
步骤 6 - 中间服务器使用来自目标合法服务器的公钥对会话密钥进行加密,然后将其发送到那里。目标合法服务器用私钥解密会话密钥。步骤 7 和 8 -客户端和服务器可以使用会话密钥(对称加密)进行通信。加密的数据在安全的双向通道中传输。中间服务器始终可以解密数据。最后,附上PC上的涉及Filddler抓包https数据时的证书配置:

启用https探测并导出Cert证书

导出的fildler证书

安装fidller证书到信任库