欢迎访问!

Office学习网

您现在的位置是:主页 > 网络技术

网络技术

图文详解HTTPS协议通信全过程,结合抓包实战分析

发布时间:2026-06-18网络技术评论
文章浏览阅读4.9w次,点赞51次,收藏81次。HTTPS 被称为 HTTP Over SSL (基于SSL加密的HTTP),这里的SSL (Secure Socket Layer) 被称

为了防止公钥被篡改这里服务端使用RSA私钥对椭圆曲线公钥进行签名并发送给客户端 , 4. HTTPS的缺点 尽管HTTPS提供了许多安全优势但也存在一些缺点 在相同网络环境中HTTPS 相比 HTTP 无论是响应时间慢2~100倍还是耗电量因为需要更多的服务器资源都有大幅度上升会导致成本升高。

这里也可以看出服务端是通过普通的TCP 的ACK消息去应答「Client Hello」, 内容概要包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF… 因篇幅有限仅展示部分资料需要点击下方链接即可前往获取 , 3.2.3.3. Encrypted Handshake Message 发送这个消息有两个目的 告诉服务端客户端在握手的过程中收到和发送的数据做一个摘要并用会话密钥加密发送给服务端做校验保证TSL握手过程中报文没有被修改过 如果服务端收到这个消息并能解密成功就能说明对称密钥是正确的, 3.2.1.1. version 从上图中可以看到当前通信安全层协议版本Version为TLS 1.2,在前期文章中我们介绍了HTTP的工作原理接下来就和博主一起来了解下HTTPS的交互流程以及与HTTP的差异吧 1. HTTP的缺点 在正式介绍HTTPS前我们先来看看HTTP协议当前存在的三大缺点 机密性问题 通信使用了明文第三方可以拦截并获悉通信内容 完整性问题 未验证报文的完整性第三方可以篡改通信内容 认证问题 未验证对方的身份第三方可以冒充他人身份参与通信, 为了方便大家先从整体再到细节理解整个HTTPS交互过程这里我先画一个HTTPS整体交互流程图整体划分四个阶段, 3.2.3. TLS第三次握手client - server (Client Key Exchange,如果不复用则此字段为0如果想要复用则此字段为想要复用的sessionID, 相比HTTPSHTTPS需要额外购买SSL证书最便宜的证书一年300多元如果是是企业网站证书一年至少也得3000元,Encrypted Handshake Message) 服务器也是同样的操作发送「Change Cipher Spec」和「Encrypted Handshake Message」消息如果双方都验证加密和解密没问题那么TLS握手正式完成, SHA384表示使用 SHA-384 作为消息摘要算法, 内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等都是网络安全入门必知必会的学习内容, Encrypted Handshake Message) 该报文中也是将TLS的三个消息合并到一个中发送,它删除了一些不安全的加密算法并引入了0-RTT零往返时间握手以减少延迟, 3.3. 阶段三加密通信 TLS握手完成后客户端与服务端的所有通信内容均被加密如果没有会话密钥则无法解密通信内容, 第一次握手报文72 我-百度 发送TLS消息「Client Hello」 第二次握手报文74、79 百度-我 发送TLS消息「Server Hello」 百度-我 发送TLS消息「Certificate」「Server Key Exchange」「Server Hello Done」 第三次握手报文83 我-百度 发送TLS消息「Client Key Exchange」「Change Cipher Spec」「Encrypted Handshake Message」 第四次握手报文85 百度-我 发送TLS消息「Change Cipher Spec」「Encrypted Handshake Message」 为了直观展示TLS报文交互基于抓包分析的数据包可以绘制得到下图, 1.学习路线图 攻击和防守要学的东西也不少具体要学的东西我都写在了上面的路线图如果你能学完它们你去就业和接私活完全没有问题, RSA表示使用RSA算法私钥加密、公钥解密验证对方身份, 2.视频教程 网上虽然也有很多的学习资源但基本上都残缺不全的这是我自己录的网安视频教程上面路线图的每一个知识点我都有配套的视频讲解。

当前样例中百度网站使用的就是TLS 1.2协议 TLS 1.1 TLS 1.1发布于2006年引入了一些改进包括对CBCCipher Block Chaining模式的安全性改进但仍然存在一些已知的安全问题, 我们可以用公式HTTPS HTTP SSL / TLS来表示HTTPS, HTTPS协议栈 3. HTTPS交互流程 接下来用 Wireshark 工具抓了客户端与百度网站https://www.baidu.com的TLS 握手过程可以看到下图中红色方框圈中 4 次TLS握手报文, 格式「密钥交换算法 签名算法认证算法 对称加密算法 摘要算法」, 我们知道HTTPS协议是基于TCP/IP协议的所以在TLS握手前后客户端与百度服务器分别进行了TCP三次握手69、70、71和TCP四次挥手95、99、103、105,Server key Exchange, 数据摘要算法 用于计算哈希主要是用于验证数据的完整性防止信息被篡改,由于本次抓包使用的是curl工具我们可以看到里面支持49种密码套件, 因篇幅有限仅展示部分资料需要点击下方链接即可前往获取 4.工具包、面试题和源码 “工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。

TLS 1.2 TLS 1.2发布于2008年它引入了更强的加密算法和更灵活的密码套件选择修复了许多安全漏洞是目前广泛使用的版本。

TLS (Transport Layer Security) 被称为 传输层安全 TLS相对于SSL 3.0版本做了些修改和功能增强相当于SSL的升级版本所以有时也一起统称为 SSL接入来本文若不明显强调SSL就默认表示SSL/TLS, 小结 到目前为止客户端和服务器都已经拥有了自有的随机数并且还会把随机数传递给对方分别记为Client Random和Server Random那这两个随机数有啥用呢后文见分晓。

HTTP工作原理 为了解决以上三个问题便诞生了HTTPS, 加密算法 用于实际数据传输的加解密例如 AESAdvanced Encryption Standard、RC4 等,于是双方都可计算椭圆曲线的交点xy, 还有我视频里讲的案例源码和对应的工具包需要的话也可以拿走, 3.2.4. TLS 第四次握手server - client (Change Cipher Spec, 密码套件列表 密码套件的格式通常由一系列的加密算法和相关参数组成。

3.2.3.1. Client Key Exchange 客户端收到了服务端的证书及「Server Hello Done」消息后会先校验证书校验通过后会将Client Params数据传递给服务端其中包含自身生成的椭圆曲线公钥Pubkey数据内容如图所示 客户端会生成一个随机数作为客户端椭圆曲线的私钥然后再根据服务端前面给的信息生成客户端的椭圆曲线公钥然后用「Client Key Exchange」消息发给服务端, TLS 1.0 TLS 1.0于1999年发布是SSL 3.0的升级版本修复了一些安全漏洞但仍然存在一些安全问题, 最后就用会话密钥加解密 HTTPS 请求和响应了即开启了阶段三的加密通信,Server key Exchange,是否复用由服务端确定,涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等感兴趣的同学不容错过, 不同的密码套件组合提供了不同的安全性和性能特点服务器和客户端在进行 TLS 握手时会协商选择双方都支持的 Cipher Suite 来建立安全连接, 3.2.1. TLS第一次握手client - server (Client Hello) 客户端向服务端发送 客户端支持的协议 已经使用的TLS版本 随机数Random 支持的密码套件。

其实TLS共总有4个版本最新为TLS 1.3具体如下

广告位

热心评论

评论列表