Что такое TLS
TLS защищает содержимое связи, помогает обнаруживать подмену и проверять сервер, но не скрывает IP-адрес, журналы, Cookie и действия от сайта назначения.
В HTTPS-связи HTTP-данные не отправляются как есть, а защищаются механизмом TLS.
Разницу HTTP и HTTPS иногда объясняют как «есть шифрование или нет». Но роль TLS не ограничивается шифрованием. Важны также защита содержимого от чтения третьими лицами, обнаружение подмены по пути и проверка сервера назначения.
В этой статье разбирается, что TLS защищает и что не защищает.
TLS
TLS означает Transport Layer Security. Это протокол для защиты сетевой связи.
В Web он используется для защиты связи между браузером и веб-сервером. Когда вы открываете HTTPS-сайт, содержимое HTTP отправляется и принимается в состоянии, защищенном TLS.
TLS в основном дает три вида защиты:
| Роль | Смысл | Описание |
|---|---|---|
| Конфиденциальность | Делает содержимое связи труднее читаемым | Третьей стороне на маршруте труднее понять данные |
| Целостность | Помогает обнаруживать подмену содержимого | Если данные изменены по пути, это можно обнаружить |
| Аутентификация | Проверяет назначение | По серверному сертификату проверяется, есть ли у назначения действительный сертификат для домена |
Поэтому точнее понимать TLS не только как «механизм шифрования связи», а как механизм, который вместе защищает содержимое и проверяет назначение.
HTTPS — это HTTP, защищенный TLS
HTTPS — это HTTP-связь, защищенная TLS.
HTTP — механизм, по которому браузер и веб-сервер обмениваются содержимым страниц, формами и другими данными. Но 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-заголовки | Защищаются | Cookie, 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-сервисах точкой завершения 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 важен для безопасности связи, но не реализует анонимность или предотвращение отслеживания автоматически.
