安装

关于

技术分享

最新公告

法律法规

行业资讯

首页 文档 行业资讯 >  图解HTTPS加密原理,SSL/TLS协议工作原理

图解HTTPS加密原理,SSL/TLS协议工作原理

SSL/TLS协议工作原理

SLL/TLS协议工作在应用层和传输层之间,应用层数据需要经过SSL/TLS层的加密之后才会发送到传输层。SSL/TLS协议有两个重要协议:握手协议、记录协议。

1. 握手协议

TCP三次握手完成后,才能进行SSL/TLS的握手。 因为,SSL/TLS是基于TCP协议的,而TCP协议的前两次握手是不能传输数据的。也就是说,只有建立了可靠的连接后,才能进行SLL/TLS的握手协商。

握手协议负责协商加密算法、哈希算法、加密密钥,同时帮助服务器和客户端相互验证,握手协议实在应用程序的数据传输之前使用的。握手协议进行了4次握手。

(1)第一次握手(客户端->服务器)

客户机向服务器发送Client Hello信息。

Client Hello:包含一个用于生成主密钥的32字节随机数n1,客户端支持的密码套件。

(2)第二次握手(服务器->客户端)

服务器向客户端发送Server Hello、Certificate、Server Key Exchange、Server Hello done信息。

Server Hello:同样包含一个用于生成主密钥的32字节随机数n2,最终选择使用的密码套件。

Certificate:服务器将数字证书和到根CA整个链发给客户端,使客户端能用服务器证书中的服务器公钥认证服务器。

Server Key Exchange:用于密钥协商。

Server Hello done:告知客户端此次握手结束。

(3)第三次握手(客户端->服务器)

客户机向服务器发送Client Key Exchange,Change Cipher Spec、Encrypted Handshake Message信息。

Client Key Exchange:客户端生成随机数字r,并用服务器公钥加密,发送给服务端。然后客户端用n1,n2,r计算出对称密钥key。

Change Cipher Spec:客户端通知服务器之后发送的数据需要使用对称密钥key进行加密。

Encrypted Handshake Message:对前面向服务器发送的数据进行哈希运算,产生摘要,并用对称密钥key加密,发送给服务器。

(4)第四次握手(服务器->客户端)

服务器向客户端发送Change Cipher Spec 、Encrypted Handshake Message信息。服务器用私钥解密加密的r,并根据n1,n2计算对称密钥key。

Change Cipher Spec:服务器通知客户端之后发送的数据需要使用对称密钥key进行加密。

Encrypted Handshake Message:对前面向客户端发送的数据进行哈希运算,产生摘要,并用对称密钥key加密,发送给客户端。

至此SSL/TLS的四次握手完成,安全连接建立成功,之后将发送加密的数据。

2. 记录协议

SSL记录协议主要用来实现对数据块的分块、加密解密、压缩与解压缩、完整性检查及封装各种高层协议。

记录协议的过程如下图: