我有一个在我的计算机上运行的客户端应用程序,它使用 openssl 与使用 SSLv3 的服务器进行通信。我需要看看他们在说什么,所以我基本上想编辑和重新编译 openssl 库以获得相关的加密密钥。
该应用程序通常使用 TLS-DHE-RSA-WITH-AES-256-CBC-SHA 作为密码套件。有时它使用 aes128 而不是 aes256,但这在这个阶段并不重要。到目前为止,我编辑了 s3_enc.c 文件。在 ssl3_setup_key_block 函数结束时,我将主密钥、密钥块(因此客户端-服务器写入密钥、mac 密钥和 IV)、服务器和客户端随机写入文件。http://www.ietf.org/rfc/rfc2246.txt说如果流密码是可导出的,则客户端-服务器写入密钥将相应地更新为最终的客户端-服务器写入密钥。我不确定这个密码套件是否被认为是可导出的(无论这意味着什么),但无论如何我都会创建最终的写入密钥。
问题是无论我尝试了什么,我都无法成功解密使用wireshark获取的任何数据包。无论如何,输出都是毫无意义的,我被卡住了。我正在考虑在解密后检查数据包的 mac 字段,以查看解密是否正确。但这似乎也是一条死胡同。
有谁知道我错过了什么,我可能做错了什么?