
传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在 1994 年推出首版网页浏览器-网景导航者时,推出 HTTPS 协议,以 SSL 进行加密,这是 SSL 的起源。IETF 将 SSL 进行标准化,1999 年公布 TLS 1.0 标准文件(RFC 2246)。随后又公布 TLS 1.1(RFC 4346,2006 年)、TLS 1.2(RFC 5246,2008 年)和 TLS 1.3(RFC 8446,2018 年)。在浏览器、电子邮件、即时通信、VoIP、网络传真等应用程序中,广泛使用这个协议。许多网站,如 baidu、qq、163、wangan 等也以这个协议来创建安全连线,发送数据。目前已成为互联网上保密通信的工业标准。

SSL 包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全协议使用 X.509 认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者*听窃**。
概论

TLS 协议采用主从式架构模型,用于在两个应用程序间透过网络创建起安全的连线,防止在交换数据时受到*听窃**及篡改。
TLS 协议的优势是与高层的应用层协议(如 HTTP、FTP、Telnet 等)无耦合。应用层协议能透明地运行在 TLS 协议之上,由 TLS 协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过 TLS 协议时都会被加密,从而保证通信的私密性。

TLS 协议是可选的,必须配置客户端和服务器才能使用。主要有两种方式实现这一目标:一个是使用统一的 TLS 协议端口(例如:用于 HTTPS 的端口 443);另一个是客户端请求服务器连接到 TLS 时使用特定的协议机制(例如:电子邮件常用的 STARTTLS)。一旦客户端和服务器都同意使用 TLS 协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据 [1]。通过握手,客户端和服务器协商各种参数用于创建安全连接:
当客户端连接到支持 TLS 协议的服务器要求创建安全连接并列出了受支持的密码包(包括加密算法、散列算法等),握手开始。

服务器从该列表中决定密码包,并通知客户端。
服务器发回其数字证书,此证书通常包含服务器的名称、受信任的证书颁发机构(CA)和服务器的公钥。
客户端确认其颁发的证书的有效性。

为了生成会话密钥用于安全连接,客户端使用服务器的公钥加密随机生成的密钥,并将其发送到服务器,只有服务器才能使用自己的私钥解密。
利用随机数,双方生成用于加密和解密的对称密钥。这就是 TLS 协议的握手,握手完毕后的连接是安全的,直到连接(被)关闭。如果上述任何一个步骤失败,TLS 握手过程就会失败,并且断开所有的连接。