我使用 OpenSSL 库在客户端和主机之间用 C 语言创建了一个 SSL 套接字。 我需要 SSL session 的 AES key 来正确加密消息,但我无法使用标准函数 ssl_write 和 ssl_read。 我发现有一个名为AES_KEY的结构,但我不知道如何找到它!
SSL_write 和 SSL_read 仅适用于数据包类型:23(“应用程序协议(protocol)”)
我如何解密,例如,来自服务器的 SSL Hello 消息(我打开了与该服务器的 SSL channel )?我如何加密来自其他客户端的 SSL Hello 客户端(在 clair 中)?
我正在尝试演示 TLS 协议(protocol)“TLS 重新协商”阶段的攻击。我正在尝试使用自定义代理模拟攻击 MITM。
现在,服务器向代理发送一定数量的加密消息,类型为 22 (Handshake) 和 20 (ChangeCipherSpec)。我怎样才能阅读这些消息并解密它们?标准库 ssl_read 仅适用于消息 23(应用程序)。
此外,客户端向代理发送客户端 Hello 和其他类型为 22 和 20 的消息。我如何编写这些消息并对其进行加密?我尝试使用 ssl_write,但服务器不理解这些消息。
最佳答案
您应该使用 SSL_CTX_set_info_callback 而不是手动(en|de)加密记录获取您想要的信息。
关于c - OpenSSL - 找到 AES key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559094/