HTTPS 协议详解:对称加密、非对称加密、中间人攻击与数字证书

什么是https(加密)协议,彻底搞懂https HTTPS的原理,彻底弄懂HTTPS,为什么要用HTTPS,HTTPS为什么要这么用 阅读详情

HTTPS = HTTP + S(SSL/TLS,专门用来加密的应用层协议)

由于在HTTP中,数据都是 “ 明文 ” 传输的,就很容易出现网络安全问题,为了解决这个问题,业界内推出了 HTTPS 协议

一. HTTPS 的加密方式

在对 HTTPS协议的加密方式进行讲解之前,我们要先理解密钥的概念

简单来说,密钥就是一套加密算法所对应的密码钥匙,只有拿到密钥才能够还原被加密的数据 

1.1 对称加密

对称加密,就是 加密和解密 用的是同一个密钥

在 HTTP 时,由于数据是直接明文传输的,那么如果数据在传输的过程中经过了一个黑客黑掉的路由器时,所传输的数据就会被黑客一览无余,也就造成了网络安全问题,大概的流程图如下所示

但在我们引入了对称加密之后,数据就会以密文的形式进行加密,那么,即使数据在传输的过程当中途径了黑客的路由器,黑客也不能直接拿到我们传输的数据,大概的流程图如下所示

这样看来,似乎黑客就拿不到我们传输的数据内容了,但是,事情真的有这么简单吗?

我们知道,密钥是 客户端和服务器在最初的通信时,由其中任意一方生成并通过网络传输给另一方 ,而且,有一个最大的问题是:该密钥在网络传输时是明文传输的!也就是说,黑客也是能拿到这个密钥的!所以,黑客也能够拿着得到的密钥来对加密的数据进行解析,从而拿到我们传输的数据

那么,如何解决 密钥 是明文传输所带来的网络安全问题呢?我们就需要对密钥也进行加密,那还是用对称加密的方式吗?如果是这样的话,我们又去生成一个对称密钥 key2 来对 key 进行加密,key 确实是可以通过密文传输了,但是 key2 也是要通过网络去明文传输的,那么,难道我们又要生成一个 key3 来对 key2 进行加密?当我们仔细想想就可以发现,无论这样套多少次,都总是有一层是需要明文传输的,也就是说,仅仅依靠对称加密是不能解决这个问题的

为了解决这个问题,HTTPS 就引入了非对称加密

1.2 非对称加密

非对称加密有两个密钥,一个公钥(公开的密钥),一个私钥(自己私有的密钥),用 公钥/私钥 进行加密的数据,只有持有对应的 私钥/公钥 才能对其进行解密。公钥和私钥并不相同,所以称作非对称加密

非对称加密传输之后用来对通信数据进行加密的密钥的流程图大概如下图所示

首先,客户端先用服务器公开的公钥对 密钥key 进行加密传输,像这样,即使在 密钥key 在传输的过程当中经过了黑客的路由器,黑客也只能拿到经过公钥加密后的数据,而又由于黑客手中并没有该公钥对应的私钥,所以并不能对这些加密后的数据进行解密,也就拿不到 密钥key 。在之后客户端和服务器之间就使用 密钥key 来加密通信,黑客由于没有 密钥key 也不能对这些加密数据进行解密,也就保障了网络安全

我们要注意的是,客户端和服务器之间并不能直接通过服务器提供的公钥和私钥进行加密通信,因为非对称加密运算速度巨慢而且还有明文长度上限,不能加密大文件,所以,HTTPS 采取了一个折中的方案:只使用服务器的 公钥/私钥 非对称加密传输 密钥key,之后客户端和服务器之间的数据传输都是用 密钥key 进行对称加密传输

在 HTTPS 引入了非对称加密了之后,那些狡猾的黑客难道就真的没办法去窃取我们的数据了吗?其实不然,那些狡猾的黑客又想出了一个办法来在非对称加密后获取到我们传输的 密钥key,这个办法就是 中间人攻击

二. HTTPS 典型安全隐患:中间人攻击

中间人攻击就是 黑客在客户端和服务器的网络通信之间安插了一个第三者,偷偷地去截留、篡改双方传输的数据,但客户端和服务器双方都意识不到中间有第三者

在 非对称加密 的前提下,黑客的网络设备也会生成一对 公钥和密钥 对服务器提供的公钥和私钥进行 调包,从而获取到 客户端和服务器之间用来进行网络通信加密的 密钥key

