Чому вимкнути "Захищений завантажувач" - це застосовується політика при встановленні сторонніх модулів


46

Встановлюючи 16.04 , мене попросили вимкнути " Захищене завантаження ", якщо я хотів би встановити сторонні модулі / драйвери .

Я не дотримувався.

І коли я встановив вручну єдині сторонні драйвери, якими я користуюся ( bcmwl-kernel-source ), мене знову попросили (під час встановлення пакету) вимкнути "Захищене завантаження".

Використання bcmwl-kernel-source було прекрасно з Secure Boot в 15.10 . Це, здається, не пов’язане з помилкою для мене.

Отже, схоже, що Ubuntu відмовляється підписувати більше сторонніх драйверів / модулів, щоб вони працювали (??) із "Захищеним завантаженням". Або, здається, вважати сторонні модулі небезпечними та ламаючими "Безпечні завантаження", отже, змушуючи відключити його, щоб дати зрозуміти ?? Маю рацію ?


6
Ну, IMO, це тому, що люди (помилково) припускають, що захищене завантаження порушить сторонні модулі при наданні порад. Технічна інформація щодо безпечного завантаження тут - wiki.ubuntu.com/SecurityTeam/SecureBoot . Особисто я не згоден з начебто всюдисущою порадою відключити безпечне завантаження, працює на моєму апаратному забезпеченні із захищеним завантаженням. IMO залишає захищене завантаження ввімкненим, якщо у вас немає проблем з ним, немає причин сліпо вимкнути функції безпеки.
Пантера

8
Я не розглядав це глибоко, але, як я це розумію, 16.04 переходить до більш жорсткого забезпечення безпечного завантаження, ніж 15.10 та більш ранні версії. Зокрема, 15.10 і раніше, як тільки Shim запустить GRUB, GRUB запустить будь-яке ядро Linux; захисні засоби завантаження закінчуються GRUB. Я розумію, що з 16.04, впровадження політики безпечного завантаження поширюється на ядро, тому GRUB Ubuntu більше не запускатиме неподписані ядра. Якщо це вийде за рамки цього, на непосліджені модулі ядра також впливатимуть, коли вони раніше не були. Знову ж таки, я цього не вивчив глибоко.
Род Сміт


1
Коли люди возиться зі своїми системами в спробі встановлення сторонніх модулів, мені залишається цікаво, чи ця функція не принесе більше шкоди, ніж користі.
Даніель

Чи є можливість повторно ввімкнути його після вимкнення?
shaunakde

Відповіді:


38

Це не помилка, це особливість.

Як каже Ентоні Вонг, коли ви встановлюєте пакет DKMS, ви складаєте пакет самостійно, таким чином, Canonical не може підписати модуль для вас.

Однак ви можете точно використовувати Secure Boot, однак це саме той випадок використання, коли Secure Boot намагається захистити вас від себе, оскільки не може знати, довіряєте ви модулю чи ні.

За замовчуванням на вашому пристрої UEFI є ключ платформи (PK), який в остаточному підсумку є довіреним органом сертифікації для завантаження коду у ваш процесор.

GRUB або shim або інші механізми завантаження можуть бути цифрово підписані KEK, якому довіряють кореневий CA (PK), і, таким чином, ваш комп'ютер може без будь-якої конфігурації завантажувати програмне забезпечення, наприклад Ubuntu Live USB / DVD.

У Ubuntu 16.04 ядро ​​побудовано з CONFIG_MODULE_SIG_FORCE = 1, що означає, що ядро буде застосовувати модулі для підпису надійним ключем на платформі. Враховуйте, що платформа UEFI за замовчуванням містить ПК, над яким ви не маєте ніякого контролю, і тому ви не можете підписувати бінарні файли ключем, розпізнаваним вашою власною машиною.

Деякі люди б'ються і зловживають проти цього, але насправді немає кращого способу (з точки зору безпеки), ніж саме ви записуєте новий ключ, який ви хочете.

Якщо ваша завантажувальна система використовує shim, ви можете використовувати щось, що називається база даних ключа власника машини, і записати свій ключ як MOK (Ви можете це зробити за допомогою mokutil). Якщо цього немає, ви також можете записати свій ключ до бази даних UEFI як ключ підписання.

Після того, як ви зареєструєте свій ключ, ви можете підписати пакет, створений DKMS, за допомогою MOK (у ньому повинен бути сценарій perl /usr/src/kernels/$(uname -r)/scripts/sign-file), і після його підписання ви можете завантажити його в ядро .

Зрозуміло, хтось повинен зробити більш наочні вказівки з цього приводу, і, мабуть, навіть зробити майстра або кращого стандарту DKMS, щоб дозволити брати до уваги ключі, але це те, що ми маємо на даний момент.

Ви можете звернутися до цього пояснення щодо того, як підписати власні модулі ядра: https://askubuntu.com/a/768310/12049


1
Я відключив її, і тепер мені стає дратує "завантаження в небезпечному режимі повідомлення" Чи все-таки можна скасувати це? Я не можу навіть пояснити це питання на форумах тут. @ssice - я використовую UBUNTU 14.04, тому не думаю, що це навіть стосується мене. [
shaunakde

20

Коротше кажучи, це не помилка, а нова зміна, запроваджена 16.04.

Тому що ви встановлюєте пакет dkms. Модулі DKMS складаються на вашій власній машині, тому Canonical не може підписати модуль для вас. Якщо Canonical не може його підписати, немає можливості цифрово перевірити це. Якщо у вас увімкнено безпечне завантаження, це означає, що ваш модуль не можна використовувати, і для того, щоб ним скористатися, вам доведеться вимкнути захищений завантажувач, тому вас запитують питання.

Чому це відбувається лише в 16.04, але не в попередніх випусках, Род Сміт дав хорошу відповідь. У Ubuntu 16.04 Ubuntu починає застосовувати захищене завантаження до рівня ядра. До 16.04 Ubuntu насправді не вимагає використання підписаного ядра та підписаних модулів ядра, навіть у вас увімкнено безпечне завантаження. Але це вже не так 16.04.

Це пов’язана помилка: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532

Це пов'язаний план: https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-installing-unsigned-secureboot


Я все ще можу завантажити модуль wl з 16.04 beta2 та після оновлення. Але тепер з випуском я отримав помилку "modprobe: ПОМИЛКА: не вдалося вставити 'wl': необхідний ключ недоступний"
solsTiCe

Чи можете ви спробувати запустити: sudo apt install mokutil; sudo mokutil - відключення-підтвердження
Ентоні Вонг

6

Ще один спосіб зробити це - створити власний ключ, вставити публічну частину в базу даних MOK та підписати модулі, які ви компілюєте, із приватною частиною. Подивіться тут, щоб отримати детальну інформацію: Не вдалося завантажити 'vboxdrv' після оновлення до Ubuntu 16.04 (і я хочу захистити завантаження)


1

Прийнята відповідь дуже повна, але я хотів би додати цю просту інформацію, взяту звідси:

https://askubuntu.com/a/843678/664391

В основному безпечне завантаження може завадити завантаженню встановленого вами драйвера, що може бути дуже неприємно. Я сам переживав це: драйвер встановлено правильно, все, здавалося, було добре, але просто не вийшло. Зайняв у мене деякий час, щоб виявити, що захищене завантаження запобігає завантаженню ОС.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.