Encryption

Whatsapp 如何辨識轉發的附件

  • January 16, 2021

有時 Whatsapp 顯示附件經常被轉發。

如果消息是端到端加密的,他們怎麼知道呢?即使使用混合加密,我也會用我的密鑰加密並將附件儲存在伺服器上。

那麼他們是否對客戶端中的附件進行雜湊處理並儲存雜湊?所以他們會知道我轉發了哪些附件以及何時轉發?

附件處理如下(來源為WhatsApp的白皮書);

附件第一次發送

  1. 發送者生成一個 32 字節的隨機 AES-256 密鑰, $ k_1 $ ,以及另一個隨機的 32 字節密鑰 $ k_2 $ 為了 $ \operatorname{HMAC-SHA256} $
  2. 加密附件 $ a $ 用這把鑰匙 $ c_a = \operatorname{AES-CBC-256}(k_1,a) $ 並附加的 MAC $ c_a = \operatorname{HMAC-SHA256}(k_2) $ 給它。
  3. 發件人將其上傳到 blob 儲存中的伺服器。
  4. 發件人加密 $ k_1,k_2 $ ,以及加密 blob 的 SHA256 雜湊值和 blob 到接收者的 URL。
  5. 接收者解密消息,接收加密的 blob,驗證它的 SHA256,驗證 MAC 然後解密它。

這是一種媒體記憶體技術。

附件已轉發

接收者想要轉發消息;

  • 加密 URL 和密鑰 $ k_1,k_2 $ ,以及從發件人接收並轉發給其他人的附件的 SHA256 雜湊值。

Whatsapp 如何辨識轉發的附件

只需將“轉發”標籤添加到包含 $ k_1,k_2 $ , 和附件的 SHA25。即使轉發也有一個計數器來限制扇出,而 WhatsApp 對此一無所知。

那麼他們是否對客戶端中的附件進行雜湊處理並儲存雜湊?所以他們會知道我轉發了哪些附件以及何時轉發?

不是因為它,它們不是消息的內部,但是,儲存在 WhatsApp 伺服器中的 blob 包含足夠的資訊來執行流量分析,如果他們想執行的話。

  • 儲存此資訊;誰上傳了 blob;上傳 blob 時。
  • 儲存想要訪問此 blob 的人員和時間。

現在,攻擊者可以製作圖表了。

這是流量分析不會暴露消息,但是,如果其中一個接收者被破壞,則傳播的附件可以提供有關其他人的資訊。

引用自:https://crypto.stackexchange.com/questions/87557