enroll mok что значит

Немного про UEFI и Secure Boot

UEFI (Unified Extensible Firmware Interface) — замена устаревшему BIOS. Эта спецификация была придумана Intel для Itanium, тогда она еще называлась EFI (Extensible Firmware Interface), а потом была портирована на x86, x64 и ARM. Она разительно отличается от BIOS как самой процедурой загрузки, так и способами взаимодействия с ОС. Если вы купили компьютер в 2010 году и позже, то, вероятнее всего, у вас UEFI.

Основные отличия UEFI от BIOS:
Как происходит загрузка в UEFI?

С GPT-раздела с идентификатором EF00 и файловой системой FAT32, по умолчанию грузится и запускается файл \efi\boot\boot[название архитектуры].efi, например \efi\boot\bootx64.efi
Т.е. чтобы, например, создать загрузочную флешку с Windows, достаточно просто разметить флешку в GPT, создать на ней FAT32-раздел и просто-напросто скопировать все файлы с ISO-образа. Boot-секторов больше нет, забудьте про них.
Загрузка в UEFI происходит гораздо быстрее, например, загрузка моего лаптопа с ArchLinux с нажатия кнопки питания до полностью работоспособного состояния составляет всего 30 секунд. Насколько я знаю, у Windows 8 тоже очень хорошие оптимизации скорости загрузки в UEFI-режиме.

Secure Boot

«Я слышал, что Microsoft реализовывает Secure Boot в Windows 8. Эта технология не позволяет неавторизированному коду выполняться, например, бутлоадерам, чтобы защитить пользователя от malware. И есть кампания от Free Software Foundation против Secure Boot, и многие люди были против него. Если я куплю компьютер с Windows 8, смогу ли я установить Linux или другую ОС? Или эта технология позволяет запускать только Windows?»

Начнем с того, что эту технологию придумали не в Microsoft, а она входит в спецификацию UEFI 2.2. Включенный Secure Boot не означает, что вы не сможете запустить ОС, отличную от Windows. На самом деле, сертифицированные для запуска Windows 8 компьютеры и лаптопы обязаны иметь возможность отключения Secure Boot и возможность управления ключами, так что беспокоится тут не о чем. Неотключаемый Secure Boot есть только на планшетах на ARM с предустановленной Windows!

Что дает Secure Boot? Он защищает от выполнения неподписанного кода не только на этапе загрузки, но и на этапе выполнения ОС, например, как в Windows, так и в Linux проверяются подписи драйверов/модулей ядра, таким образом, вредоносный код в режиме ядра выполнить будет нельзя. Но это справедливо только, если нет физического доступа к компьютеру, т.к., в большинстве случаев, при физическом доступе ключи можно заменить на свои.

Для Linux есть 2 пре-загрузчика, которые поддерживают Secure Boot: Shim и PRELoader. Они похожи, но есть небольшие нюансы.
В Shim есть 3 типа ключей: Secure Boot keys (те, которые в UEFI), Shim keys (которые можно сгенерировать самому и указать при компиляции), и MOKи (Machine Owner Key, хранятся в NVRAM). Shim не использует механизм загрузки через UEFI, поэтому загрузчик, который не поддерживает Shim и ничего не знает про MOK, не сможет выполнить код (таким образом, загрузчик gummiboot не будет работать). PRELoader, напротив, встраивает свои механизмы аутентификации в UEFI, и никаких проблем нет.
Shim зависит от MOK, т.е. бинарники должны быть изменены (подписаны) перед тем, как их выполнять. PRELoader же «запоминает» правильные бинарники, вы ему сообщаете, доверяете вы им, или нет.
Оба пре-загрузчика есть в скомпилированном виде с валидной подписью от Microsoft, поэтому менять UEFI-ключи не обязательно.

Secure Boot призван защитить от буткитов, от атак типа Evil Maid, и, по моему мнению, делает это эффективно.
Спасибо за внимание!

Источник

Управление загрузчиками EFI в Linux: режим безопасной загрузки Secure Boot

Что такое режим безопасной загрузки Secure Boot?

