Interested Article - TLS 1.3

TLS 1.3 — версия протокола защиты транспортного уровня ( англ. Transport Layer Security ) , являющаяся седьмой итерацией протокола TLS и его предшественника SSL ( англ. Secure Sockets Layer ). Протокол предназначен для защиты передаваемых данных между узлами сети, а именно предоставление шифрования, аутентификации и целостности соединения .

Версия 1.3 была утверждена в качестве стандарта 9 августа 2018 года Инженерным советом Интернета ( англ. Internet Engineering Task Force , IETF) .

Установка соединения в TLS 1.3

Процедура установки соединения также называется фазой рукопожатия ( англ. Handshake ) . Данная процедура была модифицирована в версии 1.3 и значительно сократила время работы. TLS 1.3 необходима только одна передача в оба конца для установки соединения. В новой версии TLS 1.3 количество переговоров между клиентом и сервером сократилось с четырёх до двух, обмен ключами и схема цифровой подписи через расширение больше не требуются.

Возобновление сеанса 0-RTT

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

Схема установки соединения в TLS 1.3

  • Клиент посылает сообщение ClientHello , состоящее из:
    1. Открытый ключ клиента key_share , полученный по протоколу Диффи-Хеллмана или идентификаторы секретных ключей , если используется шифрование по заранее заданному секретному ключу, известному обоим узлам сети;
    2. Предполагаемый режим обмена секретными ключами psk_key_exchange_modes ;
    3. Модель алгоритма цифровой подписи signature_algorithms .
  • Сервер отвечает следующими сообщениями:
    1. Ответная часть открытого ключа key_share или выбранный идентификатор секретного ключа pre_shared_key ;
    2. Серверное сообщение EncryptedExtensions для передачи в зашифрованном виде дополнения, включающие в себя параметры тонкой настройки;
    3. При необходимости аутентификации, серверное сообщение CertificateRequest для получения клиентского сертификата;
    4. Сертификат сервера Certificate
    5. Сообщение Certificate_verify , которое содержит цифровой сертификат сервера;
    6. Сообщение о завершении процедуры рукопожатия Finished
  • Клиент проверяет сертификат сервера, генерирует итоговый секретный ключ (в случае выбора данного способа генерации) и отправляет сообщения:
    1. Сообщение о завершении процедуры рукопожатия Finished (формальная отправка для подтверждения);
    2. В случае запроса клиентского сертификата отправляет свой сертификат Certificate ;
    3. Зашифрованное сообщение (с этого момента происходит шифрование данных).

Особенности процедуры Handshake TLS 1.3

  • Узлы при первой возможности переходят к зашифрованному виду и практически все сообщения в Handshake получаются зашифрованными;
  • Добавлено серверное сообщение Encrypted Extensions , включающее в себя дополнительные параметры в зашифрованном виде ;
  • Экономия целого полного цикла общения клиента и сервера и как следствие уменьшение времени работы процедуры минимум на 100 миллисекунд.

Улучшения безопасности TLS 1.3

В TLS 1.3 были удалены устаревшие и небезопасные функции, которые присутствовали в предыдущих версиях, такие как:

  • Блочный шифр AES в режиме CBC (Cipher Block Chaining).

В новой версии TLS было реализовано свойство Perfect Forward Secrecy , дающее гарантию некомпрометации сеансового ключа без обязательного обмена ключами протоколом RSA . Уменьшена потенциальная вероятность неправильной настройки протокола из-за его упрощения с точки зрения администрирования. Как писалось ранее, общение межу узлами сети почти сразу происходит в зашифрованном виде, благодаря чему увеличивается криптонадежность протокола .

Кроме этого, в новой версии поддерживается протокол шифрования и может не затрагивать протокол обмена ключами на основе протокола DH .

Уязвимости TLS 1.3

