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.
Figure 1. Architecture de la pile RKP.
Architecture interne
La figure 2 illustre l'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
-
- Application RKPD (Java)
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.