Статья Как пользоваться Jabber с шифрованием OMEMO

Dunczyk

Интересующийся
Регистрация
9/4/20
Сообщения
57
Репутация
225
Реакции
54
RUB
0
Депозит
100 000 рублей
Сделок через гаранта
9
XMPP (англ. eXtensible Messaging and Presence Protocol «расширяемый протокол обмена сообщениями и информацией о присутствии»), ранее известный как джа́ббер (англ. Jabber [ˈʤæbə(r)] «болтовня, трёп, тарабарщина») — открытый, основанный на XML, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близком к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети.

Преимущества

  • Децентрализация: Архитектура сети XMPP схожа с электронной почтой; кто угодно может запустить свой собственный XMPP-сервер и нет какого-либо центрального сервера.
  • Открытый стандарт: Internet Engineering Task Force формализовал XMPP как стандарт мгновенного обмена сообщениями и технологии присутствия под названием XMPP, и спецификации XMPP были опубликованы как RFC 3920 и RFC 3921. Никаких привилегий не требуется для добавления поддержки этих спецификаций, и их разработка не привязана к какому-либо разработчику. Существует множество реализаций серверов и клиентов, а также библиотек с открытым исходным кодом.
  • Бесконечная расширяемость. Любой может написать своё расширение XEP и добавить его в протокол. Изначально предполагалось, что крупные компании будут создавать свои расширения протокола для интеграции собственных мессенджеров. Это бы позволило создать универсальный протокол общения между разными менеджерами. На практике это не произошло. Крупные Интернет-компании стали предпочитать собственные, закрытые протоколы.
  • История: Технологии XMPP используются с 1998 года. При поддержке таких крупных компаний, как Sun Microsystems и Google, создано множество дополнений к стандартам XMPP для клиентов, серверов, компонент и библиотек кодов. В настоящее время XMPP существует практически без инвестиций, однако это не мешает дальнейшему развитию протокола сообществом, и постоянно появляются новые расширения.
  • Безопасность: XMPP серверы могут быть изолированы от публичных сетей XMPP (например, во внутренней сети компании) и хорошо защищены (благодаря использованию SASL и TLS) встроенными в ядро XMPP спецификациями. Для поддержки использования шифрования канала XMPP Standards Foundation также использовал вспомогательный Центр сертификации xmpp.net, обеспечивая цифровые сертификаты для администраторов XMPP серверов при содействии StartCom Certification Authority (который является основным хранителем сертификатов для всех вспомогательных). Многие реализации серверов используют SSL при обмене между клиентом и сервером, и немало клиентов поддерживают шифрование с помощью PGP/GPG внутри протокола.
  • Гибкость: Настраиваемая функциональность может быть надстроена поверх XMPP; для поддержки возможности взаимодействия различных сетей стандартные расширения поддерживаются XMPP Software Foundation. Приложения XMPP в дополнение к функциональности клиента сетевого общения включают в себя администрирование сети, распределение ресурсов, утилиты для совместной работы, обмен файлами, игры и мониторинг удалённых систем.

Слабые стороны

  • Экономическая невыгодность для крупных мессенджеров. Открытый протокол приводит к оттоку пользователей у крупных мессенджеров, на множество мелких частных серверов и других поставщиков услуг.
  • Избыточность передаваемой информации: Более 70 % межсерверного трафика XMPP составляют сообщения о присутствии, около 60 % которых являются излишними. XMPP создаёт избыточный трафик при доставке сообщений о присутствии (то есть «статус-сообщений») нескольким пользователям. Для решения существует несколько расширений. XEP-0352 передаёт только сообщения вместо статуса присутствия. Также решением является расширение XEP-0138 — компрессия передаваемых данных протокола алгоритмами lzw и zlib, а также использование компрессии в рамках шифрования соединения TLS RFC 3749, глава 3.
  • Масштабируемость: XMPP сейчас страдает от фактически той же проблемы избыточности, но применительно к чат-комнатам и возможностям публикации информации. Решение этих проблем также ожидается в виде XEP-расширений. Пока они не введены, большие чат-комнаты образуют избыточный трафик.
  • Неэффективность передачи бинарных данных: Так как XMPP является, по сути, одним длинным XML-документом, невозможно передать немодифицированную двоичную информацию. В результате для передачи файлов стараются использовать дополнительные расширения, например HTTP (http upload). Для передачи же файлов и другой бинарной информации непосредственно в XMPP потоке используется кодирование base64. С другой стороны, некоторые клиентские программы для передачи используют технологии p2p, не задействуя при этом сервер.

