O provisionamento de chaves remotas (RKP, na sigla em inglês) faz parte do AOSP desde o Android 12. O Android 14 apresenta um módulo atualizável de provisionamento remoto que aumenta a resiliência do recurso melhorando a robustez da API do serviço e diminuindo o tempo para introduzir melhorias.
Motivação
Simplifique o serviço de RKP empacotando tudo em um APEX.
Antes do Android 14, o RKP era separado em um app,
RemoteProvisioner
, e no Keystore 2.0. O app RemoteProvisioner
era
responsável por entrar em contato com o back-end do RKP, e o Keystore 2.0 era responsável por
armazenar as chaves e se comunicar com os HALs. Essa não era uma boa
arquitetura porque as chaves RKP são significativamente diferentes das chaves do Keystore em
termos de metadados anexados. Além disso, isso exigiu modificações estranhas no
código da estrutura do Keystore para alertar RemoteProvisioner
sobre a possível
falta de recursos.
O RKP como um módulo principal foi projetado para melhorar esses pontos, agrupando tudo em um APEX.
Limite do módulo
O APEX principal do RKP, com.android.rkpd
, contém o aplicativo daemon de provisionamento de chaves remotas
(RKPD, na sigla em inglês) e um componente de servidor do sistema de provisionamento remoto
criado com Java.
Arquitetura de pilha
A Figura 1 ilustra a arquitetura da pilha RKP.
Figura 1. Arquitetura de pilha do RKP.
Arquitetura interna
A Figura 2 ilustra a arquitetura interna do RKP.
Figura 2. Arquitetura interna do RKP.
Outras informações sobre a arquitetura interna do RKP:
RKPD Mainline APEX -
com.android.rkpd
- App RKPD (Java)
packages/modules/RemoteKeyProvisioning/app
- Fragmento do servidor do sistema RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- App RKPD (Java)
Interface/implementação HAL (Rust/C++)
IRemotelyProvisionedComponent
hardware/interfaces/security/keymint
Formato do pacote
O aplicativo e outras funcionalidades do módulo são empacotados como arquivo APEX
com.android.rkpd
.
Dependências
O módulo RKP continua dependendo da existência de
implementações de IRemotelyProvisionedComponent
para fornecer as chaves de atestado
e solicitações de certificado.
Estratégia de teste
A versão do AOSP do APEX do aplicativo contém testes de unidade que os OEMs podem executar.