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.
Rysunek 1. Architektura stosu RKP.
Architektura wewnętrzna
Rysunek 2 ilustruje wewnętrzną architekturę 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
-
- Aplikacja RKPD (Java)
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.