IM
Требования к средству общения
Для общения через интернет необходимо средство, обладающее, в частности, следующими свойствами:
- клиенты для мобильных платформ (Android/iOS) и для десктопа (Windows/Linux/Mac)
- шифрование хранимых сообщений (чтобы доступ к локальной переписке мог быть получен только после авторизации)
- шифрование передачи (сообщение должно шифроваться на отправителе и расшифровываться на получателе)
- контроль подключенных клиентов (должна быть регистрация устройств/программ, используемых для общения через аккаунт)
Требования, снижающие риски:
- свободный исходный код
Дополнительные желаемые возможности:
- голосовое общение
- видеообщение
- передача файлов
Популярные решения
До недавнего времени были популярны способы взаимодействия двух видов:
1. Соцсети/Skype/Jabber
В них регистрация пользователя через логин/пароль, и далее он может с любых устройств подключаться и общаться. При этом на остальные устройства переписка тоже попадёт, причём только ВК позволяет посмотреть, какие устройства подключены. Чтобы написать человеку, нужно знать его логин.
2. WhatsApp/Viber/Telegram
В них идентификация личности производится через привязку к телефонному номеру (предполагается, что он неотделим от личности). После установки приложения на смартфон можно узнать, у кого ещё есть такое же приложение и общаться с ними. Чтобы написать человеку, нужно знать его номер телефона (вроде бы в Telegram появился nickname).
На данный момент у Viber/Telgram есть нормальные десктопные клиенты. У WhatsApp/Viber есть поддержка голосового общения.
Подходящие решения
Подходящих решения есть два:
- TOX (протокол TOX)
- Telegram (протокол MTProto)
Telegram
Есть клиент для мобильного в официальных репозиториях. Бинарные дистрибутивы клиентов выложены, сборка пакетов в процессе.
TOX
Клиент (Anton) для Android доступен через отдельный репозиторий для FDroid. Клиент для Linux собран для Fedora/Ubuntu (популярный — qtox), сборка пакетов в процессе.
Декларируется поддержка голосового общения. Отсутствует привязка к номеру.
Идёт тестирование.