date="2022-10-05" updated="2023-04-14"
tags: xmpp, open source
https://www.milkspace.xyz/blog/xmpp/
Для общения я в основном использую Telegram, VK и Discord. Последнее время ещё и Instagram. Не нужно закидывать меня камнями, относительно недавно я зарегистрировался в Matrix и XMPP. О последнем и хочу рассказать в этой статье.
Цель статьи познакомить читателя с XMPP, который ещё про него не знает. У меня в XMPP только пару контактов, и мне бы хотелось увеличить их число. А так я смогу сбрасывать эту статью людям и не придётся каждому всё объяснять.
Про WhatsApp и Viber даже писать не хочу. Signal выглядит прикольно, уверяет что он супер безопасный, но требует номер телефона.. Instagram перестал присылать уведомления и неудобный, ещё постоянно следит за тобой и кормит рекламой. VK Messenger по размерам почти такой же большой, как и обычное приложение, медленный и вообще непонятно как работает (на телефоне выключил отображение статуса в сети, на компе периодически показывает когда в последний раз заходил человек). Telegram прикольный, но в последнее время в него слишком много всего добавляют и появилась реклама. Discord удобен посидеть с друзьями, но тоже слишком большой для простого обмена сообщениями. Смс просто дорогие и картинку с котиком не отправишь через них. ~~если вы пользуетесь ММС, то у вас похоже нет почки~~
Ну для начало оно должно быть **бесплатным**, **маленьким**, **быстрым** и **без рекламы**. Ещё **безопасным**, чтобы никто, кроме моего собеседника не мог узнать какие глупые шутки посещают мою голову и сколько раз я сегодня покушал.
"Это ты круто конечно придумал": скажет читатель и предложит мне принести машинку для закатывания губ. Но не стоит смеяться (лёгкой улыбки будет достаточно), ведь такое приложение (и не одно) есть. Встречайте **XMPP**
Дальше я расскажу про особенности протокола, покажу пару серверов, объясню как на них зарегистрироваться и предложу на выбор несколько приложений, поддерживающих этот протокол.
-А что если администратор сервера захочет прочитать мои сообщения?
У него ничего не выйдет, ведь большинство приложений поддерживают шифрование (OMEMO и/или PGP). Мне нравится, когда тебе не нужно доверять серверу. Ведь ты знаешь, что даже при желании он тебе ничего не сделает. ~~Может конечно аккаунт удалить и все твои сообщения вместе с ним, но не прочитать их.~~
Тут стоить отметить, что не все клиенты поддерживают шифрование. Читайте описание или смотрите настройки клиента, который скачиваете.
- А что если создатель приложения украдёт мои сообщения?
Ну многие XMPP клиенты имеют открытый исходный код и вы можете посмотреть как они работают. Или оставить это тем, кто в этом что-то понимает.
- У меня есть безопасный Telegram.
Ну да, только он против создания альтернативных клиентов, шифрует только сообщения из приватных чатов (с компа прочитать то, что тебе отправили на телефон не выйдет, а это неудобно) и хранит все сообщения на своих закрытых серверах.
- Мне нечего скрывать.
Тогда и одежду не носи..
Нет главного сервера и все сервера (если не выключить эту функцию в настройках) могут общаться друг с другом. То есть вы можете быть зарегистрированы на одном сервере, а ваш друг на другом и всё равно сможете общаться.
Если с вашим сервером что-то случится или вас заблокируют, то вы можете зарегистрироваться на другом сервере ~~или поднять свой~~ и писать друзьям с других серверов.
Как люди делают скворечники так и энтузиасты создают сервера, на которых люди могут регистрироваться и бесплатно общаться. ~~Вы ведь не берёте деньги у птиц~~ Сервера, поддерживающие XMPP, потребляют немного ресурсов и могут обслуживать много людей 👀
Изначально предполагалось, что XMPP будут использовать крупные компании и пользователи Vkontakte, например, смогут писать пользователям Instagram без регистрации в нём. Звучит круто не правда ли? Компании так и сделали, а потом поняли, что делиться пользователями невыгодно. Что эти человеки позволяют себе вообще? Пускай у нас регистрируются и приносят нам свои данные.
Некоторые пошли ещё дальше и сделали приложения на основе XMPP, закрыли код и запретили им общаться с серверами других компаний.
Ну здесь можно отправлять зашифрованные сообщения, картинки, голосовые, звонить друг другу, есть групповые чаты. А чего вы ещё ждали от приложения для общения? Некоторые приложения из списка ниже имеют дополнительные функции.
Здесь есть два пути. Сделать свой сервер или зарегистрироваться на уже существующем. Сервера можно найти в интернетах, но если вы тоже ленивый, то вот парочка:
macaw.me (поддерживает регистрацию из клиента)
poridge.club (тут уже нужно стучаться админу в личку чтобы он вас зарегистрировал).
Ну или на этом сайте можно что-нибудь найти.
В большинстве клиентов вы просто вводите адрес сервера (некоторые клиенты уже имеют несколько готовых серверов), на котором хотите зарегистрироваться, выбираете имя пользователя и пароль. Никаких адресов электронной почты или номера телефона не нужно.
Имя пользователя состоит из вашего логина и сервера, разделённых собакой. То есть, если вас зовут Biba, а зарегистрировались вы на сервере Bo.ba, то полное имя пользователя будет Biba@Bo.ba. Говорите это имя другу, он вписывает его в своё приложение и вы можете общаться.
Пароль стоит выбирать подлиннее (не менее 8 знаков, я бы рекомендовал 30-60) и понадёжнее (заглавные и строчные буквы, цифры и спецсимволы). Лучше сразу записать пароль в ~~блокнот~~ свой менеджер паролей. В случае потери пароля его не выйдет восстановить по номеру телефона или электронной почты. Придётся писать админу и просить чтобы сбросил вам пароль и ещё доказать, что вы это вы.
Можно ничего не качать и воспользоваться браузерным клиентом (но лучше скачать)
Скачал и попробовал Conversations[1] и blabber.im[2]. Оба хороши, но есть пара нюансов. **Conversations** платный в Play Market, а **blabber.im** в Play Market просто нет.. Но есть выход - скачать **blabber.im** на официальном сайте. ~~только не говорите владельцам айфонов об этом~~ Также оба приложения есть в Fdroid[3] (и оба там бесплатные).
У меня айфона нет, но я воспользовался яблоком брата и поставил туда Monal[1](). Зарегал его на macaw.me и отправил пару тестовых сообщений, всё работает, только вот звонки в **Monal** не завезли..
Пока писал статью нашёл в AppStore Siskin IM[1], который должен поддерживать звонки, сам не проверял.
Своими руками потрогать не смог, но вроде как Dino[1] классный.
В комментариях меня поправили, что *Dino* ещё в разработке и лучше добавить в статью gajim[2]].
Для того, чтобы включить шифрование, необходимо зайти во вкладку *Plugins* и выбрать *OMEMO*.
На Linux нужно ещё установить пару пакетов из гайда по ссылке[3]
Не помню трогал ли его, но есть gajim[1]
Для того, чтобы включить шифрование, необходимо зайти во вкладку *Plugins* и выбрать *OMEMO*.
Конечно есть. Тут нельзя удалять сообщения и если вы зашли с нового устройства, то не сможете увидеть зашифрованные сообщения, отправленные со старого. Это стало мемом и в следующем разделе я объясню почему так происходит.
Вы заходите с нового устройства и видите, что на месте старых сообщений надпись "сообщение не зашифровано для этого устройства". Это не баг, а фича! Иногда правда достаточно неприятная, но после отправки сообщения с нового устройства, его можно будет прочитать на старом. И наоборот сообщения со старого устройства будут видны на новом. Это происходит из-за того, что во время отправки сообщения ваше устройство шифрует их для конкретных получателей (других ваших устройств и устройств вашего собеседника). Код пишут обычные люди, а не гадалки и колдуны и поэтому ваш телефон не может знать с какого устройства вы решите зайти и зашифровать для него сообщение заранее. С одной стороны это может быть неудобно, а с другой если какой-нибудь хакер украдёт ваш логин и пароль от xmpp, то он не сможет получить историю зашифрованных сообщений.
Совет: Если вы видите надпись, что сообщение друга не зашифровано для данного устройства, то напишите ему об этом обычным сообщением (без шифрования). У некоторых людей может быть выключена функция автоматического добавления новых ключе��.
~Мне написали, что статья выглядит незаконченной, и я решил это исправить. Конец.~~
Я рассказал что такое XMPP, почему он классный и предложил пару серверов и клиентов. Надеюсь он вам понравится и ваше общение станет более комфортным и безопасным.