百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

Wireshark数据包分析实战:HTTPS加解密过程

liebian365 2024-10-14 22:19 43 浏览 0 评论

阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到。

01 引言

成哥在Wireshark系列实战案例中,分析过多种网络问题,但唯独没有涉及到应用层HTTPS协议的相关内容。

今天通过wireshark捕获HTTPS数据包,来给大家讲解一下HTTPS的加解密过程。

我们先从HTTP协议说起。

02 HTTP协议

HTTP协议(超文本传输协议)是一种客户端与Web服务器之间进行应用层通信的协议,主要用于WWW服务。

客户端和web服务器端的之间通信为明文传输,数据直接交互,不存在任何安全性。如下图所示:

通过捕获HTTP的数据包,可以看到HTTP会话中的Cookie和各种id信息。如下图所示:

HTTP虽然优点众多,但是其明文传输的缺点,就足以致命。从2017年开始,Chrome 浏览器已把采用 HTTP 协议的网站标记为不安全网站,后续基本所有浏览器厂商都做了相同的标记。

HTTP协议的不安全问题,催生了HTTPS协议的产生。

03 HTTPS协议

为了增强HTTP协议的安全性,网景公司设计出了能够对HTTP协议进行安全加密的传输方法,即在TCP/IP协议的传输层和应用层之间新增了一层安全套接层。并将SSL和HTTP协议相结合,以实现安全的HTTP数据传输。这就是HTTPS协议,即"HTTP over SSL"或者"HTTP Secure"。

早期SSL是HTTPS使用的标准协议,之后IETF在SSL 3.0的基础之SSL进行标准化。形成传输层安全,即TLS。但它们本质上是相同的,我们可以合称TLS/SSL。

HTTP和HTTPS的区别如下图所示:

从图中可以看出,HTTP协议和HTTPS协议主要的差别就是是否存在TLS/SSL层。即HTTPS协议= HTTP协议+SSL/TLS协议,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,然后使用HTTP对加密后的数据进行传输。

04 密钥算法

在介绍HTTPS协议的加解密过程前,先要学一些密码学的知识。

(1)几个基本概念

明文:指的是未经过加密的原始数据。

密文:通过对明文进行加密操作后得到的数据。

密钥:一种参数,通过在加解密算法中使用该参数,可对明文进行加密,或者对密文进行解密。同时,密钥分为对称密钥与非对称密钥两种,分别应用在对称密钥算法和非对称密钥算上。

(2)对称密钥算法

使用相同密钥和算法进行加解密运算的算法叫做对称密钥算法。示意图如下所示:

对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密。

常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

(3)非对称密钥算法

非对称密钥算法对比对称密钥算法,其安全性更好。

使用对称密钥算法通信的双方使用的是相同的密钥,如果一方的密钥遭泄露,那么整个通信就会被破解。而非对称密钥算法的双方两个不同的密钥,即公钥和私钥,且二者成对出现。示意图如下:

私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。

非对称密钥算法的主流协议是RSA,需要给每个参与者产生一对密钥。共享私钥到服务器,严格保障私钥的安全性。

(4)SSL加解密解决方案

SSL加解密过程中同时使用到对称密钥和非对称密钥。如下图所示。

加密过程:重要文件使用对称密钥加密(速度快,长度不增加),形成加密文件。然后使用接收方的公钥将对称密钥加密,保证对称密钥传输时的安全性。然后将加密文件和加密的对称密钥发送给接收方。

解密过程:接收方通过私钥将对称密钥解密,获得对称密钥,然后对加密文件进行解密,获取重要文件。

05 HTTPS协议加解密过程

成哥前文说,HTTPS协议= HTTP协议+SSL/TLS协议。HTTP协议传输过程较为简单,这里不做介绍。我们来看看SSL/TLS协议的加解密过程。

在浏览器访问腾讯网,通过wireshark软件捕获到的SSL/TLS数据包如下,可以看到完整的SSL/TLS加密通信过程,如下图所示:

对捕获到的报文进行整理,形成以下流程图:

(1)客户端首先向目标网站发送HTTPS请求,即Client Hello。

该数据包中给出了浏览器的TLS版本号、随机数、支持的加密算法等信息。如下图所示:

(2)服务器端进行应答,即Server Hello。

该数据包中给出了服务器使用的TLS版本、随机数、确认双方加密方法等信息。如下图所示:

(3)服务器端给出数字证书和公钥,即Certificate、Server Key Exchange

该数据包中给出了数字证书以及服务器公钥,如下图所示:

这里要特别说一下客户端到底 如何来校验对方发过来的数字证书是否有效的?

我们从抓包中看到,服务器端将服务器证书、中级证书、CA证书等一并发送客户端。如下图所示:

(4)客户端根据客户端的公钥,计算出另一个公钥,发送回服务器端,即Client Key Exchange、Change Cipher Spec、Encrypted Handshake Message。

证书校验成功之后,客户端会生成一个随机串然后使用服务器证书的公钥进行加密之后发送给服务器。

(5)服务器开启New Session Ticket.

服务器通过使用自己的私钥解密得到这个随机值。开始使用这个随机值进行对称加密开始和客户端进行通信。如下图所示:

06 总结

成哥今天主要给大家讲解了HTTPS协议的处理过程,重点是介绍HTTPS和wireshark捕获数据包,所以这里没对密码学的知识做过多的介绍。之后有机会给大家补上。

--END--

@IT管理局专注计算机领域技术、大学生活、学习方法、求职招聘、职业规划、职场感悟等类型的原创内容。期待与你相遇,和你一同成长。

相关推荐文章:

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: