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。
什么是前向保密?
前向保密是密码学中通讯协议的安全属性,指的是长期使用的主密钥泄漏不会导致过去的会话密钥泄漏。
相关文章:
TLS协议
目录 什么是TLS协议? TLS的基本流程? 两种密钥交换算法? 基于ECDHE密钥交换算法的TLS握手过程? 基于RSA密钥交换算法的TLS握手过程? 基于RSA的握手和基于ECDHE的握手有什么区别? 什么是前向保密&…...
Academic Inquiry|国外文献查找
一个失去了男子气概的人总有很多忧虑,这样就可以分散注意力,而不必为那件特别的羞耻而苦恼不堪。 ——《狂野之夜》〔美〕乔伊斯卡罗尔欧茨著 樊维娜译 许多研究者在进行研究的时候,都会查找对应主体的国内外引用文献,而大多得出的…...
opencv图片灰度二值化
INCLUDEPATH D:\work\opencv_3.4.2_Qt\include LIBS D:\work\opencv_3.4.2_Qt\x86\bin\libopencv_*.dll #include <iostream> #include<opencv2/opencv.hpp> //引入头文件using namespace cv; //命名空间 using namespace std;//opencv这个机器视…...
短肥网络的 RTT 敏感性
周二下班路上发了一则朋友圈: 长肥管道的特征和问题谈得够多了,但这里谈的是短肥管道,因为下面趋势,短肥管道才是未来大势: 云计算致使数据中心网络快速发展,而数据中心网络时延短,带宽大。CD…...
Nonebot实战之编写插件1
前言 应粉丝群内粉丝要求,我也决定写一个Nonebot插件编写教程,从0开始教学。有些不对的地方也欢迎大家指正,修改。 开始 准备 合适的代码编辑器一定的python基础懂得提问的方式 代码编辑器 代码编辑器有很多种选择,比如 vsc…...
Linux-C++开发项目:基于主从Reactor模式的高性能并发服务器
目录 1.项目介绍2.1项目部署2.2安装版本较高的编译器 2.项目开发过程2.1网络库模块开发2.1.1简单日志宏的实现2.1.2Buffer模块实现2.1.3Socket模块实现2.1.4Channel模块实现2.1.5Poller模块实现2.1.6TimerWheel模块实现2.1.7EventLoop模块实现2.1.8整合测试12.1.9LoopThread模块…...
【Linux的开胃小菜】Linux系统安装后初始化配置操作
我们刚接手一台刚安装好服务器系统之后,可以对系统进行一些基础优化: 常规设定: centos: 1.关闭 iptables 2.关闭 selinux 3.设定 ChronyUbuntu: 4. /etc/security/limits.conf 5. /etc/sysctl.conf1.首先使用国内阿里云的yum源(…...
Java批量下载书籍图片并保存为PDF的方法
背景 因为经常出差火车上没网、不方便电子书阅读器批注,需要从某网站上批量下载多本书籍的图片并自动打包成PDF文件。 分析 1、尝试获得图片地址,发现F12被禁 解决方法:使用Chrome浏览器,点击右上角三个点呼出菜单,…...
flutter 创建lib
在根目录下创建 packages 文件夹创建lib (flutter create --templatepackage xxx)需要在pubspec.yaml中的根目录下添加 publish_to: ‘none’ # 如果你想发布到pub.dev,请删除这一行配置 lib_rock_utils:path: packages/lib_rock_utils...
深度剖析堆栈指针
为什么打印root的值与&root->value的值是一样的呢 测试结果: *号一个变量到底取出来的是什么? 以前我写过一句话,就是说,如果看到一个*变量,那就是直逼这个变量所保存的内存地址,然后取出里面保存的…...
C++笔记之静态成员函数的使用场景
C笔记之静态成员函数的使用场景 C静态成员函数的核心特点是不与特定类实例相关,可通过类名直接调用,用于执行与类相关的操作而无需创建类对象。其主要用途是在类级别上共享功能,管理全局状态或提供工具函数。 code review! 文章目录 C笔记之…...
Nginx的优化和防盗链
一、Nginx的优化 1、隐藏版本号 curl -I http://192.168.79.28 #查看信息(版本号等)方法一:修改配置文件 vim /usr/local/nginx/conf/nginx.conf vim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type ap…...
第二十次CCF计算机软件能力认证
数学专场 第一题:称检测点查询 解题思路:计算欧几里得距离 #include<iostream> #include<vector> #include<algorithm>using namespace std;typedef pair<int , int> PII; int n , x , y; vector<PII>v;int main() {ci…...
一篇文章带你了解Java发送邮件:使用JavaMail API发送电子邮件的注意事项、发送附件等
Java发送邮件:使用JavaMail API发送电子邮件 作者:Stevedash 发表于:2023年8月13日 15点48分 来源:Java 发送邮件 | 菜鸟教程 (runoob.com) 电子邮件在现代通信中扮演着至关重要的角色,而在Java编程中,…...
kubernetes的日志
1、日志在哪里 kubelet组件,systemd方式部署,journalctl -u kubelet 查看 其他组件,pod方式部署,kubectl logs 查看 容器运行时将日志写入 /var/log/pods 系统日志,/var/log/message 2、查看服务日志 #首先检查服…...
设计HTML5文本
网页文本内容丰富、形式多样,通过不同的版式显示在页面中,为用户提供最直接、最丰富的信息。HTML5新增了很多文本标签,它们都有特殊的语义,正确使用这些标签,可以让网页文本更严谨、更符合语义。 1、通用文本 1.1、标…...
msvcr120.dll丢失怎样修复?总结三个dll修复方法
当我遇到msvcr120.dll丢失的问题时,我感到有些困惑和焦虑。因为这个问题会导致我无法运行依赖这个文件的应用程序。msvcr120.dll是运行时库文件的一部分,为应用程序提供了必要的运行时支持。它的丢失会导致应用程序无法正常运行,这让我意识到…...
选择题方法论——颉斌斌
文章目录 一、仔细阅读文章结构Ⅰ 时间对比Ⅱ 抛砖引玉Ⅲ 开门见山Ⅳ 一分为二Ⅴ 两者关系Ⅵ 研究性文章 1 如何精准定位1.1 定位明显的题1.2 定位不明显的题1.3 定位找不到出题句的题 2 对比选项两点2.1 接收信息2.2 对比信息 3 选择题答案特点4 评估选项5 选择题的固有缺陷5.…...
23.8.8 杭电暑期多校7部分题解
1008 - H.HEX-A-GONE Trails 题目大意 有两个玩家和一棵树,初始状态玩家一和玩家二分别在两个点 x , y x,\space y x, y,每次操作可以走一个与当前点有连边并且双方都没走到过的点,问最后是谁赢 解题思路 因为不能走走过的点,…...
《24海南大学835软件工程考研经验贴》
1.经验之谈 首先,我是一个二战的考生,一战给我带来的经验有几点。第一,数学、专业课这两门越早复习越好,越拖到后面你就会发现来不及了,这学不完,那学不完的。第二、我认为是比较关键的一点,一定…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
