Я создал SSL-сокет на C между клиентом и хостом, используя библиотеку OpenSSL. Мне нужен ключ AES сеанса SSL для правильного шифрования сообщения, и я не могу использовать стандартные функции ssl_write и ssl_read. Я обнаружил, что существует структура под названием AES_KEY, но я не знаю, как ее найти!
SSL_write и SSL_read корректно работают только с типом пакета: 23 («Протокол приложения»)
Как я могу расшифровать, например, сообщение SSL Hello, пришедшее с сервера (я открыл канал SSL с этим сервером)? Как я могу зашифровать SSL Hello Client (он находится в clair), который исходит от другого клиента?
Я пытаюсь продемонстрировать атаку на этапе «повторного согласования TLS» протокола TLS. Я пытаюсь смоделировать атаку MITM с помощью кастомного прокси.
Теперь сервер отправляет прокси определенное количество зашифрованных сообщений типа 22 (рукопожатие) и 20 (ChangeCipherSpec). Как я могу прочитать эти сообщения и расшифровать их? Стандартная библиотека ssl_read работает только с сообщениями 23 (Приложение).
Кроме того, клиент отправляет прокси клиентское Hello и другие сообщения типа 22 и 20. Как я могу написать эти сообщения и зашифровать их? Я пробовал использовать ssl_write, но сервер не понимает эти сообщения.