Funkcja zdalnego udostępniania kluczy (RKP) jest częścią AOSP od Androida 12. Android 14 wprowadza moduł zdalnego udostępniania, który można aktualizować. Zwiększa on odporność funkcji, poprawiając niezawodność interfejsu API usługi i skracając czas 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 backendem RKP, a Keystore 2.0 za przechowywanie kluczy i komunikację z warstwami HAL. Nie była to dobra architektura, ponieważ klucze RKP znacznie różnią się od kluczy Keystore pod względem dołączonych metadanych. Wymagało to też niewygodnych modyfikacji kodu platformy Keystore, aby powiadamiać RemoteProvisioner
o potencjalnym braku zasobów.
RKP jako moduł Mainline ma na celu poprawę tych aspektów poprzez uporządkowane spakowanie wszystkiego w APEX.
Granica modułu
Główny pakiet APEX RKP, com.android.rkpd
, zawiera aplikację Remote Key Provisioning Daemon (RKPD) i komponent serwera zdalnego systemu udostępniania (zbudowany w języku Java).
Architektura stosu
Rysunek 1 przedstawia architekturę stosu RKP.
Rysunek 1. Architektura stosu RKP.
Architektura wewnętrzna
Ilustracja 2 przedstawia wewnętrzną architekturę RKP.
Rysunek 2. Wewnętrzna architektura 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
- Aplikacja RKPD (Java)
Interfejs/implementacja HAL (Rust/C++)
IRemotelyProvisionedComponent
hardware/interfaces/security/keymint
Format pakietu
Aplikacja i inne funkcje modułu są spakowane w plik APEX com.android.rkpd
.
Zależności
Moduł RKP nadal zależy od implementacji IRemotelyProvisionedComponent
, które dostarczają klucze atestu i żądania certyfikatów.
Strategia testowania
Wersja APEX aplikacji AOSP zawiera testy jednostkowe, które mogą uruchamiać producenci OEM.