[Цитировать]

    dialmak
  • 2607
  • Стаж: 2 года 9 месяцев
  • Сообщений: 780
  • Репутация:44

    [+] [-]
Как известно BIOS умирает, его заменяет UEFI, процесс необратим.
К сожалению мало инфы по некоторым нюансам использования SecureBoot.
Цель данной темы рассмотреть, как можно сожительствовать с SecureBoot не испытывая никаких проблем.

x64 и x32 UEFI.

x64 и x32 UEFI.
Как ни прискорбно, но x32 UEFI умер не приходя в сознание, поэтому мы его рассматривать не будем в принципе.

Простой пример.

Простой пример. Я прихожу к незнакомому компу, хочу запустить какие-то уже проверенные практикой EFI приложения - бутлоадер\прогу (самый простой пример rEFInd\grub2) и получаю облом. Ибо включен SecureBoot.
Постараюсь в двух словах пояснить как без изменений настроек UEFI все таки запустить эти EFI приложения. Ничего космического, данная возможность предусмотрена и заложена в самом механизме SecureBoot. После окончания работы с незнакомым компом можно удалить все изменения, это я написал для конспирологов и параноиков.

Немного теории.

Не буду сильно влезать в теорию. Есть 4 режима работы SecureBoot.
Setup Mode нам не особо интересен, он предполагает, что мы меняем ВСЕ ключи. Кому интересно (эт для жестких параноиков), прошу сюда, не советую читать неподкованным в теме и слабонервных.. Там жестяк.
Audit Mode и Deployed Mode - режимы, которые практически неподвластны пользователю.
User Mode наш вариант, он позволяет добавлять\удалять пользовательские ключи MOK (Machine Owner Keys). Вот этот режим и рассмотрим внимательней ниже.
Есть несколько абсолютно разных по уровню доступа ключей SecureBoot - PK, KEK, DB, DBX, MOK. Подробнее читайте здесь..
Мы будем добавлять свои ключи в MOK лист в режиме User Mode. Мы не будем претендовать на какие-то глобальные изменения, просто "попросим" систему временно принять ключ или несколько - он\они пропишутся в NVRAM. Возможно немного сложно в теории, но на практике это просто, смотрим на видео ниже.

Shim и MOKManager.

Shim - это промежуточный загрузчик, подписанный валидным ключем от MS, задача которого разрешать к загрузке файлы, которые подписаны каким-нибудь ключем и этот ключ добавлен в MOK лист. Строго говоря подпись необязательна, файл может быть добавлен в MOK лист и по хэшу.
Дополнительная функция его - запускать MOKManager при ошибке. В данном случае ошибкой будет считаться, если файл grubx64.efi не прошел проверку, то есть в MOK листе о нём никаких сведений нет. Сам MOKManager не всегда добавляется в дистрибутив Linux, но его легко найти\докачать при желании. Также не догма, что загрузчик должен называться grubx64.efi, встречал разные варианты, впрочем чаще всего именно grubx64.efi ибо Shim исторически был создан и заточен под grub2.
Некоторая инфа есть здесь, впрочем кое-что уже устарело... Скачать.

Ключи или хэш?

Задача MOKManager проста - добавить в базу MOK ключи или хэши нужных бинарников EFI. Это могут быть драйвера, лоадеры, ядра, шеллы, утилиты и т.п.
Есть две возможности. Добавить ключи или добавить хэши. Если нужный бинарник подписан, то имхо удобнее добавить ключ, если не подписан, то придется добавлять хэш.
К примеру rEFInd имеет 7 драйверов x64 плюс сам rEFInd плюс несколько утилит. Согласитесь, что проще для всего этого зоопарка добавить один ключ, который автор заботливо нам предоставил, нежели 10 хэшей.
Что делать, если бинарник не подписан цифровой подписью? Тут два варианта. Подписать бинарник самому и потом добавить ключ или добавить хэш. Если бинарник один, два конечно хэш проще, а если 70?
Иногда бывает, что бинарник подписан, но публичного ключа автор не предоставил. Это не беда, можно экспортировать ключ в любой ОС. Пример экспорта ключа из Windows.

PRELoader и HashTool.

