El aprovisionamiento remoto de claves (RKP) ha sido parte de AOSP desde Android 12. Android 14 presenta un módulo actualizable de aprovisionamiento remoto que aumenta la resiliencia de las funciones al mejorar la solidez de la API del servicio y disminuir el tiempo para introducir mejoras.
Motivación
Simplifique el servicio RKP empaquetando todo en un APEX.
Antes de Android 14, RKP estaba separado en una aplicación, RemoteProvisioner
y Keystore 2.0. La aplicación RemoteProvisioner
era responsable de contactar 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 RKP son significativamente 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 marco Keystore para alertar RemoteProvisioner
sobre una posible escasez de recursos.
RKP como módulo principal está diseñado para mejorar estos puntos al empaquetar todo cuidadosamente en un APEX.
Límite del módulo
RKP Mainline APEX, com.android.rkpd
, contiene la aplicación Remote Key Provisioning Daemon (RKPD) y un componente de servidor del sistema de aprovisionamiento remoto (construido con Java).
Arquitectura de pila
La Figura 1 ilustra la arquitectura de la pila RKP.
Figura 1. Arquitectura de pila RKP.
Arquitectura interna
La Figura 2 ilustra la arquitectura interna de RKP.
Figura 2. Arquitectura interna de RKP.
Información adicional sobre la arquitectura interna de RKP:
Línea principal APEX de RKPD -
com.android.rkpd
- Aplicación RKPD (Java)
-
packages/modules/RemoteKeyProvisioning/app
-
- Fragmento del servidor del sistema RKPD (Java)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- Aplicación RKPD (Java)
Interfaz/implementación HAL (Rust/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
Formato de paquete
La aplicación y otras funcionalidades del módulo están empaquetadas como archivo APEX com.android.rkpd
.
Dependencias
El módulo RKP sigue dependiendo de la existencia de implementaciones de IRemotelyProvisionedComponent
para proporcionar las claves de atestación y las solicitudes de certificados.
Estrategia de prueba
La versión AOSP de la aplicación APEX contiene pruebas unitarias que los OEM pueden ejecutar.