HTTPS 加密简析

news2024/11/25 20:17:33

1 前言

        HTTPS采用的是对称加密和非对称加密的混合加密方法。

        密码学知识可以查看我的这篇博客

CISSP考试要求里的“应用密码学”内容辅助记忆趣味串讲_晓翔仔的博客-CSDN博客

2.HTTPS加密过程

        https在建立链接时是非对称加密,建立链接后是对称加密。

 

步骤1

客户端先向服务端发送加密通信(https)请求,这次请求中包括:

  • SSL/TSL版本号
  • 加密套件,也就是客户端支持的加密算法列表
  • 产生一个随机数,我们叫他为第1随机数
  • 有一个Client Hello字符串
  • 步骤2

步骤2

服务器收到请求后,向客户端发出响应:

  • 确认SSL/TSL版本号,如果客户端不支持,那么就关闭通信
  • 确认的加密算法列表
  • 生成一个随机数,我们叫第2随机数

步骤3

        服务器再向客户端发送数字证书,服务器会把自己的公钥注册到CA(第三方证书机构),然后CA拿自己的私钥对服务器的公钥进行处理并颁发数字证书。                

步骤4

        服务器将公钥发送给客户端

步骤5

        服务器发送Hello Done,表示发送完毕

步骤6

        客户端收到服务端一系列响应后,确认数字证书和公钥,没有问题后向服务端发送:

  • 生成一个随机数,我们叫第3随机数或者预主密钥,此预主密钥会通过公钥进行加密
  • 客户端握手结束通知,表示客户端的握手结束

步骤7

        服务端收到客户端数据后,使用私钥对加密后的预主密钥进行解密,没有其他人知道预主密钥,因为它加密了,除非服务器私钥泄漏。然后服务端通过第一、二、预主密钥计算出会话密钥。客户端也计算出了会话密钥。

步骤8

        服务端向客户端发送:

  • 加密通信算法改变通知,以后通过会话密钥通信
  • 服务端握手结束

        到此为止,SSL/TSL握手结束,在此之后都会通过会话密钥来进行加密和解密,也就是对称加密。

3. 关于证书篡改

假设我们的证书只是一个简单的字符串 hello, 对这个字符串计算hash值
结果为:

BC4B2A76B9719D91


如果 hello 中有任意的字符被篡改了, 比如变成了 hella, 那么计算的 hash 值就会变化很大
结果为:

BDBD6F9CF51F2FD8

但如果黑客把 hello 篡改了, 同时也把哈希值重新计算下, 客户端就无法分辨了。

所以被传输的哈希值不能传输明文, 需要传输密文;
(1)这个哈希值在服务器端通过另外一个私钥加密(这个私钥是申请证书的时候,证书发布机构给服务器的, 不是客户端和服务器传输对称密钥的私钥);
(2) 然后客户端通过操作系统里已经存的了的证书发布机构的公钥进行解密,还原出原始的哈希值, 再进行校验;
以上内容可以用下图直观表示

4 最后

        我认为,HTTPS最大的有点在于可以有效的确保服务器的真实性和传输数据的保密性。

参考资料

硬核!30 张图解 HTTP 常见的面试题

HTTPS加密过程详解_兴涛的博客-CSDN博客

HTTPS 加密过程详解_https加密过程_编程小菜鸟~的博客-CSDN博客

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

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

相关文章

初识掌控板2.0、官方拓展板和配套编程软件mpython

不是广告!!不是广告!! 一、掌控板2.0概览 掌控板又名掌上联网计算机,是一款为青少年学习Python编程和创意制造,特别是物联网应用而设计的开源硬件。内置microPython开源嵌入式Python运行环境,可…

怎么将静图变动图?用这个网站就够了

在使用聊天工具聊天时,大家都喜欢用一些动态的表情包,这种动态表情包就是gif格式图片。因为其生动丰富的画面能够通过一张图片表达多种信息。那么,如何生成gif图片呢?一、什么工具能够制作gif动画? GIF中文网作为一款…

allwinner boot0启动

目录 路径:u-boot-2018/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds 路径:u-boot-2018/arch/arm/cpu/armv7/start.S 路径:u-boot-2018/arch/arm/lib/crt0.S 路径:u-boot-2014.07\common\board_f.c 路径:u-boot-2014.…

领英如何不让对方查看自己的好友,防止他人添加自己客户

那如何防止好友加自己的好友呢?其实领英是可以设置谁能查看到自己好友的,甚至不让所有人查看。 领英是一个关系性的职业社交平台,最大的特点就是关系性。彼此有某种关系的人或在3度内的人都可以查看对方的详细资料,甚至可添加对方…

Redis 如何配置读写分离架构(主从复制)?

文章目录Redis 如何配置读写分离架构(主从复制)?什么是 Redis 主从复制?如何配置主从复制架构?配置环境安装 Redis 步骤通过命令行配置从节点通过配置文件配置从节点Redis 主从复制优点Redis 主从复制缺点Redis 如何配…

第十四届蓝桥杯单片机省赛真题(巨简代码+超级详解)

文章目录前言一、陷阱分析二、代码相关定义、声明1.变量声明2.函数声明三、主要函数1.函数初始化 :关闭蜂鸣器、定时器初始化、设置时间、消除85℃影响、开启总中断2.按键扫描:长按松开清除数据,短按切换界面,加减参数3.数据采集与…

视频提取gif如何操作?教你用gif制作工具快速截取gif

