Как Android защищает хранилище ключей в 4.4 и выше? Как он шифрует/расшифровывает его? Есть ли хорошие учебники, которые описывают внутренности того, как хранилище ключей работает на устройстве?Как защищено хранилище ключей Android?
ответ
Шифрование/дешифрование хранилища ключей обрабатывается службой хранилища ключей, которая, в свою очередь, связывается с модулем уровня абстракции оборудования под названием «keymaster». AOSP обеспечивает реализацию программного обеспечения («softkeymaster»), но поставщики устройств могут предлагать поддержку защищенного хранилища на основе аппаратного обеспечения, если оно доступно. На ARM-архитектурах это связано с ARM «TrustZone».
Уровни верхнего уровня остаются полностью агностическими для реализации: Мастер-мастер HAL для экспорта или удаления ключей, подписи данных и т. Д., Но на самом деле не обеспечивает доступ к каким-либо секретным ключам.
Учебник мудрый, ничего. Но по книгам есть две большие книги. Первый - «Антенны безопасности для Android» Николая Еленкова. Он также пишет блог под названием «Android Explorations», в котором описывается (в нескольких сообщениях) ключевое хранилище в глубину. Второй - «Android Internals» Джонатана Левина, в котором обсуждается демон хранилища ключей.
Я считаю, что ARM TrustZone посвящен разделению процессора/памяти для Trusted world от нормального мира. например, запустить доверенные приложения в средах с надежным выполнением. Думаю, что «защищенная память» станет другой историей. – r0ng
Нет, ключи к хранилищу ключей фактически связаны с паролем или штырем пользователя, а TrustZone используется для проверки их во время жизни устройства. Кроме того, в случае защищенного хранилища (read: dm-crypt), аппаратный ключ может находиться на чипе и быть доступен только в режиме доверия (SMC или EL3, 64 бит), и поэтому это просто другой сюжет в той же самой истории , – Technologeeks