HTTPS、TLS 和 SSL 区别与联系
HTTPS、TLS 和 SSL 都与网络通信的安全性密切相关,以下是它们的区别和关系:
- HTTPS(HyperText Transfer Protocol Secure):
- HTTPS 是加密的 HTTP 协议,确保用户与网站之间的通信是私密且安全的。
- 它在传输层使用 TLS 或 SSL 加密数据,从而防止第三方窃听或篡改信息。
- 当你访问一个网址以 “https://” 开头时,意味着该网站启用了 HTTPS 安全通信。
- SSL(Secure Sockets Layer):
- Netscape开发。
- SSL 是最早用于保护网络通信的加密协议,TLS 是它的继承者和改进版。
- SSL 现在已经被废弃,因为它的安全性较弱。
- SSL自1996年的SSL 3.0以来就未再更新,目前视为已过时。 SSL 通讯协议中有几个已知的弱点,2015 年,互联网工程任务组(IETF)正式宣布 SSL 3.0 被废弃。 事实上,最现代的网页浏览器完全不再支持 SSL,而是用 TLS 取代。
- TLS(Transport Layer Security):
- 互联网工程任务组 (IETF)开发。
- SSL 最终版本 (3.0) 与 TLS 第一版本之间的差异并不大,名称变更是为了表示易主。
- TLS 是传输层安全协议,用于加密网络通信,保护数据传输的隐私性和完整性。
- TLS 是 SSL 的升级版,提供了更好的安全性和性能。
- 目前,绝大多数 HTTPS 连接都使用 TLS 协议。
- TLS 是仍在线上实施的最新加密通讯协议,即使许多人仍称之为「SSL 加密」。 这可能会让消费者在购买安全性解决方案时感到困惑。 真相是,今日任何提供「SSL」的厂商几乎就是提供 TLS 保护,这一直是最近二十年来的业界标准。 但由于许多人仍在搜寻「SSL 保护」,许多产品页面上仍会强调这个词汇。
SSL到TLS的演进历史
SSL(Secure Sockets Layer)协议逐步被淘汰的过程是随着安全漏洞的发现和技术的更新而发生的。以下是一些关键的时间节点:
- SSL 3.0 被废弃(2015 年):
- 尽管 SSL 3.0 于 1996 年发布,并广泛使用了多年,但在 2014 年,研究人员发现了一个被称为“POODLE攻击”的重大安全漏洞(Padding Oracle On Downgraded Legacy Encryption),使得 SSL 3.0 不再安全。
- 由于这个漏洞,以及其他安全问题,SSL 3.0 被认为是不安全的协议。因此,2015 年,互联网工程任务组(IETF)正式宣布 SSL 3.0 被废弃,并建议所有系统升级到更安全的 TLS 协议。
- TLS 取代 SSL:
- TLS 1.0 于 1999 年发布,作为 SSL 3.0 的继任者,其后续版本进一步增强了安全性。
- 目前主流使用的是 TLS 1.2 和 TLS 1.3。TLS 1.0 和 TLS 1.1 也在 2020 年被主流浏览器和系统淘汰,因为它们不再符合现代的安全需求。
因此,SSL 最迟在 2015 年开始正式被废弃,随着技术的发展,几乎所有现代的安全通信都已经完全转向了 TLS。
HTTPS 工作在哪一层:
HTTPS (Hypertext Transfer Protocol Secure) 工作在 应用层 和 传输层之间。具体来说,它结合了应用层协议 HTTP 和传输层协议 TLS(或早期的 SSL),通过 TLS 来实现数据加密。
- 应用层:HTTPS 基于 HTTP,工作在应用层处理用户请求和服务器响应的数据。
- 传输层:HTTPS 使用 TLS(或曾经的 SSL)来加密数据并确保数据传输的安全性。TLS 也工作在传输层(传输控制协议 TCP 上),为数据提供加密、身份验证和完整性保护。
因此,HTTPS 的工作涉及到应用层(HTTP 部分)和传输层(TLS 部分),而其加密功能是由传输层的 TLS 协议实现的。
关于HTTPS 证书
HTTPS 证书,通常称为 SSL/TLS 证书,是基于 公钥基础设施(PKI, Public Key Infrastructure) 的。证书的核心技术是 非对称加密,即利用公钥和私钥来加密和解密数据。主要包括以下几方面:
- 非对称加密:
- 公钥加密,私钥解密:网站的公钥用于加密用户发送的敏感数据,只有网站的私钥可以解密这些数据。
- 私钥签名,公钥验证:网站通过私钥对数据进行签名,客户端(用户的浏览器)用公钥来验证签名是否来自可信任的源。
- 证书颁发机构 (CA, Certificate Authority):
- HTTPS 证书由受信任的证书颁发机构(如 Let’s Encrypt, Comodo, Symantec 等)签发,确保网站的公钥可信且经过验证。
- 证书中包含网站的公钥、证书颁发者的签名、证书有效期等信息。客户端(浏览器)通过验证证书的颁发机构及其签名来确认服务器的真实性。
SSL已经废弃了,为什么现在HTTPS的证书仍被叫做SSL证书
虽然 SSL(Secure Sockets Layer) 已经被废弃并被 TLS(Transport Layer Security) 取代,但“SSL 证书”这一名称依然被广泛使用,这是由于历史原因和市场惯例所致。
原因:
- 历史习惯:
- SSL 是最早被广泛采用的加密协议名称,很多早期的网络安全术语和工具都是基于 SSL 开发的。SSL 的概念深入人心,所以人们习惯性地称 HTTPS 使用的证书为 “SSL 证书”,即便它们实际上现在使用的是 TLS。
- 许多证书供应商在 SSL 仍广泛使用时开始推广他们的证书服务,之后即便切换到 TLS,也没有改变“SSL 证书”的叫法。
- 营销和普及:
- 许多公司和证书颁发机构(CA)继续使用 “SSL 证书” 这一名称,因为它已经成为大众熟知的品牌术语。改用“TLS 证书”可能会引起混淆,尤其对于非技术用户来说。
- “SSL 证书”作为品牌名称,能够延续其市场影响力和认知度,即使技术上它们使用的是 TLS。
- 兼容性和误解:
- 尽管我们现在使用的是 TLS 协议,但由于 SSL 和 TLS 是同一个加密协议的不同版本(TLS 是 SSL 的演进版),很多工具和软件还会使用“SSL”作为协议的泛称。实际上,当前的 SSL 证书支持 TLS,而不再支持老旧的 SSL 协议版本。
现代的“SSL 证书”实际是什么?
- 现代的“SSL 证书”实际上是 “TLS 证书”,它们依赖于 TLS 来保护数据传输的安全性。
- 虽然名称中有“SSL”,但这些证书只与 TLS 1.2 和 TLS 1.3 兼容,不再支持已废弃的 SSL 版本(如 SSL 2.0 和 SSL 3.0)。
番外
除了在 Web 浏览中加密客户端-服务器通信之外,SSL 还可以用于 VPN。SSL VPN 与 SSL证书类似,都是历史遗留原因保留了这个叫法,现代已使用TLS替代SSL