来源 https://support.citrix.com/article/CTX135121
概要
本文介绍在Wireshark网络协议分析仪中如果解密SSL和TLS流量
要求
? 网络追踪
? 网络,TCP/IP和SSL/TLS协议
? 证书和公私钥的使用
? Wireshark网络协议分析仪
背景
在Wireshark中,SSL解析器功能完整,且支持高级特性,如提供加密私钥时的SSL解密。这对于使用SSL或TLS加密的思杰产品的排错有很大的帮助。
步骤
Wireshark 设置
私钥格式
Wireshark只要有私钥就可以解密SSL流量。私钥需要时decrypted PKCS#8 PEM format (RSA)格式。你可以打开私钥看它的内容。如果是二进制,则是DER格式,不能用于Wireshark解密。
你可以使用OpenSSL转换密钥格式。例如,可以将PKCS#8 DER格式的密钥转化成decrypted PKCS#8 PEM format (RSA)格式。在$提示符后输入如下指令:
openssl pkcs8 -nocrypt -in der.key -informat DER -out pem.key -outformat PEM
其中:
der.key 是DER密钥文件的文件名和路径
pem.key是pem文件的文件名和路径
解密后的decrypted PKCS#8 PEM format (RSA)格式如下:
注意密钥开头为:
-----BEGIN RSA PRIVATE KEY-----
如果开头为:
-----BEGIN ENCRYPTED PRIVATE KEY-----
则这个密钥需要用适当的方法解密。OpenSSL可以实现。
你可以在openssl rsa后加上参数,假如你知道私钥和解密的PEM的文件名。例如,私钥的文件名是myprivkey.pvk和解密的文件名问keyout.pem,命令如下:
openssl rsa –in myprivkeypvk -out keyout.pem
附加信息
http://www.wireshark.org/docs/dfref/s/ssl.html
http://www.openssl.org/docs/apps/rsa.html#EXAMPLES
http://sourceforge.net/project/showfiles.php?group_id=23617&release_id=4880
=============
使用 Wireshark 解密 SSL 流量,支持两种方式:
如何利用 Wireshark 解密 SSL 和 TLS 流量
edit -> preferences -> protocols -> ssl: rsa keys list
WSSLKEYLOGFILE 是 NSS 底层密码库提出的一种技术,所有基于 NSS 的应用程序在运行期间可以将通信过程中的会话密钥导出到一个文件中,一旦有了这个密码文件,Wireshark 就能够解密所有的 TLS 流量了。
现在 OpenSSL 等其他的 TLS 实现也能支持这种方式,通过 Chrome 和 Firefox 浏览器捕获 TLS 流量,Wireshark 就能够解密
ubuntu 下使用命令行启动浏览器为了保证能读到环境变量
$ export SSLKEYLOGFILE=/tmp/keylog.txt
$ /opt/google/chrome/chrome
$ /usr/bin/firefox
在wireshark中设置key log路径
edit -> preferences -> protocols -> ssl: (Pre)-Master-Secret log filename: /tmp/keylog.txt
设置之后可以解密 SSL 流量,可以看到 SSL 交互过程,可以 Follow SSL Stream
查看完整 HTTPS 数据
======== End
原文:https://www.cnblogs.com/lsgxeva/p/14260552.html