Backchat:无账号的端到端加密即时通讯实验

+

Backchat 是一个无账号的端到端加密即时通讯实验应用。

它和常见聊天软件最大的区别是:不需要手机号,不需要邮箱注册,也没有一个全局用户名系统。两个人想建立联系时,只需要通过一次性邀请码完成握手;之后,这个联系人关系就保存在本地设备中。

访问地址:

https://backchat.doradreamland.com

为什么做 Backchat

大多数聊天工具都从“账号”开始。

账号带来便利,也带来一整套中心化依赖:注册、登录、找回、用户名、好友关系、平台数据库和身份体系。

Backchat 尝试的是另一条路径:

  • 先建立一条私密通道
  • 再生成联系人关系
  • 本地保存联系人和消息
  • 不把“平台账号”作为沟通的前提
  • 通过一次性代码完成双方身份确认

它更像一个“临时但可持续的私密通道”:你和对方先通过别的方式交换一次邀请码,然后 Backchat 在浏览器中建立后续聊天关系。

它适合什么场景

Backchat 适合用于理解和体验一种不同的通信模型:

  • 不想注册账号,只想快速建立一条聊天通道
  • 临时协作时,需要和对方交换少量文字或文件
  • 想体验本地优先、无中心身份的通信方式
  • 想研究 Backchannel 这类基于一次性代码的安全握手模型
  • 想把浏览器 PWA 当作轻量通信工具使用

需要强调的是,Backchat 当前仍然是研究性质的软件,不是经过完整安全审计的成熟通信产品。

不要用它传输密码、私钥、财务资料、身份证件、商业机密或其他高度敏感信息。

核心功能

无账号联系人

Backchat 没有注册流程。

第一次打开后,你看到的是本地联系人列表。添加联系人时,一方创建临时邀请码,另一方输入或扫描这个邀请码。邀请码使用后,双方会互相加入联系人列表。

一次性邀请码

邀请码有三种使用方式:

  • Via text:复制文字邀请码,发给对方
  • On a Call:适合通话中朗读数字码
  • In person:生成二维码,适合面对面扫码

邀请码会自动刷新,并且只能用于一次握手。对方完成添加后,双方会进入联系人命名页面。

文字消息

添加联系人后,可以进入聊天窗口发送文字消息。

消息会保存在本地浏览器数据中。联系人在线时,消息会通过 Backchannel 的连接同步给对方。

文件发送

聊天窗口支持发送文件。

你可以点击回形针按钮选择文件,也可以把文件直接拖到聊天窗口中发送。收到文件后,对方可以在消息气泡中下载附件。

联系人管理

每个联系人都有独立设置页,可以:

  • 修改联系人昵称
  • 用手绘方式设置联系人标识
  • 导出该联系人的消息历史
  • 删除联系人

导出的消息历史是 JSON 文件,适合做本地备份或研究分析。

多设备同步

Backchat 支持把同一个人的多个设备连接起来。

在设置中进入 Devices,可以生成设备连接二维码。另一台设备扫码后,可以同步联系人和消息历史。

多设备同步意味着被连接的设备可以看到全部联系人和消息记录,所以只应连接你自己信任的设备。

Relay URL 设置

Backchat 使用 relay 服务帮助双方发现和连接。

Settings -> Relay URL 中,可以查看当前 relay 地址,也可以改成自己的 relay 服务地址。

用户手册

1. 打开应用

访问:

https://backchat.doradreamland.com

建议使用 Chrome 或 Edge。移动端浏览器也可以访问,如果浏览器支持 PWA,可以把它安装到桌面或主屏幕。

首次打开时,本地还没有联系人,底部会看到两个主要操作:

  • Create invite
  • Use Invite

2. 添加联系人:由你创建邀请

如果你想邀请对方添加你:

  1. 点击 Create invite
  2. 选择邀请码形式
  3. 把邀请码复制给对方,或让对方扫描二维码
  4. 等对方输入邀请码完成连接
  5. 连接成功后,为对方设置昵称
  6. 进入聊天窗口

如果选择文字邀请码,可以点击 Copy invitation 复制邀请内容。

