
whatsapp 新版 web 实现多设备独立运行,其核心在于端到端加密的“状态同步”而非消息中转——服务器仅暂存加密后的设备状态快照,不存储明文消息;手机离线时,已配对设备仍可收发新消息,依赖的是分布式密钥管理和本地消息缓存。
WhatsApp 自 2021 年起全面升级为 Multi-Device 架构,彻底改变了旧版“Web 仅为手机镜像”的依赖模式。其关键突破在于:允许最多 4 台非手机设备(如 Web、桌面 App)在无持续手机联网状态下独立收发消息。这并非靠服务器长期保存用户消息,而是通过一套精密的端到端加密协同机制实现。
核心机制解析
-
初始同步:加密消息历史迁移
当首次将 Web 端作为“伴生设备(Companion Device)”链接时,手机(主设备)会执行以下操作:- 从本地数据库提取近期聊天记录(通常为最近数月的未删除消息);
- 使用仅该 Web 设备可解密的密钥,对整段消息历史进行一次性端到端加密,生成加密数据块(blob);
- 将加密 blob 上传至 WhatsApp 服务器,并通过一条独立的端到端加密信道,将解密密钥发送给 Web 设备;
- Web 设备下载 blob 后完成解密、解析并持久化存储于本地 IndexedDB;
- 密钥与原始加密 blob 在传输完成后即被服务器和手机端安全清除。
// 示例:简化逻辑示意(非实际 WhatsApp 代码) const encryptedHistory = await primaryDevice.encryptHistory( recentMessages, companionDevicePublicKey ); await server.uploadEncryptedBlob(encryptedHistory); await primaryDevice.sendDecryptionKeyViaE2EE(encryptedHistory.id, key);
-
实时消息同步:状态广播 + 本地处理
- 所有设备(含手机、Web、桌面)均拥有独立的长期密钥对(Identity Key)和会话密钥(Signed Pre-Key),并将其公钥注册至 WhatsApp 服务器;
- 新消息发出时,发送方设备会为每个目标设备单独加密(使用对方公钥),生成多份密文,分别推送至服务器;
- 服务器仅作中继,将对应密文分发给在线设备;若某设备离线,密文会在服务器暂存(最长 30 天),待其上线后拉取;
- 每台设备收到密文后,在本地解密、验证签名,并更新自身消息数据库与 UI —— 全程无需主设备参与。
-
服务器角色:零知识状态协调者
WhatsApp 服务器不存储任何明文消息,也不持有用户私钥。它仅维护:- 加密的设备元数据(如公钥、在线状态、最后活跃时间);
- 短期缓存的密文消息(Delivery Receipts 与 Message Ciphertexts);
- 全局一致的“应用状态快照”(Application State),如联系人列表、群组成员关系、已读回执状态等 —— 这些状态本身也经端到端加密,且仅在设备间同步变更部分(Delta Sync),大幅降低带宽与延迟。
⚠️ 注意事项: 手机首次配对后,仍需至少连接一次网络以完成密钥交换与历史同步;之后即使关机,Web 端可持续工作; 消息撤回、编辑、删除等操作会同步广播至所有在线设备,但离线设备将在下次上线时接收最终一致状态; 为保障安全,若主设备主动退出登录或重装 WhatsApp,所有伴生设备将自动登出,且无法恢复已删除的本地消息历史。
综上,WhatsApp 的新架构本质是将“信任边界”从单一手机扩展至一组受用户控制的可信设备,服务器退居为轻量级、加密的协调枢纽。它既坚守了端到端加密的底线,又显著提升了可用性——这才是真正意义上的“多设备,不妥协”。










