https交互过程

1. 客户端发起https请求,请求数据中包括当前浏览器的加密算法列表,随机数(random1)

2. 服务端回复客户端,数据包括 证书,确认的加密算法,随机数(random2)

3. 客户端验证证书的合法性

4. 客户端生成加密随机数(premaster_secret),使用第2步约定的生成秘钥算法(非对称加密算法),通过证书的公钥,对premaster_secret进行加密,传输给服务端

5. 服务端使用私钥解密,得到premaster_secret

6. 客户端使用 random1+ premaster_secret + random2 生成秘钥secret,使用第2步约定的传输数据算法(对称加密算法)和secret对数据加密,采用http传输

7. 服务端使用 random1+ premaster_secret + random2 生成秘钥secret,同样使用约定的对称加密算法,与客户端进行http通信。

两点说明:

1. 非对称加密算法,需要一个公钥和一个私钥,私钥在服务端,不会通过网络传输,无法被破解,但加密解密效率低;对称加密算法,采用相同的秘钥加密和解密,效率高,但是秘钥需要双方明文传输。所以真正的https是通过非对称加密,对最终的密钥加密传输,之后双方都采用密钥进行对称加密解密

2. 最终的秘钥在第6步时使用了3个随机数生成,原因是更大限度保证最终秘钥的随机性

猜你喜欢

转载自ballenlee.iteye.com/blog/2388103