הקצאת מפתח מרחוק (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.
איור 1. ארכיטקטורת מחסנית RKP.
ארכיטקטורה פנימית
איור 2 ממחיש את הארכיטקטורה הפנימית של RKP.
איור 2. ארכיטקטורה פנימית של RKP.
מידע נוסף על הארכיטקטורה הפנימית של RKP:
RKPD Mainline APEX -
com.android.rkpd
- אפליקציית RKPD (Java)
-
packages/modules/RemoteKeyProvisioning/app
-
- קטע שרת מערכת RKPD (Java)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- אפליקציית RKPD (Java)
ממשק/יישום HAL (Rust/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
פורמט חבילה
היישום ופונקציות אחרות של המודול ארוזים כקובץ APEX com.android.rkpd
.
תלות
מודול RKP ממשיך להיות תלוי בקיומם של יישומי IRemotelyProvisionedComponent
כדי לספק את מפתחות האישור ובקשות האישור.
אסטרטגיית בדיקה
גרסת AOSP של האפליקציה APEX מכילה בדיקות יחידות שיצרני OEM יכולים להפעיל.