jabber 服务器如何互相找到对方以及如何证明其处理的域的权限?

jabber 服务器如何互相找到对方以及如何证明其处理的域的权限?

最近,google chatback 已被关闭,我正在寻找一种替代方案,让网站访问者可以立即向我发送消息,而不需要在 facebook 或类似程序上登录。

此外,我想通过手机方便地与他们互动,所以 Jabber 似乎是最佳选择。

我的想法是建立自己的 jabber 服务器,如果用户发送消息,则即时创建一个帐户,然后使用该帐户

我自己一直在编写点对点应用程序,大概可以想象出 jabber 服务器是如何进入网络的(查找其他服务器的共同初始会面点、扫描 ip、从其他服务器获取信息......)。

然后稍后我的服务器就会表明它可以处理所有帐户@mydomain.com 的消息

但合法性究竟是如何验证的呢?所有 jabber 服务器只需在其配置中进行配置即可。

我曾想象过在域的 DNS 设置中有一个文本记录,其中包含服务器某种公钥的指纹,其他 jabber 服务器的发送者可以使用它来请求接收者在转发消息之前验证其合法性。

但事实似乎并非如此。

我能想到的另一种方法就是将服务器的 IP 地址与域的 DNS 记录背后的 IP 地址进行比较。

但是,这要求 jabber 服务器在同一 IP 上运行,并且会使其他类型的记录(例如 Round-Robin-Ips(像 google 那样))的情况变得非常复杂。此外,它还容易受到一系列网络级攻击和欺骗。

那么,到底是怎么回事?

经过这个(我为此道歉)冗长的介绍后,让我总结一下我的问题:

如果 jabber 服务器(A)将某个用户的消息发送到服务器 B 上的另一个账户,A 如何确定 B 确实是正确的服务器,而不是有人在欺骗它?

答案1

看起来确实如此,查找某个站点的 A 记录,并将消息发送到那里。

因此从这个角度来看,它实际上甚至不需要任何类型的 p2p 技术。

此外,SRV 记录可用于为该域定义不同的 xmpp/jabber 服务器。

这里描述得很好:http://prosody.im/doc/dns

相关内容