如果选择二维码,需要让对方在自己的设备上打开 Use Invite 并扫码。

3. 添加联系人:使用对方的邀请

如果对方已经创建了邀请码:

  1. 点击 Use Invite
  2. Enter Invite 中输入对方给你的邀请码
  3. 或切换到 Scan Invite 扫描对方二维码
  4. 点击 Add Contact
  5. 连接成功后,为对方设置昵称
  6. 进入聊天窗口

如果邀请码过期,需要让对方重新生成一个新的邀请码。

4. 设置联系人昵称

添加联系人后,Backchat 会要求设置联系人名称。

你可以选择:

  • Write:输入文字昵称
  • Draw:手绘一个昵称或标识

确认后,联系人会出现在首页列表中。

5. 发送文字消息

在联系人列表中点击联系人,进入聊天窗口。

底部输入框可以输入消息。点击发送按钮后,消息会出现在当前会话中。

如果对方在线,消息会同步给对方。如果对方暂时不在线,实际表现取决于 relay 和本地同步状态。

6. 发送文件

在聊天窗口中,可以用两种方式发送文件:

  • 点击回形针按钮选择文件
  • 把文件直接拖入聊天窗口

文件发送时会显示进度。对方收到后,可以点击文件消息下载。

7. 导出消息历史

进入某个聊天窗口后,点击右上角菜单,进入联系人设置页。

点击 Export message history,Backchat 会导出该联系人对应的消息记录 JSON 文件。

建议在重要聊天后手动导出一次,避免浏览器数据被清理后丢失。

8. 修改或删除联系人

在联系人设置页中可以:

  • 点击 Edit Nickname 修改名称
  • 点击 Delete Contact 删除联系人和对应消息

删除联系人会永久移除本地记录,操作前请先确认是否需要导出消息历史。

9. 连接另一台设备

如果你想在另一台设备上使用同一套联系人和消息:

  1. 在原设备打开 Settings
  2. 进入 Devices
  3. 点击 Link a device
  4. 用另一台设备扫描二维码
  5. 等待同步完成

连接后的设备可以看到全部联系人和消息历史。不要在公共电脑或不可信设备上执行这个操作。

10. 取消设备连接

进入 Settings -> Devices,点击 Unlink All Devices

取消设备连接会让其他设备删除数据,包括联系人和消息。某些设备如果当时不在线,需要等它再次上线后才会完成解除。

11. 修改 Relay 地址

进入 Settings -> Relay URL

如果你有自己的 Backchannel relay 服务,可以在这里填入新的 relay 地址并保存。

普通用户不需要修改这个设置。如果填错地址,联系人连接可能会失败。

12. 清空本地数据

进入 Settings -> Clear all Data

这个操作会清空当前浏览器中的 Backchat 数据,包括联系人和消息,并会导致设备需要重新同步。

执行前请先导出需要保留的消息历史。

数据和安全说明

Backchat 的数据主要保存在浏览器本地,例如 IndexedDB。

这意味着:

  • 清理浏览器站点数据可能删除联系人和消息
  • 换浏览器或换设备不会自动带走旧数据
  • 隐私模式不适合长期使用
  • 卸载 PWA 或清理应用数据可能导致数据丢失
  • 重要内容需要手动导出备份

Backchat 使用端到端加密和一次性代码建立联系人关系,但当前项目仍然是研究软件,没有经过完整安全或密码学审计。

所以它适合体验、研究和低风险沟通,不适合作为高敏感信息的唯一通信工具。

技术说明

Backchat 基于 Backchannel 思路实现,核心特征是:

  • 无账号
  • 无中心用户名
  • 一次性 PAKE 邀请码
  • 基于 relay 的连接发现
  • 本地数据库保存联系人和消息
  • 支持 PWA 安装
  • 支持文字消息、文件消息和多设备同步

当前部署地址:

https://backchat.doradreamland.com

我把它作为一个项目发布,是因为它展示了一种值得继续探索的软件方向:通信不一定从账号体系开始,也可以从一次被双方确认的安全关系开始。