Secure Socket Layer (SSL) 安全套接字层

ops/2024/12/20 20:43:16/

原文链接 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 记录为 SSL 连接提供两种服务。 

保密(Confidentiality)

消息完整性(Message Integrity)

在 SSL 记录协议中,应用程序将数据分成多个片段。片段被压缩,然后附加由 SHA(安全哈希协议 Secure Hash Protocol)和 MD5(消息摘要 Message Digest消息摘要 )等算法生成的加密 MAC(消息认证码)。之后,对数据进行加密,最后将 SSL 标头(header)附加到数据中。 

SSL 记录协议

握手协议 

握手协议用于建立会话。此协议允许客户端和服务器通过相互发送一系列消息来相互验证。握手协议使用四个阶段来完成其周期。 

阶段 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)且只能有一个值的消息组成。此协议的目的是使待处理状态复制到当前状态。 

更改 Cypher 协议

警报协议(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,用户和网站之间传输的数据将以纯文本形式发送,这很容易受到拦截和攻击。

SSL 可以阻止所有类型的网络攻击吗?

SSL 无法阻止所有类型的网络攻击。它主要保护传输中的数据,但无法防御恶意软件或网络钓鱼攻击等威胁


http://www.ppmy.cn/ops/143571.html

相关文章

vscode不同的项目使用不同的环境变量或编译环境

转载请标明出处:小帆的帆的博客 假如电脑中安装的两套C编译环境,想要切换编译环境时可以在操作系统的环境变量中调整顺序,然后排在前面的环境就会被使用。 这样做的弊端: 麻烦容易忘,忘了项目不报错就可能就不会发现…

ChatGPT生成测试用例的最佳实践(四)

通常情况下还应该进行测试用例外不评审。将已完成的基于百度关键字搜索业务的功能和安全测试用例集的存放位置告知项目团队成员,需要预留出一定的时间,便于项目组研发、产品人员阅读,以免在项目团队测试用例评审会议上占用过多时间熟悉相关测…

Oracle 中什么情况下 可以使用 EXISTS 替代 IN 提高查询效率

为什么 EXISTS 更高效? EXISTS 提前终止: EXISTS 一旦在子查询中找到第一个匹配项,就会立即返回 TRUE,不再继续扫描子查询中的其他记录。IN 必须扫描整个子查询的结果集,将所有结果与主查询的每一行进行对比。大数据集…

PyTorch 2.0 中设置默认使用 GPU 的方法

PyTorch 2.0 中设置默认使用 GPU 的方法 在 PyTorch 2.0 中,默认情况下仍然是使用 CPU 进行计算,除非明确指定使用 GPU。torch.set_default_device 是 PyTorch 2.0 引入的新功能,用于设置默认设备,使得所有后续张量和模块在没有明…

JavaScript九宫格随机抽奖示例

<!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><title>九宫格抽奖</title><style>/* 全局样式重置 */* {margin: 0;padding: 0;}/* 抽奖容器样式 */.lottery-container {width: 300px;height: 30…

面试题整理5----进程、线程、协程区别及僵尸进程处理

面试题整理5----进程、线程、协程区别及僵尸进程处理 1. 进程、线程与协程的区别1.1 进程&#xff08;Process&#xff09;1.2 线程&#xff08;Thread&#xff09;1.3 协程&#xff08;Coroutine&#xff09;2. 总结对比 3. 僵尸进程3.1 什么是僵尸进程&#xff1f;3.2 僵尸进…

数据可视化-1. 折线图

目录 1. 折线图适用场景分析 1. 1 时间序列数据展示 1.2 趋势分析 1.3 多变量比较 1.4 数据异常检测 1.5 简洁易读的数据可视化 1.6 特定领域的应用 2. 折线图局限性 3. 折线图代码实现 3.1 Python 源代码 3.2 折线图效果&#xff08;网页显示&#xff09; 1. 折线图…

【Java基础面试题020】Java中Exception和Error有什么区别?

回答重点 Exception和Error都是Throwable类的子类&#xff08;在Java代码中只有继承了Throwable类的实例&#xff0c;才可以被throw和被catch&#xff09;他们表示程序运行时发生的异常或错误情况 总结来看&#xff0c;Exception表示可以被处理的程序异常&#xff0c;Error表…