SSL与TLS的关系
- 一. SSL 和 TLS 是什么?
- 1. SSL(Secure Sockets Layer,安全套接层)
- 2. TLS(Transport Layer Security,传输层安全)
- 3. 历史演进
- 二. 为什么有的说 SSL,有的说 TLS?
- 三. mbedTLS 和 wolfSSL 的区别?
- 四. TLS 1.3 与 TLS 1.2 的主要区别
- 1. 握手过程更快
- 2. 加密算法更安全
- 3. 前向安全(Forward Secrecy)强制化
- 4. 协议更简化
- 5. 0-RTT 数据
- 6. 已承受 TLS 1.3 的主流库 / 软件
- :star: 五. 总结
什么?就是一. SSL 和 TLS
常见的网络安全协议,用来在互联网上建立安全的加密通信通道。就是SSL 和 TLS 都
1. SSL(Secure Sockets Layer,安全套接层)
- 是最早由 Netscape 公司在 1990 年代中期提出的加密协议。
- 主要作用是在客户端(浏览器)与服务器之间建立安全的数据传输通道,保证数据不会被窃听或篡改。
- 由于存在某些安全漏洞,现在已经逐渐被淘汰。
2. TLS(Transport Layer Security,传输层安全)
- 是 SSL 的后续版本,由 IETF(互联网工程任务组)标准化。
- 相比 SSL,TLS 改进了安全性和性能,目前几乎所有现代安全传输都使用 TLS。
- 常见的 HTTPS 通信,其实就是 HTTP + TLS 的结合。
主要功能:
- 加密:保证通信内容在传输过程中不被第三方窃听。
- 完整性校验:确保数据在传输过程中未被篡改。
- 身份认证钓鱼网站)。就是:经过证书机制确认通信双方的身份(例如,确认你访问的确实是某个网站而不
3. 历史演进
- SSL 1.0:最早的内部版本,未公开。
- SSL 2.0(1995):首个公开版,但存在严重漏洞。
- SSL 3.0(1996):改进版,但在 2014 年被发现 POODLE 攻击漏洞,如今已废弃。
- TLS 1.0(1999):IETF 基于 SSL 3.0 制定的标准,实质上是 SSL 的升级和标准化。
- TLS 1.1 / 1.2 / 1.3:不断增强安全性与性能,目前推荐TLS 1.2/1.3。
TLS 1.3 是目前(截至 2024)最新的 TLS 协议版本,相比 TLS 1.2 在 安全性、性能 上都有很大提升。
二. 为什么有的说 SSL,有的说 TLS?
- 技能上严格区分:现代安全标准和协议都叫TLS;如果要求合规、严谨表达,就应该说 TLS。
- 习惯和历史遗留:很多人习惯说“SSL 证书”、“SSL 连接”,其实这些主要已经是 TLS 的意思。
- 兼容性:有些文档或平台里仍然提到“SSL/TLS”,为了兼容所有人理解。
实际情况:
- 现在人们习惯说“SSL 证书”,其实绝大多数情况下指的都是基于 TLS 的证书。
- 最新的协议是TLS 1.3,比 TLS 1.2 更快、更安全。
三. mbedTLS 和 wolfSSL 的区别?
它们都是实现 TLS/SSL 协议的开源加密库,不是协议本身。
- mbedTLS(原 PolarSSL):
由 ARM 社区维护,设计目标是轻量、可移植、适合嵌入式体系和资源受限设备。
提供 TLS/SSL 协议实现,以及各种密码算法(AES、SHA、RSA、ECC 等)。 - wolfSSL:
类似地,也是一个面向嵌入式、物联网领域的轻量级 TLS/SSL 库。强调体积小、速度快、协助现代协议(比如 TLS 1.3)和硬件加速。
换句话说,mbed TLS 和 wolfSSL都是软件工具包,依据它们你可以在设备或应用中“跑” TLS/SSL 协议,而不用自己重新实现。
四. TLS 1.3 与 TLS 1.2 的关键区别
1. 握手过程更快
- TLS 1.2:至少需要 2 个往返(2 RTT)才能建立安全连接。
- TLS 1.3:只需 1 RTT,甚至可以支持0-RTT(在特定场景下发送早期信息),大大缩短了延迟。
2. 加密算法更安全
- 移除了许多过时或弱的算法(比如 RSA 密钥交换、SHA-1、3DES 等)。
- 默认只保留现代的、安全性更高的算法,如:
- 密钥交换:基于椭圆曲线 Diffie–Hellman (ECDHE)
- 加密套件:AES-GCM、ChaCha20-Poly1305
- 哈希函数:SHA-256 / SHA-384
3. 前向安全(Forward Secrecy)强制化
- TLS 1.2 可以用 RSA 密钥交换(不具前向安全性)。
- TLS 1.3 强制启用 (EC)DHE,实现会话密钥的前向安全。
4. 协议更简化
- 移除了很多复杂功能和冗余消息,比如 ChangeCipherSpec。
- 用更简化的握手流程减少了攻击面。
5. 0-RTT 资料
- TLS 1.3 协助客户端在第一次握手时就发送“早期数据”(通常为 GET 请求等)。
- 缺点:0-RTT 数据容易被重放攻击,所以适合幂等操作。
6. 已协助 TLS 1.3 的主流库 / 软件
(这些库和应用都拥护 TLS 1.3,但必须现代版本)
- OpenSSL:从 OpenSSL 1.1.1(2018)开始承受 TLS 1.3。
- GnuTLS:从 3.6 版本开始支持。
- BoringSSL(Google 出品):全面支持 TLS 1.3。
- LibreSSL:2.9.1 起支持基本的 TLS 1.3。
- NSS(Mozilla):已帮助 TLS 1.3。
- WolfSSL:支持 TLS 1.3。
应用层面:
- 主流 Web 服务器:Nginx、Apache、Caddy 等(要依赖上述库的版本)。
- 浏览器:Chrome、Firefox、Safari、Edge 早已默认拥护 TLS 1.3。
- 操作系统层面:新版本的 Linux、Windows 10/11、macOS 都承受 TLS 1.3。
⭐️ 五. 总结
- 早期的安全通信协议,已过时。就是SSL
- TLS 是 SSL 的继任者和现在唯一安全的选择。
- mbed TLS 和 wolfSSL 是实现 TLS(或者说 SSL/TLS)协议的轻量级库。
- 现实中说“SSL”通常是习惯代称,真正使用的都是TLS。