当前位置: 首页 > news >正文

计算机网络-HTTP相关知识-RSA和ECDHE及优化

HTTPS建立基本流程

  • 客户端向服务器索要并验证服务器的公钥。
  • 通过密钥交换算法(如RSA或ECDHE)协商会话秘钥,这个过程被称为“握手”。
  • 双方采用会话秘钥进行加密通信。

RSA流程

RSA流程包括四次握手:

  • 第一次握手:客户端发送支持的TLS版本、生成的Client Random和支持的密码套件列表。
  • 第二次握手:服务器处理确认TLS协议版本,然后发送生成的Server Random、密码套件列表(包括密钥交换算法、签名算法、对称加密算法、对称加密算法分组方式和摘要算法)以及服务器的数字证书(包含公钥)。
  • 第三次握手:客户端处理验证证书真伪,生成会话密钥(由Client Random + Server Random + pre-master key组成以保证随机性),然后发送服务器公钥加密过的刚生成的pre-master key(预主密钥),告诉服务端之后使用加密方式发送消息,并发送之前所有发送的数据做个摘要,并使用会话密钥加密,以验证可用性。
  • 第四次握手:服务器处理生成会话密钥,然后发送告诉客户端之后使用加密方式发送消息,并发送之前所有发送的数据做个摘要,并使用会话密钥加密,以验证可用性。

RSA缺陷

RSA的主要缺陷是没有前向安全性。这意味着如果一个会话的秘钥被泄露,那么所有以前的会话都可能被解密。

DHE算法

  • DHE算法基于离散对数问题,即对于 aimodp=b,当 p 很大时,已知 a、b 无法快速获得 i ,时间复杂度为 O(p​) ,但是如果正向计算(已知 a、i,求b )是可以做到 O(logp) 的。
  • DHE算法的流程如下:
    • 双方确定模数P和底数A。
    • 各自随机生成私钥i,j作为指数。
    • 通过 Bi=Aimodp、Bj=Ajmodp 得到公钥并交换。
    • 以 K=Bij=Bjimodp 为会话密钥。
  • 在static DH算法中,一方私钥是固定的,无法保证前向安全,所以有了DHE,其中E就是 ephemeral 临时的。
  • DHE算法的缺点是虽然保证了前向安全性,但是需要大量乘法,性能不佳。

ECDHE算法

  • ECDHE算法基于椭圆曲线上的加法,对于椭圆曲线上一点 A,过A的一条切线与圆锥曲线相交,交点关于x轴对称的点记为2A。
  • ECDHE算法的流程如下:
    • 双方确定椭圆曲线和曲线是基点G。
    • 各自随机生成私钥d1、d2。
    • 计算公钥 Q1=d1G、Q2=d2G并交换。
    • 计算得到 d1Q2=d2Q1 中的x相同的(预主密钥)。
  • ECDHE算法的优势是利用了ECC圆锥曲线特性,计算量更少,前向安全性,ECDHE 允许 TLS False Start 即在第三次挥手之后可以直接进行数据传输。

ECDHE流程

ECDHE流程包括四次握手:

  • 第一次握手:客户端发送支持的TLS版本、生成的Client Random和支持的密码套件列表。
  • 第二次握手:服务器处理确认TLS协议版本,生成私钥、公钥,然后发送生成的Server Random、密码套件列表(类型同RSA)、服务器的数字证书、选定的圆锥曲线以及对应公钥。
  • 第三次握手:客户端处理生成私钥、公钥,会话密钥 = Client Random + Server Random + ECDHE计算出的点的x坐标 保证随机性,然后发送圆锥曲线公钥(客户端公钥加密)、告诉服务端之后使用加密方式发送消息、之前所有发送的数据做个摘要,并使用会话密钥加密,验证可用性。
  • 第四次握手:服务器处理生成会话密钥,然后发送告诉客户端之后使用加密方式发送消息、之前所有发送的数据做个摘要,并使用会话密钥加密,验证可用性、Session Ticket 会话复用。

