cover.png
TLS — шифрование веб-трафика

TLS (Transport Layer Security) — криптографический протокол, обеспечивающий защищённое соединение между клиентом и сервером и защиту от атак типа Man-in-the-Middle.

Протокол появился в 1999 году как замена устаревшему SSL от Netscape. При этом термин “SSL” по инерции всё ещё используется в обиходе.

Основные задачи протокола:

  • Конфиденциальность — данные шифруются и доступны только отправителю и получателю
  • Целостность — любое изменение данных при передаче будет обнаружено
  • Аутентификация — сервер подтверждает свою подлинность через цифровой сертификат

TLS Handshake

Если вкратце, процедура установки защищённого соединения TLS выглядит следующим образом:

  • Клиент отправляет список поддерживаемых алгоритмов шифрования
  • Сервер выбирает алгоритм шифрования и отправляет свой сертификат
  • Клиент проверяет сертификат через цепочку доверия CA (Certificate Authority)
  • Стороны генерируют уникальные ключи для этой сессии
  • Весь последующий трафик шифруется этими ключами

Проблема SNI и Encrypted Client Hello

У TLS есть интересная проблема с приватностью. Когда мы подключаемся к HTTPS-сайту, имя домена передаётся незашифрованным через механизм SNI (Server Name Indication). Это значит, что наш провайдер видит, на какие именно сайты мы заходим, даже если весь трафик зашифрован.

Решение — Encrypted Client Hello (ECH), новое расширение TLS, которое шифрует и имя сервера. Поддержка уже добавлена в Firefox и Cloudflare, но массовое внедрение только начинается.

Heartbleed: крупнейшая уязвимость в истории TLS

В 2014 году обнаружили уязвимость в OpenSSL под названием Heartbleed. Баг позволял читать до 64 КБ оперативной памяти сервера при каждом запросе — туда могли попасть пароли, ключи шифрования, личные данные.

Уязвимость затронула 17% всех HTTPS-сайтов в интернете, включая Google, Facebook и Yahoo. Самое страшное — баг существовал в коде 2 года до обнаружения. После этого случая началась массовая ревизия криптографического кода и появились инициативы по финансированию разработки OpenSSL.

Другие интересные моменты

  • TLS Fingerprinting — по особенностям handshake можно определить нашу ОС и браузер, даже если мы используем VPN. Каждый браузер отправляет характерный набор алгоритмов и расширений.

  • Государственный MITM — в 2019 году Казахстан заставлял граждан устанавливать государственный root-сертификат для перехвата HTTPS-трафика. Браузеры быстро заблокировали эти сертификаты.

  • Квантовая угроза — квантовые компьютеры смогут взломать современные алгоритмы шифрования. TLS 1.3 уже готовится к постквантовым алгоритмам, которые NIST стандартизирует прямо сейчас.


Этот пост также доступен в Telegram

Copyright 2026. All rights reserved.

Привет, друг! Coding Overhead — это мой личный блог о современных технологиях и полезных утилитах.