การจัดสรรกุญแจรีโมต

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

แรงจูงใจ

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

ก่อน Android 14 ระบบได้แยก RKP ออกเป็นแอป RemoteProvisioner และ Keystore 2.0 แอป RemoteProvisioner มีหน้าที่รับผิดชอบในการติดต่อแบ็กเอนด์ RKP และ Keystore 2.0 มีหน้าที่รับผิดชอบทั้งการจัดเก็บคีย์และการสื่อสารกับ HAL สถาปัตยกรรมนี้ไม่ดีเนื่องจากคีย์ RKP แตกต่างจากคีย์ของ Keystore อย่างมากในแง่ของข้อมูลเมตาที่แนบมา นอกจากนี้ ยังต้องมีการแก้ไขโค้ดเฟรมเวิร์กคีย์สโตร์อย่างยุ่งยากเพื่อแจ้งให้ RemoteProvisioner ทราบถึงปัญหาการขาดแคลนทรัพยากรที่อาจเกิดขึ้น

RKP เป็นโมดูลหลักที่ออกแบบมาเพื่อปรับปรุงจุดเหล่านี้ด้วยการบรรจุทุกอย่างไว้ใน APEX อย่างเป็นระเบียบ

ขอบเขตของโมดูล

APEX หลักของ RKP com.android.rkpd มีแอปพลิเคชันรีโมตคีย์การจัดสรร (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 interface/implementation (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

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

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

ทรัพยากร Dependency

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

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

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