TLS协议

目录

什么是TLS协议?

TLS的基本流程?

两种密钥交换算法?

基于ECDHE密钥交换算法的TLS握手过程?

基于RSA密钥交换算法的TLS握手过程?

基于RSA的握手和基于ECDHE的握手有什么区别?

什么是前向保密?


什么是TLS协议?

        TLS是(Transport Layer security)的缩写中文叫传输层安全协议,是一种加密协议,用于保护网络通信的安全。

TLS的基本流程?

        1)客户端向服务器索要并验证服务器的公钥

        2)双方协商生产会话密钥

        3)双方采用会话密钥进行通信

两种密钥交换算法?

        RSA和ECDHE,基于不同的密钥交换算法的TLS握手过程有些区别。另外,TLS1.3及其以上版本已经不在支持RSA密钥交换算法。

基于ECDHE密钥交换算法的TLS握手过程?

        1)第一次握手是客户端发送Client Hello消息。(包含TLS版本,支持的密码套件,以及一个随机数)

        2)第二次握手是服务端发送Server Hello消息。(服务器确认的TLS版本号,以及一个随机数,并选择了一个合适的密码套件)。另外服务端为了证明自己的身份,还会发送一个证书给客户端。除此之外,还会发送给客户端一个Server Key Exchange(将选择的椭圆曲线,以及基点G和服务端的椭圆曲线公钥发送给客户端),以及还有一个是Server Hello done告诉客户端我发送完毕了。

        3)第三次握手是客户端发送Client Key Exchange消息,将客户端的椭圆曲线公钥发送给服务端。并生成一个随机数作为自己的私钥。发送change cipher spec消息,告诉服务端之后客户端要用加密通信。接着客户端会将之前发送的消息的摘要进行加密发送给服务端。

        4)第四次握手是服务端向客户端发送Change Cipher Spec,接着会将之前发送的信息进行加密发送给客户端。如果双方的加解密都没有问题,则握手完成,之后就可以进行加密通信。

基于RSA密钥交换算法的TLS握手过程?

        1)第一次握手是客户端向服务端发送Client Hello消息。(包含TLS版本,支持的密码套件和客户端生成的随机数)

        2)第二次握手是服务端向客户端发送Server Hello消息(包含确认的TLS版本,选择的密码套件和服务端生成的随机数)并发送证书(包含服务端的公钥)

        3)第三次握手:客户端验证证书的可信性后,客户端会生成一个新的随机数(pre-master),用服务器的RSA公钥加密该随机数,通过Client Key exchange消息发送给服务端。至此客户端和服务端共享了三个随机数,客户端随机数(Client Random),服务端随机数(Server Random)以及刚刚生成的随机数(pre-master)。将三个随机数进行计算生成会话密钥。生成会话密钥后,和发送Change Cipher Spec,告诉服务端开始使用加密的方式发送消息。然后客户端再发送一个加密消息供服务端解密验证。

        4)第四次握手:服务端收到客户端的加密随机数(pre-master)后,用私钥进行解密。计算出会话密钥,解密服务端的加密消息。之后对客户端发送change cipher spec,以及再发送一个加密消息供客户端解密验证。

基于RSA的握手和基于ECDHE的握手有什么区别?

        1)ECDHE安全。RSA密钥协商算法不支持前向保密(服务端的公私钥是不变的,一旦服务端私钥泄漏,之前的通信内容全部会被破解),而ECDHE密钥协商算法支持前向保密。

        2)ECDHE抢跑。使用了RSA密钥协商算法,TLS完成四次握手后才能进行应用数据传输。而ECDHE算法,客户端可以不用等服务端的最后一次TLS握手,就可以提前发出加密的HTTP数据,节省了一个消息的往返时间

        3)在第二次握手中,ECDHE多了一个Server Key Exchange

什么是前向保密?

        前向保密是密码学中通讯协议的安全属性,指的是长期使用的主密钥泄漏不会导致过去的会话密钥泄漏。

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

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

相关文章

tp6 v3微信退款

