Conversations

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Conversations
Conversations (Instant Messenger) Logo.svg
Тип клиент системы мгновенного обмена сообщениями[d] и XMPP-клиент
Написана на Java
Операционная система Android
Языки интерфейса несколько языков[d][1]
Первый выпуск 2014
Последняя версия
Лицензия GNU GPL 3[3]
Сайт conversations.im

Conversations — XMPP клиент для мобильных устройств под управлением ОС Андроид. Клиент доступен по свободной лицензии GPL-3.0. Conversations поддерживает передачу файлов и имеет на выбор несколько способов шифрования. В клиенте есть встроенная поддержка сети TOR. Daniel Gultsch, разработчик Conversations, автор расширения XEP-0363: HTTP File Upload [4] и принимал непосредственное участие в адаптации библиотеки OMEMO под XMPP. Проект Conversations регулярно становится участником Google Summer of Code [5]. Conversations находится в списке рекомендуемых XMPP клиентов американской правозащитной организации Riseup[6], проекта по противодействию массовой слежке PRISM Break [7] и в списке рекомендуемых клиентов от XMPP Standards Foundation[8]. Спонсором Conversations является немецкая фирма B1 Systems GmbH, специализирующаяся на внедрении open-source software.

Conversations и Conversations Legacy[править | править код]

XMPP клиент Conversations с открытым меню загрузки файлов

Существует две версии клиента Conversations и Conversations Legacy:

Conversations - новая версия Conversations. Приложение официально размещено в Google Play и F-Droid. В версии F-droid отсутствуют push-уведомления. [9] OMEMO включенно по-умолчанию.

Conversations Legacy - старая версия с поддержкой OTR, но без поддержки push-уведомлений и включенного шифрования OMEMO по-умолчанию. Версии в F-droid и Google Play ничем не различаются.

В качестве причин перехода от OTR в пользу OMEMO разработчик Conversations назвал неудобство в использовании и ошибки, возникающие при работе OTR:

OTR не легко в использовании. Сообщения теряются из-за плохого покрытия мобильной связи. OTR способен передавать сообщения только между двумя устройствами. Например, когда я войду в XMPP-аккаунт с двух устройств одновременно (мобильный телефон и компьютер), мой коллега должен решить, хочет ли он отправлять сообщения на телефон или на компьютер. Если мой коллега не в состоянии предвидеть какое устройство я использую сейчас, - это проблема. Сообщения в ОТР не синхронизируются. Я пропускаю часть истории разговоров на каждом устройстве. OMEMO избавляется от этих проблем. Шифрование OMEMO более надежно и способно работать на нескольких устройствах.

— Daniel Gultsch [10]

Вклад Conversations в развитие XMPP[править | править код]

Появление клиента Conversation оказало существенное влияние на развитие XMPP в целом. Расширение HTTP upload впервые появилось в Conversation и разработано Daniel Gultsch. HTTP Upload постепенно становится основным способом передачи файлов в XMPP. Ряд клиетов, таких как Gajim[11], Dino и множество других устройств c Android, уже использует HTTP upload не как дополнение, а как способ передачи файлов по-умолчанию. HTTP решает проблему передачи файлов между разными клиентами. Файл закачивается на XMPP сервер, а в XMPP клиент передается ссылка на данный файл. Если клиент поддерживает обработку, то файл показывается или скачивается. Если клиент не поддерживает передачу файлов, файл может быть скачан и обработан в другой программе. Это так же позволяет делиться файлами на форумах, сайтах и отправлять их даже тем, у кого не уставлен XMPP клиент.

Другой важной работой Daniel Gultsch стала совместная работа с Андреасом Штраубом и другими разработчиками в рамках проекта GSoC 2015. Результатом проекта стала интеграция шифрования Axolotl в XMPP для Conversations и создание расширения XEP-0384 «OMEMO Encryption»[12][13]. Шифрование OMEMO - самое передовое шифрование в XMPP. OMEMO позволяет передавать зашифрованные сообщения оффлайн, позволяет синхронизировать шифрованную переписку на нескольких устройствах, осуществлять шифрование в групповых чатах и при передаче файлов. Conversations - это один из клиентов, в котором наиболее хорошо реализована поддержка OMEMO[14]. Daniel Gultsch является активным лоббиcтом шифрования OMEMO. Примечательно, что разработанная библиотека шифрования включает в себя название Conversations «eu.siacs.conversations.axolotl». [15]

Conversations в настоящее время, на мой взгляд, - лучший современный XMPP-клиент с открытым исходным кодом для Android. Он был первоначально создан и по-прежнему поддерживается в основном Daniel Gultsch. Этим летом он напомнил о себе проектом GSoC 2015 Андреаса Страуба о разработке и внедрении нового XEP для асинхронного шифрования на базе Axolotl. Они называют это OMEMO (OMEMO Multi-End Message и Object Encryption). Это гениальный способ адаптировать текстовый протокол Axolotl от TextSecure таким образом, который совместим практически со всеми существующими серверами XMPP (которые поддерживают PEP).

— - Chris Ballinger, разработчик ChatSecure и мессенджера Zom, о Conversations и разработке OMEMO [16]

Особенности работы XMPP клиента[править | править код]

