Learn

284 статейКатегория: Все
Сеть

Что такое TLS

В 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 труднее прочитать по пути.

ПунктHTTPHTTPS
Содержимое связиОтправляется открытым текстомЗащищается TLS
Устойчивость к прослушиваниюНизкаяВысокая
Обнаружение подменыСлабоеЛегче обнаруживается TLS
Проверка назначенияВ целом слабаяПроверяется серверным сертификатом
Основная структураHTTPHTTP 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 важен для безопасности связи, но не реализует анонимность или предотвращение отслеживания автоматически.

Связанные статьи