Назад | Перейти на главную страницу

безопасное повторное согласование openssl (не поддерживается)

Я использую веб-службу, реализованную на сервере Ubuntu 14.04 LTS. Я отлаживаю TLSv1 соединение разрывается через некоторое время между клиентом, использующим openssl version 0.9.7m и сервер, использующий openssl 1.0.1f. У меня самого нет доступа к клиентской части, только к серверу и роутеру. Когда я бегу openssl s_server вместо сервера я вижу сообщение secure renegotiation not supported когда клиент подключается. Повторное согласование не обязательно имеет какое-либо отношение к проблемам с подключением, но я пытаюсь понять повторное согласование. Пока мне не удалось найти ответы на следующие вопросы:

  1. Каковы типичные триггеры для повторных переговоров? Делается ли это небезопасно, если безопасное согласование не поддерживается?
  2. Инициируется ли повторное согласование кодом клиента или сервера, или же openssl может инициировать его в определенный момент?
  3. Есть ли способ заставить пересмотреть договор с openssl s_server и / или openssl s_client экспериментировать с этим?

Есть четыре типа повторных переговоров возможно:

  • Безопасное повторное согласование по инициативе клиента
  • Инициированное клиентом небезопасное повторное согласование
  • Инициированное сервером безопасное повторное согласование
  • Инициированное сервером небезопасное повторное согласование

С момента открытия возможности выполнять повторные переговоры (CVE-2009-3555), уязвимость, которая существует «на всех текущих версиях TLS», можно с уверенностью предположить, что повторное согласование не будет выполнено безопасно, если и клиент, и сервер Расширение индикации повторного согласования TLS.

Первой реакцией OpenSSL было отключить повторное согласование, с реализацией безопасного повторного согласования в более позднем выпуске.

Клиент, использующий 0.9.7m, по определению, предшествует CVE-2009-3555 и одновременно уязвим для этой атаки, а также не может выполнять безопасное повторное согласование.

Что касается того, что может вызвать повторное согласование, вы можете отслеживать это в разных RFC: TLS v1.0, TLS v1.1, TLS v1.2. Разные Сообщения в блоге Анализ CVE-2009-3555 также предоставляет подробную информацию о том, когда это произойдет.

И относительно того, можно ли это заставить s_client подкоманда для тестирования, да, это задокументировано на странице руководства:

ПОДКЛЮЧЕННЫЕ КОМАНДЫ
Если соединение установлено с сервером SSL, то отображаются любые данные, полученные от сервера, и любые нажатия клавиш будут отправлены на сервер. При интерактивном использовании (что означает, что ни -quiet, ни -ign_eof не были заданы), сеанс будет повторно согласован, если строка начинается с R [...]

Это тоже можно сделать программно.