LINUX.ORG.RU

Положить ключ шифрования в TPM2

 , , ,


0

1

На днях в OpenSUSE появилась поддержка systemd-boot, а значит, можно наконец перестать вводить пароль от LUKS при загрузке.

Вот такая структура ФС сейчас:

$ sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,MOUNTPOINT
NAME                          TYPE  FSTYPE LABEL           MOUNTPOINT
loop0                         loop                         /snap/gnome-3-28-1804
loop1                         loop                         /snap/gnome-42-2204/1
loop2                         loop                         /snap/gtk-common-them
loop3                         loop                         /snap/bare/5
loop4                         loop                         /snap/core18/2812
loop5                         loop                         /snap/core18/2796
loop6                         loop                         /snap/core22/1033
loop7                         loop                         /snap/core22/1122
loop8                         loop                         /snap/snapd/20290
loop9                         loop                         /snap/singularityapp/
loop10                        loop                         /snap/singularityapp/
loop11                        loop                         /snap/snapd/20671
loop12                        loop                         /snap/zoom-client/218
loop13                        loop                         /snap/zoom-client/225
nvme0n1                       disk                         
├─nvme0n1p1                   part  vfat   ubuntu-seed     /boot/efi
├─nvme0n1p2                   part  ext4   ubuntu-boot     
├─nvme0n1p3                   part  crypto ubuntu-save-enc 
└─nvme0n1p4                   part  crypto                 
  └─cr_nvme-nvme.1c5c-435939424e303035393132323042413355-48464d32353647444a544e472d3833313041-00000001-part4
                              crypt LVM2_m                 
    ├─system-root             lvm   btrfs                  /var
    ├─system-swap             lvm   swap                   [SWAP]
    └─system-home             lvm   btrfs                  /home

Порядок действий:

  1. Инициализируем TPM.
$ sudo tpm2_pcrextend 7
  1. С помощью Clevis биндим зашифрованный раздел к tpm2.
sudo clevis luks bind -d /dev/nvme0n1p4  tpm2 '{"pcr_ids":"7"}'
  1. Делаю заголовок от уже существующего контейнера LUKS:
sudo cryptsetup luksHeaderBackup /dev/nvme0n1p4 --header-backup-file luks2_tpm2_header.dat
  1. На всякий случай восстанавливаю LUKS с созданным заголовком:
sudo cryptsetup luksHeaderRestore /dev/nvme0n1p4 --header-backup-file luks2_tpm2_header.dat
  1. Пересобираю initramfs
sudo dracut --force --regenerate-all

Правильно ли я понимаю порядок действий и не похерю ли систему, если сделаю все как описал выше?

На днях в OpenSUSE появилась поддержка systemd-boot, а значит, можно наконец перестать вводить пароль от LUKS при загрузке.

Для этого не требуется sd-boot. Clevis и systemd-cryptenroll (в этом случае для rootfs initramfs/initrd должен быть с systemd) не предъявляют никаких требований к загрузчику.

anonymous
()

Ммм, имхо полнодисковое шифрование, это защита данных от физической кражи ноутбука, сервера, для защиты от вмешательства 3их лиц, например загрузка в rescue mode или ещё как и изменения паролей и пр, в чём смысл шифрования если это всё прозрачно и любой может может натворить делов?

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

например загрузка в rescue mode

В корректной реализации это не прокатит. Как минимум, изменение командной строки ядра не даст извлечь секрет из TPM. Если же строка зашита в UKI и это хозяйство подписано для Secure Boot, то оно просто не загрузится, совсем.

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

Говоря о корректной реализации FDE с TPM, я подразумеваю, что там не делаются всякие странные вещи вроде привязки к неподходящим регистрам или отключения SB, когда на него всё завязано. Но вообще без SB тоже можно нормально сделать. И стоит оговориться, что подразумевается что-то вроде того, что описано здесь: https://0pointer.net/blog/brave-new-trusted-boot-world.html Вопрос целесообразности защиты от evil maid остаётся на усмотрение тех, кто настраивает себе такие схемы защиты данных.

anonymous
()

Не боязно?
При поломке компа - trm чипа потеряешь безвозвратно данные.
Я отдельный файл с luks с монтированием для home отдельного пользователя сделал (в случае чего перенести на другую машину можно), и то что то страшно.

s-warus ★★★
()
Ответ на: комментарий от rtxtxtrx

Стандартный ответ - железо сейчас недорогое, ничего страшного если процессор «помолотит» шифрование/дешифрование без логического профита 👍️

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

виноват, думал по аналогии с ssh приватный ключ можно паролём шифровать, но в trm2 вместо защиты пароля сам ssh приватный ключ на себя берут (пароль можно подобрать, а ключ попробуй подбери).

s-warus ★★★
()
Ответ на: комментарий от rtxtxtrx

В порядке мозгового штурма:

  1. Чтобы unattended boot и при пропадании питания не ходить вводить пароль, а на безопасность пофигу.
  2. Чтобы дать врагу шанс и занять его интересной задачкой.
t184256 ★★★★★
()
Ответ на: комментарий от s-warus

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

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

Классно разговариваешь цитатами для вконтакта, даже как-то жалко огорчать тебя фактом, что для evil maid есть абсолютное оружие: подмена железки на другую, визуально воспроизводящую загрузку и сливающую все собранные креды.

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

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

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

А я про бесмысленность действа… У того же люкса пароль у меня десятки символов, а для бута он ограничен. Тут очевидно, что последний легче сбрутить, если знать как с матери снять дамп. В люксе там количество итераций можно подобрать так, чтобы пароль проверялся минуту. Слишком мало вводных, чтобы однозначно судить. Мусорки у тебя не диски изымут в случае чего, а весь твой комп увезут. Но в случае с дуалбутом Windows 11 + BitLocker, конечно, удобнее на Boot пароль поставить и сделать разлочивание раздела через tpm

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

Чего тебе мало? Если комп грузится и расшифровывает шифроконтейнер unattended, то безопасность того, что там в этом контейнере равна нулю. В TPM при этом ключ или нет — не важно. Это как пароль на бумажку написать и приклеить.

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

unattended

в память, используюмую ядром, никак не залезть, начиная с linux 2.6.x, но по всей видимости до сих пор можно. но тем не менее всяко лучше чем вообще без него. никто тебя не заставляет яндекс браузер ставить, использовать репозитории от яндекса…

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

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

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

сечёшь фишку?

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

или вот тебе другой пример, всё unattended как ты говоришь, но ключик на флешке

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

ну и где тут равна 0 и чё смогут сделать люди в камо после реза второй двери с твоими данными? им даже терморектальный криптоанализ не поможет, ибо ключа нет.

вот те и равна 0.

всё от манёвра зависит и от времени, которое у тебя есть. и от ситуации. так что не заливай мне тут.

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

Много раз выпаивал TPM перед отъездом в отпуск?

Безотносительно контекста вашего обсуждения. TPM на десктопе сейчас либо firmware (я так понял, внутри CPU, но это не точно), либо дискретный. Вот второй достаточно легко снять с материнской платы.

anonymous
()