Полное шифрование диска на GPT при проблемах с BIOS
Как зашифровать все данные на жестком диске (включая /boot и загрузочный раздел BIOS на 1 МБ)? Как создать загрузочный раздел GRUB с шифрованием? Мой жесткий диск пуст. Я не могу использовать этот ноутбук сейчас.
1 ответ
Вы не можете зашифровать загрузочный раздел BIOS; Процесс загрузки на компьютере с BIOS, который использует GRUB для загрузки Ubuntu (или любого другого Linux), выглядит примерно так:
- Процессор включается и выполняет код BIOS, который не понимает шифрование.
- BIOS считывает первый сектор (MBR) жесткого диска, который обязательно не зашифрован.
- Крошечный код MBR считывает более обширный код загрузчика, хранящийся в другом месте - обычно в загрузочном разделе BIOS в случае GRUB на GPT-диске.
- GRUB читает свой конфигурационный файл, обычно из
/boot/grub/grub.cfg
, Он также может загружать дополнительный код из модулей, хранящихся в/boot/grub
, - GRUB считывает ядро и исходный файл RAM-диска (initrd), затем выполняет ядро.
- Ядро запускает сценарии запуска в initrd.
- Основная файловая система смонтирована, и дальнейшие процессы запуска контролируются оттуда.
Поскольку BIOS не поддерживает шифрование, MBR не может быть зашифрован. Теоретически, MBR может включать код шифрования, и поэтому загрузочный раздел BIOS может быть зашифрован; однако на практике это нецелесообразно, возможно, в крайнем случае, поскольку загрузочный код MBR имеет размер всего 440 байт (446 байт, если вы немного растянете определения). Обратите внимание, что это байты, а не KiB, MiB или какое-либо другое значение. GRUB использует загрузочный раздел BIOS, потому что 440 байт недостаточно для того, чтобы делать что-то большее, чем просто направить процесс загрузки в это большее место; втиснуть в это пространство программное обеспечение для шифрования - это препятствие, которое выходит за рамки практического (и, возможно, совершенно невозможного).
Таким образом, самая ранняя точка, в которой шифрование является практической возможностью, - это после чтения загрузочного раздела BIOS, и фактически GRUB поддерживает чтение зашифрованных файловых систем, поэтому ядро Linux может храниться в зашифрованной файловой системе. (По крайней мере, это то, что я слышу; я никогда не пробовал сам.)
Также обратите внимание, что шифрование загрузочного раздела BIOS предоставит вам ограниченные или никакие дополнительные меры защиты конфиденциальности. Большая часть того, что идет туда, это программное обеспечение с открытым исходным кодом. Он может быть настроен и настроен для вашей конкретной системы, но это в основном просто для определения раздела, содержащего корень Linux (/
) или же /boot
файловая система, и, возможно, для включения драйверов, необходимых на вашем конкретном компьютере. AFAIK, в загрузочном разделе BIOS нет паролей, имен пользователей или других конфиденциальных данных. Если бы это было возможно, шифрование загрузочного раздела BIOS могло бы усложнить для его проникновения вредоносное ПО, но в этом случае вредоносному ПО просто нужно настроить MBR, чтобы перенаправить процесс загрузки на собственный код или полностью перезаписать -записать загрузочный раздел BIOS, используя собственные ключи шифрования.
При этом теоретически весь диск может быть зашифрован, если сам диск или контроллер, к которому он подключен, поддерживает эту функцию. Для этого потребуется, чтобы диск или контроллер выполняли шифрование и дешифрование "ниже" уровня BIOS. Я не уверен, каким образом можно доставить пароль на диск, подключенный к стандартному контроллеру, но если у вас есть подключаемая карта с зашифрованным контроллером диска, она обязательно будет взаимодействовать с обычным BIOS и, следовательно, может запросить пароль во время загрузки. Для ОС диск будет выглядеть как обычный незашифрованный диск. Я смутно припоминаю, что слышал о таких решениях, но я никогда не изучал их, и я не знаю, доступно ли такое оборудование сегодня. (Возможно, я вспоминаю претензии на пароварку.)
Также обратите внимание, что EFI/UEFI работает совсем не так, как в BIOS; но AFAIK, EFI/UEFI также не поддерживает шифрование 100% диска - загрузчик должен по-прежнему находиться в незашифрованном системном разделе EFI (ESP). Однако EFI намного больше и сложнее, чем BIOS, поэтому я могу не знать о неясной функции, и в будущем может быть проще добавить такую поддержку в спецификацию EFI. Если вы заинтересованы в шифровании загрузочного раздела BIOS как способа предотвращения вмешательства вредоносного ПО, функция Secure Boot большинства современных UEFI предназначена для решения этой проблемы. Подписав первый загрузочный код, считанный с диска, и предоставив цепочку подписи для ОС, Secure Boot (теоретически) предотвращает вмешательство.