Слабая конфигурация 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 подвергают ваш сервер:
- Атака POODLE (SSLv3) — Позволяет расшифровывать защищённые соединения
- Атака BEAST (TLSv1.0) — Позволяет расшифровывать HTTPS-cookie
- Атака Sweet32 (3DES) — Позволяет восстанавливать открытый текст из длительных соединений
- Смещение RC4 — Позволяет восстанавливать открытый текст из зашифрованных потоков
- Атаки понижения — Принуждают использовать более слабые протоколы
Тестирование вашей конфигурации¶
Используйте эти инструменты для проверки вашей конфигурации SSL/TLS:
- SSL Labs Server Test
- Mozilla Observatory
openssl s_client -connect yoursite.com:443
Ссылки¶
Укрепляйте NGINX с поддерживаемыми RPM
Используйте NGINX Extras от GetPageSpeed для постоянно обновляемого NGINX и модулей на RHEL/CentOS/Alma/Rocky. Подробнее.