Назад | Перейти на главную страницу

Как серверы jabber находят друг друга и как они подтверждают авторитет домена, который они обрабатывают?

Недавно был отключен чат в Google, и я искал альтернативу, которая позволяет посетителям моего веб-сайта мгновенно отправлять мне сообщения без необходимости входа в систему на facebook или чего-то подобного.

Кроме того, я хочу удобно взаимодействовать с ними на моем телефоне, так что Jabber кажется мне подходящим вариантом.

Идея состоит в том, чтобы настроить свой собственный jabber-сервер, и если пользователь отправит сообщение, создать учетную запись на лету и использовать ее.

Я сам программировал одноранговые приложения и, вероятно, могу представить, как jabber-сервер входит в сеть (поиск общих начальных точек встречи для других серверов, сканирование IP-адресов, получение информации с других серверов ...).

Позже мой сервер сообщит, что он может обрабатывать сообщения для всех учетных записей @ mydomain.com

Но как именно проверяется легитимность? Все серверы jabber просто должны настроить это в своей конфигурации.

Я бы вообразил текстовую запись в настройках DNS домена с отпечатком какого-то открытого ключа сервера, который эмитент другого jabber-сервера может использовать, чтобы запросить получателя проверить его легитимность перед пересылкой сообщения.

Однако, похоже, это не так.

Другой способ, который я мог придумать, - это просто сравнить IP-адрес серверов с IP-адресом за DNS-записью домена.

Однако это потребовало бы, чтобы jabber-сервер работал на том же IP-адресе, и это усложнило бы ситуации с другими типами записей, например Round-Robin-Ips (как у Google) prett. Кроме того, он будет уязвим для целого ряда атак и подделок на сетевом уровне.

Так в чем же дело?

После этого (прошу прощения за это) длинного вступления, позвольте мне резюмировать свой вопрос следующим образом:

Если jabber-сервер (A) отправляет сообщение от пользователя в другую учетную запись на сервере B, как может A быть уверенным, что B действительно правильный сервер, а не кто-то его подделывает?

Похоже, что это действительно случай, когда выполняется поиск записи A сайта, и сообщение отправляется туда.

Таким образом, для этого действительно даже не требуется какая-либо технология p2p.

Кроме того, записи SRV могут использоваться для определения различных серверов xmpp / jabber для этого домена.

Это довольно хорошо описано здесь: http://prosody.im/doc/dns