Provisionnement de clés à distance

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

Motivation

Simplifiez le service RKP en empaquetant 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, tandis que Keystore 2.0 était responsable du stockage des clés et de la communication avec les HAL. Il ne s'agissait pas d'une bonne architecture, car les clés RKP sont très différentes des clés Keystore en termes de métadonnées associées. En outre, cela nécessitait des modifications gênantes du code du framework Keystore pour alerter RemoteProvisioner d'un risque de manque de ressources.

En tant que module de ligne principale, RKP est conçu pour améliorer ces points en regroupant tous les éléments dans un APEX.

Limite du module

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

Architecture en 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 de RKP.

Architecture interne du RKP

Figure 2. Architecture interne du RKP.

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

  • RKPD Mainline APEX - com.android.rkpd

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

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

Format du package

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

Dépendances

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

Stratégie de test

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