ГОСТ и обычный TLS на одном адресе#
Организации, которая обязана защищать соединения отечественными алгоритмами шифрования, приходится обслуживать два вида клиентов сразу: одни умеют работать по ГОСТ, другие приходят с обычным TLS. Angie ADC принимает и тех, и других на одном адресе и сам направляет каждое соединение туда, где его смогут обслужить.
В видео за четыре с половиной минуты показано, как это настраивается в консоли Angie ADC и как балансировщик обходится с тремя клиентами: обычным, смешанным и работающим только по ГОСТ.
Какую задачу решает#
Требование шифровать трафик по ГОСТ редко означает, что обычный TLS можно отключить. Сотрудники ведомств и партнёры подключаются через программы с поддержкой ГОСТ, а остальные посетители пользуются обычными браузерами и приложениями, где этой поддержки нет.
Обычно эту задачу решают вторым входом: для ГОСТ-клиентов заводят отдельный адрес или порт. Это ещё одна точка, которую нужно защищать, отслеживать и объяснять пользователям, и ещё один повод для обращений в поддержку, когда клиент пришёл не на тот адрес.
Angie ADC убирает второй вход. Адрес у сервиса один, а выбор между ГОСТ и обычным TLS балансировщик делает сам, незаметно для клиента.
Как это работает#
Устанавливая защищённое соединение, клиент первым же сообщением перечисляет шифры, которые он поддерживает. Angie ADC читает этот список, не расшифровывая само соединение, и по нему выбирает маршрут:
соединение с обычным TLS балансировщик расшифровывает сам и распределяет запросы по серверам приложения;
соединение с шифрованием по ГОСТ балансировщик передаёт на отдельный сервер как есть, без расшифровки.
Клиенты при этом бывают трёх видов: обычные, которые предлагают только обычные шифры; смешанные, которые предлагают и обычные шифры, и ГОСТ; и клиенты, которые предлагают только ГОСТ. С первыми и последними всё однозначно, а что делать со смешанными, решает правило, которое задаёт администратор. Есть два готовых варианта:
на ГОСТ-сервер попадают все клиенты, которые предлагают хотя бы один шифр ГОСТ, даже если они умеют работать и с обычным TLS;
на ГОСТ-сервер попадают только те клиенты, которые предлагают исключительно шифры ГОСТ, а все остальные обслуживаются как обычные.
Что это даёт бизнесу#
Один адрес для всех. Клиентам не нужно знать, каким шифрованием они пользуются: они открывают один и тот же адрес и попадают куда нужно.
Меньше точек входа. Не нужно публиковать, защищать и сопровождать отдельный адрес для ГОСТ-клиентов.
ГОСТ-трафик остаётся закрытым до конца. Балансировщик его не расшифровывает: данные раскрываются только на том сервере, где установлены средства криптографической защиты.
Обычный трафик ничего не теряет. Для него по-прежнему работают балансировка и остальные возможности Angie ADC.
Переход на ГОСТ можно делать постепенно. Пока клиенты обновляются, смешанных можно обслуживать как обычных, а когда все будут готовы — переключить их на ГОСТ, не меняя адрес сервиса.
Правило легко поменять. Переход от одного варианта выбора к другому — это правка одной строки в конфигурации балансировщика, а не перестройка сети.
Что нужно, чтобы повторить#
Сценарий воспроизводится на небольшом стенде:
Angie ADC с одним адресом, на который приходят клиенты, и загруженными сертификатами;
сервер приложения, принимающий запросы от балансировщика;
сервер с поддержкой TLS по ГОСТ;
клиент, который умеет устанавливать соединения с шифрами ГОСТ. В видео это утилита
curl, запущенная из контейнера с поддержкой ГОСТ-шифрования.
Подробнее в документации#
Балансировка трафика на основе набора шифров — пошаговая настройка обоих вариантов и команды для проверки.
Справочник модуля SSL Preread — пример конфигурации и описание переменной
$ssl_preread_ciphersсо списком шифров, которые предлагает клиент.