【发布时间】:2011-07-30 08:49:47
【问题描述】:
我使用 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_write 和 ssl_read" 为什么?
-
因为我想发送个性化的握手消息。
-
很高兴您想发送个性化的握手消息。但它没有回答我的问题。
-
在重新协商阶段,握手消息使用 AES 加密,然后使用 MD5 散列。我想解密这些消息,而不是继续透明的重新协商阶段。
标签: c encryption openssl aes ssl