OpenSSL - Отключить TLSv1 и некоторые небезопасные шифры в масштабе всей системы?

Я новичок в настройке OpenSSL и пытаюсь определить, может ли OpenSSL иметь TLSv1 и некоторые небезопасные шифры, отключенные каким-либо образом в системе Linux, используя общесистемную конфигурацию или пользовательскую сборки (ов) OpenSSL?

Из того, что я читал в Интернете, похоже, что это невозможно сделать на системном уровне, а только на уровне приложения, поскольку такие приложения, как Apache и Nginx, связаны с конкретная версия OpenSSL, которая затем настраивается через конфигурацию самого приложения.

Таким образом, отключение TLSv1 в Apache будет изменением конфигурации Apache, а отключение TLSv1 в Nginx - изменением конфигурации Nginx.

Мой вопрос: можно ли создать собственную версию OpenSSL, которая отключает TLSv1 и определенные шифры, которая затем устанавливается в масштабе всей системы и используется Apache и Nginx, а также любыми приложениями, которым требуется OpenSSL. в системе?

Даже если Apache и Nginx использовали разные версии OpenSSL, можно ли было построить и развернуть в системе две отдельные пользовательские версии OpenSSL, которые затем будут использоваться этими приложениями?

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

1
задан 6 July 2018 в 06:45
2 ответа

Мой вопрос: можно ли создать собственную версию OpenSSL, которая отключает TLSv1 и определенные шифры, которые затем устанавливаются системой широко и используется Apache и Ngnix, а также всеми приложениями, которым требуется OpenSSL в системе?

Если я правильно понял ваш вопрос, вы хотите отключить TLSv1 во время компиляции, чтобы openssl не поддерживал протокол. Если это то, что вам нужно, есть два применимых флага, и это официальное описание :

no-<prot>

Don't build support for negotiating the specified SSL/TLS
protocol (one of ssl, ssl3, tls, tls1, tls1_1, tls1_2,
tls1_3, dtls, dtls1 or dtls1_2). If "no-tls" is selected then
all of tls1, tls1_1, tls1_2 and tls1_3 are disabled.
Similarly "no-dtls" will disable dtls1 and dtls1_2. The
"no-ssl" option is synonymous with "no-ssl3". Note this only
affects version negotiation. OpenSSL will still provide the
methods for applications to explicitly select the individual
protocol versions.


no-<prot>-method

As for no-<prot> but in addition do not build the methods for
applications to explicitly select individual protocol
versions. Note that there is no "no-tls1_3-method" option
because there is no application method for TLSv1.3. Using
individual protocol methods directly is deprecated.
Applications should use TLS_method() instead.

Обратите внимание на последнее примечание по флагу no-tls , который заявляет, что это влияет только на переговоры.

2
ответ дан 3 December 2019 в 17:34

К сожалению, вы не можете гарантировать, что приложения перестанут использовать небезопасные конфигурации в рамках всей системы файл конфигурации. OpenSSL (и, возможно, все приложения, которые связываются с ним) необходимо перекомпилировать с отключенными небезопасным протоколом и параметрами шифрования.

И если у вас заблокирован OpenSSL, некоторые приложения используют GnuTLS, NSS или другую реализацию.

Итак. если вы хотите, чтобы ваши приложения использовали разумную конфигурацию TLS, вы должны использовать файлы конфигурации для конкретных приложений.

При этом Redhat, похоже, поддерживает общесистемные файлы конфигурации шифрования в Fedora, который когда-нибудь может оказаться в RHEL.

2
ответ дан 3 December 2019 в 17:34

Теги

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