多个收件人的端到端加密

Ait*_*tch 4 encryption

WhatsApp宣布支持正常对话和群聊的端到端加密.

假设没有共享私钥并且它是真正的端到端,那么当我向一个有10个朋友的组发送10MB视频时,我必须加密10x并将其发送10x?否则它对我来说不是端到端,因为服务器必须无法转发它.

那是对的吗?谢谢

Fel*_*ser 6

Whatsapp实施了PKI(公钥基础设施)以加密消息.这意味着客户端使用密钥对自身进行身份验证,并且服务器仅存储公钥.

有关whatsapp安全性的更多信息,请查看他们发布的以下白皮书:

https://www.whatsapp.com/security/WhatsApp-Security-Whitepaper.pdf

回答

您的问题的答案在白皮书的第7页.

WhatsApp组成员第一次向组发送消息:

  1. 发送方生成一个随机的32字节链密钥.
  2. 发件人生成随机的Curve25519 签名密钥对.
  3. 发送方将32字节的链密钥和来自签名密钥的公钥组合发送方密钥消息.
  4. 发件人使用先前解释的成对消息传递协议单独加密组中每个成员的发件人密钥

对于组的所有后续消息:

  1. 发件人从Chain Key派生一个Message Key,并更新 Chain Key.
  2. 发件人使用AES256在CBC模式下加密消息
  3. 发件人使用签名密钥签名密文.
  4. 发送方将单个密文消息发送给服务器,服务器向所有组参与者进行服务器端扇出.

  • 由于用户的公钥不是凭空出现的,而是从 whatsapp 服务器提供的,我们仍然必须相信 whatsapp 不会运行中间人。 (2认同)