微光 — 隐私政策
微光是一款端到端加密的通讯应用。本页用平实的语言说明,究竟有哪些内容会到达我们的服务器,以及哪些内容永远不会。
简要说明
- 我们无法读取你的消息。消息在你的设备上加密,在对方的设备上解密。服务器只保存密文。
- 你的私钥绝不会以我们能使用的形式离开你的设备——我们保存的那份副本是用你的密码加密的,而我们从不知道你的密码。
- 没有广告、没有分析、没有追踪 SDK,也不会向第三方出售或共享任何东西。
- 仅限邀请。不需要电话号码,不需要电子邮箱,也不会上传通讯录。
1. 我们究竟存储什么
微光需要一台服务器,好在双方并非同时在线时传递消息。以下就是那台服务器保存的全部内容,以及它能从中得知什么。
| 数据 | 用途 | 我们能读取吗? |
|---|---|---|
| 用户名 | 让别人能找到你并给你发消息 | 能——由你自己选择,与你聊天的人也看得到 |
| 密码 | 用于登录 | 不能——仅以加盐哈希形式存储 |
| 公钥 | 让别人能加密发给你的消息 | 能——它按设计就是公开的 |
| 私钥 | 以加密形式保存,好让你能在另一台设备上登录 | 不能——用你的密码派生出的密钥加密 |
| 消息 | 用于投递 | 不能——仅以密文形式存储 |
| 你发送的照片与文件 | 用于投递 | 不能——上传前已加密,文件名与文件类型也一并加密 |
| 表情回应 | 用于显示 | 不能——表情本身也是加密的 |
| 显示名称、简介、头像 | 可选的个人资料,若你设置了的话 | 能——内容由你决定 |
| 时间戳、谁给谁发过消息、已读状态 | 用于排列会话并显示送达情况 | 能——这是我们无法避免持有的元数据 |
关于最后一行,我们想说清楚。端到端加密保护的是你消息的内容。它并不能隐藏「两个账户在某个时刻交换过一条消息」这一事实——服务器必须知道往哪里投递。微光并不试图掩盖这些元数据,你也不应假设它做到了。
2. 加密是怎样工作的
每个账户都有一对密钥。你的设备把你的私钥与对方的公钥结合,派生出一个共享密钥(X25519),并用它加密每一条消息(XSalsa20-Poly1305)。只有你们两人能派生出那个密钥,因此也只有你们两人能读到这条消息。
你的私钥在你的设备上生成。存放在服务器上的那份副本,是用你的密码派生出的密钥加密的,因此没有那个密码,对任何人——包括我们——都毫无用处。
这有一个值得理解的后果:如果你忘记了密码,你的消息记录将无法恢复。你恢复不了,我们也恢复不了。这就是我们确实不掌握密钥所付出的代价。
3. 通知
为了在应用关闭时通知你,我们会通过 Apple(APNs)或 Google(FCM)发送推送通知。我们不会把你的消息内容放进去,而是转发你的设备本会收到的同一段密文,由你的设备在本地解密后显示预览。
这意味着 Apple 和 Google 能看到有一条通知发往你的设备,但看不到内容。如果你的设备无法解密,通知会退回显示「新消息」。
4. 微光绝不会做的事
- 没有广告,也没有广告标识符。
- 没有分析或崩溃报告 SDK。
- 不会向第三方出售或共享你的数据。
- 不会访问你的通讯录或地址簿。
- 不需要电话号码或电子邮箱。
- 不收集位置。
5. 还有谁参与其中
微光依赖少数几家服务提供方,它们都不会收到你的消息内容:
- Apple 推送通知服务和Firebase 云消息——用于唤醒你的设备。它们收到的是密文,绝不是明文。
- 我们自己的服务器,存储上文所述的加密数据。
6. 你的选择
- 删除消息——只删自己这边,或者如果是你发的,也可以为所有人删除。
- 关闭通知——在微光的设置或你的系统设置中。
- 生物识别锁——要求先通过 Face ID、Touch ID 或指纹,才能在你的设备上解密消息。
- 删除你的账户——写信给我们,我们会移除你的账户及其数据。我们团队很小,所以目前这由人工处理,而不是一个按钮。
7. 未成年人
微光并非面向 13 岁以下的儿童,我们也不会在知情的情况下收集他们的数据。
8. 本政策的变更
如果本政策的变更影响到我们收集什么或如何处理,我们会更新本页顶部的日期,并在应用的版本说明中注明该变更。
9. 联系我们
有疑问,或想要求删除账户:[email protected]。
