Перейти к содержанию

Слабая конфигурация SSL/TLS

Идентификатор проверки Gixy: weak_ssl_tls

Обзор

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

Что обнаруживается

1. Небезопасные протоколы TLS

Обнаруживает использование устаревших протоколов, уязвимых для атак:

Протокол Статус Уязвимости
SSLv2 ❌ Небезопасен Множество критических уязвимостей
SSLv3 ❌ Небезопасен Атака POODLE
TLSv1.0 ❌ Небезопасен BEAST, POODLE, CRIME
TLSv1.1 ❌ Небезопасен Слабые шифры, нет AEAD
TLSv1.2 ✅ Безопасен Используйте с сильными шифрами
TLSv1.3 ✅ Безопасен Современный, рекомендуется

2. Слабые наборы шифров

Обнаруживает наборы шифров, которых следует избегать:

  • NULL-шифры — Шифрование отсутствует
  • EXPORT-шифры — Намеренно ослаблены (40-56 бит)
  • DES/3DES — Уязвимы для атаки Sweet32
  • RC4 — Взломанный потоковый шифр
  • Анонимные шифры (ADH/AECDH) — Нет аутентификации
  • Шифры на основе MD5 — Слабая хеш-функция

3. Предпочтение шифров сервера

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

Примеры

❌ Плохо: Включены небезопасные протоколы

server {
    listen 443 ssl;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;  # SSLv3, TLSv1, TLSv1.1 небезопасны
}
Проблема: Включены небезопасные протоколы: SSLv3, TLSv1, TLSv1.1

❌ Плохо: Слабые шифры

server {
    listen 443 ssl;
    ssl_ciphers ALL:RC4:DES:3DES;  # Включены слабые шифры
}
Проблема: Обнаружены слабые шифры: RC4, DES, 3DES

✅ Хорошо: Безопасная конфигурация

server {
    listen 443 ssl;

    # Только современные протоколы
    ssl_protocols TLSv1.2 TLSv1.3;

    # Набор шифров Mozilla Intermediate
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    # Сервер выбирает шифр
    ssl_prefer_server_ciphers on;

    # HSTS проверяется отдельным плагином `hsts_header`.
}

Рекомендуемая конфигурация

На основе Mozilla SSL Configuration Generator:

Промежуточная конфигурация (Рекомендуется)

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

Современная конфигурация (только TLSv1.3)

ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;

Почему это важно

Слабые конфигурации SSL/TLS подвергают ваш сервер:

  1. Атака POODLE (SSLv3) — Позволяет расшифровывать защищённые соединения
  2. Атака BEAST (TLSv1.0) — Позволяет расшифровывать HTTPS-cookie
  3. Атака Sweet32 (3DES) — Позволяет восстанавливать открытый текст из длительных соединений
  4. Смещение RC4 — Позволяет восстанавливать открытый текст из зашифрованных потоков
  5. Атаки понижения — Принуждают использовать более слабые протоколы

Тестирование вашей конфигурации

Используйте эти инструменты для проверки вашей конфигурации SSL/TLS:

Ссылки

Укрепляйте NGINX с поддерживаемыми RPM

Используйте NGINX Extras от GetPageSpeed для постоянно обновляемого NGINX и модулей на RHEL/CentOS/Alma/Rocky. Подробнее.