Блог "Дети ОИТа"
/поиск

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