Proof-of-concept: зашифрованный /boot! То, чего так не хватало тем людям, которые хотели полностью зашифрованную систему на одном разделе или опасались, что их нешифрованный /boot изменят, засунут в initrd трояна и таким образом получат доступ ко всем остальным данным.
Рецепт:
- Свежий GRUB, не старше 2011-07-07 (grub-2.00 с официального сайта вполне подошёл)
- Сборка руками, ничего интересного, но много build-dependencies.
- grub-install оказался недостаточно умным, чтобы сработать автоматически.
- Во-первых, эксперимент проводился на /dev/loop0, что у GRUB не было никаких шансов заметить, пришлось править .../boot/grub/device.map:
dd if=/dev/zero of=luks.img bs=1M count=100 losetup /dev/loop0 luks.img fdisk /dev/loop0 cruptsetup luksFormat /dev/loop0p1 cryptsetup luksOpen /dev/loop0p1 test mke2fs /dev/mapper/test mount /dev/mapper/test /mnt mkdir -p /mnt/boot/grub echo '(hd0) /dev/loop0' > /mnt/boot/grub/device.map
- Во-вторых, по умолчанию GRUB даже не пытается открывать зашифрованные устройства:
Чтобы он сделал такую попытку, необходимо установить переменную окружения GRUB_CRYPTODISK_ENABLE в «y».
# share/grub/grub-mkconfig_lib if abstractions="`"${grub_probe}" -t abstraction "$path"`" 2>&1 ; then : else return 1 fi if [ x$GRUB_CRYPTODISK_ENABLE = xy ]; then return 0 fi for abstraction in $abstractions; do if [ "x$abstraction" = xcryptodisk ]; then return 1 fi done
- В-третьих, разработчики не зря спрятали это за переменную окружения, поскольку получившийся core.img не смог прочитать таблицу разделов и увидеть зашифрованный раздел. Решилось это ручным добавлением модуля к grub-install.
sudo env GRUB_CRYPTODISK_ENABLE=y ~/grub2/sbin/grub-install --modules=part_msdos --root-directory=/mnt/ /dev/loop0
- Во-первых, эксперимент проводился на /dev/loop0, что у GRUB не было никаких шансов заметить, пришлось править .../boot/grub/device.map:
Резюме: после обработки напильником уже работоспособно, но без напильника обойтись пока нельзя. Джедаи могут поставить даже на основную систему. Нужно найти время и отправить багрепорты/патчи.
А на самом скриншоте смотреть почти нечего, да.
>>> Просмотр (722x804, 17 Kb)