TLS — это криптографический протокол, который защищает данные при передаче по сети. Он подтверждает подлинность сервера, шифрует трафик и помогает обнаружить подмену данных. Именно TLS лежит в основе HTTPS, защищённой почты, VPN и других сетевых соединений.
Содержание статьи
Что такое TLS простыми словами
TLS расшифровывается как Transport Layer Security, или протокол защиты транспортного уровня. Он нужен для того, чтобы данные между клиентом и сервером нельзя было прочитать, незаметно изменить или перехватить без последствий.
Когда пользователь открывает сайт по HTTPS, браузер и сервер сначала договариваются о правилах защищённого обмена. После этого весь трафик между ними передаётся в зашифрованном виде.
TLS используется не только в браузере. Его применяют в электронной почте, мессенджерах, голосовой связи по IP, VPN и других сетевых протоколах, где важны конфиденциальность, целостность и аутентификация.
Зачем нужен TLS
TLS нужен для создания безопасного канала связи в недоверенной сети, например в интернете. Без него логины, пароли, cookie, сообщения и другие данные можно было бы легче перехватывать или подменять.
Протокол решает сразу несколько задач. Он подтверждает, что пользователь подключился именно к тому серверу, к которому собирался. Затем шифрует данные при передаче. И дополнительно проверяет, не были ли они изменены по пути.
На практике это особенно важно для сайтов с авторизацией, онлайн-платежей, личных кабинетов, API и любых сервисов, где через сеть передаются чувствительные данные.
Если в браузере используется HTTPS, это обычно означает, что соединение работает поверх TLS и у сайта есть действующий сертификат.
Какие свойства безопасности обеспечивает TLS
TLS строит защищённое соединение вокруг трёх базовых свойств: аутентификация, конфиденциальность и целостность данных. Вместе они снижают риск перехвата и подмены трафика.
- Аутентификация — помогает проверить подлинность сервера, а в некоторых сценариях и клиента.
- Конфиденциальность — шифрует данные так, чтобы посторонние не могли их прочитать.
- Целостность — позволяет обнаружить изменение данных во время передачи.
Эти свойства работают совместно. Если соединение зашифровано, но сервер не подтверждён, пользователь всё равно может попасть на подставной узел. Если есть аутентификация, но нет контроля целостности, данные могут изменить по дороге.
Чем TLS отличается от SSL
TLS — это наследник SSL. Сегодня корректнее говорить именно TLS, хотя в интерфейсах, документации и разговорной речи по-прежнему часто встречается выражение SSL-сертификат.
SSL был разработан раньше. Позже стандарт доработали, исправили известные слабые места и переименовали в TLS. После этого новые версии развивались уже под названием TLS.
Из-за привычки термины SSL и TLS нередко используют как взаимозаменяемые. Но технически современные защищённые соединения строятся именно на TLS, а не на старых версиях SSL.
Как работает TLS
TLS защищает трафик с помощью криптографии с открытым и симметричным ключом. Сначала стороны договариваются о параметрах соединения и проверяют подлинность, потом переходят к быстрому шифрованию данных внутри уже установленной сессии.
В основе работы протокола лежат ключи и криптографические алгоритмы. Один набор механизмов нужен для начального согласования и проверки сертификата. Другой — для дальнейшей передачи данных с меньшими затратами ресурсов.
Такой подход выбран не случайно. Асимметрическая криптография удобна для установления доверия, но работает медленнее. Симметрическая — быстрее и лучше подходит для потока прикладных данных.
Симметричное шифрование
Симметричное шифрование использует один общий секретный ключ для шифрования и расшифровки данных. Именно оно обычно применяется для основной передачи данных в рамках TLS-сессии.
После завершения рукопожатия клиент и сервер получают общий сеансовый ключ. С его помощью они шифруют исходящие данные и расшифровывают входящие.
Для проверки целостности также применяются механизмы на основе хеширования и кодов аутентификации сообщений. Если данные изменились в пути, это должно быть обнаружено при проверке.
Асимметричная криптография
Асимметричная криптография использует пару ключей: открытый и закрытый. Она помогает сторонам безопасно установить соединение и проверить подлинность без предварительного обмена общим секретом.
Открытый ключ можно распространять. Закрытый хранится у владельца и не должен покидать доверенную среду. Связь между ними математическая, но по открытому ключу нельзя просто получить закрытый.
В TLS этот механизм используется вместе с цифровыми сертификатами и инфраструктурой открытых ключей, или PKI. Сертификат связывает открытый ключ с подтверждённой сущностью, например доменным именем.
Что такое цифровая подпись в TLS
Цифровая подпись позволяет проверить, кто именно отправил данные, и убедиться, что содержимое не менялось после подписания. В TLS она применяется в процессе аутентификации.
Сначала формируется криптографический хеш сообщения. Затем этот хеш подписывается закрытым ключом отправителя. Получатель проверяет подпись с помощью открытого ключа из сертификата.
Из каких частей состоит TLS
У TLS есть две основные части: протокол рукопожатия и протокол записей. Первый создаёт защищённую сессию, второй отвечает за безопасную передачу данных после её установки.
Такое разделение удобно. Один уровень занимается согласованием параметров и доверием, другой — повседневной работой с трафиком.
Протокол рукопожатия TLS
Рукопожатие TLS устанавливает защищённое соединение между клиентом и сервером. В этот момент стороны согласуют версию протокола, набор алгоритмов, параметры обмена ключами и проверяют сертификат сервера.
Иногда проверяется и клиент, если этого требует сервер. После завершения рукопожатия стороны получают общие сеансовые ключи.
Дальше асимметричная криптография обычно больше не участвует в передаче обычных данных. Сессия уже настроена, и поток трафика шифруется симметрическими алгоритмами.
Протокол записей TLS
Протокол записей TLS отвечает за защиту данных, которые передаются после установки соединения. Он использует согласованные во время рукопожатия алгоритмы и ключи.
Именно этот уровень шифрует исходящие данные, расшифровывает входящие и проверяет их целостность. За счёт этого соединение остаётся защищённым на протяжении всей сессии.
Как проходит TLS-рукопожатие
В TLS-рукопожатии клиент и сервер сначала обмениваются параметрами соединения, затем подтверждают подлинность сервера и выводят общий секретный ключ. После этого начинается передача данных по защищённому каналу.
Точные шаги зависят от версии протокола. Ниже — упрощённая логика, характерная для современных соединений на базе TLS 1.3.
- ClientHello. Клиент отправляет поддерживаемую версию TLS, список допустимых наборов алгоритмов, случайные данные и параметры для обмена ключами.
- ServerHello. Сервер выбирает параметры соединения, отправляет свои случайные данные и ответные параметры обмена ключами.
- Передача сертификата. Сервер отправляет цифровой сертификат и данные, которые позволяют клиенту проверить подлинность сервера.
- Проверка сертификата. Клиент проверяет, выдан ли сертификат доверенным центром сертификации, не истёк ли его срок действия, не отозван ли он и совпадает ли домен.
- Формирование общего секрета. Обе стороны вычисляют общий сеансовый секрет на основе согласованного метода обмена ключами.
- Завершение рукопожатия. Стороны подтверждают, что договорились об одинаковых параметрах, после чего переходят к защищённой передаче данных.
Если сервер требует аутентификацию клиента, цепочка становится длиннее. Тогда клиент тоже отправляет свой сертификат и подтверждает владение закрытым ключом.
Что такое набор шифров в TLS
Набор шифров, или cipher suite, — это согласованный комплект криптографических алгоритмов для конкретного соединения TLS. Он определяет, как будут выполняться обмен ключами, шифрование и проверка целостности.
Во время рукопожатия клиент предлагает поддерживаемые варианты, а сервер выбирает один из них. От этого выбора зависит, какие механизмы будет использовать сессия.
В современных версиях TLS схема стала проще, чем в старых. Часть решений фиксируется самим стандартом, а число небезопасных и устаревших вариантов сокращено.
Какие методы обмена ключами использует TLS
TLS может использовать разные методы обмена ключами, но в актуальных конфигурациях главную роль играют схемы на базе Diffie-Hellman. Они позволяют сторонам получить общий секрет через недоверенную сеть.
Выбор метода важен, потому что он влияет не только на совместимость, но и на свойства безопасности, например на наличие прямой секретности.
Diffie-Hellman и его варианты
Diffie-Hellman — один из основных способов безопасного согласования общего секрета. Он позволяет двум сторонам получить одинаковый ключ, не передавая его в открытом виде.
У этого подхода есть несколько вариантов.
- DH — базовый вариант обмена ключами Diffie-Hellman.
- DHE — временные, одноразовые ключи для каждой сессии.
- ECDH — вариант на эллиптических кривых.
- ECDHE — временные ключи на эллиптических кривых; этот вариант используется в TLS 1.3.
Когда для каждой сессии создаются временные ключи, соединение получает свойство прямой секретности. Это значит, что компрометация долгосрочного ключа не должна автоматически раскрыть старые сессии.
RSA
RSA — алгоритм асимметричной криптографии, который долго применялся в защищённых соединениях. В TLS 1.3 он не используется для обмена ключами, но может применяться для аутентификации.
Причина отказа от RSA в обмене ключами связана с требованиями безопасности современных версий протокола, в том числе с поддержкой прямой секретности.
PSK
PSK, или предварительно согласованный ключ, — это общий секрет, которым стороны уже обменялись заранее по защищённому каналу. В TLS такой подход может использоваться для возобновления сессии.
Если PSK сочетается с DHE или ECDHE, соединение также может сохранять свойства прямой секретности.
Что такое TLS-сертификат
TLS-сертификат — это цифровой документ, который подтверждает связь между доменом или системой и открытым ключом. Его обычно выдает центр сертификации, которому доверяет клиентское приложение или операционная система.
Когда браузер подключается к сайту, он получает сертификат сервера и проверяет его. Если всё в порядке, соединение можно продолжить как доверенное.
Проверка обычно включает несколько моментов:
- сертификат выдан доверенным центром сертификации;
- срок действия не истёк;
- сертификат не отозван;
- домен в сертификате совпадает с адресом сайта.
Именно наличие корректного сертификата позволяет браузеру показать, что соединение защищено.
Как TLS связан с HTTPS
HTTPS — это HTTP поверх TLS. Иначе говоря, веб-протокол HTTP получает слой шифрования и проверки подлинности, который обеспечивает TLS.
Когда сайт работает по HTTPS, запросы и ответы между браузером и сервером передаются через защищённое соединение. Это касается содержимого страниц, форм, cookie и других передаваемых данных.
Поэтому значок защищённого соединения в браузере связан не с самим HTTP, а с тем, что под ним работает TLS с действующим сертификатом.
Какая версия TLS считается актуальной
Актуальной версией считается TLS 1.3. Она даёт более современную модель безопасности, упрощает переговоры между сторонами и уменьшает задержку при установлении соединения.
До неё существовали TLS 1.0, TLS 1.1 и TLS 1.2. Эти версии появились в разное время и отражали этапы развития протокола после SSL 3.0.
| Версия | Кратко |
| TLS 1.0 | Первая версия TLS после развития идей SSL 3.0. |
| TLS 1.1 | Содержала доработки и уточнения по сравнению с TLS 1.0. |
| TLS 1.2 | Расширила возможности согласования криптографических алгоритмов. |
| TLS 1.3 | Сократила задержки при установке соединения и исключила часть устаревших механизмов. |
TLS 1.3 не является прямой копией старых версий с небольшими правками. Он заметно упростил набор допустимых механизмов и отказался от части прежних решений.
Чем TLS 1.3 отличается от прошлых версий
TLS 1.3 отличается более строгим набором допустимых алгоритмов, меньшим числом этапов согласования и лучшей защитой соединения. За счёт этого протокол стал проще и быстрее в типовых сценариях.
Из новых практических особенностей чаще всего выделяют сокращение задержки при рукопожатии и поддержку 0-RTT в отдельных сценариях возобновления соединения. При этом совместимость со старыми версиями не означает, что они работают одинаково внутри.
Для администратора и разработчика главный вывод простой: если среда поддерживает TLS 1.3, это обычно и есть предпочтительный вариант.
Где применяется TLS кроме сайтов
TLS используется не только для HTTPS. Протокол подходит почти для любого сетевого обмена, где нужно шифрование, проверка подлинности и защита от подмены данных.
Чаще всего его можно встретить в таких сценариях:
- электронная почта;
- мессенджеры и обмен сообщениями;
- VoIP, то есть голосовая связь по IP;
- VPN;
- API и межсервисные соединения;
- клиент-серверные корпоративные приложения.
Сам протокол не привязан к одному типу трафика. Он даёт общий механизм защиты канала, который можно встроить в разные прикладные протоколы.
Коротко: что нужно запомнить о TLS
TLS — это протокол, который защищает сетевое соединение с помощью аутентификации, шифрования и контроля целостности. Он используется в HTTPS и во многих других сервисах, где данные передаются через недоверенную сеть.
Если смотреть на суть без лишних деталей, схема такая: клиент и сервер проверяют друг друга, согласуют алгоритмы, получают общий секретный ключ и потом обмениваются данными в зашифрованном виде.
Главный практический вывод: когда пользователь видит HTTPS, за безопасностью соединения обычно стоит именно TLS.