加密与安全通信

端到端加密 (E2EE)

约 4 分钟阅读

什么是端到端加密

端到端加密 (End-to-End Encryption,E2EE) 是一种在发送方和接收方设备之间加密数据的机制,使通信路径上的服务器和服务提供商等任何第三方都无法读取内容。

在普通的 TLS/SSL 加密中,客户端与服务器之间的通信受到保护,但数据在服务器上会被解密。这意味着服务提供商可以访问内容。而 E2EE 中,即使是服务提供商也无法读取消息,因为只有通信端点持有解密密钥。

E2EE 的工作原理 - 以 Signal 协议为例

应用较广的 E2EE 实现之一是 Signal 协议。WhatsApp 和 Google 信息采用该协议,Messenger 也在 2023 年 12 月将个人聊天与通话默认切换为 E2EE。协议规范公开发布,其中包括在密钥协商中加入后量子密码的 PQXDH。

  1. 密钥对生成:每台设备生成长期身份密钥和每条消息使用的一次性临时密钥。
  2. 密钥交换:通过 X3DH (扩展三重 Diffie-Hellman) 协议建立共享密钥,双方均无需暴露私钥。
  3. 双棘轮:每条消息生成唯一的加密密钥。即使某个密钥被泄露,最多只影响它保护的那一条消息。
  4. 消息加密:每条消息使用棘轮派生的密钥通过 AES-256 加密,旧密钥随即丢弃,因此设备即使被入侵,之前的消息也不会被解密 (前向保密)。服务器仅转发密文,无法解密。

E2EE 的局限性与注意事项

E2EE 是强大的隐私保护技术,但并非万能。

  • 元数据不受保护:谁与谁通信、何时通信、通信频率等信息不会被加密。仅凭元数据就可以推断个人的行为模式和人际关系。
  • 端点被攻破:如果设备感染了恶意软件或被物理访问,攻击者可以在加密前或解密后读取消息。E2EE 保护的是传输路径,而非端点。
  • 备份陷阱:如果消息备份以未加密形式存储在云端,E2EE 实际上被绕过了。请确认您的服务是否也加密备份。
  • 密钥验证:要确认您正在与预期的人通信,应验证安全号码或密钥指纹。否则,密钥交换过程中理论上可能发生中间人攻击。

如何选择 E2EE 服务

选择声称支持 E2EE 的服务时,请确认以下几点。

  • 是否默认启用:Signal、WhatsApp 和 iMessage 默认启用 E2EE。Telegram 仅在"秘密聊天"中启用,普通聊天不是 E2EE。
  • 源代码是否公开:开源实现允许第三方安全审计。Signal 的协议和客户端代码完全开源。
  • 是否经过独立审计:确认服务是否接受过第三方安全审计,审计结果是否公开。
  • 是否只在特定条件下启用:Google 信息的 E2EE 只在双方都使用该应用并开启 RCS 聊天时生效,以 SMS/MMS 发送的部分不在范围内,保护与否取决于对方的设置。
  • 元数据政策如何:即使有 E2EE,服务可能仍会收集元数据。Signal 最大限度减少元数据收集,而 WhatsApp 会与母公司 Meta 共享部分元数据。

常见误解

E2EE 能保密通信的一切
E2EE 保护的是消息内容,但不保护谁与谁通信 (元数据)。要隐藏通信的存在本身,需要 Tor 等匿名化网络。
E2EE 是犯罪分子的技术
E2EE 是记者、人权活动家和企业机密通信等合法隐私保护不可或缺的技术。日常使用的消息应用大多默认启用,它并非仅用于特殊场景的技术。

E2EE 与普通 TLS 加密对比

TLS 加密 (普通)

加密客户端与服务器之间的通信。数据在服务器上被解密,服务提供商可以访问。

E2EE

在发送方和接收方设备之间加密。包括服务器在内的中间方无法解密数据。服务提供商无法读取消息内容。

分享

相关术语

相关文章