การจัดสรรคีย์จากระยะไกล

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

แรงจูงใจ

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

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

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

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

APEX หลักของ RKP, com.android.rkpd มีแอปพลิเคชัน 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 เพื่อจัดหาคีย์การรับรอง และคำขอใบรับรอง

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

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