用 Wireshark 在 Firefox 或 Google Chrome 上使用 SSLKEYLOGFILE 环境变量解密 SSL 流量

原文:这

您希望使用 SSL 会话密钥解密和检查 SSL 应用程序数据

您希望在客户端系统上记录 SSL 会话密钥。

您正在客户端系统上使用 Firefox 或 Google Chrome 浏览器来访问 Web 应用程序。

注意:您还可以在客户端系统上使用 Microsoft Edge (Chromium) 浏览器访问 Web 应用程序。

描述

您可以使用 SSL 会话密钥解密 SSL 流量。执行此操作的一种方法是将 SSLKEYLOGFILE 环境变量设置为客户端操作系统上的文件名,以记录 SSL 密钥信息。此方法在以下任何情况下都很有用:

出于安全原因,您只能记录一个用户的 SSL 会话密钥。

您无权访问 BIG-IP 系统,或者不想在 BIG-IP 系统上运行命令。

您可以使用此方法解密 RSA 以及基于 Diffie-Hellman 的密钥交换(如 DHE 或 ECDHE)。

记录 SSL 会话密钥的其他方法是使用 K10209:使用 ssldump 实用程序进行数据包跟踪概述中描述的 ssldump 命令,或使用 K16700:使用 SSL::sessionsecret iRules 命令 (11.6.x) 解密 SSL 流量中描述的 iRules。

先决条件

必须满足以下先决条件才能使用此过程:

您正在客户端系统上使用 Firefox 或 Chrome 浏览器来访问 Web 应用程序。

在客户端系统上安装了 Wireshark。

程序

要在使用 Firefox 或 Chrome 时通过设置 SSLKEYLOGFILE 环境变量来解密 SSL 流量,请根据计算机的操作系统执行以下两个过程:

通过设置 SSLKEYLOGFILE 环境变量,在以下客户端系统之一上记录 SSL 会话密钥:

在 Windows 上记录 SSL 会话密钥

在 Mac 上记录 SSL 会话密钥

在 Linux 上记录 SSL 会话密钥

在 Wireshark 中加载 SSL 密钥日志文件

在 Tshark 中加载 SSL 密钥日志文件(Wireshark 的命令行版本)

注意:本文介绍如何使用 Wireshark 应用程序在数据包捕获中解密 SSL 应用程序数据;但是,您不必使用 Wireshark 来收集初始数据包捕获。有关详细信息,请参阅 Wireshark.org。此链接会将您带到 AskF5 之外的资源,并且可能会在我们不知情的情况下删除该文档。

重要提示:F5 支持 BIG-IP 系统软件。F5 不支持第三方软件,例如客户端操作系统或安装在客户端系统上的非 F5 应用程序。有关详细信息,请参阅操作系统手册。

有关这些过程的简要演示,请观看以下视频:

在 Windows 上记录 SSL 会话密钥

要通过设置 SSLKEYLOGFILE 在 Windows 上记录 SSL 会话密钥,请执行以下过程:

程序影响: 执行以下过程不应对系统产生负面影响。

登录到 Windows。

关闭所有 Firefox 和 Chrome 浏览器。

通过选择屏幕左下角的 Windows 图标来打开环境变量。

输入 env。

选择编辑帐户的环境变量。

在"环境变量"弹出窗口中,在"<用户名>的用户变量"下,选择"新建"。

对于 Variable name (变量名称),输入以下名称:

SSLKEYLOGFILE

对于 Variable value (变量值),输入 SSL 日志文件的完整路径名。

例如:

C:\Users\user1\Desktop\sslkeylog.txt

注意:您必须对输入的位置具有写入权限。

选择"确定"。

使用 Wireshark 等应用程序启动数据包捕获。

启动 Firefox 或 Chrome。

访问 Web 应用程序并执行要进行故障排除的步骤。执行此操作时,SSL 会话密钥将记录在步骤 8 中指定的文件中。

停止数据包捕获并将文件保存到客户端系统。

注意:在Wireshark中执行上传SSL密钥日志文件过程并查看解密的数据包捕获文件后,可以删除SSL日志文件以还原更改。

在 Mac 上记录 SSL 会话密钥

要通过设置 SSLKEYLOGFILE 在 Mac 上记录 SSL 会话密钥,请执行以下过程:

程序影响:执行以下过程不应对系统产生负面影响。

登录 Mac。

确保所有 Firefox 和 Chrome 浏览器都已关闭。

注意:在 Mac 中,应用程序可能会在后台运行。您必须使用屏幕左上角 Apple 菜单中的"强制退出"来强制退出应用程序。

启动 OS X 终端以进行命令行访问。

