9 мрачных тайн федеративной паутины

автор vadim


Роберт Фрост однажды написал, что хорошие заборы — хорошие соседи. Сегодня многие разработчики относятся к Интернету одинаково: они стремятся к миру, в котором веб-сайты и их серверы живут в отдельных пространствах, свободных от переплетений. За исключением олигархов, идея федеративной сети нравится практически всем.

Термин объединенный намекает на федерализм, философию, которая определяет политическую структуру Соединенных Штатов. Каждое из государств сохраняет суверенитет, и вся страна получает выгоду от этой независимости. Интернет работает аналогично. В идеале он предлагает сочетание устойчивости, гибкости и распределенной власти, которое ярко горит для тех, кто ценит свободу. В действительности, сегодняшняя сеть представляет собой смесь независимых островов и тесно интегрированных разрозненных структур. Существует множество примеров сайтов, которые работают вместе на расстоянии вытянутой руки, воплощая федеративный веб-дизайн. Существуют также огороженные сады, где центральный администратор доминирует над всеми взаимодействиями, воплощая контроль как образ действий.

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

Никакой экономии за счет масштаба

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

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

Больше журналов

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

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

Цифровые подписи повсюду

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

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

Кэширование — это сложно

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

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

Забытые дыры в безопасности

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

Каскадные сбои безопасности

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

Уязвимые зависимости

Если вы когда-нибудь захотите напугать Java-разработчика, упомяните платформу ведения журналов с открытым исходным кодом Log4j. Когда в платформе, которая используется почти в каждом Java-приложении, была обнаружена уязвимость безопасности, разработчики по всему миру бросились залатать дыры, о существовании которых они даже не подозревали. Разработчики должны быть уверены в безопасности своих библиотек, однако невозможно сертифицировать безопасность кода без тестирования каждой строки кода.

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

Монолиты все равно рулят

Монолитные корпорации, такие как Amazon и eBay, на самом деле представляют собой созвездия миллионов более мелких компаний. Хотя они могут казаться пользователям одной гигантской системой, внутри часто присутствует некоторая федерация. Разница в концентрации власти. Центральная компания принимает решения, а более мелкие компании делают то, что им говорят.

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

Слишком большая сложность

В конце концов, люди — как пользователи, так и инженеры — борются со сложностью. Простой пример того, как пользователи подрывают объединенную сеть, — повторное использование паролей. Люди не могут запомнить сотни разных паролей и поэтому используют один и тот же снова и снова. Теоретически каждый сайт должен поддерживать независимый уровень безопасности, но на самом деле пользователи не могут справиться с такой сложностью. Таким образом, они постоянно подрывают безопасность федеративной сети.

Конкуренция и свобода выбора — замечательные варианты, во многом отвечающие за разнообразие, которое делает Интернет неотразимым. Но управление истинным федерализмом сопряжено с уровнем сложности, с которым зачастую не могут справиться реальные люди и реальные системы, которые мы создаем.

Related Posts

Оставить комментарий