Unhosted - новый подход к созданию веб-приложений с децентрализацией пользовательских данных

Европейское отделение Фонда свободного ПО опубликовало интервью Майклом де Джонгом (Michiel de Jong), создателем проекта Unhosted, в рамках которого предлагается новая концепция создания web-приложений, при которой пользовательские данные не привязаны к определенному сервису или хранилищу. В рамках проекта разработан протокол и набор средств для создания полностью свободных и открытых web-приложений, которые не накладывают ограничений не только на доступ к коду, исполняемому в рамках веб-браузера, но всему приложению в целом и, что важнее, хранилищу данных приложения.

Все вычисления в таком приложении происходят на клиентской стороне, а пользователь сам выбирает место расположения данных, которым может быть специальный публичный сервис, домашняя машина или облачный сервер, взятый в аренду (главное, чтобы на нем была установлен unhosted-сервер). Все, что требуется от пользователя, это просто ввести его идентификатор (GID), состоящий из имени и адреса unhosted-сервера (например, boris@unhosted.org) и пароль. После этого доступ к приложению будет открыт, а вся сгенерированная в процессе информация сохранится в указанном месте в зашифрованном виде.

Unhosted состоит из двух компонентов:

  • WebDAV-сервер, который принимает запросы на сохранение или доступ к данным от клиентов.
  • Javascript-библиотека unhosted.js, которую приложение использует для сохранения и чтения данных с сервера.

    Обмен данными между клиентом и сервером осуществляется с помощью протокола WebDAV и механизма CORS (Cross-Origin Resource Sharing), разработанного W3C. Аутентификация производится с помощью OAuth. Перед отправкой данные шифруются с использованием алгоритма RSA. Каждое приложение может получить доступ только к собственному хранилищу данных, поэтому запуск вредоносного приложения может привести к утечке только части конфиденциальной информации.

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

    Текущая реализация системы включает в себя библиотеку unhosted.js, Unhosted-сервер, основанный на WebDAV и демонстрационное приложение My Favorite Sandwitch.

    ©  OpenNet