Расширения XMPP

Протокол XMPP включает лишь базовую основу для передачи сообщений. Для реализации дополнительных возможностей используются расширения XEP (XMPP Extension Protocols). Модульная система позволяет собирать системы на основе XMPP, как для передачи сообщений, так и для передачи данных IoT-устройств и других задач. Для полноценной работы Jabber клиентов требуется поддержка соответствующих расширений. Одними из наиболее важных для работы XMPP клиентов являются расширения:
  • XEP-0163 Personal Eventing Protocol. Размещение аватарок, передача ключей OMEMO
  • XEP-0191 Блокирование контактов. Чёрный список собеседников
  • XEP-0198 Менеджер потоков. Необходим для доставки сообщений при нестабильном интернет-канале и выключенном архиве сообщений. Если сервер не получает уведомление о доставке, сервер повторно отправляет сообщение
  • XEP-0237 Версии ростера. Вместо полной загрузки данных собеседников, передаются лишь обновлённые данные
  • XEP-0280 Дублирование сообщений. Отправка сообщения на все включённые устройства. Используется, если не включён архив сообщений
  • XEP-0352 Состояние клиента. Если XMPP клиент свернут, сервер передаёт лишь сообщения. Это экономит расход батареи и интернет-трафик
  • XEP-0363 HTTP File Upload. Универсальная передача файлов между разными клиентами (через HTTP)

Примеры глобальных интеграций XMPP

Высокая отказоустойчивость и низкие издержки XMPP-серверов способствуют тому, что ряд крупных компаний использует XMPP как базовую платформу для создании закрытых мессенджеров и чатов, а также для доставки push-уведомлений
  • WhatsApp ~ 800 млн пользователей, использует модифицированный протокол XMPP для чатов
  • Electronic Arts ~40 млн пользователей, использует XMPP для чатов
  • Nintendo Switch NPNS ~ 35 млн устройств. Доставка новостей, уведомлений и других сообщений
  • Одноклассники (социальная сеть) — 42 млн пользователей. Внутренняя доставка сообщений между пользователями. Доступно подключение к социальной сети через XMPP-клиент
  • League of Legends~ 27 млн пользователей, использует XMPP для чатов
  • Neverwinter (MMORPG) −16 млн пользователей, использует XMPP для чатов
  • Fortnite ~ 250 млн пользователей, использует XMPP для чатов
  • EVE Online~ 1 млн пользователей, использует XMPP для чатов
  • Star Trek Online ~900 тысяч пользователей, использует XMPP для чатов
  • Google ~1.5 млрд пользователей. Доставка push-уведомлений
  • Apple ~ 500 млн пользователей. Доставка push-уведомлений
  • Агентство национальной безопасности США использует XMPP для внутренних коммуникаций
  • Военные США и НАТО используют протокол для передачи сообщений в военных мессенджерах
  • НАТО использует XMPP в военном клиенте JChat
  • Фермилаб — Национальная ускорительная лаборатория им. Энрико Ферми использует XMPP для организации внутренней связи.
  • Европейский парламент - Служба безопасности европейского парламента рекомендует использовать парламентариям Cisco Jabber вместо Signal и WhatsApp
  • Федеральная полиция Германии использует секретный мессенджер на основе XMPP и Conversations


Регистрация

Рекомендую регистрироваться на

Почему xmpp.is? Потому что это стабильный американский джаббер-сервис. Не забываем по-возможности донатить доброму админу Lunar! Он делает важную и полезную работу!

Более широкий список серверов .

Пошаговая инструкция по регистрации:

1. Заходим через Tor-браузер на

1.png


2. Если включен наивысший уровень безопасности, то включаем скрипты xmpp.is (xyz и прочее), hcaptcha.com

2.png


3. Регистрируем аккаунт, предварительно пройдя капчу. Почту можно указывать левую, она не проверяется, но используется при восстановлении доступа к аккаунта, если забыли пароль.

3.png


4. Поздравляю, аккаунт зарегистрирован!

4.png



Установка мессенджера

В соответствии с операционной системой устройства, выбираем необходимый мессенджер. Рекомендую использовать следующие:
Более широкий список мессенджеров .

Пошаговая инструкция по установке gajim:

1. Заходим через Tor-браузер на , жмём вверху кнопку Download. Если у вас не windows, поковыряйтесь на сайте, найдите сборку под вашу ОС.

6.png


2. Жмём кнопку Download Gajim

7.png


3. Жмём кнопку Сохранить (Save File)

8.png


