Объяснение работы прокси-сервера TLS Termination Proxy: Что это такое и как это работает?

от Dan Goodin
30 Ноя 2022

"Эксперт в прокси и VPN. Будучи сертифицированным специалистом по кибербезопасности, Дэн охватывает самые разные темы - от утечки данных до фишинга. Делится ли он новостями или результатами собственных исследований, его контент всегда наводит на размышления и дает ценные инсайты."

Протокол TLS: Значение и принцип работы TLS

Значение

Интернет основан на обмене и обработке данных. Для корректной обработки и обмена компьютеры используют наборы правил в соответствии с общими стандартами. Эти правила называются сетевыми протоколами. Сетевые протоколы объясняют компьютерам во Всемирной паутине, как общаться друг с другом.

TLS (Transport Layer Security) — это шифрованный протокол для безопасного выполнения операций с данными. В 1999 году организация IETF (Internet Engineering Task Force) выпустила первую версию TLS в качестве обновления стандарта SSL 3.0.

SSL Изначально стандарт был изобретением компании Netscape Corp. и предназначался для защиты незашифрованного уязвимого протокола передачи гипертекста HTTP.

В 2015 году стандарт SSL был признан устаревшим. Позже TLS практически полностью заменил SSL. В 2022 году TLS 1.3 станет самым современным и передовым протоколом безопасности.

TLS в модели OSI

OSI Model
OSI Модель

OSI (Open Systems Interconnection) дает первое приближение к области применения протокола.

Простой протокол может относиться к одному уровню OSI. Сложные протоколы имеют различные характеристики, поэтому они одновременно принадлежат к разным уровням OSI.

TLS обладает свойствами четырех уровней: приложения, представления, сеанса и передачи.

  • Прикладной уровень: взаимодействие с приложениями, ориентированными на пользователя.
  • Транспортный уровень: транзакция данных.
  • Уровень представления: шифрование.
  • Возобновление сеанса на уровне сеанса.

Принцип работы TLS

HTTP — основной протокол передачи данных в Интернете. Изначально небезопасный, он стал безопасным для использования благодаря шифрованию SSL/TLS.

TLS работает как дополнение к HTTP, обеспечивающее безопасность шифрования. Он задает правила соединения и вызывает криптографические системы для защиты соединения. Модернизированная версия HTTP широко известна как HTTPS.

TLS ставит перед собой три основные цели обеспечения безопасности:

  • Конфиденциальность
  • Целостность
  • Безопасная аутентификация

Реализация этих целей составляет суть принципов работы TLS.

Конфиденциальность

Защита конфиденциальности — это совокупность действий, направленных на предотвращение нежелательного доступа к информации.

Пример системы без защиты конфиденциальности:

Unsecured HTTP connection
Незащищенное HTTP-соединение
  1. 1. Пользователь хочет войти на сайт банка.
  2. 2. Пользователь подключается к банковскому серверу с помощью клиентской машины.
  3. 3. Клиент отправляет сообщение с банковскими реквизитами.
  4. 4. Сервер проверяет логин и пароль и пропускает пользователя.

Конфиденциальность находится под угрозой! Злоумышленник («человек посередине») может перехватить сообщение и прочитать его содержимое.

Пример системы с простым симметричным шифрованием:

Secured HTTP connection
Защищенное HTTP-соединение

Клиент отправляет на сервер сообщение с банковскими реквизитами. При этом клиент перед отправкой шифрует сообщение с помощью ключа. Эту задачу человеку посередине решить сложнее, но перехватить сообщение и расшифровать его содержимое все же возможно.

Безопасное шифрование TLS

В протоколе TLS используется более надежный асимметричный тип шифрования. Он запускает процесс взаимной проверки между клиентом и сервером. Этот процесс называется рукопожатием. Протокол может вызывать различные алгоритмы для выполнения рукопожатия, но наиболее популярными являются алгоритмы RSA и Диффи-Хеллмана. Это упрощенный пример рукопожатия RSA.

Для каждого соединения сервер хранит не один, а два ключа: открытый и закрытый. Любой желающий может просмотреть открытый ключ. Однако сообщение, зашифрованное с помощью этого ключа, может быть расшифровано только с помощью закрытого ключа. Сервер хранит этот закрытый ключ и никому его не передает.

Simplified TLS  handshake
Упрощенное рукопожатие TLS
  1. 1. Клиент подключается к серверу и запрашивает защищенное соединение.
  2. 2. Сервер отвечает и отправляет открытый ключ клиенту.
  3. 3. Клиент шифрует данные с помощью этого ключа и отправляет их обратно. Даже если злоумышленники перехватят сообщение, они не смогут расшифровать его без закрытого ключа.
  4. 4. Сервер получает сообщение и расшифровывает его с помощью закрытого ключа.

Целостность

Защита целостности данных — это комплекс мер по сохранению информации в неизменном виде. Основная цель — не допустить искажения информации из-за сбоев в работе системы.

