Secure BootSecure Boot (з англ. — «безпечне завантаження») — протокол, що є частиною специфікації UEFI[1]. Полягає в перевірці електронного цифрового підпису виконуваних EFI-застосунків, з використанням асиметричної криптографії щодо ключів, які зберігаються в системному сховищі ключів. Історія2011 року Microsoft включила у вимоги для сертифікації комп'ютерів під керуванням Windows 8 умову постачання таких систем із увімкненим Secure Boot з використанням ключа Microsoft. Більш того, для ARM-систем (смартфони та деякі ноутбуки) вимагалася неможливість відключення Secure Boot. Це викликало суспільний резонанс і критику в бік Microsoft, оскільки такі вимоги значно ускладнювали, а в разі ARM-систем унеможливлювали встановлення операційних систем, відмінних від Microsoft Windows[2][3][4]. ОписАвтентифіковані змінніАвтентифіковані змінні (Authenticated Variable) — змінні, для змінення яких потрібна автентифікація. Secure Boot передбачає зберігання публічних ключів, підписів та гешів застосунків у автентифікованих змінних, що зберігаються в незалежній пам'яті. Такі змінні можна перезаписати двома способами[5][6][7]:
Використовувані змінні
Режими роботиSetup Mode (режим налаштування)Перехід у цей режим можливий із режиму користування очищенням PK. У цьому режимі для запису PK, KEK, db, dbx не потрібно автентифікації. Запис PK переводить систему в режим користування. Запис одиниці в спеціальну змінну AuditMode (доступна для запису тільки в режимах налаштування та користування) переводить систему в режим аудиту. Audit Mode (режим аудиту)Перехід у цей режим можливий з режиму налаштування або режиму користування записом одиниці в змінну AuditMode. При зміненні режиму на режим аудиту очищається PK. У цьому режимі не потрібно автентифікації для запису PK, KEK, db, dbx. У режимі аудиту можна запускати образи, що не пройшли перевірки, а інформація про всі етапи валідації образів буде записана в спеціальну таблицю, доступну з операційної системи, що дозволяє випробовувати комбінації збережених ключів і підписів, не побоюючись втратити працездатність системи[9]. Запис PK переводить систему в розгорнутий режим. User Mode (режим користування)Перехід у цей режим можливий із режиму налаштування записом PK, або з розгорнутого режиму платформозалежним методом (не обумовлено специфікацією). У цьому режимі для змінення ключових сховищ потрібна автентифікація, а також виконується валідація образів, що запускаються. Видалення PK переводить систему в режим налаштування. Запис одиниці в змінну AuditMode переводить систему в режим аудиту. Запис одиниці в змінну DeployedMode (доступну для запису тільки в режимі користувача) переводить систему в розгорнутий режим. Deployed Mode (розгорнутий режим)Перехід у цей режим можливий із режиму аудиту записом PK, або з режиму користування записом одиниці в змінну DeployedMode. Найбезпечніший режим[9]. Відрізняється від режиму користування переведенням усіх змінних режимів (AuditMode, DeployedMode, SetupMode) у режим тільки для читання. Перехід у інші режими (користування або налаштування) можливий тільки через платформозалежні методи або автентифіковане очищення PK[9]. Процес авторизаціїПеред запуском невідомого UEFI-образу він має пройти процес авторизації.
Оновлення бази даних довірених програм також доступне з операційної системи[10]. Ключі користувачаКористувач може самостійно згенерувати та встановити власні ключі. «Повний цикл» генерування ключів реалізовано як для ОС Linux, так і для Windows. Як правило, в процесі генерування ключів застосовується такий ланцюжок перетворень: Для Windows є спеціальні інструменти від Microsoft, а на Linux використовують OpenSSL і набір утиліт EfiTools. Існує проблема, пов'язана з відсутністю інтерфейсу для встановлення ключів користувача в BIOS деяких виробників. Для цього може знадобитись окрема утиліта. Додаткову складність створює необхідність сумісності з обладнанням від Майкрософт у низці випадків. Перевірка працює в обидва боки і без ключів Майкрософт їхнє ПЗ та апаратура (наприклад, GOP-драйвери зовнішніх відеокарт та PXE-драйвери зовнішніх мережевих карт, а значить і самі карти) не працюватимуть. Тобто на певному рівні довіритися Майкрософт доведеться в будь-якому разі. Користувачеві доведеться додати ключ від Майкрософт до db або КЕК, що створює додаткові ризики для безпеки. На одному комп'ютері може бути кілька КЕК та db. Таким чином, може утворитися кілька гілок довіри. Або навпаки, одна db може бути підписана кількома КЕК (хоча це й не потрібно) Розвиток механізмуHP Sure Start — рішення від компанії Hewlett-Packard, фактично є вбудованим апаратно-програмним засобом довіреного завантаження. Здійснює функцію захисту ключів Secure Boot. Secure Boot у його поточному вигляді Майкрософт пропонує як мінімальний стандарт безпеки при захисті від руткітів. Деякі виробники при цьому розробляють свої рішення, що забезпечують довірене завантаження у зв'язці з рішенням від Microsoft, прикладом такого рішення є HP Sure Start[11]. Переваги та недолікиПереваги
При втручанні руткітів у критичні компоненти операційної системи підписи відповідних компонентів втрачають валідність. Таку операційну систему просто не буде завантажено[12].
За необхідності обмежити список можливих для запуску операційних систем це можна зробити, внісши відповідні підписи до баз даних підписів[12]. Недоліки
Драйвери пристроїв, підтримка яких необхідна на стадії завантаження системи, повинні мати підпис, який коректно проходив би перевірку на всіх платформах, де такі пристрої можуть використовуватися. Для цього всім виробникам такого обладнання доведеться узгоджуватися з усіма виробниками платформ для додавання їхніх ключів до сховищ систем. Або такі драйвери доведеться підписувати ключем, який вже міститься в більшості платформ, але тоді виробникам доведеться повністю покладатися на власника такого ключа (наприклад, Майкрософт підписує завантажувач shim[13][14]). Також можна створювати підписи ланцюжком, що закінчується ключем, який міститься в більшості платформ, але навіть цей підхід має недолік — при видаленні відповідного ключа зі сховища ключів (наприклад, щоб заборонити завантаження певної операційної системи) драйвери також втрачають валідність[12].
Постачальники систем не повинні реалізовувати можливості відключення Secure Boot. Процедура додавання сторонніх ключів до сховища має бути недоступною для шкідливого програмного забезпечення, наслідком чого є ускладнення цієї процедури для користувачів. Два цих фактори разом значно ускладнюють використання непідписаних операційних систем, а також підписаних невідомим ключем для платформи[12].
Конкретні реалізації прошивок пристроїв різних виробників можуть містити вразливості, експлуатація яких може призвести до обходу механізму Secure boot або його нівелювання[15][16].
Механізм Secure Boot може перешкоджати роботі засобів довіреного завантаження (ЗДЗ). Оскільки ЗДЗ підміняють завантажувач ОС власним завантажувачем, що у загальному випадку не має підпису, Secure Boot може заблокувати завантажувач ЗДЗ і, отже, перешкодити роботі ЗДЗ в цілому. Є два способи вирішення цієї проблеми:
Див. також
Примітки
Література
|
Portal di Ensiklopedia Dunia