GrapheneOS 防止從鎖定設備提取資料的保護措施

GrapheneOS 防止從鎖定設備提取資料的保護措施

GrapheneOS 采用多層次安全架構來防止從鎖定設備提取資料,依賴於 Android 17 安全功能、專用硬體和自訂 OS 加固的組合。主要目標是迫使攻擊者要麼在 After First Unlock (AFU) 狀態下利用 OS 漏洞,要麼嘗試針對硬體強制的速率限制進行暴力破解密碼。

硬體支援的速率限制與內部攻擊抵抗

支援的設備上的安全元件實施嚴格的速率限制,以防止對 PIN 和密碼的暴力破解攻擊。根據 Android 16 QPR2 規範,系統會在嘗試之間增加延遲:在 10 次失敗嘗試後,施加 4 小時的延遲;在 15 次嘗試後,延遲增加至 41 天。系統在鎖定前僅允許總共 20 次嘗試。

為防止政府或企業實體透過被迫的韌體更新繞過這些限制,GrapheneOS 使用「內部攻擊抵抗」機制。該機制要求擁有者使用者在安全元件韌體能被更新之前成功進行身份驗證,以確保僅憑有效的簽名金鑰和較高的版本號不足以推送移除速率限制的惡意更新。

加強驗證與密碼短語

為了克服安全元件速率限制的限制,GrapheneOS 將最大密碼長度從 16 個字元擴展到 128 個字元。這使得使用者能夠使用高熵的 diceware 密碼短語,這在數學上是不可行的暴力破解。

為了在高安全性與日常便利性之間取得平衡,GrapheneOS 引入了一種可選的第二因素指紋 PIN:

  • 機制: 有效的指紋掃描會提示使用者輸入短的第二因素 PIN。
  • 安全: 允許的指紋嘗試次數從 20 次減少到 5 次。輸入錯誤的第二因素 PIN 會被視為一次失敗嘗試。
  • 結果: 這使得使用者能夠在 Before First Unlock (BFU) 狀態下維持長且複雜的密碼短語,同時在 After First Unlock (AFU) 狀態下使用指紋和短 PIN 以獲得快速存取。

OS 加固與實體存取防護

GrapheneOS 實施多層防護以降低實體存取設備者的攻擊面:

  • 利用防護: OS 使用加固的記憶體分配器和基於硬體的記憶體標記(MTE)來緩解記憶體損壞漏洞。
  • USB 阻塞: 在設備鎖定時,新的 USB 連線預設會在軟體和硬體兩層被阻塞。USB 資料會在活動連線終止後立即被禁用。
  • 自動重新啟動計時器: GrapheneOS 包含一個鎖定設備的自動重新啟動計時器(預設為 18 小時)。這會自動將設備返回到 BFU 狀態,清除 RAM 中的殘餘資料並阻止安全元件更新。雖然 Apple (iOS 18.1) 和 Google (Android 16) 之後也加入了類似功能,但 GrapheneOS 的實作在啟動過程中包含記憶體歸零,以確保資料從 RAM 中被完全清除。

次要使用者和私人空間的資料管理

Android 為次要使用者和私人空間提供獨立的加密金鑰。GrapheneOS 透過允許這些個人檔案透過「結束工作階段」功能(適用於次要使用者)或特定切換開關返回 BFU 狀態而無需完整系統重新啟動來增強此功能,以確保它們預設返回 BFU。

脅迫 PIN/密碼功能

GrapheneOS 提供一種脅迫 PIN/密碼,當在任何 OS 驗證提示中輸入時(鎖定畫面、敏感設定變更等)會清除設備。此功能適用於所有個人檔案,包括次要使用者和私人空間。

重要的是要注意,脅迫 PIN 是一種用於完全銷毀資料的選擇性工具,而不是對抗資料提取的主要防禦。正如社區討論所指出的,在法律或邊境搜索情境中使用此功能可能會帶來重大的實體或法律風險:

"如果您將手機和加密的例子移到更普通的事物上,您會看到這不是一個明智的舉動,而且您很可能會面臨處罰,或至少會在大量問題和進一步的追問中度過糟糕的時候。"

硬體相容性與未來支援

目前,GrapheneOS 僅支援 Google Pixel 設備,因為它們提供了必要的硬體安全功能和更新。然而,與 Motorola Mobility 的合作夥伴關係以及 Qualcomm 的進展預計將從 2027 年開始擴展 Pixel 以外的硬體支援。

Sources