抓包工具wireshark中文版(wireshark使用教程)

协议介绍

HTTPS(Hypertext Transfer Protocol Secure)是一种基于传输层安全协议(TLS)的HTTP协议扩展,它为Web客户端和服务器之间的安全数据传输提供了保护,HTTPS协议之所以是安全的是因为HTTPS协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现,其实HTTPS在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段,我们可以将HTTPS理解为安全版HTTP(即HTTPS=HTTP+SSL/TLS),下面我们将HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下(原图来自@HYN):

证书验证阶段:

  1. 浏览器发起HTTPS请求  

  2. 服务端返回HTTPS证书  

  3. 客户端验证证书是否合法,如果不合法则提示告警

数据传输阶段:

  1. 证书验证合法后在本地生成随机数

  2. 通过公钥加密随机数并把加密后的随机数传输到服务端

  3. 服务端通过私钥对从客户端传递过来的随机数进行解密  

  4. 服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输

数据传输

HTTPS协议中数据传输使用对称加密是因为非对称加密的加解密效率是非常低的,而HTTP的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的,另外在HTTPS的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以HTTPS中内容传输加密采取的是对称加密,而不是非对称加密:

抓包工具wireshark中文版(wireshark使用教程)

报文抓取

在这里我们通过Web浏览器访问163邮箱并进行登录认证,同时使用wireshark进行抓包操作

抓包工具wireshark中文版(wireshark使用教程)

我们从捕获的数据包中过滤出所有和mail.163.com相关的数据包,可以看到使用https后通信报文直接已做加密处理,无法直接查看具体的报文信息

抓包工具wireshark中文版(wireshark使用教程)

报文解密1

Chrome浏览器支持将TLS会话中使用的对称密钥保存在外部文件中,由此便可以用于Wireshark解密数据使用,具体流程如下:

Step 1:配置系统环境变量

  • 变量名:SSLKEYLOGFILE 

  • 变量值:路径可以随意指定,其主要作用是告诉Chrome输出SSLKEY的位置,而Wireshark则可以使用此文件来解密HTTPS数据包

抓包工具wireshark中文版(wireshark使用教程)

Step  2:配置Wireshark,在下面的选项中填入刚才在系统变量指定的keylog文件的存储路径以便wireshark可以访问keylog中的key来解密https数据包

  • 中文:编辑 > 首选项 > protocols > ssl (最新版wireshark已经将SSL改为TLS,其实ssl/tls都已统称通信加密协议)

  • English:Edit > Preferences > protocols > ssl (最新版wireshark已经将SSL改为TLS,其实ssl/tls都已统称通信加密协议)

抓包工具wireshark中文版(wireshark使用教程)

Step 3:打开Chrome的开发者模式(在该模式下才会记录TLS密钥到keylog文件中)

抓包工具wireshark中文版(wireshark使用教程)

Step 4:再次访问163邮箱并进行登录操作,同时使用wireshark抓包

抓包工具wireshark中文版(wireshark使用教程)

之后成功解密数据报文

抓包工具wireshark中文版(wireshark使用教程)

报文解密2

如果我们可以从服务器上导出带私钥的P12格式的证书或者直接导出服务器的私钥,那么我们可以直接在wireshark中加载证书实现解密操作,下面时初始捕获从TCP三次握手开始的完整报文,可以看到此时的报文是被TLS加密的,无法看到具体的报文内容:

抓包工具wireshark中文版(wireshark使用教程)

此时我们只需要点击编辑—>首选项—>协议—>SSL(有的版本只有TLS)导入RSA key

抓包工具wireshark中文版(wireshark使用教程)

由于通过DH方法交换的密钥不会在中间传递,所以这种方法只能解密通过RSA交换的密钥,导入服务器证书:

点击OK后,Wireshark会对捕获的报文进行解密,之后可以看到报文被成功解密,此时可以直观的看到HTTP报文的请求和响应

文末小结

本篇文章注意介绍了HTTPS数据报文在wireshark中的两种解密方式,其中日志解密方式较为通用,RSA证书的解密则需要获取服务器端的证书信息,较为困难

原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34135.html

(0)
七芒星实验室's avatar七芒星实验室
上一篇 2024年4月8日 下午10:39
下一篇 2024年4月8日 下午10:41

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注