הצפנה היא תהליך של קידוד כל נתוני המשתמש במכשיר Android באמצעות מפתחות הצפנה סימטריים. אחרי שמצפינים מכשיר, כל הנתונים שנוצרו על ידי המשתמש מוצפנים באופן אוטומטי לפני שהם נשמרים בדיסק, וכל הקריאות מפענחות את הנתונים באופן אוטומטי לפני שהם מוחזרים לתהליך הקורא. ההצפנה מבטיחה שגם אם גורם לא מורשה ינסה לגשת לנתונים, הוא לא יוכל לקרוא אותם.
ב-Android יש שתי שיטות להצפנת המכשיר: הצפנה מבוססת-קבצים והצפנה מלאה של הדיסק.
הצפנה מבוססת-קבצים
Android מגרסה 7.0 ואילך תומך בהצפנה מבוססת-קובץ. הצפנה כזו מאפשרת להצפין קבצים שונים באמצעות מפתחות שונים, כך שיהיה אפשר לבטל את הנעילה שלהם בנפרד. מכשירים שתומכים בהצפנה מבוססת-קובץ יכולים לתמוך גם באתחול ישיר, שמאפשר למכשירים מוצפנים לבצע אתחול ולהגיע ישירות למסך הנעילה. כך אפשר לקבל גישה מהירה לתכונות חשובות במכשיר, כמו שירותי נגישות והתראות.
הצפנה מבוססת-קובץ וממשקי API מאפשרים לאפליקציות לזהות את ההצפנה ולפעול בהקשר מוגבל. זה אפשרי גם אם המשתמשים עוד לא סיפקו את פרטי הכניסה שלהם, ועדיין המידע שלהם נשאר פרטי.
הצפנת מטא-נתונים
ב-Android 9 נוספה תמיכה בהצפנת מטא-נתונים, אם יש תמיכה בחומרה. בהצפנת מטא-נתונים, מפתח יחיד שקיים בזמן האתחול מצפין את כל התוכן שלא מוצפן על ידי FBE, כמו פריסות של ספריות, גודל קבצים, הרשאות וזמני יצירה או שינוי. המפתח הזה מוגן על ידי KeyMint (לשעבר Keymaster), שמוגן על ידי Verified Boot.
הצפנה מלאה של הדיסק
Android מגרסה 5.0 עד גרסה 9 תומך בהצפנה מלאה של הדיסק. הצפנה מלאה של הדיסק משתמשת במפתח יחיד – שמוגן באמצעות הסיסמה של המשתמש למכשיר – כדי להגן על כל מחיצת נתוני המשתמש של המכשיר. בזמן האתחול, המשתמש צריך לספק את פרטי הכניסה שלו לפני שניתן לגשת לחלק כלשהו בדיסק.
זה מצוין מבחינת אבטחה, אבל המשמעות היא שרוב הפונקציות העיקריות של הטלפון לא זמינות מיד כשהמשתמשים מפעילים מחדש את המכשיר. הגישה לנתונים שלהם מוגנת באמצעות פרטי הכניסה היחידים שלהם, ולכן תכונות כמו אזעקות לא יכלו לפעול, שירותי הנגישות לא היו זמינים וטלפונים לא יכלו לקבל שיחות.