اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
محرّك تركيب معرّف الجهاز
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
أداة إنشاء معرّفات الأجهزة (DICE) هي
مواصفة مجموعة الحوسبة الموثوق بها (TCG)
التي تم اعتمادها في Android.
وتعمل هذه الميزة على إنشاء مجموعة من الهويات التشفيرية القوية وغير القابلة للتغيير لكل جزء من البرامج الثابتة التي يتم تحميلها
أثناء تسلسل بدء التشغيل. تتيح هذه الهويات التحقّق عن بُعد من حالة أمان
الجهاز، ولا يمكن التحايل عليها إلا من خلال اختراق نظام التشغيل (ROM).
عملية اشتقاق 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 وتجزئة صورة البرامج الثابتة التالية لإنشاء
CDI مشتق جديد. تُنشئ كل مرحلة مفتاحَي تشفير خاصَّين بها وتستخدمهما لتوقيع شهادة
تحتوي على قياسات خاصة بالمرحلة وبيانات وصفية أخرى مرتبطة بها.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Device Identifier Composition Engine\n\nThe Device Identifier Composition Engine (DICE) is a\n[Trusted Computing Group (TCG) specification](https://trustedcomputinggroup.org/what-is-a-device-identifier-composition-engine-dice/)\nthat has been [adopted into Android](https://pigweed.googlesource.com/open-dice/+/refs/heads/android16-release/docs/android.md).\nIt creates a set of strong, immutable cryptographic identities for each piece of firmware loaded\nduring the boot sequence. These identities enable remote verification of a device's security\nposture, which can only be evaded by compromising the ROM.\n\nDICE derivation process\n-----------------------\n\n***Figure 1.** Simplified DICE derivation process.*\n\n\nThe DICE derivation process ensures that any change to any firmware image results in a new unique\nidentifier for that stage and every stage thereafter. This is because each loaded firmware stage\nmeasures and certifies the next, generating unique identities and associated keys that prevent\nbypassing or tampering. The [read-only memory (ROM)](https://en.wikipedia.org/wiki/Read-only_memory)\nprocesses the measurement, configuration, and unique device secret (UDS) with a key derivation\nfunction (KDF) to derive the secret for the next stage to be loaded. This secret is referred to as\na compound device identifier (CDI).\n\n### Stage 0: Initialization\n\n\nThe DICE process begins with the chipset's ROM loading the UDS from a bank of immutable data,\ntypically fuses. This UDS is securely provisioned with a cryptographically random value during the\nchip production process. After reading the UDS, the ROM uses a vendor-dependent hardware-locking\nmechanism such as a latch to lock UDS access until the next boot.\n\n### Stage 1: Initial key derivation\n\n\nThe ROM uses the UDS as input to a [key derivation function (KDF)](https://en.wikipedia.org/wiki/Key_derivation_function)\nto generate the permanent asymmetric key pair that uniquely identifies that device. It measures\nthe next firmware stage, including metadata about the boot environment such as whether secure boot\nis enabled. The ROM then combines the UDS, firmware measurement, and configuration data in the KDF\nto derive the first CDI, which is passed to the next stage as a secret.\n\n### Stage 2 to n: Recursive key derivation\n\n\nThe process then repeats. In all subsequent stages, the CDI from the previous stage serves as the\ninput for a new KDF. This KDF uses the CDI and the hash of the next firmware image to produce a\nnew derived CDI. Each stage generates its own key pair and uses it to sign a certificate\ncontaining stage-specific measurements and other associated metadata."]]