از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
موتور ترکیب شناسه دستگاه
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
موتور ترکیب شناسه دستگاه (DICE) یک مشخصات گروه محاسباتی معتمد (TCG) است که در Android به کار گرفته شده است. مجموعهای از هویتهای رمزنگاری قوی و تغییرناپذیر برای هر قطعه از میانافزاری که در طول دنباله بوت بارگذاری میشود، ایجاد میکند. این هویتها تأیید از راه دور وضعیت امنیتی دستگاه را امکانپذیر میکنند، که تنها با به خطر انداختن ROM میتوان از آن اجتناب کرد.
فرآیند استخراج DICE

شکل 1. فرآیند استخراج DICE ساده شده.
فرآیند استخراج DICE تضمین میکند که هرگونه تغییر در هر تصویر میانافزار منجر به یک شناسه منحصربهفرد جدید برای آن مرحله و هر مرحله پس از آن میشود. این به این دلیل است که هر مرحله سفتافزار بارگذاری شده مرحله بعدی را اندازهگیری و تأیید میکند و هویتهای منحصربهفرد و کلیدهای مرتبط را ایجاد میکند که از دور زدن یا دستکاری جلوگیری میکند. حافظه فقط خواندنی (ROM) اندازهگیری، پیکربندی و راز دستگاه منحصربهفرد (UDS) را با یک تابع مشتق کلید (KDF) پردازش میکند تا راز را برای مرحله بعدی بارگیری کند. این راز به عنوان شناسه دستگاه ترکیبی (CDI) نامیده می شود.
مرحله 0: اولیه سازی
فرآیند DICE با بارگیری رام چیپست UDS از بانکی از داده های تغییرناپذیر، معمولاً فیوز، آغاز می شود. این UDS به طور ایمن با یک مقدار تصادفی رمزنگاری در طول فرآیند تولید تراشه ارائه می شود. پس از خواندن UDS، رام از مکانیزم قفل سخت افزاری وابسته به فروشنده مانند یک چفت برای قفل کردن دسترسی UDS تا بوت بعدی استفاده می کند.
مرحله 1: استخراج کلید اولیه
ROM از UDS به عنوان ورودی یک تابع مشتق کلید (KDF) برای تولید جفت کلید نامتقارن دائمی استفاده می کند که به طور منحصر به فرد آن دستگاه را شناسایی می کند. مرحله سفتافزار بعدی، از جمله ابردادههای مربوط به محیط بوت، مانند فعال بودن راهاندازی امن را اندازهگیری میکند. سپس ROM UDS، اندازهگیری میانافزار و دادههای پیکربندی را در KDF ترکیب میکند تا اولین CDI را استخراج کند، که به عنوان یک راز به مرحله بعدی منتقل میشود.
مرحله 2 تا n: اشتقاق کلید بازگشتی
سپس این روند تکرار می شود. در تمام مراحل بعدی، CDI از مرحله قبل به عنوان ورودی برای یک KDF جدید عمل می کند. این KDF از CDI و هش تصویر سیستم عامل بعدی برای تولید یک CDI مشتق شده جدید استفاده می کند. هر مرحله جفت کلید مخصوص به خود را تولید می کند و از آن برای امضای گواهینامه ای استفاده می کند که حاوی اندازه گیری های خاص مرحله و سایر ابرداده های مرتبط است.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]