Введение
TLS (Transport Layer Security) – криптографический протокол, стандартизированный IETF, обеспечивающий защищённую передачу данных в компьютерных сетях на базе TCP/IP. TLS работает между транспортным уровнем (TCP) и прикладными протоколами (HTTP, SMTP, FTP и т.д.), предоставляя три ключевых свойства безопасности: конфиденциальность (шифрование данных), аутентификацию (проверка подлинности сервера и/или клиента) и целостность (обнаружение несанкционированных изменений).
TLS является фундаментом безопасности интернета: HTTPS, корпоративные VPN, защищённая электронная почта, интернет-банкинг – всё это работает на TLS.
История и контекст
TLS разработан как стандартизированный преемник протокола SSL (Secure Sockets Layer), созданного Netscape Communications в 1994–1995 годах. Версии SSL 1.0/2.0/3.0 разрабатывались Netscape; SSL 3.0 (1996) стал основой для TLS. Хронология версий TLS:
- TLS 1.0 (RFC 2246, 1999) – первый стандарт IETF, небольшие улучшения над SSL 3.0.
- TLS 1.1 (RFC 4346, апрель 2006) – защита от CBC-атак.
- TLS 1.2 (RFC 5246, август 2008) – AEAD-шифрование, SHA-256, поддержка расширяемых cipher suites.
- TLS 1.3 (RFC 8446, август 2018) – радикальное упрощение, 1-RTT handshake, обязательный Forward Secrecy, удаление небезопасных алгоритмов.
TLS 1.0 и 1.1 официально устарели по RFC 8996 в марте 2021 года. Apple, Google, Microsoft и Mozilla прекратили их поддержку ещё в 2020 году.
Как это работает
Установка TLS-соединения происходит через TLS Handshake:
- ClientHello: клиент отправляет список поддерживаемых cipher suites, версию TLS и случайное число (nonce).
- ServerHello: сервер выбирает cipher suite, отправляет сертификат X.509 и своё случайное число.
- Аутентификация: клиент проверяет цепочку сертификатов до доверенного центра сертификации (CA).
- Обмен ключами: ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) или DHE – обеспечивает Perfect Forward Secrecy.
- Запись данных: все данные шифруются симметричным ключом (AES-GCM, ChaCha20-Poly1305).
В TLS 1.3 handshake выполняется за 1 RTT (вместо 2 в TLS 1.2), что ускоряет установку соединения. Добавлен режим 0-RTT для возобновления сессии (с определёнными ограничениями безопасности). Удалены: RSA key exchange, статический DH, RC4, DES, 3DES, SHA-1, MD5 как crypto примитивы.
Где применяется
- HTTPS (порт 443): защита веб-сайтов. С 2014 года Google учитывает HTTPS как фактор ранжирования в поиске.
- Корпоративные API и микросервисы: mTLS (mutual TLS) для взаимной аутентификации сервисов.
- Электронная почта: SMTP over TLS (STARTTLS), IMAP/POP3 over TLS, SMTPS.
- Финансовые системы: все транзакции в интернет-банкинге и платёжных системах защищены TLS 1.2/1.3 (требование PCI DSS).
- IoT: MQTT over TLS для защиты коммуникаций IoT-устройств.
- VPN: OpenVPN, WireGuard и другие используют TLS или аналогичные криптографические примитивы.
Преимущества и ограничения
Преимущества: защита от перехвата (MITM), стандарт IETF с широкой поддержкой, Perfect Forward Secrecy в современных версиях, аппаратное ускорение (AES-NI, ARM Cryptography Extensions), обязательность для регуляторных стандартов (PCI DSS, 152-ФЗ, ГОСТ Р 34.12).
Ограничения: overhead handshake (несколько мс задержки при первом соединении), необходимость управления PKI-инфраструктурой и сертификатами, TLS-инспекция корпоративных прокси создаёт точки уязвимости, неправильная конфигурация (разрешение устаревших cipher suites) снижает защиту.
Связь с другими понятиями
TLS является основой HTTPS и неразрывно связан с инфраструктурой PKI (Public Key Infrastructure) и сертификатами X.509. mTLS (mutual TLS) используется в микросервисных архитектурах и service mesh (Istio, Linkerd). TLS тесно интегрирован с UTM-решениями (Unified Threat Management) для инспекции зашифрованного трафика. Токены аутентификации (JWT, OAuth) всегда передаются только по TLS-защищённым каналам.