通俗易懂讲解,彻底弄懂 https 原理本质(五)https 的过程

news/2024/5/5 2:20:38/文章来源:https://blog.csdn.net/csdn_aiyang/article/details/129801225

一、数字证书的验证

        小花👧收到了小明👦的数字证书,首先要验证此数字证书是不是CA颁发的。

        因为我们电脑、手机的操作系统里面,都会内置CA机构的数字证书。

        所以,小花👧就可以对数字证书进行验证。

知识回顾

摘要:单向加密算法,比如md5对证书整个内容加密的结果就叫摘要,也叫做证书的指纹;

签名:小明用私钥🔑对摘要进行加密出来签字串,就叫做签名。

验签:用公钥对签名进行解密出来的摘要和原来的对比,就叫做验签。


数字证书的验证流程,如下:

  1. 小花👧用内置的CA的数字证书,得到CA的公钥。
  2. 小明👦的数字证书 M 。小花用小明的公钥对证书M里面的签名进行解密,得到摘要D1。
  3. 小花👧根据证书M的摘要算法md5对证书整个内容计算得到摘要D2。
  4. 小花👧对比摘要D2和D1 是否相等。是则说明此证书就是CA颁发的;否则说明此证书不是CA颁发的,是有风险的,不安全的。

        证书验证通过后,就说明此证书是CA颁发的。那么,小花就可以从数字证书中拿到小明的公钥了。因为小明在申请数字证书时,数字证书中所有者是小明,CA是会验证小明的身份的,所以数字证书中小明的公钥是真实的。

        至此,小明终于把公钥安全的传输给了小花了。

        这件事的成立 ,接下来我们的工作就好做多了,接下来,我们看一下具体的传输过程。


二、 完整的传输过程

        通过前面所有的关卡后,我们最后梳理一下完整的传输过程。

  1. 小明把写完的信,附加上摘要算法MD5, 以及通过MD5算出来的摘要;
  2. 小明用私钥,对摘要进行加密得到签名;
  3. 小明把摘要算法、摘要、签名都附加到信件上,连同数字证书一起发送给小花;
  4. 小花收到信后,首先用CA数字证书拿到CA公钥对小明的数字证书进行验证;
  5. 小花发现验证通过后,会从证书中拿到了小明的公钥;
  6. 小花有了小明的公钥,接下来就对信件内容进行验证;
  7. 小花用小明的公钥对信件的签名解密,得到信件摘要D1;
  8. 小花用摘要算法对信件运算,得到信件摘要D2;
  9. 小花对比 D1 是否等于D2;
  10. 如果不相等,说明信件被人篡改过,不安全;
  11. 如果相等,说明,信件内容没有被篡改过;
  12. 相等的情况,小花就拿到了信件的内容。

        以上所有的内容,是数字证书,加密解密,签名,验签的过程,还没有正式讲 https 的过程呢。


三、https 的过程

        我们先看一张图。

         我们以访问 www.helloworld.net 网站为例,讲解https的过程。

(1)网站申请证书阶段

  1. 网站向CA机构申请数字证书(需要提交一些材料,比如域名);
  2. CA向证书中写入摘要算法,域名,网站的公钥等重要信息;
  3. CA根据证书中写入的摘要算法,计算出证书的摘要;
  4. CA用自己的私钥对摘要进行加密,计算出签名;
  5. CA生成一张数字证书,颁发给了 www.helloworld.net;
  6. 网站的管理员,把证书放在自己的服务器上;

(2)浏览器验证证书阶段;

  1. 浏览器在地址栏中输入https://www.helloworld.net,并回车
  2. 服务器将数字证书发送给浏览器;
  3. 浏览器用操作系统内置的CA的数字证书,拿到CA的公钥;
  4. 浏览器用CA公钥对 www.helloworld.net 的数字证书进行验签;
  5. 具体就是,浏览器用CA公钥,对helloworld的数字证书中的签名进行解密,得到摘要D1;
  6. 浏览器根据helloworld数字证书中的摘要算法,计算出证书的摘要D2;
  7. 对比 D1和D2 是否相等。;
  8. 如果不相等,说明证书被掉包了;
  9. 如果相等,说明证书验证通过了;

(3)协商对称加密密钥阶段

  1. 浏览器验证数字证书通过以后;
  2. 浏览器拿到数字证书中的公钥,也就是 www.helloworld.net 网站的公钥;
  3. 浏览器就用网站的公钥对密钥S进行加密,加密以后的密文发送给服务器;
  4. 服务器收到密文后,用自己的私钥进行解密,得到密钥S;
  5. 此后浏览器,服务器双方就用密钥S进行对称加密的通信了;

至此,https过程结束。

        过程那么多,抓住几个关键的问题去理解会更简单。其实本质上还是两个人如何安全高效的进行通信。


四、总结

        最后,我们简单的总结一下。

question:小明和小花安全的通信,怎么做?

答:通过加密

question:通过哪种加密方式通信,更高效?

答:对称加密。因为,单向加密,没办法解密,不行。非对称加密,太慢,也不行。只有对称加密,速度快。

question:采用对称加密,密钥S 怎么安全传输?

答:小花使用小明的公钥,对密钥S进行加密,传给小明。小明用自己的私钥解密。

question:小明如何安全的把自己的公钥传输给小花?

答:使用数字证书。​具体就是小明向CA申请一个自己的数字证书,把自己的公钥放在证书中,小明再将数字证书发送给小花。

question:小花如何验证数字证书的真实性?

答:小花用操作系统内置的CA的数字证书,拿到CA的公钥,用CA的公钥,对数字证书进行验签

验签通过,说明数字证书是真的。


       系统文章,就写完了。解决的问题是双方通信如何采用安全高效的方式进行。

欢迎点赞关注。

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

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

相关文章

浏览器打印-window.print

打印方法 window.print()print() 方法用于打印当前窗口的内容, 默认情况下会将整个html页面 的内容转换为pdf > 支持在线预览打印或者导出pdf。 以下是打开百度页面 在控制台调用 window.print 方法 后弹出的弹框 ,在右侧可以选择 纵向/横向打印。 需要注意的是…

专业护眼灯什么牌子好?分享最专业护眼灯品牌排行

在日常生活中,照明灯具为人们提供了很多便利,但是对于长时间在灯光下用眼的学生跟办公族来说,容易导致用眼疲劳,甚至头晕等现象,所以现在普遍许多家庭都必备有护眼灯,能对眼睛起到缓解疲劳的作用&#xff0…

Java NIO学习之RandomAccessFile

文章目录一、 RandomAccessFile简介二、RandomAccessFile中的方法1. RandomAccessFile的构造函数2. 重要方法三、RandomAccessFile的使用一、 RandomAccessFile简介 RandomAccessFile既可以读取文件内容,也可以向文件输出数据。同时,RandomAccessFile支持…

3、DRF实战总结:基于类的视图APIView, GenericAPIView和GenericViewSet视图集(附源码)

前面介绍了什么是符合RESTful规范的API接口,以及使用了基于函数的视图(FBV)编写了对文章进行增删查改的API。在本篇文章将使用基于类的视图(Class-based View, CBV)重写之前的接口。 参考: 1、Django开发总结:Django MVT与MVC设计模式&…

使用EPPlus加载excel数据

环境 Unity:2021.3.6f1c1 EPPlus:5.8.14 net.3.5 准备 使用Nuget下载EPPlus,找到 net3.5中的EPPlus.dll文件,导入Unity的Plugins文件夹创建一个xlsx(excel)文件,测试内容如下图 . 表格内容解释 第一行解释第二行的内容, 第二行对应变量名称&#xff0…

Python采集商品数据信息,做数据可视化分析,又是对数据分析上心的一天

前言 环境使用 在开始之前,安装好我们的代码编辑器和环境是非常重要的 Python 3.8pycharm --> 编辑器jupyter notebook --> 数据分析编辑器 模块使用 requests >>> pip install requests 数据请求parsel >>> pip install parsel 数据解…

openKylin社区首届咨询委员会会议成功召开!

2023年3月25日,openKylin社区首届咨询委员会会议在北京成功召开。中国工程院院士廖湘科、倪光南、方滨兴、桂卫华、郑纬民、王耀南,中国电子学会秘书长陈英,中国软件行业协会秘书长吕卫锋,原航天工程大学教授邹鹏,共创…

