什麼是零知識加密?簡明指南
零知識加密意味著服務商無法存取您的資料。
零知識加密是一種受提供者限制的體系結構,其中服務不持有解密儲存的使用者內容所需的金鑰。與供應商控制內容金鑰的標準雲端加密不同,用戶端加密可以在用戶裝置上保留該功能。法律請求、違規行為或內部人員仍可能洩漏提供者保留的密文、帳戶記錄、流量資料或其他元資料。 NIST 的金鑰管理指南使金鑰保管成為存取的核心,但用戶端應用程式、作業系統和解鎖裝置仍然是信任邊界的一部分。
零知識加密的運作原理
最簡單的類比:一個只有您設定密碼組合的酒店保險箱,酒店從不知道密碼,若您忘記密碼,酒店無法為您開啟保險箱。這不是設計上的缺陷,而是設計本身。
在技術術語中,零知識加密透過三個步驟運作:
設備上的金鑰派生。 使用者提供憑證,例如密碼、口令或模式。基於密碼的金鑰派生函數將其與鹽結合,在用戶設備上產生金鑰。良好分離的設計可以使用該金鑰來解鎖隨機內容加密金鑰,而不是直接使用人類憑證加密每個檔案。
傳輸前加密。所有資料在設備上使用衍生金鑰加密,然後才離開設備進行雲端儲存或備份,上傳的是加密輸出(密文)。
提供者不接收明文內容金鑰。 內容金鑰在使用過程中必須存在於客戶端記憶體中,也可以本機或遠端儲存在經過驗證的加密信封內。提供者可以儲存密文和包裝金鑰,而無需保留打開它們所需的用戶秘密。帳戶、流量、記錄大小和時間元資料可能仍然可見。
關鍵約束:如果使用者遺失所有有效憑證和復原路徑,則加密內容將無法存取。恢復仍可存在,但其密鑰保管必須說明。如果僅透過電子郵件重設即可恢復可讀內容,而無需舊設備批准、恢復短語、恢復金鑰或等效的用戶持有的機密,則提供者保留了返回明文的有效路徑。
零知識加密 vs. 其他類型的加密
「加密」出現在幾乎每個雲端服務的行銷材料中,各種類型之間的差異是實質性的。
| 類型 | 金鑰持有者 | 服務商可讀取資料 | 可抵抗服務商外洩 | 範例 |
|---|---|---|---|---|
| 無加密 | 不適用 | 是 | 否 | Dropbox(標準版) |
| 傳輸加密(TLS) | 服務商 | 是(在其伺服器上靜態) | 否 | Google 相簿 |
| 伺服器端靜態加密 | 服務商 | 是(他們持有解密金鑰) | 部分(視外洩範圍而定) | iCloud(標準) |
| 平台端對端加密 | 客戶端設備和帳戶恢復系統 | 不通過正常的服務路徑 | 取決於客戶端、復原和元資料暴露 | iCloud 具有進階資料保護 |
| 提供商盲客戶端加密 | 用戶端和用戶控制的恢復路徑 | 沒有提供者持有的明文內容金鑰 | 內容可以保持加密狀態;元資料和密文仍可能洩漏 | 加密保管庫和備份系統 |
「靜態加密」和「零知識加密」之間的區別是最常被混淆的。有了靜態加密,服務商使用他們控制的金鑰在其伺服器上加密您的資料,這可以防止伺服器硬體被實體竊取,但無法防止服務商讀取您的資料、政府傳票要求資料和金鑰,或內部威脅。服務商擁有解密能力。有了零知識加密,服務商永遠沒有解密能力。他們伺服器上的加密資料對他們和任何外部攻擊者一樣不透明。
為何零知識加密很重要
資料外洩每年影響數十億條記錄
身分盜竊資源中心報告稱,2023 年美國發生了 3,205 起資料外洩事件,影響了約 3.53 億人。當提供者持有內容金鑰時,一次外洩可能會暴露儲存的資料和解密資料的路徑。提供者盲加密將這些資產分開:伺服器漏洞仍然可能暴露密文和元數據,但不會暴露提供者持有的明文內容金鑰。憑證猜測和客戶妥協仍然是不同的風險。
法律強制是真實的威脅
可能會要求提供者揭露他們保留的資料。提供者盲設計可以限制對密文和可用帳戶、流量、計費或服務元資料的回應,因為提供者不持有明文內容金鑰。另一方是否可以獲得使用者憑證、利用客戶端或強制揭露是一個單獨的問題。 Apple 推出了進階資料保護 iOS 16.2 作為端對端加密的可選擴展 iCloud 數據。
「信任我們」不是安全架構
伺服器端加密依賴於提供者控制的金鑰和策略。提供者盲加密改變了金鑰保管,因此記錄的服務路徑缺少明文內容金鑰。這是一個更強的架構邊界,但其力量仍然取決於正確的客戶端程式碼、經過身份驗證的軟體交付、聲音恢復、安全設備以及符合規範的實現。
密碼學背後的 NIST 標準
AES-256-GCM 是零知識實作中最常用的密碼,由美國國家標準與技術研究院在 SP 800-38D(2007 年)中標準化。「256」指的是位元的金鑰長度,256 位元金鑰有 2^256 個可能值,一個如此巨大的數字,暴力破解它所需的能量超過太陽在其剩餘生命中產生的能量。
AES-GCM 由美國國家標準技術研究院標準化 SP 800-38D (2007)。 AES 本身是由 NIST 在 2001 年透過公開競賽選出的。 AES-256 指的是 256 位元密鑰。對均勻隨機金鑰進行窮舉搜尋在計算上是不可行的,但即使金鑰導出函數輸出 256 位,人類密碼或模式也可以提供少得多的熵。
PBKDF2 (基於密碼的密鑰導出函數2),在中指定 RFC 8018,透過重複的偽隨機函數呼叫將人類提供的憑證轉換為固定長度的密鑰材料。更多的迭代會增加每次猜測的成本。它們不會為可預測的模式或密碼添加熵,因此憑證選擇和離線驗證仍然很重要。
Vaultaire 如何實現提供者-金鑰分離
Vaultaire 是一個基於零知識架構的 iPhone 保險庫 App,以下是每個層面的實作方式。
華爾泰爾 是一個客戶端加密保管庫 iPhone。從產品意義上來說,通常被宣傳為“零知識”,其更狹義的記錄聲稱是 Wraxle 不接收明文保險庫內容或解密它所需的金鑰。以下是每一層的實施和剩餘信任邊界的工作方式。
密鑰推導。 使用者在 25 個點的 5x5 網格上繪製圖案。 PBKDF2-HMAC-SHA512 將該序列與一個設備範圍的序列結合起來 Keychain salt 進行 600,000 次迭代以獲得 256 位元保管庫金鑰。保險庫金鑰對加密索引進行驗證並包裝一個單獨的隨機 256 位元主金鑰。恢復資訊(包括模式)儲存在 AES-GCM 加密的 Keychain 資料庫而不是純文字檔案或 Vaultaire 帳戶。
文件加密。 每個匯入的檔案都經過加密 AES-256-GCM 在隨機主密鑰下。 CryptoKit 使用新的隨機數來建立經過驗證的密封盒,並且流格式為每個有序列區塊衍生一個獨特的隨機數。
元資料加密。 檔案名, MIME 類型、日期、索引記錄和縮圖資料也受到保護 AES-256-GCM。 Vaultaire 不使用 ChaCha20 作為保管庫元資料。
密鑰管理。 Vaultaire 像平常一樣儲存其設備鹽分和加密復原資料庫 iOS Keychain 受保護的通用密碼項目 WhenUnlockedThisDeviceOnly 無障礙等級。模式派生的保管庫金鑰和隨機主金鑰透過以下方式在應用程式記憶體中處理: CryptoKit。鎖定會降低活動鍵狀態,但 Swift 和 iOS 不支援保證每個臨時副本都被覆蓋。
如何判斷 App 是否使用真正的零知識加密
三個不超過一分鐘的測試:
忘記密碼測試。 如果僅透過電子郵件重設即可恢復可讀數據,請詢問提供者持有的哪種機制恢復了有效內容金鑰。使用者保留的恢復短語、舊設備批准和提供者控制的重置是不同的設計。
新設備測試。 如果新設備恢復了可讀內容,請識別授權它的秘密或可信任設備。僅帳戶登入就表示了提供者控制的復原路徑;復原短語加上加密的備份記錄可以保持提供者金鑰分離。
帳戶測試。 電子郵件地址或電話號碼將身分與服務元資料連結起來,但它本身並不能證明提供者可以解密內容。檢查金鑰層次結構、復原設計、用戶端程式碼或稽核、元資料策略以及經過驗證的密文是否允許離線憑證檢查。
這些測試是過濾器,而不是安全證明。一致的規範應該命名內容金鑰、解鎖金鑰、鹽、衍生參數、經過驗證的加密格式、隨機數規則、恢復信封、本地秘密儲存、雲元資料以及明文金鑰存在的點。獨立審查是比產品標籤更有力的證據。
常見問題
零知識加密和端對端加密一樣嗎?
兩者重疊但不完全相同。端對端加密(E2EE)意味著資料在傳送者的設備上加密,只在接收者的設備上解密。零知識加密意味著服務商無法存取資料。服務可以是端對端加密的,但如果服務商在某個時間點生成或存取了金鑰,就不是零知識的。零知識加密是更嚴格的標準。
使用零知識加密時忘記密碼會怎樣?
如果每個有效憑證和恢復信封遺失,您的資料將永久無法存取。提供者控制的重置或主密鑰會削弱提供者邊界,因此必須單獨設計復原。 華爾泰爾 產生一個包含 9 個單獨單字的自訂短語,其派生的復原金鑰可開啟加密的保管庫金鑰信封。該短語不會重新產生或編碼密鑰,新設備恢復也需要匹配的加密密鑰 CloudKit 記錄。
執法機關可以存取零知識加密的資料嗎?
提供者可能必須揭露儲存的密文及其保留的帳戶、流量、計費或服務元資料。如果沒有提供者持有的明文內容金鑰,該提供者就無法使用其正常服務路徑來解密內容。設備利用、憑證發現、恢復副本和強制揭露是不同的途徑,其合法性和有效性因司法管轄區和事實而異。
零知識加密比一般加密慢嗎?
AES-256-GCM 性能並不取決於誰掌握鑰匙。基於密碼的推導增加了解鎖期間的工作量,其持續時間取決於演算法、迭代次數、設備和實作。應用程式應該衡量支援的硬體上的成本,並平衡響應能力與每個離線猜測所施加的成本。
零知識加密與 Apple 的進階資料保護相比如何?
Apple 的進階資料保護(ADP),在 iOS 16.2 中引入,將端對端加密擴展到大多數 iCloud 資料類別。啟用 ADP 後,Apple 無法存取受保護的資料。與專用零知識 App 的主要區別:ADP 是選擇性啟用(預設關閉)、需要 Apple ID,並且僅在 Apple 的生態系統內保護資料。零知識保險庫 App 如 Vaultaire 獨立於 Apple 的基礎設施運作,不需要帳號,並新增了 ADP 不提供的合理否認性和脅迫模式等功能。
總結
零知識加密最好被視為提供者金鑰分離聲明:服務不持有解密儲存內容所需的明文金鑰。這比提供者控制的金鑰下的伺服器端加密更強,但這並不是說金鑰只存在於記憶體中,元資料消失,或每個客戶端和裝置的妥協都被擊敗。透過其關鍵層次結構、復原設計、實施和獨立審查來判斷產品。
Apple 的高級資料保護 (ADP) 於 iOS 16.2,將端對端加密擴展到其他 iCloud 類別並使用 Apple 帳戶恢復模型。 Vaultaire 預設將保管庫內容保存在本機,且不需要 Vaultaire 身分帳戶;可選的備份、同步和共用使用用戶端加密 CloudKit 記錄在使用者的 Apple 帳戶。 Vaultaire 還提供模式分離的金庫存取和 脅迫模式,其存儲和恢復限制中描述 合理否認文檔.