Il Remote Key Provisioning (RKP) fa parte di AOSP da Android 12. Android 14 introduce un modulo aggiornabile di provisioning remoto che aumenta la resilienza delle funzionalità migliorando la robustezza dell'API del servizio e diminuendo il tempo necessario per introdurre eventuali miglioramenti.
Motivazione
Semplifica il servizio RKP impacchettando tutto in un APEX.
Prima di Android 14, RKP era suddiviso in un'app, RemoteProvisioner
e Keystore 2.0. L'app RemoteProvisioner
era responsabile del contatto con il backend RKP e Keystore 2.0 era responsabile sia della memorizzazione delle chiavi che della comunicazione con gli HAL. Questa non era una buona architettura perché le chiavi RKP sono significativamente diverse dalle chiavi Keystore in termini di metadati allegati. Inoltre, ciò ha richiesto modifiche scomode al codice del framework Keystore per avvisare RemoteProvisioner
della potenziale carenza di risorse.
RKP come modulo Mainline è progettato per migliorare questi punti inserendo tutto in modo ordinato in un APEX.
Confine del modulo
RKP Mainline APEX, com.android.rkpd
, contiene l'applicazione Remote Key Provisioning Daemon (RKPD) e un componente server del sistema di provisioning remoto (creato con Java).
Architettura dello 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 di RKP.
Figura 2. Architettura interna RKP.
Ulteriori informazioni sull'architettura interna RKP:
RKPD Mainline APEX -
com.android.rkpd
- Applicazione RKPD (Java)
-
packages/modules/RemoteKeyProvisioning/app
-
- Frammento del server di sistema RKPD (Java)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- Applicazione RKPD (Java)
Interfaccia/implementazione HAL (Rust/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
Formato del pacchetto
L'applicazione e le altre funzionalità del modulo sono confezionate come file APEX com.android.rkpd
.
Dipendenze
Il modulo RKP continua a dipendere dall'esistenza delle implementazioni IRemotelyProvisionedComponent
per fornire le chiavi di attestazione e le richieste di certificato.
Strategia di test
La versione AOSP dell'applicazione APEX contiene test unitari che gli OEM possono eseguire.