LINUX.ORG.RU

Мечта параноика

 


4

4

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 даже не пытается открывать зашифрованные устройства:
      # 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
      Чтобы он сделал такую попытку, необходимо установить переменную окружения GRUB_CRYPTODISK_ENABLE в «y».
    • В-третьих, разработчики не зря спрятали это за переменную окружения, поскольку получившийся core.img не смог прочитать таблицу разделов и увидеть зашифрованный раздел. Решилось это ручным добавлением модуля к grub-install.
    В итоге команда установки выглядела так:
    sudo env GRUB_CRYPTODISK_ENABLE=y ~/grub2/sbin/grub-install --modules=part_msdos --root-directory=/mnt/ /dev/loop0

Резюме: после обработки напильником уже работоспособно, но без напильника обойтись пока нельзя. Джедаи могут поставить даже на основную систему. Нужно найти время и отправить багрепорты/патчи.

А на самом скриншоте смотреть почти нечего, да.

>>> Просмотр (722x804, 17 Kb)

★★★★★

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 3)
Ответ на: комментарий от drBatty

разве там всё шифруется одним разделом?

А какие проблемы? Когда шифруют не только /home, то логично прихватить и все остальные тома, дабы не вводить пароль на каждый в отдельности.

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

А какие проблемы? Когда шифруют не только /home, то логично прихватить и все остальные тома, дабы не вводить пароль на каждый в отдельности.

не вдавался в проблемы, но ТС явно делает раздельчик в 100Мб:

dd if=/dev/zero of=luks.img bs=1M count=100

drBatty ★★
()
Ответ на: комментарий от drBatty

ТС явно делает раздельчик в 100Мб

Потому что ТС тестирует.

не вдавался в проблемы

Нет никаких проблем, шифруем раздел диска, на него запиливаем LVM и вперёд :] При этом не имеет значения, снаружи /boot или внутри (ну, при условии использования обсуждаемого GRUB >=2.00).

Homura_Akemi
()

В РФ шифрование бесполезно.

Есть такая вещь как СОРМ. Так вот в случае, если тебя заподозрят в чем-то нехорошем - cp,помощь террористам,нелегальное хранение оружия/веществ etc, то ты будешь обязан расшифровать _всё_

Отказ от этого - гарантированный срок.

Deleted
()
Ответ на: комментарий от Deleted

Даже в том случае, если ты ничего не совершал...

Deleted
()

Низкая самооценка? Кажется, что вас никто не замечает? Вам поможет паранойя! Паранойя — и даже чайник с утюгом начнут о вас шептаться.

BillDver ★★★
()

Отличная работа, спасибо! Обязательно вскоре попробую.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от Deleted

Ну тут чувак защищается от алка/хацкеров. Я только одного не понял, нафиг шифровать бут, если в случае когда, жд/ноут украдут все что нужно просто форматнут, поставят семерочку и продадут :) Ну может у чела есть инфа как у Ассанжа, но думаю, такую инфу лучше явно хранить не на компе, подключать ее к компу без выхода в инет, комп есессно бездисковый со своей шифрованной флешкой и т.п. А в случае служб ты прав, чего-то вспомнился Магнитцкий...

gh0stwizard ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Да, два года назад ломали. Плюс оно проприетарное, там могут (и скорее всего есть) закладки.

tensai_cirno ★★★★★
()

Хочу поставить на реальную систему. Можете менее сумбурно рассказать о процессе установки?

не старше 2011-07-07

Т.е. потом фитчу убрали? Или как?

Получается, что нужно сделать:
cruptsetup luksFormat /dev/sda1
cryptsetup luksOpen /dev/sda1 test
mke2fs /dev/mapper/test
mount /dev/mapper/test /mnt
mkdir -p /mnt/boot/grub
env GRUB_CRYPTODISK_ENABLE=y ~/grub2/sbin/grub-install --modules=part_msdos --root-directory=/mnt/ /dev/sda

Так? env тут зачем? И ~ в пути откуда? Собирал grub в папке пользователя?

Если всё так, то всё очень просто и не понимаю, почему это не юзается.

ktulhu666 ☆☆☆
()
Ответ на: комментарий от drBatty

что ты сможешь сделать с моим компом, в отсутствии этой флешки?

А как ты проверяешь, что загрузка идёт именно с флешки?

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

А как ты проверяешь, что загрузка идёт именно с флешки?

никак не проверяю. Предлагаешь сменить прошивку в BIOS, что-бы оно писало «гружусь с флешки», а само грузилось НЕ с флешки? Тогда тебе придётся подделать мой загрузчик, так, что-бы твой был с виду как мой. Это сложно, учитывая то, что моего ты вообще не видел.

drBatty ★★
()
Ответ на: комментарий от ktulhu666

не старше 2011-07-07

Т.е. потом фитчу убрали? Или как?

не. ПОТОМ фича появилась. А ДО того (для систем старше 11/07/07) фичи не было.

Так? env тут зачем? И ~ в пути откуда? Собирал grub в папке пользователя?

очевидно так.

Если всё так, то всё очень просто и не понимаю, почему это не юзается.

grub2, который это умеет, недавно появился. Очевидно, это единственная причина, которая может меня сподвигнуть сменить Lilo на grub.

drBatty ★★
()
Ответ на: комментарий от drBatty

А что касательно размера граба? Насколько я знаю, при использованни, например, lvm размер граба за mbr становится слишком велик, и может затереть раздел. Можете что-нибудь подсказать по этому поводу?

grub-menu нормально после ввода пароля работает?

ktulhu666 ☆☆☆
()
Ответ на: комментарий от ktulhu666

не старше 2011-07-07

Т.е. потом фитчу убрали? Или как?

Старше - в прямом смысле. Нужен более новый. Например, в Debian Wheezy он более старый.

Получается, что нужно сделать:
cruptsetup luksFormat /dev/sda1

Все данные с /boot (если sda1 == /boot) будут стёрты.

cryptsetup luksOpen /dev/sda1 test

И ещё в crypttab дописать. И fstab подправить.

mount /dev/mapper/test /mnt

Нет, /boot. И --root-directory тогда не нужен.

env тут зачем?

Чтобы передать переменную окружения.

И ~ в пути откуда? Собирал grub в папке пользователя?

Именно.

Если всё так, то всё очень просто и не понимаю, почему это не юзается.

Повилось недавно. Само по себе пока не работает, необходима обработка напильником в виде ручного докладывания модулей в core.img.

AITap ★★★★★
() автор топика
Ответ на: комментарий от PolarFox

Кстати, можно, но это ещё труднее. Отдельная флешка с /boot всё равно выигрывает.

AITap ★★★★★
() автор топика
Ответ на: комментарий от drBatty

сменить прошивку в BIOS

Не обязательно. Можно сделать загрузчик, первым делом заменяющий «гружусь с диска» на «гружусь с флешки». Вероятность того, что bios всегда удерживает экран с сообщением о забуточном устройстве до того времени, когда ты его таки прочтёшь пропорциональна твоему раздражению от того, что он, вместо загрузки, чего-то непонятного ждёт, и потому, довольно невелика. Или можно воткнуть в соседний порт свою, специально обрезаную до незаметности флешку.

DonkeyHot ★★★★★
()
Ответ на: комментарий от drBatty

Да, стормозил. Если у тебя есть надёжный протокол аутентификации запущеного софта, задача решается, если его под каким-то гипервизором не запускать. Правда, говорят, оно нынче дёшево.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Вероятность того, что bios всегда удерживает экран с сообщением о забуточном устройстве до того времени, когда ты его таки прочтёшь пропорциональна твоему раздражению от того, что он, вместо загрузки, чего-то непонятного ждёт, и потому, довольно невелика. Или можно воткнуть в соседний порт свою, специально обрезаную до незаметности флешку.

тут проблема в том, что я УЖЕ в курсе, что устройство МОГЛО БЫТЬ скомпрометировано. К примеру мне вернули украденный ноут. Очевидно, что я не стану с радостью вбивать туда все свои пароли.

И да, загрузка у меня «только с HDD», и чужая флешка будет заметна тупо по скорости. У меня сразу возникнет подозрение, почему так долго грузится ядро? И очевидно, первой мыслю будет - ZOG набигает!!!

drBatty ★★
()
Ответ на: комментарий от drBatty

проблема в том, что я УЖЕ в курсе

Ну и я о том же - обуточная флешка проблемы не решает. Решает только паранойя. А она говорит, что тебя не обязательно оповещать о компрометации устройства; если ты не таскаешь его 24*7 пристёгнутым к запястью электродом шокера, уведомляющего о попытке отключения/включения/вставки устройств и других подозрительных событиях, возможность компрометации почти любого мобильного устройства есть уже свершившийся факт.

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.