SafeW 端到端加密原理——从 Signal 协议到双棘轮算法的通俗解释
端到端加密原理
"端到端加密"(End-to-End Encryption, E2EE)这六个字经常被各种通讯工具挂在嘴边,但真正理解它意味着什么的用户并不多。SafeW 把加密做成默认项,来看看背后的技术是怎么运作的。
一句话版本
消息在你的设备上加密,只有对方设备能解密,中间的服务器和任何第三方都看不懂。
分步骤解释
第一步:建立加密通道(X3DH 密钥协商)
当你和另一个 SafeW 用户第一次加好友并开始会话时,双方不会直接交换一个"共同密码"——那样会被网络窃听。SafeW 使用 X3DH(扩展三方 Diffie-Hellman) 协议来完成这件事:
- 你的设备和对方设备各自生成一组临时密钥;
- 通过数学运算(椭圆曲线密码学),双方独立计算出同一个根密钥;
- 整个过程中,服务器只是中转了一些数学参数,无法算出根密钥是什么;
- 即使网络被监听,攻击者拿到这些公开的参数也反推不出根密钥。
第二步:消息加密(Signal 协议 + 双棘轮)
根密钥协商好后,每次发消息时会用到 Signal 协议中的双棘轮算法(Double Ratchet)。这个算法的关键特性:
- 每条消息用不同的消息密钥 — 密钥用完即弃,下一条消息用新密钥;
- 密钥持续滚动更新 — 类似棘轮只能前进不能后退;
- 前向保密性 — 即使某一条消息的密钥被攻破,过去所有消息的密钥也无法被反推出来;
- 入侵恢复性 — 如果攻击者短暂截获了密钥,双方继续通信后密钥会重新对齐,安全自动恢复。
第三步:传输与存储
加密后的消息通过服务器中转到达对方设备。服务器看到的只是密文(一串无法解读的字符),没有密钥就无法还原成可读内容。消息存储在设备本地时同样加密。
端到端加密 vs 传统加密
很多通讯工具号称有加密,但它们做的是"传输加密"(TLS/SSL)——消息在网络传输时加密,但到达服务器后会被解密、以明文存储在服务器上。这种情况下,平台本身就能读取你的所有消息,如果被法院强制要求提供、或者被黑客攻破数据中心,你的对话内容就会泄露。
SafeW 的做法是:消息在离开你的设备之前就加密了,服务器全程只看到密文,无法解密。这就是"端到端"的含义——加密和解密发生在"两端"(你的设备和对方设备),中间任何人都插不上手。
SafeW 与 Signal 的关系
SafeW 的加密协议基础与 Signal(开源加密通讯应用)同宗——都使用 Signal 协议、X3DH 和双棘轮算法。但 SafeW 没有使用 Signal 应用本身,而是在这套加密底座上构建了自己的产品功能,包括群聊端到端加密、万人群、私有化部署等 Signal 没有的能力。
重要理解
E2EE 保护的是内容本身,但它不保护:
- 你用 SafeW 做了什么(时间戳、IP 地址等元数据);
- 你的 SafeW ID(因为要用于加好友);
- 设备本身(如果你的手机被偷走并解锁,E2EE 保护不了屏幕上显示的内容)。
这也是为什么 SafeW 还要配合防截屏、阅后即焚、防胁迫密码、生物识别解锁等一系列终端侧的安全措施——它们和 E2EE 一起,才构成完整的隐私保护层。