PRELoader - это промежуточный загрузчик, подписанный валидным ключем от MS, задача которого разрешать к загрузке файлы, которые имеют хэш в MOK листе. Он чем-то похож на Shim, но работает мне кажется немного не так, впрочем я не великий спец и нюансы мне неясны. Имхо он более прост и возможно надежнее, чем Shim.
Дополнительная функция его - запускать HashTool при ошибке. В данном случае ошибкой будет считаться, если файл Loader.efi не прошел проверку, то есть в MOK листе о нём никаких сведений нет. HashTool тоже подписан валидным ключем от MS и это его принципиальное отличие от MOKManager. Задача HashTool - добавить в базу MOK хэши нужных бинарников EFI.
Некоторая инфа есть здесь... Скачать.
Пример номер 1.
Есть всем известный бутлоадер rEFInd. Задача - запустить его в SecureBoot режиме.
Действуем просто. Добавляем к rEFInd Shim + MokManager, я взял из Ubuntu. Ссылка для загрузки, в архиве rEFInd, readme.txt c описанием и видеофайл. Ниже GIF ...

Вроде всё прекрасно, rEFInd великолепен. Но у rEFInd есть один недостаток. Он впадает в ступор, если через него пробовать загрузить другой Shim. То есть к примеру загрузка по схеме Shim -> rEFInd -> Shim -> grub2 не работает. И это печально, ведь может быть Android, Linux, etc. Я не поленился и спросил автора как быть в этой ситуации, он мне посоветовал добавлять ключи или хэши в MOK и тем самым исключать второй Shim из цепочки загрузки. Но это не всегда приемлемо, после обновления всё может пойти прахом.. Поэтому ниже другой вариант.
Пример номер 2.
Пока не готово видео, будет готово - выложу.
Пример номер 3.
Многие знают что такое Kon-Boot, на офсайте написано, что он не поддерживает SecureBoot. Попробуем исправить это безобразие с помощью PRELoader. Ссылка для загрузки, в архиве Kon-Boot, readme.txt c описанием и видеофайл. Ниже GIF ...

Далі буде...


Последний раз редактировалось: dialmak (2018-10-22 10:41), всего редактировалось 57 раз(а)

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года
  • Сообщений: 828
  • Репутация:38

    [+] [-]
dialmak, Приветствую! aa
Очень интересно. На форуме обсуждали Shim\PRELoader, даже что то пробовали ..... Но забили со временем. Мне без знания английского там не очень понятно было , да и не очень нужно. Хотя как то сделал и оно работало.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 2 года 9 месяцев
  • Сообщений: 780
  • Репутация:44

    [+] [-]
да и не очень нужно
Ну вот и я о том же. Хотел полгода назад написать эту статью, но передумал ибо реально никому не нужно. Ну посмотрим на голосование сейчас - вангую, что никому не нужно..
Вообще тема задумывалась более глобальной - как загрузить любой драйвер в UEFI, как сделать приоритет загрузки в UEFI и т.п.

[Цитировать]

    UserX
  • 667
  • Стаж: 3 года 7 месяцев
  • Сообщений: 161
  • Репутация:3

    [+] [-]
58465Хотел полгода назад написать эту статью, но передумал ибо реально никому не нужно.
Так всё в этом мире бывает ненужным, пока оно не потребуется в хозяйстве. Причём, очень срочно и даже ещё вчера. И тут начинаются судорожные поиски и выскребания из интернета и прочих "сусеков" инфы на колобок.
Повезёт - будет колобок, не повезёт - будет "обломок".
Так может, не стОит доверяться такой капризной субстанции, как везение? Девка эта капризна - может и обломать.
Так ударим же по бездорожью невезению автопробегом практической статьёй, дабы быть во всеоружии в самой суровой ситуации, аки рыцарь в сверкающих доспехах и на белом коне! ab
Думаю, правильно, чтобы статье - быть!

[Цитировать]

    dialmak
  • 2607
  • Стаж: 2 года 9 месяцев
  • Сообщений: 780
  • Репутация:44

    [+] [-]
UserX,
Думаю, правильно, чтобы статье - быть!
Решать пользователям. Голосование 5 дней.

[Цитировать]

    gera_serg
  • 1171
  • Стаж: 3 года 3 месяца
  • Сообщений: 1019
  • Репутация:-15

    [+] [-]
Продолжай, что тянуть 5 дней )

[Цитировать]

    UserX
  • 667
  • Стаж: 3 года 7 месяцев
  • Сообщений: 161
  • Репутация:3

    [+] [-]
58470Решать пользователям.
На всякий случай, напомню, что по-английски "пользователь" - "user" ae

