29.10.2021

Можно ли извлечь данные из шифрованного раздела android

Главная Форумы Новости, android (ios), лайфхаки Android Можно ли извлечь данные из шифрованного раздела android

  • Эта тема пуста.
Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #1457
    Аноним
    Неактивированный

    Если при работе в Explorer (в eMMC Tool Shuite) наблюдается такая картина:

    Mount [system] successfully PartType: LINUX

    Mount [cache] successfully PartType: LINUX

    Mount [persist] successfully PartType: LINUX

    Mount [cust] successfully PartType: LINUX

    Mount [userdata] SKIPPED PartType: Full Disk Encryption

    Mount [data] SKIPPED PartType: Full Disk Encryption

    Mount [storage/sdcard1] SKIPPED PartType: Full Disk Encryption

    Это означает, что раздел пользовательских данных зашифрован.

    eMMC File Manager выводит такую информацию:

    Warning! Partition #46 [USERDATA] Is ENCRYPTED!

    Rev: 1.3

    Key Size: 16 bytes

    Algo: aes-xts essiv:sha256

    MKey: 0x40203A849FA58DAFAE95ED1E81EC9C32

    Salt: 0x6D7C5B1F84B51F2A657FEAB2865C5324

    На текущий момент данные из такого раздела извлечь практически невозможно прямым считыванием раздела из eMMC.

    Если плата повреждена и на ней исправны процессор и eMMC, то единственный вариант извлечь данные — перепаять процессор и eMMC в рабочий аппарат, включить его, ввести пароль пользователя и получить доступ к данным.

    Если говорить коротко о шифровании, то раздел /data шифруется 128битным ключом (16 байт) по алгоритму SHA256 (точнее одной из его разновидности). В данном случае идет речь о FDE (Full Disk Encryption) (полнодисковое шифрование).

    1) Первое включение:

    При первом включении (также после «wipe data») устройство с предустановленной ОС Android 5.0 и выше генерирует псевдослучайный 128-разрядный ключ. Его называют мастер-ключом (Master Key) или DEK (Device Encryption Key). Помимо DEK, также генерируется еще одно псевдослучайное 128-битное число Salt (соль), а пользователя просят ввести пароль (если пользователь пароль не вводит, а ОС шифрование /data включает, то ОС использует какой-то свой пароль, на знании этого пароля основано получение доступа к /data в Xiaomi через TWRP).

    Далее ОС Android рассчитывает промежуточный ключ (IK1), затем к нему примешивает Hardware-Bound private Key (HBK) (индивидуальный ключ процессора), рассчитывает IK2, IK3 и создает Encrypted Master Key (используя KEK, IV (части IK3)), т.е. зашифрованный Master Key (DEK) с помощью пароля пользователя.

    Encrypted Master Key и Salt сохраняются в так называемом «Хранилище ключей» (Crypto Footer), которое располагается либо в в самом процессоре (в более новых процессорах), либо в конце зашифрованного раздела userdata (31 сектор от конца).

    Все данные на пользовательском разделе /data в конечном счете шифруются именно с помощью DEK. Как именно выглядит этот ключ, владелец устройства не знает, он никогда не вводит его и даже не может считать штатными средствами. Созданием DEK, а также проверкой валидности ключей занимается модуль «KeyMaster», работающий в так называемой «Trusted Execution Environment (TEE)» процессора, за пределы которой не должен выйти ключ шифрования DEK.

    2) Включение аппарата при наличии зашифрованного раздела:

    Для расшифровки данных, когда пользователь вводит свой пароль (или при его отсутствии используется «дефолтный» пароль), ОС Android получает Salt из «Хранилища ключей» (Crypto Footer), рассчитывает с помощью него промежуточный ключ (IK1), затем с помощью Hardware-Bound private Key (HBK) (индивидуальный ключ процессора), рассчитывает IK2, IK3 и оправляет полученный результат (KEK, IV) для попытки рассчитать DEK в модуль «KeyMaster», который также использует Encrypted Master Key из «Хранилища ключей» (Crypto Footer). Если пароль пользователя верный, то полученный DEK используется для раскодирования раздела /data.

    Для того, чтобы пользователь мог сменить свой пароль без перешифрования всего раздела, используется ключ, называемый Encrypted Master Key, т.е. Master Key (DEK), зашифрованный с помощью пароля пользователя. Если аппарат включен, пароль пользователя введен, и данные расшифрованы с помощью DEK, то возможно создание нового Encrypted Master Key, который сохраняется вместо предыдущего в хранилище ключей (Crypto Footer).

    3) Невозможность расшифровать раздел данных:

    а) при вводе неверного пароля;

    б) замена процессора (с другим Hardware-Bound private Key (HBK));

    с) замена процессора (с другим Hardware-Bound private Key (HBK) и другим содержимым «Хранилища ключей» (Crypto Footer)).

    В этих случаях модуль «KeyMaster» получает не соответствующий зашифрованным данным DEK, и расшифровка раздела данных не предоставляется возможным.

    Кому интересно узнать больше, рекомендую статьи:

    «Шифрование Android» Автор: Цурова Светлана, http://netk.org/blog/3157

    «Как работает полнодисковое и пофайловое шифрование в Android», https://teletype.in/@lizardsquad/ByjUKgl7X

    «Извлечение аппаратного ключа полнодисковой защиты в телефонах Android на процессорах Qualcomm» https://habr.com/post/395643/

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Для ответа в этой теме необходимо авторизоваться.