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