LINUX.ORG.RU

Вопрос по Secure Boot

 


2

2

привет, ЛОР.
вопрос к знатокам, а то я чёт туплю.

вот допустим я включил секурбут, подписал ядро+initrd своим ключиком, который добавил в UEFI.
таким образом, по идее, защищаются от несанкционированной загрузки другой ОС?

но ведь злоумышленник может в том же UEFI отключить secure boot и загрузить что угодно.
пароль на биос? он разве не сбрасывается перемычкой/обесточиванием на ноуте?

как это вообще должно работать и от чего защищать? требуется пояснительная бригада.
ненужнист фирфокс @firkax не нужен.

пароль на биос, именно. в хороших ноутах не сбрасывается

anonymous
()

но не забывай про терморектальный криптоанализ

anonymous
()

таким образом, по идее, защищаются от несанкционированной загрузки другой ОС?

Таким образом защищаются от загрузки недоверенного загрузчика/операционки. Не только другой, но и модифицированной твоей.

но ведь злоумышленник может в том же UEFI отключить secure boot и загрузить что угодно.

Пароль на BIOS, датчик вскрытия корпуса, зашифрованный диск, TPM. Secureboot - один из компонентов защиты. От всего не убережет.

undef ★★★
()

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

anonymous
()

пароль на биос? он разве не сбрасывается перемычкой/обесточиванием на ноуте?

Про физический доступ уже написали выше, это от норкомана Себастиана, который сдаст в ломбард за 1/100 стоимости нового ноута, а там просто спишут как нерабочий.

В более-менее нормальных ноутах пароль на биос НЯЗ хранится в отдельной области EC, которая перезаписывается только на программаторе. Если интересно, призови @shalom_, он лучше скажет, у него опыта вагон с тележкой по этому вопросу.

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

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

yars068 ★★★★★
()

SecureBoot защищает исполняемый файл, которому передаёт управление UEFI. Как правило это shim. Но может быть загрузчик (например grub или systemd-boot), или сразу ядро в формате UKI. Это всё, что он делает. Нужно тебе это или не нужно - тебе видней.

Например на моём компьютере SecureBoot это тот компонент, который обеспечивает расшифровку корневой файловой системы без ввода пароля. Т.е. в выключенном состоянии у меня файловая система зашифрована. Расшировать можно, зная пароль, или получив доступ к ключу в TPM. TPM отдаёт ключ, только если включен SecureBoot. С включенным SecureBoot можно загрузить только подписанное моим ключом ядро. Получается простая и защищённая от интересующих меня угроз система.

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

С включенным SecureBoot можно загрузить только подписанное моим ключом ядро.

Тогда выходит так, что при обновлении ядра «Линукса» ты заново пересоздаёшь ключи и зашиваешь их в ТПМ? Это делается вручную в «Терминале»?

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

Тогда выходит так, что при обновлении ядра «Линукса» ты заново пересоздаёшь ключи и зашиваешь их в ТПМ?

Нет. Ключ создан один раз и установлен в UEFI. Это делается в его настройках. При обновлении ядра оно подписывается тем же ключом, что и старое.

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

Нет. Ключ создан один раз. При обновлении ядра оно подписывается заново тем же ключом.

Тобой в «Терминале» или в УЕФИ? Указать-то файл нового ядра для переподписывания всё равно кто-то должен же.

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

Я сохраняю ключ в TPM так (один раз при установке ОС):

systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/nvme0n1p2

PCR7: Secure Boot state; changes when UEFI SecureBoot mode is enabled/disabled, or firmware certificates (PK, KEK, db, dbx, …) changes.

Т.е. ключ отдаётся, если не поменялось состояние SecureBoot и не поменялись сертификаты. Это при обновлении ядра не меняется, поэтому ничего обновлять не надо. У тебя, вероятно, указан другой набор PCR, которые меняются при обновлении самого ядра. Это с одной точки зрения более безопасно (например с моей схемой можно сохранить старое подписанное ядро и в будущем загрузиться с него, если есть доступ к диску), с другой стороны, конечно, требует обновлять ключ при обновлении ядра.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от yars068

А вот это интересно. Только это не решает проблему. Проблема в запаивании биоса вместо организации съемной микросхемы. А флешка нужна разве что на чокнутых ноутбуках где не весь биос помещается в микросхему. Это все жесть лютая, так что нельзя просто так отключить защиту и легко восстановить комп в случае взлома биос откуда вирусню не выковырять без программатора, а программатор может не сработать без выпаивания микросхемы. Мы же можем выбирать нужна нам шокотерапия процессора на постоянной основе со сбросом кеша или ненужна, выключая через mitigations=off этот расколбас во имя пресвятой безопасности. Я столько раз переставлял систему что отчетливо вижу что обновление практически от установки не отличается. Занимает мало времени, настройки все через файлы кидаются. Проблема только в биосе может быть с созданными проблемами для его воскрешения. А флешка, ну сойдет для загрузки, но опять же неудобно это. С кнопкой включающей записть еще куда ни шло. Можно с лайв системы грузиться в настроенную систему сразу, чтобы она только в памяти крутилась. Ну поломают, ну и что? Перезагрузка спасет, кроме подставы в биосе.

anonymous
()

пароль на биос? он разве не сбрасывается перемычкой/обесточиванием на ноуте?

Уже видел даже десктоп мать, где есть настройка, сбрасывать ли пароль перемычкой.

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

–tpm2-pcrs=0+1+2+3+4+5+6+7+9

Проще вообще TPM не использовать, всё равно постоянно пароль вводишь.

anonymous
()

От чего защитит? - НИ ОТ ЧЕГО. Без Secure Boot TPM работать не будет.

На современных материнках процесс сей довольно прост:

  • Включаем обратно секуре бут во вкладке Boot. Для этого CSM Support должен быть переведен в Disabled.
  • Открываем пункт Secure Boot.
  • Меняем Secure Boot Mode на Custom.
  • Далее заходим в Expert Key Management.
  • Находим Enroll Efi Image. Теперь нужно два раза подписать сл. файлы: vmlinuz-linux (ядро) и EFI/BOOT/BOOTX64.EFI. Так ты добавляешь хеши этих файлов в хранилище криптографического сопроцессора TPM.
  • Опционально можно поставить пароль на BIOS, если в дальнейшем планируешь тот же Luks расшифровывать через TMP.
  • Сохраняем настройки, перегружаемся.

Ну а после загрузки системы ставим sbctl, в Arch Linux он содержит хук, который автоматически подписывает ядро и загрузчики после обновления. Это наипростейшая инструкция из моря дрисни, которую ты найдешь в Интернете. И даже нейродебил тебе проще не объяснит. Он портянку бреда как обычно высирает, потому что это тема нишевая никому нахрен неинтересная.

С загрузочными флешками тоже самое проделывается: Enroll Efi Image, EFI/BOOT/BOOTX64.EFI. А далее в случае с Ventoy появится меню, где нужно выбрать Enroll key from disk и добавить ключ, валяющийся в корне загрузочного раздела флешки с именем ENROLL_THIS_KEY_IN_MOKMANAGER.cer.

rtxtxtrx ★★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 3)

Для полностью доверенной загрузки через UEFI нужно иметь подписанное ядро, его модули и загрузчик, либо использовать подписанный же UKI и загружаться через UEFI непосредственно. Но это лишает возможности в случае чего передать ядру какие-нибудь параметры. Так, или не так?

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

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

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

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

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

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

rtxtxtrx ★★★
()

Дай мне доступ к твоему железу и я сделаю с ним всё что захочу. И поэтому вывод - не давай никому своё железо!

piwww ★★★★☆
()

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

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

Qui-Gon ★★★★★
()
Ответ на: комментарий от anonymous

на своих карбонах я вот такое использую:

--tpm2-pcrs=0+2+5+7+12

0 — BIOS/UEFI firmware (замена или апдейт биоса)
2 — настройки BIOS/UEFI
5 — загрузочный путь (EFI) (загрузка с другого носителя)
7 — Secure Boot 
12 — вскрытие корпуса
kixx09
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария