Provisioning delle chiavi remote

Il Remote Key Provisioning (RKP) fa parte di AOSP sin da Android 12. Android 14 introduce un modulo aggiornabile per il provisioning remoto che aumenta la resilienza delle funzionalità migliorando la robustezza dell'API di servizio e diminuendo il tempo necessario per introdurvi eventuali miglioramenti.

Motivazione

Semplifica il servizio RKP impacchettando tutto in un APEX.

Prima di Android 14, RKP era separato in un'appRemoteProvisioner e in Keystore 2.0. L'app RemoteProvisioner era responsabile di contattare il backend RKP e Keystore 2.0 si occupava sia dell'archiviazione delle chiavi sia della comunicazione con gli HAL. Non era un'architettura buona perché le chiavi RKP sono molto diverse dalle chiavi del keystore in termini di metadati allegati. Inoltre, sono state necessarie modifiche complicate al codice del framework Keystore per avvisare RemoteProvisioner di un potenziale esaurimento delle risorse.

RKP, in qualità di modulo Mainline, è progettato per migliorare questi aspetti raggruppando tutto in un APEX.

Confine del modulo

L'APEX principale RKP, com.android.rkpd, contiene l'applicazione Remote Key Provisioning Daemon (RKPD) e un componente del server del sistema di provisioning remoto (creato con Java).

Architettura a stack

La Figura 1 illustra l'architettura dello stack RKP.

Architettura dello stack RKP

Figura 1. Architettura dello stack RKP.

Architettura interna

La Figura 2 illustra l'architettura interna del RKP.

Architettura interna di RKP

Figura 2. Architettura interna di RKP.

Ulteriori informazioni sull'architettura interna di RKP:

  • RKPD Mainline APEX - com.android.rkpd

    • App RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • Frammento del server di sistema RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • Interfaccia/implementazione HAL (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

Formato del pacchetto

L'applicazione e le altre funzionalità del modulo sono pacchettizzate come file APEXcom.android.rkpd.

Dipendenze

Il modulo RKP continua a dipendere dall'esistenza di implementazioni IRemotelyProvisionedComponent per fornire le chiavi di attestazione e le richieste di certificato.

Strategia di test

La versione AOSP dell'APEX dell'applicazione contiene test di unità che gli OEM possono eseguire.