То, что вы ищете - проверка того, что операционная система, работающая на компьютере - это та, которой вы доверяете, называется доверенной загрузкой . (Это одна из нескольких вещей, которые иногда называют доверенной загрузкой). Предложенный вами метод не достигает этой цели.
Шифрование не обеспечивает целостность данных или подлинность . Другими словами, это не мешает злоумышленнику изменить содержимое вашего диска и заменить его вредоносной операционной системой. Эту вредоносную операционную систему можно легко запрограммировать на отображение контрольной суммы, которую вы ожидаете для загруженного ядра.
Самый простой путь атаки - « человек посередине», когда злоумышленник запускает вашу обычную операционную систему под некой виртуальной машиной. Уровень виртуальной машины передает ваш ввод в желаемую операционную систему и передает вывод обратно. Но он также записывает нажатия клавиш (мммм, пароли) сбоку, вынимает закрытые ключи из памяти ОС и так далее.
Чтобы избежать этой формы атаки, вам нужен корень доверия : компонент системы, которому вы доверяете не по той причине, что другой компонент системы говорит об этом. Другими словами, вы должны начать где-нибудь. Хорошее начало - начать с имеющегося у вас оборудования; Вы можете оставить свою операционную систему на USB-ключе, который не будет у вас на виду, и подключить его только к оборудованию, в котором вы достаточно уверены (в оборудовании может быть вредоносное ПО !). Имейте в виду, если вы готовы доверять компьютеру, вы можете доверять и его жесткому диску.
Существует техническое решение для преодоления разрыва между доверием небольшого чипа и доверием целого настольного компьютера или ноутбука. Некоторые ПК имеют TPM (модуль доверенной платформы), который, среди прочего, может проверить, что может быть загружена только известная операционная система. Trusted Grub поддерживает TPM, поэтому с TPM plus Trusted Grub вы можете быть уверены, что запущенное вами ядро одобрено.
Обратите внимание, что принятие TPM может работать для вас или против вас. Все зависит от того, у кого есть ключи. Если у вас есть закрытый ключ для вашего TPM, вы можете точно контролировать, что работает на вашем компьютере. Если только у производителя есть закрытый ключ, это способ превратить универсальную платформу в заблокированное устройство.
Загруженное ядро находится в памяти. Вы можете создать скрипт, который найдет его
/dev/mem
и, зная размер, рассчитает и проверит его контрольную сумму.Вы также можете зашифровать весь HD, без необходимости
/boot
разбиения и (почти) никакого способа изменить ядро. Как? два способа, которыми я могу придумать:Поместите свое ядро на компакт-диск, с которого ваш компьютер будет загружаться. Это не так сложно; некоторые люди сообщали об использовании такой установки несколько лет назад - см. второй пост в этой ветке форума .
Если ваша материнская плата поддерживается coreboot и имеет достаточно места для минимального ядра, у вас может быть ядро с поддержкой шифрования на вашем чипе BIOS. (У меня не было возможности проверить, но я не вижу причин, по которым это может не сработать.)
Редактировать: обратите внимание, что все это всего лишь один шаг к «доверенной» или «проверенной» загрузке (на которую Гиллес справедливо указал). Полный механизм должен также учитывать то, что происходит на этапе загрузчика и как определяется базовое оборудование. Посмотрите, как Google Chromium OS делает это .
источник