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 renforçant 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 regroupant tous les éléments dans un APEX.
Avant Android 14, RKP était divisé en une application, RemoteProvisioner
, et Keystore 2.0. L'application RemoteProvisioner
était chargée de contacter le backend RKP, et Keystore 2.0 était chargé à la fois de stocker les clés et de communiquer avec les HAL. Cette architecture n'était pas idéale, car les clés RKP sont très différentes des clés Keystore en termes de métadonnées associées. De plus, cela a nécessité des modifications maladroites du code du framework Keystore pour alerter RemoteProvisioner
sur une éventuelle pénurie de ressources.
Le RKP en tant que module Mainline est conçu pour améliorer ces points en regroupant soigneusement tous les éléments dans un APEX.
Limite du module
L'APEX Mainline RKP, com.android.rkpd
, contient l'application Remote Key Provisioning Daemon (RKPD) et un composant de serveur de système de provisionnement à distance (créé avec Java).
Architecture de la pile
La figure 1 illustre l'architecture de la pile RKP.
Figure 1 : Architecture de la pile RKP.
Architecture interne
La figure 2 illustre l'architecture interne de RKP.
Figure 2. Architecture interne de 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 du système RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- Application RKPD (Java)
Interface/implémentation HAL (Rust/C++)
IRemotelyProvisionedComponent
hardware/interfaces/security/keymint
Format du package
L'application et les autres fonctionnalités du module sont regroupées dans le 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 demandes de certificat.
Stratégie de test
La version AOSP de l'APEX de l'application contient des tests unitaires que les OEM peuvent exécuter.