Udostępnianie klucza zdalnego

Od wersji 12 Androida funkcja zdalnego udostępniania klucza (RKP) jest częścią AOSP. Android 14 wprowadza moduł zdalnego zarządzania, który można aktualizować, aby zwiększyć odporność funkcji poprzez poprawę niezawodności interfejsu API usługi i skrócenie czasu wprowadzania ulepszeń.

Motywacja

Uprość usługę RKP, pakując wszystko w APEX.

Przed Androidem 14 RKP był podzielony na aplikację RemoteProvisioner i Keystore 2.0. Aplikacja RemoteProvisioner odpowiadała za kontaktowanie się z serwerem RKP, a Keystore 2.0 – za przechowywanie kluczy i komunikację z interfejsami HAL. Nie była to dobra architektura, ponieważ klucze RKP różnią się znacznie od kluczy Keystore pod względem dołączonych metadanych. Wymagało to też wprowadzenia nietypowych modyfikacji kodu frameworku Keystore, aby RemoteProvisioner mógł ostrzegać o potencjalnym braku zasobów.

Moduł RKP jako moduł główny został zaprojektowany tak, aby poprawić te kwestie, umieszczając wszystko w ramach modułu APEX.

Granica modułu

RKP Mainline APEX (com.android.rkpd) zawiera aplikację RKPD (Remote Key Provisioning Daemon) i komponent serwera systemu zdalnego udostępniania (stworzony w języku Java).

Architektura stosu

Rysunek 1 przedstawia architekturę stosu RKP.

Architektura stosu RKP

Rysunek 1. Architektura zbioru RKP

Architektura wewnętrzna

Rysunek 2 przedstawia architekturę wewnętrzną RKP.

Architektura wewnętrzna RKP

Rysunek 2. Architektura wewnętrzna RKP

Dodatkowe informacje o architekturze wewnętrznej RKP:

  • RKPD Mainline APEX – com.android.rkpd

    • Aplikacja RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • Fragment serwera systemu RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • Interfejs/implementacja HAL (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

Format pakietu

Aplikacja i inne funkcje modułu są pakowane jako plik APEXcom.android.rkpd.

Zależności

Moduł RKP nadal zależy od istnienia implementacji IRemotelyProvisionedComponent, aby udostępnić klucze uwierzytelniania i żądania certyfikatów.

Strategia testowania

Wersja AOSP aplikacji APEX zawiera testy jednostkowe, które mogą przeprowadzić dostawcy OEM.