LINUX.ORG.RU

UEFI Secure Boot и Linux

 , ,


3

3

Не так давно решил обезопасить свое железо от разных нехороших людей, потихоньку начал к этому приступать. LVM поверх LUKS настроил, все работает. Теперь приступил к настройке SELinux, но и этого мне показалось мало. Захотелось сделать так, чтобы абсолютно ничего, кроме моего подписанного ядра на ноуте не загружалось. Ведь именно на это и делали M$ упор, когда проталкивали Secure Boot, чтобы ничего, кроме винды и продажных подписанных дистрибутивов, железо не воспринимало. Хочу сделать так же, но в обратную сторону. А то всунет нехороший дядя свою флешку, загрузится и что-нибудь сделает. Интересует способ подписывания ядра и создания ключей (на данный момент их в ноуте нет). Нужно ли подписывать initramfs (без него не расшифровать LUKS раздел)? Если да, то как?

★★★★★
Ответ на: комментарий от eona

Чаще всего ноутбуком пользуюсь на учебе. Приходится иногда отлучаться минут на 15-30, ноут, как правило, оставляю. Точно знаю что не сопрут, но вот какую-нибудь пакость устроить с них станется.

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

А просто «Заблокировать» мало? То есть ты в любом случае поймешь, что кто-то ковырял его или ребутал.

eona
()

ядро подписывай pesign. ключи и сертификаты сгенерируй OpenSSL. M$ ничего не проталкивали, Secure Boot - часть стандарта UEFI.

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

Превосходно. В данный момент загрузился с подписанным ядром через Secure Boot. Правильно ли я полагаю, что загрузка чего-нибудь еще, что не подписано моим ключем, будет невозможна?

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

Правильно ли я полагаю, что загрузка чего-нибудь еще, что не подписано моим ключем, будет невозможна?

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

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

Отлично, надо самому запилить, когда комп поменяю. Кстати, Meyer, можешь скинуть маны, по которым делал и что именно сделал, кроме секурнобута? Я хочу себе запилить.

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

Большое спасибо. Эх, паранойя, оставь меня!

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

А какой ключ можно взять для подписывания модулей? Или его генерировать отдельно?

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

Спасибо! Все работает, разве что с подписью wl модуля повозиться пришлось.

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

kexec оторвать ещё ннада.

Плюсую этого регистранта.

Странно, что никто раньше этого не засоветовал.

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

Support for allowing only signed kernels to be booted through kexec was merged into version 3.17 of the Linux kernel mainline, released on October 5, 2014. This disallows a root user to load arbitrary code via kexec and execute it, complementing the UEFI secure boot and in-kernel security mechanisms for ensuring that only signed Linux kernel modules can be inserted into the running kernel.

А вообще, я отключил это давно. Зачем оно мне, если я этим все равно не пользуюсь?

Meyer ★★★★★
() автор топика
31 мая 2015 г.
Ответ на: комментарий от Meyer

Можешь написать более подробно по настройке Secure Boot, я вот попробовал у меня в grub шелл выкинуло, на пятом этапе, и причем пока я signed пакет с ядром не удалил, загрузиться так и не смог. : https://wiki.ubuntu.com/SecurityTeam/SecureBoot#Bootloader_signed_with_Canoni...
Если что: Я хочу использовать подписанное ядро из репозиториев, чтобы своевременно получать обновления, и не подписывать каждый раз, новое ядро вручную. Lincor Meyer

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

Разобрался. Хорошее руководство вот здесь. Но у меня не взлетело. UEFI вечно ругался на неправильную подпись, не смотря на то что, ключи ставились правильно как в ручную так и сами в key-database. Не смотря на это можно было добавлять и в режиме ручного разрешения во время загрузки (хоть и работало через раз). Печально, что у меня не показываются GUID'ы, а также нельзя выбрать загрузку uefi с файла вручную. Но проблема похоже в grub-efi-amd64-signed, который все время сбрасывал меня в шелл, с которого невозможно было загрузиться. Хотя конфиг был верный. Думаю через shim, можно было бы сделать, но учитываю, что файлом у меня нельзя в UEFI добавлять, то мне все это надоело и я забил до лучших времен, тем более бы последний все равно бы потом грузил в grub, который в случае grub-efi-amd64-signed, вываливал в grub shell. Опять же думаю пункт с shim, можно было бы добавить в меню, если бы вручную создать каталог отдельный для него, как это делается для grub, а не как по дефолту файл валится в один и тот же каталог. В случае же использования обычного grub-efi, начинало грузится, и подписи вручную. Начинало грузиться, но Secure Boot тут же начинал ругаться на модули grub.
sbkeysync же вот очень удобен (удобно все ставил), если бы еще все это дело завелось...

anonymous_sama ★★★★★
()

Шифруй весь диск, а /boot-раздел вместе с запароленым ключем в нем носи на флешке.

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

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

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

Ага ты сейчас заведешь пластинку про АНБ, бэкдоры и прочую параноидальную хрень. Забей. АНБ спит и видит как лишь бы скрыто подглядеть на твоих котиков. Или прочитать историю твоего браузера. Им абсолютно насрать на тебя и таких как ты и я. Выгоды никакой из этого они не извлекут(разве поржать только), а сидеть и ломать ключи секурбута ради твоих котиков никто не будет.

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

Их держат на девайсах где отсутствует Ethernet или Wifi или любой другой способ доступа в интернет. При условии если эти данные действительно очень важны. Никто не будет прятать фотки котиков за семью печатями.

