一、SSL/TLS握手过程
HTTPS是在HTTP层和TCP层之间加了一个SSL/TLS层
- SSL,TSL协议不兼容,SSL已被TLS取代
TLS 握手的目的是建立安全连接,那么通信双方在这个过程中究竟干了什么呢?
- 商定双方通信所使用的的 TLS 版本 (例如 TLS1.0, 1.2, 1.3等等);
- 确定双方所要使用的密码组合;
- 客户端通过服务器的公钥和数字证书 (上篇文章已有介绍)上的数字签名验证服务端的身份;
- 生成会话密钥,该密钥将用于握手结束后的对称加密。
过程描述:
客户端首先发送消息给服务器,服务器响应给客户端包含数字证书。客户端会验证数字证书并获取公钥,生成随机字符串并用公钥将其加密后发送给服务器。服务器使用私钥解密获取客户端生成的随机字符串。服务器端和客户端双方使用共同的算法生成共同的密钥。握手完成,双方使用对称加密进行安全通信。
二、公钥密码体系
公钥密码又称为双钥密码和非对称密码。加解密密钥不同,是非对称的。
公钥密码基本步骤: