Я работаю над проектом, в котором клиенты обмениваются данными со службами. Мы разработали прокси-сервер между службой и клиентом, который анонимизирует данные пользователя, поэтому любой взлом базы данных получит только огромное количество бесполезных данных.
Конечно, наш прокси-уровень нужно масштабировать, поэтому мы поместили его за балансировщиком нагрузки, используя k8s.
Проблема в том, что Load Balancer в настоящее время является SPOF (единственной точкой отказа) нашей системы. Если злоумышленник контролирует его, чтобы замедлить трафик и перенаправить его только на один экземпляр наших прокси, то он может добиться повторной идентификации и таким образом скомпрометировать весь сервис.
Мы изучаем множество подходов, и один из них — «балансировщик без нагрузки». В этой архитектуре каждый клиент должен получить с другого сервера (который в нашей модели является полностью доверенным) IP-адреса прокси, а затем случайным образом выбрать один из них. Используя эту технику, злоумышленнику придется контролировать большой процент клиентов, чтобы добиться повторной идентификации, что намного сложнее. И все самоуравновесится.
У такого видения всей системы есть огромный недостаток, так как для каждого экземпляра прокси нужен публичный IP, но это полностью избавляет от основной проблемы.
Технически все это осуществимо. Но как насчет реального мира? У меня очень мало опыта развертывания производственных сервисов, поэтому приветствуется любое мнение.