В течение десятилетий персональные компьютеры страдали от вирусов, червей и других вредоносных программ. Некоторые из самых ранних вирусов для персональных компьютеров распространялись как вирусы загрузочного сектора : Они размещались в виде кода в загрузочных секторах дискет и, когда пользователи загружали свои компьютеры с помощью зараженных дискет DOS, передавались от одного компьютера к другому. Несмотря на то, как дискеты потеряли свою важность, и широкую известность приобрели другие пути передачи вирусов, а обычным делом стало подключение к сети Интернет, вредоносный код, попадающий в компьютер во время начальной загрузки, всегда среди приоритетных интересов у авторов вредоносных программ. За счет того, что он выполняется раньше, чем ядро ОС возьмет управление над компьютером, вредоносная программа может «спрятаться» такими способами, которыми не удастся воспользоваться после того, как операционная система берет на себя управление. Предварительно загруженная вредоносная программа может стать невидимой для операционной системы, и антивирусным сканерам практически не удается обнаружить вредоносные программы, по крайней мере, без перезагрузки в спасательную систему, которая не заражена.

В BIOS совсем мало возможностей защиты от инфицирования предварительно загружаемыми вредоносными программами; когда происходит загрузка BIOS, ОС неявно доверяет всему, что выполняется в качестве загрузчика. До конца 2012 года это утверждение также было справедливо для большинства промышленных реализаций EFI. И для того, чтобы в процесс загрузки добавить дополнительный слой защиты был создан режим Secure Boot. При включенном режиме Secure Boot для любой программы EFI, которая запускается прошивкой, в прошивке проверяется наличие криптографической подписи. Если криптографическая подпись отсутствует, не соответствует ключу, хранящемуся в энергонезависимой памяти компьютера, или указана в энергонезависимой памяти в черном списке, то прошивка отказывается выполнять программу. Конечно, это просто начало процесса; надежный загрузчик EFI должен продолжить процесс загрузки в безопасном режиме, что в конечном счете приведет тому, что безопасной будет сама операционная система. Автору вирусов потребовалось бы создать подписанный вирус, что более трудно в случае, если пользователи контролируют работу с системными клавишами. Таким образом, предварительно загружаемая вредоносная программа может быть заблокирована. Есть масса способов чтобы затем сделать что-нибудь не так, как надо, но режим Secure Boot обеспечивает, по меньшей мере, основу, на которой можно будет создать в целом безопасный компьютер, по крайней мере, в теории!

В описании режима Secure Boot в спецификациях UEFI не предлагается никаких механизмов создания доверительной сети для ключей этого режима. Если исходить только из спецификаций UEFI, то можно решить, что режим Secure Boot будет активироваться непосредственно там, где компьютеры будут использоваться; администраторам на местах следует подписывать загрузчики, которые они используют, защищаясь тем самым от авторов вредоносных программ. Но, фирма Microsoft включила в свою сертификационную программу Windows 8 требование, которое обязывает продавцов поставлять компьютеры с включенным режимом Secure Boot. На практике это означает, что производители должны добавлять на свои компьютеры ключи от фирмы Microsoft, и если производители не будут добавлять другие ключи, то работать будут только загрузчики, подписанные Microsoft.

Затравкой первоначального публичного обсуждения этих вопросов был в сентябре 2011 года блог Мэтью Дж. Гарретта (Matthew J. Garrett), разработчика из Red Hat. Большая часть первоначального обсуждения на веб-форумах и в других общественных местах была исключительно паническая, и даже через год я иногда вижу слишком нервные посты. Я призываю успокоиться; как описано в этой статье, есть, по крайней мере, три способа решения режима Secure Boot: его отключение, использование предварительно подписанного загрузчика или использование своих собственных ключей.

Отключение режима Secure Boot

Конечно, прошивка вашего компьютера, скорее всего, будет отличаться от моей. Лучше всего, если вы хотите отключить режим Secure Boot, вам следует изучить параметры прошивки (настроек setup-а) вашей собственной системы. В вашей инструкции эта информация может присутствовать, либо ее там может не быть. В случае с моей материнкой ASUS P8H77-I, в руководстве не упоминалось о параметрах режима Secure Boot; я должен был разобраться с этим методом проб и ошибок. Я слышал о ситуациях, которые как лучше, так и хуже, чем с моей материнкой ASUS. В «лучшей» ситуации был пункт меню, снабженный довольно очевидным названием Secure Boot и варианты настройки Enabled (Включить) и Disabled (Выключить). В «худшей» ситуации, о которой я слышал от других, при попытке отключить режим Secure Boot красным цветом выдавались страшные сообщения, либо прежде, чем вы смогли бы получить доступ к прошивке, требовалось загрузится в Windows, и запускать программу, работающую под Windows.

Использование подписанного загрузчика


Использование программы Shim из системы Fedora

