我使用OpenSSL库在C中创建了客户机和主机之间的SSL套接字。
我需要一个SSL会话的AES密钥来正确加密一条消息,并且我不能使用SSL_write和SSL_read的标准函数。
我发现有一个名为AES_KEY的结构,但我不知道如何找到它!
SSL_write和SSL_read仅在数据包类型为23(“应用程序协议”)时才能正常工作
例如,如何解密来自服务器的SSL Hello消息(我使用此服务器打开了SSL通道)?如何加密来自其他客户机的SSL Hello客户机(在clair中)?
我试图在TLS协议的“TLS重新协商”阶段演示一次攻击。我试图用一个自定义代理来模拟一个攻击MITM。
现在,服务器向代理发送一定数量的类型为22(握手)和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/