Uzaktan Anahtar Sağlama (RKP), Android 12'den beri AOSP'nin bir parçasıdır. Android 14, hizmet API'sinin sağlamlığını artırarak ve hizmette iyileştirmeler yapma süresini kısaltarak özelliklerin dayanıklılığını artıran, uzaktan sağlama ile güncellenebilen bir modül sunar.
Motivasyon
Her şeyi bir APEX'e paketleyerek RKP hizmetini basitleştirin.
Android 14'ten önce RKP, bir uygulama,
RemoteProvisioner ve Keystore 2.0 olarak ayrılıyordu. RemoteProvisioner uygulaması, RKP arka ucuyla iletişim kurmaktan, Keystore 2.0 ise hem anahtarları depolamaktan hem de HAL'lerle iletişim kurmaktan sorumluydu. RKP anahtarları, eklenen meta veriler açısından Keystore anahtarlarından önemli ölçüde farklı olduğundan bu iyi bir mimari değildi. Ayrıca, bu durum, RemoteProvisioner'yı olası kaynak kıtlığı konusunda uyarmak için Keystore çerçeve kodunda gerekli olan garip değişikliklere yol açtı.
RKP, Mainline modülü olarak her şeyi bir APEX'e düzgün bir şekilde yerleştirerek bu noktalarda iyileştirme yapacak şekilde tasarlanmıştır.
Modül sınırı
RKP Mainline APEX'i (com.android.rkpd), Remote Key Provisioning Daemon (RKPD) uygulamasını ve uzaktan sağlama sistemi sunucu bileşenini (Java ile oluşturulmuş) içerir.
Yığın mimarisi
Şekil 1'de RKP yığını mimarisi gösterilmektedir.
Şekil 1. RKP yığını mimarisi.
İç mimari
Şekil 2'de RKP'nin dahili mimarisi gösterilmektedir.
Şekil 2. RKP'nin iç mimarisi.
RKP'nin dahili mimarisi hakkında ek bilgiler:
RKPD Mainline APEX -
com.android.rkpd- RKPD uygulaması (Java)
packages/modules/RemoteKeyProvisioning/app
- RKPD sistem sunucusu parçası (Java)
packages/modules/RemoteKeyProvisioning/system-server
- RKPD uygulaması (Java)
HAL arayüzü/uygulaması (Rust/C++)
IRemotelyProvisionedComponenthardware/interfaces/security/keymint
Paket biçimi
Uygulama ve modülün diğer işlevleri APEX dosyası com.android.rkpd olarak paketlenir.
Bağımlılıklar
RKP modülü, onay anahtarlarını ve sertifika isteklerini sağlamak için IRemotelyProvisionedComponent uygulamalarının varlığına bağlı olmaya devam eder.
Test stratejisi
Uygulama APEX'inin AOSP sürümünde, OEM'lerin çalıştırabileceği birim testleri bulunur.