Следует ли мне настраивать Ciphersuites на openssl после установки MinProtocol и CipherString?

Текущая версия OpenSSL

OpenSSL 1.1.1d  10 Sep 2019 (Library: OpenSSL 1.1.1g  21 Apr 2020)

Текущая openssl.cnf конфигурация

Вверху файла

openssl_conf = default_conf

Внизу файла

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=1

Нет директивы Ciphersuites .

Список поддерживаемых шифров отличается от конфигурации

Однако, когда я запрашиваю разрешенные шифры с помощью openssl ciphers -s -v , я получаю такие шифры, как:

DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES128-SHA  TLSv1 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1
ECDHE-RSA-AES128-SHA    TLSv1 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1

Должен ли я определить Параметр Ciphersuites или openssl ciphers -s -v каким-то образом ненадежен?

Документация

-s Список только поддерживаемых шифров: те, которые соответствуют уровню безопасности, { {1}}, а также минимальную и максимальную версию протокола.

В то время как SecLevel 1 разрешает SSLv3 и TLSv1, MinProtocol - нет.

Источники:

-1
задан 15 April 2021 в 21:05
1 ответ

Большинство шифрсуитов совместимы более чем с одним протоколом.

За исключением TLS 1.3, который является полностью отдельным, и SSL 2, который был сломан в течение десятилетий и больше не реализован OpenSSL 1.1.0 (2016), большинство шифрсуитов SSL/TLS могут использоваться более чем в одной версии протокола. Если рассматривать их в хронологическом порядке, то все шифрсуиты, определенные в SSL 3, за исключением странных правительственных (Fortezza), по-прежнему используются в TLS 1.0, а эти плюс новые, определенные в/для 1.0 (в основном EC), но за вычетом намеренно ослабленных "экспортных" (которые в 2006 году уже были устаревшими), по-прежнему используются в 1.1, в котором не определено ни одного нового набора. В версии 1.2 сохраняется большинство наборов из версии 1.1, за исключением single-DES, который считался нерабочим задолго до 2008 года, а также множество новых наборов (использующих AEAD и/или SHA2).

Как указано на странице man для SSL_CIPHER_description, которая связана со страницей для шифров:

<версия протокола>
Минимальная версия протокола, которую поддерживает шифрсуит, например TLSv1.2. Обратите внимание, что это не всегда совпадает с версией протокола, в которой шифрсуит был впервые определен, поскольку некоторые шифрсуиты имеют обратную совместимость с более ранними версиями протокола.

Обратите внимание на "минимум". DHE-RSA-AES256-SHA можно использовать в SSL3 TLS1.0 TLS1.1 и TLS1.2, поэтому его минимальная версия - SSL3.

Использование более старых сьютов в 1. 2 является не предпочтительным или лучшей практикой, в частности потому, что новые наборы, использующие AEAD (сначала GCM и CCM, затем ChaCha/Poly) имеют лучшие свойства безопасности, по крайней мере, в отсутствие encrypt-then-mac (RFC7366), который не был опубликован до 2014 года и не был широко внедрен, потому что AEAD уже был там, но он разрешен и поддерживается OpenSSL, и вывод команды ciphers отражает это.

Так что да, если вы собираетесь требовать 1.2, вы также можете ограничить шифрпакеты до AEAD с очень небольшим снижением совместимости (хотя есть некоторые реализации, например Java 7, которые поддерживают 1.2, но только со старыми наборами, а не с новыми наборами AEAD).

1
ответ дан 24 April 2021 в 03:02

Теги

Похожие вопросы