房间
在Matrix中,所有的对话都要发生在房间中。每个房间都由至少一个成员组成,这些成员有各种各样的权限。一个房间同时保存着消息记录和各种用户事件,加密房间的对话是绝对安全的, Matrix使用复杂的手段保证您的聊天内容的安全性,尤其是对房间历史记录。作为房间的管理员,你可以控制房间的历史记录对谁可见,你也可以将房间的历史导出成文件,以进行更加详细的操作。
房间的公开性与加密性
Matrix中的房间,有公开性和加密性两个属性。其中,公开房间不能加密,你可以选择对私密房间是否开启加密。
在加密房间中发送的任何类型的消息都是端到端加密的,除你您与目标设备不会有任何人还能获取到聊天的明文内容。任何人都可以通过搜索来查找并加入公开房间,而他们无法搜索到私密房间,无论私密房间是否开启了加密都是如此。加密房间只能通过邀请来接受新用户。此外,Matrix不推荐您在公开房间中开启加密,因为这除了消耗各位参与聊天的人的设备性能以外,不会让你得到任何好处——房间的消息记录可以轻易的被其他人看到,他只需要加入房间就可以。
私密房间和公开房间可以互相转换,但是未加密房间一旦转换为加密房间,就无法再转换回去。加密房间无法变为未加密房间。
Matrix房间与QQ/微信群的区别
Matrix房间与QQ/微信群的最大区别,就是它要么是公开的——任何人都可以不打招呼直接加入,要么是隐藏的——除非邀请,否则谁也无法加入,甚至都无法主动通过搜索知道你加密房间的存在。
Matrix房间里,用户权限也是一个问题。
房间的名字
Matrix的用户名,是@username:example.server.com
,其中example.server.com是服务器的地址,在 NerChat!里就是chat.neboer.site
。对于房间来说,名字是#roomname:chat.neboer.site
,其中开头的“#”表达了这是一个房间的别名,而用户开头是“@”。
像用户一样,房间别名就好像房间ID,可以用来确定一个房间。一个房间可以有多个别名,先到先得,不能重名,房间必须得选一个别名作为自己的主要别名,这个名字就是房间的代号,就好像用户ID一样。在房间设置-通用选项中,房间可以通过添加“本地地址”来添加自己的别名,然后在公布的地址-主要地址中挑选一个本地地址,作为自己的主要名字。在这里你可以选择将主要地址发送到我们家服务器的房间目录中,这样别人就可以通过阅览服务器房间列表直接加入你的公开房间了。
加密房间的聊天历史
在加密房间中,聊天历史都是加密的。服务器仅会将加密后的房间历史发送给客户端,解密消息的任务是客户端完成的。
在加密房间中,你可以自由的控制消息历史记录对新成员的可见性。打开房间设置-隐私安全-谁可以阅读历史消息,调整以下设置:
- 选择“任何人”,在加密房间中等价于“仅成员(从选中此选项时开始)”,在公开房间中意味着这个房间支持用户在不加入的情况下浏览所有的历史聊天记录。
- 选择“仅成员(从选中此选项时开始)”,从此只要是群里的成员就始终可以看到所有聊天记录,最方便也最不安全。
- 选择“只有成员(从他们被邀请开始)”,从此除非主动向某个人发起邀请,否则即使他加入了房间,在邀请之前的聊天记录他也是看不见的。
- 选择“只有成员(从他们加入开始)”,从此每个人只能看到自己加入群组之后的聊天记录。如果你需要防止新用户看到群里的旧消息,这是是最安全的选项。
注意,对这些选项的修改不会影响历史消息记录的可见性,比如你以前历史消息的可见性设置是“任何人”,那么当你调整到“只有成员(从他们加入开始)”之后,新加入你群组的成员还是可以看到在调整之前房间的所有聊天记录。
加密房间的安全性
加密房间中,只有所有成员的设备都经过你的交叉认证为“安全”,整个房间才应该被你认为是安全的。如果房间完全安全,你会在聊天框的左侧看到一个小小的绿色盾牌,这表明你的聊天的端到端加密的安全性得到了完全的保证。只要有任何一个不被信任的陌生设备加入会话,整个聊天会瞬间变成危险,绿色盾牌可以起到这个保护作用。详细的可以参考交叉认证方法。