Полное шифрование диска на GPT при проблемах с BIOS

Как зашифровать все данные на жестком диске (включая /boot и загрузочный раздел BIOS на 1 МБ)? Как создать загрузочный раздел GRUB с шифрованием? Мой жесткий диск пуст. Я не могу использовать этот ноутбук сейчас.

1 ответ

Вы не можете зашифровать загрузочный раздел BIOS; Процесс загрузки на компьютере с BIOS, который использует GRUB для загрузки Ubuntu (или любого другого Linux), выглядит примерно так:

  1. Процессор включается и выполняет код BIOS, который не понимает шифрование.
  2. BIOS считывает первый сектор (MBR) жесткого диска, который обязательно не зашифрован.
  3. Крошечный код MBR считывает более обширный код загрузчика, хранящийся в другом месте - обычно в загрузочном разделе BIOS в случае GRUB на GPT-диске.
  4. GRUB читает свой конфигурационный файл, обычно из /boot/grub/grub.cfg, Он также может загружать дополнительный код из модулей, хранящихся в /boot/grub,
  5. GRUB считывает ядро ​​и исходный файл RAM-диска (initrd), затем выполняет ядро.
  6. Ядро запускает сценарии запуска в initrd.
  7. Основная файловая система смонтирована, и дальнейшие процессы запуска контролируются оттуда.

Поскольку 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 (теоретически) предотвращает вмешательство.

Другие вопросы по тегам