Чтобы соответствовать целям режима Secure Boot, загрузчик Linux должен обеспечивать аутентификацию ядра Linux, а дистрибутив Linux должен обеспечить дополнительные меры безопасности в тех ядрах, которые им предлагаются. К сожалению, эти цели не в ладах с философией свободы открытого исходного кода и свободой пользователей, позволяющей управлять своими компьютерами. Поэтому решение Secure Boot для Linux должно балансировать между этими двумя целями. Это именно то, что делает программа shim, созданная в системе Fedora. Она делает это с помощью поддержки использования следующих трех различных типов ключей:

Примечание: Вы можете спросить, почему эти возможности нельзя добавить в существующий загрузчик, например, в GRUB 2. Против этого есть несколько причин. Одна из них относится непосредственно к вопросам договоренностей: Как пишет в блоге Джеймса Боттомли (James Bottomley) в этом блоге, Microsoft отказывается подписывать двоичные файлы, распространяемые под некоторыми открытыми лицензиями, в том числе под лицензией GPLv3, которая используется как в GRUB 2, так и в rEFInd. Другая причина относится к сфере практики: загрузчик, такой как GRUB 2, является большой программой, которую в случае обнаружения ошибок велика может потребоваться быстро заменить. Но процесс подписания с участием третьих лиц может замедлить процесс выпуска релиза, что поставщики дистрибутивов считают неприемлемым.

Весь смысл режима Secure Boot состоит в том, чтобы предотвратить попытки вредоносной программы получить контроль над компьютером. Поэтому, когда загрузка происходит с включенным режимом Secure Boot, система Fedora 18 ограничивает действия, которые некоторые пользователи Linux считают само собой разумеющимися. Например, должны быть подписаны модули ядра Linux, что затрудняет использование драйверов ядра сторонних производителей, таких как те, которые необходимы проприетарным видеодрайверам фирм Nvidia и AMD/ATI. Чтобы запустить локально-скомпилированное ядро, вы должны подписать его ключом МОК и зарегистрировать этот ключ МОК в системе. Общий объем подобных ограничений полностью зависит от тех, кто разработал и подписал загрузчик, запускаемый с помощью программы shim, и ядра, запускаемого с помощью этого загрузчика. Скорее всего, что в некоторых дистрибутивах будут поставляться ядра, которые будут сравнительно не сильно обременены добавлением ограничений безопасности.

Примечание: Описанная здесь процедура утомительна, т.к. она требует самостоятельного подписывания загрузчиков и ядер. Как только в дистрибутивах появится программа shim, трудность этого процесса резко снизится. Если вам повезет, вы сможете использовать Ubuntu 12.10 или Fedora 18 с включенным режимом Secure Boot и не замечать отличие от установки без использования режима Secure Boot.

Если вы хотите сейчас использовать программу shim, то с практической точки зрения у вас есть три варианта: Вы можете запустить Ubuntu 12.10; вы можете запустить Fedora 18, или вы можете запустить подписанную версию, созданную Мэтью Гарретт (Matthew Garrett), добавить свой собственный ключ MOK и подписать любой двоичный файл, который захотите. К сожалению, прямо сейчас этот процесс все еще немного утомителен. Вкратце, он выглядит следующим образом:

Введите следующие две команды для создания своих открытых и закрытых ключей:

Скопируйте файл MOK.cer в каталог, где его сможет прочитать ваш загрузчик EFI, например, загрузчик ESP вашего компьютера.

Примечание: Версия 0.2 программы shim не может напрямую запускать ядра Linux. Вам все еще нужно использовать shim в сочетании с загрузчиком, например, старой версией GRUB, GRUB 2 или ELILO. Поскольку gummiboot запускает Linux с помощью системных вызовов EFI, он не будет работать с программой shim. То же самое касается программы rEFInd версий 0.4.7 и более ранних, но начиная с версии 0.5.0 rEFInd может «общаться» с программой shim и использовать ее для аутентификации загрузчиков, которые запускаются.

Нажмите клавишу со стрелкой, указывающей вниз, и для того, чтобы выбрать вариант Enroll key from disk (Взять ключ с диска), нажмите клавишу Enter. Экран будет очищен и вам будет предложено выбрать ключ, например, следующим образом:

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

Проверка ваших загрузчиков


Использование загрузчика PreLoader от Linux Foundation

