SSL выполняет автоматическое пересмотр - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть клиент-серверное приложение, написанное на c ++ с использованием SSL 1.0.1n для связи через сокеты.Я пытаюсь предотвратить повторные переговоры (это требование).Нигде в моем коде я не инициирую пересмотр.Я вижу, что openssl имеет BIO_set_ssl_renegotiate_bytes и BIO_set_ssl_renegotiate_timeout, который позволяет настроить автоматическое повторное согласование после считывания определенного количества байтов или тайм-аута.Мой вопрос: если я не установлю значение ни для одного из них, есть ли у них значение по умолчанию, при котором SSL все равно будет инициировать повторное согласование автоматически?У меня возникли проблемы с выяснением, что вызывает пересмотр, если не сделано в коде.

1 Ответ

0 голосов
/ 17 февраля 2019

Я пытаюсь предотвратить пересмотр (это требование)

Надеюсь, что это требование не в ответ на CVE-2009-3555 .Это было исправлено в OpenSSL 0.9.8k в ноябре 2009 .Протоколы TLSv1.1 и новее никогда не подвергались этой уязвимости.

Однако вы все равно можете установить параметр SSL_OP_NO_RENEGOTIATION с помощью SSL_CTX_set_options() или SSL_set_options:

SSL_CTX_set_options

ИМЯ

SSL_CTX_set_options, SSL_set_options, SSL_CTX_clear_options, SSL_clear_options, SSL_CTX_get_options, SSL___traject_option*

SYNOPSIS

 #include <openssl/ssl.h>

 long SSL_CTX_set_options(SSL_CTX *ctx, long options);
 long SSL_set_options(SSL *ssl, long options);

 long SSL_CTX_clear_options(SSL_CTX *ctx, long options);
 long SSL_clear_options(SSL *ssl, long options);

 long SSL_CTX_get_options(SSL_CTX *ctx);
 long SSL_get_options(SSL *ssl);

 long SSL_get_secure_renegotiation_support(SSL *ssl);

ОПИСАНИЕ

SSL_CTX_set_options () добавляет опции, установленные с помощью битовой маски, в опции для ctx.Параметры, уже установленные ранее, не очищаются!

SSL_set_options () добавляет параметры, установленные через битовую маску в параметрах для ssl.Параметры, уже установленные ранее, не очищаются!

SSL_CTX_clear_options () очищает параметры, установленные с помощью битовой маски в параметрах ctx.

SSL_clear_options () очищает параметры, установленные с помощью битовой маски, в параметрах ssl.

SSL_CTX_get_options () возвращает параметры, установленные для ctx.

SSL_get_options () возвращает параметры, установленные для ssl.

SSL_get_secure_renegotiation_support () указывает, поддерживает ли одноранговый узел безопасное пересогласование.Обратите внимание, это реализовано с помощью макроса.ПРИМЕЧАНИЯ

Поведение библиотеки SSL можно изменить, установив несколько параметров.Параметры кодируются как битовые маски и могут быть объединены с помощью побитовой операции или операции (|).

SSL_CTX_set_options () и SSL_set_options () влияют на (внешнее) поведение протокола библиотеки SSL.(Внутреннее) поведение API можно изменить с помощью аналогичных функций SSL_CTX_set_mode и SSL_set_mode ().

Во время рукопожатия используются настройки параметров объекта SSL.Когда новый объект SSL создается из контекста с помощью SSL_new (), текущая настройка параметра копируется.Изменения в ctx не влияют на уже созданные объекты SSL.SSL_clear () не влияет на настройки.

...

Доступны следующие опции , изменяющие :

...

SSL_OP_NO_RENEGOTIATION

Отключить все повторные переговоры в TLSv1.2 и более ранних версиях.Не отправляйте сообщения HelloRequest и игнорируйте запросы на повторное согласование через ClientHello.

SECURE RENEGOTIATION

...

Обратите внимание, что на странице естьраздел «БЕЗОПАСНАЯ РЕНЕГОЦИЯ».Прочтите его.

Тогда вам действительно нужно пересмотреть свои требования.Есть большая вероятность, что они на десять лет устарели.Затрачивая время и усилия на решение проблем , которые были устранены десять лет назад , вы не тратите время и усилия на решение текущих проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...