Открыть сервис

TLS 1.2

TLS 1.2 (Transport Layer Security 1.2) — это криптографический протокол, обеспечивающий защищённую передачу данных в компьютерных сетях, главным образом в сети Интернет. Он относится к семейству протоколов TLS, разработанному Инженерным советом Интернета (IETF) для замены устаревшего протокола SSL (Secure Sockets Layer). TLS 1.2 обеспечивает конфиденциальность, целостность и аутентификацию данных за счёт комбинации симметричного и асимметричного шифрования, а также механизмов проверки подлинности сторон. Вплоть до середины 2010-х годов TLS 1.2 был наиболее широко используемой версией протокола, пока не началось массовое внедрение TLS 1.3.

История и предпосылки

Протокол TLS берёт начало от протокола SSL 3.0, разработанного компанией Netscape Communications в 1996 году. После уязвимостей, обнаруженных в SSL (например, атака POODLE в 2014 году), IETF выпустил первую версию TLS (1.0) в 1999 году как RFC 2246. Однако и TLS 1.0, и последующая версия 1.1 (RFC 4346, 2006 год) содержали ряд архитектурных недостатков, включая слабую поддержку современных криптоалгоритмов и уязвимости к атакам типа BEAST и Lucky Thirteen.

Спецификация TLS 1.2 была опубликована в августе 2008 года как RFC 5246. Ключевыми улучшениями по сравнению с предыдущими версиями стали:

Ранее российским криптографическим стандартом ГОСТ Р 34.10-2001 не был включён в базовую спецификацию TLS 1.2, однако в России получил развитие отечественный стандарт защиты данных на основе протокола TLS с использованием ГОСТ-алгоритмов (протоколы «КриптоПро TLS» и другие).

Архитектура протокола

TLS 1.2 работает на сеансовом уровне сетевой модели OSI, располагаясь между транспортным уровнем (TCP) и прикладным уровнем (HTTP, FTP, SMTP и др.). Протокол состоит из двух подсистем:

Процедура установления соединения (Handshake)

  1. ClientHello: клиент отправляет список поддерживаемых версий TLS, наборов шифров (Cipher Suites), методов сжатия и случайное число (random nonce).
  2. ServerHello: сервер выбирает версию, набор шифров и метод сжатия из предложенных клиентом, отправляет свой random nonce и, опционально, свой сертификат X.509.
  3. Сертификат и обмен ключами: сервер отправляет свой сертификат открытого ключа (обычно с подписью удостоверяющего центра). Для асимметричного шифрования или обмена ключами по протоколу Диффи — Хеллмана (DH) могут быть отправлены дополнительные параметры.
  4. ClientKeyExchange: клиент генерирует предварительный ключ (Premaster Secret) и отправляет его серверу, зашифровав открытым ключом сервера (если используется RSA) или передаёт параметры DH. Из Premaster Secret и двух random nonces вычисляется мастер-ключ (Master Secret).
  5. ChangeCipherSpec: клиент и сервер сигнализируют, что последующие данные будут зашифрованы с использованием согласованных параметров.
  6. Finished: обе стороны отправляют зашифрованное хеш-значение (HMAC) всех предыдущих сообщений, что подтверждает, что соединение было успешно установлено без вмешательства третьих лиц.

После завершения квитирования все последующие данные передаются в зашифрованном виде с помощью симметричного алгоритма (например, AES-128-GCM) и ключа, полученного из мастер-ключа.

Наборы шифров (Cipher Suites)

TLS 1.2 определяет до нескольких десятков стандартных наборов шифров, каждый из которых включает компоненты:

Наиболее надёжными и рекомендуемыми сочетаниями считаются наборы, использующие ECDHE (Ephemeral ECDH) для обеспечения совершенной прямой секретности (PFS) и AES-GCM для аутентифицированного шифрования.

Применение и распространение

TLS 1.2 получил широкое распространение в середине 2010-х годов, став стандартом де-факто для защиты веб-соединений, почтовых серверов (SMTP, IMAP, POP3), мессенджеров (XMPP) и других сетевых протоколов. После того как в 2018 году IETF предупредил о серьёзных уязвимостях в TLS 1.0 и 1.1 (атаки типа BEAST, POODLE, Lucky Thirteen), большинство браузеров и серверов прекратили их поддержку. К началу 2020-х годов более 95% HTTPS-соединений в мире использовали TLS 1.2 или 1.3.

В России TLS 1.2 применяется наряду с более новыми версиями. С 2020 года регуляторы в сфере информационной безопасности рекомендовали переход на TLS 1.2 минимум, а для государственных информационных систем — на отечественные криптоалгоритмы с эмуляцией TLS 1.2 (ГОСТ Р 34.12-2015, ГОСТ Р 34.11-2012). С 2024 года в России началось внедрение TLS 1.3, однако TLS 1.2 остаётся важным как переходный стандарт.

Критика и ограничения

Несмотря на свою зрелость, TLS 1.2 имеет несколько недостатков:

В 2018 году IETF выпустил стандарт TLS 1.3 (RFC 8446), который значительно упростил набор шифров, уменьшил количество раундов квитирования до одного (1-RTT) и сделал обязательной поддержку EDH-эфимерических ключей, что решило большинство проблем TLS 1.2.

Источники

  1. RFC 5246 — The Transport Layer Security (TLS) Protocol Version 1.2 (IETF, 2008).
  2. RFC 8446 — The Transport Layer Security (TLS) Protocol Version 1.3 (IETF, 2018).
  3. RFC 7525 — Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) (IETF, 2015).
  4. А. В. Чернов, В. Б. Беспалов — Криптографические протоколы: стандарты и применения (Москва, 2018).
  5. Материалы Министерства цифрового развития, связи и массовых коммуникаций РФ по переходу на ГОСТовые криптоалгоритмы (2021–2024).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →