موتور ترکیب شناسه دستگاه

موتور ترکیب شناسه دستگاه (DICE) یک مشخصات گروه محاسباتی معتمد (TCG) است که در Android به کار گرفته شده است. مجموعه‌ای از هویت‌های رمزنگاری قوی و تغییرناپذیر برای هر قطعه از میان‌افزاری که در طول دنباله بوت بارگذاری می‌شود، ایجاد می‌کند. این هویت‌ها تأیید از راه دور وضعیت امنیتی دستگاه را امکان‌پذیر می‌کنند، که تنها با به خطر انداختن ROM می‌توان از آن اجتناب کرد.

فرآیند استخراج DICE

فرآیند استخراج 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 مشتق شده جدید استفاده می کند. هر مرحله جفت کلید مخصوص به خود را تولید می کند و از آن برای امضای گواهینامه ای استفاده می کند که حاوی اندازه گیری های خاص مرحله و سایر ابرداده های مرتبط است.