Conversations

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

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

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

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

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

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

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

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

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

— Daniel Gultsch [11]

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

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

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

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 [17]

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

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

  1. https://github.com/siacs/Conversations/tree/master/src/main/res
  2. Release 2.2.3 — 2018.
  3. GitHub — 2008.
  4. https://api.github.com/repos/siacs/Conversations
  5. XMPP Standards Foundation. Author: Daniel Gultsch. XEP-0363: HTTP File Upload
  6. Google Summer of Code
  7. https://riseup.net/ru/chat/clients
  8. https://prism-break.org/ru/subcategories/android-instant-messaging
  9. https://xmpp.org/getting-started/
  10. How do XEP-0357: Push Notifications work?
  11. Интервью на xda-developers
  12. Philipp Hörist. Главный разработчик Gajim: «Emojis and HTTP Upload are not plugins anymore with Gajim 1.0»https://dev.gajim.org/gajim/gajim/issues/8912
  13. https://www.google-melange.com/archive/gsoc/2015/orgs/xmpp
  14. INRIA - Institut national de recherche en informatique et en automatique https://hal.inria.fr/hal-01426845/document
  15. https://omemo.top
  16. 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
  17. https://chatsecure.org/blog/chatsecure-conversations-zom/
  18. Список работающих публичных серверов Jabber. Статистика по числу онлайн пользователей
  19. https://blog.process-one.net/ejabberd-17-12/
  20. 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
  21. https://github.com/wemessenger
  22. HEAD a fork of Conversations with some extensions https://github.com/Kandru/kandruIM

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