SSL和TLS协议如何提供身份验证、机密性和完整性

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: SSL 和 TLS 协议使两方能够相互识别和验证,并以机密性和数据完整性进行通信。

SSL 和 TLS 协议使两方能够相互识别和验证,并以机密性和数据完整性进行通信。SSL 和 TLS 协议通过 Internet 提供通信安全性,并允许客户端/服务器应用程序以保密和可靠的方式进行通信。这些协议有两层:记录协议和握手协议,它们位于 TCP/IP 等传输协议之上。它们都使用非对称和对称加密技术。

 

SSL 或 TLS 连接由成为 SSL 或 TLS 客户端的应用程序启动。接收连接的应用程序成为 SSL 或 TLS 服务器。正如 SSL 或 TLS 协议所定义的,每个新会话都以握手开始。SSL 或 TLS 握手使 SSL 或 TLS 客户端和服务器能够建立与之通信的密钥。了解更多SSL技术最新信息,请访问沃通CA官网

 

在客户端和服务器身份验证期间,有一个步骤要求使用非对称密钥对中的一个密钥对数据进行加密,并使用该对中的另一个密钥对其进行解密,消息摘要用于提供完整性。详情请参阅SSL工作原理

130-1.gif

SSL 和 TLS 如何提供身份验证

对于服务器身份验证,客户端使用服务器的公钥来加密用于计算密钥的数据。只有当服务器可以使用正确的私钥解密该数据时,它才能生成密钥。

对于客户端身份验证,服务器使用客户端证书中的公钥解密客户端在第5步握手期间发送的数据。使用密钥加密的已完成消息的交换(概述中的步骤7和8 )确认身份验证已完成。

如果任何身份验证步骤失败,则握手失败并且会话终止。

SSL 或 TLS 握手期间的SSL证书交换是身份验证过程的一部分。SSL证书需由全球信任的CA机构颁发,受浏览器、操作系统和移动端信任。所需证书如下,其中CAx向客户端颁发证书,CAy向SSL 或 TLS 服务器颁发证书:

仅对于服务器身份验证,SSL 或 TLS 服务器需要:

  • CA颁发给服务器证书Y
  • 服务器的私钥

SSL 或 TLS 客户端需要:

  • CA 的 CA 证书Y

如果 SSL 或 TLS 服务器需要客户端身份验证,则服务器通过使用向客户端颁发个人证书的 CA(在本例中为 CA )的公钥验证客户端的数字证书来验证客户端的身份X。对于服务器和客户端身份验证,服务器需要:

  • CA颁发给服务器的个人证书Y
  • 服务器的私钥
  • CA 的 CA 证书X

和客户端需要:

  • CA颁发给客户的个人证书X
  • 客户的私钥
  • CA 的 CA 证书Y

SSL 或 TLS 服务器和客户端都可能需要其他 CA 证书来形成根 CA 证书的证书链。详情请参阅如何补全SSL证书链

 

证书验证期间会发生什么

如概述的第3步和第 6步所述,SSL 或 TLS 客户端验证服务器的证书,而 SSL 或 TLS 服务器验证客户端的证书。这个验证有四个方面:

Ÿ   检查数字签名

Ÿ   检查证书链;您应该拥有中间 CA 证书

Ÿ   检查到期和激活日期以及有效期

Ÿ   检查证书的吊销状态

 

密钥重置

在 SSL 或 TLS 握手期间,会生成一个密钥来加密 SSL 或 TLS 客户端和服务器之间的数据。密钥用于数学公式中,该公式应用于数据以将明文转换为不可读的密文,并将密文转换为明文。

密钥是从作为握手的一部分发送的随机文本生成的,用于将明文加密为密文。密钥还用于 MAC(消息验证码)算法,用于确定消息是否已被更改。

如果发现密钥,则可以从密文中破译消息的明文,或者可以计算消息摘要,从而允许在不被发现的情况下更改消息。即使对于复杂的算法,明文最终也可以通过对密文应用所有可能的数学变换来发现。如果密钥被破坏,为了最大限度地减少可以解密或更改的数据量,可以定期重新协商密钥。当密钥重新协商后,以前的密钥不能再用于解密用新密钥加密的数据。

SSL 和 TLS 如何提供机密性

SSL 和 TLS 结合使用对称和非对称加密来确保消息隐私。在 SSL 或 TLS 握手期间,SSL 或 TLS 客户端和服务器同意仅用于一个会话的加密算法和共享密钥。SSL 或 TLS 客户端和服务器之间传输的所有消息都使用该算法和密钥进行加密,确保消息即使被截获也保持私密。SSL 支持范围广泛的加密算法。因为 SSL 和 TLS 在传输共享密钥时使用非对称加密,所以不存在密钥分配问题。

SSL 和 TLS 如何提供完整性

SSL 和 TLS 通过计算消息摘要来提供数据完整性。使用 SSL 或 TLS 确实可以确保数据完整性,前提是您的通道定义中的 CipherSpec 使用指定 CipherSpecs中的表中描述的哈希算法。

特别是,如果数据完整性是一个问题,您应该避免选择散列算法被列为“无”的 CipherSpec。强烈建议不要使用 MD5,因为它现在已经很老了,对于大多数实际用途来说不再安全。


了解更多SSL技术最新信息,请访问沃通CA官网

相关文章
|
18天前
|
缓存 安全 算法
SSL和TLS部署实践
在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥来防止攻击者进行模拟攻击。同样重要的是拥有一个有效和强大的证书,它会授予私钥来代表一个特定的主机名。
36 2
|
27天前
|
存储 安全 算法
SSL和TLS部署实践
【10月更文挑战第28天】在TLS中,服务器的加密身份和强大私钥是安全基础,2048位RSA密钥足以满足大多数需求。保护私钥需在可信环境生成、加密存储、使用HSM、及时撤销旧证书、每年更新证书。确保证书覆盖所有域名,选择可靠CA,使用SHA256签名算法,配置完整证书链,禁用不安全加密套件,启用前向保密,使用会话重用机制,启用OCSP Stapling,加密整个网站,删除混合内容,安全设置Cookie,配置HSTS和CSP。
79 1
|
2月前
|
安全 网络安全 数据安全/隐私保护
【Azure Developer】System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
|
2月前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
73 1
|
4月前
|
监控 安全 Linux
在Linux中,如何管理SSL/TLS证书?
在Linux中,如何管理SSL/TLS证书?
|
3月前
|
消息中间件 安全 Kafka
Kafka支持SSL/TLS协议技术深度解析
SSL(Secure Socket Layer,安全套接层)及其继任者TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。这些协议在传输层对网络连接进行加密,确保数据在传输过程中不被窃取或篡改。
221 0
|
4月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
4月前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
4月前
|
安全 Linux 应用服务中间件
在Linux中,SSL/TLS证书的作用以及如何在Linux中管理它们?
在Linux中,SSL/TLS证书的作用以及如何在Linux中管理它们?
|
23天前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
568 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