HTTPS优化

  • 硬件优化

    • 升级CPU,加快密钥计算。
    • 选用支持 AES-NI 特性的 CPU。
  • 软件优化

    • openssl升级。
    • linux内核升级。
  • 协议优化

    • 选用 ECDHE 密钥交换,支持 TLS False Start。
    • 选择 x25519 椭圆曲线,该曲线是目前计算最快的椭圆曲线。
    • 有CPU支持就选AES,如果没有就选择ChaCha20。
    • 安全性要求不是很高使用 AES128 代替 AES256。
    • 升级TLS1.3,将第一、三次握手合并,两次握手之后即可加密传输。密钥交换算法仅留下了支持前向安全性的ECDHE,仅留下了几个安全性高的密码套件,0RTT会话复用。
  • 证书优化

    • 选择椭圆曲线(ECDSA)证书,而不是 RSA 证书,相同安全程度下ECDSA密钥更短。
  • 会话复用

    • Session ID:双方会在内存缓存会话密钥,并用唯一的 Session ID 来标识,Session ID 和会话密钥相当于 key-value 的关系,定时过期。客户端再次连接时,hello 消息里会带上 Session ID,服务器收到后就会从内存找,如果还有就继续使用,省略后续挥手过程。占用服务器内存。
    • Session Ticket:首次连接后的第四次挥手加密会话密钥作为  Ticket 发给客户端。服务器收到 Ticket 后判断有效期,有效就恢复会话。在 TLS1.3 中把 Ticket 和 HTTP 请求一同发送给服务端即可,我们称之为Pre-shared Key(PSK)。
    • 重放攻击:如果中间人截获了客户端使用会话重用技术的 POST 请求,会导致服务器被恶意修改。应对方法包括设定过期时间,只对GET请求等使用会话复用。

相关文章:

计算机网络-HTTP相关知识-RSA和ECDHE及优化

HTTPS建立基本流程 客户端向服务器索要并验证服务器的公钥。通过密钥交换算法(如RSA或ECDHE)协商会话秘钥,这个过程被称为“握手”。双方采用会话秘钥进行加密通信。 RSA流程 RSA流程包括四次握手: 第一次握手:客户…...

axios 封装 http 请求详解

前言 Axios 是一个基于 Promise 的 HTTP 库,它的概念及使用方法本文不过多赘述,请参考:axios传送门 本文重点讲述下在项目中是如何利用 axios 封装 http 请求。 一、预设全局变量 在 /const/preset.js 中配置预先设置一些全局变量 window.…...

牛客2024年愚人节比赛(A-K)

比赛链接 毕竟是娱乐场,放平心态打吧。。。 只有A一个考了数学期望,其他的基本都是acmer特有的脑筋急转弯,看个乐呵即可。 A 我是欧皇,赚到盆满钵满! 思路: 我们有 p 1 p_1 p1​ 的概率直接拿到一件实…...

loadbalancer 引入与使用

在消费中pom中引入 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> 请求调用加 LoadBalanced 注解 进行服务调用 默认负载均衡是轮训模式 想要切换…...

Yolov5封装detect.py面向对象

主要目标是适应摄像头rtsp流的检测 如果是普通文件夹或者图片&#xff0c;run中的while True去掉即可。 web_client是根据需求创建的客户端&#xff0c;将检测到的数据打包发送给服务器 # YOLOv5 &#x1f680; by Ultralytics, GPL-3.0 license """ Run inf…...

入门级深度学习主机组装过程

一 配置 先附上电脑配置图&#xff0c;如下&#xff1a; 利用公司的办公电脑对配置进行升级改造完成。除了显卡和电源&#xff0c;其他硬件都是公司电脑原装。 二 显卡 有钱直接上 RTX4090&#xff0c;也不能复用公司的电脑&#xff0c;其他配置跟不上。 进行深度学习&…...

python爬虫之selenium4使用(万字讲解)

文章目录 一、前言二、selenium的介绍1、优点&#xff1a;2、缺点&#xff1a; 三、selenium环境搭建1、安装python模块2、selenium4新特性3、安装驱动WebDriver驱动选择驱动安装和测试 基础操作1、属性和方法2、单个元素定位通过id定位通过class_name定位一个元素通过xpath定位…...

【ARM 嵌入式 C 头文件系列 22 -- 头文件 stdint.h 介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 C 头文件 stdint.h定长整数类型最小宽度整数类型最快最小宽度整数类型整数指针类型最大整数类型 C 头文件 stdint.h 在 C 语言中&#xff0c;头文件 <stdint.h> 是 C99 标准的一部分&#xff0c;旨在提供一组明确的整数类型…...

LabVIEW专栏三、探针和断点

探针和断点是LabVIEW调试的常用手段&#xff0c;该节以上一节的"测试耗时"为例 探针可以打在有线条的任何地方&#xff0c;打上后&#xff0c;经过这条线的所有最后一次的数值都会显示在探针窗口。断点可以打在程序框图的所有G代码对象&#xff0c;包括结构&#xf…...

