Битлента
Словарь терминов3 мин чтения·

TLS 1.3: что изменилось по сравнению с TLS 1.2

TLS 1.3 сократил рукопожатие, убрал устаревшие алгоритмы и сделал прямую секретность обязательной. Что нового и как проверить версию у своего сайта.

Зачем понадобилась новая версия

TLS 1.2 вышел в 2008 году и много лет служил основой защищённого веба, но накопил груз. Протокол допускал множество наборов алгоритмов, среди которых были ненадёжные, а сложность настройки порождала ошибки и громкие уязвимости в старых режимах. TLS 1.3 утвердили в 2018 году, и главная его идея состоит в упрощении: убрать всё сомнительное и оставить только то, что действительно безопасно.

Базовое устройство протокола описано на странице про TLS, здесь остановимся именно на различиях.

Быстрее рукопожатие

В TLS 1.2 для установки соединения требовалось два полных обмена между клиентом и сервером, после которых начинались данные. В TLS 1.3 хватает одного: клиент сразу присылает свои параметры и долю ключа для обмена, сервер отвечает, и уже можно передавать данные. На соединении с большой задержкой это экономит заметное время.

Есть режим возобновления сеанса, при котором клиент, ранее подключавшийся к серверу, может отправить данные сразу с первым сообщением, режим 0-RTT. Он ускоряет соединение, но данные в нём можно повторно воспроизвести, поэтому его допускают только для безопасных запросов, которые не меняют состояние. Использует эти идеи и QUIC, с которым протокол тесно связан.

Что убрали и что стало обязательным

Из протокола удалили устаревшие шифры и режимы: RC4, 3DES, режим CBC, хеши MD5 и SHA-1 в подписях рукопожатия, сжатие данных, а также обмен ключами через шифрование открытым ключом RSA. Остались только современные наборы с аутентифицированным шифрованием: AES-GCM и ChaCha20-Poly1305. Обмен ключами теперь всегда эфемерный, на основе Диффи-Хеллмана, поэтому прямая секретность обязательна, что подробно описано в материале про PFS.

Большая часть рукопожатия теперь шифруется, включая сертификат сервера. В TLS 1.2 сертификат передавался открыто, и наблюдатель видел, какой сертификат предъявляет сервер. Имя сайта, впрочем, по-прежнему может быть видно в поле SNI, если не применяется расширение шифрования этого поля.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Совместимость и подводные камни

Внедрение TLS 1.3 показало проблему, известную как окостенение протоколов. Некоторое сетевое оборудование проверяло трафик и ломалось, встретив что-то необычное. Чтобы с этим справиться, разработчики сделали рукопожатие внешне похожим на TLS 1.2, добавив совместимый режим и обозначив новую версию через расширение. Всё равно в первые годы часть корпоративных прокси и средств проверки трафика вела себя нестабильно.

Сервер может поддерживать обе версии сразу, и в большинстве систем так и делают: клиент и сервер договариваются о самой новой общей версии. Наборы алгоритмов в TLS 1.3 описываются проще, чем в 1.2, как показывает страница про cipher suite.

Как проверить у себя: TLS 1.3

В браузере откройте инструменты разработчика и раздел безопасности: там указана версия протокола и набор шифров. Для сервера команда openssl s_client -connect имя:443 -tls1_3 завершится ошибкой, если версия не поддерживается, а при успешном рукопожатии покажет строку Protocol : TLSv1.3.

Если вы администрируете сервер, включите TLS 1.3 и оставьте 1.2 для совместимости, а версии 1.0 и 1.1 отключите: они признаны устаревшими и отключены в современных браузерах. Проверить итоговую конфигурацию можно онлайн-сканерами TLS.

TLS 1.3 и мониторинг трафика

Из-за обязательной прямой секретности старый приём, когда администратор держал закрытый ключ сервера и с его помощью расшифровывал записанный трафик для отладки, в TLS 1.3 больше не работает. Разработчикам и специалистам по сетям приходится анализировать данные на самих конечных точках либо использовать журналы ключей сеанса, которые браузеры умеют сохранять по настройке. Это была одна из причин споров при разработке стандарта. Для домашнего пользователя вывод другой: даже если ключ сервера в будущем утечёт, записанный сегодня трафик расшифровать не удастся.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
tlshttpsпротоколы

Часто задаваемые вопросы

Читайте также