O provisionamento de chaves remoto (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 nele.
Motivação
Simplifique o serviço RKP empacotando tudo em um APEX.
Antes do Android 14, o RKP era separado em um app,
RemoteProvisioner
e 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, essas modificações exigiam modificações estranhas no
código do framework do Keystore para alertar o RemoteProvisioner
sobre uma possível
privação de recursos.
O RKP como um módulo principal foi desenvolvido para melhorar esses pontos, agrupando tudo em um APEX.
Limite do módulo
O APEX Mainline 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 de 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.