什麼是端對端加密?如何保護你的照片
端對端加密讓儲存服務商拿不到可讀的照片內容,也拿不到明文的內容金鑰。
端對端加密(E2EE)是一種安全模型:明文在一個經授權的端點上加密,並在另一個經授權的端點上解密。負責儲存或傳輸的服務商不持有明文內容金鑰。這條界線能防止內容在伺服器端被直接讀取,但無法隱藏所有中繼資料,也無法防範遭入侵的端點、外洩的復原憑證、分享的接收者或惡意的用戶端更新。
就照片儲存而言,端對端加密代表你的手機會在上傳前加密照片內容,雲端存放的是密文,而不是可讀的影像。解密需要經授權的裝置或復原途徑提供的金鑰。檔案大小、時間、帳號資料、分享關係和其他中繼資料可能仍然看得到。本指南說明這條界線,並比較常見的服務模式。
端對端加密的運作方式
核心機制分為三個階段:產生金鑰、加密和解密。
產生金鑰
使用者的裝置產生加密金鑰。在對稱加密(如 AES-256)中,加密和解密用的是同一把金鑰。在非對稱加密(如 RSA)中,公鑰負責加密,私鑰負責解密。許多 E2EE 系統結合兩者:先用非對稱加密交換一把對稱工作階段金鑰,再用它處理大量資料的加密。
照片保險庫 App 的金鑰管理設計有好幾種。有些直接從密碼衍生檔案金鑰;較強的分層設計則會用由憑證衍生的解鎖金鑰,封裝一把隨機的檔案金鑰。Vaultaire 使用 PBKDF2-HMAC-SHA512,從 5x5 圖形和全裝置鹽值衍生出 256 位元的保險庫金鑰。這把保險庫金鑰負責驗證加密索引,並解開另一把用於檔案加密的隨機主金鑰。
加密
明文(你的照片)透過加密金鑰和加密演算法轉換成密文。AES-256-GCM 是這類用途最常見的對稱加密演算法。GCM(Galois/Counter Mode)提供驗證加密:既加密資料,也產生能偵測任何竄改的驗證標籤。每個檔案都有獨一無二的初始化向量(IV),確保相同的檔案產生不同的密文。
解密
接收方的裝置用同一把金鑰(對稱)或對應的私鑰(非對稱)把密文還原。沒有正確的金鑰,密文和隨機資料無從分辨,也沒有數學捷徑。AES-256 有 2^256 種可能的金鑰,比可觀測宇宙中原子的估計數量還多。
端對端加密與其他加密模型的比較
並非所有加密都是端對端的。差異決定了誰可以存取你的資料。
傳輸中加密(TLS/SSL)
資料在你的裝置和伺服器之間傳輸時加密,伺服器收到後就會解密。這能防範傳輸途中的竊聽,但資料在伺服器上仍然可讀。每個主要雲端服務都使用傳輸加密,這只是最低門檻,不是什麼高標準。
靜態加密(伺服器端)
伺服器用自己管理的金鑰加密儲存的資料。這能防範伺服器硬體遭竊,但無法防範服務商本身、服務商的員工,或針對服務商的法律要求。iCloud、Google Drive 和 Dropbox 都使用伺服器端的靜態加密,金鑰由服務商持有。
端對端加密
資料在儲存服務商收到之前,就已在經授權的端點上加密。健全的設計不會讓明文內容金鑰落入服務商日常的伺服器端保管,因此即使儲存系統遭入侵,或有人依法要求調閱儲存的內容,得到的也只是密文,而不是可讀的照片。服務商仍可能交出密文和中繼資料、發布用戶端軟體,或營運復原和分享系統,這些都必須納入威脅模型。
| 加密模型 | 誰持有金鑰 | 服務商能讀取資料? | 能防範服務商? |
|---|---|---|---|
| 僅傳輸加密(TLS) | 伺服器 | 可以 | 否 |
| 靜態(伺服器端) | 伺服器 | 可以 | 否 |
| 端對端 | 經授權的端點或復原憑證持有者 | 無法只靠儲存的密文讀取 | 內容不受服務商持有的儲存金鑰影響 |
| 服務商看不到內容的用戶端加密 | 用戶端及公開說明的復原途徑 | 設計上無法存取明文內容 | 保護內容;中繼資料和對用戶端的信任問題仍在 |
照片儲存服務如何處理加密
各家照片儲存服務的加密模式差異很大。有些服務只宣傳「加密」卻不說明是哪種模式,可能讓使用者誤以為照片受到 E2EE 保護,實際上卻沒有。
iCloud 照片
Apple 在傳輸和靜態時使用加密。Apple 預設持有加密金鑰。有有效的法律請求時,Apple 可以提供 iCloud 照片資料。例外:Apple 自 2022 年 12 月起提供的進階資料保護(ADP),為 iCloud 照片增加了端對端加密。ADP 必須在設定中明確啟用。啟用後,Apple 無法存取 iCloud 照片資料。大多數使用者未啟用 ADP。
Google Photos
Google 使用傳輸中加密和伺服器端金鑰的靜態加密。Google 持有所有 Google Photos 資料(包括鎖定資料夾內容)的加密金鑰。Google 可以遵從法律資料請求。Google 不為 Google Photos 提供端對端加密選項。
Dropbox
傳輸中加密(TLS 1.2+)和靜態加密(使用 Dropbox 管理金鑰的 AES-256)。Dropbox 持有金鑰,可以存取你的檔案。Dropbox 曾發生資料外洩(2012 年,6,800 萬個帳號)。Dropbox Vault(付費功能)加上了 PIN 保護,但沒有端對端加密。
OneDrive
Microsoft 使用傳輸中加密和 Microsoft 管理金鑰的靜態加密。Microsoft 持有金鑰。OneDrive 個人保險庫增加了身分驗證(雙重認證),但不增加端對端加密,Microsoft 仍然可以存取資料。
Vaultaire
用戶端加密,服務商不持有金鑰。Vaultaire 在任何雲端上傳之前,就先在裝置上以 AES-256-GCM 加密照片和中繼資料。一把隨機主金鑰負責加密保險庫資料。由使用者圖形和裝置鹽值衍生的本機保險庫金鑰負責封裝這把主金鑰,另一把由圖形衍生的備份金鑰則保護私人 CloudKit 備份記錄。Vaultaire 不營運內容伺服器,也不會收到這些金鑰,因此無法把 CloudKit 記錄還原成明文。App、iOS 和已解鎖的裝置仍在信任邊界之內,而依法提出的要求仍可取得相關服務商持有的帳號或服務中繼資料。
| 服務 | 傳輸加密 | 靜態加密 | 端對端加密 | 服務商能存取 |
|---|---|---|---|---|
| iCloud 照片(預設) | 有 | 有(Apple 金鑰) | 無 | 可以 |
| iCloud 照片(啟用 ADP) | 有 | 有 | 有 | 不可以 |
| Google Photos | 有 | 有(Google 金鑰) | 無 | 可以 |
| Dropbox | 有 | 有(Dropbox 金鑰) | 無 | 可以 |
| OneDrive | 有 | 有(Microsoft 金鑰) | 無 | 可以 |
| Vaultaire | 有 | 有 | 用戶端加密備份,預設開啟 | 沒有明文內容金鑰;CloudKit 中繼資料仍在 |
端對端加密對照片的重要性
照片是特別敏感的資料,包含人臉、位置(GPS 中繼資料)、時間戳記,以及私密時刻的影像紀錄。照片圖庫一旦外洩,暴露的個人資訊幾乎比其他任何類型的資料都多。
資料外洩
服務商以伺服器端金鑰儲存照片時,一旦儲存系統和金鑰管理途徑都遭入侵,可讀內容就可能外洩。有了健全的 E2EE,只有儲存系統遭入侵時,外洩的只會是密文和服務保留的中繼資料。端點裝置遭入侵、復原憑證被盜、惡意用戶端軟體和金鑰服務的缺陷,仍是取得明文的其他途徑。
法律和政府存取
服務商可能被要求交出手上的紀錄。在 E2EE 下,這可能包括密文、帳號資訊、存取紀錄、記錄大小、時間和分享中繼資料,而不是可讀的照片內容。這類要求能否觸及裝置、復原方式、接收者或未來的用戶端行為,則是另一個法律和技術問題。
內部存取
能接觸服務商管理之儲存金鑰的員工或攻擊者,可能讀得到伺服器端加密的內容。當服務商沒有明文內容金鑰時,E2EE 就移除了這條直接透過儲存金鑰的途徑。但這不代表內部濫用絕對不可能,因為服務商可能掌控用戶端的發布、帳號狀態、中繼資料、分享或復原元件。
中繼資料保護
有些 E2EE 實作只加密檔案內容,檔名和日期等中繼資料則沒有保護。Vaultaire 以 AES-256-GCM 驗證加密保護檔頭、MIME 類型、索引、縮圖和其他保險庫中繼資料。儲存的密文長度和加密儲存檔的數量,仍可能讓能存取 App 容器的人看出結構資訊,例如估計有多少個保險庫存有檔案。
關於 E2EE 的常見誤解
「我的雲端儲存已加密,所以我的照片很安全。」伺服器端加密能防範伺服器硬體遭外部入侵,但無法防範服務商本身、法律要求或內部威脅。金鑰在服務商手上。
「HTTPS 表示我的照片是端對端加密的。」HTTPS(TLS)加密你的裝置和伺服器之間傳輸的資料。資料到達伺服器後就會被解密。HTTPS 加密的是傳輸管道,不是資料本身。
「端對端加密意味著沒有人可以看到我的照片。」E2EE 代表沒有金鑰的人看不到你的照片。如果有人知道你的密碼或金鑰,就能解密資料。金鑰管理和強密碼仍然非常重要。
「Apple/Google 看不到我的照片。」預設情況下,兩家公司都持有你存在雲端的照片的加密金鑰。Apple 提供可自行選擇開啟的進階資料保護。Google 則完全沒有為 Google Photos 提供 E2EE 選項。
Vaultaire 如何實作端對端加密
Vaultaire 使用分層 E2EE 方法:
- AES-256-GCM 加密所有檔案內容。每個檔案都有獨一無二的初始化向量。驗證加密能偵測竄改。
- PBKDF2 與 HMAC-SHA512 從使用者畫出的圖形和裝置鹽值衍生本機保險庫金鑰。運算成本會提高每次離線猜測的代價,但不會增加圖形的熵。這把保險庫金鑰負責驗證加密索引,並解開用於檔案資料的隨機主金鑰。
- 中繼資料同樣採用 AES-256-GCM,以驗證加密保護檔名、日期、尺寸、索引和縮圖。
- iOS Keychain 和資料保護 保護裝置鹽值和加密的復原資料庫。保險庫開啟期間,AES-GCM 運算和作用中的對稱金鑰都在 App 程序中。
- 提供者金鑰分離 代表 Wraxle 不會收到明文的保險庫、主金鑰、備份金鑰或復原金鑰。CloudKit 備份(預設開啟,可以關閉)、同步和分享存放的是密文記錄和加密的金鑰信封,但 Apple 仍看得到服務中繼資料。 Vaultaire 不需要 Vaultaire 身分帳號。
Vaultaire 把包含圖形在內的復原資訊,存放在 iOS Keychain 中一個以 AES-GCM 加密的資料庫。這些資訊不會寫入明文檔案,也不會傳送到任何 Vaultaire 帳號服務。如果可用的圖形、復原片語和已解鎖的裝置都沒有了,Vaultaire 也沒有任何服務端復原金鑰能恢復存取。
常見問題
端對端加密合法嗎?
各司法管轄區對加密、強制交出存取權和加密服務的法律規範各不相同,也可能改變。本指南說明的是技術模型,不是法律建議。若你的使用涉及邊境檢查、法院命令、受監管的紀錄或其他高風險情境,請查閱當地現行法律。
執法機構能破解端對端加密嗎?
攻擊很少需要窮舉整個 AES-256 金鑰空間。鑑識人員可以鎖定弱密碼或弱圖形、未鎖定的端點裝置、記憶體、復原片語、接收者、備份或實作缺陷。搭配高熵隨機金鑰、正確實作的 AES-256-GCM,設計上能抵禦直接搜尋金鑰,但這只是系統的一部分。
E2EE 和零知識加密有什麼區別?
E2EE 說的是明文在哪裡加密和解密,以及誰持有可用的內容金鑰。「零知識」常用在產品行銷上,指服務商看不到內容的加密,但不應照字面理解:服務可能沒有明文金鑰,卻仍看得到密文、帳號資料、檔案大小、時間、分享關係和其他中繼資料。請評估公開說明的金鑰和復原途徑,而不是只看標籤。
端對端加密會讓我的手機變慢嗎?
現代裝置能透過系統加密函式庫提供的硬體加速,有效率地處理 AES-256。在 iPhone 上,Vaultaire 透過 CryptoKit 在 App 程序中執行 AES-GCM。Apple 公開的 Secure Enclave API 並不是可以任意用來加密檔案的 AES-GCM 引擎。加解密的額外負擔取決於檔案大小和裝置,但設計上在日常使用時不會造成妨礙。
如果我遺失加密金鑰怎麼辦?
失去所有可用的解密和復原途徑,加密資料就無法救回。因此許多 E2EE 系統會使用復原片語、受信任的裝置、復原聯絡人、緊急備用資料或加密的金鑰信封。這些機制保住了存取權,但每一個也都成為安全模型的一部分。
總結
如果在上傳前就於經授權的端點上加密,端對端加密可以讓儲存服務商失去取得明文金鑰的途徑。這是有意義的保護,但不是對整個系統的保證。把私密照片交給某個服務之前,請先檢查內容金鑰的保管、復原、中繼資料、用戶端更新、端點安全和分享機制。
Vaultaire 在 iOS 上實作用戶端加密。你的照片和保險庫中繼資料,會在備份(預設開啟)或同步之前,先在裝置上以 AES-256-GCM 加密。Vaultaire 不會收到解密金鑰,也沒有營運能把這些加密記錄還原成你照片的伺服器。但這條服務商界線,無法讓遭入侵或已解鎖的 iPhone 變得可信。