El aprovisionamiento de claves remoto (RKP) forma parte de AOSP desde Android 12. Android 14 presenta un módulo actualizable de aprovisionamiento remoto que aumenta la resiliencia de las funciones mejorando la solidez de la API del servicio y disminuyendo el tiempo para realizar mejoras en ella.
Motivación
Para simplificar el servicio de RKP, empaqueta todo en un APEX.
Antes de Android 14, RKP se separaba en una app, RemoteProvisioner
, y Keystore 2.0. La app de RemoteProvisioner
era responsable de comunicarse con el backend de RKP, y Keystore 2.0 era responsable de almacenar las claves y comunicarse con los HAL. Esta no era una buena
arquitectura porque las claves de RKP son muy diferentes de las claves del almacén de claves en
términos de metadatos adjuntos. Además, esto requirió modificaciones incómodas en el código del framework de Keystore para alertar a RemoteProvisioner
sobre una posible escasez de recursos.
El RKP, como módulo de Mainline, está diseñado para mejorar estos puntos empaquetando todo de forma ordenada en un APEX.
Límite del módulo
El APEX principal de RKP, com.android.rkpd
, contiene la aplicación del daemon de aprovisionamiento de claves remoto (RKPD) y un componente de servidor del sistema de aprovisionamiento remoto (compilado con Java).
Arquitectura de pila
En la Figura 1, se ilustra la arquitectura de la pila de RKP.
Figura 1: Arquitectura de la pila de RKP.
Arquitectura interna
En la figura 2, se ilustra la arquitectura interna de la RKP.
Figura 2: Arquitectura interna de RKP.
Información adicional sobre la arquitectura interna de RKP:
APEX de RKPD Mainline:
com.android.rkpd
- App de RKPD (Java)
packages/modules/RemoteKeyProvisioning/app
- Fragmento del servidor del sistema RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- App de RKPD (Java)
Implementación o interfaz de HAL (Rust/C++)
IRemotelyProvisionedComponent
hardware/interfaces/security/keymint
Formato del paquete
La aplicación y otras funciones del módulo se empaquetan como archivo com.android.rkpd
de APEX.
Dependencias
El módulo de RKP sigue dependiendo de la existencia de implementaciones de IRemotelyProvisionedComponent
para proporcionar las claves de certificación y las solicitudes de certificados.
Estrategia de pruebas
La versión de AOSP del APEX de la aplicación contiene pruebas de unidades que los OEMs pueden ejecutar.