буутлоудър

Сигурно зареждане на Linux

Сигурно зареждане на Linux

Linux: Какво е защитено стартиране?

При стартирането си компютърът изпълнява специфична програма за откриване и инициализиране на своите хардуерни компоненти. Традиционно IBM-съвместимите компютри използват основната система за входен изход (BIOS). За разлика от тях Mac използват OpenFirmware, Android има само зареждащо устройство, а Raspberry Pi започва от фърмуер, съхраняван в системата на чип (SoC). Тази първоначална стъпка включва хардуерни проверки, както и търсене на налични операционни системи на носители за съхранение, които са част от компютъра като твърд диск, CDROM / DVD или SD карта или са свързани към нея чрез мрежа (Network File System (NFS) , PXE Boot).

Реалният ред на търсене зависи от настройките на BIOS на компютъра. Фигура 2 показва списък с наличните устройства за зареждане.

В края се показва списък с налични операционни системи със специфични параметри (наречени „налични опции за зареждане“) в меню, от което избирате желаната операционна система за стартиране.

От 2012 г. се използва Secure Boot. Тази статия ще обясни какво представлява, какво е намерението зад него и как работи. Освен това ще отговорим на въпроса дали е необходимо Secure Boot за машини, базирани само на Linux, и как дистрибуциите на Linux се справят с този случай.


Какво е Secure Boot?

Secure Boot е свързано с доверие. Основната идея зад нея е стартирането на машината по безопасен начин, за да се предотврати работата на компютъра със злонамерен софтуер от самото начало. Като цяло, чистото стартиране с надеждна система е подход, който трябва да бъде силно подкрепен.

Secure Boot е част от Unified Extensible Firmware Interface (UEFI) - централен интерфейс между фърмуера, отделните компоненти на компютъра и операционната система [3]. За период от около пет години той е разработен от Intel и Microsoft като заместител на BIOS. През 2012 г., версия 2.3.1 от UEFI е въведен с Microsoft Windows 8. Microsoft задължително производителите на компютри да прилагат UEFI, ако искат да получат сертификат за Windows 8 за своите новоизградени машини [15].

Но защо Secure Boot се нарича Secure Boot? Какво го прави сигурна опция за зареждане? Secure Boot позволява само стартиране от предварително зададени буутлоудъри и следователно има за цел да предотврати стартирането на зловреден софтуер или други нежелани програми. Традиционният BIOS ще стартира всеки софтуер. Той дори би позволил на злонамерен софтуер, като руткит, да замени вашия boot loader. Тогава руткитът ще може да зареди вашата операционна система и да остане напълно невидим и неоткриваем във вашата система. Докато при Secure Boot системният фърмуер първо проверява дали зареждащото устройство на системата е подписано с криптографски ключ. Криптографският ключ е ключ, който е упълномощен от база данни, съдържаща се във фърмуера. Само ако ключът бъде разпознат, той ще позволи на системата да се стартира. Такъв валиден подпис трябва да следва спецификацията на сертифициращия орган на Microsoft UEFI (CA).


Различни перспективи

На пръв поглед това звучи доста добре, но винаги има две страни на монетата. Както обикновено съжителстват предимства и недостатъци. Рецензиите в пресата хвалят или демонизират Secure Boot в зависимост от това кой пише отзива.

Първо, имайте предвид, че властта над криптографските ключове е в ръцете на един глобален играч - Microsoft. Да дадеш мощност на милиони машини на една компания никога не е добра идея. По този начин Microsoft си осигурява пълен контрол над вашата машина. С едно решение Microsoft може да блокира целия пазар с един удар и да възпрепятства както своите конкуренти, така и вас като клиент. Е.ж. ако искате да инсталирате хардуер от друг производител на по-късен етап, ще трябва да се уверите, че ключът на новия компонент е съхранен в системата на базата данни. Оставяйки ви с ограничена гъвкавост и избор - особено ако сте разработчик.

Второ, не само, че вашият избор на хардуер е ограничен, но и изборът на вашата операционна система е предвиден да бъде ограничен поради UEFI технологията, въведена от Windows. Това означава, че затруднява живота на общността на Linux. Преди използването му на хардуер, базиран на UEFI, зареждащите устройства за Linux като GRUB първо трябва да бъдат сертифицирани и следователно забавя доста бързото развитие, тъй като общността с отворен код е известна с. Никой не знае какво се случва, ако централният валидатор направи грешка по време на валидирането или блокира издаването на актуализиран софтуер.

Трето, какво означава терминът зловреден софтуер днес и утре? Включва ли операционни системи от конкуренти [5] или те са изключени? Процесът на валидиране протича зад завесите и никой не може да го докаже.

Четвърто, има резерви по отношение на сигурността. Според сегашното развитие дължината на криптографските ключове е сравнително малка. Secure Boot позволява само сертификати X509 и RSA ключове с фиксирана дължина от 2048 бита [16]. В близко бъдеще, с използването на масово паралелизиране и допълнителни изчислителни мощности, базирани на виртуализация, се очаква това ниво на сигурност да бъде нарушено. Днес се препоръчват криптографски ключове с дължина 4096 бита.

Пето, изглежда сякаш софтуерът, който се предлага от голям доставчик и е сертифициран, е безопасен и без грешки. Както показва историята, всички знаем, че това не е вярно, софтуерът винаги съдържа грешки. Сертифицирането просто ви приспива във фалшиво чувство за сигурност.


Решения за отворен код

Но там, където има проблем, има и решение. Microsoft щедро предлага възможност на дистрибуторите на Linux да получат достъп до своя портал Microsoft Sysdev, за да подпишат своите зареждащи устройства [17]. Въпреки това тази услуга идва с цена.

Линукс дистрибуциите имат само „подложка“ [11], подписана на портала на Microsoft. Подложката е малък буут лоудър, който стартира основния GRUB буут лоуър на дистрибуциите на Linux. Microsoft само проверява подписаната подложка и след това вашата дистрибуция на Linux се зарежда нормално. Това помага да се поддържа системата Linux както обикновено.

Както се съобщава от различни източници, (U) EFI работи добре с Fedora / RedHat, Ubuntu, Arch Linux и Linux Mint. За Debian GNU / Linux няма официална поддръжка по отношение на Secure Boot [9]. Както и да е, има интересна публикация в блога за това как да настроите това [18], както и описание в Debian Wiki [14].

Алтернативи на UEFI

UEFI не е единственият наследник на PC BIOS - има алтернативи. Може да разгледате по-отблизо OpenBIOS [4], libreboot [7], Open Firmware [8,9] и coreboot [10]. За тази статия не ги тествахме, но е полезно да знаем, че съществуват алтернативни внедрения и работят безпроблемно.


Заключение

Както бе споменато преди, ключовият въпрос е доверието. По отношение на компютрите се запитайте на кои части от вашата система имате доверие - хардуерните компоненти (фърмуер, чипове, TPM) и / или софтуерните компоненти (зареждащо устройство, операционна система, софтуер, който се използва). Не можете да отстранявате грешки в цялата система. Може да ви помогне да знаете, че вашата операционна система не работи срещу вашите интереси и че получавате нещата, за които сте закупили системата - по безопасен начин, без да бъдете контролирани от монополист.


Връзки и справки

Благодарности

Франк Хофман и Манди Ноймайер са съавтори на статията.  Авторите биха искали да благодарят на Джъстин Кели за помощта и критичните коментари по време на писането на тази статия.

HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...
Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...
Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...