端到端加密的即时通讯

只有聊天里的人,才能读到消息

gim 在你的设备上加密每一条消息和每一个文件,然后才发出。负责投递的服务器读不到内容;你的账号是一把由你掌握的密钥,而不是手机号。

你的设备晚上八点见?
Hub · hub.g.im9f3a…c07e41b2密文
对方的设备晚上八点见?
在你的设备上加密,在对方的设备上解密。Hub 只负责转交。

gim 如何工作

几个核心设计,每一条都能在代码里找到。

端到端加密

聊天使用 MLS(RFC 9420)。消息、图片和文件在发送方设备上加密,只有聊天成员能解密。

账号就是密钥

创建账号时,设备上会生成一把根密钥,账号 ID 由它派生。不需要手机号,也不需要邮箱。

恢复包

账号 ID 和恢复密钥一起保存一次。即使所有设备都丢了,也能用恢复包在新设备上找回账号。

Hub 只投递,不读取

Hub 是在设备之间传递消息的服务器。它经手的只有密文,看不到你写了什么。

不止一个 Hub

一个账号可以同时使用多个 Hub。其中一个宕机时,消息仍会从其他 Hub 送达。互相联邦的 Hub,其用户之间也能互相聊天。

多设备

添加手机或电脑时,扫描二维码,再确认两块屏幕上的六位数字一致即可。

内置服务器,可以替换

应用默认使用这两台服务器。两者都可以在应用里更改,Keep 服务器也可以关闭。

Hubhub.g.im

在设备之间投递消息和文件,全程端到端加密。

Keep 服务器keep.g.im

只保存两样东西:隐私设置(包括屏蔽名单)的加密备份,用根密钥派生的密钥封存;以及你主动提交的举报。举报会以明文附上你选中的消息,供管理员查看。

自己部署

服务端源码公开在 GitHub 上。