使用以下命令语法为您的帐户设置 SSLKEYLOGFILE 环境变量:

导出SSLKEYLOGFILE="/Users/<account_name>/sslkeyfile"

例如:

导出 SSLKEYLOGFILE="/Users/user1/sslkeyfile"

使用 Wireshark 或 tcpdump 等应用程序启动数据包捕获。使用以下命令在 Mac 上打开 Wireshark 应用程序,然后开始捕获:

打开 /Applications/Wireshark.app

有关 tcpdump 的信息,请参阅 K411:使用 tcpdump 实用程序进行数据包跟踪概述。

使用以下命令语法从同一终端启动 Firefox 或 Chrome:

打开 /Applications/

注: 您必须从同一命令终端启动浏览器,因为会话变量仅在终端上设置。

例如:

打开 /Applications/Firefox.app

访问 Web 应用程序并执行要进行故障排除的步骤。执行此操作时,SSL 会话密钥将记录在步骤 4 中指定的文件中。

停止数据包捕获并将文件保存到客户端系统。

注意:在Wireshark中执行上传SSL密钥日志文件过程并查看数据包解密的捕获文件后,可以通过输入以下命令删除SSL日志文件以还原更改:export SSLKEYLOGFILE=""。

在 Linux 上记录 SSL 会话密钥

要通过设置 SSLKEYLOGFILE 在 Linux 上记录 SSL 会话密钥,请执行以下过程:

程序影响:执行以下过程不应对系统产生负面影响。

登录 Linux。

关闭所有 Firefox 和 Chrome 浏览器。

打开用于命令行访问的终端。

使用以下命令语法为您的帐户设置 SSLKEYLOGFILE 环境变量:

导出 SSLKEYLOGFILE="/home/<account_name>/sslkeyfile"

例如:

导出 SSLKEYLOGFILE="/home/user1/sslkeyfile"

使用 Wireshark 或 tcpdump 等应用程序启动数据包捕获。有关 tcpdump 的信息,请参阅 K411:使用 tcpdump 实用程序进行数据包跟踪概述。

从同一终端启动 Firefox 或 Chrome。

例如:

Firefox 和

注: 您必须从同一命令终端启动浏览器,因为会话变量仅在终端上设置。

访问 Web 应用程序并执行要进行故障排除的步骤。执行此操作时,SSL 会话密钥将记录在步骤 4 中指定的文件中。

停止数据包捕获并将文件保存到客户端系统。

注意:在 Wireshark 中执行上传 SSL 密钥日志文件过程并查看解密的数据包捕获文件后,可以通过输入以下命令删除 SSL 日志文件以还原更改:export SSLKEYLOGFILE=""。

在 Wireshark 中加载 SSL 密钥日志文件

在客户端系统上打开 Wireshark。

转到编辑>首选项>协议> TLS。

注意:对于低于 3.0.0 的 Wireshark 版本,请转到编辑>首选项>协议> SSL。对于 Mac,请转到 Wireshark >首选项>协议> TLS。

对于"(Pre)-Master-Secret"日志文件名,请选择"浏览"并找到您创建的 SSL 日志文件。

选择"确定"。

在 Wireshark 中打开数据包捕获文件。

在 Wireshark 数据包窗口中,选择以前加密的数据包以查看未加密的应用程序数据。

在 Tshark(Wireshark 的命令行版本)中加载 SSL 密钥日志文件

在 Tshark 命令行上指定 tls.keylog_file: 选项。例如:

tshark -o 'tls.keylog_file:日志文件.pms' -r capture.pcap

相关推荐
麓殇⊙29 分钟前
黑马点评--基于Redis实现共享session登录
数据库·redis·firefox
流星雨在线10 小时前
Chrome中http被强转成https问题
chrome·http·https
知识中的海王1 天前
Chrome 缓存文件路径
chrome·缓存
学习baba酱1 天前
关于Python+selenium+chrome编译为exe更换电脑无法打开问题
chrome·python·selenium
哎哟喂_!1 天前
深入解析Node.js文件系统(fs模块):从基础到进阶实践
javascript·chrome·node.js
itachi-uchiha1 天前
Apache Apisix配置ip-restriction插件以限制IP地址访问
前端·firefox
瀚高PG实验室1 天前
网络抓包命令tcpdump及分析工具wireshark使用
网络·wireshark·tcpdump·瀚高数据库
free1 天前
服务器异常数据问题解决 工具(tcpdump+wireshark+iptables)
服务器·wireshark·tcpdump
明金同学1 天前
一些好用的Chrome 扩展程序
前端·chrome
一个小白5552 天前
nginx 的反向代理 负载均衡 动静分离 重写
linux·运维·前端·nginx·centos·firefox