Como las aplicaciones pueden continuar ejecutándose en segundo plano, la clave de cifrado del disco debe existir en algún lugar de la memoria.
Hay diferencias entre las distintas versiones de Android en cómo la clave de cifrado se deriva de una contraseña o PIN, pero todas las versiones usan El servicio de cifrado de disco a nivel de bloque dm-crypt del kernel de Linux. (A diferencia de iOS, Android no usa cifrado a nivel de archivo o múltiples niveles de clave de cifrado; en iOS, algunas teclas se omiten tan pronto como la pantalla se bloquea , haciendo que algunos archivos sean inaccesibles.)
Esto significa que los archivos en el disco siempre están cifrados, pero el kernel los descifrará de forma transparente para cualquier aplicación que tenga suficientes privilegios del sistema de archivos para leerlos.
Básicamente, la seguridad de un dispositivo en tal estado (pantalla bloqueada, clave de cifrado del disco cargada en la memoria del kernel) depende de la presencia o ausencia de errores de seguridad en la pantalla de bloqueo de Android o cualquier aplicación instalada que pueda ser remota o explotado localmente por un atacante; a ese respecto, no hay diferencia con respecto a un dispositivo no cifrado.
Sin embargo, el cifrado protege contra todos los ataques que requieren reiniciar el dispositivo: tan pronto como se apaga y se apaga la alimentación, la clave de cifrado se borra de la memoria.
Como los comentaristas han señalado, debe agregarse que un atacante con acceso físico al dispositivo tiene más oportunidades para acceder al material clave en la memoria que solo explotar errores del kernel o de la aplicación: podrían extrae física o lógicamente el contenido de la DRAM (que contiene la memoria del Kernel y, por lo tanto, también la clave) o obtener acceso a las funciones de depuración del sistema (suponiendo que no estén deshabilitadas).