การจัดหากุญแจรีโมท

Remote Key Provisioning (RKP) เป็นส่วนหนึ่งของ AOSP ตั้งแต่ Android 12 โดย Android 14 นำเสนอโมดูลที่อัปเดตได้สำหรับการจัดเตรียมระยะไกล ซึ่งเพิ่มความยืดหยุ่นของฟีเจอร์โดยการปรับปรุงความทนทานของ API บริการ และลดเวลาในการแนะนำการปรับปรุงใดๆ

แรงจูงใจ

ลดความซับซ้อนของบริการ RKP ด้วยการบรรจุทุกอย่างลงใน APEX

ก่อน Android 14 RKP ถูกแยกออกเป็นแอป RemoteProvisioner และ Keystore 2.0 แอป RemoteProvisioner รับผิดชอบในการติดต่อแบ็กเอนด์ RKP และ Keystore 2.0 รับผิดชอบทั้งการจัดเก็บคีย์และการสื่อสารกับ HAL นี่ไม่ใช่สถาปัตยกรรมที่ดีเพราะคีย์ RKP แตกต่างอย่างมากจากคีย์ Store ในแง่ของเมตาดาต้าที่แนบมา นอกจากนี้ จำเป็นต้องมีการปรับเปลี่ยนโค้ดกรอบงาน 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 เมนไลน์ APEX - com.android.rkpd

    • แอป RKPD (ชวา)
      • packages/modules/RemoteKeyProvisioning/app
    • แฟรกเมนต์เซิร์ฟเวอร์ระบบ RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • อินเทอร์เฟซ/การใช้งาน HAL (สนิม/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

รูปแบบแพ็คเกจ

แอปพลิเคชันและฟังก์ชันอื่นๆ ของโมดูลได้รับการบรรจุเป็นไฟล์ APEX com.android.rkpd

การพึ่งพาอาศัยกัน

โมดูล RKP ยังคงขึ้นอยู่กับการมีอยู่ของการใช้งาน IRemotelyProvisionedComponent เพื่อจัดเตรียมคีย์การรับรองและการร้องขอใบรับรอง

กลยุทธ์การทดสอบ

แอปพลิเคชัน APEX เวอร์ชัน AOSP มีการทดสอบหน่วยที่ OEM สามารถทำงานได้