How do Android devices (at least all the non-enterprise personal devices I remember owning) display the wallpaper (usually chosen from the 'downloads' folder) on the lock screen when it first is turned on if the image file is supposed to be encrypted and therefore inaccessible/off-limits until after the password/pin/pattern is successfully entered? I only thought of this after I noticed that an old iOS device of mine only displays the background after the password is entered for the first time after it boots up. It's just curiosity, I'm not working on any projects at the moment related to this.
-
Modern Android devices use file based encryption and for each file or directory you can specify when it should decryptable. Some files are therefore decryptable before first use log in such as WiFi passwords and user background. Even apps can specify when files should be decryptable so that you can provide functionality before first user logon. – Robert Oct 16 '21 at 22:37
-
Thank you for explaining. Yeah, and now that you mention it, when you actually 'encrypt' the Android phone, it will make you enter the password towards the beginning of the boot up process and all it has is solid black background, only after that do you get to the screen lock with wallpaper. – Chris Riddle Oct 16 '21 at 22:49
-
What you describe is the old full disk encryption which is no longer used on modern Android systems. – Robert Oct 16 '21 at 23:17
1 Answers
Android uses File Based Encryption (FBE) which addresses the problem with old Full Disk Encryption (FDE). The problem with FDE is that everything is encrypted until the user supplies the password at boot time. This keeps basic device functionalities like lock screen, alarms, reminders, emergency, wifi, bluetooth, etc. to be remain unavailable.
FBE separates storage type between Credential Encrypted (CE) storage and Device Encrypted (DE) storage. Anything that is personal to the user and apps' data is encrypted under CE storage type which is cryptographically bound to Lockscreen Knowledge Factor (LSKF). Basic device functionalities are encrypted under DE storage type which is decrypted by the key stored in Trusted Execution Environment (TEE).
TEE releases DE key on boot but requires LSKF to decrypt CE key. This ensures that even if TEE is compromised, without LSKF, CE key cannot be decrypted. Developers can also specify some components of their app to be encrypted by DE so they can serve reminder notifications before first unlock.
Android only encrypts /data
partition while for system partitions, it only verifies their integrity on boot.
- 6,231
- 2
- 22
- 37