Ответ
HTTPS (TLS/SSL) использует гибридную криптосистему, комбинируя сильные стороны обоих типов шифрования для достижения безопасности и производительности.
Роли в процессе TLS handshake:
-
Асимметричное шифрование (например, RSA, ECDSA):
- Цель: Безопасный обмен ключами и аутентификация.
- Применение: Клиент проверяет подлинность сервера по его цифровому сертификату (содержащему публичный ключ). Затем генерируется pre-master secret, который шифруется публичным ключом сервера и отправляется. Расшифровать его может только сервер, обладающий приватным ключом.
- Недостаток: Вычислительно сложно, непригодно для шифрования всего трафика.
-
Симметричное шифрование (например, AES-256-GCM, ChaCha20-Poly1305):
- Цель: Шифрование основного потока данных.
- Применение: Из
pre-master secretобе стороны независимо вычисляют идентичные сессионные ключи. Все дальнейшее общение (HTTP-запросы/ответы) шифруется и расшифровывается с помощью этих быстрых симметричных ключей. - Преимущество: Высокая скорость шифрования/расшифровки.
Упрощенная схема handshake:
1. ClientHello -> ServerHello (согласование параметров)
2. Сервер отправляет Certificate (публичный ключ).
3. Клиент проверяет сертификат, генерирует pre-master secret, шифрует его публичным ключом сервера (асимметричное шифрование).
4. Обе стороны вычисляют session keys из pre-master secret.
5. Далее весь трафик шифруется session keys (симметричное шифрование).
Практическое значение для DevOps: При настройке веб-серверов (Nginx, Apache) или Ingress-контроллеров важно использовать современные шифры, отключать устаревшие протоколы (SSLv3, TLS 1.0) и правильно управлять жизненным циклом сертификатов (например, с помощью cert-manager и Let's Encrypt).