HTTPS初步理解
相关概念:SSL、TLS、证书。
SSL或TLS运行在传输层和应用层之间。(早期称为SSL,后期称为TLS)。用户网络加密通讯。
HTTPS可以看作HTTP+TLS,包括两个部分:握手协议+记录协议。
链接流程(握手协议)主要流程:
- 客户端HELLO(发送支持的TLS版本)
- 服务器HELLO(选择TLS版本,发送服务器证书)
- 客户端检查证书,生成主密钥(随机数)并使用服务器证书加密
- 服务器解密后对主密钥加密并发回(类似Diffie Hellman交换)
- 客户端验证主密钥,使用主密钥得到交换密钥用于非对称加密
- 服务器验证客户端(可选)
主要概念:使用服务器的公钥加密一个信息,服务器使用公钥解密后将该信息以客户端公钥加密后发回。用户客户端和服务器之间的验证。
记录协议中将应用层数据分段、压缩、添加下层首部(HTTP)、对称加密、添加TLS头部并发送。
证书包括公钥内容和私钥拥有者的信息。属于可信第三方(公钥基础设施PKI),用于证明公钥内容正确性。
通常由CA机构使用自己的私钥为服务器的证书请求添加数字签名。拿到证书以后,客户端通过使用CA的公钥解密得到证书内部的服务器公钥。CA使用层次签名,顶级CA的证书使用自签名,其公钥在全网公开。