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

news2024/11/23 12:17:44

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

SSL 或 TLS 连接由成为 SSL 或 TLS 客户端的应用程序启动。接收连接的应用程序成为 SSL 或 TLS 服务器。正如 SSL 或 TLS 协议所定义的,每个新会话都以握手开始。SSL 或 TLS 握手使 SSL 或 TLS 客户端和服务器能够建立与之通信的密钥。

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

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,因为它现在已经很老了,对于大多数实际用途来说不再安全。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

要命!我篡改了系统命令惊现事故,竟要扣我年终奖-Golang-cobra

打工还是要打工的。。我最后也没发出去。 紧急处理以后,现在写复盘,大家随我看看我到底是在学习哪些内容。 (以上内容纯属虚构,如有雷同纯属巧合) 简介 之前我们讲过pflag和os.Args,现在说说cobra这个命令行…

如何将SQL Server数据从表导出到CSV文件

在本文中,我们将使用四种不同的工具将表从SQL Server导出到.csv文件。此外,你将学习如何将带有或不带有头的SQL查询结果导出到.csv文件。 SQL Server数据从表导出到CSV文件 使用SQL Server Management Studio将SQL结果导出到具有或不具有标题的CSV文件一、不带标题二、带标题…

图形编辑器:图形和辅助线绘制的坐标问题

大家好,我是前端西瓜哥。今天看看绘制图形和辅助线时,坐标转换的一些注意点。 项目地址,欢迎 star: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 先回顾一下之前讲的视口坐标和场…

docker镜像与容器实践

一、引子 镜像和容器是不同的概念,本文主要是为了通过实践来强化对这两种不同概念的理解。 二、安装docker 安装docker,执行以下命令即可: # 安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 # 设置国内源 yum-co…

显示Linux系统上的服务

init 和 systemd 都是 Linux的 init 守护进程,systemd出现较晚,最近的 Linux 发行版中很常用。init 使用service命令管理服务,而Systemd用systemctl命令管理服务。init 和 systemd 都是 Linux的 init 守护进程,即使你的 Linux 系统…

Maven3.8.*系列 settings.xml详解

文章目录文末,拿完整Settings配置文件设置参考介绍简要概述设置详细信息简单的价值观插件组服务器密码加密的镜像代理配置文件激活性能库插件的储存库活动概况直达文末,拿完整Settings配置文件结语文末,拿完整Settings配置文件 设置参考 介绍 简要概述 的 settings 元素 set…

返乡上云图

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

PicGo+Github搭建图床

文章目录一、Github仓库创建二、配置PicGo三、实际体验四、PicGo 2.3.1参考资料一、Github仓库创建 PS:它只会显示一次,所以最好把它复制下来到你的备忘录存好,方便下次使用,否则下次有需要重新新建; 二、配置PicGo …

Linux进程控制(进程退出+进程等待)

目录 一、子进程创建 1.1 fork函数深入 1.2 写时拷贝 二、进程退出 2.1.1 进程退出码概念 2.1.2 系统退出码文字描述 2.1.3 _exit和exit函数 2.1.4 查看退出码 三、进程等待 3.1 进程等待解决僵尸进程 3.2 进程等待方法 3.2.1 wait 3.2.2 waitpid() 四、…

seata部署指南(v1.6.1)

Seata 搭建 db模式版本 V1.6.1一、 简介二、下载三、建表(仅db)四、配置 seata server 参数4.1、V1.4.2之前方式4.2、V1.4.2 之后推荐方式(seataServer.properties)五、配置Server5.1、 修改 appplication.yml5.1.1、 修改 appplication.yml seata.store…

文件操作(File类)

文章目录一、初识文件二、File类构造方法常用方法一、初识文件 我们目前是如何存储数据的?弊端是什么? int a 1; int[] arr new int[5];我们这些数据是在内存中存储的,是不能够长久保存的。 那么,我们的计算机当中有没有一块硬件可以长久存储数据…

PostgreSQL(一)Windows安装

目录一、下载二、安装PostgreSQL三、安装StackBuilder四、打开PostgreSQL管理工具pgAdmin五、打开命令行一、下载 下载地址: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 下载后安装包如下: 二、安装PostgreSQL 双击打开安…

DataX使用入门

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据…

Java 日志框架 Log4J

文章目录引言什么是Log4JLog4J三大组件Log4J日志级别Log4J基本使用自定义配置文件Appender示例FileAppenderDailyRollingFileAppenderRollingFileAppenderJDBCAppender自定义Logger引言 Java 日志框架 JUL 在这篇文章中已经向大家介绍了我们为什么要使用日志文件、常见的日志…

张力调节(精密调节气阀应用)

跳舞轮对应张力调节范围,我们可以通过改变气缸的气压方式间接改变,张力跳舞轮在收放卷闭环控制上的详细应用,可以参看下面的文章链接,这里我们主要讨论精密可调气阀的模拟量编程问题。 PLC张力控制(开环闭环算法分析&…

【实践向】当移除了三级缓存……

本文会手把手带你一起把使用二级缓存替换三级缓存,看下移除了三级缓存,只有二级缓存会出什么问题,用实践回答那个被问了无数次的“为什么要有三级缓存?”以及“二级缓存解决不了循环依赖问题吗?”等类似问题(&#xff…

“Flash配置不当漏洞”详解

危害 可被用来进行跨域访问,可能会导致“跨站点伪造请求”或“跨站点跟踪”(“跨站点脚本编制”的变体)之类的攻击,从而导致其它用户的信息被非法读取。 导致不受信任的第三方域的flash也能访问当前域的资源,绕过同源策…

一、构建自己的图像分类数据集(Datawhale组队学习)

文章目录安装配置环境图像采集采集函数爬取一类图片爬取多类图片一些参考类别的关键词制作图像分类数据集的注意事项删除多余文件删除系统自动生成的多余文件删除gif格式的图像文件删除非三通道的图像统计图像尺寸、比例分布采用的数据集统计数据集的基本信息可视化图像尺寸分布…

Embarcadero Dev-C++第一次使用注意事项

Embarcadero Dev-C第一次使用注意事项 Embarcadero Dev-C简介 2000年左右,Bloodshed software开发了Dev-C ,提供轻量、免费、开源的C/CIDE。Dev-C是最适合初学C语言的IDE之一,但至2015年Dev C5.11,停止了更新维护了。 后来&…

springboot,vue电影院售票系统

开发工具:IDEA服务器:Tomcat9.0, jdk1.8项目构建:maven数据库:mysql5.7系统用户前台和管理后台两部分,项目采用前后端分离前端技术:vue elementUI服务端技术:springbootmybatis项目功…