SSL2.0发布30周年:从SSL到TLS,回顾互联网加密技术变迁
1995年3月,SSL 2.0(安全套接字层)首次亮相,作为最早被广泛应用于网页传输的加密协议之一,为后续SSL/TLS发展奠定了方向。
三十年后的今天,TLS已成为互联网加密通信的核心协议。从SSL 2.0到如今的TLS 1.3,传输加密技术经历了持续升级,为全球用户提供了更高效、更安全的在线通信保障。
回顾这三十年间,SSL/TLS协议的演进不仅推动了传输加密技术的不断进步,也成为现代互联网信任体系发展的关键力量。今天,将带您回顾SSL/TLS发展历程,探索它如何塑造了互联网安全基石。
从启蒙到淘汰:SSL 2.0开启加密时代
如果说20世纪90年代初的互联网还是一片无垠荒野,那么SSL的出现让网页通信首次具备了加密“防护栏”。
1994年,网景公司(Netscape)在开发Navigator浏览器的同时,着手设计SSL(Secure Sockets Layer)协议,以保护HTTP传输中的敏感信息。
然而,首个版本SSL 1.0因存在严重漏洞未能公开发行,取而代之的是1995年发布的SSL 2.0。
尽管SSL 2.0仍有诸多安全缺陷,但它标志着网页加密通信的正式开始,并为后续的SSL 3.0和TLS发展提供了初步框架。
SSL 2.0由Netscape设计,并在1995年Netscape Navigator 1.1浏览器中首次得到支持。它引入了“SSL握手”机制,允许双方通过这一过程建立安全的加密连接。
在握手过程中,双方可以使用X.509数字证书(例如用于服务器身份验证的SSL/TLS证书)进行身份验证,并通过非对称加密密钥对安全地交换会话密钥。
从历史的角度看,加密通信需要双方交换能够加密和解密信息的密钥。这意味着,传统上,双方必须面对面交换密钥,以确保接收密钥的人就是预期的对象。
SSL 2.0正是为了改变这一局面,通过提供远程密钥交换的方法,实现了远程加密通信的可能性。
然而,SSL 2.0很快暴露出诸多缺陷:MAC构造很弱、容易受到降级攻击、缺乏数据完整性校验、握手过程不安全……面对安全漏洞的层出不穷,网景在1996年推出了SSL 3.0,增强了加密算法的强度,并改进了协议的安全性。
新改进——
- 引入经过身份验证的Diffie-Hellman密钥交换作为RSA密钥交换的替代方案;
- 引入“信任链”证书层次结构;
- 通过实施更好的PRF增强密钥生成器的安全性;
- 在基线列表中引入了三种Fortezza密码套件;
- 启用特殊PKCS#1块格式,以允许服务器拒绝与支持SSL 3.0的客户端建立SSL v2会话。
尽管SSL 3.0有所改进,但依然未能逃过历史的淘汰。2014年,一场名为POODLE(Padding Oracle On Downgraded Legacy Encryption)的攻击,彻底暴露了SSL 3.0的安全短板。同年,SSL 3.0被IETF(互联网工程任务组)废弃,互联网加密正式迈入TLS时代。
此时,制定未来标准的责任也已从Netscape转移到互联网工程任务组(IETF)于1996年成立的新TLS工作组。
TLS接棒:互联网信任体系的标准化之路
1999年,IETF发布TLS 1.0,以取代SSL。
TLS 1.0最初于1999年1月在RFC 2246中定义,作为SSL 3.0版的升级,由Certicom的Christopher Allen和Tim Dierks编写。
RFC中定义道,“此协议与SSL 3.0之间的差异并不大,但足以阻碍TLS 1.0和SSL 3.0之间的互操作性”。
据维基百科介绍指出,这一变化以及从“SSL”重命名为“TLS”是为了给微软留面子,“这样看起来就不会像IETF只是在为Netscape的协议盖章”。
此后,TLS进入持续升级的轨道:
TLS 1.1版本
2006年,TLS 1.1通过引入随机初始化向量(IV),解决了SSL/TLS早期版本CBC(密码块链接模式)中的已知安全问题。
TLS 1.2规范做出了一些显著的变化,包括:
- 消除了一些过时的加密功能和元素;
- 根据当时的密码安全知识对密码套件进行了改进(例如,强制使用TLS_RSA_WITH_AES_128_CBC_SHA密码套件,并取消MD5/SHA-1 PRF,转而使用密码套件指定的PRF);
- 增加了认证加密的数据模式支持(即带关联数据的认证加密,简称“AEAD”);
- 指定没有证书的客户端必须提供空的证书列表;
- 优化加密哈希和签名规范流程。
2020年,各大主流浏览器(如Firefox 74、Chrome 84和Edge 84)正式禁用了TLS 1.0和1.1的支持,大量网站随之弃用这些旧版本协议,以提升安全性。
TLS 1.2版本
2008年,TLS 1.2成为当时安全性增强的主流加密协议,引入SHA-256作为默认哈希算法,支持更安全的AEAD(带认证的加密)模式,并提升了密码套件的灵活性。
目前,TLS 1.2仍然是在线服务器和客户端支持的协议最广泛的版本。据Qualys SSL Labs的SSL Pulse工具数据显示,截至2024年5月,在接受调查的15万个启用SSL/TLS的站点中,99.9%仍支持TLS 1.2协议。
然而,尽管进行了上述所有更改,但仍不足以使TLS 1.2免受不断增长的威胁。
- 弱算法导致协议容易受到降级攻击;
- TLS 1.2默认并未强制要求前向保密性,但通过ECDHE等密钥交换方式可以实现PFS;
- 该协议版本主要依赖于RSA和Diffie-Hellman密钥交换,这使其容易受到Shor算法发现的因式分解和离散对数相关问题的影响。
TLS 1.3版本
十年后,2018年,TLS 1.3在TLS 1.2的基础上进行了优化,移除了不安全的算法,并简化了握手过程,使安全性与性能实现双重提升。
据悉,1.3版本中最大的变化涉及会话密钥的派生方式以及在线证书状态协议(OCSP)消息的传输方式。
但是此TLS协议版本还有哪些其他值得注意的变化呢?如下所示:
- 不再使用弱对称加密和散列算法(例如SHA-1、MD5、RC4、DES、3 DES、CBC模式AES等);
- 强制使用临时密钥实现完美前向保密(这导致RSA和静态DH密钥交换被淘汰);
- 将TLS 1.3握手简化为单次往返交互(1-RTT模式),或者在客户端和服务器之前已通信的情况下,将其减少为零往返时间(0-RTT)。(以前的TLS协议版本使用两次往返);
- 将MAC-then-encrypt(即MAC+密码组合)换成经过身份验证的密码(例如AEAD批量加密密码,如AES-CCM、AES-GCM和ChaCha20[与Poly1305配对时])
- 提供额外的降级攻击保护;
TLS 1.3版本正在使用中,尽管它并未像TLS 1.2版那样被广泛采用。截至2024年5月,Qualys SSL Labs调查的网站中有70.1%支持TLS 1.3协议。
迈向未来:后量子密码学如何塑造新一代加密标准
互联网安全的挑战从未停止。当下,量子计算的发展正对传统公钥加密体系构成潜在威胁。RSA、ECC等基于大数分解和椭圆曲线的算法,可能在未来的量子计算环境下失效。因此,后量子密码学(PQC)成为密码学界的研究热点,各大机构正积极推动其融入TLS标准。
作为转向使用后量子密码(PQC)算法的一部分,IETF建议TLS应用程序支持使用TLS 1.3,并且仅在特定情况下才支持TLS 1.2协议。
目前,Cloudflare等厂商正在实验将TLS 1.3与PQC结合,以提升抗量子计算攻击能力。Cloudflare报告称,截至2025年3月,“超过三分之一到达Cloudflare网络的人类网络流量受到TLS 1.3与混合ML-KEM密钥交换的保护,可免受这些攻击。”

自SSL 2.0发布以来,互联网加密技术已走过三十年的发展历程。从最初的加密尝试到TLS 1.3的高效防护,再到未来的后量子安全方案,SSL/TLS既是互联网信任体系演进的见证者,更是塑造者。展望未来,随着量子计算的崛起,安全通信将迈向全新的时代,而TLS仍将在这场变革中扮演关键角色,为数字世界构筑更加坚实的安全屏障。
图源|AIGC
编辑|公钥密码开放社区
免责声明
1、本文部分内容来源于网络,不代表本网站立场。本网站对上述信息的来源、准确性及完整性不作任何保证。在任何情况下,本文信息仅作参考。
2、文章重在分享,如有原创声明和侵权,请及时联系本站,我们将在24小时之内对稿件作删除处理。