Предоставление конфиденциальности данных в руки пользователей

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

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

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

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

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

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

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

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

Создание «вселенных»

В 2016 году Европейский Союз принял Общее положение о защите данных (GDPR), в котором говорится, что пользователи должны дать согласие на доступ к своим данным, что они имеют право требовать удаления своих данных, и что компании должны принять соответствующие меры безопасности. Однако для веб-разработчиков эти законы предоставляют мало технических рекомендаций для написания сложных приложений, которые должны использовать пользовательские данные.

В прошлом компьютерные ученые разрабатывали системы «управления информационными потоками» (IFC), которые позволяли программистам маркировать программные переменные с помощью политик данных. Но с таким большим количеством переменных и множеством возможных взаимодействий между переменными эти системы трудно программировать. Таким образом, ни одна крупномасштабная веб-служба не использует методы IFC.

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

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

«Скажем, я хочу, чтобы мои данные были объединены с другими пользователями. Эти данные помещаются в его собственную вселенную с другими пользовательскими данными с той же политикой», — говорит Ван. «Если пользователь не хочет делиться никакими данными с кем-либо, то у этого пользователя есть своя целая вселенная. Таким образом, у вас нет перекрестного опыления данных».

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

Эффективное копирование

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

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

Исследователи предполагают, что политики разрабатываются правозащитными группами, такими как Electronic Frontier Foundation (EFF), международная некоммерческая группа по цифровым правам. Новые политики можно в любой момент «вставить» в службу, управляемую Riverbed, что означает, что разработчикам не нужно переписывать код.