- Published on
TLS 协议流程
- Authors

- Name
- Pony Ma
应用层协议传输的数据在通过TLS协议时都会被加密,从而保证通信的私密性
TLS 协议流程
TLS协议是可选的,必须配置客户端和服务器才能使用。 一旦客户端和服务端都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据。通过握手, 客户端和服务器协商各种参数用于创建安全连接:
- 当客户端连接到支持TLS协议的服务器要求创建安全连接并列出了受支持的密码包(包括加密算法,散列算法等),握手开始
- 服务器从该列表中决定密码包,并通知客户端
- 服务器发回其数字证书,此证书通常包含服务器的名称、受信任的证书颁发机构和服务器的公钥
- 客户端确认其颁发的证书有效性
- 为了生成会话密钥用于安全连接,客户端使用服务器的公钥加密随机生成的密钥,将其发送到服务器,只有服务器 才能使用自己的私钥解密
- 利用随机数,双方生成加密和解密的对称密钥。这就是TLS协议的握手,握手完毕后的连接是安全的,直到连接关闭, 如果上述任何一个步骤失败,TLS握手过程就会失败,并且断开所有的连接
过程阶段简述
- 对等协商支持的TLS版本和支持的密码包
- 基于非对称密钥的身份认证,通常是基于PKI证书的身份认证。服务器将其X.509证书发送给客户端, 由客户端验证服务器的身份。如果服务器要验证客户端的证书,则客户端可能会将客户端证书发送给服务器。 但通常只验证服务器,不验证客户端。
- 基于对称密钥的数据加密。客户端生成随机数作为会话密钥,并使用服务器公钥(服务器公钥在服务器证书中)加密会话密钥, 最后将已加密的会话密钥发送给服务器。由服务器的私钥解密出会话密钥,最后使用此会话密钥加密数据。 TLS也可以使用预共享密钥作为对称密钥。