Расшифровывать ssl сетевые пакеты с помощью ключей, полученных из openssl api - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть клиентское приложение, которое запускается на моем компьютере и использует 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 пакетов после расшифровки, чтобы увидеть, была ли расшифровка правильной.Но это также кажется тупиком.

Кто-нибудь знает, что мне не хватает, что я могу делать неправильно?

1 Ответ

1 голос
/ 16 декабря 2010

Если вы можете изменить OpenSSL и заставить его использовать ваше клиентское приложение, то все, что вам нужно сделать, - это заставить ваш измененный OpenSSL вывести дешифрованные данные в файл.Еще более простой альтернативой было бы заставить OpenSSL использовать один из наборов шифров NULL, даже когда приложение запрашивает определенное шифрование.

...