Aprovisionamiento remoto de claves

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.

Arquitectura de pila RKP

Figura 1. Arquitectura de pila RKP.

Arquitectura interna

La Figura 2 ilustra la arquitectura interna de RKP.

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
  • 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.