照片保險箱 App 是什麼,又如何運作
一個簡單的定義、這類 App 之間真正重要的那個差別,以及在加密保險箱裡,照片從輸入到檢視之間發生了什麼。
照片保險箱 App 會把照片和影片存放在主要圖庫之外,用它自己的鎖保護。真正重要的差別在於:App 是否為檔案加密,讓沒有由你的密碼產生的金鑰就無法讀取;還是只在一般檔案前面放一個 PIN 碼畫面。從外表看,兩者一模一樣:一個圖示、一個鎖定畫面、一格格的照片。以下說明加密保險箱實際上如何處理一張照片、它能防範什麼,以及它無法取代什麼。
1. 定義,以及唯一重要的差別
照片保險箱 App 會把照片和影片存放在它自己的空間,和「照片」App 分開,而且需要它自己的密碼或 PIN 碼才能打開。定義就只有這樣。但它涵蓋了兩種表現截然不同的設計:
- 會加密的保險箱。每個檔案都以一把由你的密碼產生的金鑰加密。沒有那把金鑰,就無法讀取儲存空間裡的內容。拿到已解鎖手機或手機儲存空間副本的人,什麼也看不到。
- 只鎖住畫面的保險箱。檔案以一般影像的形式存放在 App 的儲存空間中。鎖只是 App 前面的一個畫面。拿到儲存空間副本的人,看到的就是一般的影像。
這類 App 的其他一切,例如偽裝、誘餌、入侵警報、雲端同步,都建立在這兩種設計之一上面。我們的隱藏照片的四種 App 類型指南有更詳細的說明。本頁說明的是第一種,因為「保險箱」這個詞讓人聯想到的就是它。
2. 照片在加密保險箱裡會經歷什麼
我們以 Obscura Photo Vault 為實例,因為這是我們能確切描述其設計、也能附上技術文件連結的 App。
- 你設定一組密碼。App 會把它送進一個刻意放慢的程序,也就是混入隨機資料、運算 600,000 次的 PBKDF2,藉此產生一把金鑰。這把金鑰不會直接解鎖照片,而是解鎖第二把隨機金鑰,保險箱的資料實際上是用這第二把金鑰加密的。保險箱不會儲存你的密碼。如果你開啟 Face ID,iOS 會把密碼的副本存放在它的鑰匙圈中,並以 Face ID 保護。這只是為了方便,不是第二把金鑰。
- 你加入一張照片。App 會把照片從圖庫讀進記憶體,並在那裡以 AES-256-GCM 加密,之後才會寫入它自己的儲存空間。存到手機上的,是加密後的檔案、加密後的縮圖,以及一筆記錄名稱和相簿的加密資料庫項目。「照片」中的原始照片不會被更動。
- 你鎖定保險箱。金鑰會從記憶體中清除。留在手機上的,只有加密後的資料,以及一份已鎖定、沒有密碼就毫無用處的金鑰副本。
- 你解鎖並查看。密碼會再次被轉換成金鑰,第二把金鑰被解鎖,檔案在記憶體中解密後顯示。影片同樣在記憶體中解密,大型檔案則在播放時一段一段解密,所以不會有任何可讀取的影片副本寫入手機。
- 你刪除原始照片。這是 App 無法替你完成的步驟。在你從「照片」刪除它、清空「最近刪除」,並等 iCloud 同步完成之前,原始照片都還留在原處。
名稱中的 GCM 比一般人想像的更重要。它表示每個檔案都帶有一個驗證值,所以在手機上被竄改過的檔案會無法開啟,而不是悄悄地以錯誤的資料打開。這些加密術語的意思一文用白話逐一說明。
3. 它能防範什麼,不能防範什麼
| 情境 | 加密保險箱 |
|---|---|
| 有人滑看你已解鎖的手機 | 有防範;照片不在「照片」裡 |
| 小工具、「回憶」或搜尋結果 | 有防範;原因同上 |
| 知道你 iPhone 密碼的人 | 有防範;保險箱有自己的密碼 |
| 拿到儲存空間副本或備份的人 | 有防範;對方拿到的是加密後的資料 |
| 知道你保險箱密碼的人 | 無法防範 |
| 保險箱開啟時手機遭到入侵 | 無法防範;金鑰和可讀取的照片都在記憶體中 |
| 截圖、螢幕錄影、有人從你背後偷看 | 無法防範;這些都發生在照片解密之後 |
| 原始照片仍在「照片」、iCloud 或你傳出的訊息中 | 無法防範;保險箱只加密它自己的副本 |
| 有人注意到這個 App 的存在 | 無法防範;偽裝改變的是圖示,而不是記錄 |
「有防範」表示這種設計能應付該情境,不代表任何 App 不會受到攻擊。那是另一個問題,任何產品頁面都無法給出定論。
表格的下半部才是會影響決定的部分,而且對任何一款保險箱 App 來說都一樣。願意列出這些的開發者,等於告訴你他們想清楚了。我們的列在安全性白皮書第 11 節。這類 App 到底安不安全,另有一篇照片保險箱 App 安全嗎?專門回答。
4. 保險箱無法取代的東西
「已隱藏」相簿。大多數使用保險箱的人,仍然會用「已隱藏」相簿來放其他照片。保險箱用來存放少數幾張「如果已解鎖的手機落入別人手中就會出問題」的照片;「已隱藏」相簿則用來存放大量只是不該在小工具裡跳出來的照片。請看兩者的並列比較,以及「已隱藏」相簿能防範與不能防範的一切。
備份。手機上的加密保險箱只是一份副本,存在一支手機上。如果手機遺失,而保險箱從未輸出過,照片就沒了。沒有伺服器的保險箱,需要你自己把輸出的備份存放在某個地方。有伺服器的保險箱,則需要你知道金鑰在誰手上。
你的記憶。如果保險箱無法重設密碼,其他任何東西也都辦不到。能應付這點的兩個習慣,寫在忘記保險箱密碼會怎樣這篇指南裡。
5. 常見功能說明
使用 Face ID 或 Touch ID 解鎖
這是捷徑,不是第二把金鑰。在設計良好的保險箱中,它會從 iOS 鑰匙圈取出你儲存的密碼,而不是取代密碼。當手機新增了臉孔或指紋時,iOS 會取消這個捷徑。
誘餌保險箱
用另一組密碼打開的第二個保險箱,裡面放著你不介意給人看的照片。做得好的話,誘餌是一個真正的保險箱,App 不會顯示清單或數量,手機上的檔案也不會透露哪些保險箱正在使用。如果只是在設定檔裡加一個標記,那個標記本身就是答案。無論哪一種,都有已知的限制。我們的限制寫在照片保險箱中的合理推諉。
偽裝圖示
App 看起來像計算機或工具程式。這改變的是主畫面上一眼看到的東西,對檔案的儲存方式毫無影響。它能應付匆匆一瞥,卻擋不住仔細檢查。
資料夾密碼
為保險箱內的資料夾另外設定的密碼。在加密的設計中,這代表以資料夾密碼產生的金鑰再加上一層加密,所以資料夾的內容需要兩組密碼才能打開。
加密輸出
一個包含整個保險箱的單一檔案,加密強度和保險箱本身相同,你可以在另一台裝置上輸入。沒有伺服器的保險箱,就是靠這個度過手機遺失的情況。只有在你測試過它能成功輸入之後,它才算得上是備份。
6. 常見問題
照片保險箱 App 是什麼?
一種把照片和影片存放在主要照片圖庫之外、用它自己的鎖保護的 App。真正重要的差別在於:App 是否為檔案加密,讓沒有由你的密碼產生的金鑰就無法讀取;還是只在一般檔案前面放一個 PIN 碼畫面。從外表看,兩者一模一樣。
照片保險箱 App 如何運作?
你從圖庫加入一張照片,App 會把它複製到自己的儲存空間。在加密保險箱中,這份副本在那一刻就會以由你的密碼產生的金鑰加密,並以加密狀態留在手機上。要查看時,你先解鎖保險箱。App 會在記憶體中把檔案解密、顯示出來,並在保險箱鎖定時丟棄可讀取的副本。在你刪除之前,圖庫中的原始照片不會被更動。
照片保險箱和「已隱藏」相簿有什麼不同?
「已隱藏」相簿改變的是照片在「照片」App 中出現的位置,而且用你的 iPhone 密碼就能打開。照片保險箱則把照片完全移出「照片」App,並用它自己的密碼打開。如果保險箱有加密,這組密碼也是讀取檔案的唯一途徑。「已隱藏」相簿仍會同步到 iCloud,保險箱則自行決定是否有任何東西離開手機。
照片保險箱 App 把照片存在哪裡?
存在手機上它自己的儲存空間裡,和你的照片圖庫分開。在加密保險箱中,這個儲存空間存放的是加密後的資料,而不是影像。以帳號為基礎的保險箱,還會在開發者的伺服器上保留一份副本,這正是同步和重設密碼得以實現的原因。App Store 頁面會告訴你這是哪一種設計,因為需要帳號這件事一定會註明。
誘餌保險箱是什麼?
用另一組密碼打開的第二個保險箱,裡面放著你不介意給人看的照片。在設計良好的情況下,誘餌是一個真正的保險箱,而不是假的,而且 App 不會顯示保險箱清單或數量。所以打開誘餌保險箱,不會透露是否還有其他保險箱存在。它有已知的限制,認真的開發者會把這些限制公開。
資料來源
- Obscura Photo Vault 安全性白皮書,第 2 至 5 節,關於基礎演算法、金鑰階層與保險箱位置
- 安全性白皮書第 11 節,關於威脅模型範圍之外的情況
- Apple Support: Hide photos on your iPhone, iPad, Mac, or Apple Vision Pro with the Hidden album
- NIST FIPS 197,進階加密標準(Advanced Encryption Standard)
Obscura Photo Vault
iPhone 上的加密照片保險箱。照片和影片會在你的裝置上以 AES-256-GCM 加密。沒有帳號、沒有伺服器、沒有分析工具,App 也不需要網路連線。如果你忘記密碼,沒有人能回復裡面的內容,包括我們。
在 App Store 查看 →