توفير المفتاح البعيد ، توفير المفتاح البعيد

لقد كان Remote Key Provisioning (RKP) جزءًا من AOSP منذ Android 12. يقدم Android 14 وحدة قابلة للتحديث للتوفير عن بعد تعمل على زيادة مرونة الميزات من خلال تحسين قوة واجهة برمجة تطبيقات الخدمة وتقليل الوقت اللازم لإدخال أي تحسينات عليها.

تحفيز

قم بتبسيط خدمة RKP عن طريق تجميع كل شيء في APEX.

قبل Android 14، تم فصل RKP إلى تطبيق، RemoteProvisioner ، وKeystore 2.0. كان تطبيق RemoteProvisioner مسؤولاً عن الاتصال بالواجهة الخلفية لـ RKP، وكان Keystore 2.0 مسؤولاً عن تخزين المفاتيح والتواصل مع HALs. لم تكن هذه بنية جيدة لأن مفاتيح RKP تختلف بشكل كبير عن مفاتيح Keystore من حيث البيانات الوصفية المرفقة. بالإضافة إلى ذلك، تطلب هذا إجراء تعديلات غريبة على كود إطار عمل Keystore لتنبيه RemoteProvisioner بشأن التجويع المحتمل للموارد.

تم تصميم RKP كوحدة رئيسية لتحسين هذه النقاط من خلال تعبئة كل شيء بدقة في APEX.

حدود الوحدة النمطية

يحتوي RKP Mainline APEX، com.android.rkpd ، على تطبيق Remote Key Provisioning Daemon (RKPD) ومكون خادم نظام التزويد عن بعد (مُصمم باستخدام Java).

بنية المكدس

يوضح الشكل 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 على اختبارات الوحدة التي يمكن لمصنعي المعدات الأصلية تشغيلها.