SSL协议和TLS协议在密码学上有什么不同
SSL协议和TLS协议的每个版本之间的差异可能并不大,但是如果您将SSL 2.0与TLS 1.3进行比较,那么它们之间就会有一个峡谷。从本质上讲,每个版本的概念都是相同的。这只是不同协议完成加密不同连接任务的方式。 那么SSL协议和TLS协议在密码学上有什么不同?
每个新发布的协议版本都来了,并且将带有自己的改进和/或新/弃用的功能。SSL版本1从未发布,版本2发布但存在一些重大缺陷,SSL版本3是版本2的重写(修复缺陷 ),TLS版本 1是SSL版本3的改进。在TLS1.0 和1.1,变化很小,TLS 1.2 带来了一些重大变化,而TLS1.3 对整个流程进行了细化和简化。
这里值得注意的是,SSL和TLS只是指发生在客户端和服务器之间的握手。握手本身实际上并不进行任何加密,它只是就将要使用的共享秘密和加密类型达成一致。SSL握手使用端口进行连接。这称为显式连接。端口443是HTTPS的标准端口,但总共有65,535个端口-只有少数专用于特定功能。
相反,TLS通过协议开始其连接。这称为隐式连接。握手的第一步——开始它的行为——被称为客户你好。使用TLS,这是通过不安全的通道发送的,一旦握手开始,连接就会切换到端口443(或您指定的端口)。
传统上,握手涉及多次往返,因为身份验证和密钥交换发生。使用SSL,这增加了连接的延迟。这就是SSL/HTTPS会降低您的网站速度的神话起源。协议的每次新迭代都致力于减少握手增加的延迟。通过TLS 1.2,证明HTTPS实际上比HTTP更快,因为它与HTTP/2兼容。
TLS1.3进一步改进了握手。它现在可以通过单次往返完成并启用零往返恢复 (0-RTT)。这样做的部分方法是减少它支持的密码套件的数量,从四个算法减少到两个。
现在它只是一个批量加密(对称/会话)算法和一个散列算法。密钥交换和数字签名协商已被删除。现在使用 Diffie-Hellman 系列执行密钥交换,该系列默认情况下都启用完美的前向保密,并允许客户端和服务器在第一次交互时提供他们共享的秘密部分。第一次交互现在也被加密了,关闭了可能的攻击向量的大门。
所以TLS1.2和TLS1.3是大家目前常用的协议版本,也是主流的版本。