Schlüsselbereitstellung per Fernzugriff

Die Remote Key Provisioning (RKP) ist seit Android 12 Teil von AOSP. In Android 14 wird ein aktualisierbares Modul für die Remote-Bereitstellung eingeführt, das die Funktionsresilienz erhöht, indem die Robustheit der Dienst-API verbessert und die Zeit für die Einführung von Verbesserungen verkürzt wird.

Ziel

Vereinfachen Sie den RKP-Dienst, indem Sie alles in einem APEX-Objekt verpacken.

Vor Android 14 wurde RKP in die AppRemoteProvisioner 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 das Speichern der Schlüssel als auch für die Kommunikation mit HALs verantwortlich. Das war keine gute Architektur, da sich RKP-Schlüssel hinsichtlich der angehängten Metadaten deutlich von Keystore-Schlüsseln unterscheiden. Außerdem waren umständliche Änderungen am Keystore-Framework-Code erforderlich, um RemoteProvisioner auf einen möglichen Ressourcenmangel hinzuweisen.

RKP als Mainline-Modul soll diese Punkte verbessern, indem alles übersichtlich in einem APEX-Dokument zusammengefasst wird.

Modulgrenze

Die RKP Mainline APEX, com.android.rkpd, enthält die Anwendung „Remote Key Provisioning Daemon“ (RKPD) und eine Serverkomponente des Remote Provisioning-Systems (mit Java erstellt).

Stackarchitektur

Abbildung 1 zeigt die RKP-Stack-Architektur.

RKP-Stack-Architektur

Abbildung 1. RKP-Stack-Architektur

Interne Architektur

Abbildung 2 veranschaulicht die interne RKP-Architektur.

Interne Architektur von RKP

Abbildung 2. Interne Architektur von RKP

Weitere Informationen zur internen Architektur von RKP:

  • RKPD Mainline APEX – com.android.rkpd

    • RKPD-App (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • RKPD-Systemserver-Fragment (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • HAL-Schnittstelle/-Implementierung (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

Paketformat

Die Anwendung und andere Funktionen des Moduls sind als APEX-Datei com.android.rkpd verpackt.

Abhängigkeiten

Das RKP-Modul hängt weiterhin davon ab, ob IRemotelyProvisionedComponent-Implementierungen vorhanden sind, um die Attestierungsschlüssel und Zertifikatsanfragen bereitzustellen.

Teststrategie

Die AOSP-Version der Anwendung APEX enthält Unit-Tests, die OEMs ausführen können.