TLS 1.3 — это новейшая версия протокола транспортного уровня TLS, который отвечает за безопасною передачу и целостность сообщения.
TLS 1.3 был разработан в августе 2018 года и описан в RFC 8446. Работать над ним начали ещё в 2014 году. К этому моменту 80% трафика в Chrome и 70% в Firefox шло через защищённое соединение. Однако предыдущая версия протокола — TLS 1.2 — уже не отвечала требованиям безопасности и производительности.
TLS 1.2 разрабатывался в 2008 году. Тогда для доступа в интернет использовались только стационарные компьютеры. Но сейчас у каждого есть смартфон, и люди выходят в интернет с мобильных устройств чаще, чем с компьютеров. А у них вычислительные возможности меньше, чем у ПК. И чтобы сайты со смартфонов открывались достаточно быстро, нужно было уменьшить время установки соединения.
Другая проблема TLS 1.2 была связана с многочисленными атаками. Их было настолько много, что для описания создали отдельный документ — RFC 7457.
В TLS 1.3 эти проблемы удалось решить. Рассказываем, чем новая версия отличается от TLS 1.2 и какие у неё особенности.
Основные преимущества TLS 1.3 — это лучшая производительность и безопасность.
1. Запрет устаревших технологий. TLS 1.2 поддерживает много устаревших технологий, которые сейчас не считаются безопасными, например MD5, SHA-1, 3DES, DES или AES-CBC. В TLS 1.3 от этих технологий отказались.
При этом безопасность в новой версии приоритетнее, чем обратная совместимость. Поэтому если какое-то устройство до сих пор поддерживает только устаревшие протоколы, то соединение с ним установлено не будет.
В протокол добавили несколько новых шифров. В итоге TLS 1.3 поддерживает только шифры AEAD — они обеспечивают одновременно и шифрование данных, и создание MAC. Такие шифры считаются более безопасными, и вот почему.
Если за шифрование сообщения и создание MAC отвечают разные шифры и по отдельности они обеспечивают безопасность, то это не значит, что в сочетании друг с другом они тоже будут обеспечивать безопасность. Чтобы решить эту проблему, в TLS 1.2 использовались наборы шифров. Но они уязвимы для некоторых атак. А шифры AEAD избавляют протокол от этой проблемы.
2. Совершенная прямая секретность. В TLS 1.3 используются только алгоритмы, которые обеспечивают PFS — совершенную прямую секретность. Эта технология требует, чтобы для каждой новой сессии генерировались новые ключи шифрования. Таким образом, даже если злоумышленнику удастся перехватить сообщение, а потом через какое-то время получить доступ к ключу, он всё равно не сможет расшифровать данные, так как ключ будет уже другим. Поэтому в TLS 1.3 запрещены алгоритм со статическим закрытым ключом RSA и алгоритм Диффи — Хеллмана со статическими параметрами.
Получается, что в протоколе остаётся только ограниченный набор шифров, что помогает не только усилить безопасность, но и улучшить производительность. Но об этом чуть позже.
3. Запрет повторного согласования TLS. Повторное согласование в TLS 1.2 позволяло менять детали рукопожатия (handshake) после того, как соединение уже было установлено. И это было уязвимым местом в протоколе. В TLS 1.3 оно запрещено.
1. Упрощённый процесс рукопожатия. Его удалось сократить до 1-RTT. Это позволило уменьшить время установки соединения почти в 2 раза.
В TLS 1.2:
В TLS 1.3 более узкий набор шифров. Поэтому в первом же сообщении клиент предполагает, какой шифр сервер поддерживает.
Если вдруг предположение клиента оказалось неверным и сервер не поддерживает нужный шифр, тогда в ответ сервер отправляет HelloRetryRequest (запрос на повторную отправку Hello) и информацию о шифрах, которые он поддерживает. А дальше всё происходит по стандартной схеме.
2. 0-RTT — новый подход к возобновлению соединения. Он позволяет максимально быстро восстановить сессию. Если пользователь заходил на сайт, потом закрыл его, а через какое-то время снова решил зайти, то клиент и сервер не будут проводить весь процесс рукопожатия полностью.
Получается, что обмен данными происходит ещё до того, как соединение возобновлено, в первых сообщениях. Это сильно ускоряет процесс загрузки страницы, особенно на смартфонах.
Сейчас TLS 1.3 автоматически поддерживает большинство популярных браузеров: Chrome, Firefox, все браузеры компании Microsoft. Полный переход всего интернета на новую версию протокола — это лишь вопрос времени.
Наши клиенты часто спрашивают, поддерживает ли наша CDN новую версию протокола. Отвечаем.
TLS 1.3 мы внедрили сразу, как только он появился, в 2018 году. В протоколе по умолчанию задействованы все технологии, в том числе 0-RTT.
Протокол поддерживается по умолчанию для всех клиентов. Если вы уже подключили G-Core Labs CDN, дополнительно ничего делать не нужно.
Если вы пока не используете CDN, то самое время попробовать. Благодаря нашей сети ваш контент будет доставлен не только максимально быстро, но и предельно безопасно.