Проверка доступности серверных расширений в клиенте Conversations. Сравнение серверов https://xmpp.jp https://jabber.ru https://404.city

Для полноценной работы клиента Conversations и Conversations Legacy требуются правильно настроенные XMPP сервера. Даже наличие включенных XEP на сервере не гарантирует доставку сообщений оффлайн, передачу файлов через XEP-0363 HTTP File Upload и шифрование OMEMO, работающее по-умолчанию.

Сервер от разработчика сonversations.im после 6 месяцев использования становится платным. Часть бесплатных серверов совместимо с Conversations. Из бесплатных, крупных XMPP [17] серверов официально поддержкой совместимости с Conversations занимается сервер 404.city.

Возможности Conversations[править | править код]

  • XEP-0027 OpenPGP шифрование.
  • XEP-0045 Групповые чаты.
  • XEP-0048 Закладки. Используются для автоматического входа в конференции.
  • XEP-0084 Аватары пользователей.
  • XEP-0163 Personal Eventing Protocol. Аватарки, ОМЕМО.
  • XEP-0184 Подтверждение доставки сообщений (включается в настройках).
  • XEP-0191 Блокирование контактов.
  • XEP-0198 Менеджер потоков. Используется для доставки сообщений при нестабильном интернет-канале и выключенном архиве сообщений.
  • XEP-0237 Версии ростера. Передача лишь обновлений ростера, вместо полной загрузки контакт листа.
  • XEP-0249 Direct MUC Invitations. Приглашение контактов в групповой чат.
  • XEP-0260 Jingle SOCKS5 Bytestreams Transport Method. Передача файлов через proxy65.
  • XEP-0363 HTTP File Upload. Передача файлов через ссылку.
  • XEP-0280 Message Carbons. Синхронизация сообщений без архива сообщений.
  • XEP-0313 Архив сообщений. Используется для доставки сообщений в оффлайне.
  • XEP-0333 Маркеры о доставке сообщения в чате.
  • XEP-0352 Индикация статуса клиента. Экономит расход батареи, передавая только сообщения (вместо статусов присутвия), когда клиент в свернутом положении.
  • XEP-0384 OMEMO шифрование. Шифрование личной переписки, групповых чатов, файлов, аудио и видеосообщений. Поддержка синхронизации.

Интересные факты[править | править код]

  • Большое распространение клиента Conversations стало оказывать влияние на разработку сервера Ejabberd. Daniel Gultsch использовал на conversations.im в качестве сервера Prosody из-за PubSub v1.14. В версии Ejabber 17.12 специально для клиента Conversations[18] была добавлена поддержка PubSub v1.14. После этого Daniel Gultsch перенес conversations.im с Prosody на Ejabberd.
  • Push-уведомления в новой версии Conversations были убраны для свободного репозитория F-Droid, согласно политике которого не принимаются программы с зависимостями от библиотек с закрытым исходным кодом.
  • Зачастую по праздникам версия в Google Play доступна бесплатно.
  • На кодовой основе Conversations создано множество других XMPP клиентов для Андроид, например: Pix-Art Messenger[19], WeMessenger [20], XMPP Jabber Client, IotechChat,Cackle, VaultlIM,XMPP Messenger, Kandru Messenger.[21]

Примечания[править | править код]

  1. https://github.com/siacs/Conversations/tree/master/src/main/res
  2. Release 2.2.9 — 2018.
  3. GitHub — 2008.
  4. XMPP Standards Foundation. Author: Daniel Gultsch. XEP-0363: HTTP File Upload
  5. Google Summer of Code
  6. https://riseup.net/ru/chat/clients
  7. https://prism-break.org/ru/subcategories/android-instant-messaging
  8. https://xmpp.org/getting-started/
  9. How do XEP-0357: Push Notifications work?
  10. Интервью на xda-developers
  11. Philipp Hörist. Главный разработчик Gajim: «Emojis and HTTP Upload are not plugins anymore with Gajim 1.0»https://dev.gajim.org/gajim/gajim/issues/8912
  12. https://www.google-melange.com/archive/gsoc/2015/orgs/xmpp
  13. INRIA - Institut national de recherche en informatique et en automatique https://hal.inria.fr/hal-01426845/document
  14. https://omemo.top
  15. XEP-0384. OMEMO Encryption. «In order to determine whether a given contact has devices that support OMEMO, the devicelist node in PEP is consulted. Devices MUST subscribe to 'eu.siacs.conversations.axolotl.devicelist' via PEP, so that they are informed whenever their contacts add a new device.» They MUST cache the most up-to-date version of the devicelist https://xmpp.org/extensions/xep-0384.html
  16. https://chatsecure.org/blog/chatsecure-conversations-zom/
  17. Список работающих публичных серверов Jabber. Статистика по числу онлайн пользователей
  18. https://blog.process-one.net/ejabberd-17-12/
  19. Pix-Art Messenger ist eine Kopie der offiziellen Android-App Conversations mit einigen Änderungen, insbesondere zur Verbesserung der Benutzerfreundlichkeit, um den Umstieg von oftmals vorinstallierten Messengern zu erleichtern.https://github.com/kriztan/Pix-Art-Messenger
  20. https://github.com/wemessenger
  21. HEAD a fork of Conversations with some extensions https://github.com/Kandru/kandruIM

Ссылки[править | править код]