https 建立连接过程分析

从真实的抓包开始

在这里插入图片描述
根据抓包结果可以看到

从客户端发起请求开始,主要经过以下几个过程:
1、TCP 三次握手
2、浏览器发送 Client Hello 到服务器
3、服务器发送Server Hello 、证书、证书状态、服务端密钥交换,到浏览器
4、浏览器发送 客户端密钥交换、Change Cipher Spec、加密的握手信息,到服务端
5、服务器发送Session TicketChange Cipher Spec、加密的握手信息,到浏览器
6、之后客户端与服务器使用计算出的 master key ,通过对称加密(根据前面的密码套件,本次是 AES256 对称加密算法)开始正式https 交互

在这里插入图片描述

客户端的握手信息

Client Hello
包含客户端支持的所有加密套件列表、客户端的随机数等
在这里插入图片描述

服务端的握手信息

在这里插入图片描述

Server Hello
包含服务端选择的密码套件、服务端的随机数
在这里插入图片描述
Certificate
包含ca和目标网站证书
在这里插入图片描述
Certificate Status
主要是通过OSCP 查询证书状态

密钥交换过程

Server Key Exchange
这里是与RSA 算法不通的地方,在发送证书之后还会发送一次椭圆曲线的密钥
包含EC Diffie-Hellman 的公钥交换
其中EC 代表椭圆曲线算法(高版本都是短暂-椭圆曲线,ephemeral Elliptic Cure)

在这里插入图片描述

无论使用RSA 还是 ECDHE 做密钥交换,最终计算主密钥的公式都是如下:
client 随机数 + server 随机数 + pre-master = master secret

前两个随机数都是明文,并且通过网络传送,所以保密的关键在于 pre-master
两种密钥交换算法的区别在于
RSA 中,pre-master 单纯的由客户端生成,用服务端的 公钥加密之后发送给服务端,因为服务端有私钥,所以可以正常解密获取 pre-master ;使用这种方式做密钥交换的风险就是 一旦服务端私钥泄密,攻击者就可以 解密出 pre-master 加上监听获取到的 前两个随机数,就可以计算出 master secret(所以说RSA 不具备PFS -perfect forward secrecy 完美前导性安全)

ECDHE 中,服务端临时生成 椭圆曲线EC 的公私钥对 Server Params ,发送公钥给客户端;
客户端也生成一个 椭圆曲线EC 的公私钥对 Client Params,发送公钥给服务端,而私钥分别由客户端、服务端保管,随后分别在本地计算 pre-master 。 如果服务端私钥泄露,但是无法拿到客户端和服务端 椭圆曲线的私钥,也是没办法进行破解工作。(因此 ECDHE 具备PFS -perfect forward secrecy 完美前导性安全)

ECDHE (ephemeral Elliptic Cure Diffie-Hellman Exchange)全称 临时椭圆曲线DH 交换算法,其中DH 就是两个人名缩写。

Client Key Exchange
包含EC Diffie-Hellman 的公钥交换
客户端首先通过 Server Params 和自己的私钥,计算出 pre-master
再结合前面2个随机数计算出 master secret
最后用计算出的 master secret 加密一段校验信息发送给服务端
在这里插入图片描述

New Session Ticket
session ticket 是tls1.2 引入的机制,用于替换session id
同时 服务端使用客户端发来的 Client Params 和自己的私钥,计算出 pre-master
再结合前面2个随机数计算出 master secret
最后用计算出的 master secret 加密一段校验信息发送给客户端
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿雷由

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值