即时通讯软件的私有和中心化是资产阶级政府进行政治审查和镇压群众的前提。Telegram 等号称“安全”的通讯软件由于要求电话号码、服务端私有、商业化运营和其他原因导致的极大的安全风险。[1]既有的很多自由即时通讯协议,如 XMPP 存在客户端简陋、连接不稳定等诸多问题。因此,有必要介绍一种安全性和易用性都较好的通讯协议—— Matrix。
Matrix 主要客户端 Element 桌面和移动客户端截图
概述
Matrix 是一个强加密、去中心化的即时通信协议。
Matrix 有很多优点,包括:
隐私:注册无需电话号码,有的服务器需要使用电子邮件地址(你可以使用临时邮箱或匿名邮箱),而某些服务器则无此要求。
安全加密:Matrix 私聊和群聊是端到端加密的,即使是服务器的所有者,也无法看到用户的聊天内容。Matrix 存在一个统一、完备的端对端加密协议。
自由开源:Matrix 客户端和服务器软件全部是自由软件,任何人都可以审查代码,检查代码中的漏洞。有兴趣的人也可以用开源代码搭建自己的 Matrix 服务器[2]。
去中心化:Matrix 是联邦式协议,Matrix 网络由分布在世界各地,由不同个人和组织运营的服务器组成,因此 Matrix 协议不容易被单个组织垄断,也不易被封锁。
Matrix网络组成结构
Matrix网络组成结构
Matrix 网络是联邦式结构,由多个地位平等的服务器连接而成。对于使用 Matrix 通信的用户来说,他们的数据分布在千千万万个、或大或小、由不同人/组织搭建的不同服务器上。只需要用客户端(包括网页客户端)连接到自己注册帐号的那个服务器,就进入了整个 Matrix 网络。
“联邦式协议”听上去十分晦涩,事实上,电子邮件就是一种联邦式协议,每个电子邮件服务器之间的地位平等。在收发电子邮件时,只要指定一个电子邮件服务器和服务器上的用户,就可以通信。例如example@protonmail.com
这个电子邮件地址,example
是用户名,protonmail.com
是服务器名。
在 Telegram,微信等聊天软件中,添加好友需要指定手机号或者用户名。而 Matrix 非常像电子邮件,一个 Matrix 账号 ID 如下:
@example:matrix.org
这里example是用户名,matrix.org是服务器名。Matrix 添加好友和收发电邮一样,需要填写完整的@MatrixID:服务器名
。在这里就是@example:matrix.org
。
一个值得一提的细节是,每个 Matrix 后台服务器有两个 URL 地址,一个是用来服务器之间通信的,也是这个它的唯一标识;另一个是给客户端连接该服务器用的。这意味着即使想彻底墙掉一个特定的服务器也不是一件容易的事情——毕竟后一个地址可以随意变化,可以有多个,可以用其他 IP 地址作为镜像跳转。
选择服务器
Matrix 官方服务器安全性和稳定性有保证,但是在中国大陆遭遇封锁。即便如此,作为一种与电子邮箱类似的联邦式协议,Matrix 自然也有第三方很多服务器可以选择。Join Matrix 网站上提供了一份非官方服务器列表,可供选择注册:
https://joinmatrix.org/servers/
客户端
Matrix 协议的主流客户端叫 Element(原名 Riot.im)。Element 有桌面和移动客户端,提供和 Telegram、Discord 等聊天工具类似的体验,如果您追求易用性,您可以使用网页版。Element 网页版和桌面客户端的界面完全相同,功能也完全等价。
除 Element 外,Matrix 的客户端还有 Cinny、Nheko、Hydrogen、Syphon、FluffyChat 等。具体可参见 https://matrix.org/ecosystem/clients/
Element 的下载页面提供网页版(下面的链接是 New Vector 官方的网页客户端。同时几乎每个服务器都会内置 Element 客户端实例,且一般都可以用来登录任何服务器),也可以点以下链接直接进入注册页面。全过程可用Tor浏览器完成。
https://app.element.io
如果你追求更高的安全性,您可以在 Tor 浏览器[4]中使用网页版,并且账号注册和使用的全程都用网页版在 Tor 浏览器中完成。这样你不仅可以做到加密通信,还可以全程隐匿 IP。
Tor + 网页版的优势在于:
隐匿IP:Element 客户端配置代理比较麻烦。而在 Tor 浏览器中,不必费力配置客户端的代理,可以做到全程隐匿IP。
易用性:很多聊天软件网页版会比客户端少些功能。而 Element 和这些软件不同,Element 网页版和桌面客户端的界面完全相同,功能也完全等价。
隐蔽性:网页版比 App 的隐蔽性更好,只要使用无痕模式登录,别人就无法发觉 Matrix 客户端的存在。
Tor + 网页版全程匿名,注册不需要邮箱和手机,打开浏览器就能使用。全部通信高度加密,方便程度又可比论坛私信,可作为私信的加密替代。推荐用这种方式使用 Matrix。
注册和使用
这里以PC为例。首次注册如下图(如果要在手机使用 Matrix,则需要安装客户端的应用程序。这里推荐使用 F-droid 下载 FluffyChat 。若使用 Element,则注册和登陆账号可能需要配置网络代理)
先在左下角语言栏内修改语言(如果找不到“简体中文”请缩小页面)。您可以使用默认的 matrix.org,也可以将“账户托管于”下面的服务器换成某个第三方服务器。当然,不同的服务器注册的条件也有所不同。大部分服务器都强制要求要求你输入邮箱并验证(有些服务器可能不需要,某些服务器使用单点登录)。您可使用临时邮箱以确保更好的安全性。想一个你喜欢的用户名,并设置密码(用户名不可改变,请谨慎选择,也不要与境内身份一致)
完成 reCAPTCHA 图形验证码(部分服务器需要)后,在邮件中按照指引验证完成后即注册成功。
注册成功后如下图:
浏览器中保存账号密码(或记住它们)。以后要进入 Matrix 网页客户端,访问网页客户端即可直接登录(注册成功进入客户端后如果客户端提示你要匿名收集数据,请拒绝。)
创建恢复密钥
注册完成后,客户端会提醒你生成恢复密钥。原因是 Matrix 使用端到端加密,加密后的聊天记录又(可能)保存在多个服务器上,因为端到端加密的特性,如果你退出了客户端的登录状态,再次登录后会自动生成新的加密密钥(等同于在新设备登录),如果你想查看之前的聊天记录,则需要恢复之前的加密密钥,如果你没有备份之前的加密密钥,那么将无法看到之前的聊天内容。为了能查看历史聊天记录,需要创建恢复密钥。
恢复密钥并不复杂,本质上就是给你的账户设置两道密码。登录密码用来登录 Matrix 账户,恢复密钥用来查看历史消息。当你在新的设备上登录时,Matrix 服务器会要求验证第二道密码,没有第二密码(恢复密钥)仍然可以登录,但是无法查看历史消息。
请按提示生成安全密钥。如果你需要管理这些用户名、密码、密钥串,可以使用 KeepassXC 等密码管理器。
温馨提示:如果语言重新变为英文,点击左上头像,选择【All settings】,在【General】的【Language and region】中选择【简体中文】
开始聊天
在 Matrix 中,知道对方的ID(类似 @example:matrix.org
这样的格式),点击左边栏上边的“+”号,输入地址就可以私聊了。
群聊的方法类似。点击左边栏下方的“+”号(Add Room)就可以创建或加入群聊。选择【探索公共房间】,可以使用加群连接加入他人群聊。群ID类似于以下格式:
#exaple:matrix.org
网页邀请格式为 https://matrix.to/#/#example:matrix.org
也可以选择【新房间】自行建群。
你还可以建立空间。空间是房间的集合。
如果你因为离线时间过长而无法查看消息,可以请求他人在【所有设置】下【隐私安全】中导出端到端加密密钥(类似GPG的公钥)。你可导入公钥,输入口令并查看消息。
Matrix 客户端的其它用法和主流聊天软件类似,在此不再赘述。
附加提示
1、当前PC端在线实例 https://app.element.io/ 在墙内墙外均体验不好。建议在 https://joinmatrix.org/servers/ 找第三方实例使用。
2、Matrix 协议的本身是安全的,但是客户端可能存在安全漏洞。建议视情况采取不同的安全措施,在进行重要讨论时务必采取匿名访问方式(Tor/i2P)配合网页版客户端,并注意在聊天中开启端到端加密以保证通信不被察觉,且通讯内容不会得到外泄。在针对不同情况采取不同安全策略时,除了要在技术层面创造安全的环境外,更务必要注意身份隔离原则,切勿使匿名身份互相关联,更切忌将匿名身份同境内互联网的身份关联起来。请勿泄漏任何可追溯自身身份的信息。
3、网页版 Element 客户端可以在手机浏览器运行,虽然不能适配手机显示,但可以作为一些情况下的临时替代方案。笔者希望,在不远的将来,在革命自由软件的推动下,能够开发出适配手机的网页版 Matrix 客户端。
4、手机上可使用的客户端包括但不限于 Element、FluffyChat、SchildiChat 等。目前 Element 疑似为伪开源。建议从 F-droid 下载由开源的代码编译的发行版。Element 客户端会自动连接 matrix.org,在中国使用可能导致无法加载,大概需要挂梯子使用,因此笔者不建议使用手机版的 Element。对于其他客户端,也建议经由 F-droid 下载。
5、建议即使在能够不翻墙使用 Matrix 的情况下仍然挂上网络代理,因为即使通讯的内容得到了加密,但同服务器本身连接的行为,是可以被当局或互联网垄断资本(ISP)所监测的。
6、上述提示部分在 XMPP 或其他自由的加密通讯方式的使用中同样适用
[1] 对于更多对telegram的具体批判,您可以查阅 https://pincong.rocks/article/11131
[2]使用开源代码(最著名的是Synapse,也有其他实现),任何人都可以轻松的搭建自己的后台服务器(Homeserver)。你可以不开放注册只给自己使用,让自己成功接入Matrix网络;也可以给自己的好友提供几个帐号;还可以在一个性能好一点的服务器上搭建并完全开放注册,让上面有许许多多的用户和群。一切都由你自己决定。
[3]New Vector:商业公司。Matrix 协议和 Element 客户端的开发企业。
[4]Tor Browser:一款内置 Tor 的网页浏览工具。Tor,一款实现匿名通信的自由软件。