一起来学5G终端射频标准(TAE for UL-MIMO)

01—TAE的定义我们先来了解一下TAE测试标准的发展演变。在4G LTE的3GPP 36.101-1的技术要求规范中,就给出了对4G终端UL MIMO以及V2X UE的TAE的定义和最小要求,但在36.521-1的4G终端一致性测试规范中并没有对应的章节规定TAE的一致性测试。5G中有所变化&a…

华中师范大学研究生学位论文规范及排版技巧

研究生学位论文规范研究生学位论文是学位申请者获取博士、硕士学位的重要依据,是研究生科研能力、科研成果的集中体现,同时也是重要的社会文献资料。为了规范学位论文撰写,提高我校研究生学位论文质量,根据GB/T7713-1987《科学技术…

每天学一点之Servlet

一、web资源 1、web资源的概念 将web应用部署到tomcat中,web应用中所有的内容都是服务器中的资源 2、web资源的分类 web资源的分类:web应用中src中编写的动态资源,web应用中web中编写的静态资源 静态资源:每次访问时&#xf…

复杂链表的复制-剑指Offer35-java

一、题目描述 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 示例 1: 输入:head [[7,null],[13,…

ChartGPT多重插补法 填充缺失点

问题描述已知时间戳与对应的值&#xff0c;需要根据时间戳找到缺失的点&#xff0c;然后进行值的填充。例如&#xff1a;源码<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 --><dependency><groupId>org.apache.commons</gr…

flink执行任务运行10h以后挂掉并且报错

问题描述flink运行jar包任务&#xff0c;运行几个小时或者1天以后&#xff0c;任务就会挂掉&#xff01;&#xff01;&#xff01;第一个错误是2023-02-01 23:43:08,083 INFO org.apache.flink.runtime.executiongraph.ExecutionGraph [] - Window(TumblingEventTimeWindows(60…

【Unity】创建一个自己的AR安卓程序

目录1 环境配置2 下载官方提供的AR Starter工程3 AR Starter工程中的包以及打包设置3.1 Package Manager3.2 Player Settings4 创建一个新的AR场景5 AR场景中的物体6 在unity中运行AR场景7 在AR场景的基础上添加自己的想法7.1 修改Cube的旋转速度/方向7.2 将Cube替换为其他物体…

今年面试好激烈!

金三银四过去一半&#xff0c;市场火热&#xff0c;但是大家就业压力却没有缓解多少。 很多粉丝后台留言&#xff0c;Java程序员面临的竞争太激烈了…… 我自己也有实感&#xff0c;多年身处一线互联网公司&#xff0c;虽没有直面过求职跳槽的残酷&#xff0c;但经常担任技术面…

【开发实践】在线考试系统(一) 生成错题知识点的思维导图

一、需求分析设计 笔者开发了一个在线考试系统&#xff0c;导师提出一个需求&#xff1a;添加对考试错题相关知识点的总结。 在question表中关联知识点的编号&#xff0c;题目可能关联多个知识点。这里笔者的设计是&#xff0c;只关联一个知识点&#xff0c;便于维护。 下面是知…

【python实操】马上毕业了,你还不懂什么是守护线程、线程、进程?(附12306抢票程序-源代码)

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…

预训练语言模型(GPT,BERT)

文章目录GPT 模型预训练语言模型模型和学习BERT 模型去噪自编码器模型和学习模型特点References在自然语言处理中事先使用大规模语料学习基于 Transformer 等的语言模型&#xff0c;之后用于各种任务的学习和预测&#xff0c;称这种模型为预训练语言模型。代表性的模型有 BERT …

LCX端口转发之远程桌面端口双重映射多主机转发

1.下载LCX端口转发工具源码及程序: git clone https://github.com/UndefinedIdentifier/LCX lcx1 2.复制到目标机: winxp win2003 win7

上海亚商投顾:创业板指低开高走ChatGPT概念股再爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。市场情绪大小指数今日走势分化&#xff0c;沪指盘中一度跌超1%&#xff0c;午后震荡回升跌幅收窄&#xff0c;创业板指则低开…