Device Identifier Composition Engine (DICE) یک مشخصات گروه محاسباتی قابل اعتماد است که در Android به کار گرفته شده است. هدف DICE ایجاد یک هویت رمزنگاری غیرقابل تغییر برای یک دستگاه، همراه با اندازهگیری از راه دور از سیستمافزاری است که در هنگام بوت بارگذاری میشود. این فرآیند علاوه بر این، هویت های رمزنگاری را برای هر قطعه از میان افزاری که بارگذاری می شود ایجاد می کند. این هویتها کاملاً به هویت پایه و هر تصویر میانافزاری که در طول بوت معین بارگذاری میشود، وابسته هستند.
DICE زمانی شروع می شود که ROM برای چیپست یک راز دستگاه منحصر به فرد (UDS) را از بانکی از داده های تغییرناپذیر بارگیری می کند، معمولاً فیوزهایی که به طور ایمن با یک مقدار تصادفی رمزنگاری در طول فرآیند تولید تراشه تهیه شده است. هنگامی که رام این راز را خوانده است، هرگونه دسترسی بیشتر به UDS را با استفاده از مکانیزم قفل سخت افزاری وابسته به فروشنده مانند یک لچ قطع می کند. دسترسی به UDS تا فرآیند بوت بعدی بازیابی نمی شود.
ROM از UDS به عنوان ورودی یک تابع مشتق کلید (KDF) برای تولید جفت کلید نامتقارن دائمی که آن دستگاه خاص را شناسایی می کند، استفاده می کند. ROM مرحله بعدی سیستم عامل را در دنباله راهاندازی بارگیری و اندازهگیری میکند، در حالی که متادیتای اضافی را در مورد محیط بوت خاص مشخص میکند، مثلاً اگر بوت امن فعال باشد. ROM اندازهگیری، پیکربندی و UDS را با KDF پردازش میکند تا راز مرحله بعدی بارگذاری شود. این راز به عنوان شناسه دستگاه ترکیبی (CDI) نامیده می شود.
سپس این روند تکرار می شود. CDI به عنوان UDS مرحله بعدی عمل می کند، آن مرحله یک جفت کلید استخراج می کند، و CDI به همراه هش تصویر بعدی برای تشکیل مقدار CDI مشتق شده دیگری به یک KDF وارد می شود.
سفتافزار بارگذاریشده از جفتهای کلید تولید شده برای امضای گواهیهای علامت 1 CBOR Object Signing and Encryption (COSE) استفاده میکند. هر مرحله گواهی نامه ای را برای مرحله بعدی که بارگذاری می شود امضا می کند. این گواهی شامل اطلاعاتی مانند اندازه گیری آن مرحله، حالتی که بوت در آن است، کلید عمومی CDI برای آن مرحله و سایر ابرداده های مرتبط است.
شکل 1. فرآیند استخراج DICE ساده شده.
این فرآیند کمک می کند تا اطمینان حاصل شود که هر تغییری در یک تصویر سیستم عامل بارگذاری شده، هم مقدار CDI خودش و هم مقادیر CDI تمام مراحل بعدی را تغییر می دهد. این بدان معنی است که هر ترکیبی از سیستم عامل بارگذاری شده، هویت های منحصر به فرد و کلیدهای مرتبط را ایجاد می کند. علاوه بر این، امضا به گونه ای انجام می شود که تضمین می کند که هر مرحله توسط مرحله قبل اندازه گیری و تأیید شده است و با جعل گواهی خود از اندازه گیری اجتناب می کند. این بدان معنی است که تا زمانی که رام به خطر نیفتد، وضعیت امنیتی دستگاه را می توان وصله کرد و از راه دور خارج از دستگاه تأیید کرد.