Bezpieczny rozruch Linux

Bezpieczny rozruch Linux

Linux: Co to jest bezpieczny rozruch?

Na początku komputer uruchamia określony program do wykrywania i zainicjowania komponentów sprzętowych. Tradycyjnie kompatybilne z IBM komputery używają podstawowego systemu wyjściowego wejściowego (BIOS). Natomiast komputery Mac korzystają z OpenFirmware, Android ma tylko ładowarkę rozruchową, a Raspberry Pi zaczyna się od oprogramowania układowego przechowywanego w systemie na chipie (SOC). Ten początkowy krok obejmuje kontrole sprzętowe, a także wyszukiwanie dostępnych systemów operacyjnych na nośników pamięci, które są częścią komputera, takie jak dysk twardy, CDROM/DVD lub karta SD lub podłączona do niego za pośrednictwem sieci (Network File System (NFS) , But pxe).

Rzeczywista kolejność wyszukiwania zależy od ustawień BIOS komputera. Rysunek 2 pokazuje listę dostępnych urządzeń do uruchomienia.

Na końcu lista dostępnych systemów operacyjnych o określonych parametrach (o nazwie „Dostępne opcje rozruchu”) jest wyświetlana w menu, z którego wybierzesz żądany system operacyjny, aby uruchomić.

Od 2012 r. Bezpieczny rozruch jest używany. Ten artykuł wyjaśni, co to jest, jaka jest intencja i jak działa. Ponadto odpowiemy na pytanie, czy potrzebny jest bezpieczny rozruch na maszyny oparte tylko na systemie Linux, oraz w jaki sposób rozkłady Linux obsługują ten przypadek.


Co to jest bezpieczny rozruch?

Bezpieczny but dotyczy zaufania. Ogólna idea za nim jest bezpieczna maszyna, aby zapobiec uruchomieniu komputera z złośliwym oprogramowaniem od samego początku. Ogólnie rzecz biorąc, czysty start z niezawodnym systemem jest podejściem do silnego wspierania.

Secure Boot jest częścią Unified Extensible Woundware Interface (UEFI) - centralnego interfejsu między oprogramowaniem układowym, poszczególnymi komponentami komputera i systemu operacyjnego [3]. Przez około pięć lat został opracowany przez Intel i Microsoft jako zamiennik BIOS. W 2012 roku wersja 2.3.1 z UEFI został wprowadzony z Microsoft Windows 8. Microsoft uczynił go obowiązkowym dla producentów komputerowych w celu wdrożenia UEFI, jeśli chcieliby uzyskać certyfikat Windows 8 dla swoich nowo kompilacji [15].

Ale dlaczego bezpieczny rozruch zwany bezpiecznym rozruchem? Co sprawia, że ​​jest to bezpieczna opcja uruchamiania? Bezpieczny rozruch umożliwia tylko uruchamianie z wcześniej przypisanych ładowników i dlatego ma na celu zapobieganie uruchomieniu złośliwego oprogramowania lub innych niechcianych programów. Tradycyjne BIOS uruchomiłoby każde oprogramowanie. Umożliwiłoby nawet złośliwe oprogramowanie, takie jak rootkit, wymienić ładowarkę rozruchową. RootKit byłby w stanie załadować system operacyjny i pozostać całkowicie niewidoczny i niewykrywalny w systemie. Podczas gdy przy bezpiecznym rozruchu oprogramowanie układowe najpierw sprawdza, czy ładowarka rozruchowa systemowa jest podpisana z klawiszem kryptograficznym. Klucz kryptograficzny jest kluczem, który został autoryzowany przez bazę danych zawartą w oprogramowaniu układowym. Tylko jeśli klawisz zostanie rozpoznany, pozwoli systemowi uruchomić. Tak ważny podpis musi przestrzegać specyfikacji przez Microsoft UEFI Certificate Authority (CA).


Różne perspektywy

Na pierwszy rzut oka brzmi to całkiem nieźle, ale zawsze są dwie strony monety. Jak zwykle zalety i wady współistnieją. Recenzje prasy pochwały lub demonizuj bezpieczny rozruch w zależności od tego, kto pisze recenzję.

Po pierwsze, pamiętaj, że autorytet nad klawiszami kryptograficznymi jest w rękach jednego globalnego gracza - Microsoft. Dawanie mocy milionom maszyn jednej firmie nigdy nie jest dobrym pomysłem. W ten sposób Microsoft zabezpiecza się pełną kontrolę nad urządzeniem. Za pomocą jednej decyzji Microsoft jest w stanie zablokować cały rynek za pomocą jednego udaru mózgu i zablokować zarówno swoich konkurentów, jak i ty jako klient. mi.G. Jeśli chcesz zainstalować sprzęt od innego producenta na późniejszym etapie, musisz upewnić się, że klucz nowego komponentu został zapisany w systemie bazy danych. Pozostawiając ograniczoną elastyczność i wybory - szczególnie jeśli jesteś programistą.

Po drugie, nie tylko opcje sprzętu są ograniczone, ale także wybór systemu operacyjnego ma być ograniczony ze względu na technologię UEFI wprowadzoną przez system Windows. Oznacza to, że utrudnia życie społeczności Linux. Przed jego użyciem na sprzęcie opartym na UEFI, ładowarki rozruchowe Linux, takie jak Grub, muszą uzyskać certyfikat, a zatem spowalnia raczej szybkie zmiany, ponieważ społeczność open source jest znana z. Nikt nie wie, co się stanie, jeśli centralny walidator popełnił błąd podczas walidacji lub blokuje wydanie zaktualizowanego oprogramowania.

