情况
我有一个使用 SSL 进行通信的客户端 VM 和服务器 VM。客户端 VM 使用 CLI 运行 Wireshark 捕获
Wireshark GUI 在另一台机器上本地运行。
脚步
作为客户端 VM 上的用户,我使用 python 脚本通过 SSL 启动了一个 RESTful HTTP 会话。
我已经使用wireshark 捕获了对话,现在想要对应用程序数据进行解密。
我复制了本地机器捕获的文件,现在想分析应用程序数据。
我只能通过 ssh 访问客户端 VM,并且按照 https://wiki.wireshark.org/SSL上的步骤操作 让我相信我应该
1)将客户端VM上的/home/USER./ssh/id_rsa的内容复制到本地机器。
2) 指向 SSL 首选项 RSA 密钥文件列表中的文件。3) 在相同的 SSL 首选项中配置 IP 地址、端口
预期结果
然后我希望能够查看加密的数据,但我仍然看到
实际结果
我的理论是我使用了不正确的 RSA_PRIVATE_KEY ,所以我想确认 SSL 会话中使用了哪个密钥。
如果 RSA PRIVATE KEY 正确,我还应该检查什么?
您需要远程端点的实际私钥,通过 SSL 的 HTTP 会话连接到该端点。
一个很好的例子:How to Decrypt SSL and TLS Traffic Using Wireshark
1 - 启动 Wireshark 并打开网络捕获(加密的 SSL 应该类似于以下屏幕截图)。
2 - 从菜单中,转到编辑 > 首选项。
3 - 在首选项窗口中展开协议。
4 - 向下滚动并选择 SSL。在 SSL 调试文件字段中输入调试文件的位置和文件名。
5 - 在 RSA 密钥列表字段中,单击编辑 > 新建并添加以下信息:
其中:
IP 地址:是带有私钥的服务器/设备的 IP 地址
端口:对于 SSL/TLS
协议通常是 443 协议:通常是 HTTP
Key FIle:是私钥的位置和文件名。这是您尝试解密流量的 SSL 虚拟服务器的证书密钥对中使用的密钥。所有 SSL 密钥和证书都保存在 NetScaler 设备的 config/ssl 目录中。要使用密钥解密流量,应将其保存到本地磁盘,并且应在解密流量时指定此路径。
密码:输入您在导出服务器证书时分配的密码。
6 - 解密 SSL 流量(解密的 SSL 应该类似于以下屏幕截图)。