遠端金鑰佈建

自 Android 12 起,遠端金鑰佈建 (RKP) 就已是 AOSP 的一部分。Android 14 推出可更新的遠端佈建模組,可透過改善服務 API 的健全性,並縮短導入任何改善項目的時間,進而提升功能的彈性。

動機

將所有內容封裝成 APEX,簡化 RKP 服務。

在 Android 14 之前,RKP 已分離為應用程式 RemoteProvisioner 和 Keystore 2.0。RemoteProvisioner 應用程式負責與 RKP 後端聯絡,Keystore 2.0 則負責儲存金鑰並與 HAL 通訊。這並非理想的架構,因為 RKP 金鑰與 Keystore 金鑰在附加中繼資料方面有顯著差異。此外,這項作業需要對 Keystore 架構程式碼進行不便的修改,才能提醒 RemoteProvisioner 潛在的資源耗盡問題。

RKP 是 Mainline 模組,旨在將所有內容整齊地打包至 APEX,以改善這些問題。

模組邊界

RKP Mainline APEX (com.android.rkpd) 包含遠端金鑰佈建 Daemon (RKPD) 應用程式,以及遠端佈建系統伺服器元件 (使用 Java 建構)。

堆疊架構

圖 1 說明 RKP 堆疊架構。

RKP 堆疊架構

圖 1. RKP 堆疊架構。

內部架構

圖 2 說明 RKP 內部架構。

RKP 內部架構

圖 2. RKP 內部架構。

關於 RKP 內部架構的其他資訊:

  • RKPD Mainline APEX - com.android.rkpd

    • RKPD 應用程式 (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • RKPD 系統伺服器片段 (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • HAL 介面/實作 (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

套件格式

模組的應用程式和其他功能會封裝為 APEX 檔案 com.android.rkpd

依附元件

RKP 模組仍會依賴 IRemotelyProvisionedComponent 實作項目的存在,以提供認證金鑰和憑證要求。

測試策略

應用程式 APEX 的 AOSP 版本包含原始設備製造商 (OEM) 可執行的單元測試。