מאמת אתחול

אתחול מאומת דורש אימות קריפטוגרפי של כל קוד ההפעלה והנתונים המהווים חלק מגרסת האנדרואיד שמאותחלים לפני השימוש בו. זה כולל את הגרעין (נטען ממחיצת boot ), עץ המכשיר (נטען dtbo ה- dtbo ), מחיצת system , מחיצת vendor , וכן הלאה.

מחיצות קטנות, כגון boot ו- dtbo , הנקראות רק פעם אחת מאומתות בדרך כלל על ידי טעינת התוכן כולו בזיכרון ואז חישוב החשיש שלו. ערך חשיש מחושב זה מושווה לאחר מכן לערך החשיש הצפוי . אם הערך אינו תואם, אנדרואיד לא נטען. לפרטים נוספים, ראה זרימת אתחול .

מחיצות גדולות יותר שלא יתאימו לזיכרון (כגון מערכות קבצים) עשויות להשתמש בעץ חשיש כאשר האימות הוא תהליך מתמשך כאשר הנתונים נטענים בזיכרון. במקרה זה, חשיש השורש של עץ החשיש מחושב בזמן הריצה ונבדק מול ערך hash השורש הצפוי . אנדרואיד כולל את מנהל ההתקן dm-verity כדי לאמת מחיצות גדולות יותר. אם בשלב מסוים ה- hash של השורש המחושב אינו תואם לערך ה- hash של השורש הצפוי , לא משתמשים בנתונים ו- Android נכנס למצב שגיאה. לפרטים נוספים, עיין בשחיתות dm-verity .

החשיפות הצפויות נשמרות בדרך כלל בסוף או בתחילת כל מחיצה מאומתת, במחיצה ייעודית או בשתיהן. באופן מכריע, חשיפות אלה חתומות (במישרין או בעקיפין) על ידי שורש האמון. כדוגמה, יישום ה- AVB תומך בשתי הגישות, ראה אתחול מאומת של Android לקבלת פרטים.

הגנה על החזרה

גם עם תהליך עדכון מאובטח לחלוטין, ייתכן שניצול ליבת אנדרואיד שאינו מתמשך להתקין ידנית גרסה ישנה ופגיעה יותר של אנדרואיד, לאתחל מחדש לגרסה הפגיעה ואז להשתמש בגרסת אנדרואיד זו כדי להתקין ניצול מתמיד. משם התוקף הוא בעלים קבועים של המכשיר ויכול לעשות הכל, כולל השבתת עדכונים.

ההגנה מפני סוג זה של התקפות נקראת Rollback Protection . הגנה על החזרת הכוח מיושמת בדרך כלל על ידי שימוש באחסון ברור מאליו כדי להקליט את הגרסה האחרונה של אנדרואיד ומסרב לאתחל את אנדרואיד אם הוא נמוך מהגרסה שהוקלטה. בדרך כלל עוקבים אחר גרסאות על בסיס מחיצה.

לפרטים נוספים על האופן שבו AVB מטפל בהגנות על החזרה, עיין ב- AVB README .

טיפול בשגיאות אימות

האימות יכול להיכשל בזמן האתחול (כגון אם ה- hash המחושב במחיצת boot אינו תואם את ה- hash הצפוי) או בזמן הריצה (כגון אם dm-verity נתקל בשגיאת אימות במחיצת system ). אם האימות נכשל בזמן האתחול, המכשיר אינו יכול לבצע אתחול ומשתמש הקצה צריך לעבור צעדים לשחזור המכשיר.

אם האימות נכשל בזמן הריצה הזרימה מעט מורכבת יותר. אם המכשיר משתמש ב- dm-verity, יש להגדיר אותו במצב restart . במצב restart , אם נתקלת בשגיאת אימות, המכשיר יופעל מחדש מיד עם דגל ספציפי שהוגדר לסיבה. על מטען האתחול להבחין eio זה ולהעביר את ה- dm- eio במצב שגיאת קלט / פלט ( eio ) ולהישאר במצב זה עד eio עדכון חדש.

בעת אתחול במצב eio , המכשיר מציג מסך שגיאה המודיע למשתמש כי זוהתה שחיתות וייתכן שהמכשיר אינו פועל כהלכה. המסך מופיע עד שהמשתמש מבטל אותו. במצב eio מנהל ההתקן של dm- eio לא יפעיל מחדש את המכשיר אם נתקלה בשגיאת אימות, במקום מוחזרת שגיאת EIO והיישום צריך להתמודד עם השגיאה.

הכוונה היא שמעדכן המערכת יפעל (כך שניתן יהיה להתקין מערכת הפעלה חדשה ללא שגיאות שחיתות) או שהמשתמש יכול להוציא כמה שיותר מהנתונים שלהם מהמכשיר. לאחר התקנת מערכת ההפעלה החדשה, מטעין האתחול מבחין במערכת ההפעלה החדשה שהותקנה ועובר חזרה למצב restart .