辉克's Blog

创造机会的人是勇者;等待机会的人是愚者

WIRESHARK之SSL解密

本文介绍在Wireshark网络协议分析仪中如果解密SSL和TLS流量
要求
? 以下基本知识:
? 网络追踪
? 网络,TCP/IP和SSL/TLS协议
? 证书和公私钥的使用
? Wireshark网络协议分析仪

?Wireshark 软件支持SSL解密
? 服务器或设备的私钥,私钥格式为PKCS#8 PEM
背景
在Wireshark中,SSL解析器功能完整,且支持高级特性,如提供加密私钥时的SSL解密。这对于使用SSL或TLS加密的思杰产品的排错有很大的帮助。
步骤
Wireshark 设置
1. 在Wireshark中,SSL解析器功能完整,且支持高级特性,如提供加密私钥时的SSL解密。这对于使用SSL或TLS加密的思杰产品的排错有很大的帮助。
2. 从菜单中选择Edit > Preferences.

3.打开Preferences 窗口,展开Protocols.
4.下拉选择 SSL.

5.在RSA keys list后的空白处,提供以下信息<ip>,<port>,<protocol>,<key_file_name> (如上图所示)
其中:
<ip>是具有私钥的服务器或设备的IP地址
<port> 是SSL/TLS端口号,通常是443
<protocol> 通常是HTTP
<key_file_name> 是私钥的名称和路径is the location and file name of the private key
Note: 逗号间没有符号。而且,使用分号间隔用于不同条目。
“<ip>,<port>,<protocol>,<key_file_name>;<ip>,<port>,<protocol>,<key_file_name>;<ip>,<port>,<protocol>,<key_file_name>”.
6.在SSL debug file后的空白处填入排错文件的路径和文件名
7. 点击 OK.
8. SSL则被解密(解密的SSL如下图所示)

私钥格式
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可以实现。
1.At the $ prompt, enter the command: 在$提示符,输入命令:
openssl rsa
If you enter this command without arguments, you are prompted as follows: 如果输入指令不带参数,则出现以下字样:
read RSA key
2.输入解密的私钥文件名
你可以在openssl rsa后加上参数,假如你知道私钥和解密的PEM的文件名。例如,私钥的文件名是myprivkey.pvk和解密的文件名问keyout.pem,命令如下:
openssl rsa –in myprivkeypvk -out keyout.pem

,

发表回复