上鎖保險庫解決不了的問題
想像你走廊裡有一個保險箱。無論鎖多好,保險箱本身就在宣告:裡面有貴重物品。看到它的任何人都可以要求打開——小偷、施暴的伴侶、檢查站的官員。加密本身就是那個走廊裡的保險箱。內容受保護;內容的存在卻在廣播。
可否認儲存把保險箱從走廊移走了。正確實作後,沒有可見的鎖箱,沒有鎖箱的數量記錄,也沒有辦法證明存在一個。「打開剩下的」這一要求會失敗——不是因為你抵抗了它,而是因為「剩下的」無法被證明存在。
可否認保險庫如何運作
三個屬性必須同時成立。第一,每個保險庫是獨立的:每個都用從各自 PIN、圖形或密碼短語衍生的金鑰加密,因此打開一個不會告訴你關於其他任何保險庫的資訊。第二,沒有登錄檔:任何地方都不儲存保險庫的索引、列表或計數器——軟體本身不知道有多少個存在。第三,密文看起來像雜訊:未揭示的保險庫與未使用的隨機資料無法區分,無論是肉眼瀏覽還是鑑識工具分析。
結果顛覆了通常的解鎖儀式。在 Sealby 中,PIN 不是「解鎖應用程式」——它選擇一個保險庫。正確的 PIN 揭示其保險庫;任何其他輸入都會以完全相同的方式,開啟一個全新的空保險庫。就連輸錯 PIN,也和開啟一個一直都是空的保險庫無從區分,因為兩者本來就是同一回事。
簡短的歷史
這個想法比智慧型手機還要古老。桌面工具——最著名的是 TrueCrypt 及其後繼專案——提供了隱藏磁碟區:在另一個容器的可用空間內的加密容器,兩個密碼揭示兩個不同的現實。研究者將這一屬性形式化為可否認加密。最近改變的是風險的所在:最私人的裝置現在是你口袋裡的手機,而它正是人們真正被施壓要求解鎖的東西。
可否認性不是什麼
誠實的局限,坦率地說明。可否認性保護的是靜態資料免於檢查。如果有人看著你輸入 PIN、你自己確認了保險庫的存在,或者明文副本存在於其他地方——同步的照片庫、聊天記錄、做保險庫之前的備份,它都無法保護你。而且它不是違法的藉口;它是在不應該由壓力來決定的情況下保護私人生活隱私的一種方式。