Предоставление удаленного ключа

Технология удаленного предоставления ключей (RKP) является частью AOSP начиная с Android 12. В Android 14 представлен обновляемый модуль удаленного предоставления ключей, который повышает отказоустойчивость функций за счет улучшения надежности API сервиса и сокращения времени, необходимого для внесения каких-либо улучшений.

Мотивация

Упростите работу сервиса RKP, объединив все компоненты в один файл APEX.

До Android 14 RKP был разделён на приложение RemoteProvisioner и Keystore 2.0. Приложение RemoteProvisioner отвечало за связь с бэкэндом RKP, а Keystore 2.0 — за хранение ключей и взаимодействие с HAL. Это была неудачная архитектура, поскольку ключи RKP значительно отличаются от ключей Keystore по прикреплённым метаданным. Кроме того, это требовало сложных модификаций кода фреймворка Keystore для оповещения RemoteProvisioner о потенциальном дефиците ресурсов.

Модуль RKP, входящий в основную ветку разработки, призван улучшить эти аспекты, аккуратно объединив все необходимые компоненты в один APEX-файл.

Граница модуля

Основной модуль RKP Mainline APEX, com.android.rkpd , содержит приложение Remote Key Provisioning Daemon (RKPD) и компонент сервера системы удаленного предоставления доступа (собранный на Java).

Стековая архитектура

На рисунке 1 показана архитектура стека RKP.

Архитектура стека RKP

Рисунок 1. Архитектура стека RKP.

Внутренняя архитектура

На рисунке 2 показана внутренняя архитектура RKP.

Внутренняя архитектура RKP

Рисунок 2. Внутренняя архитектура RKP.

Дополнительная информация о внутренней архитектуре RKP:

  • Магистральная линия РКПД APEX — com.android.rkpd

    • Приложение RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • Фрагмент системного сервера RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • Интерфейс/реализация HAL (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

Формат упаковки

Приложение и другие функции модуля упакованы в файл APEX com.android.rkpd .

Зависимости

Модуль RKP по-прежнему зависит от наличия реализаций IRemotelyProvisionedComponent для предоставления ключей аттестации и запросов на сертификаты.

Стратегия тестирования

В версии приложения APEX для AOSP содержатся модульные тесты, которые могут запускать производители оборудования.