Https运作流程解析

Https运作流程原理

如下图所示:

  1. 客户端先发送ClientHello,将Client Random发送给服务器;

  2. 服务器收到客户端请求并生成Server Random,发送Server Hello和Server Random数据; 服务器发送证书(证书是CA签发的)给客户端,证书包括服务器私钥的签名、服务器公钥、CA用私钥的签名等信息; 服务器使用服务器私钥对DH参数签名,并把签名后的DH参数发给客户端;发送完这些之后,服务器再发送Server Hello Done,结束发送;

  3. 客户端收到服务器证书,浏览器会通过CA公钥进行证书验签,验签成功后会使用服务器证书中的公钥对服务器DH参数进行验签,服务器DH参数进行验签成功后,客户端生成DH参数,并与服务端DH参数(服务器的ECDHE算法公钥)生成预主密钥,同时把客户端的DH参数(客户端的ECDHE算法公钥)发送给服务器以及把加密后的握手信息发送给服务端;
    :服务端的DH参数和客户端的DH参数使用RSA私钥加签和公钥验签。使用ECDHE(椭圆曲线)算法实现的Diffe_Hellman协议进行密钥交换。

  4. 服务端接收到客户端的DH参数,先根据客户端DH参数和服务端DH参数(服务器的ECDHE算法中的原根和基点)生成预主密钥,这里就是进行的密钥交换。使用密钥对加密后的握手信息解密,解密成功后向客户端发送改变加密算法和加密后的握手信息,这样以后客户端和服务端就可以使用同一个密钥(这个密钥就是协商出的密钥,用这个密钥当做AES的密钥key,之后的加解密就使用AES算法)进行加解密了。
    Https运作流程解析_第1张图片

Https运作流程抓包分析

一、 ClientHello

  • 在一次新的握手流程中,客户端先发送ClientHello
  • Version 协议版本
  • Random 包含32个字节的随机数 28随机数字节+4字节时间戳,随机数是为了保证每一次连接者是独立无二的
  • Cipher Suites 客户端支持的所有密码套件
  • Extensions 扩展的额外数据

Https运作流程解析_第2张图片

二、 ServerHello

  • 将服务器选择的连接参数发回给客户端,消息结构和ClientHello类似 ,每个字段只包含一个选项。
    Https运作流程解析_第3张图片
    Https运作流程解析_第4张图片

三、 Certificate

  • Certificate消息发送X.509证书。
    Https运作流程解析_第5张图片

四、ServerKeyExchange

  • ServerKeyExchange的目的在于发送交换密钥的参数。
    Https运作流程解析_第6张图片

五、Server Hello Done

  • Server Hello Done消息表示服务端发送消息结束。
    Https运作流程解析_第7张图片

六、ClientKeyExchange

  • ClientKeyExchange消息携带客户端为密钥交换的所有信息。
    Https运作流程解析_第8张图片

七、ChangeCipherSpec

  • ChangeCipherSpec表示客户端已经得到了连接参数的足够信息,已生成加密密钥,并切换到了加密模式。
    ChangeCipherSpec

八、EncryptedHandshakeMessage

  • 这个报文的目的就是告诉对端自己在整个握手过程中收到了什么数据,发送了什么数据,来保证中间没人篡改报文
  • 其次这个报文作用就是确认秘钥的正确性。因为Encrypted handshake message是使用对称秘钥进行加密的第一个报文,如果这个报文加解密校验成功,那么就说明对称秘钥是正确的。
  • 计算方法就将之前所有的握手数据(包括接受和发送)计算哈希运算,然后就是使用协商好的对称密钥进行加密。
    Https运作流程解析_第9张图片

九、New Session Ticket

  • SSL 中的 session 会跟 HTTP 的 session 类似,都是用来保存客户端和服务端之间交互的一些记录
  • 如果服务端允许使用 Session ID,客户端的 Client Hello 带上 Session ID,服务端复用 Session ID 后,会直接略过协商加密密钥的过程,直接发出一个 Change Cipher Spec 报文,然后就是加密的握手信息报文
  • 在服务器发送New Session Ticket消息
    • Type 类型
    • Version 版本
    • Length长度
    • Session Ticket Lifetime Hint 表示Ticket的剩余有效时间
    • Session Ticket 会话标识

Https运作流程解析_第10张图片
Https运作流程解析_第11张图片

你可能感兴趣的:(Http,Https运作流程分析)