На днях стало известно о новом проекте Upspin, который разрабатывается группой инженеров из корпорации Google. Основная задача участников проекта — создание фреймворка для обеспечения безопасного совместного доступа к файлам. Upspin, если коротко, задает набор протоколов, интерфейсов и прочих программных компонент, что позволяет связать вместе различные данные, включая ФС и сервисы хранения. Написан фреймворк на язык Go. Распространяется он под лицензией BSD. Стоит отметить, что сам проект — не официальная разработка Google, а «хобби» сотрудников.
Вне зависимости от того, где находятся файлы, Upspin унифицирует доступ к ним, так что получить данные можно из практически любой точки глобальной сети. По словам разработчиков, их разработка является попыткой решить проблему с текущей фрагментированностью различных программных элементов для совместного доступа к файлам. В результате пользователю, который работает с разными платформами, необходимо тратить время на выполнение промежуточных загрузок, сохранений и переупакови файлов.
Чтобы лучше понять саму проблему, можно представить себе ситуацию, когда пользователь хочет поместить фотографию, которая загружена в Facebook, в другую социальную сеть, например, во «Вконтакте». В этом случае приходится загружать картинку сначала на ПК или телефон, а потом уже пересохранять в другой социальной сети. Чтобы передать файл другому пользователю или передать со смартфона на удаленный ПК, нужно загружать информацию в «облако» любого доступного файлового сервиса. Контроль над файлом у пользователя исчезает сразу после того, как данные попадают на сервера выбранного сервиса. Для сохранения безопасности данных их в этом случае приходится шифровать.
В системе три основных компонента:
- Сервер ключей, на котором хранятся открытые ключи всех пользователей системы. Частные ключи хранятся на стороне пользователей;
- Сервер хранения, где размещаются данные пользователя. Каждый из пользователей может запустить один или больше серверов хранения;
- Сервер директорий, который предоставляет информацию о типах данных на серверах хранения. Сервер директорий может быть запущен в одной связке с сервером хранения.
Для того, чтобы идентифицировать файл, разработчики Upspin предлагают использовать схему типа «ann@example.com/dir/file», которая состоит из электронной почты пользователя и виртуального пути. Если известен глобальный идентификатор файла, то любой пользователь, получив доступ, сможет обратиться к этому файлу из практически любого локального приложения. Это будет работать, как обращение к обычному файлу в собственной файловой системе или любого их совместимых с фреймворком онлайн-сервисов.
Достоинством проекта можно назвать еще и обеспечение доступа к динамически меняющейся информации, будь то данные с датчиков или же результаты запроса к сетевым сервисам. Для прикрепления глобального пространства имен к локальной файловой системе пользователь получает FUSE-модуль. Второй вариант — программа upspin с набором типовых команд вроде «ср». Для того, чтобы произвести подключение к глобальной ФС нужно просто установить одну из реализаций Upspin, создать ключи для email и зарегистрировать их в хранилище ключей.
Доступом можно управлять путем создания в экспортируемой директории особого файла, который называется Access, в котором перечисляются все полномочия, предоставленные другим пользователям. В итоге, добавив в файл правило типа «read: joe@here.com, mae@there.com», пользователи joe@here.com и mae@there.com могут читать файлы в текущих директории и поддиректории. Кроме того, фреймворк дает возможность предоставлять доступ к записи или же просмотру содержимого каталога, удалению, созданию файла. Можно создавать и отдельные групповые политики, используя шаблоны либо же индивидуальное определение правил доступа к различным файлам.
По словам разработчиков, одна из основных целей — обеспечение максимального уровня безопасности. Что касается производительности, то ей здесь отводится второстепенная роль. Для обеспечения безопасности данных пользователя используются методы идентификации пользователей по открытым ключам. Одна из них Key Transparency с централизованным сервером ключей key.upspin.io. Изначально применяется верификация содержимого по цифровой подписи, а все данные передаются в зашифрованном виде с использованием ширования типа end-to-end. Это позволяет многое, включая разворачивание собственного сервера Upspin, хранение файлов в любом облачном хранилище.
Поделиться с друзьями
Комментарии (9)
redmanmale
24.02.2017 11:34+5Upspin: новая глобальная файловая система от Google
Стоит отметить, что сам проект — не официальная разработка Google, а «хобби» сотрудников.
Не надо так.
А вообще выглядит так, будто ребята пытаются создать «ещё один стандарт», на который всё равно всех не перетянешь.
ngreduce
24.02.2017 14:15+221 век. Нейросетки бороздят просторы вселенной. Гугл строгает Апспин. А я не могу без костылей передать 300Мб файл по воздуху с ноутбука на планшет, потому что не хватает канала на просмотр в реальном времени.
bugrazoid
28.02.2017 16:20+121 век, а иногда без костылей и файлы с телефона хрен передашь, пока не рутанешь и сольешь все по ssh или samb'е.
MaxxxZ
24.02.2017 14:19+1Они заново придумывают URI и HTTP? Не могу понять принципиального отличия. Или писал не технарь…
Pilat
26.02.2017 18:31Это просто рекламная статья хостинг-провайдера, который не озаботился осмысленностью содержания.
Проект может и интересный, но что он делает из содержимого статьи — непонятно.
NeoCode
Если бы оно еще и на распределенных пиринговых технологиях работало…
anatolykern
https://storj.io/
shifttstas
ipfs же