Secure Boot
Secure Boot – mechanizm wbudowany w nowoczesny firmware komputera, którego celem jest zapewnienie, że podczas uruchamiania systemu operacyjnego uruchamiane są wyłącznie oprogramowanie posiadające ważny podpis cyfrowy. System ten został opracowany w ramach specyfikacji UEFI (Unified Extensible Firmware Interface) i ma na celu ochronę przed atakami typu boot‑time malware, takimi jak rootkity czy modyfikacje sektora rozruchowego.
Historia
Wczesne komputery korzystały z tradycyjnego BIOS, który po uruchomieniu nie weryfikował integralności kodu rozruchowego. W wyniku rosnącej liczby zagrożeń w latach 2000‑tych, konsorcjum Intel oraz inne firmy technologiczne opracowały standard UEFI, w którym po raz pierwszy wprowadzono koncepcję Trusted Boot. W 2011 roku Microsoft wprowadził wymóg włączenia Secure Boot w systemach operacyjnych Windows 8 i nowszych, a później rozwiązanie to zostało zaadaptowane w dystrybucjach Linux (np. Ubuntu, Fedora).
Podstawowe zasady działania
- Klucze i certyfikaty cyfrowe – firmware przechowuje zestaw zaufanych kluczy publicznych (tzw. Platform Key – PK) oraz listę bazy kluczy (Key Exchange Key – KEK). Każdy komponent uruchamiany w kolejnych fazach rozruchu (bootloader, kernel, sterowniki) musi być podpisany przy pomocy klucza prywatnego odpowiadającego jednemu z kluczy w bazie.
- Weryfikacja łańcucha zaufania – podczas startu systemu firmware najpierw weryfikuje podpis obrazu bootloadera. Jeśli weryfikacja się powiedzie, bootloader może uruchomić kolejny etap (np. jądro systemu), które również musi być podpisane.
- Mechanizm fallback – w przypadku niepowodzenia weryfikacji firmware może przejść w tryb awaryjny (tzw. Secure Boot off) lub wyświetlić komunikat wymagający interwencji użytkownika.
Implementacja w UEFI
Specyfikacja UEFI definiuje następujące elementy związane z Secure Boot:
- Platform Key (PK) – główny klucz, który autoryzuje dostęp do bazy kluczy KEK.
- Key Exchange Key (KEK) – lista kluczy delegowanych przez PK, używana do dodawania i usuwania podpisów w Database (DB) i DBX.
- Database (DB) – zbiór certyfikatów i podpisów zaufanych komponentów.
- DBX – lista odwołanych (revoked) podpisów i certyfikatów, które nie są już akceptowane.
Wsparcie w systemach operacyjnych
Obecnie Secure Boot jest obsługiwany przez większość popularnych systemów operacyjnych:
- Windows 10 i nowsze – wymagają podpisu Microsoftu lub własnych kluczy wprowadzonych przez administratora.
- Linux – dystrybucje takie jak Ubuntu, Fedora i openSUSE są dostarczane z podpisanymi obrazami shim oraz grub2, które umożliwiają uruchomienie jądra po weryfikacji.
- Android – w urządzeniach mobilnych używa się podobnego mechanizmu o nazwie Verified Boot, opierającego się na TPM i podpisach producenta.
Zalety
- Ochrona przed nieautoryzowanymi modyfikacjami firmware i bootloadera.
- Ułatwienie wykrywania i usuwania rootkitów oraz innych złośliwych oprogramowań działających przed systemem operacyjnym.
- Wsparcie dla szyfrowania dysków (np. BitLocker) poprzez zapewnienie spójnego stanu środowiska startowego.
Ograniczenia i podatności
Mimo licznych korzyści, Secure Boot nie eliminuje wszystkich zagrożeń:
- Możliwość obejścia poprzez wgranie własnych kluczy (tzw. key injection) – wymaga fizycznego dostępu do komputera.
- Problemy z kompatybilnością starszych systemów operacyjnych i narzędzi nieposiadających podpisów.
- Ataki na sam firmware (np. MAGEIA exploit) mogą obejść weryfikację, jeśli atakujący uzyska uprawnienia do modyfikacji UEFI.
Przyszłość i rozwój
W kolejnych wersjach UEFI planowane jest wprowadzenie Secure Boot 2.0, które ma rozszerzyć:
- Wsparcie dla algorytmów kryptograficznych post‑quantum (np. Kyber).
- Dynamiczne zarządzanie kluczami przy użyciu TPM 2.0.
- Lepszą integrację z systemami zarządzania polityką bezpieczeństwa (Intune, Ansible).
Jak włączyć lub wyłączyć Secure Boot
Ustawienia Secure Boot są dostępne w menu konfiguracji firmware – najczęściej pod nazwą Security lub Boot. Procedura zazwyczaj obejmuje:
- Wejście do UEFI (klawisz Del, F2 lub inny w zależności od producenta).
- Wybranie opcji Secure Boot i ustawienie jej na Enabled lub Disabled.
- Ewentualne wprowadzenie własnych kluczy (opcjonalnie w trybie Custom).
- Zapisanie zmian i ponowne uruchomienie komputera.
Powiązane pojęcia
Secure Boot stanowi kluczowy element nowoczesnych strategii ochrony infrastruktury informatycznej, zapewniając integralność najniższego poziomu oprogramowania i minimalizując ryzyko przejęcia kontroli nad systemem już przed jego uruchomieniem.