Для достижения целостности в TLS используются симметричные хэш-функции (MD5, SHA и др.):

  1. 1. Клиент преобразует массив данных в зашифрованную строку и получает хэш.
  2. 2. Клиент отправляет данные и хэши, упакованные вместе.
  3. 3. Сервер получает и извлекает данные и хэш. Он снова преобразует данные в хэш и сравнивает полученный хэш с недавно полученным хэшем. Если они не совпадают, это означает, что сообщение повреждено.

Аутентификация

Под защитой аутентификации понимается проверка подлинности. Например, клиент подключается к банку. Человек посередине перенаправляет клиента на аналогичный сайт, чтобы похитить его учетные данные.

Цифровые сертификаты позволяют проверить, является ли сервер доверенным. Сервер может сертифицировать свой открытый ключ в доверенных организациях, называемых центрами сертификации (CA). Это такие компании, как IdenTrust, DigiCert и GoDaddy. Они сертифицируют открытый ключ с помощью сертификата корневого центра сертификации. Когда клиентская машина подключается к серверу и получает ключ, она обращается к CA с вопросом: является ли этот ключ подлинным? Если ключ не сертифицирован, CA блокирует соединение.

TLS Proxy: Что это такое и как это работает

Что такое прокси?

Proxy connection
Proxy connection

Прокси-сервер — это посредник между клиентом и сервером. Весь трафик проходит через посредника. Преимущества соединения через точку-посредник заключаются в следующем:

  • Балансировка нагрузки
  • Сокрытие личности
  • Защита от вторжений, слежения и вредоносного ПО
  • Фильтрация трафика
  • Экономия полосы пропускания

Принцип работы TLS-прокси

TLS-прокси для Windows, Mac или Linux — это способ управления HTTPS-трафиком. Он работает как сервер-посредник, подобно другим прокси-серверам. Отличие заключается в том, что он работает внутри HTTPS-туннеля, который защищает информацию с помощью алгоритма рукопожатия. Таким образом, этот посредник должен участвовать в обмене зашифрованными данными.

Существует два типа прокси-серверов TLS в зависимости от того, как они участвуют в этом процессе. Прокси-серверы Passthrough передают сообщение от клиента к серверу и обратно. Оконечные прокси-серверы прерывают соединение на середине.

Прокси-сервер завершения TLS

Типы прокси-серверов для завершения TLS

Оконечный прокси-сервер TLS является активным участником соединения. Он направляет HTTPS-трафик от клиента к серверу и прерывает соединение для чтения и анализа трафика. Для этого посредник разбивает туннель между клиентом и сервером на две части: Клиент — Прокси, Прокси — Сервер. TSL-соединение прерывается с одной стороны. В зависимости от стороны существует два типа соединений:

  • Выгрузка: Соединение «прокси-сервер» разорвано. Входящие HTTPS-данные со стороны клиента передаются на сервер в виде HTTP.
  • Шифрование: Соединение «Клиент-Прокси» разорвано. Входящие HTTP-данные со стороны клиента передаются на сервер в виде HTTPS.
  • Мостовое соединение — это комбинация двух типов соединений.

Разгрузка

Тип разгрузки является наиболее распространенным при построении сетей.

TLS_Offloading
TLS_Разгрузка

Прокси-сервер получает зашифрованное сообщение (HTTPS) со стороны клиента и расшифровывает его. Поскольку прокси-серверы могут работать только с расшифрованными файлами, на этом этапе он может анализировать данные и управлять ими. Например, он может балансировать нагрузку для внутреннего сервера, обеспечивать наблюдение за сетью и блокировать вредоносные действия. Затем посредник направляет трафик на сервер, использующий HTTP.

Когда сервер отвечает, посредник снова получает сообщение. На этом этапе он также может проводить анализ данных и включать полезные функции: обнаружение вредоносных программ и вторжений, фильтрацию контента, включение дополнительных версий протоколов. Затем прокси снова шифрует данные и отправляет их клиенту.

Поскольку всю работу по шифрованию и дешифрованию выполняет посредник, он разгружает серверы, что позволяет им работать быстрее.

Большим недостатком этого метода является незащищенная часть туннеля с HTTP-трафиком. Человек посередине может получить там доступ к данным и украсть их. К счастью, других уязвимостей нет — «человек посередине» не может создать шлюз для кражи информации.

Чтобы начать процесс завершения, прокси-сервер должен иметь сертификат того же типа, который любой сервер получает от CA. Серверу внутри туннеля TLS необходимо доказать, что ему доверяют, чтобы начать процесс рукопожатия, и именно это делает посредник завершения.

Шифрование

Тип шифрования аналогичен выгрузке, но данные шифруются со стороны сервера. Посредник получает клиентские данные в открытом виде (HTTP). Затем он шифрует трафик и пересылает его на сервер с HTTPS. Сервер отвечает, а посредник расшифровывает данные и пересылает их клиенту.

Мост

TLS_Bridge
TLS_Bridge

Этот тип устанавливает зашифрованное соединение с обеих сторон. Первый прокси получает данные от клиента. Клиент и прокси выполняют рукопожатие. Посредник расшифровывает полученные от клиента данные и запускает необходимые приложения: фильтрацию вредоносных программ, балансировку нагрузки, HTTP-лак. Затем посредник снова шифрует данные — теперь уже для рукопожатия с сервером. Он отправляет данные, получает ответ, расшифровывает его и снова оптимизирует. Затем он шифрует информацию, чтобы отправить ее пользователю.

Другими словами, прокси прерывает соединение, но трафик остается зашифрованным. Трафик расшифровывается в промежуточной точке, поэтому данные могут быть скомпрометированы, если у посредника есть уязвимости.

Причины использования терминации по доверенности

  1. 1. Чтобы заставить HTTPS взаимодействовать с HTTP (помогает основать соединение фронтенда HTTPS с бэкендом HTTP).
  2. 2. Чтобы добавить точку аутентификации на основе сертификата.
  3. 3. Для разгрузки серверов.
  4. 4. Для балансировки нагрузки.
  5. 5. Для включения функций, недоступных при зашифрованных данных: анализ данных, обнаружение вредоносных программ и вторжений, фильтрация содержимого и HTTP-лак.
  6. 6. Включить дополнительные версии протоколов.
  7. 7. Если прокси находится гораздо ближе к клиенту, чем конечная точка, то процесс квитирования происходит быстрее.

Плюсы и минусы использования доверенности на расторжение договора

Плюсы

  • Позволяет HTTPS взаимодействовать с HTTP
  • Разгрузка серверов
  • Не очень дорого
  • Эффективное распределение нагрузки
  • Анализ данных
  • Позволяет выполнять действия над трафиком
  • Наблюдение за сетью, обнаружение вторжений
  • Позволяет включить ускоритель HTTP

Минусы

  • Уязвимость к атакам типа «человек посередине»
  • Не подходит для важных сетей
  • Узкое место в средней точке, если у вас много внутренних серверов

Прокси-сервер TLS Passthrough

TLS_Passthrough Proxy
TLS_Passthrough Proxy

Прокси-сервер является пассивным участником соединения. Он «сидит» между клиентом и сервером и пересылает зашифрованное сообщение от одного к другому без какого-либо вмешательства или расшифровки в середине. Все данные расшифровываются только на конечных точках. Такой тип соединения разгружает посредника и позволяет ему более точно выполнять балансировку нагрузки.

Сквозной проходной туннель безопасен, поскольку защищенное HTTPS-соединение не превращается в HTTP, как это происходит при разрыве. Человек посередине не может получить доступ к защищенным данным на любом участке туннеля.

Недостатком этого метода является его высокая стоимость и невозможность производить какие-либо действия с веб-трафиком.

Цели использования прокси-сервера Passthrough

  • Прокси-сервер, инкапсулированный в HTTPS-трафик.
  • Более точная балансировка нагрузки
  • Надежное соединение на всех участках пути.
  • Защита от атак типа «человек посередине».

Плюсы и минусы использования сквозного прокси-сервера

Плюсы

  • Обеспечивает устойчивый канал для соединения HTTPS-HTTPS
  • Не требуется сертификат
  • Неуязвимость для атак типа «человек посередине»

Минусы

  • Дорогой
  • Отсутствие кэширования
  • Анализ данных отсутствует
  • Никаких действий в отношении трафика

Вывод: TLS Termination Edge vs Passthrough Proxies

Терминирующие и проходные прокси-серверы TLS имеют как свои плюсы, так и минусы. Однако нельзя сказать, какой тип лучше. Терминирующие и проходные прокси преследуют разные цели. В кратком обзоре показаны различия между этими типами, а также их преимущества и недостатки.

ОкончаниеПроходной
Характеристики
Проектирование сетиПромежуточный шлюзСквозной
Шифрование/дешифрование данныхВ серединеВ конечных точках
Участие в процессе передачи данныхАктивныйПассивный
Структура соединенияПротокол HTTPS-proxy-HTTPПротокол HTTPS-proxy-HTTP
Дополнительные меры безопасностиТребуется сертификатСертификат не требуется
Характеристики
HTTP-совместимыйДаНет
БезопасностьУязвимость к атакам типа «человек посередине»Безопасный
Эффективность прокси-функцийВысокаяОграниченный
Разгружает бэкэндДаНет
ЦенаМеньше стоимостьБольше стоимость

Мы используем файлы cookie на нашем сайте, чтобы обеспечить вам наилучшее качество просмотра.Продолжая просматривать сайт, вы соглашаетесь с этим использованием. Более подробную информацию о том, как мы используем файлы cookie, см. в Политике конфиденциальности.

Понятно

Мы добавили этот прокси в список сравнения