SSL协议和TLS协议的每个版本之间的差异可能并不大,但是如果您将SSL 2.0与TLS 1.3进行比较,那么它们之间就会有一个峡谷。从本质上讲,每个版本的概念都是相同的。这只是不同协议完成加密不同连接任务的方式。 那么SSL协议和TLS协议在密码学上有什么不同?

这里值得注意的是,SSL和TLS只是指发生在客户端和服务器之间的握手。握手本身实际上并不进行任何加密,它只是就将要使用的共享秘密和加密类型达成一致。SSL握手使用端口进行连接。这称为显式连接。端口443是HTTPS的标准端口,但总共有65535个端口-只有少数专用于特定功能。

相反,TLS通过协议开始其连接。这称为隐式连接。握手的第一步——开始它的行为——被称为客户你好。使用TLS,这是通过不安全的通道发送的,一旦握手开始,连接就会切换到端口443(或您指定的端口)。

TLS1.3进一步改进了握手。它现在可以通过单次往返完成并启用零往返恢复 (0-RTT)。这样做的部分方法是减少它支持的密码套件的数量,从四个算法减少到两个。

现在它只是一个批量加密(对称/会话)算法和一个散列算法。密钥交换和数字签名协商已被删除。现在使用 Diffie-Hellman 系列执行密钥交换,该系列默认情况下都启用完美的前向保密,并允许客户端和服务器在第一次交互时提供他们共享的秘密部分。第一次交互现在也被加密了,关闭了可能的攻击向量的大门。

所以TLS1.2和TLS1.3是大家目前常用的协议版本,也是主流的版本。