Trusty היא מערכת הפעלה מאובטחת (OS) המספקת סביבת ביצוע מהימנה (TEE) עבור אנדרואיד. מערכת ההפעלה Trusty פועלת על אותו מעבד כמו מערכת ההפעלה אנדרואיד, אך Trusty מבודדת משאר המערכת על ידי חומרה ותוכנה כאחד. Trusty ואנדרואיד פועלים במקביל זה לזה. ל-Trusty יש גישה למלוא העוצמה של המעבד הראשי והזיכרון של המכשיר, אך היא מבודדת לחלוטין. הבידוד של Trusty מגן עליו מפני אפליקציות זדוניות שהותקנו על ידי המשתמש ומפגיעויות פוטנציאליות שעלולות להתגלות באנדרואיד.
Trusty תואם למעבדי ARM ואינטל. במערכות ARM, Trusty משתמש ב-Trustzone™ של ARM כדי להפעיל וירטואליזציה של המעבד הראשי וליצור סביבת ביצוע מהימנה מאובטחת. תמיכה דומה זמינה גם בפלטפורמות Intel x86 באמצעות טכנולוגיית הוירטואליזציה של אינטל.
נאמנות מורכבת מ:
- ליבת מערכת הפעלה קטנה שמקורה ב- Little Kernel
- מנהל התקן ליבת לינוקס להעברת נתונים בין הסביבה המאובטחת לאנדרואיד
- ספריית מרחב משתמש של אנדרואיד לתקשורת עם יישומים מהימנים (כלומר, משימות/שירותים מאובטחים) באמצעות מנהל ההתקן של הליבה
הערה: Trusty ו-Trusty API כפופים לשינויים. למידע על ה-API Trusty, עיין ב- API Reference .
למה אמון?
מערכות הפעלה אחרות של TEE מסופקות באופן מסורתי ככתמים בינאריים על ידי ספקי צד שלישי או מפותחות באופן פנימי. פיתוח מערכות TEE פנימיות או רישוי TEE מצד שלישי עלולים להיות יקרים עבור ספקי System-on-Chip (SoC) ויצרני OEM. העלות הכספית בשילוב עם מערכות צד שלישי לא אמינות יוצרת מערכת אקולוגית לא יציבה עבור אנדרואיד. Trusty מסופקת לשותפיה כחלופה אמינה וחינמית בקוד פתוח עבור סביבת הביצוע המהימנה שלהם. Trusty מציעה רמת שקיפות שפשוט לא אפשרית במערכות קוד סגור.
אנדרואיד תומך ביישומי TEE שונים כך שאינך מוגבל לשימוש ב-Trusty. לכל TEE OS יש דרך ייחודית משלה לפריסת יישומים מהימנים. פיצול זה יכול להוות בעיה עבור מפתחי אפליקציות מהימנים המנסים להבטיח שהאפליקציות שלהם פועלות בכל מכשיר אנדרואיד. השימוש ב-Trusty כסטנדרט עוזר למפתחי יישומים ליצור ולפרוס בקלות יישומים מבלי לקחת בחשבון את הפיצול של מערכות TEE מרובות. Trusty TEE מספקת למפתחים ולשותפים שקיפות, שיתוף פעולה, יכולת בדיקה של קוד וקלות ניפוי באגים. מפתחי אפליקציות מהימנים יכולים להתכנס סביב כלים נפוצים וממשקי API כדי להפחית את הסיכון להחדרת פרצות אבטחה. למפתחים אלה יהיה ביטחון שהם יכולים לפתח אפליקציה ולעשות בה שימוש חוזר במספר מכשירים ללא פיתוח נוסף.
יישומים ושירותים
יישום Trusty מוגדר כאוסף של קבצים בינאריים (קובצי הפעלה וקבצי משאבים), מניפסט בינארי וחתימה קריפטוגרפית. בזמן ריצה, יישומי Trusty פועלים כתהליכים מבודדים במצב ללא הרשאות תחת ליבת Trusty. כל תהליך פועל בארגז חול של זיכרון וירטואלי משלו תוך שימוש ביכולות יחידת ניהול הזיכרון של מעבד ה-TEE. בניית החומרה משנה את התהליך המדויק ש-Trusty עוקב אחריו, אבל למשל, הליבה מתזמנת את התהליכים הללו באמצעות מתזמן מבוסס-עדיפות, סיבובי-רובין, המונע על ידי תקתק טיימר מאובטח. כל יישומי Trusty חולקים את אותה עדיפות.
אפליקציות מהימנות של צד שלישי
נכון לעכשיו כל יישומי Trusty מפותחים על ידי גורם יחיד וארוזות עם תמונת ליבת Trusty. התמונה כולה נחתמת ומאומתת על ידי טוען האתחול במהלך האתחול. פיתוח יישומים של צד שלישי אינו נתמך ב-Trusty בשלב זה. למרות ש-Trusty מאפשרת פיתוח של יישומים חדשים, יש לפעול בזהירות יתרה; כל יישום חדש מגדיל את שטח בסיס המחשוב המהימן (TCB) של המערכת. יישומים מהימנים יכולים לגשת לסודות המכשיר ויכולים לבצע חישובים או שינויי נתונים באמצעותם. היכולת לפתח אפליקציות חדשות הפועלות ב-TEE פותחת אפשרויות רבות לחדשנות. עם זאת, בשל עצם ההגדרה של TEE, לא ניתן להפיץ יישומים אלה ללא צורה כלשהי של אמון. בדרך כלל זה מגיע בצורה של חתימה דיגיטלית על ידי גורם מהימן על ידי המשתמש של המוצר עליו האפליקציה פועלת.
שימושים ודוגמאות
סביבות ביצוע מהימנות הופכות במהירות לסטנדרט במכשירים ניידים. משתמשים מסתמכים יותר ויותר על המכשירים הניידים שלהם בחיי היומיום שלהם והצורך באבטחה הולך וגדל כל הזמן. מכשירים ניידים עם TEE מאובטחים יותר ממכשירים ללא TEE.
במכשירים עם מימוש TEE, המעבד הראשי מכונה לעתים קרובות "לא מהימן", כלומר הוא אינו יכול לגשת לאזורים מסוימים של זיכרון RAM, אוגרי חומרה ונתיכים של כתיבה חד פעמית שבהם נתונים סודיים (כגון מפתחות הצפנה ספציפיים למכשיר) מאוחסן על ידי היצרן. תוכנה הפועלת על המעבד הראשי מאצילה למעבד ה-TEE כל פעולות הדורשות שימוש בנתונים סודיים.
הדוגמה הידועה ביותר לכך במערכת האקולוגית של אנדרואיד היא מסגרת ה-DRM לתוכן מוגן. תוכנה הפועלת על מעבד TEE יכולה לגשת למפתחות ספציפיים למכשיר הנדרשים לפענוח תוכן מוגן. המעבד הראשי רואה רק את התוכן המוצפן, ומספק רמה גבוהה של אבטחה והגנה מפני התקפות מבוססות תוכנה.
ישנם שימושים רבים אחרים עבור TEE כגון תשלומים ניידים, בנקאות מאובטחת, אימות רב-גורמי, הגנת איפוס מכשיר, אחסון מתמשך מוגן חוזר, עיבוד PIN וטביעות אצבע מאובטח, ואפילו זיהוי תוכנות זדוניות.