Remote Key Provisioning (RKP) telah menjadi bagian dari AOSP sejak Android 12. Android 14 memperkenalkan modul penyediaan jarak jauh yang dapat diupdate dan meningkatkan ketahanan fitur dengan meningkatkan keandalan API layanan dan mengurangi waktu untuk memperkenalkan peningkatan apa pun.
Motivasi
Sederhanakan layanan RKP dengan mengemas semuanya ke dalam APEX.
Sebelum Android 14, RKP dipisahkan menjadi aplikasi,
RemoteProvisioner
, dan Keystore 2.0. Aplikasi RemoteProvisioner
bertanggung jawab untuk menghubungi backend RKP, dan Keystore 2.0 bertanggung jawab untuk
menyimpan kunci dan berkomunikasi dengan HAL. Ini bukan arsitektur
yang baik karena kunci RKP sangat berbeda dengan kunci Keystore dalam
hal metadata yang dilampirkan. Selain itu, hal ini memerlukan modifikasi yang canggung pada
kode framework Keystore untuk memberi tahu RemoteProvisioner
tentang potensi
kekurangan resource.
RKP sebagai modul Mainline dirancang untuk meningkatkan poin-poin ini dengan mengemas semuanya secara rapi ke dalam APEX.
Batas modul
APEX Mainline RKP, com.android.rkpd
, berisi aplikasi Remote Key Provisioning Daemon (RKPD) dan komponen server sistem penyediaan jarak jauh
(di-build dengan Java).
Arsitektur stack
Gambar 1 mengilustrasikan arsitektur stack RKP.
Gambar 1. Arsitektur stack RKP.
Arsitektur internal
Gambar 2 mengilustrasikan arsitektur internal RKP.
Gambar 2. Arsitektur internal RKP.
Informasi tambahan tentang arsitektur internal RKP:
APEX Utama RKPD -
com.android.rkpd
- Aplikasi RKPD (Java)
packages/modules/RemoteKeyProvisioning/app
- Fragmen server sistem RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- Aplikasi RKPD (Java)
Antarmuka/implementasi HAL (Rust/C++)
IRemotelyProvisionedComponent
hardware/interfaces/security/keymint
Format paket
Aplikasi dan fungsi lain dari modul dikemas sebagai file APEX
com.android.rkpd
.
Dependensi
Modul RKP terus bergantung pada keberadaan
implementasi IRemotelyProvisionedComponent
untuk menyediakan kunci pengesahan
dan permintaan sertifikat.
Strategi pengujian
APEX aplikasi versi AOSP berisi pengujian unit yang dapat dijalankan OEM.