Ssl 解密由JMeter https请求(例如通过Wireshark)生成的“加密警报”数据包

Ssl 解密由JMeter https请求(例如通过Wireshark)生成的“加密警报”数据包,ssl,encryption,jmeter,wireshark,Ssl,Encryption,Jmeter,Wireshark,我按照该指南设置Wireshark来解密TLS流量 我在MacOS上添加了export SSLKEYLOGFILE=~/.ssl key.log到~/.bash_profile,现在当我从同一终端窗口open-a Firefox启动类似Firefox的浏览器时,我看到ssl key.log文件的大小在增长。然而,当我也从同一个终端窗口启动JMeter并使用https协议运行多个http采样器时,ssl key.log并没有增长 我无法通过web搜索tls wireshark decrypt jm

我按照该指南设置
Wireshark
来解密
TLS
流量

我在MacOS上添加了
export SSLKEYLOGFILE=~/.ssl key.log
~/.bash_profile
,现在当我从同一终端窗口
open-a Firefox
启动类似Firefox的浏览器时,我看到
ssl key.log
文件的大小在增长。然而,当我也从同一个终端窗口启动
JMeter
并使用
https
协议运行多个
http采样器时,
ssl key.log
并没有增长


我无法通过web搜索
tls wireshark decrypt jmeter
找到有关该主题的信息。如何解密?我不仅需要与JMeter中捕获的请求相匹配的响应,例如
查看结果树
,还需要技术数据包,特别是
加密警报
数据包。

JMeter对这个
SSLKEYLOGFILE
环境变量一无所知,如果您想通过Wireshark捕获来自JMeter的加密流量,您需要

首先,你需要

完成后,您需要使用Wireshark-Preferences-Protocols-TLS中的上述私钥配置协议解析器

完成后,您应该能够使用Wireshark对传出请求进行解密


如果您无法从正在测试的网站获取RSA私钥,您仍然可以尝试使用JMeter获取它。您需要首先生成一个MITM代理密钥库,并通过修改以下内容使JMeter知道该密钥库:

然后需要通过i.e.命令将JKS密钥库转换为PKCS12

接下来,您可以:

最后解密私钥,以供以后在Wireshark中使用:

openssl rsa -in encrypted.key -out decrypted.key -passin pass:mc3VZAuZvgYzt6pIQq3w
生成的RSA密钥文件可在Wireshark中使用


Dmitri,谢谢。我对密码学不太感兴趣,也许你们可以澄清一下:1)你们的方式是否使会话使用单RSA,而不使用带有许多随机密钥的前向保密性?2) 如果对(1)的回答是肯定的,那么让JMeter了解SSLKEYLOGFILE并以与浏览器相同的方式使用它需要多长时间(通过更改HTTP采样器的源代码…)?
keytool -importkeystore -srckeystore proxyserver.jks -destkeystore proxyserver.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass mc3VZAuZvgYzt6pIQq3w -deststorepass mc3VZAuZvgYzt6pIQq3w
openssl pkcs12 -in proxyserver.p12 -nocerts -out encrypted.key -password pass:mc3VZAuZvgYzt6pIQq3w -passout pass:mc3VZAuZvgYzt6pIQq3w
openssl rsa -in encrypted.key -out decrypted.key -passin pass:mc3VZAuZvgYzt6pIQq3w