Объяснение работы прокси-сервера TLS Termination Proxy: Что это такое и как это работает?
Протокол 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 (Open Systems Interconnection) дает первое приближение к области применения протокола.
Простой протокол может относиться к одному уровню OSI. Сложные протоколы имеют различные характеристики, поэтому они одновременно принадлежат к разным уровням OSI.
TLS обладает свойствами четырех уровней: приложения, представления, сеанса и передачи.
- Прикладной уровень: взаимодействие с приложениями, ориентированными на пользователя.
- Транспортный уровень: транзакция данных.
- Уровень представления: шифрование.
- Возобновление сеанса на уровне сеанса.
Принцип работы TLS
HTTP — основной протокол передачи данных в Интернете. Изначально небезопасный, он стал безопасным для использования благодаря шифрованию SSL/TLS.
TLS работает как дополнение к HTTP, обеспечивающее безопасность шифрования. Он задает правила соединения и вызывает криптографические системы для защиты соединения. Модернизированная версия HTTP широко известна как HTTPS.
TLS ставит перед собой три основные цели обеспечения безопасности:
- Конфиденциальность
- Целостность
- Безопасная аутентификация
Реализация этих целей составляет суть принципов работы TLS.
Конфиденциальность
Защита конфиденциальности — это совокупность действий, направленных на предотвращение нежелательного доступа к информации.
Пример системы без защиты конфиденциальности:
- 1. Пользователь хочет войти на сайт банка.
- 2. Пользователь подключается к банковскому серверу с помощью клиентской машины.
- 3. Клиент отправляет сообщение с банковскими реквизитами.
- 4. Сервер проверяет логин и пароль и пропускает пользователя.
Конфиденциальность находится под угрозой! Злоумышленник («человек посередине») может перехватить сообщение и прочитать его содержимое.
Пример системы с простым симметричным шифрованием:
Клиент отправляет на сервер сообщение с банковскими реквизитами. При этом клиент перед отправкой шифрует сообщение с помощью ключа. Эту задачу человеку посередине решить сложнее, но перехватить сообщение и расшифровать его содержимое все же возможно.
Безопасное шифрование TLS
В протоколе TLS используется более надежный асимметричный тип шифрования. Он запускает процесс взаимной проверки между клиентом и сервером. Этот процесс называется рукопожатием. Протокол может вызывать различные алгоритмы для выполнения рукопожатия, но наиболее популярными являются алгоритмы RSA и Диффи-Хеллмана. Это упрощенный пример рукопожатия RSA.
Для каждого соединения сервер хранит не один, а два ключа: открытый и закрытый. Любой желающий может просмотреть открытый ключ. Однако сообщение, зашифрованное с помощью этого ключа, может быть расшифровано только с помощью закрытого ключа. Сервер хранит этот закрытый ключ и никому его не передает.
- 1. Клиент подключается к серверу и запрашивает защищенное соединение.
- 2. Сервер отвечает и отправляет открытый ключ клиенту.
- 3. Клиент шифрует данные с помощью этого ключа и отправляет их обратно. Даже если злоумышленники перехватят сообщение, они не смогут расшифровать его без закрытого ключа.
- 4. Сервер получает сообщение и расшифровывает его с помощью закрытого ключа.
Целостность
Защита целостности данных — это комплекс мер по сохранению информации в неизменном виде. Основная цель — не допустить искажения информации из-за сбоев в работе системы.
Для достижения целостности в TLS используются симметричные хэш-функции (MD5, SHA и др.):
- 1. Клиент преобразует массив данных в зашифрованную строку и получает хэш.
- 2. Клиент отправляет данные и хэши, упакованные вместе.
- 3. Сервер получает и извлекает данные и хэш. Он снова преобразует данные в хэш и сравнивает полученный хэш с недавно полученным хэшем. Если они не совпадают, это означает, что сообщение повреждено.
Аутентификация
Под защитой аутентификации понимается проверка подлинности. Например, клиент подключается к банку. Человек посередине перенаправляет клиента на аналогичный сайт, чтобы похитить его учетные данные.
Цифровые сертификаты позволяют проверить, является ли сервер доверенным. Сервер может сертифицировать свой открытый ключ в доверенных организациях, называемых центрами сертификации (CA). Это такие компании, как IdenTrust, DigiCert и GoDaddy. Они сертифицируют открытый ключ с помощью сертификата корневого центра сертификации. Когда клиентская машина подключается к серверу и получает ключ, она обращается к CA с вопросом: является ли этот ключ подлинным? Если ключ не сертифицирован, CA блокирует соединение.
TLS Proxy: Что это такое и как это работает
Что такое прокси?
Прокси-сервер — это посредник между клиентом и сервером. Весь трафик проходит через посредника. Преимущества соединения через точку-посредник заключаются в следующем:
- Балансировка нагрузки
- Сокрытие личности
- Защита от вторжений, слежения и вредоносного ПО
- Фильтрация трафика
- Экономия полосы пропускания
Принцип работы TLS-прокси
TLS-прокси для Windows, Mac или Linux — это способ управления HTTPS-трафиком. Он работает как сервер-посредник, подобно другим прокси-серверам. Отличие заключается в том, что он работает внутри HTTPS-туннеля, который защищает информацию с помощью алгоритма рукопожатия. Таким образом, этот посредник должен участвовать в обмене зашифрованными данными.
Существует два типа прокси-серверов TLS в зависимости от того, как они участвуют в этом процессе. Прокси-серверы Passthrough передают сообщение от клиента к серверу и обратно. Оконечные прокси-серверы прерывают соединение на середине.
Прокси-сервер завершения TLS
Типы прокси-серверов для завершения TLS
Оконечный прокси-сервер TLS является активным участником соединения. Он направляет HTTPS-трафик от клиента к серверу и прерывает соединение для чтения и анализа трафика. Для этого посредник разбивает туннель между клиентом и сервером на две части: Клиент — Прокси, Прокси — Сервер. TSL-соединение прерывается с одной стороны. В зависимости от стороны существует два типа соединений:
- Выгрузка: Соединение «прокси-сервер» разорвано. Входящие HTTPS-данные со стороны клиента передаются на сервер в виде HTTP.
- Шифрование: Соединение «Клиент-Прокси» разорвано. Входящие HTTP-данные со стороны клиента передаются на сервер в виде HTTPS.
- Мостовое соединение — это комбинация двух типов соединений.
Разгрузка
Тип разгрузки является наиболее распространенным при построении сетей.
Прокси-сервер получает зашифрованное сообщение (HTTPS) со стороны клиента и расшифровывает его. Поскольку прокси-серверы могут работать только с расшифрованными файлами, на этом этапе он может анализировать данные и управлять ими. Например, он может балансировать нагрузку для внутреннего сервера, обеспечивать наблюдение за сетью и блокировать вредоносные действия. Затем посредник направляет трафик на сервер, использующий HTTP.
Когда сервер отвечает, посредник снова получает сообщение. На этом этапе он также может проводить анализ данных и включать полезные функции: обнаружение вредоносных программ и вторжений, фильтрацию контента, включение дополнительных версий протоколов. Затем прокси снова шифрует данные и отправляет их клиенту.
Поскольку всю работу по шифрованию и дешифрованию выполняет посредник, он разгружает серверы, что позволяет им работать быстрее.
Большим недостатком этого метода является незащищенная часть туннеля с HTTP-трафиком. Человек посередине может получить там доступ к данным и украсть их. К счастью, других уязвимостей нет — «человек посередине» не может создать шлюз для кражи информации.
Чтобы начать процесс завершения, прокси-сервер должен иметь сертификат того же типа, который любой сервер получает от CA. Серверу внутри туннеля TLS необходимо доказать, что ему доверяют, чтобы начать процесс рукопожатия, и именно это делает посредник завершения.
Шифрование
Тип шифрования аналогичен выгрузке, но данные шифруются со стороны сервера. Посредник получает клиентские данные в открытом виде (HTTP). Затем он шифрует трафик и пересылает его на сервер с HTTPS. Сервер отвечает, а посредник расшифровывает данные и пересылает их клиенту.
Мост
Этот тип устанавливает зашифрованное соединение с обеих сторон. Первый прокси получает данные от клиента. Клиент и прокси выполняют рукопожатие. Посредник расшифровывает полученные от клиента данные и запускает необходимые приложения: фильтрацию вредоносных программ, балансировку нагрузки, HTTP-лак. Затем посредник снова шифрует данные — теперь уже для рукопожатия с сервером. Он отправляет данные, получает ответ, расшифровывает его и снова оптимизирует. Затем он шифрует информацию, чтобы отправить ее пользователю.
Другими словами, прокси прерывает соединение, но трафик остается зашифрованным. Трафик расшифровывается в промежуточной точке, поэтому данные могут быть скомпрометированы, если у посредника есть уязвимости.
Причины использования терминации по доверенности
- 1. Чтобы заставить HTTPS взаимодействовать с HTTP (помогает основать соединение фронтенда HTTPS с бэкендом HTTP).
- 2. Чтобы добавить точку аутентификации на основе сертификата.
- 3. Для разгрузки серверов.
- 4. Для балансировки нагрузки.
- 5. Для включения функций, недоступных при зашифрованных данных: анализ данных, обнаружение вредоносных программ и вторжений, фильтрация содержимого и HTTP-лак.
- 6. Включить дополнительные версии протоколов.
- 7. Если прокси находится гораздо ближе к клиенту, чем конечная точка, то процесс квитирования происходит быстрее.
Плюсы и минусы использования доверенности на расторжение договора
Плюсы
- Позволяет HTTPS взаимодействовать с HTTP
- Разгрузка серверов
- Не очень дорого
- Эффективное распределение нагрузки
- Анализ данных
- Позволяет выполнять действия над трафиком
- Наблюдение за сетью, обнаружение вторжений
- Позволяет включить ускоритель HTTP
Минусы
- Уязвимость к атакам типа «человек посередине»
- Не подходит для важных сетей
- Узкое место в средней точке, если у вас много внутренних серверов
Прокси-сервер TLS Passthrough
Прокси-сервер является пассивным участником соединения. Он «сидит» между клиентом и сервером и пересылает зашифрованное сообщение от одного к другому без какого-либо вмешательства или расшифровки в середине. Все данные расшифровываются только на конечных точках. Такой тип соединения разгружает посредника и позволяет ему более точно выполнять балансировку нагрузки.
Сквозной проходной туннель безопасен, поскольку защищенное HTTPS-соединение не превращается в HTTP, как это происходит при разрыве. Человек посередине не может получить доступ к защищенным данным на любом участке туннеля.
Недостатком этого метода является его высокая стоимость и невозможность производить какие-либо действия с веб-трафиком.
Цели использования прокси-сервера Passthrough
- Прокси-сервер, инкапсулированный в HTTPS-трафик.
- Более точная балансировка нагрузки
- Надежное соединение на всех участках пути.
- Защита от атак типа «человек посередине».
Плюсы и минусы использования сквозного прокси-сервера
Плюсы
- Обеспечивает устойчивый канал для соединения HTTPS-HTTPS
- Не требуется сертификат
- Неуязвимость для атак типа «человек посередине»
Минусы
- Дорогой
- Отсутствие кэширования
- Анализ данных отсутствует
- Никаких действий в отношении трафика
Вывод: TLS Termination Edge vs Passthrough Proxies
Терминирующие и проходные прокси-серверы TLS имеют как свои плюсы, так и минусы. Однако нельзя сказать, какой тип лучше. Терминирующие и проходные прокси преследуют разные цели. В кратком обзоре показаны различия между этими типами, а также их преимущества и недостатки.
Окончание | Проходной | |
Характеристики | ||
Проектирование сети | Промежуточный шлюз | Сквозной |
Шифрование/дешифрование данных | В середине | В конечных точках |
Участие в процессе передачи данных | Активный | Пассивный |
Структура соединения | Протокол HTTPS-proxy-HTTP | Протокол HTTPS-proxy-HTTP |
Дополнительные меры безопасности | Требуется сертификат | Сертификат не требуется |
Характеристики | ||
HTTP-совместимый | Да | Нет |
Безопасность | Уязвимость к атакам типа «человек посередине» | Безопасный |
Эффективность прокси-функций | Высокая | Ограниченный |
Разгружает бэкэнд | Да | Нет |
Цена | Меньше стоимость | Больше стоимость |