HTTPS单双向认证流程详解与联想

HTTPS单向认证

HTTPS在单向认证传输的过程中会涉及到三个密钥:

服务端的公钥和私钥,用来进行非对称加密交换密钥

客户端生成的随机密钥,用来进行对称加密传输数据

认证过程

1.客户端向服务器发起HTTPS请求,连接到服务器的443端口

2.服务器将自己的CA证书发送给客户端,证书中包含如下信息:

公钥(密钥对中的公钥发送给客户端,而私钥只有服务端知道)

持有者信息

证书认证机构(CA)的信息

CA 对这份文件的数字签名及使用的算法

证书有效期

还有一些其他额外信息

3.客户端收到服务器端的CA证书之后,会对证书进行检查,验证其合法性(注①),如果证书合法,客户端随机产生一个密钥,然后用证书中的公钥加密这个随机密钥,发送给服务端(这里交换密钥的过程,是使用公私钥对进行非对称加密传输

4.服务器接收到客户端发来的加密密钥后,用自己的私钥进行非对称解密获得客户端密钥,然后用客户端密钥对数据进行对称加密进行传输

5.客户端收到服务端发送来的加密数据,用客户端密钥对其进行对称解密,得到服务器发送的数据,整个HTTPS传输完成(交换密钥之后的传输过程为对称加密传输

借网上的图:

HTTPS双向认证

HTTPS在单向认证传输的过程中会涉及到三个密钥:

服务端的公钥和私钥,用来进行非对称加密交换密钥

客户端的公钥和私钥,用来进行非对称加密协商加密方式

客户端生成的随机密钥,用来进行对称加密传输数据

认证过程

1.客户端向服务器发起HTTPS请求,连接到服务器的443端口

2.服务器将自己的CA证书发送给客户端,证书中包含信息与单项认证一致

3.客户端验证CA证书合法性,获得服务端公钥

4.客户端将自己的客户端证书发送给服务端,证书中包含客户端公钥

5.服务端接收到客户端证书,获得客户端公钥

6.客户端发送自己支持的对称加密方案给服务端,让服务端从中选择

7.服务端选择一个加密方案后,将该加密方案使用客户端公钥加密后返回给客户端

8.客户端接收到加密后的加密方案后,使用客户端私钥解密,获得服务端选择的加密方案

9.客户端用服务端公钥加密客户端随机产生的一个密钥,发送给服务端

10.服务端接收后,使用服务端私钥解密加密后的密钥,协商交换完成

11.双方使用客户端产生的密钥进行数据加密传输(对称加密

借网上的图:

双向认证和单项认证的区别

双向认证中的以下几步:

4.客户端将自己的客户端证书发送给服务端,证书中包含客户端公钥

5.服务端接收到客户端证书,获得客户端公钥

6.客户端发送自己支持的对称加密方案给服务端,让服务端从中选择

7.服务端选择一个加密方案后,将该加密方案使用客户端公钥加密后返回给客户端

8.客户端接收到加密后的加密方案后,使用客户端私钥解密,获得服务端选择的加密方案

这一部分是服务端验证客户端证书,使用客户端公钥加密选择的加密方案发送给客户端,这一过程和单项认证的流程一样,保证了所选择的加密方案是只能被客户端解开的,这一过程是协商加密方案的过程,其他认证过程与单向认证一致。

关于客户端验证服务端CA证书合法性

CA 机构

为了让服务端的公钥被大家信任,就产生了这样一种机构,Certificate Authority——证书认证机构,CA机构必须是具有极高可信度的,以保证签发的证书也是可信的

客户端验证CA证书合法性

客户端的证书管理目录中,会存在一些操作系统默认的受信任的根证书颁发机构,例如下图中这些:

客户端也可以自己添加一些机构进去,(例如使用BurpSuite进行抓包,就需要自己添加PortSwigger CA为受信任的跟证书颁发机构

这样在服务端向客户端返回证书之后,客户端可以根据服务端证书是否由受信任的根证书颁发机构颁发的证书来验证CA证书是否合法。

但并不是所有的证书都是由根证书颁发机构来颁发的,相反大多数证书是层级颁发的,其中验证流程是层级验证是否可信,以我个人博客的证书来举例:

证书颁发者是R3,但是我的证书管理目录中并没有这个机构,那么客户端会向上一层验证R3这个中间证书的颁发机构是否可信。

R3的颁发机构为ISRG Root X1,此时客户端在受信任的根证书颁发机构中可以找到这个机构,那么就可以认证此证书为可信证书。

以上就是客户端验证服务端CA证书是否可信的大致流程,相应的,当我设置浏览器上级代理为BurpSuite时,那么客户端(浏览器)认为BurpSuite就是服务端,认证的证书就会变成。

image-20220308135004883

而我已经将PortSwigger CA添加至我的受信任的根证书颁发机构目录中,所以浏览器也会认为证书是可信的,这也是为什么使用Burp抓包前需要先配置添加证书,然后BurpSuite再伪装成客户端与真正的服务端进行通讯,再将接收到的数据返回给真正的客户端,从而起到了代理的作用。

APP的HTTPS双向认证防止抓包

在app抓包中,使用了https双向认证的app,在验证服务端时,Burp可以伪造成服务端与app进行通讯,但是在Burp伪造成客户端时,服务端要求客户端提供客户端自己的CA证书,但是此时BurpSuite伪造的客户端CA证书服务端是不认的,因为app将证书内置在了app内部作为客户端证书,所以可以通过逆向app程序获得CA证书,再将app中的CA证书导入到Burp中即可来突破https双向认证防止抓包的限制

image-20220308140706188

总结

理解HTTPS协议的认证流程,可以增加对安全的理解,HTTPS认证的过程,核心思想与Kerberos协议的认证也是互通的,是具有相似性的。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

margin-left: auto;使元素靠右

摘要: 今天写样式遇到一个东西,就是需要表单居右显示的,但是作用了弹性布局,其他的都不行的,一开始使用了浮动,但是使用了浮动后盒子就不继承父盒子的宽度了,移动端还行,自动回到100…

vue3 调用本地exe

1、注册表注册 在注册表中直接按照图2注册数据;也可以按照图3注册表的文件创建文档,然后点击打开,将会将注册表写入window系统。 图2 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\F1] "URL:F1 Protocol Handler" &q…

股价飙升:AI PC大变革,联想的“联想时刻”正在缔造?

按照产业的传导逻辑,在颠覆式技术到来之时,当引发这场变革的最核心技术及产品真正进入了产品化、商业化阶段,此时直触需求端的终端厂商,其成长性估算将得到市场的重新预估。 眼下AI PC之于联想就是如此。 5月27日,联…

装机数台,依旧还会心念i5-12600KF的性能和性价比优势:

近几个月的时间中, 装机差不多4台电脑,由于工作需要,计划年中再增添一台。 目前市场上英特尔CPU促销非常火爆,第12代、第13代以及第14代的产品在年中有适当的优惠。 年中也是装机的旺季,各种相关配件也相对便宜一些。…

03 Prometheus+Grafana可视化配置

03 PrometheusGrafana可视化配置 大家好,我是秋意零。接上篇Prometheus入门安装教程 grafana官网下载安装包比较慢,如果没有魔法。可关注公众号【秋意零】回复101获取 Grafana官网下载:https://grafana.com/grafana/download 这里采用的二进制…

521源码-免费源码下载-免费学习网站教程-宝塔面板ssl网站证书到期后弹出无法续期错误提示

宝塔面板如果从老版本升级到8.10后,当点站证书过期续期时会弹出错误: 排查文件是找不到问题出在哪里,导致续期错误。 解决办法:通过摸索,最简单的就是删除站点,注意:只是删除,不是把…

关于Word目录的更新

左侧标题顺序如有调整,自动目录并不会同步更新,每次都要记得在正文目录左上角点击更新目录

js监听鼠标mousemove时如何判断鼠标左键中键右键状态

首先添加鼠标移动监听 document.addEventListener(mousemove,function(e){ console.log(e.button,e.buttons,e.which); }) 1.只判断左键中键右键其中一个按键状态 e.which0;左键中键右键都没按下 e.which1;左键按下 e.which2;中键&am…

代码随想录算法训练营第四十三天 | 343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 代码随想录 视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili 解题思路 1. dp[i]对i进行拆分,得到的最大的乘积为dp[i] 2.递推公式 一个是j * (i - j) 直接相…

PS系统教学02

多个图片同时进行打开 在素材库里面选中两张图片,直接拖进PS软件中,此时会显示其中一张。当按下回车键会显示另一张。 当图层过多,需要进行选择,其中某一张图片,按住Ctrl键,进行选择点击,可以移…

集合—Map子类(HashMap、HashTable、Properties)

一、HashMap HashMap是Map接口使用频率最高的实现类。 HashMap是以键值对(key-value)形式存储数据。 key不能重复,值可以重复,允许使用null作为键或值。 添加相同的key,新的value将会覆盖原有的value。 不能保证存取顺序一样。 HashMap没有实…

Linux搭建PHP下的RabbitMQ环境(php-amqp/rabbitmq-c/erlang)

本文演示环境 Red Hat 11.2.1-9gcc (GCC) 11.2.1 20220127OpenSSL v1.1.0PHP 7.1 安装erlang erlang和RabbitMQ有版本对应关系Erlang Version Requirements,需要选择正确的版本。 本文以erlang 26和RabbitMQ 3.13.2为例。 erlang下载地址 下载包上传服务器后&a…

Pytorch-Reduction Ops

文章目录 前言1.torch.argmax()2.torch.argmin()3.torch.amax()4.torch.amin()5.torch.all()6.torch.any()7.torch.max()8.torch.dist()9.torch.logsumexp()10.torch.mean()11.torch.norm()12.torch.nansum()13.torch.prod()14.torch.cumsum()15.torch.cumprod() 前言 1.torch.…

FastGPT + OneAPI 构建知识库

云端text-embedding模型 这个在前面的文章FastGPT私有化部署OneAPI配置大模型中其实已经说过,大概就是部署完成OneAPI后,分别新建令牌和渠道,并完成FastGPT的配置。 新建渠道 选择模型的类型并配置对应的词向量模型即可,这里我…

代理注册湖北武汉投资管理公司流程和条件

我公司代理注册湖北武汉投资管理公司,现在大家都知道全国的投资管理公司已经停批了,很多需要收购的老板都是通过收购现成的投资管理公司经营的,现在我告诉大家一个好消息,我们有渠道办理湖北武汉资产管理公司,详情致电…

【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(一)

文章目录 🚀Linux基础命令⭐1. 查看目录命令💥2. 切换目录👊3. 创建目录❤️4. 删除目录/文件🚲5. 修改目录/文件🌈6. 拷贝目录/文件 🚀Linux基础命令 ⭐1. 查看目录命令 在Linux中,查看目录的…

【九十七】【算法分析与设计】图论,迷宫,1207. 大臣的旅费,走出迷宫,石油采集,after与迷宫,逃离迷宫,3205. 最优配餐,路径之谜

1207. 大臣的旅费 - AcWing题库 很久以前,TT 王国空前繁荣。 为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,TT 国的大臣们经过思考,制定了一套优秀的修建方案,…

[oeasy]python019_ 如何在github仓库中进入目录_找到程序代码_找到代码

继续运行 🥋 回忆上次内容 上上次 真写了万行代码 这 万行代码 都是写在明面上的 这次 使用git命令 下载了 github上面的仓库 下载仓库 之后 又该 怎么办呢?🤔 进入目录 首先看看 目前 在哪个目录 pwd present working directory 当前目…

论文《Planning-oriented Autonomous Driving》详细解析

论文《Planning-oriented Autonomous Driving》详细解析 摘要 现代自动驾驶系统被描述为顺序执行的模块化任务,即感知、预测和规划。为了执行各种任务并实现高级别智能,当前的方法要么为每个任务部署独立的模型,要么设计带有独立头的多任务范…

【YOLOv10】使用yolov10训练自己的数据集/验证 /推理 /导出模型/ONNX模型的使用

YOLOv10: 实时端到端的目标检测。 性能 YOLOv10比最先进的YOLOv9延迟时间更低,测试结果可以与YOLOv9媲美,可能会成为YOLO系列模型部署的“新选择”。 目录 1 数据准备 2 配置文件 3 训练 4 验证 5 预测 6 导出模型 7 ONNX模型的使用 官方论文地址…