TLS 1.3 и безопасные шифры — практическое руководство
Практическое руководство по TLS 1.3: настройка серверов, безопасные шифры, OCSP stapling, HSTS и чек-лист приёмки.
TLS 1.3 и безопасные шифры — практическое руководство
Введение
TLS 1.3 — современный стандарт транспортного шифрования, который упрощает хендшейк, ускоряет установку соединения и убирает устаревшие/опасные конструкции. Ниже — практический набор настроек для веб-серверов и клиентов.
1. Сервер: Nginx/Apache
1.1. Протоколы и порядок шифров
- Только TLSv1.3 (или TLSv1.2 как fallback для совместимости)
- Шифры: предпочитайте AEAD, уберите RSA key exchange и статические DH
Пример для Nginx:
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers off;
ssl_ciphers "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305";
ssl_ecdh_curve X25519:secp256r1;
1.2. OCSP Stapling и HSTS
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
1.3. Сертификаты
- Предпочитайте ECDSA P-256/P-384 или Ed25519
- RSA ≥ 3072 бита, если требуется совместимость
- Автоматизация перевыпуска через ACME (Let’s Encrypt) с OCSP stapling
2. Клиенты и библиотеки
- OpenSSL 1.1.1+/3.x:
openssl ciphers -v 'TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256' - Запрет TLSv1.0/1.1 на уровне балансировщиков и WAF
- Проверка конфигурации:
testssl.sh,sslscan,nmap --script ssl-enum-ciphers
3. Типовые ошибки
- Смешивание TLSv1.3 с устаревшими шифрами через обратную совместимость
- Отсутствие ротации ключей сессии (disable session tickets или ограничьте lifetime)
- Забытый HSTS — откат на HTTP остаётся возможным
4. Чек-лист приёмки
- Включён только TLSv1.3 (и при необходимости TLSv1.2)
- Нет RSA key exchange, нет 3DES/RC4
- OCSP stapling включён и верифицируется
- HSTS с разумным max-age и preload
- Автоматизация ACME настроена
Заключение
TLS 1.3 даёт лучшую безопасность «из коробки». Задача администратора — не сломать это лишней совместимостью и поддерживать автоматизацию сертификатов.
Ключевые слова: tls, tls13, security, ssl, encryption, best-practices, devops