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.
Figure 1 : Architecture de la pile RKP.
Architecture interne
La figure 2 illustre l'architecture interne de 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
- 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 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.