что такое состояние устройства - PullRequest
1 голос
/ 17 апреля 2020

device verity state is: ENABLED

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

Можете ли вы помочь мне.

Заранее спасибо.

1 Ответ

0 голосов
/ 18 апреля 2020

Android может использовать dm-verity для защиты разделов, не относящихся к данным, от манипуляций ( ссылка , ссылка ).

Цель - предотвратить нападение (с физическим доступом к устройству) от вставки вредоносного кода, например, в низкоуровневые службы Android, хранящиеся в разделе /system или /recovery.

Для разделов, отмеченных флагом verity в fstab, во время сборки вычисляется дерево раздела * dm-verity ha sh. Дерево ha sh подписано ключом RSA и добавлено в раздел как метаданные. Часть ключа RSA publi c добавляется в раздел boot.

Во время загрузки ядро ​​проверяет целостность подписанного дерева ha sh в метаданных раздела, используя ключ RSA publi c, хранящийся в разделе boot. Затем он может вычислить дерево ha sh раздела и сравнить его с деревом ha sh из метаданных. В случае несоответствия ядро ​​отказывается загружаться.

Поэтому, если злоумышленник манипулирует разделом, дерево ha sh, вычисленное во время загрузки, не будет соответствовать дереву ha sh из раздела. мета-данные. Если злоумышленник также манипулирует деревом ha sh из метаданных раздела, проверка подписи с помощью ключа RSA publi c завершится неудачей.

Конечно, тогда вам потребуется дополнительный механизм для обеспечения целостности раздела boot. Это можно сделать с помощью механизмов, подобных Secure-Boot, когда раздел boot снова подписывается другим ключом (RSA), а публичная часть c этого ключа встроена на более низком уровне (определяемый поставщиком c) , Такая цепочка механизмов проверки называется цепочкой доверия. В идеале, вы бы хотели, чтобы цепочка доверия распространялась до уровня аппаратного обеспечения, а в чипе записывался ключ от какого-либо поставщика.

...