Device Identifier Composition Engine (DICE) היא תכונה לאבטחת Android שמספקת אימות חזק ומשפרת את תקינות המכשיר על ידי יצירת זהות קריפטוגרפית ייחודית לכל מכשיר. DICE שימושי במיוחד ליצירת זהויות של מכשירים שאפשר להשתמש בהן בתרחישים שבהם נדרשים הוכחות חזקות לזהות ותקשורת מאובטחת.
Remote Key Provisioning (RKP)
יש כמה יתרונות עיקריים לשימוש ב-DICE ל-RKP.
צמצום שטח ההתקפה
DICE משפר את RKP על ידי הנחת בסיס האמון בבסיס המחשוב המהימן (TCB) הקטן ביותר שזמין במכשיר, בדרך כלל הצ'יפ עצמו, במקום בסביבת הביצועים המהימנה (TEE). כך מקטינים מאוד את שטח ההתקפה ומצמצמים את הסיכון לפריצה קבועה ל-RKP.
שחזור מפשרות ב-TEE
DICE מספק מנגנון לשחזור האמון במכשירים גם אם יש פשרות ב-TEE או ב-bootloader שעלולות להשפיע על התוקף של אימות המפתחות שנוצרים על ידי KeyMint.
בעבר, נקודות חולשה ב-TEE או ב-bootloader הובילו לביטול מלא של מפתחות האימות בכל המכשירים המושפעים, ללא דרך לשחזור האמון גם אם נקודות החולשה תוקנו. הסיבה לכך היא ש-TEE ביצע אימות מרחוק של קובץ האימג' של Android שנטען דרך Android Verified Boot, כך שלא ניתן היה להוכיח לצד מרוחק שהתיקונים הוחלו. כדי לטפל בבעיה הזו, DICE מאפשרת אימות מרחוק של מצב הקושחה הנוכחי, גם מחוץ ל-Android, וכך מאפשרת למכשירים המושפעים לשחזר את האמון.
אימות הדדי של סביבות מבודדות
כל דומיין של אפליקציה שבו תהליך DICE מסתיים מקבל זהות בצורת מפתח עם שרשרת אישורים שמגיעה עד ל-root of trust המשותף שמתקבל מה-ROM. תהליך ההסקה של DICE מתפצל לענפים שונים כאשר נתיבים שונים של טעינה מתעקלים, ויוצרים עץ של אישורים שכוללים את אותו שורש, ויוצרים תשתית של מפתח ציבורי (PKI) במכשיר.
ה-PKI הזה מאפשר לרכיבים במתחמים מאובטחים נפרדים לבצע אימות הדדי. דוגמה קונקרטית אחת היא Secretkeeper, שכבת הפשטה של חומרה (HAL) שמאפשרת למכונות וירטואליות בעלות הרשאות (pVM) לתקשר עם ה-TEE כדי לקבל סוד יציב שאפשר להשתמש בו לאחסון מאובטח של נתונים קבועים.