Approvisionnement de clé à distance

Le provisionnement de clés à distance (RKP) fait partie d'AOSP depuis Android 12. Android 14 introduit un module actualisable de provisionnement à distance qui augmente la résilience des fonctionnalités en améliorant la robustesse de l'API du service et en réduisant le temps nécessaire pour y introduire des améliorations.

Motivation

Simplifiez le service RKP en regroupant tout dans un APEX.

Avant Android 14, RKP était séparé en une application, RemoteProvisioner et Keystore 2.0. L'application RemoteProvisioner était chargée de contacter le backend RKP, et Keystore 2.0 était responsable à la fois du stockage des clés et de la communication avec les HAL. Ce n'était pas une bonne architecture car les clés RKP sont très différentes des clés Keystore en termes de métadonnées attachées. De plus, cela nécessitait des modifications délicates du code du framework Keystore pour alerter RemoteProvisioner d'un manque potentiel de ressources.

RKP en tant que module Mainline est conçu pour améliorer ces points en emballant soigneusement le tout dans un APEX.

Limite du module

L'APEX RKP Mainline, com.android.rkpd , contient l'application Remote Key Provisioning Daemon (RKPD) et un composant serveur du système de provisionnement à distance (construit avec Java).

Architecture de pile

La figure 1 illustre l'architecture de la pile RKP.

Architecture de la pile RKP

Figure 1. Architecture de la pile RKP.

Architecture interne

La figure 2 illustre l'architecture interne du RKP.

Architecture interne du RKP

Figure 2. Architecture interne du RKP.

Informations supplémentaires sur l'architecture interne du RKP :

  • RKPD Mainline APEX - com.android.rkpd

    • Application RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • Fragment du serveur système RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • Interface/implémentation HAL (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

Format du paquet

L'application et les autres fonctionnalités du module sont regroupées sous forme de fichier APEX com.android.rkpd .

Dépendances

Le module RKP continue de dépendre de l'existence d'implémentations de IRemotelyProvisionedComponent pour fournir les clés d'attestation et les demandes de certificat.

Stratégie de test

La version AOSP de l'application APEX contient des tests unitaires que les OEM peuvent exécuter.