Шифрование — это процесс кодирования всех пользовательских данных на устройстве Android с использованием симметричных ключей шифрования. После шифрования устройства все созданные пользователем данные автоматически шифруются перед сохранением на диске, а все операции чтения автоматически расшифровывают данные перед возвратом их в вызывающий процесс. Шифрование гарантирует, что даже если несанкционированная сторона попытается получить доступ к данным, она не сможет их прочитать.
В Android предусмотрено два метода шифрования устройства: шифрование на уровне файлов и шифрование всего диска.
Шифрование на основе файлов
Android 7.0 и более поздние версии поддерживают шифрование на основе файлов . Шифрование на основе файлов позволяет шифровать разные файлы с помощью разных ключей, которые можно разблокировать независимо. Устройства, поддерживающие шифрование на основе файлов, также могут поддерживать Direct Boot , что позволяет зашифрованным устройствам загружаться прямо на экран блокировки, тем самым обеспечивая быстрый доступ к важным функциям устройства, таким как службы специальных возможностей и будильники.
Благодаря файловому шифрованию и API, которые позволяют приложениям распознавать шифрование, приложения могут работать в ограниченном контексте. Это может произойти до того, как пользователи предоставят свои учетные данные, при этом сохраняя конфиденциальную информацию пользователя.
Шифрование метаданных
Android 9 представляет поддержку шифрования метаданных , где присутствует аппаратная поддержка. При шифровании метаданных один ключ, присутствующий во время загрузки, шифрует любой контент, не зашифрованный FBE, такой как макеты каталогов, размеры файлов, разрешения и время создания/изменения. Этот ключ защищен Keymaster, который, в свою очередь, защищен проверенной загрузкой.
Полное шифрование диска
Android 5.0 до Android 9 поддерживают полное шифрование диска . Полное шифрование диска использует один ключ, защищенный паролем устройства пользователя, для защиты всего раздела пользовательских данных устройства. При загрузке пользователь должен предоставить свои учетные данные, прежде чем любая часть диска будет доступна.
Хотя это и отлично для безопасности, это означает, что большинство основных функций телефона не будут доступны сразу после перезагрузки устройства пользователем. Поскольку доступ к их данным защищен их единой учетной записью пользователя, такие функции, как будильники, не могли работать, службы доступности были недоступны, а телефоны не могли принимать звонки.