【面试高频】HTTPS加密传输过程
目录1 HTTPS是什么2 “加密”是什么3 HTTPS工作过程3.1 引入对称加密3.2 引入非对称加密3.2.1 中间人攻击3.3 引入证书3.3.1 理解数字签名3.3.2 通过证书解决中间人攻击1 HTTPS是什么前面的章节给大家介绍了http协议以及http请求/响应请求的报文格式。但是我们使用浏览器时常看到的网络请求的协议是https//:开头的如那么何为https协议呢https协议实际上是在http协议的基础上做了一些加密操作从而保障用户信息安全。因为http协议进行网络交互时是使用的明文传输此时会导致用户的数据会很容易地被网络黑客所截取造成一定的网络安全隐患。2 “加密”是什么⭕加密指将未加密的明文要传输的数据信息通过一系列的变换变成被加密后的密文。⭕解密指将加密后的密文通过一系列的变换变成原来的明文。在加密和解密的过程中往往需要一些数据来辅助加密/解密的变换过程这种数据我们把它称为密钥。3 HTTPS工作过程要保证数据传输过程的安全性我们就要对要传输的数据进行“加密”此时网络中就不会再传输明文了相反都是通过密文进行数据交互的。加密方式分为 “对称加密” 和 “非对称加密” 。3.1 引入对称加密所谓对称加密就是指客户端和服务器通过同一个密钥进行加密和解密此密钥称为对称密钥。举个栗子通信双方约定通信的过程都使用对称密钥 key8888 通过按位异或进行加密解密;假设客户端要传输的数据为1234 通过 1234 ^ key得到密文 9834服务器收到密文后通过 9834 ^ key 得到明文 1234当然真正的https进行数据加密的过程肯定没有按位异或这么简单这里只是举例子让大家更清楚的知道对称加密的特点。于是我们可以很清晰地得到客户端与服务器的通信过程如下引入对称加密之后网络攻击者就不能直接获取明文对用户的信息进行窃取了。❗问题1服务器通常是在同一时间针对多个客户端提供服务的但不同的客户端与服务器进行交互的对称密钥必定是不能相同的如果每个客户端密钥都相同那网络黑客直接就能获取密钥了。就好比如果每个人的银行卡密码都相同那密码也就失去了它的意义。于是服务器就需要维护与每个客户端之间的密钥映射较为繁琐和麻烦如下图❗问题2要使用对称加密前提是客户端要将生成好的对称密钥通过网络传输转发给服务器传输密钥的过程必定是要加密的就需要设定 “ 密钥的密钥 ” 以此类推不断循环那就是 “ 先有蛋还是先有鸡 ” 的问题了。于是我们引入非对称加密......3.2 引入非对称加密所谓非对称加密就是服务器提前生成两个密钥一个是私钥一个是公钥。所有客户端包括黑客都可以拿到公钥客户端要提前生成对称密钥通过公钥加密而服务器通过私钥解密。而后续客户端与服务器的交互就通过对称加密解密就可以安全可靠地传输数据了。此时网络黑客由于拿不到私钥就无法窃取对称密钥自然也就无法窃取用户信息了。同时提高了一定的网络安全性。此时客户端与服务器的交互过程如下上图过程可以防止网络黑客直接地窃取对称密钥但是狡猾的网络黑客会通过一种 “中间人攻击” 的方式在客户端与服务器都不知情的情况下间接地获取到对称密钥。3.2.1 中间人攻击所谓中间人攻击就是交互双方之间的中间人通过一系列操作达到到自己想要的目的。不少谍战片中都有相关的 “ 中间人 ” 的操作。对于网络通信的过程中间人攻击的具体过程如下服务器生成的 公钥S 私钥S中间人生成的 公钥M 私钥M服务器发送给客户端公钥S但中间人转发给客户端的公钥不是S而是M。客户端收到M后将对称密钥通过M加密发送给中间人中间人通过自己的私钥M解密后得到对称密钥。再将对称密钥通过服务器公钥S加密发送给服务器。服务器通过S解密后也得到了对称密钥。问题就出现了客户端如何才能判断收到的公钥是服务器发来的呢如果不判断就直接传输对称密钥会造成严重的网络安全那此时我们就需要引入证书来协助客户端识别收到的公钥是否被篡改......3.3 引入证书引入证书的目的是为了辅助客户端识别收到的公钥的合法性。是服务器在使用HTTPS前提前向CA机构申请一份数字证书数字证书中包含申请人信息签发机构、有效时间、域名、申请人等和数字签名。⚠️注意申请证书的时候需要在特定的平台生成同时会生成一对CA机构的公钥和私钥这对密钥就是用来在网络通信中进行明文加密和数字签名的。3.3.1 理解数字签名当服务端申请CA证书的时候CA机构会对该服务端进行审核并专门为该网站形成数字签名过程如下CA机构拥有自己的公钥A私钥ACA机构对证书中的申请人信息明文数据进行hash形成数据摘要CA机构通过私钥A 对数据摘要进行加密生成数字签名。3.3.2 通过证书解决中间人攻击✅在客户端和服务器一建立连接之后服务器就会给客户端返回一个证书此证书包含了服务器的公钥也包含了网站的相关信息。✅客户端拿到证书后首先判定证书的有效时间是否合法。✅判定发布机构是否受信任操作系统内置了已受信任的证书发布机构✅验证数字签名的合法性通过系统得到发布该证书的官方机构的公钥A通过公钥A对数字签名进行解密得到一个哈希值 hash1。再计算整个证书的哈希值得到 hash2比对hash1与hash2如果相同则证明证书没有被篡改反之则被篡改了。3.3.3 相关面试题的解答1.为什么要形成数字签名答数字签名的目的是为了让客户端可以验证服务器发来的公钥的合法性从而避免中间人攻击窃取对称密钥。2. 为什么不能直接加密而要先计算哈希值再加密答计算哈希值是为了缩小签名密文的长度加快数字签名的验证以及签名计算的速度。3. 中间人有没有可能通过篡改证书获取对称密钥答中间人篡改证书由于中间人没有CA机构的私钥无法对篡改后的计算哈希值进行加密。如果强行篡改就没办法生成证书信息与数字签名匹配的证书后续客户端通过验证还是会发现证书不合法。4. 中间人可以直接掉包证书嘛答中间人想掉包证书由于中间人没有CA机构的私钥就需要提前向CA机构申请证书。然后用自己申请的证书进行掉包这个确实能做到证书的整体掉包但是别忘记证书明文中包含了域名等服务端认证信息如果整 体掉包客户端依旧能够识别出来。永远记住中间没人有CA私钥所以对任何证书都无法进行合法修改包括自己的。

相关新闻

UE4SS脚本注入系统:从原理到实战,解锁虚幻引擎游戏Mod开发

UE4SS脚本注入系统:从原理到实战,解锁虚幻引擎游戏Mod开发

1. 项目概述:UE4SS是什么,以及为什么你需要它如果你是一个热衷于《幻兽帕鲁》、《艾尔登法环》或者任何基于虚幻引擎4/5开发的PC游戏的玩家或开发者,那么“UE4SS”这个名字你大概率已经听过。它不是一个游戏,而是一个强大的脚本注…

2026/10/14 11:02:22 阅读更多 →
模板驱动文档自动化:零代码实现业务文档工业化

模板驱动文档自动化:零代码实现业务文档工业化

1. 项目概述:当文档生产变成“填空题”,而不是“写作文”你有没有经历过这种场景:每周一早上,市场部同事准时把一份《月度客户反馈摘要》模板发到群里,要求销售、客服、产品三个部门各自填入数据,再汇总成P…

2026/10/15 7:31:32 阅读更多 →
虚幻4 HTTP服务器插件开发:实现游戏与外部系统的实时API交互

虚幻4 HTTP服务器插件开发:实现游戏与外部系统的实时API交互

1. 项目概述:为什么虚幻4项目需要一个HTTP服务器?如果你正在用虚幻引擎4开发一个项目,无论是游戏、模拟器还是数字孪生应用,你很可能遇到过这样的需求:需要从外部系统(比如一个Web管理后台、一个移动端App&…

2026/10/15 8:10:32 阅读更多 →

最新新闻

C4D插件Octane 4.0 RC7上手指南:安装、调参与避坑

C4D插件Octane 4.0 RC7上手指南:安装、调参与避坑

简介:面向C4D用户的OctaneRender 4.0 RC7渲染器资源包,覆盖C4D R15至R20等主流版本,专为需要GPU加速、实时预览和照片级输出的设计师打造。压缩包共605个文件,内含184张png贴图、164个res资源文件、80个str字符串、78个h头文件与6…

2026/10/15 13:02:27 阅读更多 →
VS Code配置MATLAB:小白零基础到跑通全流程

VS Code配置MATLAB:小白零基础到跑通全流程

你是不是也经历过这种场景:只是想改一行 plot 的颜色,却得等 MATLAB 那个慢悠悠的启动界面转半天;想翻一翻别人几十个 .m 文件组成的项目,自带编辑器又让你在文件树和标签页之间来回折腾。于是大家自然都想到同一个问题——VS Cod…

2026/10/15 13:02:27 阅读更多 →
Flutter安全库sec的鸿蒙适配与性能优化实践

Flutter安全库sec的鸿蒙适配与性能优化实践

1. 项目背景与核心价值在跨平台开发领域,Flutter因其高效的渲染性能和跨端一致性备受开发者青睐。而sec作为Flutter生态中重要的安全加解密库,其鸿蒙化适配对于构建全场景安全应用具有关键意义。最近我在为某金融类应用做鸿蒙适配时,发现sec库…

2026/10/15 13:02:27 阅读更多 →
DFTtoolbox:MATLAB离散傅里叶变换工程化验证工具箱

DFTtoolbox:MATLAB离散傅里叶变换工程化验证工具箱

简介:本资源是一个面向凝聚态物理与计算材料科学领域的DFT计算辅助工具箱,专为使用Quantum ESPRESSO、ABINIT、ELK等主流第一性原理软件的研究者设计,显著降低DFT建模与后处理的学习门槛。工具箱以Python实现,核心理念是“用户输入…

2026/10/15 13:02:27 阅读更多 →
深入拆解VNode:从虚拟节点到真实DOM的渲染全流程

深入拆解VNode:从虚拟节点到真实DOM的渲染全流程

做前端这些年,如果要我选一个最值得拿出来单独拆开讲的底层概念,排第一的应该就是 VNode,也就是虚拟节点。我们平时写模板、写渲染函数,最后都是靠一套 VNode 结构和相应的处理逻辑,把"界面应该长什么样"翻译…

2026/10/15 13:02:27 阅读更多 →
Qt跨数据库获取SQL表字段元数据的工程实践

Qt跨数据库获取SQL表字段元数据的工程实践

1. 项目概述:为什么“获取SQL数据表所有字段”是Qt开发中绕不开的硬需求在用Qt做数据库应用开发时,我几乎每天都会遇到这个场景:界面刚打开,需要动态加载某张表的全部字段名来构建查询条件面板;或者用户点开一个数据编…

2026/10/15 13:01:26 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →