LifeVeil 如何保護你的檔案

這個網頁用淺白的文字說明 LifeVeil 會做什麼,以及它做不到什麼。與其讓你相信過大的承諾,我們寧願讓你了解它的限制。

重點摘要

從圖形到金鑰

你在 5×5 的格子上畫出圖形,至少連接 6 個點,且每個點只能用一次。LifeVeil 會使用 libsodium(Android 上為 1.0.20 版)的 Argon2id,將圖形轉換成金鑰。

檔案如何加密

復原詞組

指紋

指紋解鎖是選用功能。檢查指紋的是 Android,而不是 LifeVeil;應用程式從來不會收到你的指紋。主金鑰是由 Android Keystore 中的一把金鑰解開的,這把金鑰只有在剛通過高安全性生物特徵驗證後才能使用。如果有人在手機上新增指紋,這把金鑰就會失效,你必須再次使用圖形。

備份檔案

應用程式內的其他保護措施

AI 與猜測圖形

你應該知道的限制

沒有任何應用程式能防範所有情況。以下是 LifeVeil 的實際限制。

簡單的圖形可能被猜中

過短或常見的形狀(L、Z、一直線)可能被人從旁觀察、從螢幕上的油漬看出,或在幾次嘗試內猜中。實際上大家使用的圖形,比可能的圖形總數所暗示的還要容易猜中得多。請使用更多的點和更多的轉折。應用程式會針對非常簡單的圖形發出警告。

猜測可能需要多久

在應用程式內,每次嘗試約需 1 秒,錯誤 5 次後等待時間還會增加。但是,如果有人取得你的備份檔案,或從已 root 的手機取出裝置鹽值,就能改在電腦上猜測,而且不必等待。Argon2id 會拖慢這個過程,但圖形的可能組合遠比長密碼少。以一張高階顯示卡(RTX 4090 等級)每秒約 1,000 次猜測粗略估算:

猜測對象可能組合數所需時間(一張顯示卡)
最常見的 10,000 種圖形104約 10 秒
所有 6 點圖形1.28 × 108約 1.5 天
所有 7 點圖形2.42 × 109約 28 天
所有 8 點圖形4.36 × 1010約 1.4 年
復原詞組(92 位元)4.95 × 1027約 1.6 × 1017 年

以上為估算值,並非實測結果。圖形數量為上限值,實際使用的圖形遠少於此。硬體越多或越快,猜測速度就會等比例加快。

請妥善保管備份檔案

備份檔案不包含裝置鹽值,因此任何取得它的人都能如上所述離線嘗試圖形。請只存放在只有你能存取的地方,例如你自己的雲端帳戶,並使用較長的圖形。

已 root 或遭感染的手機

如果有人能以應用程式的權限執行程式碼(例如在已 root 的手機上,或透過擁有完整控制權的惡意軟體),就能解開裝置鹽值並離線猜測。保險箱開啟期間,金鑰存在記憶體中,可透過 root 權限或偵錯工具讀取。Android 和 Flutter 內部產生的某些副本,以及畫面上顯示的相片,無法立即從記憶體中清除。

部分資訊是看得到的

應用程式儲存空間中加密檔案的數量、大致大小,以及建立或修改的時間,都沒有隱藏。手機上安裝了 LifeVeil 這件事也無法隱藏。

空的空間只能騙過畫面

能讀取應用程式檔案的人(例如在已 root 的手機上)可以數出空間資料夾的數量,也能看到這個設定已開啟。另外,圖案錯誤 5 次後應用程式會要求等待,這表示先前的圖案什麼也沒開啟。

偽裝只會改變主畫面

指紋是較弱的解鎖途徑

指紋解鎖會略過 Argon2id,其強度取決於手機的指紋感應器和 Android Keystore。你隨時可以在「設定」中關閉這項功能。

入侵者相片

應用程式不會播放快門聲,但在某些國家/地區(例如日本和韓國)販售的手機一律會播放。如果其他應用程式正在使用相機,或手機沒有前置鏡頭,就不會拍照。在你解鎖第一個建立的保險箱之前,這些相片會以 Android Keystore 金鑰封存。

相片詳細資料

系統畫面開啟期間會暫停鎖定

系統畫面開啟期間(權限要求、刪除確認、相片或檔案挑選器、指紋提示),以及匯入或匯出進行中時,應用程式會暫緩鎖定。如果你已經離開應用程式,會在上述情況結束 2 秒後鎖定。

所有保險箱共用一組裝置鹽值

同一支手機上的所有保險箱都使用相同的裝置鹽值。如果有人取得這組鹽值,猜一次就能同時測試所有保險箱。攻擊單一保險箱的成本則不變。

任何應用程式都無法阻止的事

有人在旁看你畫圖形,或有相機正在拍攝你的螢幕。

兩者都遺失,就沒有人能幫你

如果圖形和復原詞組都遺失了,沒有人能救回你的檔案,連我們也不行。