TechTalk

https安全通道建立过程

字数统计: 482阅读时长: 1 min
2021/07/01

简介

HTTPS是HTTP over SSL的缩写,SSL是Secure Socket Layer的缩写。SSL位于TCP层之上,并在HTTP层之下。SSL被IETF标准化为TLS (Transport Layer Security)。而实际上TLS就是SSL,后续的发展仍然是以TLS为主。

基于RSA的HTTPS握手方式

由于非对称加解密的速度非常慢,所以TLS的数据传输过程仍然采用对称加密的方式。因此如何保证对称密钥的生成和安全的传递尤其重要。
TLS在数据传输的使用的对称密钥的在TLS HandShake阶段完成交互。
对称密钥由三部分构成,Random_C, Random_S, Pre-Master key,

  • Random_C 由client生成的随机数。
  • Random_S 由server生成的随机数。
  • Pre Master Key是客户端生成的随机数,该随机数通过服务器端传递过来的证书携带的公钥加密后传递给服务器端解密,来保证该数据的保密性。
    TLS HandShake阶段会协商cipher密钥套算法,HankShake阶段结束后客户端和服务器端通过加密算法Func来计算出传输密钥。
    session key = Func(Random_C, Random_S, Pre Master Key)

HTTPS建立过程 RSA方式

基于DH算法的HTTPS握手方式

如果攻击者能够获取private key,那么能够decipher所有与该网站的TLS流量,那么不符合PFS(完全前向保密 Perfect Forward Secrecy)安全属性。因此DH密钥交换被引入到TLS的pre master key的密钥交换过程中来,与RSA的的客户端加密,服务器端解密的方式不同,DH的方式只需要客户端和服务器端将DH参数传递给对方。那么使用DH算法计算收到的参数,那么就能够得到pre master key。

DH密钥交换:可以在双方在完全没有预先信息的条件下通过不安全信道建立起一个密钥。

HTTPS建立过程 DH方式

DH密钥交换的过程可以形象的用如下图表示:

DH密钥交换过程

CATALOG
  1. 1. 简介
  2. 2. 基于RSA的HTTPS握手方式
  3. 3. 基于DH算法的HTTPS握手方式