应用层协议 -- HTTPS 协议

目录

一、了解 HTTPS 协议

1、升级版的 HTTP 协议

2、理解“加密”

二、对称加密

1、理解对称加密

2、对称加密存在的问题

三、非对称加密

1、理解非对称加密

2、中间人攻击

3、CA 证书和数字签名

四、总结


一、了解 HTTPS 协议

1、升级版的 HTTP 协议

  • HTTPS 也是⼀个应用层协议,是在 HTTP 协议的基础上引入了一个加密层 SSL/TSL。加密是 HTTPS 协议的一个重要的保护措施。

2、理解“加密”

  • “加密”是指将传输的明文经过一些手段转化为密文。
  • “解密”是指将密文再次通过一些手段转化为明文。
  • 在加密和解密的过程中,通常需要一个或多个中间数据进行辅助,这样的数据称为“密钥”。
  • 加密的方式有很多,但整体可以分为“对称加密”和“非对称加密”两大类。

二、对称加密

1、理解对称加密

  • 对称加密是指通过一个密钥,既可以将明文变为密文,也可以将密文变为明文,即对称加密使用的算法是可逆的
  • 假设数据被截获,由于黑客不知道密钥是什么,因此无法进行解密,数据安全。
对称加密

2、对称加密存在的问题

  • 对于服务器端,需要与许多客户端进行数据交互,如果所有交互都使用同一个密钥,则密钥会非常容易被破解(比如伪装成客户端的黑客)。
  • 这种情况下,一旦密钥被破解,则使用该密钥加密的所有数据,都将暴露。
  • 但如果给每个客户端都提供一个不同的密钥,则服务器需要维护的密钥数据量会变得非常庞大,维护成本也会变大。
  • 为了避免以上情况,我们将采取非对称加密的方法。

三、非对称加密

1、理解非对称加密

  • 非对称加密是指,密钥为一组,分成公钥和私钥。公钥公开,私钥由服务器端持有,不对外公开。
  • 公钥加密的数据只有私钥能解密,私钥加密的数据只有公钥能解密
  • 在客户端每次与服务器建立连接时,服务器端将持有的公钥发送给客户端。
  • 后续交互中,客户端就可以使用公钥加密数据,并将加密后的数据安全的传输到服务端,而不用担心数据暴露(因为只有私钥能解密)。
  • 但是还有一个问题,非对称加密最大的缺点在于运算速度非常慢。
  • 因此,非对称加密常用在客户端和服务器“协商密钥”的阶段,后续的数据传输,仍使用对称加密
非对称加密和对称加密混合使用

2、中间人攻击

  • 以上的非对称加密混合对称加密的方法,看似天衣无缝,但实际上仍存在一个问题,即“中间人攻击”。
  • 通过中间人攻击,黑客可以获取到对称密钥。
中间人攻击

3、CA 证书和数字签名

  • CA 证书是指,服务端在使用HTTPS前,需要向 CA 机构申领一份独一无二的数字证书,数字证书里含有证书申请者的信息、公钥信息等。
  • 在申请证书时,CA 机构会将数字证书中的各个字段,通过一系列算法,计算得到校验和。
  • 再使用 CA 机构自己的私钥,加密这个校验和,最终得到的就是数字签名,数字签名包含在 CA 机构发布的证书中。
  • CA 机构的公钥,会被内置到各个客户端中。
  • 在客户端和服务器进行交互时,服务器会将证书发送给客户端。
  • 客户端得到证书后,根据证书的各个字段,使用和CA机构一样的算法,计算得出校验和
  • 再使用内置的公钥,解密证书中的数字签名,得到又一个校验和
  • 将两个校验和进行比较,如果相同,则证书没有被篡改,反之则发现证书已经被篡改,发现发生了中间人攻击,并以此采取后续措施。


四、总结

  • 以上过程中,使用了三组密钥,分别是:
            用于加密普通数据的对称密钥
            由服务端提供的,一组用于加密对称密钥的非对称密钥
            由CA机构提供的,一组用于加密服务端信息(包括公钥)的非对称公钥
  • 通过以上步骤,HTTPS协议通过三组密钥,有效的保护了网络数据传输的安全。

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

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

相关文章

prompt提示词:AI英语词典,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 英语词典提问技巧效果图:提示词: 英语词典提问技巧 随着AI工具的出现,学英语也可以变得很简单,大家可以直接通过AI 来帮助自己,提高记忆单词的效率,都可以不需要网易有道词典了,今天我教大…

Grid 布局

文章目录 容器属性display 属性grid-template-columns 和 grid-template-rows 属性row-gap、column-gap、gap 属性grid-template-areas 属性grid-auto-flow 属性justify-items、align-items、place-items 属性justify-content、align-content、place-content 属性grid-auto-col…

AI图书推荐:AI驱动的图书写作工作流—从想法构思到变现

《AI驱动的图书写作工作流—从想法到变现》(AI-Driven Book Creation: From Concept to Cash)是Martynas Zaloga倾力打造的一本实用指南,它巧妙地将写作艺术与人工智能前沿技术相结合。此书不仅揭示了AI在图书出版领域的无限潜力,…

Delphi 的Show和ShowModal

Show没有返回值是一个过程,焦点可以不在当前窗体; 用法新建一个子窗体: 主窗体: 调用,引用子窗体的单元 调用 showmodal是一个函数有返回值,窗体的处理结果,且只能聚焦到当前窗体 效果都能展示…

