TLS 与 SSL 证书都是加密协议,用于对 Web 服务器与用户之间交换/传输的数据进行加密。互联网安全的世界充满术语,对初学者而言理解这些概念及其协作方式并不容易,需要花些功夫才能弄清它们的工作原理与彼此差异。如果你近期读过 SSL 相关内容,想必也见过 TLS。SSL 指 Secure Sockets Layer(安全套接层),TLS 指 Transport Layer Security(传输层安全)。二者本质上同源,却又全然不同。

二者有多相似

SSL 与 TLS 都是对服务器、系统、应用与用户之间的数据传输进行认证的加密协议。例如,加密协议会对 Web 服务器与用户之间交换的数据进行加密。SSL 是最早出现的加密协议,而 TLS 则是 SSL 的较新升级版本。

为何需要 SSL/TLS 证书

网络安全已成为蔓延至互联网各个层面的严重威胁,从学校到企业再到个人,各类用户数据都面临风险,尤其当客户端与服务器系统之间发生信息交换时风险更高。我们需要能够加密双向数据流的secure系统,SSL/TLS 证书正是为此而生,它充当端点加密系统,防止黑客未授权访问。如今,由于 Google 的声明,SSL 也已成为重要的搜索排名信号;配备 SSL 证书的网站在搜索排名上更具优势,用户体验更好,且不会带来安全隐患——即便在电商交易过程中也是如此。

SSL 版本简史

Netscape 于 1994 年开发了 SSL,初衷是确保 Web 上客户端与服务器系统之间的安全通信。随后 IETF(Internet Engineering Task Force,互联网工程任务组)接管并标准化了该协议。在修复 1.0 版本漏洞后推出了两个版本,当前 SSL 版本为 SSL 3.0。

SSL 1.0:因安全缺陷从未发布。
SSL 2.0:Netscape 首个公开版本,1995 年 2 月发布,但设计缺陷促使其推出 SSL 3.0;SSL 2.0 已于 2011 年弃用。
SSL 3.0:SSL 2.0 的升级版,修复了部分安全设计缺陷,但 2004 年因 POODLE 攻击被认定不安全。

TLS 版本简史

TLS 即 Transport Layer Security,是 1999 年发布的 SSL 3.0 的继任加密协议。

TLS 1.0:SSL 3.0 的升级版,1999 年 1 月发布,但允许降级连接到 SSL 3.0。
TLS 1.1:2006 年 4 月发布,为 TLS 1.0 的更新,增加了针对 CBC(Cipher Block Chaining,密码块链接)攻击的防护。2020 年 3 月,Google、Apple、Mozilla 与 Microsoft 宣布弃用 TLS 1.0 与 1.1。
TLS 1.2:2008 年发布,允许指定客户端与服务器使用的哈希与算法,支持认证加密及额外数据模式,并能基于密码套件验证数据长度。
TLS 1.3:2018 年 8 月发布,相较 TLS 1.2 有诸多重大变化:移除 MD5 与 SHA-224 支持、在先前的配置使用场景下要求数字签名、公钥密钥交换强制使用 Perfect Forward Secrecy(完美前向保密)、「Server Hello」之后的握手消息改为加密。

SSL 与 TLS 加密的差异

SSL 与 TLS 协议之间的差异非常细微,通常只有技术人员才能分辨,主要差异包括:

密码套件(Cipher suites):SSL 支持 Fortezza 密码套件,TLS 不支持;TLS 采用更规范的标准化流程,使定义 RC4、Triple DES、AES、IDEA 等新的密码套件更便捷。

告警消息(Alert messages):SSL 有「No certificate」告警消息,TLS 移除了该告警并替换为若干其他告警消息。

记录协议(Record Protocol):SSL 在每条消息加密后使用 MAC(Message Authentication Code,消息认证码),TLS 则在每条消息加密后使用 HMAC(基于哈希的消息认证码)。

握手过程(Handshake process):SSL 的哈希计算包含主密钥与填充,而 TLS 的哈希基于握手消息计算。

消息认证(Message Authentication):SSL 以临时方式拼接密钥细节与应用数据,TLS 则依赖 HMAC(基于哈希的消息认证码)。

简而言之,SSL 已过时,TLS 是旧 SSL 协议作为现代加密标准的新名称,被普遍使用。技术上 TLS 更准确,但大众更熟悉 SSL。

TLS 协议的特性

- 防止入侵者篡改服务器与用户之间的通信。
- 防止入侵者窃听服务器通信。
- 会给站点流量带来一定延迟。
- 连接建立时使用非对称加密,随后客户端与服务器改用对称加密以获得更快连接。
- 配合 HTTP/2,TLS 让连接更快。

结语:你需要 SSL/TLS 证书吗

从 SSL 与 TLS 证书对比看,二者都执行加密数据交换的相同任务,TLS 是 SSL 更安全、更新的版本。然而,互联网上大量可用的 SSL 证书同样能实现保护网站的目的,二者都为网站提供相同的 HTTPS 地址栏——这已成为在线安全的标志性象征。