Завершено открытие серверной части сервиса мгновенного обмена сообщениями Wire
Коммуникационный сервис Wire, предлагающий end-to-end шифрование для обмена сообщениями, голосовых звонков и видеовызовов, объявил о завершении открытия всех компонентов серверной части, необходимых для запуска сервиса. Код серверных компонентов написан на языке Haskell и открыт под лицензией AGPLv3, которая требует открытия кода web-сервисов, построенных на основе AGPL-компонентов.
Следующим шагом станет проведение адаптации открытой кодовой базы для предоставления возможности развертывания обособленного аналога сервиса на своем оборудовании. В настоящее время требуется проведение чистки кода от внешних зависимостей. Из планов на будущее также называется предоставления средств для создания объединенных систем, позволяющих обмениваться сообщениями между сетью Wire и системами, запущенными на собственных серверах.
Система обмена сообщениями Wire реализована на базе протокола Proteus и API Cryptobox, в которых применяются известные криптографические алгоритмы ChaCha20, HMAC-SHA256, Curve25519 и HKDF, реализация которых заимствована из библиотеки libsodium. В отличие от WhatsApp, Viber, Telegram и Signal, сервис Wire позволяет регистрироваться без привязки к номеру телефона и без анализа содержимого адресной книги - в качестве идентификатора для отправки сообщений в Wire служит email.
Основные компоненты серверной части:
- nginz - открытый API для обращения через Reverse Proxy;
- galley - организация общения;
- proxy - интеграция со сторонними API;
- brig - ведение учетных записей;
- gundeck - Push Notification Hub;
- cannon - система Push-уведомлений на основе WebSocket;
- cargohold - хранилище ресурсов;
- libs - набор вспомогательных разделяемых библиотек, включая API для ботов.