Какую архитектуру IM вы считаете приемлемой?

в 12:07, , рубрики: email, skype, xmpp, информационная безопасность

Всем здравствуйте.
Я всерьез задумался над отсутствием вменяемой, безопасной альтернативы Skype. Даже не альтернативы самому мессенджеру, а отсутствием протоколов, которые объединяли бы в себе и обмен текстовыми сообщениями, и многопользовательские чаты, и гарантированную (с пробивкой NAT и/или использованием релеев) передачу голоса, видео и файлов. Разработать такой протокол, чтобы он удовлетворял всех, достаточно сложно, поэтому мне бы хотелось услышать, во-первых, мнение хабрасообщества на этот счет, а во-вторых, зарубежных пользователей с Reddit.

Я вкратце опишу преимущества и недостатки некоторых текущих архитектур, если вы забыли или не знали какие-то моменты. Во всех описаниях архитектур подразумевается их безопасная реализация.

P2P

По этой модели был построен Skype, сейчас делают Tox, да и множество других менее известных мессенджеров. Преимущество заключается в том, что не требуется никаких серверов (или близко к этому) для поддержания работы сети, требуется только, как правило, какие-то начальные ноды, и (в зависимости от архитектуры) сервер авторизации. Все коммуникации происходят напрямую от пользователя к пользователю, что, во-первых, раскрывает IP-адреса участников, а во-вторых, совершенно неприемлемо для мобильных устройств и в мобильных сетях, из-за высокого расхода батареи и трафика. Среди недостатков, также можно отметить отсутствие оффлайн-сообщений и синхронизации истории сообщений без другой, запущенной под этим логином, ноды. Также, к счастью, не так уж и часто, P2P мессенджерам не удается пробить NAT, и связь напрямую становится невозможна. В таком случае, либо связь вообще не устанавливается, либо используются серверы-релеи.

Серверная децентрализованность

Эта модель используется в Email и XMPP. Самая удачная, на мой взгляд, архитектура, которая позволяет не тратить большое количество энергии на мобильных устройствах из-за всего одного длительного соединения с сервером; в ней отсутствует единая точка отказа, присутствует возможность синхронизации истории и отправки оффлайн-сообщений. В зависимости от архитектуры, может скрывать IP-адрес отправителя. Однако, такая модель требует наличия своего/чужого сервера. Если умирает какой-то крупный публичный сервер, то и все его пользователи теряют возможность коммуникации.

Единый сервер

Пожалуй, самая популярная архитектура, которая используется подавляющим большинством мобильных и десктопных мессенджеров. В наличии единая точка отказа, может обеспечиваться анонимность, возможность использовать удобные идентификаторы, вроде номера мобильного телефона, однако, нет возможности проверить, храниться ли ваши данные надлежащим образом, и нет доступа к исходному коду сервера. Тот же Telegram, который преподносят как защищенный, использует эту модель. Из плюсов следует отметить всегда корректную работу на мобильных устройствах (PUSH-уведомления).

Автор: ValdikSS

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js