Udostępnianie kluczy zdalnych

Remote Key Provisioning (RKP) jest częścią AOSP od wersji Androida 12. W Androidzie 14 wprowadzono aktualizowalny moduł zdalnego udostępniania, który zwiększa odporność funkcji poprzez poprawę niezawodności interfejsu API usługi i skrócenie czasu wprowadzania w nim jakichkolwiek ulepszeń.

Motywacja

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

Przed Androidem 14 RKP był podzielony na aplikację, RemoteProvisioner i Keystore 2.0. Aplikacja RemoteProvisioner odpowiadała za kontakt z backendem RKP, a Keystore 2.0 odpowiadał zarówno za przechowywanie kluczy, jak i komunikację z warstwami HAL. To nie była dobra architektura, ponieważ klucze RKP znacznie różnią się od kluczy magazynu kluczy pod względem dołączonych metadanych. Dodatkowo wymagało to niezręcznych modyfikacji kodu struktury magazynu kluczy, aby ostrzec RemoteProvisioner o potencjalnym wyczerpaniu zasobów.

RKP jako moduł Mainline został zaprojektowany tak, aby poprawić te punkty, starannie pakując wszystko w APEX.

Granica modułu

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

Architektura stosu

Rysunek 1 ilustruje architekturę stosu RKP.

Architektura stosu RKP

Rysunek 1. Architektura stosu RKP.

Architektura wewnętrzna

Rysunek 2 ilustruje wewnętrzną architekturę RKP.

Architektura wewnętrzna RKP

Rysunek 2. Architektura wewnętrzna RKP.

Dodatkowe informacje o wewnętrznej architekturze RKP:

  • Główna linia RKPD 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 pozostałe funkcjonalności modułu spakowane są w postaci pliku APEX com.android.rkpd .

Zależności

Moduł RKP w dalszym ciągu zależy od istnienia implementacji IRemotelyProvisionedComponent w celu zapewnienia kluczy zaświadczenia i żądań certyfikatów.

Strategia testowania

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