В HTTPS-связи HTTP-данные не отправляются как есть, а защищаются механизмом TLS.
Разницу HTTP и HTTPS иногда объясняют как «есть шифрование или нет». Но роль TLS не ограничивается шифрованием. Важны также защита содержимого от чтения третьими лицами, обнаружение подмены по пути и проверка сервера назначения.
В этой статье разбирается, что TLS защищает и что не защищает.
TLS
TLS означает Transport Layer Security. Это протокол для защиты сетевой связи.
В Web он используется для защиты связи между браузером и Web-сервером. Когда вы открываете HTTPS-сайт, содержимое HTTP отправляется и принимается в состоянии, защищенном TLS.
TLS в основном дает три вида защиты:
Роль
Смысл
Описание
Конфиденциальность
Делает содержимое связи труднее читаемым
Третьей стороне на маршруте труднее понять данные
Целостность
Помогает обнаруживать подмену содержимого
Если данные изменены по пути, это можно обнаружить
Аутентификация
Проверяет назначение
По серверному сертификату проверяется, есть ли у назначения действительный сертификат для домена
Поэтому точнее понимать TLS не только как «механизм шифрования связи», а как механизм, который вместе защищает содержимое и проверяет назначение.
HTTPS — это HTTP, защищенный TLS
HTTPS — это HTTP-связь, защищенная TLS.
HTTP — механизм, по которому браузер и Web-сервер обмениваются содержимым страниц, формами и другими данными. Но HTTP сам по себе не шифрует содержимое, поэтому третья сторона на маршруте может читать или изменять его.
В HTTPS HTTP-обмен выполняется внутри TLS. Поэтому запросы и ответы HTTP труднее прочитать по пути.
Пункт
HTTP
HTTPS
Содержимое связи
Отправляется открытым текстом
Защищается TLS
Устойчивость к прослушиванию
Низкая
Высокая
Обнаружение подмены
Слабое
Легче обнаруживается TLS
Проверка назначения
В целом слабая
Проверяется серверным сертификатом
Основная структура
HTTP
HTTP over TLS
HTTPS не является механизмом, который обрабатывает другое содержимое, чем HTTP. Это способ отправлять HTTP-связь под защитой TLS.
Что защищает TLS
Главное, что защищает TLS, — содержимое связи между браузером и сервером.
На маршруте связи могут быть Wi-Fi-роутер, провайдер, сетевое оборудование организации, промежуточная инфраструктура интернета и другое. Без TLS содержимое может быть прочитано или изменено на этом маршруте.
Когда TLS включен, содержимое связи шифруется. Поэтому даже если третья сторона по пути получит данные, прочитать HTTP-содержимое как есть трудно.
Информация
Защита TLS
Описание
Текст страницы
Защищается
HTML и текст, возвращаемые сервером, труднее прочитать по пути
Содержимое форм
Защищается
Логины, обращения и другое шифруются
HTTP-заголовки
Защищаются
, User-Agent и другие заголовки идут внутри TLS
Значения Cookie
Защищаются
Содержимое Cookie труднее прочитать по пути
Путь URL и query
Защищаются
Часть вроде /search?q=... в example.com/search?q=... защищается как HTTP-запрос
Но эта защита относится к третьим лицам на маршруте. Сервер назначения должен обработать запрос, поэтому он расшифровывает и читает содержимое.
Серверный сертификат проверяет назначение
TLS не только шифрует содержимое, но и проверяет сервер назначения.
При доступе к HTTPS-сайту сервер предъявляет серверный сертификат. Браузер проверяет, выдан ли сертификат доверенным центром сертификации, не истек ли срок действия, совпадает ли доменное имя и другое.
Так можно проверить, имеет ли другая сторона действительный сертификат для нужного домена.
Однако наличие серверного сертификата не гарантирует, что оператор сайта безопасен или что информация на сайте верна. Сертификат в основном проверяет, есть ли действительный сертификат для домена.
Значок замка HTTPS показывает, что маршрут связи защищен TLS, но не гарантирует надежность содержания сайта.
Что шифруется TLS
TLS в основном шифрует содержимое HTTP.
Например, текст страницы, отправка формы, значения Cookie, HTTP-заголовки, путь URL и query string отправляются внутри TLS.
С другой стороны, даже при TLS остается часть информации, нужная для связи, и внешняя информация вокруг связи.
Информация
Скрывается ли TLS
Описание
Текст страницы
Скорее скрывается
Защищается как содержимое HTTP-ответа
Содержимое формы
Скорее скрывается
Защищается как тело HTTP-запроса
Значение Cookie
Скорее скрывается
Защищается как HTTP-заголовок
Путь URL и query
Скорее скрываются
Защищаются как содержимое HTTP-запроса
IP-адрес назначения
Не скрывается
Нужен для доставки пакетов
IP-адрес источника
Не скрывается
Видим серверу или промежуточной точке
Часть информации при TLS-подключении, например SNI
Может быть видна в зависимости от среды
Без ECH может быть признаком домена назначения
DNS-запрос
Отдельный вопрос
В обычном DNS домен запроса может быть виден
Объем связи
Не скрывается
Может наблюдаться, сколько данных передано
Время связи
Не скрывается
Может наблюдаться, когда была связь
Это различие важно. TLS защищает содержимое HTTP, но не стирает сам факт связи, объем, время и IP-адреса.
Важно учитывать завершение TLS
Нужно понимать, откуда и до куда TLS защищает связь.
Обычно говорят, что «браузер и Web-сервер шифруют связь». Но в реальных Web-сервисах точкой завершения TLS могут быть CDN, балансировщик нагрузки, reverse proxy и другие элементы.
Завершение TLS — точка, где зашифрованная связь расшифровывается.
Например, от браузера до CDN связь защищена TLS, а от CDN к исходному серверу пересылается другим соединением. В таком случае с точки зрения браузера TLS-подключение заканчивается на CDN, а защита дальше зависит от настроек сервиса.
Это не означает слабость TLS. TLS защищает связь между конечными точками, а какие именно точки являются конечными, зависит от архитектуры системы.
TLS — не технология анонимизации
TLS — не технология анонимизации.
TLS защищает содержимое связи от третьих лиц на маршруте. Но сервер назначения получает содержимое. Чтобы обработать запрос, сервер может видеть отправленные данные, Cookie, данные входа, время доступа, IP-адрес источника и другое.
При доступе к HTTPS-сайту третьим лицам на маршруте труднее прочитать содержимое страницы. Но сам сайт назначения может обработать посещенную страницу, отправленные формы, состояние входа, Cookie и другое.
Пункт
Решает ли TLS
Причина
Прослушивание по пути
Решить легче
Содержимое шифруется
Подмена по пути
Решить легче
Есть механизм обнаружения подмены
Чтение сервером назначения
Не решает
Сервер должен обработать содержимое
Сокрытие IP-адреса источника
Не решает
Сервер может видеть IP источника
Идентификация через Cookie
Не решает
Cookie используются сервером для идентификации
Связь с человеком через логин
Не решает
Действия связываются с аккаунтом
Шифрование и анонимизация имеют разные цели.
Шифрование делает содержимое связи труднее читаемым для третьих лиц. Анонимизация делает труднее понимание того, кто общается, куда подключается и какие действия принадлежат одному пользователю.
TLS силен в первом, но сам по себе не реализует второе.
Зачем понимать TLS
Понимание TLS помогает не переоценивать HTTPS и оценивать его точнее.
HTTPS крайне важен против прослушивания и подмены на маршруте. Для входа, платежей, отправки персональных данных, доступа к админке HTTPS должен быть предпосылкой.
С другой стороны, даже при HTTPS информация доходит до сервера назначения. Журналы сервера, IP-адрес источника, Cookie, сведения аккаунта, сведения браузера остаются отдельными вопросами.
Поэтому TLS нужно понимать через такие различия:
Точка
Основная цель
Отношение к TLS
Шифрование
Сделать содержимое труднее читаемым третьим лицам
Центральная роль TLS
Целостность
Обнаруживать подмену по пути
Важная роль TLS
Аутентификация назначения
Проверять сервер с действительным сертификатом
Важная роль TLS
Анонимизация
Делать пользователя или связь с назначением труднее различимой
Один TLS этого не делает
Предотвращение отслеживания
Снижать идентификацию через Cookie и аккаунты
Нужны меры отдельно от TLS
TLS — базовая технология безопасности связи. Но это не универсальный механизм, который решает все вопросы приватности и анонимности.
Итоги
TLS — центральный механизм защиты связи, используемый в HTTPS.
TLS шифрует связь между браузером и сервером, затрудняет чтение содержимого третьими лицами на маршруте. Он также помогает обнаруживать подмену по пути и проверяет назначение через серверный сертификат.
С другой стороны, TLS не является технологией анонимизации. Сервер назначения получает содержимое, а IP-адрес источника, журналы сервера, Cookie, сведения аккаунта и другие вопросы остаются отдельно.
Чтобы правильно понимать TLS, нужно разделять «содержимое связи зашифровано» и «скрыто, кто куда обращается».
HTTPS важен для безопасности связи, но не реализует анонимность или предотвращение отслеживания автоматически.
Связанные статьи
Сеть
Что такое TLS
TLS защищает содержимое связи, помогает обнаруживать подмену и проверять сервер, но не скрывает IP-адрес, журналы, Cookie и действия от сайта назначения.