Как отключить ключи Diffie-Hellman SSL/TLS менее 2048 бит

Вопрос или проблема

Я хочу отключить обмен ключами по Диффи-Хеллману с ключами короче 2048 бит, так как у меня есть предупреждение о уязвимости слабого обмена ключами SSL/TLS.

В качестве решения инструмент сам подсказывает мне следующее:

Измените конфигурацию сервера SSL/TLS так, чтобы разрешить только сильные обмены ключами. Обмены ключами, используемые на сервере, должны обеспечивать как минимум 112 бит безопасности, поэтому минимальный размер ключа, чтобы не возникала данная уязвимость, должен быть:  
2048 бит для обмена ключами Диффи-Хеллмана (DH) или RSA  
224 бита для обмена ключами по эллиптической кривой Диффи-Хеллмана (EDCH).

Согласно тому, что я нашел, я вижу, что изменение следующей строки в файле java.security исправит ошибку

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES,
MD5withRSA,
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,
включить jdk.disabled.namedCurves

на

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES,
MD5withRSA,
DH keySize < 2048, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,
включить jdk.disabled.namedCurves

Должен ли я внести какие-либо другие изменения, так как я читал на некоторых форумах, что изменение этой строки по-прежнему приводит к появлению уязвимости?

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

Команда RHEL update-crypto-policies является наиболее близкой, но с умолчательными политиками, такими как, например, update-crypto-policies --set FUTURE, она не предоставляет возможности регулирования одной настройки без создания своей собственной, и ваши приложения могут даже не иметь криптополитики.

Ответ или решение

Для решения проблемы отключения обмена ключами Diffie-Hellman (DH) с длиной менее 2048 бит в SSL/TLS, вам необходимо внести изменения в конфигурацию сервера. Это важно для предотвращения уязвимостей, связанных с использованием слабых ключей, что может привести к компрометации передаваемых данных. Ниже представлена пошаговая инструкция по выполнению данной задачи.

Шаг 1: Изменение java.security

Основное изменение, которое необходимо внести, заключается в редактировании файла java.security.

  1. Найдите файл:

    • Обычно файл находится по пути: $JAVA_HOME/jre/lib/security/java.security или $JAVA_HOME/lib/security/java.security.
  2. Откройте файл для редактирования:

    • Вы можете использовать текстовый редактор, такой как vi или nano в терминале:
      vi $JAVA_HOME/jre/lib/security/java.security
  3. Измените строку jdk.tls.disabledAlgorithms:

    • Найдите строку, которая выглядит следующим образом:
      jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES,
      MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,
      include jdk.disabled.namedCurves
    • Измените DH keySize < 1024 на DH keySize < 2048:
      jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES,
      MD5withRSA, DH keySize < 2048, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,
      include jdk.disabled.namedCurves
  4. Сохраните изменения и закройте редактор.

Шаг 2: Проверка влияния изменений

После изменения файла java.security, важно убедиться, что изменения вступили в силу:

  1. Перезапустите связанные службы:

    • После внесения изменений, вам необходимо перезапустить серверные приложения, использующие Java, чтобы они смогли подхватить новые настройки.
  2. Проверьте конфигурацию:

    • Используйте инструменты, такие как openssl или специализированные сканеры уязвимостей, чтобы проверить, действительно ли сервер теперь отклоняет все соединения с ключами DH менее 2048 бит. Например:
      openssl s_client -connect your-server:443 -cipher 'EXP'

Шаг 3: Дополнительные меры

Хотя изменение java.security является основным шагом, объем изменений может варьироваться в зависимости от вашей конкретной среды и используемых приложений. Вот ещё несколько рекомендаций:

  • Проверьте конфигурацию веб-сервера:

    • Если вы используете веб-сервера, такие как Apache или Nginx, убедитесь, что в их конфигурации также отключены слабые ключи. Например, в Nginx вы можете использовать директиву ssl_dhparam для указания сильного DH параметра:
      ssl_dhparam /etc/ssl/certs/dhparam.pem;
  • Создайте собственные криптографические политики:

    • Если ваши приложения поддерживают это, создайте кастомные криптографические политики для обеспечения строгих требований к шифрованию. Это может включать систему команд, как update-crypto-policies, только для определенных приложений.

Заключение

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

Не забывайте, что безопасность – это динамичный процесс, и регулярные проверки, обновления и настройка систем являются обязательными условиями для защиты данных.

Оцените материал
Добавить комментарий

Капча загружается...