ตาม เอกสารคำจำกัดความความเข้ากันได้ของ Android OEM จะต้องจัดเตรียมวิธีในการเปิดใช้งานการพัฒนาแอป อย่างไรก็ตาม การให้ทางเลือกแก่นักพัฒนาซอฟต์แวร์ภายในรถยนต์ทำให้รถเหล่านั้นเสี่ยงต่อการถูกโจมตี ขณะนี้ OEM สามารถควบคุมการเข้าถึงตัวเลือกของนักพัฒนาได้โดยใช้กลไกโทเค็นการเข้ารหัสลับที่ได้รับการตรวจสอบสิทธิ์ โดยเฉพาะอย่างยิ่ง OEM สามารถ:
- ตั้งค่าข้อจำกัดเริ่มต้นที่ต้องการก่อนการบู๊ตครั้งแรก
- อนุญาตนักพัฒนาอย่างปลอดภัยด้วยโทเค็น crypto หากต้องการ
- ใช้การเปลี่ยนแปลงข้อจำกัดเมื่อนักพัฒนาได้รับการตรวจสอบสิทธิ์และได้รับอนุญาตแล้ว
บทความนี้จะอธิบายการใช้งานอ้างอิงซึ่งประกอบด้วยแอปตัวควบคุมข้อจำกัดในการดีบักและจุดสิ้นสุดของผู้ออกโทเค็นระยะไกล
คำศัพท์เฉพาะทาง
นอกจาก Terminology แล้ว ยังมีการใช้คำศัพท์เหล่านี้ในบทความนี้:
- JSON Web Signature (JWS) กำหนดไว้ใน RFC 7515
- สถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST)
ออกแบบ
OEM สามารถให้สิทธิ์นักพัฒนาด้วยโทเค็น JSON Web Signature (JWS) (RFC7515) ในการใช้งานอ้างอิง โทเค็นการเข้าถึงจะออกโดย OEM และใช้โดยแอปตัวควบคุมข้อจำกัด โทเค็นการเข้าถึงได้รับการออกแบบมาเพื่อต้านทานการโจมตีซ้ำและโทเค็นปลอมแปลง
รูปที่ 1 การออกแบบ
บูรณาการและการกำหนดค่า
OEM ต้องระบุข้อจำกัดเริ่มต้นที่ต้องการในการบูตครั้งแรก ซึ่งทำได้ด้วยการซ้อนทับทรัพยากรแบบคงที่หลายรายการเพื่อแทนที่ค่าเริ่มต้นในกรอบงาน AOSP
ข้อจำกัดดีฟอลต์สำหรับผู้ใช้ระบบ headless สามารถกำหนดคอนฟิกด้วยสตริง config_defaultFirstUserRestrictions
ใน frameworks/base/core/res/res/values/config.xml
ตัวอย่างเช่น:
<!-- User restrictions set when the first user is created. Note: Also update appropriate overlay files. --> <string-array translatable="false" name="config_defaultFirstUserRestrictions"> <item>no_debugging_features</item> </string-array>
ข้อจำกัดเริ่มต้นสำหรับผู้ขับขี่ ผู้โดยสาร และแขกสามารถกำหนดค่าได้ใน frameworks/base/core/res/res/xml/config_user_types.xml
OEM สามารถซ้อนทับ| สตริงเหล่านี้เพื่อกำหนดข้อจำกัดเริ่มต้นให้กับผู้ใช้แต่ละประเภทตามลำดับ เช่น
<user-types> <full-type name="android.os.usertype.full.SECONDARY" > <default-restrictions no_debugging_features="true"/> </full-type> <full-type name="android.os.usertype.full.GUEST" > <default-restrictions no_debugging_features="true"/> </full-type> </user-types>
การใช้งานอ้างอิงมีให้ที่ตำแหน่งต่อไปนี้ใน AOSP:
packages/apps/Car/DebuggingRestrictionController
การทดสอบ
Google แนะนำให้ OEM เริ่มต้นด้วยการใช้งานอ้างอิงและต่อยอดจากจุดนั้น
- หลังจากกำหนดค่าข้อจำกัดที่ต้องการในไฟล์โอเวอร์เลย์แล้ว ให้คอมไพล์ AAOS และตรวจสอบโฟลว์ที่กำหนดไว้ ใช้แอปอ้างอิงและบริการที่เปิดใช้งาน JWS ในพื้นที่เพื่อตรวจสอบการตั้งค่าการเข้าถึงของคุณ
- กำหนดค่าระบบเพื่อใช้บริการคลาวด์ที่เปิดใช้งาน JWS (ไม่บังคับ) ตรวจสอบว่าคุณกำลังสังเกตโฟลว์ที่ต้องการในบริการแบ็กเอนด์ของคุณ