Fornitura di chiavi remote

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.

Architettura dello stack RKP

Figura 1. Architettura dello stack RKP.

Architettura interna

La Figura 2 illustra l'architettura interna di RKP.

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