XMPP加密通讯简明教程

之前马列之声的教程已经说得很详细了,我稍加修改一下发上来。

1 个赞

一、什么是XMPP以及我们为什么要使用XMPP

简而言之,XMPP(又称为Jabber)是一种开放的互联网实时通讯协议。很多流行的聊天软件都是XMPP的封装应用,比如Google Hangout、Facebook Message、AOLChat、米聊、人人桌面和陌陌等。很多网络游戏的内部聊天用的也是XMPP协议。

与通常我们使用的集中式架构的通讯软件(如QQ、微信)不同,采取邦联式架构的XMPP客户端与服务器、服务器之间的通信使用的是公开而标准化的协议——这保证了任何人都可以参考这些标准开发出可以和系统中其他组件互操作的组件,甚至可以自己搭建服务器,为自己提供服务。通过XMPP所支持的“不留记录即时通讯协议(Off-the-Record Messaging,缩写为OTR,原理见网址),可以实现端到端通讯的加密,从而保障“私聊”的真正“私密”性质和通讯的安全性。

与OTR相比,OMEMO协议提供了多对多的加密聊天,加密离线文件,加密文件传输,可验证性和可否认性,相当于OTR的改进版协议。

我们推广XMPP是希望推动这种开放的聊天协议和自由软件的使用,用XMPP配合OTR或OMEMO的端对端加密聊天,替代传统封闭的、有隐私泄漏风险的私权软件。

二、注册XMPP账号

互联网上有很多开放的 XMPP 服务,在正式尝试在服务器上注册帐号之前建议用 xmpp 观测站服务检查一下服务器的特性。

有些XMPP服务器在网页上提供注册功能(后面标注registration)。建议在A级服务器注册,并在注册前检查自己是否可以免翻墙访问该服务器官网。选定一台服务器、填写用户名和密码后,就可以得到形式和电子邮件地址类似——“用户名@服务器”的身份标识——JID了(有些客户端如pidgin甚至使用同一个界面来操作“创建新账号”和“添加现有账号”的功能,仅仅通过类似“在服务器上创建此账号”的选项来区分)。

请妥善保管账号和密码,XMPP账号不支持密码找回服务。

三、安装客户端

支持XMPP的客户端有很多,且大部分是自由软件。在此仅推荐一些,基本能满足同志们多数场景的通讯要求。

PC :推荐使用 Pidgin(GNU/Linux、Windows,支持OTR,不支持OMEMO)、Dino(GNU/Linux、macOS,支持 OMEMO 和 OpenPGP )或 Profanity(Linux、macOS、Windows,支持 OMEMO 和 OpenPGP);

Android:推荐使用 pix-art messages,支持 OMEMO 和 OpenPGP;(不推荐 Xabber)

iOS 系统?chatsecure 的 iOS 版可能算半个,不过并不好用,往往会丢消息,只有越狱并设法禁止自动挂起网络才能彻底解决这个问题——因为烂苹果这个自诩比用户自己还懂用户的需求的暴君通过一系列恶心的设计把为 iOS 用户提供邦联化的即时通信服务这个本应仅仅需要一条持久 TCP 连接和客户端断线时重连的工作变得难如登天——基本上想为 iOS 实现即时通信服务就必须在一定程度上放弃邦联化,开发者还必须接受烂苹果的盘剥才能保证其用户能及时收到消息——这使得 iOS 能用的即时通信服务基本上都是圆形监狱。所以,如果您是烂苹果的受害者,只能建议您卖掉 iThing 这个烂苹果的禁脔,更便宜也更自由的 android 设备了。

四、登陆及使用

登陆时如果失败,请检查JID是否完整,一个完整的JID应是 [email protected],例如[email protected],检查登录时是否正确输入。

建议将设置中所有加密选项选上。比如总是开启OMEMO加密,退出设备后清除聊天记录等。

加入了一些关于OMEMO协议的内容,更换了一下推荐的客户端,说得不对的同志们指出。

考虑研究一下
signal(虽然客户端和服务端都是自由的,但是需要电话号码,不好。)
tox
bitlbee

这里是支持omemo的列表
https://omemo.top/

應該修改爲更自由的Sailfish OS設備。

安卓端的conversations值不值得推荐?

还有,我觉得应该整理一个可用服务器列表,那个列表里的服务器好多都停止新用户注册了。

可以,它也是自由软件。我推荐Pix-art messages是因为它可以在客户端方便地注册账号。

至于可用服务器,可以去观测站找。