Trusty היא מערכת הפעלה (OS) מאובטחת שמספקת סביבת מחשוב אמינה (TEE) ל-Android. מערכת ההפעלה Trusty פועלת באותו מעבד כמו מערכת ההפעלה Android, אבל היא מבודדת משאר המערכת באמצעות חומרה ותוכנה. Trusty ו-Android פועלות במקביל. ל-Trusty יש גישה לעוצמה המלאה של המעבד הראשי והזיכרון של המכשיר, אבל הוא מבודד לחלוטין. הבידוד של Trusty מגן עליו מפני אפליקציות זדוניות שהמשתמש התקין ומפני פרצות אבטחה פוטנציאליות ב-Android.
Trusty תואמת למעבדי ARM ו-Intel. במערכות ARM, Trusty משתמש ב-TrustZone של ARM כדי ליצור וירטואליזציה של המעבד הראשי וליצור TEE מאובטח. תמיכה דומה זמינה גם בפלטפורמות Intel x86 באמצעות טכנולוגיית הווירטואליזציה של Intel.

איור 1. תרשים סקירה כללית של Trusty.
Trusty מורכב מ:
- ליבת מערכת הפעלה קטנה שמבוססת על Little Kernel
- מנהל התקן של ליבת Linux להעברת נתונים בין הסביבה המאובטחת לבין Android
- ספריית מרחב משתמשים ב-Android לתקשורת עם אפליקציות מהימנות (כלומר, משימות ושירותים מאובטחים) דרך מנהל ההתקן של ליבת מערכת ההפעלה
הערה: Trusty ו-Trusty API כפופים לשינויים. מידע על Trusty API זמין במאמר Trusty API reference.
היתרונות של Trusty
מערכות הפעלה אחרות של TEE מסופקות בדרך כלל כ-blobs בינאריים על ידי ספקים של צד שלישי או מפותחות באופן פנימי. פיתוח מערכות TEE פנימיות או קבלת רישיון ל-TEE מצד שלישי עלול להיות יקר לספקי מערכות על שבב (SoC) ול-OEM. העלות הכספית בשילוב עם מערכות לא אמינות של צד שלישי יוצרות סביבה לא יציבה ל-Android. Trusty מסופק לשותפים כחלופה אמינה וחינמית בקוד פתוח ל-TEE שלהם. Trusty מציעה רמת שקיפות שלא אפשרית במערכות קוד סגור.
Android תומכת בהטמעות שונות של TEE, כך שאתם לא מוגבלים לשימוש ב-Trusty. לכל מערכת הפעלה של TEE יש דרך ייחודית לפריסת אפליקציות מהימנות. הפיצול הזה עלול להוות בעיה למפתחי אפליקציות מהימנות שמנסים לוודא שהאפליקציות שלהם פועלות בכל מכשיר Android. השימוש ב-Trusty כסטנדרט עוזר למפתחי אפליקציות ליצור ולפרוס אפליקציות בלי להתחשב בפיצול של מערכות TEE מרובות. Trusty TEE מספק למפתחים ולשותפים שקיפות, שיתוף פעולה, אפשרות לבדוק את הקוד וניפוי באגים פשוט. מפתחי אפליקציות מהימנים יכולים להשתמש בכלים ובממשקי API משותפים כדי להפחית את הסיכון להחדרת פגיעויות אבטחה. המפתחים האלה בטוחים בעצמם מספיק כדי לפתח אפליקציה ולהשתמש בה מחדש במכשירים שונים בלי לבצע פיתוח נוסף.
אפליקציות ושירותים
אפליקציית Trusty היא אוסף של קבצים בינאריים (קבצים להפעלה וקבצי משאבים), מניפסט בינארי וחתימה קריפטוגרפית. בזמן הריצה, אפליקציות Trusty פועלות כתהליכים מבודדים במצב לא מורשה בקרנל Trusty. כל תהליך פועל בארגז חול של זיכרון וירטואלי משלו, באמצעות היכולות של יחידת ניהול הזיכרון של מעבד ה-TEE. גרסת ה-build של החומרה משנה את התהליך המדויק ש-Trusty מבצע, אבל לדוגמה, הליבה מתזמנת את התהליכים האלה באמצעות מתזמן round-robin מבוסס-עדיפות שמופעל על ידי טיק מאובטח של טיימר. לכל האפליקציות של Trusty יש אותה עדיפות.

איור 2. סקירה כללית על אפליקציית Trusty.
אפליקציות מהימנות של צד שלישי
כל אפליקציות Trusty מפותחות על ידי צד אחד ונארזות עם תמונת ליבת Trusty. התמונה כולה חתומה ומאומתת על ידי טוען האתחול במהלך האתחול. אין תמיכה בפיתוח אפליקציות של צד שלישי ב-Trusty. למרות ש-Trusty מאפשרת פיתוח של אפליקציות חדשות, צריך לעשות זאת בזהירות רבה. כל אפליקציה חדשה מגדילה את אזור בסיס המחשוב המהימן (TCB) של המערכת. אפליקציות מהימנות יכולות לגשת לסודות של המכשיר ולבצע חישובים או טרנספורמציות של נתונים באמצעותם. היכולת לפתח אפליקציות חדשות שפועלות בסביבת TEE פותחת הרבה אפשרויות לחדשנות. עם זאת, בגלל ההגדרה של TEE, אי אפשר להפיץ את האפליקציות האלה בלי לצרף להן צורה כלשהי של אמון. האימות מתבצע באמצעות חתימה דיגיטלית של גורם שהמשתמש במוצר שהאפליקציה פועלת בו סומך עליו.
שימושים ודוגמאות
סביבות TEE הופכות לסטנדרט במכשירים ניידים. המשתמשים מסתמכים יותר ויותר על המכשירים הניידים שלהם בחיי היום-יום, והצורך באבטחה גדל. מכשירים ניידים עם TEE מאובטחים יותר ממכשירים ללא TEE.
במכשירים עם יישום TEE, המעבד הראשי מכונה לעיתים קרובות *לא מהימן*, כלומר אין לו גישה לאזורים מסוימים בזיכרון ה-RAM, לרגיסטרים של החומרה ולנתיכים שניתן לכתוב בהם רק פעם אחת, שבהם היצרן מאחסן נתונים סודיים (כמו מפתחות קריפטוגרפיים ספציפיים למכשיר). תוכנה שפועלת במעבד הראשי מעבירה למעבד TEE כל פעולה שדורשת שימוש בנתונים סודיים.
הדוגמה הכי מוכרת לכך במערכת Android היא מסגרת ה-DRM לתוכן מוגן. תוכנה שפועלת במעבד TEE יכולה לגשת למפתחות ספציפיים למכשיר שנדרשים לפענוח תוכן מוגן. המעבד הראשי רואה רק את התוכן המוצפן, וכך מספק רמה גבוהה של אבטחה והגנה מפני התקפות מבוססות תוכנה.
יש שימושים נוספים ל-TEE, כמו תשלומים בנייד, בנקאות מאובטחת, אימות רב-שלבי, הגנה על איפוס המכשיר, אחסון קבוע שמוגן מפני הפעלה חוזרת, עיבוד מאובטח של קוד אימות וטביעת אצבע, ואפילו זיהוי של תוכנות זדוניות.