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.
Figura 1. Architettura dello stack RKP.
Architettura interna
La Figura 2 illustra l'architettura interna del 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
- App RKPD (Java)
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.