4. Выбираем директорию для сохранения установщика, жмём кнопку Сохранить.

9.png


5. После скачивания установщика, запускаем его.

10.png


11.png


12.png


6. Здесь обязательно оставляйте галочку на строчке Открывать xmpp-ссылки в Gajim, тогда вы сможете обмениваться картинками и фотками прямо в чате мессенджера!

13.png


7. Выбираем директорию для установки мессенджера

14.png


8. Жмём кнопку Установить

15.png


16.png


17.png


9. Запускаем мессенджер, появляется приветственное окно "Добро пожаловать"

18.png


10. Вводим свой Jabber ID (JID), пароль, ставим галочку напротив Расширенных настроек и жмём кнопку Вход

19.png


11. Расширенные настройки необходимы для торификации при подключении мессенджера к аккаунту. Для этого необходимо настроить прокси-соединение через Tor, ввести правильно имя хоста jabber-сервера и порт. Для более детальной настройки прокси соединения жмём кнопку с отвёрткой и гаечным ключом справа.

20.png


12. Появится окно настройки прокси-соединения, выбираем имя Tor, тип соединения SOCKS5, хост 127.0.0.1, порт 9150. После введения настройки запоминаются автоматически, поэтому жмём крестик в правом углу окошка настройки прокси-соединения, чтобы вернуться обратно в окно Расширенных настроек.

21.png


13. Вернувшись в окно расширенных настроек, выбираем тип прокси-соединения Tor, в поле для имени хоста вводим prosody.xmpp.is, порт 5222 и жмём кнопку Вход

22.png


14. Просиходит подключение к серверу. Tor-браузер обязательно должен быть запущен, иначе подключение не произойдёт!

23.png


15. Если всё вышеперечисленное было сделано правильно, то появится вот такое сообщение. Жмём кнопку Подключить. Соединение будет идти через Tor, поэтому если у вас не настроен Whonix или Proxifier, обязательно включите браузер Tor, иначе соединения не будет.

24.png


16. После того, как произойдёт подключение учётной записи к сети, в левом нижнем углу появится вкладка аккаунта с зелёным кружком, свидетельствующем об онлайне.

25.png


17. Теперь можно добавлять в контакты другие Jabber ID и безопасно общаться с использованием OMEMO. Нажимаем на вкладку Учётные записи, выбираем Добавить контакт (Add Contact).

26.png


18. Для того, чтобы связаться со мной, вводим мой JID

27.png


19. В приветственном сообщении пишем Ухо от селёдки для того, чтобы я смог отличить вас от спамеров! Нажимаем кнопку Добавить контакт

28.png


20. Ваш запрос на авторизацию с приветственным сообщением я буду видеть вот так. Стандартный запрос авторизации может быть отклонён, запрос с приветственным сообщением Ухо от селёдки будет мной авторизован!

30.png


21. После добавления контакта он появится в вашем списке контактов, но до тех пор, пока вы не будете авторизованы им, вы не будете видеть онлайн он или нет

29.png


22. Чтобы пообщаться, нажимаем на контакт и справа появляется чат, внизу нужно вводить текст сообщения.

31.png


23. В диалоговом окне внизу вводим сообщение и нажимаем Enter для отправки сообщения

32.png


24. Для того, чтобы общаться безопасно, необходимо включить omemo-шифрование. Для этого в правом нижнем углу нажимаем на значок с замочком и выбираем вид шифрования, в нашем случае это OMEMO. Далее нажимаем на значок с щитом и смотрим отпечатки OMEMO. Чтобы верифицировать отпечаток вашего контакта, нажимаем на него и выбираем Подтверждённый (Verified). Делаем так же, как это делаю я при добавлении вашего контакта.

33.png


34.png


25. Теперь можно писать зашифрованные сообщения. Подтверждением включенному шифрованию будет зелёный значок щита справа от сообщения

35.png


36.png


ОТПРАВИЛ МНЕ ЗАПРОС НА АВТОРИЗАЦИЮ В ДЖАББЕР И Я НЕ ОТВЕТИЛ СРАЗУ???
ДОЖДИСЬ, Я ОБЯЗАТЕЛЬНО УВИЖУ, ДОБАВЛЮ В СПИСОК КОНТАКТОВ И ОТВЕЧУ!
ОБЫЧНО, В ТЕЧЕНИЕ 2-3 ЧАСОВ, РЕЖЕ - В ТЕЧЕНИЕ 1-2 ДНЕЙ.
 
  • Теги
    jabber xmpp джаббер
  • Сверху Снизу