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
Aplikacja RKP Mainline APEX, com.android.rkpd
, zawiera aplikację demona zdalnego obsługi kluczy (RKPD) oraz komponent serwera systemu zdalnego obsługi kluczy (stworzony w Javie).
Architektura stosu
Rysunek 1 przedstawia architekturę zbioru RKP.
Rysunek 1. Architektura zbioru RKP
Architektura wewnętrzna
Rysunek 2 przedstawia architekturę wewnętrzną 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 kodu serwera 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ą pakowane jako plik APEX com.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ą uruchamiać producenci urządzeń.