Какой метод шифрования использует SSL/TLS?

«Какой метод шифрования использует SSL/TLS?» — вопрос из категории Безопасность, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SSL (его современный преемник — TLS) использует гибридную систему шифрования, которая сочетает асимметричную и симметричную криптографию для обеспечения безопасности, производительности и аутентификации.

  1. Асимметричное шифрование (например, RSA, ECDSA) используется во время рукопожатия TLS для:

    • Аутентификации сервера (и опционально клиента) с помощью цифровых сертификатов.
    • Безопасного обмена симметричным сеансовым ключом. В современных конфигурациях с Perfect Forward Secrecy (PFS) для этого используется алгоритм Диффи-Хеллмана на эллиптических кривых (ECDHE).
  2. Симметричное шифрование (например, AES-256-GCM, ChaCha20-Poly1305) используется для шифрования самого трафика приложения после установления соединения. Оно гораздо быстрее асимметричного.

Практический пример проверки шифров:

# Просмотр информации о TLS-соединении и используемых шифрах
openssl s_client -connect example.com:443 -servername example.com | grep -A 30 "Cipher"

# Проверка поддержки PFS
nmap --script ssl-enum-ciphers -p 443 example.com

С точки зрения DevOps важно правильно настраивать веб-серверы (Nginx, Apache), отключая устаревшие протоколы (SSLv3, TLS 1.0/1.1) и слабые шифры, и использовать актуальные сертификаты от доверенных центров (например, Let's Encrypt).