На днях стало известно о новом проекте 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)


  1. NeoCode
    24.02.2017 00:05

    Если бы оно еще и на распределенных пиринговых технологиях работало…


    1. anatolykern
      24.02.2017 05:44
      +1

      https://storj.io/


    1. shifttstas
      24.02.2017 15:08
      +1

      ipfs же


  1. redmanmale
    24.02.2017 11:34
    +5

    Upspin: новая глобальная файловая система от Google
    Стоит отметить, что сам проект — не официальная разработка Google, а «хобби» сотрудников.
    Не надо так.

    А вообще выглядит так, будто ребята пытаются создать «ещё один стандарт», на который всё равно всех не перетянешь.


  1. ngreduce
    24.02.2017 14:15
    +2

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


    1. bugrazoid
      28.02.2017 16:20
      +1

      21 век, а иногда без костылей и файлы с телефона хрен передашь, пока не рутанешь и сольешь все по ssh или samb'е.


  1. MaxxxZ
    24.02.2017 14:19
    +1

    Они заново придумывают URI и HTTP? Не могу понять принципиального отличия. Или писал не технарь…


  1. artifex
    24.02.2017 14:40
    +1

    IPFS выглядит интересней, на самом деле


  1. Pilat
    26.02.2017 18:31

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