В новой версии протокола исправлено большинство недостатков и уязвимостей предыдущих версий, однако на данный момент обнаружено несколько уязвимостей в безопасности:

  1. Существует несколько проблем безопасности в сеансах возобновления 0-RTT :
    • Отсутствие полной прямой секретности. То есть в случае компрометации ключей сеанса, злоумышленник может расшифровать данные 0-RTT , отправленные клиентом на первом этапе. Данная проблема решается постоянным изменением ключей сеанса .
    • Отсутствие гарантии запрета повторного подключения. Если злоумышленнику каким-то образом удастся завладеть вашими зашифрованными данными 0-RTT , он может обмануть сервер и заставить его поверить в то, что запрос пришёл с сервера, поскольку у него нет возможности узнать, откуда пришли данные. Отправка подобных запросов несколько раз называется атака повторного воспроизведения .
  2. Неполный отказ от RSA, из-за которого появляется возможность скомпрометировать обмен ключами через утекающие процессорные кэши . Данная уязвимость была использована для проведения новой вариации атаки , которая была изложена группой специалистов в .
  3. Уязвимость при работе с функционалом URL программного обеспечения . Злоумышленник может без прохождения проверки подлинности обойти блокировку трафика для определённых URL-адресов . Злоумышленник может воспользоваться этой уязвимостью, отправив созданные подключения TLS 1.3 на уязвимое устройство. Успешный эксплойт может позволить злоумышленнику обойти защиту TLS 1.3 и получить доступ к URL-адресам , которые находятся за пределами уязвимого устройства. Уязвимость вызвана логичной ошибкой обработки в протоколе TLS 1.3.
  4. Зачастую оба узла соединения поддерживают старую версию TLS с набором шифров, поддерживающим обмен ключами RSA . Используя этот факт, злоумышленник может внедрить вредоносный JavaScript файл в браузер клиента через вредоносную точку доступа по типу Wi-Fi . Внедрённый файл создаёт специальный HTTPS-запрос , включающий в себя обход посредника для прослушивания зашифрованных данных . Данная уязвимость даёт возможность проведения криптографических атак и .

Совместимость с предыдущими версиями

Наборов шифров для TLS 1.2 и 1.3

В версии TLS 1.3 набор шифров ( ) был существенно уменьшен по сравнению с версией TLS 1.2 и принадлежит классу шифров AEAD . Данные наборы регистрируются и хранятся в специальном реестре TLS IANA , в котором присваивается уникальный идентификационные номер. Из-за этого у протокола версии 1.3 отсутствует обратная совместимость с более ранними версиями даже при использовании одинаковых наборов шифров .

Доступные наборы шифров для TLS 1.3:

  • TLS_AES_128_CCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_CCM_8_SHA256

Поддерживающие TLS 1.3 версии браузеров

На данный момент протокол TLS 1.3 поддерживается следующими браузерами и версиями :

Минимальные Рекомендуемые
Google Chrome 67 70 или выше
Mozilla Firefox 60 63 или выше
Android Chrome 1.3 в 70 версии
Samsung Internet 6.2 7.2

Примечания

  1. ГОСУДАРСТВЕННЫЙ СТАНДАРТ СТБ 34.101.65-2014
  2. // Википедия. — 2021-12-08.
  3. . sectigo.com . Дата обращения: 7 декабря 2021. 28 сентября 2020 года.
  4. . Anti-Malware.ru (26 марта 2018). Дата обращения: 7 декабря 2021. 6 декабря 2021 года.
  5. Варвара Николаева. (рус.) . Tproger (2 июля 2019). Дата обращения: 7 декабря 2021. 7 декабря 2021 года.
  6. Eric Rescorla. . — Internet Engineering Task Force, 2018-08. — . 26 ноября 2021 года.
  7. . commandlinefanatic.com . Дата обращения: 8 декабря 2021. 1 ноября 2021 года.
  8. Kim Crawley. (англ.) . www.venafi.com . Дата обращения: 7 декабря 2021. 8 декабря 2021 года.
  9. . paginas.fe.up.pt . Дата обращения: 7 декабря 2021. 8 декабря 2021 года.
  10. (англ.) . Дата обращения: 7 декабря 2021. 7 декабря 2021 года.
  11. (амер. англ.) . Hashed Out by The SSL Store™ (20 марта 2018). Дата обращения: 7 декабря 2021. 4 декабря 2021 года.
  12. . nvd.nist.gov . Дата обращения: 7 декабря 2021. 6 декабря 2021 года.
  13. ddos. (амер. англ.) . InfoTech News (15 февраля 2019). Дата обращения: 7 декабря 2021. 6 декабря 2021 года.
  14. (англ.) . Cloudflare Docs . Дата обращения: 7 декабря 2021. 7 декабря 2021 года.
  15. . www.iana.org . Дата обращения: 7 декабря 2021. 21 декабря 2016 года.
  16. . tls.dxdt.ru . Дата обращения: 7 декабря 2021. 15 ноября 2021 года.
  17. . docs.w3cub.com . Дата обращения: 7 декабря 2021. 4 декабря 2021 года.

Ссылки

  • E. Rescorla. // . — 2018. — 1 August. — ISSN .
  • Александр Венедюхин, (Техническое описание TLS), 04/09/2015
  • Benjamin Dowling, Marc Fischlin, Felix Günther, Douglas Stebila. // . — 2021. — 22 February.
  • Patrick Nohe. (англ.) (16 июля 2019).
Источник —

Same as TLS 1.3