Firefox Send 端對端加密的安全性如何?

Firefox Send 端對端加密的安全性如何?

Firefox 最近推出了檔案分享服務,傳送。它承諾端對端加密:要共享的文件在發送者的瀏覽器中加密,並使用嵌入在共享 URL 中的金鑰在接收者的瀏覽器中解密。

共用文件的 URL 格式如下:

https://send.firefox.com/download/03837dac3928b1d1/#lIFX1W1S2oXSwJF0QgMe_A

我認為 URL 的一部分代表文件在 Mozilla 伺服器上的位置,另一部分是加密金鑰。但是,從有效的 URL 中,無論我更改哪一部分,都會收到錯誤「該連結已過期」。所以我無法判斷我的猜測是否正確。

不管怎樣,我的問題是我對端對端加密有多大信心。這個機制很聰明,但我注意到我能夠從任何裝置上的 Firefox 帳戶取回我的任何共享的連結。這意味著整個連結以某種方式儲存在我在 Mozilla 伺服器上的帳戶中。

如果是這樣,Mozilla 解密每個共用檔案在技術上是可行的。我錯過了什麼嗎?是否有人充分了解 Firefox Send 的真正工作原理以及依賴該端對端加密機制是否安全?

多謝。

答案1

我也想知道同樣的事情並提出了這個問題。哦,好吧,我可以嘗試做我自己的研究。

Mozilla 記錄了所使用的加密這裡並用更簡單的術語解釋它:

上傳中

  1. 您的應用程式/瀏覽器產生加密金鑰
  2. 此金鑰用於產生 3 個附加金鑰:一個用於檔案加密本身,一個用於元數據,一個簽署金鑰
    • 如果您設定密碼,密碼和加密金鑰將以安全的方式組合以建立簽署金鑰
  3. 文件和元資料被加密
  4. 加密資料和簽署金鑰發送到 Mozilla
    • 請注意,由於簽署金鑰的產生方式,無法計算出用於產生任何金鑰的原始加密金鑰
  5. Mozilla 向您發送文件的 URL(不含 # 後面的部分)和令牌。該令牌可用於刪除檔案。
  6. 您的應用附加#號和加密金鑰

正在下載

  1. 您進入下載頁面。每個瀏覽器都不會將#後面的部分提交給伺服器。 (它們通常用於連結到同一頁面的另一個部分的錨連結)
  2. Mozilla 向您的應用程式發送一個「隨機數字」(僅使用一次的數字)或基本上是一些隨機垃圾數據
  3. 由於您在 # 後面有加密金鑰,因此應用程式會產生所有 3 個金鑰,如上傳步驟 2 所示。
  4. 應用程式使用簽名金鑰對伺服器提供的隨機數進行簽名
  5. 應用程式將簽署的隨機數字發送給 Mozilla
  6. 由於 Mozilla 也有相同的簽章金鑰,因此他們也會執行第 4 步,並期望它與您發送的金鑰相符。此步驟確保
    • 您知道正確的加密金鑰
    • 或者如果文件受密碼保護,您知道密碼
  7. 一旦您確認您知道金鑰(甚至無需向伺服器透露金鑰),Mozilla 就會向您發送加密的元資料。
  8. 該應用程式在您的計算機上解密此元數據並顯示詳細信息
  9. 您點選下載
  10. 該應用程式下載加密檔案並在您的電腦上解密

所以,回答你的問題:

我認為 URL 的一部分代表文件在 Mozilla 伺服器上的位置,另一部分是加密金鑰。但是,從有效的 URL 中,無論我更改哪一部分,都會收到錯誤「該連結已過期」。所以我無法判斷我的猜測是否正確。

從下載步驟 6 開始,如果您無法證明您知道正確的加密金鑰,那麼 Mozilla 將拒絕向您發送文件。

不管怎樣,我的問題是我對端對端加密有多大信心。這個機制很聰明,但我注意到我能夠從任何裝置上的 Firefox 帳戶取回我的任何共享的連結。這意味著整個連結以某種方式儲存在我在 Mozilla 伺服器上的帳戶中。

這部分沒有寫在我連結的文檔中。我環顧四周來源並發現他們將上傳的文件清單上傳到您的帳戶。我相信該數據的加密過程與文件加密類似。

我環顧四周,似乎加密金鑰是本地產生的。我不確定密鑰是如何同步的。

如果是這樣,Mozilla 解密每個共用檔案在技術上是可行的。我錯過了什麼嗎?是否有人充分了解 Firefox Send 的真正工作原理以及依賴該端對端加密機制是否安全?

這裡有一個重要的免責聲明,我不是加密專家,您可能想問加密se對此的看法。

如果你問我,我認為這裡的加密過程非常可靠,並且使用的演算法是行業標準。 Mozilla 無法在不暴力破解每個使用的金鑰(每個檔案一個)的情況下解密每個檔案。

然而,您應該意識到您必須相信 Mozilla 正在完成其工作的額外功能:

  • 密碼僅由伺服器驗證。如果您碰巧獲得了加密檔案和加密金鑰,那麼您可以在不知道密碼的情況下解密資料。通常這不會成為問題,因為除非您證明您知道密碼,否則伺服器不會向您發送加密檔案。然而,Mozilla 本身可以存取加密文件,因此加密金鑰是這裡唯一的保護。
    • 考慮到大多數用戶提供的密碼都很弱,產生隨機的強加密金鑰比直接使用密碼加密資料好。
  • 過期不可能以加密安全的方式實現,因為您無法在數學函數中獲得真實的當前時間。因此,您必須相信 Mozilla 會刪除您的過期檔案。

請注意,Firefox Send 開源伺服器支援 AWS 作為儲存後端。我不確定 Firefox 在其公共服務中使用了什麼,但如果它是 AWS,那麼您在上述兩個問題上也必須信任 AWS。

相關內容