Remote-Schlüsselbereitstellung

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.

RKP-Stack-Architektur

Abbildung 1. RKP-Stack-Architektur.

Interne Architektur

Abbildung 2 zeigt die interne RKP-Architektur.

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
  • 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.