「你的資料已加密」是主打隱私的產品最常喊的口號之一,但單憑這句話卻往往也是最沒用的。加密描述的只是一種機制:用一把鑰匙把可讀資料變成不可讀資料。它隻字未提之後誰持有那把鑰匙,而正是這個細節,幾乎決定了到底是誰真正被鎖在了門外。「零知識 (Zero-knowledge)」正是為了把這個關鍵細節做對而誕生的術語。
核心理念
零知識加密意味著,營運該服務的公司永遠無法獲取解密您資料所需的金鑰。不是「選擇不去偷看」,而是從系統結構上無法做到,因為金鑰永遠不會離開您的裝置,也從未被傳輸到他們的伺服器上。金鑰通常衍生自只有您知道的資訊:密碼、PIN 碼或圖案,這些資訊在本地端經過金鑰衍生過程處理,最終只有結果(加密的密文)才會離開您的掌控。
這很重要,因為「我們加密您的資料」和「我們無法讀取您的資料」是兩個截然不同的聲明,而大多數產品只做到了第一個。一家公司可以在其伺服器上使用諸如 AES-256 等強大的演算法加密檔案,同時仍然自己掌握解密金鑰。這意味著這種加密能把外部攻擊者擋在門外,但對於防範該公司自身、針對該公司的駭客攻擊或向該公司下達的法律指令,卻毫無用處。零知識恰恰是為了堵住這個漏洞而生的。
零知識 vs. 端到端加密
這兩個術語經常被混著用,但它們提供的保證並不完全一樣。端到端加密通常指的是資料在傳輸過程中被加密,這樣中繼伺服器在資料傳輸時就無法讀取它。這確實是一種實實在在的保護,但它對資料到達目的地後會發生什麼隻字未提;許多端到端加密系統在資料到達後仍然會進行解密並儲存明文,或者在伺服器端儲存金鑰的託管副本。
零知識是更強大、更完整的版本:無論資料是在傳輸中還是靜止狀態,服務提供商都拿不到金鑰。一個真正的零知識系統會對靜止資料進行加密,這意味著儲存在那裡的檔案對服務提供商來說將無限期地保持不可讀取狀態,而不僅僅是在上傳期間。
它防範的是什麼
零知識設計的價值,恰恰體現在那些僅僅做了表面加密的系統會崩潰的場景中:
- 伺服器被攻破。 如果攻擊者侵入了某家公司的伺服器,而該公司掌握著使用者的金鑰,那麼攻擊者就有可能獲得解密使用者資料的途徑。如果該公司從未掌握過金鑰,那麼這種入侵只能得到無法讀取的密文。
- 法律指令。 傳票或法院禁令只能強迫一家公司交出它實際擁有的東西。零知識服務商可以交出加密檔案,並如實聲明他們也打不開,因為他們真的打不開。
- 內鬼。 在非零知識系統中,擁有伺服器存取權限的員工也許能夠直接觸及使用者資料。但在零知識系統中,伺服器端根本沒有任何可以觸及的實質內容。
以上這些,都不需要您去相信這家公司的「好意」。這是系統架構本身的屬性,這也正是為什麼它比隱私權政策中的一紙空頭承諾更有價值的原因。
如何辨別聲明的真偽
有一個實用的測試,可以刺穿大多數行銷術語的偽裝:看看有沒有「忘記密碼」或帳號恢復流程能讓你重新存取你的加密資料。如果一家公司能夠重設你的密碼並讓你重新進入檔案,說明他們掌握了部分金鑰——無論他們是否把這產品叫做零知識。一個真正零知識的產品是做不到這點的。如果您的密碼或 PIN 碼遺失了,並且沒有獨立生成的、保存在裝置上的恢復方法,那麼資料也就一起遺失了。這是設計使然,因為正是這個同樣的屬性,把除了你之外的所有人都擋在了門外。
這也是為什麼零知識產品會依賴於在本地端生成的恢復短語,而不是發送一封密碼重設郵件。恢復短語也永遠不會接觸伺服器;它只是金鑰衍生材料的第二份、離線的副本,並且只有您掌握著它。
Vaultine 是如何應用這一點的
Vaultine 的保險庫加密金鑰源自您自己的 PIN 碼或圖案,完全在您的裝置上推算並使用,絕不發送到伺服器(參閱為什麼不用註冊帳號的保險庫應用程式其實更安全,了解這同時也消除了註冊帳號的需求)。每個檔案在接觸儲存空間之前,都會使用其獨有的 AES-256 金鑰進行加密。包括可選的 Dropbox 備份功能在內,檔案都會先在裝置本地端加密,因此,任何到達 Dropbox 的資料都已經是密文,無論 Dropbox 自身的加密措施是好是壞(關於這個單獨的問題,參閱Dropbox 的加密足以保護敏感檔案嗎?)。
如果您遺失了 PIN 碼且沒有保存恢復短語,Vaultine 無法為您找回檔案。這不是服務上的缺失;這是為了防止資料外洩、傳票或內鬼觸碰您檔案的同一個設計,所必然帶來、無法避免的結果。
總結
「已加密」告訴你,這裡有一把鎖。「零知識」告訴你,誰沒有這把鑰匙。這兩個聲明聽起來很像,在行銷文案中幾乎被當成同義詞使用,但只有後者才真正決定了這家公司本身是否被擋在了你的資料之外。在相信任何一個聲明之前,先檢查一下有沒有「密碼重設」流程。
Vaultine 的加密金鑰永遠不會離開您的裝置。前往 vaultine.app,免費使用前 10 個檔案。



