Рукопожатие TLS
Что такое Рукопожатие TLS?
Рукопожатие TLSНачальный обмен протокола Transport Layer Security, в ходе которого аутентифицируется сервер (и при необходимости клиент) и вырабатываются симметричные ключи для шифрования остальной сессии.
Рукопожатие TLS согласует версию протокола, шифронабор, идентичность сервера и сессионные ключи до отправки каких-либо прикладных данных. В TLS 1.2 (RFC 5246) рукопожатие занимает два кругооборота и использует ClientHello, ServerHello, Certificate, ServerKeyExchange, а также пару Finished, подтверждающую согласованный транскрипт. TLS 1.3 (RFC 8446, 2018) сжимает это до одного кругооборота, шифрует всё после ServerHello, убирает устаревшие примитивы (RC4, режимы CBC без AEAD, статический обмен ключами на RSA, сжатие) и поддерживает 0-RTT-возобновление — быстрое, но уязвимое к replay, поэтому оно должно нести только идемпотентные запросы.
Обе современные версии обязывают использовать эфемерный (EC)DHE для forward secrecy и аутентифицируют сервер сертификатом X.509, проверяемым по цепочке доверия. Именно хеш транскрипта рукопожатия и MAC в Finished исторически ломали атаки на даунгрейд и пересогласование: POODLE (2014) принудительно опускал жертв до padding CBC в SSL 3.0, FREAK и Logjam (2015) навязывали экспортные RSA/DH, а BEAST эксплуатировал CBC IV в TLS 1.0. Защитный маркер от даунгрейда в server random у TLS 1.3 теперь сигнализирует о подмене. Среди других значимых для эксплуатации сбоев — слабые или устаревшие шифронаборы, просроченные или неверно выпущенные сертификаты, отсутствие OCSP stapling и несоответствия SNI/сертификата на общей инфраструктуре.
sequenceDiagram participant C as Клиент participant S as Сервер C->>S: ClientHello (версии, шифронаборы, key share) S->>C: ServerHello (выбранный набор, key share) S->>C: Certificate + CertificateVerify S->>C: Finished Note over C,S: Обе стороны выводят симметричные ключи через (EC)DHE C->>S: Finished C->>S: Зашифрованные прикладные данные
● Примеры
- 01
Браузер устанавливает TLS 1.3 с https://example.com за один кругооборот, согласовывая x25519 и AES-GCM.
- 02
Старый клиент откатывается к TLS 1.2 с ECDHE-RSA-AES256-GCM-SHA384 на том же сервере.
● Частые вопросы
Что такое Рукопожатие TLS?
Начальный обмен протокола Transport Layer Security, в ходе которого аутентифицируется сервер (и при необходимости клиент) и вырабатываются симметричные ключи для шифрования остальной сессии. Относится к категории Сетевая безопасность в кибербезопасности.
Что означает Рукопожатие TLS?
Начальный обмен протокола Transport Layer Security, в ходе которого аутентифицируется сервер (и при необходимости клиент) и вырабатываются симметричные ключи для шифрования остальной сессии.
Как защититься от Рукопожатие TLS?
Защита от Рукопожатие TLS обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Рукопожатие TLS?
Распространённые альтернативные названия: Протокол рукопожатия TLS.