Коммуникационный сервис Wire, предлагающий end-to-end шифрование для обмена сообщениями, голосовых звонков и видеовызовов, сообщил об открытии кода серверной части, в дополнение к коду клиентских приложений, протокола и внутренних библиотек, открытых ранее под лицензией GPLv3. Код серверных компонентов открыт под лицензией AGPLv3, которая требует открытия не только кода обособленных производных продуктов, но и web-сервисов, построенных на основе AGPL-компонентов. Код написан на языке Haskell.

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

Открытию кода серверной части способствовало успешное проведение независимого аудита реализации применяемого в Wire протокола Proteus и Cryptobox API. Аудит не выявил каких-то концептуальных или особо опасных проблем, в основном благодаря применению в Wire распространённых стандартных криптографических алгоритмов (ChaCha20, HMAC-SHA256, Curve25519 и HKDF) и библиотеки libsodium.

Из уже открытых компонентов можно отметить:

  • nginz - открытый API для обращения через Reverse Proxy;
  • galley - организация общения;
  • proxy - интеграция со сторонними API;
  • brig - ведение учётных записей (код в процессе публикации);
  • gundeck - Push Notification Hub (код в процессе публикации);
  • cannon - система Push-уведомлений на основе WebSocket;
  • cargohold - хранилище ресурсов (код в процессе публикации);
  • libs - 16 вспомогательных разделяемых библиотек.
  • Ведётся работа над открытием компонентов для поиска и обнаружения пользователей, взаимодействия с push-сервисами Apple и Google, маршрутизации сообщений и событий, хранения сопутствующих данных, управления профилями и устройствами.


Источник: http://www.opennet.ru/opennews/art.shtml?num=46345