/*** Notes:退款* param $out_trade_no 支付时候订单号(order表 original_bn)两个参数选一个这个要选对* param $out_refund_no 退款订单号* param $total 订单金额* param $refund 退款金额* Time: 2023-08-10*/public function refundMoney($out_trade…

oracle的异常处理

oracle提供了预定义例外、非预定义例外和自定义例外三种类型。其中: l预定义例外用于处理常见的oracle错误; l非预定义例外用于处理预定义所不能处理的oracle错误; l自定义例外处理与oracle错误无关的其他情况。 Oracle代码编写过程中&am…

nginx反向代理与负载均衡

负载均衡依靠反向代理实现。nginx的代理分为七层代理与四层代理: 七层代理:七层代理的就是http请求和响应。七层代理是最常用的反向代理方式,只能配置在nginx配置文件的http模块。而且配置方法名称:upstream模块,不能写…

提升效率!Go语言开发者不可错过的必备工具集合!

🌷🍁 博主猫头虎 带您 Go to Golang Language.✨✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1…

UDP数据报网络编程(实现简单的回显服务器,客户端)

回显服务器表示客户端发的是啥,服务器就返回啥,主要是为了熟悉UDP数据报网络编程的基本步骤 对于程序的所有分析都写到了代码上 UDP回显服务器代码 package UdpEcho;import java.io.IOException; import java.net.DatagramPacket; import java.net.Dat…

ClickHouse查看执行计划(EXPLAIN语法)

1.EXPLAIN 语法示例 EXPLAIN [AST | SYNTAX | QUERY TREE | PLAN | PIPELINE | ESTIMATE | TABLE OVERRIDE] [setting value, ...] [ SELECT ... | tableFunction(...) [COLUMNS (...)] [ORDER BY ...] [PARTITION BY ...] [PRIMARY KEY] [SAMPLE BY ...] [T…

途乐证券-最准确的KDJ改良指标?

KDJ目标是技术剖析的一种重要目标之一,它是利用随机目标(%R)发展而来的,是一种反映商场超买和超卖状况的买卖目标。KDJ目标由快线(K线)、慢线(D线)和随机值(J线&#xff…

RestTemplate HTTPS请求忽略SSL证书

问题描述 使用RestTemplate发送HTTPS请求的时候,出现了这样的一个问题: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification …

MySQL多表查询

1.创建student和score表 创建score表 2.为student表和score表增加记录 向student表插入记录的INSERT语句如下: 向score表插入记录的INSERT语句如下: 1.查询student表的所有记录 2.查询student表的第2条到4条记录 3.从student表查询所有学生的学号&#…

2023最新影视泛目录系统,苹果cms最新下载地址

影视泛目录系统是指一种集成了电影、电视剧、综艺节目、动漫等多种影视资源资源的系统,其目的是为用户提供一个方便快捷的影视资源检索、浏览、分享、评论的平台。该系统通过对影视资源进行分类、标签化、评分等方式,为用户提供更加精准的检索和推荐服务…

C#多线程学习 生产者和消费者

前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发…

mousedown拖拽功能(vue3+ts)

因为项目有rem适配,使用第三方插件无法处理适配问题,所有只能自己写拖拽功能了 拖拽一般都会想到按下,移动,放开,但是本人亲测,就在div绑定一个按下事件就行了(在事件里面写另外两个事件&#x…

爬虫ip池越大越好吗?

作为一名资深的程序员,今天我要给大家分享一些关于爬虫ip池的知识。关于ip代理池的问题,答案是肯定的,池子越大越好。下面跟我一起来盘点一下ip池大的好处吧! 1、提高稳定性 爬虫ip池越大,意味着拥有更多可用的爬虫ip…

「C/C++」C/C++搭建程序框架

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C」C/C程序设计「Win」Windows程序设计「DSA」数据结构与算法「File」数据文件格式 目录 1. 分离职…

Flume原理剖析

一、介绍 Flume是一个高可用、高可靠,分布式的海量日志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制&…

使用阿里云服务器搭建Discuz论坛网站教程基于CentOS系统

阿里云百科分享使用阿里云服务器建站教程,本文是搭建Discuz论坛,Discuz!是一款通用的社区论坛软件系统,它采用PHP和MySQL组合的基础架构,为您提供高效的论坛解决方案。本文介绍如何在CentOS 7操作系统的ECS实例上搭建Discuz! X3.4…

Nginx 安装与部署

文章和代码已经归档至【Github仓库:https://github.com/timerring/front-end-tutorial 】或者公众号【AIShareLab】回复 nginx 也可获取。 文章目录 虚拟机安装CentOS7.4Linux配置配置上网配置静态ip Nginx的安装版本区别备份克隆 安装编译安装报错解决 启动Nginx防…

topo 成绩排名

题目描述 每到考试后,学校都会发成绩表给每个学生,但是很多同学更关心的是自己在班级里的排名,可惜排名信息并没有公开。 小雯同学很想知道这次期末考试的全班排名情况,但是她的同学却不愿意告诉她自己的分数,只告诉她…

分布式 - 消息队列Kafka:Kafka生产者发送消息的方式

文章目录 1. Kafka 生产者2. kafaka 命令行操作3. kafka 生产者发送消息流程4. Kafka 生产者的创建5. Kafka 生产者发送消息1. 发送即忘记2. 同步发送3. 异步发送 6. Kafka 消息对象 ProducerRecord 1. Kafka 生产者 不管是把Kafka作为消息队列、消息总线还是数据存储平台&…

wpf控件上移下移,调整子集控件显示顺序

页面代码: <!-- 导出A2,自定义导出设置列,添加时间:2023-8-9 14:14:18,作者:whl; --><Window x:Class="WpfSnqkGasAnalysis.WindowGasExportA2"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:/…