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

Вступление

Hidden text

Исторически Ubuntu предлагало шифрование рабочих разделов диска с использованием LUKS, при этом загрузочный раздел оставался незашифрованным. Некоторые решения позволяли зашифровать его, но тогда требовался ручной ввод пароля при загрузке, что не слишком удобно при работе с удалёнными машинами, да и в бытовой жизни раздражает.

В версии Ubuntu 24.04 появилась экспериментальная поддержка полнодискового шифрования (full disk encryption, FDE) с использованием TPM, т.е. ключи для расшифровки диска сохраняются в модуле и пароль требуется вводить только при логине пользователя.

Если выбрать этот вариант, то модули ответственные за загрузку будут поставляться в виде пакетов snap, а не deb.

В связи с апгрейдом ноута захотелось поиграться с FDE, но большинство гайдов описывало процесс установки либо с использованием LVM, либо для других дистрибутивов. Поэтому пришлось гуглить буквально каждый шаг, но в итоге всё оказалось гораздо проще,чем я думал.

Процесс установки

  • Требуется Ubuntu 24.04. Функционал установки не реализован в инсталляторе Kubuntu. Но даже у Ubuntu считается экспериментальным.

  • В BIOS надо разрешить Secure Boot, для этого должны быть загружены сертификаты по умолчанию.

  • В процессе установки не выбирать установку проприетарного ПО!!! иначе установка с использованием TPM будет недоступна

  • На следующем этапе выбрать "Erase disk and install Ubuntu" и нажать "Advanced Features"

  • Если всё сделано правильно, то последний пункт будет Enabled hardware-backed full disk encryption, который нам и требуется

  • Разбивка диска происходит полностью автоматически без участия пользователя.

  • После завершения установки можно получить ключ восстановления с помощью команды

snap recovery --show-keys

Всё, теперь у вас есть убунта на полностью зашифрованным диске и с ключами в TPM.

Если вы как и я предпочитаете KDE, то её можно доустановить с помощью команды

sudo apt install kde-full
sudo reboot

Комментарии (9)


  1. SUNsung
    31.07.2024 10:20

    Все жду когда появится возможность иметь ключ шифрования как физический ключ (ака флешка)
    Вставил в комп и все работает без танцев с бубном. Ключа нет, ничего недоступно.
    Такое особенно актуально для каких-то критических вещей которые нужно перевозить коробками и контейнерами.
    Эотя и для личного пользования так же удобнее. Криптостойкий пароль это ужас ручного ввода. А внутренние чипы на материнке - есть куча гайдов и обзоров как их дампить и тд.


    1. 0mogol0 Автор
      31.07.2024 10:20

      Все жду когда появится возможность иметь ключ шифрования как физический ключ (ака флешка) Вставил в комп и все работает без танцев с бубном. Ключа нет, ничего недоступно.

      Да, это было бы интересно. Но именно для мобильных машинок, когда по дороге потеряли / спёрли лэптоп, но ключ был на флешке и остался при тебе. Хотя ИМХО в 99% случаев теряют или крадут лэптоп как железо для перепродажи, а не как источник ценных данных.

      Потому что для сервера - это ключ постоянно будет торчать в сервере и периодически ломаться при физическом контакте с саппортом, который его случайно задел.

      Я смотрел на предмет можно ли прикрутить имеющийся у меня Yubikey для загрузки, и понял, что пока только для логина пользователя.


      1. Andrusha
        31.07.2024 10:20
        +2

        Я смотрел на предмет можно ли прикрутить имеющийся у меня Yubikey для
        загрузки, и понял, что пока только для логина пользователя.

        Сам тоже не пробовал, так как нету даже нормального ключа, но выглядит несложно. Что касается выключения при извлечении, то можно провернуть через udev rules. Вон готовый пример для блокировки экрана, в скрипте надо заменить команду на shutdown -h now или echo 1 > /proc/sys/kernel/sysrq; echo o > /proc/sysrq-trigger, если хочется побыстрее :)


      1. crundel
        31.07.2024 10:20

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


        1. 0mogol0 Автор
          31.07.2024 10:20

          Для сервера - это ключ может постоянно торчать внутри сервера

          не знаю, а зачем он нужен тогда в сервере?


          ИМХО (не претендуя на истину в последней инстанции) для серверов как раз TPM вполне достаточно. Он позволит с одной стороны обеспечить FDE, а с другой не требует пароля при перезагрузке.

          А вот внешний ключ, который вытащил и ничего не грузится - имеет смысл именно для постоянно путешествующего ПК / лаптопа / сервера, когда лэптоп едет в ручной клади, а ключик лежит в кармане, и даже если лаптопу сделают ноги - то загрузить его без ключа не смогут.


        1. 4chemist
          31.07.2024 10:20
          +1

          Поздравляю, Вы только что изобрели TPM модуль.


    1. dartraiden
      31.07.2024 10:20

      Гуглите "LUKS detached header". Заголовок храните на флешке, без заголовка, разумеется, внутренний накопитель не расшифруется.

      Под Windows BitLocker позволяет сделать предохранителем ключевой файл на внешнем накопителе. Если накопитель вставлен, системный раздел расшифруется при загрузке.


      1. SUNsung
        31.07.2024 10:20

        Флешки это таки очень ненадежно.
        Я бы хотел какой то принцип выжигаемой памяти, причем как и с физическими ключами - секрет есть с обоих концов. То есть просто склонировать ключ не поможет так как есть проверка на внутренний идентификатор который может расшифровать только родной "замок"
        Но даже без замороченой криптографии, сталая память которая раз выжглась и все хороша тем что у тебя не болит голова о сохранности флешки. Все же часто юзаемые флешки умирают по експлуатационным причинам лет через 5


        1. 4chemist
          31.07.2024 10:20

          Вам нужен USB токен - носитель ЭЦП - смарт карта. Рутокен, jacarta, esmart выбирайте любой. Чтобы не болела голова по поводу умирания флешки заведите правило смены ключа по истечению срока. Ну и резервную копию ключа никто не отменял.