HTTPS连接过程
HTTPS
1、C->S ClientHello
tcp三次握手建立连接
自身支持的加密方式
自身生成的随机数a
支持的安全协议(TLS/SSL)版本
2、S->C ServerHello
确定加密版本
自身随机数b
确定加密方式
自身的证书
3、C校验证书
校验是否过期
根据证书的机构从浏览器中找出该机构的公钥,证书中记录有加密使用的算法,摘要生成的算法
签名是摘要算法生成的,证书重用CA的私钥加密过,浏览器用该机构的公钥解密(确认是该机构发的),同样使用摘要算法计算摘要验证是否证书更改过
4、生成密钥
生成随机数premasterkey使用S的公钥加密发送给S
自己通过a、b、premasterkey计算对称密钥并根据之前的交互参数通过摘要算法生成握手信息发送给S
5、解析密钥
使用自己的私钥解密,获取premasterkey,根据三者生成对称密钥
通过对称密钥解析C的握手信息,与自己通过摘要生成的信息比较
自己也以同样的方式生成握手信息发给C
6、C验证握手信息
通过对称密钥解析握手信息与自己
HTTPS连接过程最先出现在Python成神之路。
共有 0 条评论