echarts实现云台控制按钮效果,方向按钮

效果图 代码 option {color: [#bfbfbf],tooltip: {show: false},series: [{name: ,type: pie,radius: [40%, 70%],avoidLabelOverlap: true,itemStyle: {// borderRadius: 10,borderColor: #fff,borderWidth: 2},label: {show: true,position: inside,fontSize: 36,color: #f…

CST初级教程 二

本教程将讲解CST Studio的视窗操控的基本操作. 3D视窗的快捷操作 动态放大与缩小(Dynamic Zoom) 将鼠标指针移动到CST Studio图形视窗中,向上滚动鼠标滚轮,可动太放大图形视窗中的显示内容,向下滚动鼠标滚轮即可动态缩…

如何添加所有未跟踪文件到暂存区?

文章目录 如何将所有未跟踪文件添加到Git暂存区?步骤与示例代码1. 打开命令行或终端2. 列出所有未跟踪的文件3. 添加所有未跟踪文件到暂存区4. 验证暂存区状态 如何将所有未跟踪文件添加到Git暂存区? 在版本控制系统Git中,当我们首次创建新文…

《数据结构与算法之美》读书笔记4(递归)

递归是一种应用非常广泛的算法。之后要讲的很多数据结构和算法的编码实现都要用到递归:DFS深度优先搜索,前中后序二叉树遍历等。 推荐注册返佣金这个功能,用户A推荐用户B来注册,用户B推荐用户C来注册。可以说用户B的“最终推荐人…

乐鑫科技收购创新硬件公司 M5Stack 控股权

乐鑫科技 (688018.SH) 宣布收购 M5Stack(明栈信息科技)的控股权。这一战略举措对于物联网和嵌入式系统领域的两家公司来说都是一个重要的里程碑,也契合了乐鑫和 M5Stack 共同推动 AIoT 技术民主化的愿景。 M5Stack 以其创新的硬件开发方式而闻…

DSP技术及应用——学习笔记一(量化效应)

文章图片内容主要来着老师的PPT,内容为自己总结梳理的学习笔记 二进制定点表示与量化误差 二进制定点表示 基础知识 二进制小数的定点表示 正数小数的定点表示: 思考题:推算字长为16的二进制最大正数与二进制正数 补码:正数不变&…

微电子封装分类及引线键合

1微电子封装分类 - 按功能 模拟电路、存储器传感器、功率电路、光电器件、逻辑电路、射频电路、MEMS、LED等等 - 按结构 分立器件/单芯片封装、多芯片封装、三维封装、真空封装、非真空封装、CSP,BGA/FBGA等等 - 按工艺 线焊封装(WB)、倒装焊封装(FC)、晶圆级封装(WLP)等等 -…

华中农业大学第十三届程序设计竞赛 个人题解(待补)

前言: 注意本篇博客的题解目前并不完整,未来会慢慢补齐的。 进入实验室后接触算法比赛的机会更多了,我接触的题也不再是简单的c语言题了,开始遇到更多我没接触过的算法和难题了,死磕这些难题对现在的我不但花时间而且成…

kubebuilder(4)部署测试

将crd部署到k8s make install 日志: kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/demoes.tutorial.demo.com created 查看下[rootpaas-m-k8s-master-1 demo-operator]# kubectl api-resources | grep demo de…

python爬虫学习-------scrapy的第一部分(二十九天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

【stomp实战】搭建一套websocket推送平台

前面几个小节我们已经学习了stomp协议,了解了stomp客户端的用法,并且搭建了一个小的后台demo,前端页面通过html页面与后端服务建立WebSocket连接。发送消息给后端服务。后端服务将消息内容原样送回。通过这个demo我们学习了前端stomp客户端的…

BBEdit for Mac v15.0.3激活版 支持多种类型的代码编辑器

BBEdit包含了很多一流的功能,包括GREP图样匹配,搜索和替换多个文件(即使未开启的远程服务器上的文件),项目定义的工具,功能导航和众多的源代码语言的语法着色,代码折叠,FTP和SFTP打开…

视频质量度量VQM算法详细介绍

视频质量评价 视频质量评价(Video Quality Assessment,VQA)是指通过主观、客观的方式对视频图像的内容、画质等,进行感知、衡量与评价。 ITU definations subjective assessment: the determination of the quality or impairment of programme-like pictures presented…

后端程序员利用 AI 给网站制作专业 favicon

看看你的 Chrome 浏览器顶部的标签页,每个标签页前面有一个小小的图标,这个就是 favicon,如果你将网页保存到收藏夹,前面也会是这个小图标。这个图标有时候就是网站的 Logo,有时候也不太一样。 上面截图中&#xff0c…

C++学习随笔(10)——string

本章我们来了解一下string类。 目录 1. string类是什么? 1.1 C语言中的字符串 1.2 string类本质 2. 标准库中的string类 2.1 string类 2.2 string类的常用接口说明 1. string类对象的常见构造 2. string类对象的容量操作 3. string类对象的访问及遍历操作…

static和extern关键字详解

目录 创作不易,如对您有帮助,还望一键三连,谢谢!!! 回顾 1.作用域和声明周期 1.1作用域 1.2生命周期 2.static和extern 2.1extern 2.2static 2.2-1static修饰局部变量 2.2-2static修饰全局变量 创…