Перейти к содержимому
ecdsa.com

Защита от понижения версии

Механизмы (например, сигнальное значение TLS 1.3 в ServerHello.random), которые не дают атакующему вынудить две стороны, поддерживающие стойкую версию протокола или алгоритм, перейти на более слабый вариант.
Другие написанияdowngrade attack protectionDOWNGRD sentinelTLS_FALLBACK_SCSV

Сервер с поддержкой TLS 1.3, согласовавший более старую версию, обязан записать в последние 8 байт ServerHello.random значение 44 4F 57 4E 47 52 44 01 (ASCII DOWNGRD плюс 0x01) для TLS 1.2 или …00 для TLS 1.1 и ниже; клиент TLS 1.3, получив такое значение, обязан прервать соединение (RFC 9846, § 4.2.3). Случайное значение сервера входит в данные, которые сервер подписывает, поэтому атакующий не может его убрать.

Более ранние меры защиты: сигнальное значение TLS_FALLBACK_SCSV (RFC 7507) на случай, когда браузер повторяет подключение с более низкой версией (эпоха POODLE), и хеш транскрипта рукопожатия в Finished, который выявляет подмену согласованных параметров. В TLS 1.2 понижение до экспортных вариантов обмена ключами или до обмена ключами RSA (FREAK, Logjam) удавалось, потому что серверы всё ещё поддерживали слабые варианты; настоящее решение — отключить их.

Та же идея применяется и в других местах: HSTS и MTA-STS не дают понизить HTTPS или STARTTLS до соединения без шифрования, а гибридный обмен ключами не должен позволять другой стороне отбросить постквантовую часть, поэтому его согласуют как одну группу.

Стандарты и ссылки

Все термины