大概流程如下图所示

由于客户端不能确定传输过来的公钥是真是假,所以只能选择相信这份公钥是正确的并用这个公钥对密钥key进行加密传输,这时如果这份公钥是黑客伪造的 公钥pub2,那么在黑客拿到加密的数据后就可以用对应的 私钥pri2 进行解密从而拿到 密钥key。然后黑客再使用服务器的 公钥pub 对 密钥key 进行加密并传输给服务器,服务器也使用对应的 私钥pri 对加密的数据进行解密也拿到了密钥key。那么,在这之后客户端和服务器之间的通信数据都是以 密钥key 进行加密的,而由于黑客手中已经掌握了 密钥key,之后客户端和服务器之间的传输数据黑客都能解密偷看、篡改,而客户端和服务器双方完全无感知,这也就是中间人攻击

为了解决中间人攻击,HTTPS 又引入了校验机制 —— 数字证书

三.抵御中间人攻击的方式:数字证书

中间人攻击的关键在于客户端无法区分收到的公钥是否是服务器真实传输过来的公钥还是被黑客篡改过的公钥,想要解决中间人攻击的问题,HTTPS 就要想办法去对公钥进行校验,去判断这是否是服务器真实传输过来的公钥,而这个校验机制就是数字证书

数字证书就相当于网站的官方身份证,由公认权威机构(CA)颁发

这时,服务器就要先向 公证权威机构(CA)去申请一个数字证书,证书内包含有以下内容:证书的颁布机构、证书的有效期、服务器的公钥、服务器的拥有者(域名)和 证书的数字签名(本质上是一个被加密的校验和)

校验和就是用要校验的数据代入一个校验和的计算算法所算出的一个数字,用来快速验证数据在传输的过程当中是否被修改或出错

这时,当客户端向服务器发起通信时,就会先获取到服务器传输过来的证书并对该证书进行校验,校验无误之后才使用证书里带有的 公钥 对 密钥key 进行加密并传输给服务器,之后客户端和服务器之间的网络通信就都用 密钥key 进行加密

传输证书的流程如下图所示

客户端对证书的校验过程:

1.客户端针对证书中的其他字段(除了数字签名)使用 公证权威机构 同样的算法计算校验和,得到校验和1

2.客户端再通过公正权威机构的 公钥pub 对数字签名进行解密,得到校验和2(公正权威机构的公钥不是通过网络进行传输的,而是操作系统中内置的,黑客并不能伪造这份公钥)

3.客户端对比 校验和1 和 校验和2 是否相同,如果相同,就说明证书是没有被修改过的,也就说明整数中含有的服务器的公钥是正确的;如果不相同,那么这个证书就是中间被其他人篡改过的,属于无效证书

引入了证书之后,黑客就对我们加密的 密钥key 无能为力了

如果黑客想要直接修改证书中的公钥 为自己的公钥,就会导致客户端计算出来的 校验和1 和 解密出来的 校验和2 对不上,此时客户端就会直接报错

就算黑客想要直接替换整份服务器的证书为自己申请的证书,那也是不行的,因为证书当中包含有服务器的域名,黑客申请下来的证书中的域名和服务器的域名肯定是不同的,客户端这里还会验证 输入的 URL 中的域名 和 得到的证书中的域名是否一致,如果不一致,那么也同样会认为该证书非法,直接报错

三. 小结

HTTPS 并不是一种全新的协议,而是 HTTP 加上 SSL/TLS 加密层后的产物。它的安全机制可以概括为一句话:用非对称加密安全地传递对称密钥,再用对称密钥加密实际传输的数据。

但仅有加密还不够,因为中间人攻击可以调包公钥。为了解决这个问题,HTTPS 引入了数字证书:由权威 CA 机构颁发,证书中包含服务器公钥、域名和数字签名。客户端通过校验数字签名和域名,就能确认公钥是否真的属于目标服务器,从而抵御中间人攻击。

至此,HTTPS 通过“对称加密 + 非对称加密 + 数字证书”三件套,实现了数据传输的机密性、完整性和身份认证。在下一篇博客,我们将进入传输层,看看 TCP 和 UDP 是如何工作的

