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

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

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

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

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

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

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

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

Однако, похоже, нет такой вещи.

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

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

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

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

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

1 ответ

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

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

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

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

Другие вопросы по тегам