Как сделать так, чтобы сервер OpenSSL C поддерживал только TLS 1.3?

У нас есть программа Linux C, использующая API OpenSSL, действующая как сервер TLS. В настоящее время у него есть код:

  context = SSL_CTX_new(TLS_method());

На странице руководства OpenSSL v1.1.1 говорится, что он будет поддерживать SSLv3, TLSv1, TLSv1.1, TLSv1.2 и TLSv1.3. Хотя теперь у нас есть новое требование - поддерживать только TLS 1.3. Будет ли установка SSL_CTX_set_min_proto_version (TLS1_3_VERSION) просто помочь? Или есть другой практический способ отклонения сервером клиентских подключений с версией ниже, чем TLS 1.3?

Большое спасибо.


person hardbean    schedule 31.03.2021    source источник


Ответы (2)


Позвонить SSL_CTX_set_min_proto_version(context, TLS1_3_VERSION); - это все, что нужно. Это ограничивает сеансы, созданные из этого контекста, чтобы не использовать версии TLS ниже 1.3.

Кроме того, вы можете использовать TLS_server_method для создания объекта контекста, который будет создавать сеансы, которые по умолчанию работают в режиме сервера.

person dbush    schedule 31.03.2021

Другое решение, аналогичное уже опубликованному, - использовать SSL_CTX_set_options, который позволяет передавать все протоколы, которые вы хотите игнорировать, например

SSL_OP_NO_SSLv3, SSL_OP_NO_TLSv1, SSL_OP_NO_TLSv1_1, SSL_OP_NO_TLSv1_2
person Nina    schedule 31.03.2021
comment
Спасибо Нина, приятно знать этот вариант. - person hardbean; 31.03.2021