تامین کلید از راه دور

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 را نشان می دهد.

معماری پشته RKP

شکل 1. معماری پشته RKP.

معماری داخلی

شکل 2 معماری داخلی RKP را نشان می دهد.

معماری داخلی RKP

شکل 2. معماری داخلی RKP.

اطلاعات اضافی در مورد معماری داخلی RKP:

  • RKPD Mainline APEX - com.android.rkpd

    • برنامه RKPD (جاوا)
      • packages/modules/RemoteKeyProvisioning/app
    • قطعه سرور سیستم RKPD (جاوا)
      • packages/modules/RemoteKeyProvisioning/system-server
  • رابط/پیاده سازی HAL (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

قالب بسته

برنامه و سایر قابلیت های ماژول به صورت فایل APEX com.android.rkpd بسته بندی شده است.

وابستگی ها

ماژول RKP همچنان به وجود پیاده سازی های IRemotelyProvisionedComponent برای ارائه کلیدهای تصدیق و درخواست های گواهی وابسته است.

استراتژی تست

نسخه AOSP برنامه APEX شامل تست های واحد است که OEM ها می توانند اجرا کنند.