Remote Key Provisioning (RKP) ist seit Android 12 Teil von AOSP. Mit Android 14 wird ein aktualisierbares Remote-Provisioning-Modul eingeführt, das die Ausfallsicherheit von Funktionen erhöht, indem es die Robustheit der Service-API verbessert und die Zeit für die Einführung von Verbesserungen verkürzt.
Motivation
Vereinfachen Sie den RKP-Service, indem Sie alles in einem APEX packen.
Vor Android 14 war RKP in eine App, RemoteProvisioner
und Keystore 2.0 unterteilt. Die RemoteProvisioner
App war für die Kontaktaufnahme mit dem RKP-Backend verantwortlich und Keystore 2.0 war sowohl für die Speicherung der Schlüssel als auch für die Kommunikation mit HALs verantwortlich. Dies war keine gute Architektur, da sich RKP-Schlüssel hinsichtlich der angehängten Metadaten erheblich von Keystore-Schlüsseln unterscheiden. Darüber hinaus erforderte dies umständliche Änderungen am Code des Keystore-Frameworks, um RemoteProvisioner
vor einem möglichen Ressourcenmangel zu warnen.
RKP als Mainline-Modul wurde entwickelt, um diese Punkte zu verbessern, indem alles sauber in einen APEX gepackt wird.
Modulgrenze
Der RKP Mainline APEX, com.android.rkpd
, enthält die Remote Key Provisioning Daemon (RKPD)-Anwendung und eine Remote-Provisioning-Systemserverkomponente (erstellt mit Java).
Stapelarchitektur
Abbildung 1 zeigt die RKP-Stack-Architektur.
Abbildung 1. RKP-Stack-Architektur.
Interne Architektur
Abbildung 2 zeigt die interne RKP-Architektur.
Abbildung 2. Interne RKP-Architektur.
Zusätzliche Informationen zur RKP-internen Architektur:
RKPD Mainline APEX –
com.android.rkpd
- RKPD-App (Java)
-
packages/modules/RemoteKeyProvisioning/app
-
- Fragment des RKPD-Systemservers (Java)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- RKPD-App (Java)
HAL-Schnittstelle/Implementierung (Rust/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
Paketformat
Die Anwendung und andere Funktionalitäten des Moduls sind als APEX-Datei com.android.rkpd
gepackt.
Abhängigkeiten
Das RKP-Modul ist weiterhin auf die Existenz von IRemotelyProvisionedComponent
Implementierungen angewiesen, um die Nachweisschlüssel und Zertifikatsanforderungen bereitzustellen.
Teststrategie
Die AOSP-Version der Anwendung APEX enthält Komponententests, die OEMs ausführen können.