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