Главная » 2018 » Февраль » 28 » МК: Память телефона зашифрована - когда это не смертельно?
14:30
МК: Память телефона зашифрована - когда это не смертельно?

МК:  Память телефона зашифрована - когда это не смертельно?

Пример из собственного опыта, который надо иметь ввиду.

Телефон поступил без PIN-кода, то есть не заблокирован, андроид 5. На раз-два снял физический дамп.

Но увы, все зашифровано, при разматывании просит пароль шифрования, который неизвестен.

Решилось так. Установил в теле защитный код (типа 1111), снял образ заново, при запросе ввел только что установленный код. Все ОК!

Берите на заметку. Ну и о себе расскажите.

 

Надоумила следующая статья, которая может быть и вам интересна:


Android: смена пароля шифрования телефона

Автор: Unknown

TL;DR — чтобы иметь разные пароли расшифровки и разблокировки телефона нужно иметь «рутованный» телефон, пройти процедуру шифрования телефона (в настройках), установить EncPassChanger и в нём поменять пароль шифрования.

Реализация шифрования телефона в Android

В качестве новой опции для предприятий в Android 3.0 было представлено шифрование диска, а также административные политики для его принудительного включения. Не важно, каким был Android 3.x, но в 4.x эта опция осталась. В отличии от многих других внутренних деталей Android, шифрование диска хорошо документировано. Здесь оно будет кратко описано, в основном речь пойдёт про управление ключём и паролем.

Шифрование диска достигается при помощи стандартной подсистемы шифрования ядра Linux — dm-crypt, которая позволяет прозрачно зашифровать раздел диска, так что можно с ним работать, как с не зашифрованным. Используемый для шифрования файловой системы Android механизм — 128 битный AES с режимом сцепления блоков шифротекста и ESSIV: SHA256. Мастер-ключ шифруется другим 128 битным AES ключом полученным из пользовательского пароля при помощи 2000 циклов PBKDF2 с 128 битами случайно соли. Полученный зашифрованный мастер-ключ и соль сохраняются вместе с другими метаданными в конце зашифрованного раздела (последний 16 КБайт). Это позволяет менять пароль быстро, потому что нужно шифровать заново только ключ, а не весь раздел заново.

Пользовательская часть шифрования реализована модулем cryptfs демона vold. cryptfs умеет команды для создания и монтирования шифрованных разделов, а также для проверки и смены пароля (расшифровки мастер-ключа). Системные сервисы общаются с cryptfs, посылая команды vold через локальный сокет. В итоге получается довольно сложная процедура загрузки, описанная в документации. Далее о том, как устанавливается и меняется пароль.

Пароль шифрования

При попытке зашифровать устройство, необходимо подтвердить PIN/пароль или установить его, если он ранее не использовался или использовался графический ключ/разблокировка экрана по фото. Этот пароль/PIN используется для извлечения мастер-ключа, а потому требуется сообщать его каждый раз при загрузке устройства. И ещё раз, когда устройство загрузится. Как видно на скриншоте ниже, Android не имеет отдельной настройки для пароля шифрования, когда телефон уже зашифрован, потому что изменение пароля разблокировки меняет и пароль шифрования.

(рис. 1)

Вероятно, тут дело в юзабилити: большинство пользователей расстроились бы, если бы им пришлось запоминать два разных пароля, и забыли бы тот, который использовался бы реже (пароль шифрования). С одной стороны это хорошо, но с другой — приходится использовать простой пароль шифрования (или простой цифровой PIN), потому что сложно и неудобно вводить десятки раз за день сложный пароль для разблокирования телефона. К тому же пароль ограничен 16 символами, так что не каждая парольная фраза уместится.

В чём же проблема? Так или иначе, чтобы получить данные с телефона, нужно угадать пароль разблокировки. Почему же тогда нужен отдельный для шифрования? Потому что эти два пароля защищают телефон против двух разных типов атак. Если исключить неизвестные уязвимости в ПО, то все атаки против разблокировки сводятся к перебору паролей на работающем устройстве. После нескольких неудачных попыток Android заблокирует экран на несколько минут, после ещё нескольких неудачных попуток заблокирует окончательно (потребует аутентифицироваться в аккаунт Google для разблокировки) или вообще сбросит устройство. Поэтому относительно короткий PIN для разблокировки вполне адекватен в большинстве вариантов. Конечно, если кто-то имеет доступ к устройству или у него есть образ диска, то он сможет достать хэш пароля и подбирать пароль на своём оборудовании, не имея проблем с блокировкой после неудачных попыток. Это и есть сценарий, от которого должно защищать шифрование диска. Когда телефон украден или конфискован по какой-то причине, атакующий может перебирать пароли на самом устройстве, а может снять образ диска и разбираться с ним уже после того, когда устройство возвращено или уничтожено. Как говорилось выше, мастер-ключ хранится на диске в зашифрованном виде и если в качестве пароля шифрования используется короткий цифровой PIN, то пароль может быть подобран буквально за несколько минут (и это совсем не теория).

Очевидно, использовать сложный пароль шифрования важно, но можно ли его установить, не сделав разблокировку телефона пыткой?

Смена пароля шифрования

Как говорилось выше, сервисы Android общаются с модулем cryptfs при помощи отправки команд через локальный сокет. Также в Android включена маленькая утилита, которая может общаться с демоном vold и которая может использоваться в консоли (от рута). Так что если телефон «рутованный», то можно послать cryptfs команду на смену пароля шифрования:

$su -c vdc cryptfs changepw НОВЫЙПАРОЛЬ

Это не повлияет на пароль/PIN разблокировки, а также не имеет ограничений на длину пароля. Но, к сожалению, если поменять пароль разблокировки, то сменится и пароль шифрования и придётся повторять процедуру. Это не очень сложно, но и не очень удобно. Потом, возможно, это будет интегрировано в пользовательский интерфейс, а пока для простой смены пароля шифрования можно воспользоваться программой EncPassChanger.

(рис.2)

Приложение делает процесс смены пароля относительно безопасным, сначала проверяя текущий пароль шифрования, затем проверяя два раза введённый пароль на совпадение. Об успехе или неудаче приложение сообщит. Новый пароль понадобится только после перезагрузки, так что надо не успеть его забыть. Единственный вариант спасения (кроме перебора) в случае забытого пароля — сброс на заводские настройки с потерей всех пользовательских данных.

Ссылки

 

Прикрепления: Картинка 1 · Картинка 2
Просмотров: 27 | Добавил: shukalo | Рейтинг: 4.0/1
Всего комментариев: 0
avatar