Matrix:去中心化、匿名、安全的即时通信
Matrix是一个端到端加密、去中心化的即时通信协议,Matrix协议对标的是同为即时通信软件的Telegram,Discord。比起这两者,Matrix服务无需邮箱和手机号就可以注册,非常适合匿名社区的通讯,免除个人信息泄露之忧。本文介绍Matrix协议和它的官方客户端Element(原名Riot.im)。
比起主流即时通讯软件,Matrix有很多优点,包括:
- 隐私:注册Matrix账号不需要邮箱和手机号,只需要用户名和密码。使用Matrix无需担心手机号和邮箱泄露的风险。
- 安全加密:Matrix私聊和群聊是端到端加密的,所有聊天内容加密存储、加密传输。即使是Matrix服务器的所有者,也无法看到用户的聊天内容。
- 开源:Matrix官方客户端和服务器软件全部开源,任何人都可以审查代码,并检查代码中的漏洞。有兴趣的人也可以用开源代码搭建自己的Matrix服务器。
- 去中心化:Matrix是联邦式协议,Matrix网络由分布在世界各地,由不同个人和组织运营的服务器组成,因此Matrix协议不容易被单个组织垄断。
“联邦式协议”听上去难以理解,事实上,电子邮件就是一种应用最广泛的联邦式协议。每个电子邮件服务器之间的地位平等,在收发电子邮件时,只要指定一个电子邮件服务器和服务器上的用户,就可以通信。例如example@gmail.com这个电子邮件地址,同时包含了用户名和服务器名,example是用户名,gmail.com是服务器名。
在Telegram,微信等聊天软件中,添加好友需要指定手机号或者用户名。而Matrix非常像电子邮件,账号名称包含用户名和服务器名。一个matrix账号ID如下:
example@matrix.org
这里example是用户名,matrix.org是服务器名。Matrix添加好友和收发电邮一样,需要填写完整的MatrixID@服务器名。在这里就是example@matrix.org。
安全使用Matrix
1. 选择服务器
电子邮件有很多服务商,例如Gmail,Hotmail,ProtonMail。Matrix作为一种与之类似的联邦式协议,自然也有很多服务器可以选择。Matrix网站上提供了一份服务器列表,可供选择注册:
https://www.hello-matrix.net/public_servers.php
不过,本文推荐使用Matrix官方的服务器matrix.org,matrix官方服务器安全性和稳定性有保证,配置也是最容易的。
2. 网页版客户端+Tor
Matrix协议的官方客户端叫Element(原名Riot.im)。Element有桌面和移动客户端,提供和Telegram、Discord等聊天工具类似的体验,不过这里推荐在Tor浏览器中使用网页版(移动端)。并且账号注册和使用的全程都用网页版在Tor浏览器中完成。
Tor+网页版的优势:
- 隐匿IP:lement客户端配置代理比较麻烦。而在Tor浏览器中,不必费力配置客户端的代理,可以做到全程隐匿IP,这让Matrix可以达到Tox和TorMessage的隐匿性。
- 易用性:很多聊天软件网页版会比客户端少些功能。而Element网页版和桌面客户端的功能完全等价,界面完全相同。用户在客户端软件和网页版之间可以零成本切换。
- 隐蔽性:网页版比App的隐蔽性更好,只要使用无痕模式登录,其它人无法发觉Matrix客户端的存在。
Tor+网页版全程匿名,注册不需要邮箱和手机,打开浏览器就能使用。全部通信高度加密,方便程度又可比论坛私信,可作为私信的加密替代。推荐用这种方式使用Matrix。
注册和使用
Element的下载页面提供网页版,也可以点以下链接直接进入注册页面。注意全过程应当用Tor浏览器完成。
https://app.element.io/#/register
首次注册如下图:
选择上面的“Free”可以选择直接在matrix.org服务器上注册(推荐)。选择“Premium”,可以使用Matrix官网提供的主机自己搭建服务器。选择“Advanced”,可以使用第三方服务器。
注册时只要提供用户名和密码即可,Email是可选的,可以不输入。
接下来会弹出提醒,如果不绑定电子邮箱,若忘记密码则无法回复。由于这里追求匿名,点continue继续。
如果用Tor注册,接下来会有Google reCaptcha验证码,点完验证码之后即完成注册,如图:
以后若要进入Matrix网页版,访问app.element.io就可以直接登录。
创建恢复密钥
Matrix使用端到端加密,加密后的聊天记录又(可能)保存在多个服务器上,为了能查看历史聊天记录,需要创建恢复密钥。
恢复密钥并不复杂,本质上是给账户设置两道密码。登录密码用来登录Matrix账户,恢复密钥用来查看历史消息。当在新的设备上登录时,Matrix服务器会要求验证第二道密码,没有第二密码(恢复密钥)仍然可以登录,但是无法查看历史消息。
恢复密钥的设置方法如下:
点击左上头像,选择【settings】,在右侧选择【Security & Privacy】,如图4。
在右侧选择绿色的【Set up】按钮,弹出如下页面。
这里选择第二项【Enter a Security Phrase】。
接下来需要输入第二道密码,这里设置的密码就用来恢复聊天记录。设置完成后,会显示一个12组每组4个的密钥,如下图,建议把这个密钥备份并保管好。如果上面的第二道密码忘记,可以用这个密钥串解锁聊天记录:
如果你需要管理这些用户名、密码、密钥串,推荐使用KeepassXC等密码管理器。
开始聊天
在Matrix中,知道对方的ID(类似example@matrix.org格式),点击左边栏上边的“+”号(Start Chat)就可以私聊了。
群聊的方法类似。点击左边栏下方的“+”号(Add Room)就可以创建或加入群聊。选择explore public rooms,可以使用加群连接加入他人群聊。群ID类似于以下格式:
https://matrix.to/#/!xTTMQbujXcFdGQJgAS:matrix.org?via=matrix.org
也可以选择Create new room自行建群。
Matrix的其它用法和主流聊天软件类似,在此不再赘述。
更多Matrix资料可见:
[1] https://matrixim.cc/sfd2017-matrix.pdf,北大Matrix兴趣社团的介绍slides。
[2] https://matrix.org/docs/develop, Matrix开发文档,可用于Matrix机器人,网桥的开发参考。也描述了很多Matrix的内部细节。