04-07-2020, 09:52 AM
Bonjour是一个利用mDNS协议发现设备的一个通信协议。去年社区里面的朋友提到过这个协议,但一直都没试过。今天我刚好拿着两台电脑,而且它们都连着家里的WiFi,于是就试了一下。
首先要启用mDNS. 我的一台机器是用 Live USB 装的 Debian,启动了之后就开了 avahi,在 Pidgin 里面添加 Bonjour 账户就直接能用了。另一台机器是 Arch,我没有配置 avahi 自启动,就用 systemctl start avahi-daemon 启用服务。两台机器的 Pidgin 都启用了 Bonjour 之后,很快就发现了另一台机器,看来mDNS的速度不错。
然后我在一台机器上用 Wireshark 抓包,发现通信的内容全是明文,所以在不信任的网络里面的时候,一定要开端到端加密。另一个发现是,我的两台机器使用 Bonjour 的时候用的都是 IPv6. 通信的内容用 XML 表示,我发现里面有 <x xmlns='jabber:x:event'><composing/></x> 这个 XML 元素,那么 Bonjour 和 jabber 之间有什么关系?
然后我用了一下 OTR. 抓包发现虽然消息加密了,但是 XML 里面的元数据 <message to='...@...' from='...@...' type='chat'> 还是明文。当然了,在电子邮件/XMPP/Matrix里面用端到端加密也会泄露这些元数据。
首先要启用mDNS. 我的一台机器是用 Live USB 装的 Debian,启动了之后就开了 avahi,在 Pidgin 里面添加 Bonjour 账户就直接能用了。另一台机器是 Arch,我没有配置 avahi 自启动,就用 systemctl start avahi-daemon 启用服务。两台机器的 Pidgin 都启用了 Bonjour 之后,很快就发现了另一台机器,看来mDNS的速度不错。
然后我在一台机器上用 Wireshark 抓包,发现通信的内容全是明文,所以在不信任的网络里面的时候,一定要开端到端加密。另一个发现是,我的两台机器使用 Bonjour 的时候用的都是 IPv6. 通信的内容用 XML 表示,我发现里面有 <x xmlns='jabber:x:event'><composing/></x> 这个 XML 元素,那么 Bonjour 和 jabber 之间有什么关系?
然后我用了一下 OTR. 抓包发现虽然消息加密了,但是 XML 里面的元数据 <message to='...@...' from='...@...' type='chat'> 还是明文。当然了,在电子邮件/XMPP/Matrix里面用端到端加密也会泄露这些元数据。