Transformer模型-softmax的简明介绍

今天介绍transformer模型的softmax softmax的定义和目的&#xff1a; softmax&#xff1a;常用于神经网络的输出层&#xff0c;以将原始的输出值转化为概率分布&#xff0c;从而使得每个类别的概率值在0到1之间&#xff0c;并且所有类别的概率之和为1。这使得Softmax函数特别适…...

记录一下做工厂的打印pdf程序

功能&#xff1a;在网页点击按钮调起本地的打印程序 本人想到的就是直接调起方式&#xff0c;网上大佬们说用注册表的形式来进行。 后面想到一种&#xff0c;在电脑开机时就开启&#xff0c;并在后台运行&#xff0c;等到有人去网页里面进行触发&#xff0c;这时候就有个问题&a…...

Linux网络编程一(协议、TCP协议、UDP、socket编程、TCP服务器端及客户端)

文章目录 协议1、分层模型结构2、网络应用程序设计模式3、ARP协议4、IP协议5、UDP协议6、TCP协议 Socket编程1、网络套接字(socket)2、网络字节序3、IP地址转换4、一系列函数5、TCP通信流程分析 第二次更新&#xff0c;自己再重新梳理一遍… 协议 协议&#xff1a;指一组规则&…...

Python读取Excel根据每行信息生成一个PDF——并自定义添加文本,可用于制作准考证

文章目录 有点小bug的:最终代码(无换行):有换行最终代码无bug根据Excel自动生成PDF,目录结构如上 有点小bug的: # coding=utf-8 import pandas as pd from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter from reportlab.pdfbase import pdf…...

http: server gave HTTP response to HTTPS client 分析一下这个问题如何解决中文告诉我详细的解决方案

这个错误信息表明 Docker 客户端在尝试通过 HTTPS 协议连接到 Docker 仓库时&#xff0c;但是服务器却返回了一个 HTTP 响应。这通常意味着 Docker 仓库没有正确配置为使用 HTTPS&#xff0c;或者客户端没有正确配置以信任仓库的 SSL 证书。以下是几种可能的解决方案&#xff1…...

Flume学习笔记

视频地址:https://www.bilibili.com/video/BV1wf4y1G7EQ/ 定义 Flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。 Flume高最要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS。 官网:https://flume.apache.org/releases/content/1.9.0/…...

数据库系统概论(超详解!!!) 第三节 关系数据库标准语言SQL(Ⅳ)

1.集合查询 集合操作的种类 并操作UNION 交操作INTERSECT 差操作EXCEPT 参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同 查询计算机科学系的学生及年龄不大于19岁的学生。SELECT *FROM StudentWHERE Sdept CSUNIONSELECT *FROM StudentWHERE Sage&l…...

与谷歌“分家”两年后,SandboxAQ推出统一加密管理平台

3月27日&#xff0c;SandboxAQ宣布其AQtive Guard平台现已全面可用&#xff08;GA&#xff09;&#xff0c;适用于所有行业&#xff0c;以防范人工智能驱动和量子攻击的威胁。前者是在两年前3月从谷歌母公司Alphabet分拆出来的初创公司&#xff0c;并在当时获得了“九位数”的融…...

【卫星家族】 | 高分六号卫星影像及获取

1. 卫星简介 高分六号卫星&#xff08;GF-6&#xff09;于2018年6月2日在酒泉卫星发射中心成功发射&#xff0c;是高分专项中的一颗低轨光学遥感卫星&#xff0c;也是我国首颗精准农业观测的高分卫星&#xff0c;具有高分辨率、宽覆盖、高质量成像、高效能成像、国产化率高等特…...

XML与Xpath

XML与Xpath XML是一种具有某种层次结构的文件&#xff0c;Xpath则是解析这种文件的工具 接下来将会解释XML文件的结构和Xpath的基本使用&#xff0c;并且用Java语言进行操作展示。 XML结构 XML&#xff08;可扩展标记语言&#xff09;文件具有一种层次结构&#xff0c;由标签…...

【c++20】CPP-20-STL-Cookbook 学习笔记

Cpp20-STL-Cookbook-src简单的阅读笔记。c++20更好用了,比如STL 包含了一些这样的辅助函数,比如 make_pair() 和make_tuple() 等。 这些代码现在已经过时了,但是为了与旧代码兼容,会保留这些代码。比如 可以声明是一个std的string:Sum s1 {1u, 2.0, 3, 4.0f }?...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...