vq156 ★★
()

А если просто поставить жёсткий диск на первое место в списке загрузки и поставить пароль на BIOS/UEFI? Ведь тогда тоже с флешки загрузиться не получится. Разве что вытащить жёсткий диск, провести изменения и поставить обатно... Но это явно быстро и незаметно нельзя сделать. А ещё можно опломбировать корпус.

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

А ещё такой девайс можно немножко защитить от физ. доступа, например используя Secure Boot.

fludardes ★★
()

VM поверх LUKS настроил, все работает.
[...]
Нужно ли подписывать initramfs (без него не расшифровать LUKS раздел)? Если да, то как?

ды чтоже ты? ты настроил LUKS, но при этом раздел с ядром и initramfs — оставил не зашифрованным?

этоже блин дырища с надписью «входи кто хочет!»..

какой у тебя загрузчик? тебе нужен GRUB (да, как раз для UEFI+LUKS — он подойдёт норм) .

# P.S.: тему не читай @ сразу отвечай!

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

раздел с ядром и initramfs — оставил не зашифрованным

А что, есть экстрасенсы, которые по публичному ключу приватный получить могут? Класс.

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

Ага ты сейчас заведешь пластинку про АНБ

Какое АНБ? Мне нужна нормальная защита от банальных воров и гопников, а так же от их подручных школьников-кулхацкеров.

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

> раздел с ядром и initramfs — оставил не зашифрованным

А что, есть экстрасенсы, которые по публичному ключу приватный получить могут? Класс.

как ты сможешь отслеживать неизменяемость (щитай — контрольную сумму sha256, например) аж целого набора постоянно изменяемых файлов?

но(!), если бы тебе нужно было бы отслеживать контрольную сумму лишь только одно файла ``EFI/BOOT/BOOTX64.EFI`` , который к томуже НЕ изменяется НИ КОГДА (даже после обновления ядра)...

...то ты эту контрольную сумму (sha256) — смог бы даже выучить наизусть!

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

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

[[возможно хакеру придётся отвёрткой вынуть жёсткий диск или-ещё-как-извратиться — я не знаю — но предположим он СДЕЛАЕТ это!]]

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

...а потом ты вернёшься и увидишь эти следы чизбургера на клавиатуре, и у тебя даже возникнут подозрения, но ты так и не сможешь проверить «а действительно ли засунули троян?»...

представляешь эту ситуацию? тебе нужно будет чётко и ясно определить — скомпрометировоана ли загрузка или нет... у тебя уже нет всяких там GnuPG-утилит и прочего дерьма (так как всё оно находится внутри ноутбука, который возможно тебе уже *включать_нельзя* , а возможно и можно..).

что ты станешь в этом случае делать? :-)

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

в твой незашифрованный раздел

Смахивает на толстый троллинг. Я же четко указал, что используется Secure Boot, ядро подписано и грузиться может только оно одно. Приватных ключей на ноуте давно уже нет. Ношу с собой USB ключ, на ESP разделе ничего конфеденциального нет в принципе.

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

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

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

Они смогут что-то загрузить, но не смогут прочитать или изменить данные. Т. е. это защита только от порчи, но если кому-то понадобится испортить ноут — молоток проще, быстрее и надежнее.

P.S. Теорерически, могут подменить boot, чтобы он посылал ключ куда надо, или как минимум сохранял бы его для дальнейшего чтения, но это сложная и маловероятная атака, и от нее может помочь маленький /boot, чтобы туда никакое malware просто не влезло.

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

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

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

Диск я давно уже зашифровал. Просто хочется, чтобы в чужих руках ноут в бесполезную железку превратился. Пароль в EFI разве что перепрошивкой ПЗУ можно, а без доступа к ОС это разве что программатором сделать можно. Secure Boot не дает ничего загрузить, кроме подписанного ядра, диск зашифрован, а ключ на флешку записан.

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

Я же четко указал, что используется Secure Boot, ядро подписано и грузиться может только оно одно.

и что, совершенно нет ни какой возможности добавить в UEFI +ещё один новый сертификат?

[[школохакер это сделать не сможет ни как? даже если он знает волшебне слово «AWARD PW» (или какое там сейчас оно?)?]]

мне тык ведь казалось что Secure Boot сделано для защиты от вирусов (вирусов — внутри операционной системы), а не от шаловливых рук, проникающих в твой ноутбук в моменты пока ты отошёл :-)

Ношу с собой USB ключ, на ESP разделе ничего конфеденциального нет в принципе

имитация процесса спрашивания-пароля-при-загрузке (которую закачает школохакер тебе на ESP, вместо оригинальных EST-файлов) — сохранит все данные сразу в компьютерную сеть.

сами ESP-файлы (оригинальные) — школохакеру не нужны.

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

а вот тебе нужно — до боли простой способ выявить была ли модицикация ESP-файлов.

если у тебя *больше* чем 1 файл находится внутри ESP , и если этот\эти файл(ы) время от времени меняется (при обновлении ядра, например) — то это значит ты не можешь так просто контролировать ситуацию :-) ..

Смахивает на толстый троллинг

мы щаз разговариваем на тему, в которой мы боремся с невидмым врагом.. ясное дело что вся эта тема это один сплошной большой троллинг :-)

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

а вот тебе нужно — до боли простой способ выявить была ли модицикация ESP-файлов.

Определенно троллишь! Проверкой подписи занимается Secure Boot, зашить новый ключ можно разве что программатором, в настройки EFI без пароля не зайдешь. Вот и вся любовь.

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