用 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

相关推荐
路人甲ing..2 小时前
jupyter切换内核方法配置问题总结
chrome·python·jupyter
搬码后生仔3 小时前
asp.net core webapi项目中 在生产环境中 进不去swagger
chrome·后端·asp.net
小马哥编程11 小时前
原型链(Prototype Chain)入门
css·vue.js·chrome·node.js·原型模式·chrome devtools
金创想17 小时前
chrome主页被被篡改的修复方法
chrome·主页篡改
东方隐侠安全团队-千里18 小时前
网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析
网络·chrome·web安全
m0_7482370519 小时前
Chrome 关闭自动添加https
前端·chrome
张声录11 天前
【ETCD】【实操篇(三)】【ETCDCTL】如何向集群中写入数据
数据库·chrome·etcd
m0_748240021 天前
Chromium 中chrome.webRequest扩展接口定义c++
网络·c++·chrome
冬天vs不冷1 天前
Linux用户与权限管理详解
linux·运维·chrome
SimonLiu0092 天前
[AI]30分钟用cursor开发一个chrome插件
chrome·ai·ai编程