Инженеры из Google представили глобальную файловую систему Upspin
22 февраля 2017 года
Группа инженеров из компании Google представила проект Upspin, в рамках которого разработан экспериментальный фреймворк для организации безопасного совместного доступа к файлам. Upspin определяет набор протоколов, интерфейсов и реализаций программных компонентов, позволяющих связать в единое пространство имён различные данные, такие как ФС и сервисы хранения. Код эталонной реализации Upspin написан на языке Go и распространяется под лицензией BSD. Проект развивается сотрудниками Google, но не является официальным продуктом компании.
Upspin позволяет унифицировать доступ к файлам, независимо от того, где они находятся, предоставляя гибкие механизмы для управления доступом и возможность получить файл из любой точки глобальной сети. Проект пытается решить проблему с текущей фрагментированностью решений для совместного доступа к файлам, которая приводит к необходимости выполнения пользователем множества излишних действий, таких как выполнение промежуточных загрузок, сохранений и переупаковок.
Например, при желании опубликовать картинку из Facebook в Twitter, пользователю нужно загрузить картинку на локальный диск и затем отдельно загрузить её в Twitter. Чтобы передать файл другому пользователю или скопировать со смартфона на удалённый ПК, приходится загружать данные в одно из облачных хранилищ. При этом пользователь облачного хранилища не контролирует свои данные, которые могут попасть в чужие руки в результате потери контроля над учётной записью или действий со стороны облачного провайдера, поэтому при работе с конфиденциальными данными приходится накладывать ещё один слой в виде шифрования.
Upspin предлагает использовать для идентификации файла схему "ann@example.com/dir/file", состоящую из email пользователя и виртуального пути. Зная глобальный идентификатор файла, любой пользователь, при предоставлении ему доступа, может обратиться к этому файлу из любого локального приложения, как к обычному файлу в своей ФС, или из любого online-сервиса, поддерживающего Upspin. Кроме файлов и директорий Upspin позволяет организовать доступ к динамически меняющейся информации, такой как данные от датчиков или результаты запросов к сетевым сервисам. Для прикрепления глобального пространства имён к локальной ФС предоставляется FUSE-модуль. Для доступа также можно использовать программу upspin c набором типовых команд, таких как "cp". Для подключения к глобальной ФС достаточно установить одну из реализаций Upspin, создать ключи для своего email и зарегистрировать их в хранилище ключей.
Управление доступом производится путём создания в экспортируемой директории специального файла с именем Access, содержащего список полномочий, предоставленных другим пользователям. Например, добавив в файл правило "read: joe@here.com, mae@there.com", пользователи joe@here.com и mae@there.com получат возможность чтения файлов в текущей директории и поддиректориях. Кроме чтения, можно предоставить доступ к записи, просмотру содержимого каталога, удалению, созданию файлов и т.п. Возможно создание групповых политик, использование шаблонов (например, "read: all" и "*: all") и индивидуальное определение правил доступа к отдельным файлам.
Ключевой целью разработки является обеспечение наивысшего уровня безопасности. Производительности уделяется второстепенная роль. В частности, в Upspin применяются современные методы идентификации пользователей по открытым ключам. Для хранения и обнаружения открытых ключей планируется задействовать технологию Key Transparency (пока доступен только один экспериментальный централизованный сервер ключей key.upspin.io). По умолчанию применяется верификация содержимого по цифровой подписи и все данные передаются в зашифрованном виде с использованием end-to-end-шифрования, при котором закрытые ключи фигурируют только на конечных системах владельца файла и получателя. Подобный подход позволяет не только развернуть свой собственный сервер Upspin, но и делегировать хранение файлов в любое облачное хранилище, не опасаясь, что данные попадут в чужие руки в результате компрометации хранилища или диверсии персонала. При этом в Upspin не обеспечивается "forward secrecy", т.е. утечка закрытого ключа владельца, означает возможность доступа к перехваченным файлам.
Инфраструктуру Upspin составляют три компонента:
- Сервер ключей, выполняет работу по хранению открытых ключей всех пользователей системы (приватные ключи хранятся отдельно, на стороне пользователей). Сервер ключей также имеет информацию о сетевых адресах серверов директорий. Пользователи могут воспользоваться уже работающим сервером ключей key.upspin.io или запустить свой собственный;
- Сервер хранения, на котором непосредственно размещены хранимые данные. Каждый пользователь может запустить один или несколько серверов хранения;
- Сервер директорий, предоставляющий информацию о том, какие данные размещены на серверах хранения. Сервер директорий может быть запущен в связке с сервером хранения для каждого пользователя или на группу пользователей, например, один на всю семью. Пользователь также может использовать сторонние серверы директорий и хранения, к которым ему предоставлен доступ (например, облачные сервисы).
- Опционально реализован кэширующий сервер, который может применяться для кэширования данных при их передаче от удалённого сервера к клиенту.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.