הקצאת מפתח מרחוק

הקצאת מפתח מרחוק (RKP) הייתה חלק מ-AOSP מאז אנדרואיד 12. אנדרואיד 14 מציגה מודול הניתן לעדכון של הקצאה מרחוק, שמגביר את עמידות התכונות על ידי שיפור החוסן של ה-API של השירות והפחתת הזמן להכנסת שיפורים כלשהם בו.

מוֹטִיבָצִיָה

פשט את שירות RKP על ידי אריזה של הכל לתוך APEX.

לפני אנדרואיד 14, RKP הופרד לאפליקציה, RemoteProvisioner ו-Keystore 2.0. אפליקציית RemoteProvisioner הייתה אחראית ליצירת קשר עם הקצה העורפי של RKP, ו-Keystore 2.0 הייתה אחראית גם לאחסון המפתחות וגם לתקשורת עם HALs. זו לא הייתה ארכיטקטורה טובה מכיוון שמפתחות RKP שונים באופן משמעותי ממפתחות Keystore במונחים של מטא נתונים מצורפים. בנוסף, זה דרש שינויים מביכים בקוד המסגרת של Keystore כדי להתריע בפני RemoteProvisioner על הרעבה פוטנציאלית של משאבים.

RKP כמודול Mainline נועד לשפר את הנקודות הללו על ידי אריזה מסודרת של הכל לתוך 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 (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • קטע שרת מערכת RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • ממשק/יישום HAL (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

פורמט חבילה

היישום ופונקציות אחרות של המודול ארוזים כקובץ APEX com.android.rkpd .

תלות

מודול RKP ממשיך להיות תלוי בקיומם של יישומי IRemotelyProvisionedComponent כדי לספק את מפתחות האישור ובקשות האישור.

אסטרטגיית בדיקה

גרסת AOSP של האפליקציה APEX מכילה בדיקות יחידות שיצרני OEM יכולים להפעיל.