从视频中提取gif动画就是将电影、电视剧中的某一段视频提取出来做成gif格式的动态图片。那么,如何使用电脑或是手机来将视频转换成gif动图呢? 一、使用什么工具能够完成视频转gif制作呢? 通过使用GIF中文网的视频转gif(https://…

S型加减速速度给定功能块(SCL+梯形图)

S型加减速详细算法公式请参看下面博客文章,这里不再赘述: 博途PLC1200/1500PLC S型速度曲线变频器控制应用(SCL完整源代码)_RXXW_Dor的博客-CSDN博客PLC运动控制基础系列之梯形速度曲线,可以参看下面这篇博客:PLC运动控制基础系列之梯形速度曲线_RXXW_Dor的博客-CSDN博客运…

前段开发:配置VSCode像IDEA一样调试VUE项目

如果不配置VSCode调试,那么我们的前段项目一般都是在浏览器中的开发者工具中调试,这样对于使用习惯了IDEA开发调试的人特别不习惯,这几天个人研究了下VSCode中的代码调试功能,做以下记录: 1、使用插件调试&#xff1a…

应用DAP-seq技术鉴定百脉根中一个NAC转录因子在全基因上的靶基因,揭示硝酸盐诱导根瘤衰老的新机制

豆科植物通过与根瘤菌共生,形成能够固氮的根瘤。硝酸盐能够影响根瘤共生的过程,适宜浓度的硝酸盐促进结瘤固氮,而高浓度的硝酸盐抑制菌根共生,并且会促进根瘤衰老。NLP (NIN-Like Protein)转录因子调控硝酸盐信号转导,…

CSS实现三角形的四种方法

方法一&#xff1a;使用 border (常见) 【解释】不设置宽高&#xff0c;用边框大小控制三角型大小 【分解步骤】 设置一个div不设宽高 【示例】 <style>#triangle{width: 0;height: 0;border: 100px solid;border-color: orangered skyblue gold yellowgreen;} </s…

3.8——友元

类的主要特点之一是信息隐藏和封装&#xff0c;即类的私有成员和保护成员只能在定义的范围内使用&#xff0c;也就是说私有成员和保护成员只能通过类的成员函数来访问。但是&#xff0c;有时候我们在类外也需要访问私有成员数据或保护成员数据怎么办。这时我们就要通过友元函数…

gru 串联LLm

单纯是为了降低大LLM 设计的结构 当前如果transformers 可以 输出一个状态也是可以的 这样串联的好处是每次运行知识一个小模型的计算量 时间换空间的概念 可以训练100个模型而后根据需要进行微调 从100 个中选择一个预测比较接近的进行微调预测 预测后继续进行从100中选择 而后…

Linux内核之网络协议栈以及套接字sk_buff分析

网络协议栈以及套接字sk_buff分析一、Linux 内核网络协议栈构架二、网络协议栈常见的数据结构2.1、TCP/IP 参考模型及 ISO/OSI 参考模型2.2、套接字 sk_buff 分析2.3、套接字缓冲区管理数据2.4、Linux 内核提供套接字缓冲区标准 API 函数2.5、使用一个表头来实现套接字缓冲区的…

java StringBuffer和StringBuilder

目录一、概述二、StringBuffer和StringBuilder区别三、StringBuffer使用一、概述 String类是字符串常量&#xff0c;是不可更改的常量。而StringBuffer是字符串变量&#xff0c;它的对象是可以扩充和修改的。 StringBuffer是使用缓冲区的&#xff0c;本身也是操作字符串的&…

工作2年,连接口自动化测试用例怎么设计都不知道?你好意思吗

目录 前言 接口信息来源 单接口测试 场景逻辑验证 异常测试 尽量自动化 独立性 可重复性 合理的断言 公共参数 数据集合 数据模板 前言 说到自动化测试&#xff0c;或者说接口自动化测试&#xff0c;多数人的第一反应是该用什么工具&#xff0c;比如&#xff1a;Py…

FTP-----局域网内部传输文件(1)

在日常工作中&#xff0c;如果需要跨设备的传输文件&#xff0c;您需要借助USB数据线或者借助应用实现无线互联&#xff0c;将所需文件传输到对应设备&#xff0c;这一来一去&#xff0c;花费的时间与精力变多了&#xff0c;那么&#xff0c;怎么实现不使用第三方软件来实现跨设…

【MySQL】表的操作和数据类型

前言 大家好呀~&#xff0c;今天继续我们的mysql学习&#xff01; 本篇博客主要记录Mysql创建完数据库后&#xff0c;要在数据库中创建表&#xff0c;那么首先需要定义表的结构约束&#xff08;SQL-DDL&#xff09;等&#xff0c;这篇主要介绍基础定义表的结构&#xff08;创建…

学习React与Next.js过程中的疑惑

学习React与Next.js过程中的疑惑1、为什么React中函数作为props的时候&#xff0c;会出现无限调用的情况&#xff0c;而把函数放在箭头函数中就可以解决呢&#xff1f;2、next.js与node.js有什么区别&#xff1f;3、什么是快速刷新&#xff1f;4、Hooks出现的原因是什么&#x…

2020年11月信息系统项目管理师真题(综合+案例)

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1、&#xff08; &#xff09;使系统的描述及信息模型的表示与客观实体相对应&#xff0c;符合人们的思维习惯&#xff0c;有利于系统开发过程中用户与开发人员的…