Можно ли использовать разные пароли для шифрования устройства и блокировки экрана?

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

Ответы (1)

На старых устройствах с полнодисковым шифрованием (FDE) это было возможно для корневых устройств. Но на современных устройствах, использующих шифрование на основе файлов (FBE), это больше невозможно и не нужно:

В старые времена FDE пароль использования непосредственно использовался для получения криптографического ключа, который защищал зашифрованный раздел данных пользователя.

На современных устройствах проверка подлинности пользователя и управление корневым ключом шифрования выполняется в доверенном механизме выполнения (TEE) вашего ЦП. Там работает код Android Gatekeeper , который проверяет пароль для входа/блокировки экрана и, например, может применять меры против грубой силы, такие как принудительное увеличение времени ожидания, если было введено несколько ложных паролей. Пока TEE защищен, это делает устройство более безопасным, чем длинный пароль.

Подробный процесс получения ключа для шифрования на основе файлов, согласно документации AOSP , выглядит следующим образом:

Ключи шифрования на основе файлов, которые представляют собой 512-битные ключи, хранятся в зашифрованном виде с помощью другого ключа (256-битного ключа AES-GCM), хранящегося в TEE. Чтобы использовать этот ключ TEE, необходимо выполнить три требования:

  • Токен авторизации
  • Растянутые учетные данные
  • Хэш, допускающий отбрасывание секунд. Маркер аутентификации представляет собой криптографически аутентифицированный маркер, генерируемый гейткипером, когда пользователь успешно входит в систему. TEE откажется использовать ключ, если не будет предоставлен правильный маркер аутентификации. Если у пользователя нет учетных данных, токен аутентификации не используется и не требуется.

Растянутые учетные данные — это учетные данные пользователя после добавления соли и растяжения с помощью алгоритма scrypt. Учетные данные фактически хэшируются один раз в службе настроек блокировки перед передачей в vold для передачи в scrypt. Это криптографически связано с ключом в TEE со всеми гарантиями, применимыми к KM_TAG_APPLICATION_ID. Если у пользователя нет учетных данных, то расширенные учетные данные не используются и не требуются.

Секвенируемый хэш — это 512-битный хэш случайного файла размером 16 КБ, хранящийся вместе с другой информацией, используемой для восстановления ключа, например начальным числом. Этот файл надежно удаляется при удалении ключа, либо шифруется по-новому; эта дополнительная защита гарантирует, что злоумышленник должен восстановить каждый бит этого безопасно удаленного файла, чтобы восстановить ключ. Это криптографически связано с ключом в TEE со всеми гарантиями, применимыми к KM_TAG_APPLICATION_ID.

"И не нужно"? Насколько я понимаю, OP хочет более длинный пароль шифрования на случай, если удобный короткий пароль блокировки экрана будет скомпрометирован при просмотре через плечо. Почему это больше не нужно?
@AndreKR В случае возможных атак с использованием плечевого серфинга удобным способом было бы использование считывателя отпечатков пальцев. Я написал «не обязательно», так как для исходного FDE более длинный пароль был неизбежен, поскольку пароль непосредственно использовался для получения из него ключа шифрования. Таким образом, злоумышленник смог взломать короткий пароль с помощью грубой силы на зашифрованном разделе менее чем за несколько дней.