С практической точки зрения, у PreLoader есть преимущество в случае, если вы хотите запустить не подписанный загрузчик (например, со старого дистрибутива Linux), либо если вы хотите распространять загрузочный образ системы, но у вас нет средств для оплаты вашего собственного ключа для подписи. Если вы не сильны с технической точки зрения, то в таких случаях загрузчик PreLoader особенно полезен, поскольку вам не нужно иметь дело с подписыванием ключей так, как это описано для случая применения программы shim. Если в вашем дистрибутиве подписаны загрузчики и/или ядра, то вам лучше отказаться от использования shim. Если загрузчики вашей системы (возможно, в том числе ее ядра) меняются редко и если вы готовы подписывать ключи, то любая из программ будет работать одинаково хорошо.

Чтобы использовать загрузчик PreLoader, выполните следующие действия:

/b>Примечание: К сожалению, программа HashTool имеет очень серьезное ограничение: она может запоминать хэши только тех двоичных файлов, которые хранятся на диске, с которого эта программа запущена. Таким образом, вам, возможно, потребуется либо скопировать программу HashTool на диск, на котором хранятся ваши исполняемые файлы, либо скопировать двоичные файлы на диск, на котором хранится программа HashTool. После того, как вы запомните хэш двоичного файла, он будет работать при запуске из любого места.

В этот момент ваш компьютер должен перезагрузиться в ваш обычный загрузчик и, если вы зарегистрировали ядра и последующие загрузчики с помощью HashTool, то у вас у должна быть возможность запускать эти двоичные файлы так, как если бы они были подписаны ключом Secure Boot вашей платформы. Такая регистрация является важным пунктом. Если вы для запуска ядер Linux пользуетесь загрузчиком rEFInd или gummiboot, то вам необходимо регистрировать каждое новое ядро, когда вы (или системы пакетов вашего дистрибутива) его устанавливаете. Этот факт также означает, что у вас должна быть возможность запуска HashTool. ELILO это сделать не может, но вы можете для того, чтобы иметь возможность запускать программу HashTool, настроить rEFIt, rEFInd, gummiboot, GRUB Legacy и GRUB 2. На самом деле, загрузчик rEFInd версии 0.6.7 и последующих версий распознает двоичным модуль HashTool.efi и предоставляет на главном экране для него тег.

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

Ссылки по теме

Помощь
enroll mok что значит. Смотреть фото enroll mok что значит. Смотреть картинку enroll mok что значит. Картинка про enroll mok что значит. Фото enroll mok что значит
Задать вопрос
программы
обучение
экзамены
компьютеры
enroll mok что значит. Смотреть фото enroll mok что значит. Смотреть картинку enroll mok что значит. Картинка про enroll mok что значит. Фото enroll mok что значит
ICQ-консультанты
enroll mok что значит. Смотреть фото enroll mok что значит. Смотреть картинку enroll mok что значит. Картинка про enroll mok что значит. Фото enroll mok что значит
Skype-консультанты
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
enroll mok что значит. Смотреть фото enroll mok что значит. Смотреть картинку enroll mok что значит. Картинка про enroll mok что значит. Фото enroll mok что значит

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

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

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

Источник

Ubuntu Wiki

SecureBoot

What is UEFI Secure Boot?

UEFI Secure boot is a verification mechanism for ensuring that code launched by firmware is trusted.

Proper, secure use of UEFI Secure Boot requires that each binary loaded at boot is validated against known keys, located in firmware, that denote trusted vendors and sources for the binaries, or trusted specific binaries that can be identified via cryptographic hashing.

Most x86 hardware comes from the factory pre-loaded with Microsoft keys. This means we can generally rely on the firmware on these systems to trust binaries that are signed by Microsoft, and the Linux community heavily relies on this assumption for Secure Boot to work. This is the same process used by Red Hat and SUSE, for instance.

Many ARM and other architectures also support UEFI Secure Boot, but may not be pre-loading keys in firmware. On these architectures, it may be necessary to re-sign boot images with a certificate that is loaded in firmware by the owner of the hardware.

Initial implementation plan: Implementation Plan.

Supported architectures

amd64: A shim binary signed by Microsoft and grub binary signed by Canonical are provided in the Ubuntu main archive as shim-signed or grub-efi-amd64-signed.

arm64: As of 20.04 (‘focal’), a shim binary signed by Microsoft and grub binary signed by Canonical are provided in the Ubuntu main archive as shim-signed or grub-efi-arm64-signed. There is a GRUB bug under investigation that needs to be resolved before this works end to end.

Testing UEFI Secure Boot

If you’re interested in testing Secure Boot on your system, consult the how-to here: UEFI/SecureBoot/Testing.

How UEFI Secure Boot works on Ubuntu

On Ubuntu, all pre-built binaries intended to be loaded as part of the boot process, with the exception of the initrd image, are signed by Canonical’s UEFI certificate, which itself is implicitly trusted by being embedded in the shim loader, itself signed by Microsoft.

On architectures or systems where pre-loaded signing certificates from Microsoft are not available or loaded in firmware, users may replace the existing signatures on shim or grub and load them as they wish, verifying against their own certificates imported in the system’s firmware.

As the system boots, firmware loads the shim binary as specified in firmware BootEntry variables. Ubuntu installs its own BootEntry at installation time and may update it any time the GRUB bootloader is updated. Since the shim binary is signed by Microsoft; it is validated and accepted by the firmware when verifying against certificates already present in firmware. Since the shim binary embeds a Canonical certificate as well as its own trust database, further elements of the boot environment can, in addition to being signed by one of the acceptable certificates pre-loaded in firmware, be signed by Canonical’s UEFI key.

The next thing loaded by shim is the second-stage image. This can be one of two things: either GRUB, if the system is booting normally; or MokManager, if key management is required, as configured by firmware variables (usually changed when the system was previously running).

If booting normally; the GRUB binary (grub*.efi) is loaded and its validation is attempted against all previously-known trusted sources. The GRUB binary for Ubuntu is signed by the Canonical UEFI key, so it is successfully validated and the boot process continues.

If booting to proceed with key management tasks, the MokManager binary (mm*.efi) is loaded. This binary is explicitly trusted by shim by being signed by an ephemeral key that only exists while the shim binary is being built. This means only the MokManager binary built with a particular shim binary will be allowed to run and limits the possibility of compromise from the use of compromised tools. MokManager allows any user present at the system console to enroll keys, remove trusted keys, enroll binary hashes and toggle Secure Boot validation at the shim level, but most tasks require a previously set password to be entered to confirm that the user at console is indeed the person who requested changes. Such passwords only survive across a single run of shim / MokManager; and are cleared as soon as the process is completed or cancelled. Once key management is completed, the system is rebooted and does not simply continue with booting, since the key management changes may be required to successfully complete the boot.

Once the system continues booting to GRUB; the GRUB process loads any required configuration (usually loading configuration from the ESP (EFI System Partition), pointing to another configuration file on the root or boot partition), which will point it to the kernel image to load.

EFI applications up to this point having full access to the system firmware, including access to changing trusted firmware variables, the kernel to load must also be validated against the trust database. Official Ubuntu kernels being signed by the Canonical UEFI key, they are successfully validated, and control is handed over to the kernel. Initrd images are not validated.

Up to this point, any failure to validate an image to load is met with a critical error which stops the boot process. The system will not continue booting, and may automatically reboot after a period of time given that other BootEntry variables may contain boot paths that are valid and trusted.

Once loaded, validated kernels will disable the firmware’s Boot Services, thus dropping privileges and effectively switching to user mode; where access to trusted variables is limited to read-only. Given the broad permissions afforded to kernel modules, any module not built into the kernel will also need to be validated upon loading. Modules built and shipped by Canonical with the official kernels are signed by the Canonical UEFI key and as such, are trusted. Custom-built modules will require the user to take the necessary steps to sign the modules before they loading them is allowed by the kernel. This can be achieved by using the ‘kmodsign’ command [see section].

Unsigned modules are simply refused by the kernel. Any attempt to insert them with insmod or modprobe will fail with an error message.

Given that many users require third-party modules for their systems to work properly or for some devices to function; and that these third-party modules require building locally on the system to be fitted to the running kernel, Ubuntu provides tooling to automate and simplify the signing process.

How can I do non-automated signing of drivers?

Some projects may require the use of custom kernel drivers that are not set up in such a way as to work with DKMS. In these cases, people should make use of the tools included in the shim-signed package: the update-secureboot-policy script is available to generate a new MOK (if no DKMS-built modules have triggered generating one already).

Use the following command to enroll an existing key into shim:

If no MOK exists, the script will exit with a message to that effect. If the key is already enrolled, the script will exit, doing nothing. If the key exists but it not shown to be enrolled, the user will be prompted for a password to use after reboot, so that the key can be enrolled.

One can generate a new MOK using the following command:

And then enroll the newly-generated key into shim with the previously-mentioned command for that task.

Kernel modules can then be signed with the kmodsign command (see UEFI/SecureBoot/Signing) as part of their build process.

Security implications in Machine-Owner Key management