对称加密和非对称加密、公钥和私钥、单向认证和双向认证、数字签名、数字证书、根证书 文章目录1. 什么是公钥和私钥?2. 加密算法2.1 对称加密2.2 非对称加密2.2.1 非对称加密的重要性质2.2.2 非对称加密算法应用2.2.2.1 应用1 加密通信2.2.2.1.1 单向认证和双向认证2.2.2.1 应用2 数字签名3. 数字签名3.1 数字签名用法演示3.2 数字签名存在问题4. 数字证书(Digital Certificate)4.1 创建数字证书4.1.1 举例,CA如何给我们签发一个有效证书: 1. 什么是公钥和私钥? 摘自《什么是公钥和私钥?》 公钥(Public Ke 阅读详情

相关推荐

HTTPS演化过程(对称加密、非对称加密、公钥、私钥、数字签名、数字证书)

参考文章:http://www.cnblogs.com/bellkosmos/p/5234029.html

yangyang的专栏 6889

【网络安全】https协议的加密方案避免中间人攻击(MITM攻击)导致的数据泄露风险

客户端拿到黑客的公钥M,在本地生成自己的私钥C。用黑客的公钥M加密,然后再向服务器发起请求,黑客很自然的用自己的私钥M*解密,拿到客户端的私钥C,然后用服务端的公钥S加密向服务端发起请求,至此客户端,黑客,服务端都拿到密钥C,客户端和服务端用密钥C进行对称加密通信,但双方并不知道有第三方也拿到了密钥C。客户端在本地生成自己的私钥C,然后用服务端的公钥S加密,即使有中间设备,但该数据包只有服务端的私钥S*解密,私钥C只有客户端和服务端知道,从次双方用私钥C对称加密进行通信,至此通信双方完成密钥协商。

2301_79796701的博客 2700

Cursor Agent模式下如何优雅切换conda环境运行Python脚本?3种实用方法实测

本文针对Cursor Agent模式下运行Python脚本时环境错配的痛点,实测了三种优雅切换conda环境的实用方法。通过Shell全局配置、项目级.cursorrc文件定制以及对话中直接指令,开发者可以确保AI助手在正确的虚拟环境中执行代码,从而提升开发效率和协作流畅度。

redis7keeper的博客 597

揭秘网络安全基石:对称加密、非对称加密、中间人攻击、数字证书与数字签名深度解析

本文深度解析网络安全核心:对称加密(高效机密)、非对称加密(密钥分发与认证)。面对中间人攻击威胁,数字证书通过CA验证公钥身份抵御。数字签名则确保数据完整、身份可信与不可否认,共同构筑了安全的网络通信基石。

此人很懒,什么都留下了...快进来看看吧 1778

WSL2迁移后用户名不见了?一招教你快速恢复Ubuntu22.04默认用户

本文针对WSL2迁移后Ubuntu 22.04默认用户名丢失的常见问题,提供了详细的诊断与修复方案。通过分析迁移底层逻辑,指导用户使用`ubuntu2204.exe config --default-user`命令或配置`/etc/wsl.conf`文件快速恢复用户身份,并涵盖权限修复、冲突解决及自动化迁移脚本等进阶内容,确保子系统迁移后环境完整可用。

web39explorer的博客 558

01 底盘制动产品之轮速传感器

轮速传感器是用来测量汽车车轮转速的传感器。对于现代汽车而言,轮速信息是必不可少的,汽车动态控制系统(VDC)、汽车电子稳定程序(ESP)、防抱死制动系统(ABS)、自动变速器的控制系统等都需要轮速信息。

汽车软件工程师 | 好奇博主 | 处女座 4659

HTTPS加密原理,搞懂什么是对称加密、非对称加密、证书、数字签名

HTTPS加密原理,搞懂什么是对称加密、非对称加密、证书、数字签名

优秀的程序员不应该是CRUD 6032

gnss变形监测基础(四)

监测站的数据采样率指的是监测站在单位时间内收集数据的频率,通常以赫兹(Hz)为单位。在GNSS变形监测中,数据采样率决定了监测系统能够捕捉到的变形动态变化的详细程度和时间分辨率。例如,一个采样率为1Hz的GNSS监测站意味着它每秒钟收集一次位置数据;而一个采样率为10Hz的监测站则每秒钟收集10次位置数据。较高的采样率能够提供更细致的时间序列数据,有助于分析快速变化的动态过程,如地震活动或建筑物的振动响应。然而,较高的采样率也意味着数据量更大,可能需要更多的存储空间和更强大的数据处理能力。

我的博客 1293

HTTPS协议—加密算法和中间攻击人的博弈

HTTPS协议—加密算法和中间攻击人的博弈(一步一步探索这中间的博弈,很激动)

一年,我很需要这一年 1731

别再只调颜色阈值了!优化K210色块追踪性能的5个关键参数与实战技巧

本文深入探讨了K210色块追踪性能优化的五大核心策略,包括图像预处理参数精细调控、find_blobs参数进阶配置、运动控制算法升级、硬件时序优化以及可视化调试系统构建。通过实战技巧和参数调整方法,帮助开发者提升K210在色块追踪项目中的识别稳定性和响应速度,适用于云台追踪等应用场景。

weixin_42531588的博客 225

腾讯会议录屏损坏修复:使用 recover_mp4 工具的完整解决方案

腾讯会议录屏损坏修复指南 当腾讯会议录屏因电脑蓝屏等意外导致MP4文件损坏时,可使用recover_mp4工具结合FFMPEG进行修复。操作步骤包括:1)准备相同参数正常视频作为参考;2)分析正常视频生成结构文件;3)分离损坏视频的音视频流;4)使用FFMPEG重新封装。该方法能有效修复因意外中断导致的视频索引损坏问题。修复前需将工具和文件放在同一目录下,并确保参考视频与损坏录屏的参数完全一致。

m0_62498496的博客 2627

HTTPS加密原理:对称加密、非对称加密与数字证书

HTTPS是HTTP的安全版本,给HTTP加上了加密层。为什么需要对称和非对称两种加密?数字证书如何防止中间人攻击?很多人只知道HTTPS安全,却不知道加密握手的数学原理。我并没有能力让你成为密码学专家,我只是想让你彻底理解对称加密与非对称加密的本质区别、TLS握手的完整流程、以及数字证书的验证原理。每个加密步骤都会详细推导,讲透本质。从"HTTP明文传输被窃听"问题出发,剖析HTTPS的加密原理与认证机制。

比较是偷走幸福的小偷 5340

YOLOv11 损失函数进阶:Varifocal Loss 让正负样本精度双升

创建self.alpha = alpha # 正样本权重系数self.gamma = gamma # 聚焦系数self.lambda_reg = lambda_reg # 回归损失权重# 分类损失:Varifocal Classification Loss# 正样本权重:基于预测置信度# 计算 BCE 损失并加权cls_loss = cls_loss.sum() / (cls_true.sum() + 1e-6) # 按正样本数归一化。

m0_71589036的博客 441

HTTPS(一) -- 基础知识(密钥、对称加密、非对称加密、数字签名、数字证书)

1 HTTPS 概述 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https: URL表

桑凯旋的博客 6383

白话FOC控制中各环节的参数的意义与如何设置参数

FOC参数整定是控制系统的关键环节,如同驯马需要调节"智能马鞍"。核心参数分为三类:电流环参数(P/I/D)决定响应速度和稳定性,速度环参数需慢于电流环5-10倍带宽,系统参数(极对数、电阻等)是电机固有属性必须准确设置。调参心法:由内而外先调电流环,遵循先P后I慎用D原则,内环带宽必须大于外环。利用自动辨识工具,通过听觉(滋滋声表示P过大)和波形观察来微调,最终实现精准控制。

汽车软件开发 356

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

一文看懂对称加密、非对称加密、摘要、数字签名、数字证书

文章目录前言数字签名对称加密非对称加密数字签名数字证书参考资料 前言 最近需要实现一个艺术品买卖交易平台。由于安全性的需求,学习了各种加密方法。这里总结一下。 数字签名 Alice要和Bob互传消息,消息在公开的网络上传播,不希望消息被别人看见,所以需要加密后,在网络上传送加密后的消息。只有有解密钥匙的人才能破解密文,看到消息内容。 对称加密 最简单的方法是Alice和Bob制作一把钥匙的两个副本,各自保存一个。Alice或Bob在发消息前先用钥匙加密消息,接收的人用钥匙解密后查看消息就行。加密解密用同一把

Xav Pun的博客 4689

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HTTPS用的是对称加密还是非对称加密?

大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。。

Flashing-C的博客 1969

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

彻底搞懂 HTTPS 加密原理:从对称 / 非对称加密到数字证书,全方位拆解安全通信的底层逻辑

HTTPS 的 “加密传输 + 数字证书认证” 双机制,是面试中的重点考察内容,希望这篇文章可以让你们了解这背后的门道。

2201_75758787的博客 1721

【HTTPS协议原理】数据加密、如何防止中间人攻击、证书和签名、HTTPS完整工作流程

数据加密、如何防止中间人攻击、证书和签名、HTTPS完整工作流程

小羊的博客 2123

清晰图解https如何防范中间人攻击

https/tls原理 HTTPS访问的三个阶段 第一阶段 认证站点 客户端向站点发起HTTPS请求,站点返回数字证书。客户端通过数字证书验证所访问的站点是真实的目标站点。 第二阶段 协商密钥 客户端与站点服务器协商此次会话的对称加密密钥,用于下一阶段的加密传输。 第三阶段 加密传输 客户端与站点直接使用已协商的对称加密密钥传输数据。 以下用一张图描绘CA、站点服务器、客户端之间的交互关系 中间人攻击 中间人攻击的几种形式 直接抓取报文获得明文信息 非法中间加密代理,窃取明文信息

oZhuZhiYuan的博客 1万+

https 非对称加密

https相当于在http和tcp之间加上了一层ssl加密,但是要注意的是,https协议在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。这是为什么呢?因为非对称加密的加解密效率是非常低的,而 https的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的。 首先我们需要对对称加密和非对称加密有所了解。对于对称加密,比如说常见的移位替换等方法,只要知道了加密过程,就一定知道解密过程,因为加密算法比较简单,那么根据加密算法就能反推出解密算法,也就是双方的秘钥是一样的,这

hanzhen7541的博客 3073

HTTPS详解:加密机制、工作流程、CA证书与中间人攻击防护

同HTTP协议,HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层;HTTP 协议内容都是按照文本的方式明文传输的,就导致在传输过程中可能会出现被篡改的情况;加密就是把 明文(要传输的信息)进行一系列变换,生成密文;解密就是把 密文 再进行一系列变换, 还原出 明文;在这个加密和解密的过程中, 通常需要一个/多个 中间数据,辅助进行该过程,这个数据被称为密钥路由器、Wi-Fi 热点、通信服务运营商、代理服务器在传输过程中,如果信息被劫持,传输的内容就会完全暴露。

卜及中的博客 3100

https是如何保证安全的,又是如何保证不被中间人攻击的?

HTTPS通过加密、数据完整性校验和身份认证等技术,极大地提高了互联网通信的安全性。它有效防止了中间人攻击,确保了数据在传输过程中的安全性和隐私性。然而,HTTPS并不是万能的,仍然需要配合其他安全措施(如合理的证书管理、强密码策略等)共同保障网络安全。

qq_39279448的博客 3578

HTTPS 协议详解

HTTPS(Hypertext Transfer Protocol Secure)是一个应用层协议,它在传统的 HTTP 协议基础上引入了加密层,解决了 HTTP 明文传输带来的安全问题。HTTP 协议的所有内容都是以文本形式明文传输的,这使得数据在传输过程中容易被第三方截获和篡改。

Made In SQL 1156

对称加密 | 非对称加密 | HTTPS的加密方式 | CA认证 | 中间人攻击

加密的概念、对称加密、非对称加密、HTTPS的加密方式、CA认证、中间人攻击

2301_79551553的博客 940

计算机网络 | HTTPS协议 :对称加密、非对称加密、数字证书、完整性保护

文章目录HTTPS VS HTTPHTTPS=HTTP+加密+证书+完整性保护加密对称加密非对称加密混合加密证书完整性保护HTTPS并不能取代HTTPSSL是把双刃剑HTTPS的遗憾之处 HTTPS VS HTTP 计算机网络 (二) 应用层 :HTTP协议详解 在之前的博客中介绍了HTTP协议,虽然从中了解了他优秀的一面,但是也能看到他许多的不足。 由于其本身通信使用明文,没有进行加密,也没有确认通信方的一种机制,所以在互联网上近似于裸奔,很容易就会受到中间人攻击,导致安全存在问题。 通信时数据并没有进

凌桓丶的博客 3373
上一篇: HTTP 协议详解:从抓包实战到报文格式、请求头与状态码全解析
下一篇: 传输层协议:从 UDP 到 TCP,深入理解网络通信的基石
七星-落凡
博客等级 码龄1年 24粉丝 18原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值