Удаленная инициализация ключей (RKP) входит в AOSP с версии Android 12. В Android 14 появился обновляемый модуль удаленной инициализации, который повышает устойчивость функций за счет улучшения надежности API сервиса и сокращения времени на его улучшение.
Мотивация
Упростить сервис RKP, упаковав все в APEX.
До выхода Android 14 RKP был разделен на приложение,RemoteProvisioner и хранилище ключей 2.0. Приложение RemoteProvisioner отвечало за связь с сервером RKP, а Keystore 2.0 – за хранение ключей и связь с HAL. Это не самая удачная архитектура, поскольку ключи RKP значительно отличаются от ключей Keystore с точки зрения прикрепленных метаданных. Кроме того, для оповещения RemoteProvisioner о потенциальной нехватке ресурсов потребовалось внести неудобные изменения в код фреймворка Keystore.
Модуль RKP для Mainline призван устранить эти недостатки, поскольку все необходимые компоненты упакованы в APEX.
Граница модуля
RKP Mainline APEX (com.android.rkpd) содержит приложение Remote Key Provisioning Daemon (RKPD) и компонент сервера удаленной инициализации (созданный на Java).
Архитектура стека
На рисунке 1 показана архитектура стека RKP.
Рисунок 1. архитектуру стека RKP;
Внутренняя архитектура
На рисунке 2 показана внутренняя архитектура RKP.
Рисунок 2. Внутренняя архитектура RKP.
Дополнительная информация о внутренней архитектуре RKP:
RKPD Mainline APEX -
com.android.rkpd- Приложение RKPD (Java)
packages/modules/RemoteKeyProvisioning/app
- Фрагмент системного сервера RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- Приложение RKPD (Java)
Интерфейс/реализация HAL (Rust/C++)
IRemotelyProvisionedComponenthardware/interfaces/security/keymint
Формат пакета
Приложение и другие функции модуля упакованы в файл APEX com.android.rkpd.
Связанные запросы
Модуль RKP по-прежнему зависит от наличия реализаций IRemotelyProvisionedComponent, которые предоставляют ключи подтверждения и запросы сертификатов.
Стратегия тестирования
Версия APEX-файла приложения для AOSP содержит модульные тесты, которые могут запускать OEM-производители.