什麼是零知識加密?簡明指南

什麼是零知識加密?簡明指南

零知識加密意味著服務商無法存取您的資料。

零知識加密是一種密碼學架構,服務商無法存取用戶資料,因為加密金鑰完全在用戶設備上衍生和儲存,從不傳輸到服務商的伺服器。與服務商持有金鑰的標準雲端加密不同,零知識加密意味著即使收到法院命令、發生資料外洩或有惡意員工,服務商也沒有任何東西可以交出。NIST 金鑰管理指南(SP 800-57)確立了金鑰保管決定資料存取的原則,零知識加密將這一原則推向其邏輯結論。

零知識加密的運作原理

最簡單的類比:一個只有您設定密碼組合的酒店保險箱,酒店從不知道密碼,若您忘記密碼,酒店無法為您開啟保險箱。這不是設計上的缺陷,而是設計本身。

在技術術語中,零知識加密透過三個步驟運作:

  1. 在設備上衍生金鑰。用戶提供憑證(密碼、密語或圖案),金鑰衍生函數(通常是 PBKDF2 或 Argon2)將此憑證與唯一的密碼學鹽值結合,生成加密金鑰,這完全在用戶的設備上發生。

  2. 傳輸前加密。所有資料在設備上使用衍生金鑰加密,然後才離開設備進行雲端儲存或備份,上傳的是加密輸出(密文)。

  3. 服務商從不看到金鑰。加密金鑰只在主動使用期間存在於設備的記憶體中,從不傳輸到服務商的伺服器。服務商儲存的是與隨機資料無法區分的加密區塊。

關鍵限制:若用戶失去憑證且沒有復原短語,資料永久無法存取。沒有在沒有獨立儲存的復原機制下有效的「忘記密碼」流程。若服務提供透過電子郵件重設密碼並讓您的資料重新出現,該服務不使用零知識加密,它持有您的金鑰。

零知識加密 vs. 其他類型的加密

「加密」出現在幾乎每個雲端服務的行銷材料中,各種類型之間的差異是實質性的。

類型 金鑰持有者 服務商可讀取資料 可抵抗服務商外洩 範例
無加密 不適用 Dropbox(標準版)
傳輸加密(TLS) 服務商 是(在其伺服器上靜態) Google 相簿
伺服器端靜態加密 服務商 是(他們持有解密金鑰) 部分(視外洩範圍而定) iCloud(標準)
服務商管理的端對端加密 服務商生成,用戶儲存 技術上否,但服務商在金鑰生成時有存取 部分 iCloud 進階資料保護
零知識加密 僅用戶(在設備上衍生) 否,數學上不可能。 是。沒有用戶金鑰,加密區塊無用。 Signal、Proton Mail、Vaultaire

「靜態加密」和「零知識加密」之間的區別是最常被混淆的。有了靜態加密,服務商使用他們控制的金鑰在其伺服器上加密您的資料,這可以防止伺服器硬體被實體竊取,但無法防止服務商讀取您的資料、政府傳票要求資料和金鑰,或內部威脅。服務商擁有解密能力。有了零知識加密,服務商永遠沒有解密能力。他們伺服器上的加密資料對他們和任何外部攻擊者一樣不透明。

為何零知識加密很重要

資料外洩每年影響數十億條記錄

身份竊盜資源中心報告,2023 年美國發生 3,205 次資料入侵,影響約 3.53 億人。當持有加密金鑰的服務商遭到入侵時,攻擊者可能同時獲得加密資料和解密金鑰。零知識架構完全消除了這種風險,被入侵的伺服器只包含在計算上不可行解密的密文。

法律強制是真實的威脅

多個司法管轄區的政府機關可以強制服務商交出儲存的資料。若服務商持有加密金鑰,他們必須遵從。在零知識架構下,服務商對傳票的回應是加密區塊,沒有用戶憑證就無用。Apple 的 iCloud 進階資料保護朝這個方向邁進,但在 iOS 16.2(2022 年 12 月)才引入,且預設不啟用。

「信任我們」不是安全架構

標準加密依賴服務商不存取您的資料的承諾。零知識加密以數學保證取代了這個承諾。即使服務商想要、即使員工叛變、即使他們被具有不同隱私價值觀的公司收購,服務商也無法存取資料,架構強制執行了這個限制。

密碼學背後的 NIST 標準

AES-256-GCM 是零知識實作中最常用的密碼,由美國國家標準與技術研究院在 SP 800-38D(2007 年)中標準化。「256」指的是位元的金鑰長度,256 位元金鑰有 2^256 個可能值,一個如此巨大的數字,暴力破解它所需的能量超過太陽在其剩餘生命中產生的能量。

GCM(伽羅瓦/計數器模式)添加了認證加密,意味著解密過程可以偵測任何對密文的篡改。若加密資料的一個位元被更改,解密失敗而不是產生損壞的輸出,這防止攻擊者在不被偵測的情況下操縱加密資料。

PBKDF2(基於密碼的金鑰衍生函數 2),在 RFC 8018 中指定,透過重複雜湊將用戶提供的憑證轉換為加密金鑰。執行雜湊函數數十萬次使每次密碼猜測在計算上都很耗費,將簡單的圖案或密碼轉換為抵抗暴力破解攻擊的金鑰。

