使用 Matrix 进行匿名加密的私聊
编者按:此文转载于2047,并针对目前情况做了修改。无产阶级革命派的联合不能依靠网络论坛这种约束力较低的方式组织起来。因此,需要使用即时通讯软件。微幕(微信)、阿Q(QQ)等即时通讯软件是中国政府网络审查群众、镇压群众计划不可或缺的的一部分,而中国人所熟知且使用最广泛的加密通讯软件 telegram 由于电话号码的强制要求、在群聊中不提供端到端加密(即在服务器中明文存储信息)、操作空间极大的的免责声明、对 IP 地址、设备信息和用户名更改等长达 12 个月的存储、服务端的软件私有、对中国华为的软件服务的使用、根据法律要求向当局提供电话号码和 IP 地址的声明和坊间流传的与中国警方达成共识的传言等而饱受诟病。[1]自由的通讯协议 IRC 无法实现多服务器互联,session 群组支持的人数不多,baiar 无法查看离线消息。而群众中广为人知的邦联式即时通讯协议 XMPP 的客户端功能较为简陋配置较为困难、服务器比较不稳定等诸多因素有所衰落。因此,这里为同志们介绍一种安全性和易用性都较好的通讯协议——Matrix。
Matrix是一个强加密、去中心化的即时通信协议。此协议最早在2047论坛上由 @沉默的广场 (即本文的原文作者)推荐,并在 @thphd 的支持下得到使用(这也是 @thphd 为革命群众做出的贡献之一)。[2]在无产阶级革命派中,Matrix 的应用可以追溯到 我们需要联合:一个组织招募帖 。当然,那篇帖子将 Matrix 的主要客户端 Element 和 Matrix 协议本身混为一谈[3],导致了革命群众对其存在诸多误解。下面,我们将对此做出详细的介绍。
Matrix有很多优点,包括:
隐私:注册无需电话号码(电话号码的使用在中国大陆显然不是安全的),有的服务器需要使用电子邮件地址(你可以使用临时邮箱或匿名邮箱,例如protonmail或tutanota),而某些服务器则无此要求;
安全加密:Matrix私聊和群聊是端到端加密的,即使是服务器的所有者,也无法看到用户的聊天内容。Matrix 存在一个统一、完备(但可能不方便,不过至少比XMPP上各加密协议方便)的端对端加密协议;
自由开源: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
选择服务器
matrix官方服务器安全性和稳定性有保证,但是在中国大陆遭遇封锁。即便如此,作为一种与电子邮箱类似的联邦式协议,Matrix 自然也有第三方很多服务器可以选择。Join Matrix 网站上提供了一份非官方服务器列表,可供选择注册:
https://joinmatrix.org/servers/
除此之外,你还可以使用 mozilla.modular.im [4]。
客户端
Matrix协议的主流客户端叫Element(原名Riot.im)。Element有桌面和移动客户端,提供和Telegram、Discord等聊天工具类似的体验,如果您追求易用性,您可以使用网页版。Element网页版和桌面客户端的界面完全相同,功能也完全等价。
如果你追求更高的安全性,您可以在Tor浏览器中使用网页版,并且账号注册和使用的全程都用网页版在Tor浏览器中完成。这样你不仅可以做到加密通信,还可以全程隐匿IP。
Element的下载页面提供网页版,也可以点以下链接直接进入注册页面。全过程可用Tor浏览器完成。
(当然几乎每个服务器都会内置Element实例,但可能会有限制,这个还未被封锁的官方实例自然是最新和最稳定的在线实例)
这里以PC为例。首次注册如下图
先在左下角语言栏内修改语言(如果找不到“简体中文”请缩小页面)。
修改完成如下。
您可以使用客户端默认的 matrix.org,也可以将“账户托管于”下面的服务器换成某个第三方服务器。当然,不同的服务器注册的条件也有所不同。大部分服务器都强制要求要求你输入邮箱并验证(有些服务器可能不需要,某些服务器使用单点登录)。您可使用临时邮箱以确保更好的安全性。想一个你喜欢的用户名,并设置密码(用户名不可改变,请谨慎选择,也不要与境内身份一致) 在邮件中按照指引验证完成后即注册成功。
注册成功后如下图
在浏览器中保存账号密码(或记住它们)。以后要进入Matrix网页版,访问app.element.io就可以直接登录。(注册成功进入客户端后如果客户端提示你要匿名收集数据,请拒绝)
创建恢复密钥
注册完成后,客户端会提醒你生成恢复密钥。原因是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] Matrix具有强于XMPP和IRC的易用性,与telegram相比更是一个天上一个地下——telegram在群聊中只提供端到服务器加密(跟推特没啥两样),你发布的内容等都将以明文的形式储存在telegram的服务器上。Telegram的隐私政策包含许多您在注重隐私的应用程序中不会看到的免责声明。例如,公司会记录您的 IP 地址、设备信息和用户名更改 — 将它们存储长达 12 个月。可以说telegram的信息保护全凭自觉。Telegram 还可以阅读您的云聊天消息以调查垃圾邮件和其他形式的“滥用”。此外,如果法律要求,他们可以向当局提供您的电话号码和 IP 地址。曾经还流传过telegram与中国警方中国警方达成共识的说法(如果你追求隐私,你可以买虚拟手机号码,但前提是你资金充足)。对于更多对telegram的具体批判,您可以查阅 https://pincong.rocks/article/11131
[2] 详情可查阅 https://2047.one/t/10095
[3] “我们是一个将交流,联系建立在element平台(这是一个可以解绑邮箱的平台,同志们可以用虚拟邮箱注册…”(原文)。Matrix的客户端除Element外还有 Cinny 、 Nheko 、Hydrogen 、SchildiChat、 FluffyChat 等。使用添加第三方插件的 Pidgin 也可达到部分功能。
[4] modular.im 是 Element 的商业化托管平台(Element Matrix Service)。该服务在中国大陆暂未被封锁。joinmatrix.org 不收录 modular.im 的服务器。