HTTPS的加密流程

2023-09-13 10:58:13

对称加密:只有一个密钥。

加密:明文+密钥=>密文;解码:密文+密钥=>明文。

非对称加密:有两个密钥,一个公钥,一个私钥。

加密:明文+公钥=>密文;解码:密文+私钥=>明文;或加密:明文+私钥=>密文;解码:密文+公钥=>明文。

HTTPS的基本工作过程:

加密:针对HTTP的各种header和body

1.使用对称密钥,来保证业务数据的安全:

客户端:客户端拿着密钥针对要发的数据进行加密,把密文通过网络,传输给服务器。

服务器:拿着密钥,进行解密,得到传送的信息。

        在这种情况下黑客如果攻击客户端与服务器之间的一个路由器不会得到密钥,则无法获得传送的信息,但一个服务器对应多个客户端,如果每个客户端用一个密钥,则黑客可以通过自己申请一个客户端来拿到密钥。,所以,每个客户端的密钥都不相同。

       此时可以让每个客户端在连接到服务器时自己生成一个密钥,让每个客户端各自生成各自的,互不相关,从而实现每个客户端的密钥都不相同。但是客户端如何让服务器知道密钥?这是对称加密就走不通啦!可以引入非对称密钥

2.引入非对称加密,来安全的传输对称密钥:

在上述过程中黑客没有拿到对称密钥key,此时后续的传输就是安全的。

3.这个过程也不绝对安全,黑客可以使用中间人攻击拿到对称密钥:

4.引入证书,使客户端能够验证公钥是否合法:

       由权威机构(权威的颁发证书的机构没有太多,系统内部会内置一批)颁发证书,颁发证书前要提交一些内容:比如公钥,证书里有一个签名,在权威机构颁发证书时同时计算的,这个签名同时被证书的颁发机构使用他自己的私钥进行加密,由于是系统内置的权威机构,客户端的操作系统会自带权威机构的公钥,用于验证签名是否是伪造的。

        客户端拿到加密的签名之后,就会拿着权威机构给的公钥,来解密,得到校验和sum1,客户端再按照同样的算法,再结合证书的各个属性,计算一遍校验和,得到sum2。如果sum1和sum2相同则各个属性没被修改,若不同则被修改过。

       

更多推荐

MOS管的二级效应及其对伏安特性的影响

前言相信MOS管的理想伏安特性相信各位都在模拟电路中学过,但实际上,该理想图仅是实际图的一个近似,忽略几乎所以的二级效应。因此,为了深入理解非理想的MOS的伏安特性,了解最重要的几个二级效应是很有必要的。本文主要涉及各个参数之间的影响关系,并不涉及具体公式计算,仅做了解。速度饱和与迁移率降低效应载流子的漂移速率以及因此

Blazor前后端框架Known-V1.2.15

V1.2.15Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。Gitee:https://gitee.com/known/KnownGithub:https://github.com/known/Known概述基于C#和Blazor实现的快速开发框架,前后端分离,开

SpringMVC异常处理

1概述SpringMVC框架处理异常的常用方式:使用@ExceptionHandler注解处理异常。2@ExceptionHandler注解和用@ControllerAdvice注解2.1@ExceptionHandler注解使用注解@ExceptionHandler可以将一个方法指定为异常处理方法。该注解只有一个可选

C#__使用流读取和写入数据的简单用法

使用流处理数据的优势:可以一次性搬运数据量大的文件,把数据当做水,一点一点搬运。数据的传输方向:从外部源传输到程序(读取流);从程序传输到外部源(读入流)外部源:文件、网络数据、内存区域、命名管道读写内存:System.IO.MemorySystem处理网络数据:System.Net.Sockets.NetworkSt

让Pegasus天马座开发板用上OLED屏

继上篇《让Pegasus天马座开发板吃上STM8S标准库》移植完标准库之后,于是我又想为天马座开发板添加一块屏幕。终于在我的零件箱底下找到了沉入箱底多年的0.96OLED屏幕。屏幕介绍这个是128x64像素的屏幕模块,其使用的SSD1306的驱动IC。而目前该模组,只支持3/4线SPI及I2C通信方式。硬件连接我将天马

centos7如何释放磁盘空间?

centos7磁盘满了,但是找不到大的文件,原因是没有释放磁盘空间小白教程,一看就会,一做就成。1.原因当centos系统下启动多个服务且没有一定的清理机制时(比如日志),系统磁盘空间很容易就被占满,但是有时候删除了文件却发现系统磁盘空间未释放,可能原因是忽略了有应用一直在往其中写数据,直接删除某文件无法释放磁盘空间2

Spring SpEL 表达式语言

一、文本表达式文本表达式支持字符串、数字(正数、实数及十六进制数)、布尔类型及null。其中的字符表达式可使用单引号来表示,形如:'Deniro'。如果表达式中包含单引号或者双引号字符,那么可以使用转义字符\。数字支持负数、小数、科学记数法、八进制数和十六进制数。默认情况下,实数使用Double.parseDouble

IO口电路种类

文章目录参考1.高速振荡电路(时钟IO引脚)2.与GPIO功能共享的低速振荡电路(子时钟IO)3.CMOS滞后输入引脚4.电源输入保护电路5.A/D转换器ref+(AVRH)带保护电路的电源输入端6.CMOS电平输出7.CMOS电平输出,带有模拟输入8.CMOS电平输出,带有模拟输入(上面是滞后,这个是自动)9.没有模

编译opencv-3.4.5 [交叉编译]

在unbuntu20.04环境下编译opencv3.4.5,cmake版本:3.27.4gcc版本:11.4.0g++版本:11.4.0在此环境下编译opencv4.5.4正常。1.编译时遇到的问题(1)Builttargetlibprotobufmake:***[Makefile:163:all]错误2make时用s

使用pdfplumber提取pdf中的文字

一、安装pdfplumberpdfplumber是一个Python库,必须通过pip安装才能在Python代码中进行使用。使用以下命令在Python中安装pdfplumber。pipinstallpdfplumber二、用pdfplumber打开PDF文档在Python中使用pdfplumber打开PDF文档的方法非常

如何使用极狐GitLab 支持 ISO 27001 合规

目录组织控制技术控制了解更多本文来源:about.gitlab.com作者:JosephLongo译者:武让极狐GitLab高级解决方案架构师作为一体化平台,通过极狐GitLab可以很容易实现DevSecOps全生命周期管理。极狐GitLab使开发人员能够更快地构建更好的软件应用。但是,它的能力还不仅限于DevSecO

热文推荐