Vaultaire 如何實現零知識加密

Vaultaire 是一個基於零知識架構的 iPhone 保險庫 App,以下是每個層面的實作方式。

金鑰衍生。用戶在 25 個點的 5x5 格點上繪製圖案,按順序連接的點序列透過 PBKDF2 搭配 HMAC-SHA512 和每個保險庫唯一的密碼學鹽值進入,輸出是 256 位元的 AES 加密金鑰,圖案不以任何形式儲存在設備上(不是雜湊、不是表示形式、不是任何形式)。

檔案加密。每個匯入的檔案使用衍生金鑰和每個檔案唯一的隨機生成初始向量(IV)以 AES-256-GCM 加密,相同的檔案產生不同的密文,因為 IV 不同。

元資料加密。檔案名稱、建立日期和縮圖資料使用 ChaCha20 單獨加密,這是與檔案加密(AES-256-GCM)不同的密碼,提供密碼學多樣性並消除快取計時側通道攻擊。

金鑰管理。Apple Secure Enclave 在具有自己加密記憶體的專用硬體協處理器中儲存金鑰材料。Vaultaire 關閉或用戶切換 App 時,金鑰從 App 記憶體中清除。

無保險庫登錄表。沒有資料庫列出保險庫、沒有計數、沒有名稱,每個圖案開啟不同的保險庫,App 本身無法確定存在多少個保險庫。查看完整的安全架構圖案加密說明

如何判斷 App 是否使用真正的零知識加密

三個不超過一分鐘的測試:

  1. 忘記密碼測試。若 App 可以透過電子郵件重設您的密碼並且您的資料重新出現,App 持有您的加密金鑰,不是零知識的。

  2. 新設備測試。若您在新設備上登入,您的資料在沒有從舊設備傳輸金鑰或輸入復原短語的情況下出現,伺服器擁有您的金鑰,不是零知識的。

  3. 帳號測試。若 App 需要電子郵件地址或電話號碼,服務商就有了您的身份與您的資料之間的連結。這本身不一定是失格,但結合上述任何一項,就確認了服務商可以存取您的資料。

通過全部三項測試的 App:Signal、Proton Mail、Standard Notes、Vaultaire。至少失敗一項的 App:大多數雲端儲存服務、App Store 上大多數「保險庫」App。

常見問題

零知識加密和端對端加密一樣嗎?

兩者重疊但不完全相同。端對端加密(E2EE)意味著資料在傳送者的設備上加密,只在接收者的設備上解密。零知識加密意味著服務商無法存取資料。服務可以是端對端加密的,但如果服務商在某個時間點生成或存取了金鑰,就不是零知識的。零知識加密是更嚴格的標準。

使用零知識加密時忘記密碼會怎樣?

您的資料將永久無法存取。沒有主金鑰、沒有後門,也沒有在沒有單獨儲存的復原短語的情況下有效的復原流程。這是根本的取捨:絕對的隱私需要絕對的責任。一些零知識 App(包括 Vaultaire)在保險庫建立時生成一個復原短語,若主要憑證遺失可以重新生成加密金鑰。

執法機關可以存取零知識加密的資料嗎?

執法機關可以強制服務商交出儲存的資料。有了零知識加密,服務商交出的資料是一個沒有用戶金鑰就無用的加密區塊。執法機關是否可以強制用戶提供金鑰是一個因司法管轄區而異的獨立法律問題。美國法院普遍認定強制生物特徵解鎖(Face ID、指紋)是被允許的,而強制密碼/圖案披露在第五修正案下更具爭議。

零知識加密比一般加密慢嗎?

加密和解密操作是相同的,AES-256-GCM 以相同的速度運行,無論誰持有金鑰。唯一增加的成本是金鑰衍生:在現代 iPhone 上執行 PBKDF2 數十萬次迭代需要約 0.5-2 秒,這在保險庫解鎖時發生一次,而非每個檔案。在實踐中,用戶不會感覺到速度差異。

零知識加密與 Apple 的進階資料保護相比如何?

Apple 的進階資料保護(ADP),在 iOS 16.2 中引入,將端對端加密擴展到大多數 iCloud 資料類別。啟用 ADP 後,Apple 無法存取受保護的資料。與專用零知識 App 的主要區別:ADP 是選擇性啟用(預設關閉)、需要 Apple ID,並且僅在 Apple 的生態系統內保護資料。零知識保險庫 App 如 Vaultaire 獨立於 Apple 的基礎設施運作,不需要帳號,並新增了 ADP 不提供的合理否認性脅迫模式等功能。

總結

零知識加密是服務商在數學上無法存取用戶資料的架構,因為加密金鑰永遠不離開用戶的設備。它與標準加密、靜態加密甚至某些形式的端對端加密的區別只有一個關鍵:服務商無法存取資料的不可能性是由數學而非政策強制執行的。取捨(失去金鑰就失去資料)不是錯誤,而是使保證真實的機制。

閱讀安全架構