XMPP——注重隐私,去中心化的开放通信协议 [foss-rev/xmpp]
XMPP——注重隐私,去中心化的开放通信协议 [foss-rev/xmpp]
微信作为一个现代通讯工具有以下几点问题:
- 信息传输过程没有使用端到端加密,腾讯公司能够看到每一个人在微信上的聊天内容。
- 客户端臃肿,捆绑了太多与聊天无关的内容。
- 在使用过程中大量收集用户个人信息,并共享给第三方进行用户画像和数据挖掘,以此牟利。
- 闭源软件,可能包含恶意代码(其实第3点中的内容就已经算是恶意代码了)。同时通信协议也是私有的,无从得知微信收发信息的具体方式。
- 不支持聊天记录多端同步,把同步工作交给用户自己手动进行。
- 聊天文件存储方式效率极其低下,使用过程中占用空间会迅速膨胀。
- 中心化的聊天服务,如果腾讯的服务器被黑客攻击,所有用户的聊天都会受到影响。
- 没有网页版(曾经有,但因为未知原因移除了,现在只保留了文件传输功能),在Linux上仅有几个国产发行版有原生支持。
- UI界面不能自定义。
这些问题在使用XMPP协议的聊天软件中都得到了解决,也就是说:
- 端到端加密,除了你和消息的接收方,没有第三者能知道你们的聊天内容。
- 客户端简约,体积小,功能全部服务于聊天。
- 无个人信息收集,一些软件可能会收集匿名化处理的使用信息用于改进软件功能。
- 开源软件,所有人均可审查源代码,保证没有恶意代码。
- 支持聊天记录多端同步,服务器上会保存加密的聊天记录,在本地保存好解密密钥即可在多个设备上查看全部聊天记录。
- 聊天文件存储方式先进,使用一段时间后占用空间不会有很明显的膨胀。
- 去中心化的聊天服务,支持自建聊天服务器。服务器可接入全球XMPP网络,这样即使两名用户不在同一个XMPP服务器上注册,也可以互相聊天。
- 账号注册门槛很低,只需提供一串用于标识用户身份的字符即可注册。有利于新同志注册使用。
- 有不止一个客户端提供网页版,以及多端支持,用户可以凭喜好挑选。
- 客户端开源,UI界面可以自定义。
有些同志可能已经有了Telegram,但Telegram并不适合(至少不是最适合的)我们的秘密工作,因为Telegram有以下缺点:
- 端到端加密的适用范围有限。只有在私聊中启用 secret chat 才能够进行端到端加密通信,不支持端到端加密的群组,而且桌面端(电脑上)App不支持发起 secret chat。
- 通信协议和客户端开源,但服务端不开源,同时又是商业公司运营,不能保证上传到服务器的信息安全。
- 中心化聊天服务,虽然通信协议开源,但无法自建聊天服务器。
- 注册需要手机号,许多对信息安全了解不多的同志使用大陆地区手机号注册,这相当于实名使用Telegram。若使用虚拟手机号来避免身份泄露,则需要挑选合适的虚拟手机号并购买,流程复杂的同时还产生不必要的花销。极不利于新同志注册使用。
视频供英语好的同志参考:Ok, but what is XMPP?
现在就想拥有一个XMPP账号并开始聊天?点这里
XMPP是基于去中心化(Decentralization),联邦制(Federation)和自部署(Self-hosting)的设计理念设计出来的。去中心化是指比如区块链、比特币等无需中央机构管理的技术;联邦制是指由一群计算机或网络在共同达成一致的基础上提供服务的协作方式;自部署是指建立在自主主机上的网络服务形式。这些技术都意在降低少量大机构对网络的控制,而且能够增强网络的生命力。许多自由软件的网络结构都遵循这样的设计理念。
如果你想要更好地实践去中心化原则,在注册XMPP账号时可以选择不使用默认提供的主服务器(地址为 conversation.im 的服务器,如果你使用conversation作为自己的客户端的话)。如果你不知道有哪些可用的XMPP服务器提供者,我推荐 Disroot 。他们是一个自由软件组织,提供多种多样的自由软件服务,例如:XMPP,标准邮件,jitsi(一会我们还会谈到),git(Forgejo,可作为GitHub的自由软件替代)共享文档和剪贴板等。具体使用方式参考前文超链接中他们的官网。
Matrix也是可以可选的聊天软件,但其注册时需要提供的邮箱可能会导致信息泄露(如果你使用了实名注册的邮箱),需要小心。
若要详细了解端到端加密的原理和使用,推荐观看以下视频: