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

«تأمین کلید از راه دور» (RKP) از Android 12 بخشی از AOSP بوده است. ‫Android 14 واحد به‌روزرسانی‌پذیر تدارک از دور را معرفی می‌کند که با بهبود استحکام API سرویس و کاهش زمان معرفی هرگونه بهبود در آن، انعطاف‌پذیری ویژگی را افزایش می‌دهد.

انگیزه

با بسته‌بندی همه چیز در APEX، سرویس RKP را ساده کنید.

قبل‌از Android 14، «پلاتفرم کلید محافظت‌شده» به یک برنامه، RemoteProvisioner، و «انبار کلید ۲.۰» تقسیم می‌شد. برنامه RemoteProvisioner مسئول تماس با زیرینه RKP بود و Keystore 2.0 مسئولیت ذخیره کلیدها و ارتباط با HAL را برعهده داشت. این معماری خوبی نبود زیرا کلیدهای RKP ازنظر فراداده پیوست‌شده تفاوت قابل‌توجهی با کلیدهای Keystore دارند. علاوه‌براین، این کار باعث ایجاد تغییرات ناخوشایند در کد چارچوب Keystore شد تا به RemoteProvisioner درباره احتمال کمبود منابع هشدار دهد.

‫RKP به‌عنوان یک واحد Mainline طراحی شده است تا با بسته‌بندی مرتب همه چیز در APEX، این نقاط را بهبود بخشد.

مرز واحد

‫RKP Mainline APEX،‏ com.android.rkpd، حاوی برنامه «برنامه پس‌زمینه آماده‌سازی کلید ازراه‌دور» (RKPD) و مؤلفه سرور سیستم آماده‌سازی ازراه‌دور (ساخته‌شده با جاوا) است.

معماری پشته

شکل ۱ معماری پشته RKP را نشان می‌دهد.

معماری پشته RKP

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

معماری داخلی

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

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

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

اطلاعات تکمیلی درباره معماری داخلی RKP:

  • RKPD Mainline APEX - com.android.rkpd

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

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

قالب بسته

برنامه و دیگر عملکردهای واحد به‌صورت فایل APEX بسته‌بندی شده است com.android.rkpd.

وابستگی‌ها

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

راهبرد آزمایش

نسخه AOSP برنامه APEX حاوی آزمون‌های واحدی است که «سازندگان اصلی محصول» می‌توانند اجرا کنند.