​​Разбираемся в вопросах шифрования Android

Мы уже закидывали удочку про полнодисковое шифрование FDE — методе защиты данных путём шифрования всего диска целиком, но какое шифрование используют устройства на Android и какие есть различия. Сегодня попытаемся максимально просто разобраться в этом непростом вопросе.

Существует два типа шифрования в Android: FDE и FBE. С первым типом вы знакомы, а вот FBE — file-based encryption — это более современный и продвинутый тип шифрования, который является обязательным к использованию на устройствах с Android 10 и выше. А в чём принципиальное отличие?

Мы будем рассматривать различия между FDE и FBE шифрованиями с точки зрения криминалистики устройств. При FDE весь раздел устройства зашифрован одним мастер-ключом. Для того, чтобы получить доступ к данным (расшифровать мастер-ключ), нужен пароль разблокировки (или придется перебирать все варианты).

При FBE, в свою очередь, пользовательские данные зашифрованы индивидуальными ключами. Эти ключи хранятся в специальном защищенном хранилище процессора, доступ к которому возможен только из доверенной среды выполнения (TEE). Чтобы расшифровать данные при FBE, нужно сначала расшифровать мастер-ключ с помощью пароля пользователя. Мастер-ключ также находится в хранилище процессора внутри TEE. Только после этого станут доступны индивидуальные ключи для каждого файла и произойдёт расшифровка пользовательских данных.

А теперь о принципиальной разнице в контексте криминалистики: FBE не шифрует минимальный набор системных данных, которые позволяют самой системе загрузиться. Так, если обходным способом сбросить пароль при FBE, то система загрузится, но пользовательские данные будут зашифрованы, так как мастер-ключ не расшифруется без верного пароля. То есть можно получить доступ к некоторым настройкам, списку приложений и данным об ОС. При FDE без пароля система вовсе не загрузится, так как зашифрован целиком весь раздел. Но даже при этом, FBE является более продвинутым и надёжным типом шифрования за счёт ряда факторов.

ИМХО: Проверить ваш тип шифрования можно с помощью команды getprop ro.crypto.type, которую нужно ввести в терминале Termux на устройстве или в ADB с помощью ПК (используйте adb shell). В целом, FDE и FBE используют принципиально разный подход к шифрованию данных, а значит и атаки при физическом доступе будут принципиально разными.

*Следующую часть материала про Android мы можем сделать в формате «вопрос-ответ». Задавайте свои вопросы в комментариях к этому посту (или ставьте реакции на интересные вопросы от других комментаторов) . Мы всё прочитаем, и если наберётся достаточное количество интересных тем — непременно ответим на всё. *

Свежее