Po trzecie, co oznacza termin złośliwe oprogramowanie dzisiaj i jutro? Czy obejmuje systemy operacyjne od konkurentów [5], czy są one wykluczone? Proces sprawdzania poprawności działa za zasłonami i nikt nie może tego udowodnić.

Po czwarte, istnieją zastrzeżenia dotyczące bezpieczeństwa. Według obecnych osiągnięć długość klawiszy kryptograficznych jest stosunkowo krótka. Bezpieczny rozruch umożliwia tylko certyfikaty x509 i klawisze RSA o stałej długości 2048 bitów [16]. W najbliższej przyszłości, przy użyciu masowej równoległości i dalszej mocy obliczeniowej w oparciu o wirtualizację, ten poziom bezpieczeństwa zostanie zepsuty. Dzisiaj zalecane są klucze kryptograficzne o długości 4096 bitów.

Po piąte, wygląda na to, że oprogramowanie, które jest oferowane zarówno przez dużego dostawcy, jak i certyfikowane jest bezpieczne i bez błędów. Jak pokazuje historia, wszyscy wiemy, że to nieprawda, oprogramowanie zawsze zawiera błędy. Certyfikacja po prostu usiłuje ci w fałszywym poczuciu bezpieczeństwa.


Rozwiązania dla open source

Ale tam, gdzie jest problem, istnieje również rozwiązanie. Microsoft hojnie oferuje dystrybutorom Linux w celu uzyskania dostępu do swojego portalu Microsoft Sysdev w celu podpisania ładowarek rozruchowych [17]. Ta usługa ma jednak cenę.

Rozkłady Linux mają tylko „Shim” [11] podpisane w portalu Microsoft. Shim to mały ładowarka rozruchowa, która uruchamia Linux dystrybuty główny ładowar. Microsoft sprawdza tylko podpisane podkładkę, a następnie normalnie twoje buty dystrybucyjne Linux. Pomaga to utrzymać system Linux jak zwykle.

Jak informowaliśmy z różnych źródeł, (u) EFI działa dobrze z Fedorą/Redhat, Ubuntu, Arch Linux i Linux Mint. W przypadku Debian GNU/Linux nie ma oficjalnego wsparcia dotyczącego bezpiecznego rozruchu [9]. W każdym razie istnieje interesujący post na blogu na temat tego, jak to skonfigurować [18], a także opis w debian Wiki [14].

Alternatywy dla Uefi

UEFI nie jest jedynym następcą PC BIOS - istnieją alternatywy. Możesz przyjrzeć się bliżej Openbios [4], Libreboot [7], otwartym oprogramowaniu układowym [8,9] i Coreboot [10]. W tym artykule ich nie przetestowaliśmy, ale pomocne jest, aby wiedzieć, że alternatywne wdrożenia istnieją i działają sprawnie.


Wniosek

Jak wspomniano wcześniej, kluczowym pytaniem jest zaufanie. W odniesieniu do komputerów zadaje sobie pytanie, które części systemu ufasz - komponenty sprzętowe (oprogramowanie układowe, układy, TPM) i/lub komponenty oprogramowania (ładowarka rozruchowa, system operacyjny, oprogramowanie, które jest używane). Nie możesz debugować całego systemu. Może pomóc wiedzieć, że Twój system operacyjny nie działa wbrew Twoim zainteresowaniom i że wykonasz rzeczy, za które kupiłeś system - w bezpieczny sposób, nie będąc kontrolowanym przez monopolistę.


Linki i referencje

  • [1] Kristian Kißling: Debian 9 Stretch Ohne Secure But, Linux-Magazin
  • [2] Uefi nachbearbeitung
  • [3] Efi i Linux: przyszłość jest tutaj i jest okropna - Matthew Garrett
  • [4] OpenBios, https: // openbios.Info/Welcome_to_Openbios
  • [5] Hendrik Schwartke, Ralf Spenneberg: Einlaßkontrolle. Uefi-secure-boot und alternatywne BetriebsSysteme, admin-Magzin 03/2014
  • [6] Bootvorgang eines Apple Mac
  • [7] Libreboot, https: // libreboot.org/
  • [8] Otwórz oprogramowanie układowe (Wikipedia)
  • [9] Otwórz oprogramowanie układowe, https: // github.com/openbios
  • [10] Coreboot, https: // www.Coreboot.Org/vide_to_coreboot
  • [11] Shim (github), https: // github.com/rhboot/shim
  • [12] Thorsten Leemhuis: UEFI Secure Boot Und Linux, FAQ
  • [13] Bom Cromwell: Jak Linux Boot? Część 3: Uefi, aby podnieść do następnego linku w łańcuchu
  • [14] Secureboot na Debian, https: // wiki.Debian.org/secureboot
  • [15] Chris Hoffman: Jak działa bezpieczny rozruch w systemie Windows 8 i 10 oraz co oznacza dla Linux
  • [16] James Bottomley: Znaczenie wszystkich kluczy UEFI
  • [17] Microsoft Hardware Developer Center, podpisywanie oprogramowania UEFI
  • [18] Bezpieczny rozruch z testowaniem Debiana

Podziękowanie

Frank Hofmann i Mandy Neumeyer są współautorami artykułu. Autorzy chcieliby podziękować Justinowi Kelly za jego pomoc i krytyczne komentarze podczas pisania tego artykułu.