WhatsApp如何确保跨多设备的数据一致性?约700字

Advancing Forum Analytics at China Data
Post Reply
liza89
Posts: 514
Joined: Sun Dec 15, 2024 4:03 am

WhatsApp如何确保跨多设备的数据一致性?约700字

Post by liza89 »

1.客户端扇出方法:

当用户发送消息时,发送设备上的 WhatsApp 客户端会针对收件人的每个活动设备(以及发送者的其他链接设备)对该消息进行多次加密。
然后,每个加密版本的消息都会传输到 WhatsApp 的服务器。
服务器充当中继,将每个单独加密的消息转发到相应的目标设备。
这样可以确保只有拥有正确解密密钥的预期接收设备才能读取消息。WhatsApp 本身无法解密内容。
2. 独立连接和设备密钥:

每个链接的设备都通过 WebSocket 与 WhatsApp 的服务器建立独立的连接。
作为信号协议 E2EE 的一部分,每个设备(主电话和链接设备)都有自己独特的一组加密密钥。
当新设备链接时,主设备和新设备之间会发生安全密钥交换过程,以建立通信所需的加密密钥。
3.应用程序状态同步:

除了消息之外,WhatsApp 还会跨设备同步其他 泰国 whatsapp 号码数据 应用程序状态数据,以提供一致的体验。其中包括:
联系人姓名:确保联系人在所有设备上显示相同的姓名。
聊天档案:一致反映已存档的聊天。
加星标的消息:跨设备保持消息的加星标状态。
已读/未读状态:同步消息是否已读。
静音聊天:跟踪静音对话。
应用程序状态的同步在用户设备之间也采用端到端加密。服务器会安全地存储此加密应用程序状态的副本,所有用户设备均可访问。用于加密这些数据的密钥会不断变化,并且只有用户的设备知道。
4. 初始消息历史记录传输:

当新设备链接时,主手机会向新链接的设备发送端到端加密的近期消息历史记录包。
解密此消息历史记录的密钥也通过端到端加密消息发送到链接的设备。
一旦链接的设备下载、解密、解压并安全地将消息历史记录存储在本地,用于初始传输的密钥将被删除。从那时起,每个设备都可以从其自己的本地数据库访问消息历史记录。
5.处理离线设备:

发送给离线设备的消息将以单独的端到端加密形式存储在 WhatsApp 的服务器上,直到相应的设备上线为止。
一旦设备连接,它就会从服务器检索其加密消息,并使用其私钥在本地解密。
6.多手机支持:

WhatsApp 已扩展多设备支持,支持将多部手机链接到同一帐户。每部已链接的手机均可独立连接,同时保持端到端 (E2EE) 和数据同步,类似于网页版和桌面客户端。
本质上,WhatsApp 通过以下方式实现跨设备数据一致性:

为每个设备单独加密消息。
为每个设备建立独立的连接。
使用 E2EE 安全地同步应用程序状态数据。
对最近的消息历史记录进行初始加密传输到新设备。
为离线设备存储加密消息,直到它们重新连接。
这种架构确保用户可以在设备之间无缝切换,并获得一致的 WhatsApp 体验,同时又不会损害端到端加密所提供的安全性和隐私性。主手机不再是单一的可信点,连接的设备可以独立运行许多功能。
Post Reply