Я не понимаю, как работает DM-Verity.

Чтение с здесь или здесь У меня есть несколько сомнений по этому поводу:

  1. Учитывая, что весь блочный раздел защищен dm-verity: он должен проверять данные в хеш-таблице до корневого хэша при доступе к нему. Проверяет ли dm-verity только интересующие блоки данных или весь раздел? В первом случае, если через какое-то время мне нужно проверить еще один блок в защищенном dm-verity разделе, выполняется ли вся процедура заново?
  2. У меня есть защищенный dm-verity черный раздел, смонтированный как /dev/sda1. Когда я вижу /dev/sda1 в Linux, означает ли это, что весь раздел был проверен?
  3. Не могли бы вы объяснить мне, что такое /dev/dm* и зачем они нужны?
0
Vilos 18 Июл 2020 в 13:32

1 ответ

  1. Вот схема того, как это работает: https://source.android.com/security/verifiedboot /dm-верность

  2. Скорее всего да.

  3. Устройства /dev/dm* относятся к сопоставителю устройств. Говоря о dm-verity, это может быть полезно: https://en.wikipedia.org/wiki/Device_mapper https://www. kernel.org/doc/html/latest/admin-guide/device-mapper/verity.html

0
Artem S. Tashkinov 18 Июл 2020 в 14:36
1. Первая ссылка говорит Вместо этого dm-verity проверяет блоки по отдельности и только при доступе к каждому из них. При чтении в память блок хешируется параллельно. Затем хэш проверяется вверх по дереву. А поскольку чтение блока является такой дорогостоящей операцией, задержка, вызванная этой проверкой на уровне блоков, сравнительно номинальна. . Значит блок блочного устройства проверяется только в случае доступа к нему, верно?
 – 
Vilos
19 Июл 2020 в 13:51
2. Извините за глупый вопрос: почему? Если то, что я написал в 1., верно, то /dev/sda1 смонтирован, но еще не проверен: каждый блок будет проверен только в том случае, если приложению потребуется доступ к его данным, верно?
 – 
Vilos
19 Июл 2020 в 13:53
3. /dev/dm* отвечает ли устройство за проверку блока блочного устройства при запросе доступа, верно?
 – 
Vilos
19 Июл 2020 в 13:55
4. читаю в инете, вижу, что хеш-дерево обычно подгружается в память загрузчиком: почему? Почему эта операция не выполняется ядром linux?
 – 
Vilos
19 Июл 2020 в 13:58