您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

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

时间:2020-10-20 10:26:15  来源:  作者:

01 引言

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

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

我们先从HTTP协议说起。

02 HTTP协议

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

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

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

 

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

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

 

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的区别如下图所示:

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

 

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

04 密钥算法

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

(1)几个基本概念

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

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

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

(2)对称密钥算法

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

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

 

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

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

(3)非对称密钥算法

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

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

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

 

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

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

(4)SSL加解密解决方案

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

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

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

05 HTTPS协议加解密过程

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

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

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

 

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

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

 

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

 

06 总结

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



Tags:Wireshark   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
由于https 使用了 TLS/SSL 加密条件,我们无法直接在wireshark的中读取到数据内容,我们先看一下正常的http包的内容。可以直接读取到http的header 和body。 但如果是https 则不...【详细内容】
2021-12-01  Tags: Wireshark  点击:(29)  评论:(0)  加入收藏
Wireshark 中文版是一款mac网络协议分析软件,任何负责的网络分析人员都对这个软件情有独钟。如今,几乎没有哪种产品像它这样拥有如此持久的魅力,很容易看出其中的原因。网管员...【详细内容】
2021-08-20  Tags: Wireshark  点击:(72)  评论:(0)  加入收藏
我们日常用https访问网站的时候,和网站交互的数据是加密的,所用的协议就是SSL/TLS。所以即使我们截获了这些数据包,我们也不能看到加密的内容。比如我们随便打开百度的网址,用wi...【详细内容】
2021-07-16  Tags: Wireshark  点击:(127)  评论:(0)  加入收藏
Wireshark 中文版是一款mac网络协议分析软件,任何负责的网络分析人员都对这个软件情有独钟。如今,几乎没有哪种产品像它这样拥有如此持久的魅力,很容易看出其中的原因。网管员...【详细内容】
2021-06-11  Tags: Wireshark  点击:(102)  评论:(0)  加入收藏
本文涉及相关实验:wireshark之文件还原 https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182014122315591000001&pk_campaign=toutiao-wemedia实验目标:黑客A通过ARP欺...【详细内容】
2021-02-25  Tags: Wireshark  点击:(304)  评论:(0)  加入收藏
某天接到一线工程师反馈,用户在登录和使用某台server的远程桌面过程中延迟非常大,而连接其他的server正常。一线工程师已经做了以下尝试:1 使用client去ping server,没有丢包,返...【详细内容】
2020-12-30  Tags: Wireshark  点击:(236)  评论:(0)  加入收藏
01 引言成哥在Wireshark系列实战案例中,分析过多种网络问题,但唯独没有涉及到应用层HTTPS协议的相关内容。今天通过wireshark捕获HTTPS数据包,来给大家讲解一下HTTPS的加解密过...【详细内容】
2020-10-20  Tags: Wireshark  点击:(163)  评论:(0)  加入收藏
虚拟网络运维––基于wireshark报文分析快速过滤(tcp,icmp,http)报文时延前言在网络运维中,在报文分析时,时延类问题是比较常见的问题场景,如何快速定位到高时延的报...【详细内容】
2020-06-21  Tags: Wireshark  点击:(297)  评论:(0)  加入收藏
在本教程中,你将学习如何在 Ubuntu 和其它基于 Ubuntu 的发行版上安装最新的 Wireshark。同时你也将学习如何在没有 sudo 的情况下来运行 Wireshark,以及如何设置它来进行数...【详细内容】
2020-04-28  Tags: Wireshark  点击:(94)  评论:(0)  加入收藏
使用tcpdump和wireshark分析tcp流Tcpdump抓包tcpdump -w packets.pcap -n -i eth0 tcp port 60 and dst host 10.22.47.66 -i: 指定网络接口 -n: 不做域名解析,使用ip -w:...【详细内容】
2020-01-03  Tags: Wireshark  点击:(108)  评论:(0)  加入收藏
▌简易百科推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(1)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(12)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(7)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(8)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(7)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(6)  评论:(0)  加入收藏
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  zebra-08    Tags:Hive   点击:(9)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  网安人    Tags:服务器   点击:(7)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  mdong    Tags:Nginx   点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  LaLiLi    Tags:SSH连接   点击:(16)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条