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

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

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