The MOK generated at installation time or on upgrade is machine-specific, and only allowed by the kernel or shim to sign kernel modules, by use of a specific KeyUsage OID (1.3.6.1.4.1.2312.16.1.2) denoting the limitations of the MOK.

Recent shim versions include logic to follow the limitations of module-signing-only keys. These keys will be allowed to be enrolled in the firmware in shim’s trust database, but will be ignored when shim or GRUB validate images to load in firmware. Shim’s verify() function will only successfully validate images signed by keys that do not include the «Module-signing only» (1.3.6.1.4.1.2312.16.1.2) KeyUsage OID. The Ubuntu kernels use the global trust database (which includes both shim’s and the firmware’s) and will accept any of the included keys as signing keys when loading kernel modules.

Given the limitations imposed on the automatically generated MOK and the fact that users with superuser access to the system and access to the system console to enter the password required when enrolling keys already have high-level access to the system; the generated MOK key is kept on the filesystem as regular files owned by root with read-only permissions. This is deemed sufficient to limit access to the MOK for signing by malicious users or scripts, especially given that no MOK exists on the system unless it requires third-party drivers. This limits the possibility of compromise from the misuse of a generated MOK key to signing a malicious kernel module. This is equivalent to compromise of the userland applications which would already be possible with superuser access to the system, and securing this is out of the scope of UEFI Secure Boot.

Previous systems may have had Secure Boot validation disabled in shim. As part of the upgrade process, these systems will be migrated to re-enabling Secure Boot validation in shim and enrolling a new MOK key when applicable.

MOK generation and signing process

The key generation and signing process is slightly different based on whether we are dealing with a brand new installation or an upgrade of system previously running Ubuntu; these two cases are clearly marked below.

In all cases, if the system is not booting in UEFI mode, no special kernel module signing steps or key generation will happen.

If Secure Boot is disabled, MOK generation and enrollment still happens, as the user may later enable Secure Boot. They system should work properly if that is the case.

The user installs Ubuntu on a new system

The user steps through the installer. Early on, when preparing to install and only if the system requires third-party modules to work, the user is prompted for a system password that is clearly marked as being required after the install is complete, and while the system is being installed, a new MOK is automatically generated without further user interaction.

Third-party drivers or kernel modules required by the system will be automatically built when the package is installed, and the build process includes a signing step. The signing step automatically uses the MOK generated earlier to sign the module, such that it can be immediately loaded once the system is rebooted and the MOK is included in the system’s trust database.

Once the installation is complete and the system is restarted, at first boot the user is presented with the MokManager program (part of the installed shim loader), as a set of text-mode panels that all the user to enroll the generated MOK. The user selects «Enroll MOK», is shown a fingerprint of the certificate to enroll, and is prompted to confirm the enrollment. Once confirmed, the new MOK will be entered in firmware and the user will be asked to reboot the system.

When the system reboots, third-party drivers signed by the MOK just enrolled will be loaded as necessary.

The user upgrades an UEFI-enabled Ubuntu system to a new release where the system requires third-party drivers

On upgrade, the shim and shim-signed packages are upgraded. The shim-signed package’s post-install tasks proceeds to generate a new MOK, and prompts the user for a password that is clearly mentioned as being required once the upgrade process is completed and the system rebooted.

During the upgrade, the kernel packages and third-party modules are upgraded. Third-party modules are rebuilt for the new kernels and their post-build process proceeds to automatically sign them with the MOK.

After upgrade, the user is recommended to reboot their system.

On reboot, the user is presented with the MokManager program (part of the installed shim loader), as a set of text-mode panels that all the user to enroll the generated MOK. The user selects «Enroll MOK», is shown a fingerprint of the certificate to enroll, and is prompted to confirm the enrollment. The user is also presented with a prompt to re-enable Secure Boot validation (in the case it was found to be disabled); and MokManager again requires confirmation from the user. Once all steps are confirmed, shim validation is re-enabled, the new MOK will be entered in firmware and the user will be asked to reboot the system.

When the system reboots, third-party drivers signed by the MOK just enrolled will be loaded as necessary.

In all cases, once the system is running with UEFI Secure Boot enabled and a recent version of shim; the installation of any new DKMS module (third-party driver) will proceed to sign the built module with the MOK. This will happen without user interaction if a valid MOK key exists on the system and appears to already be enrolled.

If no MOK exists or the existing MOK is not enrolled, a new key will automatically created just before signing and the user will be prompted to enroll the key by providing a password which will be required upon reboot.

UEFI/SecureBoot (последним исправлял пользователь dannf 2020-04-08 14:07:55)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *