El aprovisionamiento de claves remoto (RKP) forma parte de AOSP desde Android 12. Android 14 presenta un módulo de aprovisionamiento remoto actualizable que aumenta la resiliencia de las funciones al mejorar la solidez de la API de servicio y disminuir el tiempo para introducir mejoras.
Motivación
Para simplificar el servicio de RKP, empaqueta todo en un APEX.
Antes de Android 14, RKP se separa 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 del almacén de claves para alertar a RemoteProvisioner
sobre una posible falta de recursos.
RKP como módulo de línea principal está diseñado para mejorar estos puntos empaquetando todo de forma prolija en un APEX.
Límite del módulo
El APEX de la línea principal de RKP, com.android.rkpd
, contiene la aplicación Daemon de aprovisionamiento de claves remotas (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 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 de 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.