原文链接 Secure Socket Layer (SSL) - GeeksforGeeks
结论
SSL(安全套接字层)是一种重要的互联网安全协议,可加密数据以确保在线通信期间的隐私、身份验证和数据完整性。尽管 TLS(传输层安全性)已取代了 SSL ,但 SSL 仍然得到广泛认可,并且是建立用户和 Web 服务器之间安全连接的基础。了解 SSL 对于了解互联网安全的演变和在线敏感信息的保护至关重要。
总体而言,SSL 证书是网络安全的重要组成部分,提供加密(encryption)、身份验证(authentication)、完整性(integrity)、不可否认性(non-repudiation)和其他关键功能,确保敏感信息在互联网上安全可靠地传输。
目录
结论
什么是安全套接字层?
SSL 如何工作?
SSL 为何重要?
安全套接字层协议
SSL 记录协议
握手协议
更改密码协议(Change-cipher protocol)
警报协议(Alert Protocol)
警告(级别 = 1)
致命错误(级别 = 2):
安全套接字层的显著特点(Salient Features of Secure Socket Layer)
SSL 的版本
SSL 证书
SSL 证书有哪些类型?
SSL 和 TLS 是同一件事吗?
SSL 是否仍然是最新的?
结论
安全套接字层常见问题解答 – 常见问题解答
SSL 和 TLS 之间有什么区别?
SSL 现在还使用吗?
如果网站不使用 SSL 会发生什么情况?
SSL 可以阻止所有类型的网络攻击吗?
安全套接字层 (SSL)为 Web 浏览器和服务器之间传输的数据提供安全性。SSL 加密 Web 服务器和浏览器之间的链接,确保它们之间传递的所有数据保持私密且不受攻击。
在本文中,我们将详细讨论 SSL、其协议、SSL 的静默功能以及 SSL 的版本。
什么是安全套接字层?
SSL,即安全套接字层,是一种互联网安全协议,可加密数据以确保其安全。它由 Netscape 于 1995 年创建,旨在确保在线通信中的隐私、身份验证和数据完整性。SSL 是我们现在称为 TLS(传输层安全性)的旧版本。
使用 SSL/TLS 的网站 URL 中使用“HTTPS”而不是“HTTP”。
SSL 如何工作?
加密:
SSL 加密通过网络传输的数据,确保隐私。如果有人截获数据,他们只会看到一堆几乎不可能解码的乱码字符。
身份验证:
SSL 启动两个设备之间称为握手的身份验证过程,以确认双方的身份,确保双方都是他们所声称的身份。
数据完整性:
SSL对数据进行数字签名以确保其未被篡改,从而验证收到的数据正是发送者发送的数据。
SSL 为何重要?
最初,网络上的数据都是以明文形式传输的,因此任何截获该消息的人都可以轻松阅读它。例如,如果有人登录了他们的电子邮件帐户,他们的用户名和密码就会在互联网上不受保护地传播。
SSL 的诞生就是为了解决这个问题并保护用户隐私。通过加密用户和 Web 服务器之间的数据,SSL 可确保截获数据的人只能看到乱七八糟的字符。这样可以保证用户的登录凭据安全,只有电子邮件服务才能看到。
此外,SSL 还通过以下方式帮助防止网络攻击:
验证 Web 服务器:确保用户连接到合法网站,而不是攻击者设置的虚假网站。
防止数据篡改:SSL 就像一个防篡改封条,可确保发送和接收的数据在传输过程中不会被更改。
安全套接字层协议
SSL 记录协议(SSL Record Protocol)
握手协议(Handshake Protocol)
更改密码规范协议(Change-Cipher Spec Protocol)
警报协议(Alert Protocol)
SSL 记录协议
SSL 记录为 SSL 连接提供两种服务。
保密(Confidentiality)
消息完整性(Message Integrity)
在 SSL 记录协议中,应用程序将数据分成多个片段。片段被压缩,然后附加由 SHA(安全哈希协议 Secure Hash Protocol)和 MD5(消息摘要 Message Digest消息摘要 )等算法生成的加密 MAC(消息认证码)。之后,对数据进行加密,最后将 SSL 标头(header)附加到数据中。
握手协议
握手协议用于建立会话。此协议允许客户端和服务器通过相互发送一系列消息来相互验证。握手协议使用四个阶段来完成其周期。
阶段 1:
在阶段 1 中,客户端和服务器都会向对方发送 hello 数据包。在此 IP 会话中,出于安全目的,双方会交换密码套件和协议版本(cipher suite and protocol version)。
阶段 2:
服务器发送其证书和服务器密钥交换(certificate and Server-key-exchange)。服务器通过发送 Server-hello-end 数据包结束阶段 2。
阶段 3:
在此阶段,客户端通过发送其证书和客户端交换密钥(certificate and Client-exchange-key)来回复服务器。
阶段 4:
在第 4 阶段,更改密码套件(Change-cipher suite)发生,此后握手协议结束。
SSL 握手协议阶段示意图
更改密码协议(Change-cipher protocol)
此协议使用 SSL 记录协议。除非握手协议完成,否则 SSL 记录输出将处于待处理状态(pending state)。握手协议之后,待处理状态将转换为当前状态。
更改密码协议由一条长度为 1 字节(byte)且只能有一个值的消息组成。此协议的目的是使待处理状态复制到当前状态。
警报协议(Alert Protocol)
此协议用于向对等实体传达与 SSL 相关的警报。此协议中的每个消息包含 2 个字节。第二个字节描述错误。
该级别进一步分为两部分:
警告(级别 = 1)
此警报对发送方和接收方之间的连接没有影响。其中一些是:
错误证书(Bad Certificate):当收到的证书已损坏时。
无证书(No Certificate):没有适当的证书。
证书已过期(Certificate Expired):证书已过期。
证书未知(Certificate Unknown):在处理证书时出现一些其他未指定的问题,导致证书不可接受。
关闭通知(Close Notify):通知发送方将不再在连接中发送任何消息。
不支持的证书(Unsupported Certificate):收到的证书类型不受支持。
证书已撤销(Certificate Revoked):收到的证书在撤销列表中。
致命错误(级别 = 2):
此警报会中断发送方和接收方之间的连接。连接将停止,无法恢复,但可以重新启动。其中一些是:
握手失败(Handshake Failure):当发送方无法根据可用选项协商一组可接受的安全参数时。
减压失败(Decompression Failure):当减压功能接收到不正确的输入时。
非法参数(Illegal Parameters):当某个字段超出范围或者与其他字段不一致时。
错误记录 MAC(Bad Record MAC):收到不正确的 MAC。
意外消息(Unexpected Message):收到不适当的消息时。
安全套接字层的显著特点(Salient Features of Secure Socket Layer)
这种方法的优点是可以根据给定应用程序的特定需求定制(tailored)服务。
安全套接字层是由 Netscape 发起的。
SSL 旨在利用 TCP 提供可靠的端到端安全服务。
这是一个两层协议(two-layered protocol)。
SSL 的版本
SSL 1 – 由于高度不安全性而从未发布
SSL 2 – 于 1995 年发布
SSL 3 – 于 1996 年
发布 TLS 1.0 – 于 1999 年发布
TLS 1.1 – 于 2006 年发布
TLS 1.2 – 于 2008 年发布
TLS 1.3 – 于 2018 年发布
SSL 证书
SSL(安全套接字层)证书是一种数字证书(digital certificate),用于保护和验证网站或在线服务的身份。该证书由受信任的第三方(称为证书颁发机构【Certificate Authority】 (CA))颁发,该机构在颁发证书之前会验证网站或服务的身份。
SSL 证书具有几个重要特性,使其成为保护在线交易安全的可靠解决方案:
加密(Encryption):SSL 证书使用加密算法来保护网站或服务与其用户之间的通信。这可确保敏感信息(例如登录凭据和信用卡信息)不被未经授权的一方拦截和读取。
身份验证(Authentication):SSL 证书可验证网站或服务的身份,确保用户与目标方进行通信,而不是与冒名顶替者进行通信。这可让用户确信他们的信息正在传输到受信任的实体。
完整性(Integrity):SSL 证书使用消息认证码 (MAC) 来检测传输过程中对数据的任何篡改。这可确保传输的数据不会以任何方式被修改,从而保持其完整性。
不可否认性(Non-repudiation):SSL 证书提供数据的不可否认性,这意味着数据接收者不能否认已经收到数据。这在需要确定信息真实性的情况下非常重要,例如在电子商务交易中。
公钥加密(Public-key cryptography): SSL 证书使用公钥加密在客户端和服务器之间进行安全密钥交换。这允许客户端和服务器安全地交换加密密钥,确保加密信息只能由预期的接收者解密。
会话管理(Session management):SSL 证书允许管理安全会话,允许在中断后恢复安全会话。这有助于减少每次用户访问网站或服务时建立新的安全连接的开销。
由受信任的 CA 颁发的证书(Certificates issued by trusted CAs):SSL 证书由受信任的 CA 颁发,这些 CA 负责在颁发证书之前验证网站或服务的身份。这为用户提供了高度的信任和保证,使他们确信他们正在与之通信的网站或服务是真实可信的。
除了这些关键特性之外,SSL 证书还具有各种验证级别,包括域验证【Domain Validation】 (DV)、组织验证 【Organization Validation】(OV) 和扩展验证【Extended Validation】 (EV)。验证级别决定了 CA 在颁发证书之前验证的信息量,其中 EV 证书为用户提供最高级别的保证和信任。有关每个验证级别类型的 SSL 证书的更多信息,请参阅Namecheap。
总体而言,SSL 证书是网络安全的重要组成部分,提供加密(encryption)、身份验证(authentication)、完整性(integrity)、不可否认性(non-repudiation)和其他关键功能,确保敏感信息在互联网上安全可靠地传输。
SSL 证书有哪些类型?
SSL 证书有多种类型,每种类型适合不同的需求:
-
单域 SSL 证书:此类型仅涵盖一个特定域。域是网站的名称,例如 www.geeksforgeeks.org。例如,如果您拥有 www.geeksforgeeks.org 的单域 SSL 证书,则它不会涵盖任何其他域或子域。
-
通配符 SSL 证书:与单域证书类似,但它还涵盖单个域的所有子域。例如,如果您拥有 *.geeksforgeeks.org 的通配符证书,它将涵盖 www.geeksforgeeks.org、blog.www.geeksforgeeks.org 以及 example.com 下的任何其他子域。
-
多域 SSL 证书:此类型可以在单个证书内保护多个不相关的域。
这些证书的范围和灵活性各不相同,允许网站所有者根据他们的需求选择适当的安全覆盖级别。
SSL 证书具有不同的验证级别,这决定了对企业或组织的审查程度:
-
域名验证 (DV):这是最简单且最便宜的级别。要获得 DV 证书,企业只需证明其拥有该域名(例如 www.geeksforgeeks.org)。
-
组织验证 (OV):这涉及更实际的验证过程。证书颁发机构(CA) 在颁发证书之前直接联系组织以确认其身份。OV 证书为用户提供了有关组织合法性的更多保证。
-
扩展验证 (EV):这是最严格的验证级别。它需要对组织进行全面的背景调查,以确保其合法性和可信度。EV 证书可通过 Web 浏览器中的绿色地址栏识别,表明其安全性和可信度达到最高级别。
这些验证级别可帮助用户了解访问使用 SSL 证书保护的网站时可以期待的安全和信任级别。
SSL 和 TLS 是同一件事吗?
SSL 是 TLS(传输层安全性)的直接前身。1999 年,互联网工程任务组(IETF) 提议对 SSL 进行更新。由于此更新是由 IETF 开发的,没有 Netscape 的参与,因此名称更改为 TLS。SSL 的最后一个版本(3.0)与 TLS 的第一个版本之间的变化并不大;名称更改主要表示新的所有权。
由于 SSL 和 TLS 非常相似,人们经常互换使用这两个术语。有些人仍将其称为 SSL,而其他人则使用“SSL/TLS 加密”,因为 SSL 仍然被广泛认可。
SSL 是否仍然是最新的?
SSL(安全套接字层)自 1996 年的 SSL 3.0 以来一直未更新,现已过时。它存在已知漏洞,因此安全专家建议不要使用它。大多数现代网络浏览器不再支持 SSL。
TLS(传输层安全性)是当前在线使用的加密协议。尽管如此,许多人仍将其称为“SSL 加密”,这在人们寻找安全解决方案时会造成混淆。如今,任何提供“SSL”的供应商都可能提供 TLS 保护,这已成为 20 多年来的标准。术语“SSL 保护”仍在产品页面上广泛使用,因为许多用户仍在搜索它。
结论
SSL(安全套接字层)是一种重要的互联网安全协议,可加密数据以确保在线通信期间的隐私、身份验证和数据完整性。尽管 TLS(传输层安全性)已取代了 SSL ,但 SSL 仍然得到广泛认可,并且是建立用户和 Web 服务器之间安全连接的基础。了解 SSL 对于了解互联网安全的演变和在线敏感信息的保护至关重要。
安全套接字层常见问题解答 – 常见问题解答
SSL 和 TLS 之间有什么区别?
TLS(传输层安全性)是 SSL 的更新版本。虽然它们执行类似的功能,但 TLS 提供了改进的安全功能。这两个术语经常互换使用。
SSL 现在还使用吗?
尽管 SSL 已被 TLS 基本取代,但由于 SSL 的名称识别,许多人仍然使用术语“SSL”来指代这两种协议。
如果网站不使用 SSL 会发生什么情况?
如果网站不使用 SSL,用户和网站之间传输的数据将以纯文本形式发送,这很容易受到拦截和攻击。