[Цитировать]

    korsak7
  • 107
  • Стаж: 3 года 11 месяцев
  • Сообщений: 542
  • Репутация:44

    [+] [-]
Хотел полгода назад написать эту статью, но передумал ибо реально никому не нужно.
Тема нужная и неспешная, её накопительный эффект будет бесценен.

[Цитировать]

    coka
  • 16
  • Стаж: 4 года
  • Сообщений: 155
  • Репутация:3

    [+] [-]
  • Откуда: СиСиСиПи
dialmak, aa
aa
58474Тема нужная и неспешная, её накопительный эффект будет бесценен.
Лично меня одолевают сомнения. Какова конечная цель таких публикаций. Разъясните пожалуйста. Что это дает в конечном итоге, и в перспективе ? По возможности по проще и доходчивее.

[Цитировать]

    UserX
  • 667
  • Стаж: 3 года 7 месяцев
  • Сообщений: 161
  • Репутация:3

    [+] [-]
korsak7, сказать лучше просто невозможно! +5
58477Какова конечная цель таких публикаций.
Если оно не нужно по абсолютно любой причине, то разыскивать за того, кто сам не хочет причину, по которой оно ему нужно, просто бессмысленно. Разумеется, если сетевой маркетинг и впаривание товаров и услуг не является призванием разъясняющего.
Всё просто - кому-то нужно или просто интересно. А кому-то в это время для здоровья полезнее совершить чУдную прогулку по лесной тропинке. Благо - погода к тому благоволит.

[Цитировать]

    coka
  • 16
  • Стаж: 4 года
  • Сообщений: 155
  • Репутация:3

    [+] [-]
  • Откуда: СиСиСиПи
UserX,
58463И научимся как загрузить в SecureBoot загрузчики, которые для этого не предназначены.
Именно этот аспект мне и не понятен. Производить манипуляции которые при переходе на другое железо (комп) окажутся бесполезными. Ведь загрузка будет возможна только на том компе где будут прописаны эти ключи, или я что то недопонял ?

[Цитировать]

    Albert
  • 1131
  • Стаж: 3 года 4 месяца
  • Сообщений: 166
  • Репутация:11

    [+] [-]
dialmak будет чудесно, если Вы все-таки возьметесь за ликбез и раскроете тему. Не хочется уподобляться персонажу анекдота, что мне и отсюда видно. Может, что и отложится и во что-нибудь выльется. Как говорил мой тренер: применение мать учений. Даже отрицательный результат будет ценен.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 2 года 9 месяцев
  • Сообщений: 780
  • Репутация:44

    [+] [-]
Ок. Проголосовало людей, более, чем я думал.
Но сразу увидел людей активно против. Ну мне непонятно почему?

[Цитировать]

    dialmak
  • 2607
  • Стаж: 2 года 9 месяцев
  • Сообщений: 780
  • Репутация:44

    [+] [-]
Ладно. Завтра будет первый практический пример. Он тривиален.
Я, если честно был удивлен голосованием... Как правило всем пофиг, а тут такая реакция..
ОК. Я закрыл голосование, попробую сделать, то что написал, вопросов будет много - постараюсь ответить.
Сразу предупреждаю - тема новая, поэтому буду отвечать и на глупые вопросы, не тушуйтесь их задавать, сам такой был...

[Цитировать]

    dialmak
  • 2607
  • Стаж: 2 года 9 месяцев
  • Сообщений: 780
  • Репутация:44

    [+] [-]
Итак.
Если я\мы сможем разобраться в чем-то, то может мы и сможем влиять на это?
Давайте для начала разберемся что такое SecureBoot в практическом смысле. По тупому это означает, что НИКТО КРОМЕ MS не сможет загрузить ничего. НО. Как практика показывает это не совсем так, ведь грузится и ubuntu и fedora как правило без всяких проблем.
А вот тут мы приходим к пониманию, что есть все таки какая-то щель\метод\принцип обхода SecureBoot иначе никак бы не получилось загрузить ubuntu\fedora\etc..
Исторически сложилось 2 метода обхода SecureBoot - это Shim или PRELoader. Оба метода благословила MS в разное время, но распространение они получили в жизни разное.
В данный момент Shim более распространен и именно через него мы и будем действовать.
Это не означает, что нельзя действовать по методу PRELoader, просто через Shim как правило больше вариантов и он более распространен.

Страница 1 из 6


Показать сообщения:    

Текущее время: 18-Ноя 08:55

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы