Device Identifier Composition Engine (DICE) คือข้อกำหนดของ Trusted Computing Group (TCG) ที่นำมาใช้ใน Android โดยจะสร้างชุดข้อมูลระบุตัวตนในการเข้ารหัสที่รัดกุมและเปลี่ยนแปลงไม่ได้สำหรับเฟิร์มแวร์แต่ละรายการที่โหลด ในระหว่างลำดับการบูต ข้อมูลประจำตัวเหล่านี้ช่วยให้ยืนยันความปลอดภัยของอุปกรณ์จากระยะไกลได้ ซึ่งจะหลบเลี่ยงได้ก็ต่อเมื่อมีการบุกรุก ROM เท่านั้น
กระบวนการสร้าง DICE
รูปที่ 1 กระบวนการอนุพันธ์ DICE ที่ง่ายขึ้น
กระบวนการอนุพันธ์ของ DICE ช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงใดๆ ในอิมเมจเฟิร์มแวร์จะส่งผลให้เกิดตัวระบุใหม่ที่ไม่ซ้ำกัน สำหรับระยะนั้นและทุกระยะหลังจากนั้น เนื่องจากเฟิร์มแวร์ที่โหลดในแต่ละขั้นตอนจะวัดและรับรองขั้นตอนถัดไป ซึ่งจะสร้างข้อมูลประจำตัวที่ไม่ซ้ำกันและคีย์ที่เกี่ยวข้องเพื่อป้องกันการข้ามหรือการดัดแปลง หน่วยความจำแบบอ่านอย่างเดียว (ROM) จะประมวลผลการวัด การกำหนดค่า และข้อมูลลับของอุปกรณ์ที่ไม่ซ้ำกัน (UDS) ด้วยฟังก์ชันการได้คีย์ (KDF) เพื่อให้ได้ข้อมูลลับสำหรับโหลดในขั้นตอนถัดไป โดยข้อมูลลับนี้เรียกว่า ตัวระบุอุปกรณ์แบบรวม (CDI)
ขั้นตอนที่ 0: การเริ่มต้น
กระบวนการ DICE เริ่มต้นด้วย ROM ของชิปเซ็ตที่โหลด UDS จากกลุ่มข้อมูลที่ไม่เปลี่ยนแปลง ซึ่งโดยปกติคือฟิวส์ ระบบจะจัดสรร UDS นี้อย่างปลอดภัยด้วยค่าแบบสุ่มที่เข้ารหัสลับในระหว่าง กระบวนการผลิตชิป หลังจากอ่าน UDS แล้ว ROM จะใช้กลไกการล็อกฮาร์ดแวร์ที่ขึ้นอยู่กับผู้จำหน่าย เช่น แลตช์ เพื่อล็อกการเข้าถึง UDS จนกว่าจะมีการบูตครั้งถัดไป
ขั้นตอนที่ 1: การได้คีย์เริ่มต้น
ROM ใช้ UDS เป็นอินพุตไปยังฟังก์ชันการได้คีย์ (KDF) เพื่อสร้างคู่คีย์แบบอสมมาตรถาวรที่ระบุอุปกรณ์นั้นๆ โดยเฉพาะ โดยจะวัด เฟิร์มแวร์ในขั้นตอนถัดไป รวมถึงข้อมูลเมตาเกี่ยวกับสภาพแวดล้อมการบูต เช่น มีการเปิดใช้การบูตที่ปลอดภัย หรือไม่ จากนั้น ROM จะรวม UDS, การวัดเฟิร์มแวร์ และข้อมูลการกำหนดค่าใน KDF เพื่อสร้าง CDI แรก ซึ่งจะส่งไปยังขั้นตอนถัดไปเป็นข้อมูลลับ
ขั้นตอนที่ 2 ถึง n: การสร้างคีย์แบบเรียกซ้ำ
จากนั้นกระบวนการจะทำซ้ำ ในทุกขั้นตอนต่อๆ ไป CDI จากขั้นตอนก่อนหน้าจะทำหน้าที่เป็น อินพุตสำหรับ KDF ใหม่ KDF นี้ใช้ CDI และแฮชของอิมเมจเฟิร์มแวร์ถัดไปเพื่อสร้าง CDI ใหม่ที่ได้มา แต่ละขั้นตอนจะสร้างคู่คีย์ของตัวเองและใช้เพื่อลงนามในใบรับรอง ที่มีการวัดเฉพาะขั้นตอนและข้อมูลเมตาอื่นๆ ที่เกี่ยวข้อง