HTTPS通信过程分析

概念

  • 对称加密:客户端和服务器持有同一个密钥对数据进行加密解密。
  • 非对称加密:公钥加密私钥解密、私钥加密公钥解密
  • CA:证书认证机构,签发数字证书,保证公钥的可信度。
  • 数字证书:包含版本、序列号、有效期、颁发者、公钥等信息

TLS协议

TLS有以下几个子协议:

  • 记录协议(Record Protocol):规定TLS收发数据的基本单位为record,类似于TCP的segment,所有子协议都必须通过记录协议发出。
  • 警报协议(Alert Protocol):向对方发出警报信息,比如:证书问题等
  • 握手协议(Handshake Protocol):两端协商TLS版本号、随机数、密码套件等信息,然后客户端通过服务端的公钥和证书上的数字签名、两端协商得到会话密钥。
  • 变更密码规范协议:通知对方后续数据使用密码加密保护

HTTPS通信过程

  • TLS握手:使用非对称加密方式创建对称密钥,并使用对称加密完成HTTP通信。

    1. 客户端发送client hello消息到服务端,消息包含TLS版本、加密算法和压缩算法
    2. 服务端返回server hello消息,消息包含服务端的TLS版本、服务器的加密和压缩算法,以及CA签发的证书,证书包含公钥。
    3. 客户端根据自己信任的CA列表,验证服务端证书是否可行,可信则生成一串伪随机数,并使用公钥加密,这串随机数被用于生成新的对称密钥
    4. 服务器端使用私钥解密随机数,并使用随机数生成自己的对称主密钥
    5. 客户端发送finished消息,使用对称密钥加密这次通信的hash值。
    6. 服务端生成自己的hash值,然后解密客户端发来的信息,检查这两个值是否对应,若对应则发送finished消息。
    7. 接下来,整个HTTP会话都是用对称密钥进行加密并传输。

HTTPS通信过程分析
https://l1n.wang/2023/计算机基础/HTTPS通信过程分析/
作者
Lin Wang
发布于
2023年2月10日
许可协议