محرّك تركيب معرّف الجهاز

‫Device Identifier Composition Engine (DICE) هو مواصفات Trusted Computing Group (TCG) تم اعتمادها في Android. ويتم إنشاء مجموعة من هويات التشفير القوية والثابتة لكل جزء من البرامج الثابتة يتم تحميله أثناء تسلسل التشغيل. تتيح هذه الهويات التحقّق عن بُعد من مستوى أمان الجهاز، ولا يمكن تجنُّب ذلك إلا من خلال اختراق ذاكرة القراءة فقط (ROM).

عملية اشتقاق DICE

عملية مبسطة لاشتقاق DICE

الشكل 1. عملية مبسطة لاشتقاق DICE

تضمن عملية اشتقاق DICE أنّ أي تغيير في أي صورة للبرامج الثابتة يؤدي إلى إنشاء معرّف فريد جديد لتلك المرحلة وكل مرحلة تليها. ويرجع ذلك إلى أنّ كل مرحلة من مراحل البرامج الثابتة التي يتم تحميلها تقيس المرحلة التالية وتصدّق عليها، ما يؤدي إلى إنشاء هويات فريدة ومفاتيح مرتبطة بها تمنع تجاوزها أو التلاعب بها. تعالج ذاكرة القراءة فقط (ROM) القياسات والإعدادات ورمز الجهاز السري الفريد (UDS) باستخدام دالة اشتقاق المفتاح (KDF) لاشتقاق الرمز السري اللازم تحميله في المرحلة التالية. يُشار إلى هذا الرمز السري باسم معرّف الجهاز المركّب (CDI).

المرحلة 0: التهيئة

تبدأ عملية DICE بتحميل ROM الخاص بمجموعة الشرائح لـ UDS من مجموعة بيانات غير قابلة للتغيير، عادةً ما تكون عبارة عن صمامات. يتم توفير معرّف الجهاز الفريد هذا بشكل آمن باستخدام قيمة عشوائية مشفّرة أثناء عملية إنتاج الشريحة. بعد قراءة UDS، تستخدم ذاكرة القراءة فقط (ROM) آلية قفل للأجهزة تعتمد على المورّد، مثل مزلاج، لقفل إمكانية الوصول إلى UDS إلى حين إعادة التشغيل التالية.

المرحلة 1: اشتقاق المفتاح الأوّلي

يستخدم نظام التشغيل ROM معرّف الجهاز الفريد كإدخال لدالة اشتقاق المفتاح (KDF) لإنشاء زوج مفاتيح غير متماثل دائم يحدّد هذا الجهاز بشكل فريد. يقيس هذا المقياس مرحلة البرامج الثابتة التالية، بما في ذلك البيانات الوصفية حول بيئة التشغيل، مثل ما إذا كان التشغيل الآمن مفعّلاً. بعد ذلك، يجمع نظام التشغيل ROM بين بيانات نظام UDS وقياس البرامج الثابتة وبيانات الإعداد في KDF لاستخلاص أول رمز CDI، والذي يتم تمريره إلى المرحلة التالية كسرّ.

المرحلة 2 إلى n: اشتقاق المفتاح المتكرّر

بعد ذلك، تتكرر العملية. في جميع المراحل اللاحقة، يتم استخدام CDI من المرحلة السابقة كمدخل لوظيفة KDF جديدة. تستخدم وظيفة اشتقاق المفاتيح هذه معرّف الجهاز المركّب (CDI) وقيمة التجزئة لنسخة البرامج الثابتة التالية من أجل إنشاء معرّف جهاز مركّب مشتق جديد. تنشئ كل مرحلة زوج المفاتيح الخاص بها وتستخدمه لتوقيع شهادة تحتوي على قياسات خاصة بالمرحلة وبيانات وصفية أخرى مرتبطة بها.