Remote Key Provisioning (RKP) از اندروید 12 بخشی از AOSP بوده است. اندروید 14 یک ماژول قابل به روز رسانی تامین از راه دور را معرفی می کند که با بهبود استحکام API سرویس و کاهش زمان ارائه هرگونه پیشرفت در آن، انعطاف پذیری ویژگی را افزایش می دهد.
انگیزه
با بسته بندی همه چیز در یک APEX، سرویس RKP را ساده کنید.
قبل از Android 14، RKP به یک برنامه، RemoteProvisioner
و Keystore 2.0 تفکیک شده بود. برنامه RemoteProvisioner
مسئول تماس با باطن RKP بود و Keystore 2.0 هم وظیفه ذخیره کلیدها و هم ارتباط با HAL ها را بر عهده داشت. این یک معماری خوب نبود، زیرا کلیدهای RKP از نظر متادیتای پیوست شده تفاوت قابل توجهی با کلیدهای Keystore دارند. علاوه بر این، این نیاز به اصلاحات ناخوشایند در کد چارچوب Keystore داشت تا RemoteProvisioner
در مورد گرسنگی احتمالی منابع آگاه کند.
RKP به عنوان یک ماژول Mainline برای بهبود این نقاط با بسته بندی منظم همه چیز در یک APEX طراحی شده است.
مرز ماژول
RKP Mainline APEX، com.android.rkpd
، شامل برنامه Remote Key Provisioning Daemon (RKPD) و یک جزء سرور سیستم تامین از راه دور (ساخته شده با جاوا) است.
معماری پشته
شکل 1 معماری پشته RKP را نشان می دهد.
شکل 1. معماری پشته RKP.
معماری داخلی
شکل 2 معماری داخلی RKP را نشان می دهد.
شکل 2. معماری داخلی RKP.
اطلاعات اضافی در مورد معماری داخلی RKP:
RKPD Mainline APEX -
com.android.rkpd
- برنامه RKPD (جاوا)
-
packages/modules/RemoteKeyProvisioning/app
-
- قطعه سرور سیستم RKPD (جاوا)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- برنامه RKPD (جاوا)
رابط/پیاده سازی HAL (Rust/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
قالب بسته
برنامه و سایر قابلیت های ماژول به صورت فایل APEX com.android.rkpd
بسته بندی شده است.
وابستگی ها
ماژول RKP همچنان به وجود پیاده سازی های IRemotelyProvisionedComponent
برای ارائه کلیدهای تصدیق و درخواست های گواهی وابسته است.
استراتژی تست
نسخه AOSP برنامه APEX شامل تست های واحد است که OEM ها می توانند اجرا کنند.