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.
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 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ą 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.