Якщо ви користуєтесь Linux, то можете зіткнутися з проблемами завантаження системи під час встановлення вашого улюбленого дистрибутива, особливо якщо на вашому комп'ютері увімкнено Secure Boot (захищене завантаження).
Функція Secure Boot має додавати додатковий рівень захисту для вашої системи, перешкоджаючи запуску неперевіреного програмного забезпечення під час завантаження системи. Звучить непогано. Чи не так?
Але не завжди це корисно. Для користувачів Linux Secure Boot може створювати більше проблем ніж приносити користі. Наприклад, в Ubuntu 21.04 файли Shim, що використовуються для підтримки Secure Boot в Linux, були несумісні з ранніми прошивками EFI, через що система просто не завантажувалася після оновлення.
Звісно, для Ubuntu було випущено виправлення, але на той момент багато користувачів вже зіштовхнулись з цією проблемою і були змушені розбиратися як це виправити і навіть використовувати файли Shim від старої версії, щоб завантажити свою систему.
Але що ж таке Secure Boot і навіщо потрібні файли Shim? У цій статті ми розглянемо що таке Secure Boot простими словами, а також як ця функція впливає на Linux і що робити якщо у вас виникли з нею проблеми.
Зміст
- Що таке Secure Boot?
- Як працює Secure Boot?
- Що таке Shim файли
- Чому Secure Boot такий важливий?
- Коли вам слід вимкнути Secure Boot?
- Які дистрибутиви підтримують Secure Boot?
- Як вимкнути Secure Boot?
- Висновки
Що таке Secure Boot?
Уявіть, що ваш комп'ютер - це замок із сильним вартовим біля воріт, який перевіряє документи у кожного, хто намагається увійти. Secure Boot відіграє роль цього вартового, переконуючись, що лише безпечні, перевірені програми можуть бути запущені під час ранніх етапів ініціалізації системи.
Стандарт безпеки Secure Boot був розроблений для того, щоб захистити ваш комп'ютер від шкідливого програмного забезпечення, яке може запускатися під час старту та робити все, що йому потрібно, ще до того, як операційна система повністю завантажилася.
Це частина того, що називається Unified Extensible Firmware Interface (UEFI), технології, яка замінила BIOS. UEFI це сучасний спосіб запуску комп'ютера та перевірки того, що все коректно працює. Коли Secure Boot увімкнено, ваш комп'ютер буде завантажувати лише програмне забезпечення, яке має спеціальний підпис. Якщо якась програма без підпису спробує завантажитися, то її буде зупинено.
Як працює Secure Boot?
Secure Boot використовує ланцюжок довіри, що складається з різних типів криптографічних ключів для перевірки кожного етапу завантаження. Ось їх спрощений опис:
- Platform Key (PK) - це майстер-ключ, зазвичай зберігається у виробника пристрою (Dell, HP тощо).
- Key Exchange Key (KEK) - цей ключ підтверджує чи можна довіряти іншим ключам, виступаючи в ролі мосту між платформою та завантажувачами програм.
- Allowed Database (DB) - містить список дозволених підписів для програм, які можна запускати.
- Forbidden Database (DBX) - містить список підписів для програм, які відомі як небезпечні. Якщо щось із цього списку спробує запуститися, Secure Boot його заблокує.
Під час завантаження Secure Boot перевіряє кожну програму, яка запускається, на відповідність ключам та базі даних. Тільки програми, підписані коректними ключами, будуть запущені.
Зображення від Red Hat.
Що таке Shim файли
Тепер давайте уявимо, що ви намагаєтесь запустити Linux на комп'ютері з увімкненим Secure Boot. У дистрибутивів Linux не завжди є ті самі дозволені підписи, що й у Windows, тому тут у справу вступають Shim файли.
Shim (прокладка) це невелика програма, яка діє як перекладач між Secure Boot та операційною системою Linux. Сам Shim файл підписаний за допомогою ключа, який Secure Boot розпізнає (зазвичай це ключ від Microsoft), тому він може запускатися.
Потім Shim перевіряє підпис завантажувача Linux, наприклад GRUB, і якщо все гаразд, то передає йому контроль. Цей процес створює ланцюжок довіри від Secure Boot до Linux, таким чином операційна система може бути безпечно запущена на комп'ютерах з увімкненим Secure Boot. Це також працює для BSD та інших не Windows систем.
Чому Secure Boot такий важливий?
Технологія Secure Boot дуже важлива, оскільки вона дозволяє захиститися від найнебезпечніших видів вірусів, таких як буткіти та руткіти. Це такі шкідливі програми, які намагаються сховатися в процесі завантаження, виконуючись ще до того, як запуститься сама ОС. Через що їх може бути дуже складно виявити і ще складніше видалити.
Якщо Secure Boot увімкнено, то:
- Руткіти та буткіти будуть заблоковані на етапі перевірки підпису.
- Інші неавторизовані програми не впливатимуть на процес завантаження.
- Користувачі будуть попереджені перш ніж потенційні складнощі перетворяться на великі проблеми.
Коли вам слід вимкнути Secure Boot?
Технологія Secure Boot корисна для підвищення безпеки системи, але іноді від неї можуть бути проблеми:
- Встановлення неверифікованих систем. Деякі операційні системи та деякі дистрибутиви Linux можуть не мати необхідних підписів для того, щоб пройти перевірку Secure Boot. Якщо ваша операційна система не буде розпізнана Secure Boot, вона не завантажиться.
- Використання сторонніх драйверів або завантажувачів. Деякі драйвери або завантажувачі можуть бути не підписані, що призведе до проблем сумісності.
- Розширені налаштування. Для досвідчених користувачів, які хочуть налаштовувати свою систему, обмеження Secure Boot можуть стати проблемою. Вимкнення Secure Boot надає більше гнучкості для середовищ розробки або домашніх експериментів.
Які дистрибутиви підтримують Secure Boot?
Незважаючи на те, що технологія Secure Boot створює проблеми сумісності для Linux, багато дистрибутивів цілком до неї адаптувалися. Ці дистрибутиви містять підписані завантажувачі та бінарні файли-прокладки, які дозволяють їм запускатися на системах з увімкненим Secure Boot.
Більшість популярних дистрибутивів підтримують Secure Boot. Сюди входять:
- Ubuntu
- Fedora
- OpenSUSE/SUSE
- Zorin
- Linux Mint
- Debian
- Red Hat
І це ще не повний список. Для того щоб дізнатися чи підтримує Secure Boot потрібний вам дистрибутив, перевірте його офіційний сайт. Оскільки не всі дистрибутиви сумісні, перед встановленням не завадить перевірити це. Якщо ваш дистрибутив не підтримує Secure Boot, ви все ще можете вимкнути цю функцію в налаштуваннях UEFI або вручну додати його завантажувач до списку дозволених.
Як вимкнути Secure Boot?
Якщо ви вирішите вимкнути Secure Boot, це досить просто зробити:
- Спочатку перезавантажте свій комп'ютер та увійдіть до інтерфейсу налаштування BIOS/UEFI. Для цього зазвичай потрібно натиснути кілька разів клавішу F2, F10 або Del під час заставки UEFI, перед завантаженням системи.
- Знайдіть опцію Secure Boot. Зазвичай вона знаходиться в розділі Boot або Security.
- Вимкніть Secure Boot. Встановіть значення опції в Disabled. Потім збережіть зміни та вийдіть з налаштувань UEFI.
Висновки
Думки щодо Secure Boot різняться, і на це є причини. Незважаючи на те, що технологія розроблена для покращення безпеки, вона накладає обмеження на користувачів Linux. Особливо тих, хто використовує пропрієтарні драйвери або не популярні дистрибутиви.
Необхідність використовувати підписані в Microsoft Shim файли піднімає питання про залежність від певного виробника. До того ж, якщо вам потрібно використовувати пропрієтарні драйвери для відеокарти, то вимкнення Secure Boot стає практично необхідністю, оскільки інакше пропрієтарні драйвери можуть не встановитися. Це компроміс, на який доводиться йти, але так бути не повинно.
У будь-якому разі, тепер ви знаєте, що таке Secure Boot і як ця технологія впливає на завантаження вашої системи. А що ви думаєте про все це? Напишіть у коментарях!