网络编程篇: HTTPS协议

news2024/12/25 14:43:29

一.前置知识

早期很多公司刚起步的时候,使用的应用层协议都是HTTP,而HTTP无论是用GET方法还是POST方法传参,都是没有经过任何加密的,因此早期很多的信息都是可以通过抓包工具抓到的。        为了解决这个问题,于是出现了HTTPS协议,HTTPS实际就是在应用层和传输层协议之间加了一层ssl加密解密层,这层加密层本身也是属于应用层的,它会对要进行网络通信的数据加密。HTTPS在交付数据时先把数据交给加密层,由加密层对数据加密后再交给传输层。                      当然,通信双方使用的应用层协议必须是一样的,因此对端的应用层也必须使用HTTPS,当对端的传输层收到数据后,会先将数据交给加密解密层,由加密解密层对数据进行解密后再将数据交给应用层。

二. 对称加密和非对称加密 

明文是什么?密文是什么?密钥又是什么?

明文是为经加密层加密过的数据,密文是经加密解密层用密钥加密过的数据,密钥就是用于加密和解密数据的东西。密钥可以是一串数字、字母或符号的组合,也可以是一个数学函数或算法。 举个例子:主机A想给主机B发送 7 这个数字,双方约定对要发送的数据 ^ 5, 7^5=2,2就是密文,^5就是密钥。

对称加密:加密和解密用的都是同一个密钥。                                                                                特点:对称加密因为密钥是公开的,所以不安全但是正因为只有一个密钥(公钥)所以计算速度快。  非对称加密:加密和解密是用的不同的密钥。特点:相较于对称加密更加的安全,加密用公钥,解密用私钥。只有私钥才能解密经对应的公钥加密过的数据。 

三. HTTPS的工作流程及其周边概念

什么是数据指针(数据摘要)?                                                         

将正文数据经hash函数进行运算,生成一串固定长度的数字就是数据摘要,常见的加密算法MD5,生成的固定长度数字具有唯一性,如果修改了正文数据,则这串数字会重新生成。HTTP的Session生成的ID就是使用这种方法。                                                                                               

数据指纹(数据摘要)的应用场景? 

秒传,在上传数据在百度网盘时,有几率会发生秒传的例子,数据直接上传好了,这是因为在数据要上传到百度网盘时,百度网盘服务端会对上传到数据进行生成数据摘要,然后去自己的库中看看有没有数据摘要是一致的数据,如果有就不用上传了,创建一个软链接就可以了。

CA证书

CA 证书,也叫数字证书,是由权威的证书颁发机构签发的电子文档,用于在网络通信中验证身份并建立加密连接。

  1. 公钥:用于加密数据或验证数字签名,CA 的公钥。
  2. 持有者信息:包括证书所有者的名称、组织单位等信息。
  3. 证书颁发机构的信息:包括 CA 的名称、数字签名等。
  4. 有效期:证书的有效期,包括开始日期和结束日期。
  5. 证书序列号:证书的唯一标识符。
  6. 数字签名:由 CA 对证书内容进行的数字签名,用于确保证书的完整性和真实性。

 

数据签名

将用户提交的数据经hash算法形成数据指纹,再用CA机构的私钥加密就生成了数据签名。

经多年发展,HTTPS最终选用了非对称加密+对称加密+CA证书认证的工作方式。                           

 上图很清晰的说明了HTTPS的验证过程:                                                                                         1.服务端要先向CA机构申请CA证书,要填写申请人,域名,公钥等信息后,会生成一个.csr文件,这个文件内的内容最终会加到CA证书上。将scr文将提交给CA机构。                                         2. CA机构根据发来的csr文件生成对应的CA证书,会生成两个东西,一个是CA证书,一个私钥。生成的私钥是属于证书颁发机构(CA)自身的私钥。这个私钥用于对由该 CA 签发的数字证书进行生成数字签名。                                                                                                                               3.CA机构颁发CA证书给服务端。                                                                                                       4.服务端在握手的开始阶段,会向客户端发送自己的数字证书,其中包含了服务端的公钥。           5.客户端收到服务端的证书后,会验证证书的有效性。这包括检查证书链是否有效,是否由受信任的 CA 签发等。如果证书验证通过,客户端生成一个随机的对称密钥,用于加密和解密后续通信的数据。客户端使用服务端证书中的公钥,对生成的对称密钥进行加密,并将加密后的密钥发送给服务端。                                                                                                                                                 6.服务端收到客户端发送的加密的对称密钥后,使用自己的私钥进行解密,从而获取客户端生成的对称密钥。至此,客户端和服务端都具有相同的对称密钥。这个对称密钥将用于加密和解密后续的通信数据。

客户端怎么验证CA证书是否有效?

 CA证书上由数据签名,用服务端的公钥对数据签名进行解密就能得到一个数据指纹(数据摘要),用hash算法对CA证书正文内容作计算,得到一个数据指纹(数据摘要),两个数据摘要做对比,如果一致就说明CA证书有效。

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

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

相关文章

创建github个人博客

文章目录 安装Hexo安装git安装Node.js安装 Hexo 安装Hexo 参考官方文档:https://hexo.io/zh-cn/docs/ Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的…

k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案【建议收藏】

目录 一、k8s环境配置 1.安装gpu-operator 2. 安装 rdma-shared-plugin 3. 安装volcano调度器 4. 创建research rbac认证 二、宿主机环境配置 1. 安装docker 客户端 2. 创建系统用户 3. 修改docker /etc/docker/daemon.json 文件如下 4. 修改系统 /etc/subuid 和subgi…

一文带你全面了解教师资格证

文章目录 前言一、什么是教师资格证?二、教师资格证分类三、教师资格证含金量四、就业方向五、如何获取教师资格证(一)取证流程(二)报名条件 & 考试科目(三)**题型分值**(四&…

自动驾驶ADAS

1 ToF摄像头分类 1.1 ToF原理 类似雷达测距,生成3D点云,或者叫3D贴图。ToF相机的分辨率一般在3万像素左右。ToF距离计算公式如图所示。 Figure 1-1 ToF距离计算公式 D:距离 c:光速 PHI:相位差 fmod:调制频率…

解决node: bad option: -V

出现这个问题是由于我们的不当操作造成的,v是需要小写的,看下图 node --version node -v

KubeSphere 在互联网电商行业的应用实践

来自社区用户(SRE运维手记)投稿 背景 在云原生的时代背景下,Kubernetes 已经成为了主流选择。然而,Kubernetes 的原生操作复杂性和学习曲线较高,往往让很多团队在使用和管理上遇到挑战。因此,市面上出现了…

轮播图的制作大全

例如该样式: 1.Vue的方法(可实现自动轮播和左右按钮和下方原点按钮轮播) <div id="app"><div class="a" ref="b" @mouseenter="MouseFun(c)" @mouseleave="MouseFun(d)">//1.图片显示盒子<div class=&qu…

F5《企业DNS建设白皮书》中的DNS解析服务器最佳实践

在这个数字化转型加速的时代&#xff0c;DNS&#xff08;域名系统&#xff09;的重要性不言而喻。每一次重大事件都凸显了DNS的可靠性和安全性问题。对企业而言&#xff0c;它不仅关系到业务连续性&#xff0c;更是提供永续数字服务的关键。本文根据F5公司发布的《企业DNS建设白…

一款强大的上位机模拟通讯工具----HslCommunicationDemo

目录 引言 工具概述 官网下载链接 安装步骤 使用教程 引言 在工业自动化和机器人控制领域&#xff0c;上位机模拟通讯工具是工程师和开发者日常工作中不可或缺的一部分。这些工具不仅能帮助我们验证设备间的通信状态&#xff0c;还能在设备调试和集成过程中提供极大的便利。…

Jenkins+K8s实现持续集成(三)

接上面一篇JenkinsK8s实现持续集成&#xff08;二&#xff09;&#xff0c;K8s创建秘钥。 看secret kubectl get secret 删除secret kubectl delete secret hello-secret -n train 创建secret kubectl create secret docker-registry hello-secret --docker-server镜像仓库…

【日常记录】【JS】优雅检测用户是否在指定元素的外部点击

文章目录 1、界面基本布局2、代码实现3、参考链接 1、界面基本布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

Qt案例-ApplicationExamples-Calqlatr

项目 一个Qt Quick应用程序设计的横向和纵向设备&#xff0c;使用自定义组件&#xff0c;响应式布局和JavaScript的应用程序逻辑。 项目路径&#xff1a; Qt\Examples\Qt-6.7.1\demos 环境&#xff1a;Qt6.7.1 MSVC 2019 64位 项目目录&#xff1a; calqlatr--CMakeList.txt…

网工内推 | 深圳网工,国企,最高20k,六险一金,NA以上认证

01 沛顿科技&#xff08;深圳&#xff09;有限公司 &#x1f537;招聘岗位&#xff1a;网络工程师 &#x1f537;岗位职责&#xff1a; 1、负责网络设备管理及维护&#xff0c;确保网络系统的稳定运行&#xff1b; 2、负责有效规划及实施网络布线系统&#xff1b; 3、负责服务…

学习C++第三天——对引用的深入了解

引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间。 一个变量可以有多个引用&#xff1a; int main() {//一个变量可以有多个引用int a 10;int& b …

ubuntu的不同python版本的pip安装及管理

ubuntu的不同python版本的pip安装及管理_ubuntu 安装两个pip-CSDN博客https://blog.csdn.net/qq_32277533/article/details/106770850

老板舍不得买库存管理软件❓一招解决

在当今快节奏的商业环境中&#xff0c;仓库管理是企业运作中不可或缺的一环。对于许多中小型企业而言&#xff0c;简易且高效的库存管理系统尤为重要。搭贝简易库存管理系统针对仓库的出入库进行有效管理&#xff0c;帮助企业实现库存的透明化和流程的自动化。 客户的痛点 1. …

Java面试八股之Mybatis可以映射到枚举类吗

Mybatis可以映射到枚举类吗 Mybatis 可以映射到 Java 的枚举类型。默认情况下&#xff0c;Mybatis 会使用枚举类型的名称来进行映射。例如&#xff0c;如果你有一个如下的枚举类型&#xff1a; public enum UserStatus { ACTIVE, INACTIVE } Mybatis 会将数据库中的字符串值…

【Linux】进程间通信_4

文章目录 七、进程间通信1. 进程间通信分类systeam V共享内存消息队列信号量 未完待续 七、进程间通信 1. 进程间通信分类 systeam V共享内存 进程间通信的本质就是让不同进程看到同一份资源。而systeam V是通过让不同的进程经过页表映射到同一块内存空间&#xff08;操作系…

强化学习-RLHF-PPO入门

一、定义 强化学习微调分类RM模型 数据集格式训练流程Reward 模型训练流程(分类模型&#xff0c;积极为1&#xff0c;消极为0) AutoModelForSequenceClassificationReward 模型训练案例PPO模型训练流程PPO模型训练案例 二、实现 强化学习微调分类 RLHF:基于人类反馈对语言模型…

深度学习 —— 1.单一神经元

深度学习初级课程 1.单一神经元2.深度神经网络3.随机梯度下降法4.过拟合和欠拟合5.剪枝、批量标准化6.二分类 前言 本套课程仍为 kaggle 课程《Intro to Deep Learning》&#xff0c;仍按之前《机器学习》系列课程模式进行。前一系列《Keras入门教程》内容&#xff0c;与本系列…