Jak poważny jest wpływ UEFI i SecureBoot?


18

Planuję kupić nowego laptopa w najbliższych dniach i jestem pod wrażeniem nowych, fajnych Ultrabooków. Jako długoletni użytkownik GNU / Linux, oczywiście zainstaluję na nim wybraną dystrybucję.

Są szanse, że będę musiał kupić komputer z preinstalowanym systemem Windows 8; i są szanse, że uruchomi UEFI i będzie miał „bezpieczny rozruch”, na którym nie podpalą się niepodpisane jądra.

UEFI jest prawdopodobnie dobry, BIOS może wymagać przejścia na emeryturę. Chyba owłosiona rzecz to Bezpieczny rozruch .

O ile mi wiadomo, niektóre zaufane certyfikaty zostaną osadzone w oprogramowaniu układowym, a więc w jądrze itp . Jeśli certyfikat jądra można prześledzić do jednego z oprogramowania układowego , jądro uruchomi się, w przeciwnym razie UEFI powie mi o tym i odmówi uruchomienia. Ten proces zapobiegnie uruchomieniu niecertyfikowanego oprogramowania. Może to mieć zalety, chociaż ich nie widzę.

Zastanawiam się, w jaki sposób jądro open source może uzyskać jeden z tych kluczy i nadal być wolne . Przeczytałem wątek na liście mailingowej Linuksa, w którym pracownik Red Hat prosi Linusa Torvaldsa o pobranie zestawu zmian, który implementuje narzędzie do parsowania plików binarnych PE i podjęcia złożonego zestawu działań, aby umożliwić jądrze uruchomienie w trybie bezpiecznego rozruchu (o ile rozumiem ). Chcą to zrobić, ponieważ Microsoft podpisuje tylko pliki binarne PE. Pan Torvalds uprzejmie odrzucił ten zestaw zmian, stwierdzając, że jądro już implementuje standard, który nie jest PE . RedHat próbuje wypchnąć ten kod do jądra, aby pewnego dnia nie musieli go rozwidlać.

Widzisz, to skomplikowana sprawa. Pozwól, że zadam moje pytania:

  • Jakie korzyści uzyskam dzięki UEFI i Secure Boot jako użytkownik domowy?
  • Jak to podpisanie ?
  • Kto może uzyskać podpisy / certyfikaty? Czy to jest opłacone? Czy to może być publiczne? (Powinien być dostępny w kodzie źródłowym Linuksa, prawda?)
  • Czy Microsoft jest jedynym organem do składania podpisów? Czy nie powinna istnieć niezależna fundacja zapewniająca je?
  • Jak wpłynie to na otwarte i wolne jądra, hobbystów / programistów jądra akademickich itp . np. Czy to boot ( bardzo podstawowy kod sektora rozruchowego ):

    hang:
       jmp hang
    times 510-($-$$) db 0
    db 0x55
    db 0xAA
    

Wiadomość na tej stronie była inspiracją tego pytania. Hiszpańska grupa użytkowników Linuksa o nazwie Hispalinux złożyła skargę przeciwko Microsoftowi na ten temat do Komisji Europejskiej.

Czy powinienem się martwić? Odrzucam używanie oprogramowania chronionego prawem autorskim ani oprogramowania podpisanego przez zaufane firmy. Zrobiłem to do tej pory i chcę to kontynuować. Z góry dziękuję.


2
UEFIsam w sobie nie stanowi większego problemu, ale może być bezpieczny rozruch.
Jordan

3
Zawsze możesz uruchomić UEFI z wyłączonym bezpiecznym uruchomieniem ...
jasonwryan

1
Zgodnie z tym artykułem Microsoft wymaga od dostawców, aby nie dopuścili do dezaktywacji SecureBoot w urządzeniach opartych na ARM, aby udzielić licencji na używanie logo kompatybilnego z Windows-8.

1
Nie szukałem, ale jeśli nie możesz sflashować go na płytę główną i wszystko nadal działa (każde urządzenie w odpowiednim stanie podczas przełączania POST-OS), to niewiele pomaga. I jeszcze jedno oprogramowanie karty graficznej. Oprogramowanie dysku twardego? Klawiatura? ... Jednak zbliża się to do dyskusji niż prośby o wyjaśnienia. (I oczywiście przynajmniej ten cytat twierdzi tylko, że UEFI to wysiłek społeczności; nie konkretne wdrożenie).
CVn z

1
Spójrz na Linux Foundation dokumentu na UEFI i bezpiecznego rozruchu.
vonbrand

Odpowiedzi:


9

Ten proces zapobiegnie uruchomieniu niecertyfikowanego oprogramowania. Może to mieć zalety, chociaż ich nie widzę.

Masz nowy mechanizm bezpieczeństwa do kontrolowania tego, co może, a co nie może uruchomić z twojego sprzętu. Funkcja bezpieczeństwa. Nie czujesz, że potrzebujesz, dopóki nie będzie za późno. Ale dygresję.

Przeczytałem wątek na liście mailingowej Linuksa, w którym pracownik Red Hat prosi Linusa Torvaldsa o pobranie zestawu zmian, który implementuje narzędzie do parsowania plików binarnych PE i podjęcia złożonego zestawu działań, aby umożliwić jądrze uruchomienie w trybie bezpiecznego rozruchu (o ile rozumiem ).

Sterowniki, podobnie jak oprogramowanie układowe GPU, muszą być podpisane zgodnie z funkcją Bezpiecznego rozruchu, w przeciwnym razie może to być kolejny rootkit. Status quo polega na tym, że sterowniki te są podpisane w formacie PE. Jądro i tak można uruchomić bez nich, ale sprzęt nie będzie działał. Parsowanie formatu PE w jądrze jest po prostu technicznie prostszym wyborem do tego, niż proszenie każdego dostawcy sprzętu o podpisywanie swoich obiektów blob dla każdej dystrybucji lub konfigurowanie w tym celu struktury przestrzeni użytkownika. Linus postanawia nie ssać penisa Microsoftu. To nie jest techniczny argument.

Jakie korzyści uzyskam dzięki UEFI i Secure Boot jako użytkownik domowy?

Najbardziej widoczną funkcją jest szybki rozruch UEFI. Mam kilka pulpitów z logo Windows 8, które uruchamiają się tak szybko, że często brakuje mi menu startowego. Intel i OEM mają dość inżynierii w tym zakresie.

Jeśli jesteś typem użytkowników Linuksa, którzy nie znoszą wzdęć i powielania kodu z pasją , możesz także zarządzać multiboot na poziomie oprogramowania układowego i całkowicie pozbyć się bootloaderów. UEFI zapewnia menedżera rozruchu, za pomocą którego można uruchomić bezpośrednio do jądra lub wybrać uruchomienie innego systemu operacyjnego z menu oprogramowania układowego. Chociaż może to wymagać majsterkowania.

Bardziej wymyślna grafika w czasie uruchamiania i w menu oprogramowania układowego. Lepsze bezpieczeństwo podczas rozruchu (Secure Boot). Inne funkcje (netboot IPv4 / 6, 2 TB + urządzenia rozruchowe itp.) Są przeznaczone głównie dla użytkowników korporacyjnych.

W każdym razie, jako Linus powiedział , BIOS / UEFI ma „po prostu załadować system operacyjny i wyjść z tego do diabła”, a UEFI z pewnością wydaje się tak dla użytkowników domowych z szybkim uruchomieniem. Z pewnością robi więcej rzeczy niż BIOS pod maską, ale jeśli mówimy o użytkownikach domowych, nie będą się tym przejmować.

Jak odbywa się to podpisywanie?

Teoretycznie plik binarny jest szyfrowany kluczem prywatnym w celu wygenerowania podpisu. Następnie podpis można zweryfikować za pomocą klucza publicznego, aby udowodnić, że plik binarny jest podpisany przez właściciela klucza prywatnego, a następnie plik binarny zweryfikowany.Zobacz więcej na Wikipedii .

Z technicznego punktu widzenia podpisywany jest tylko skrót pliku binarnego, a podpis jest osadzony w pliku binarnym w formacie PE i kręceniu w formacie dodatkowym.

Pod względem proceduralnym klucz publiczny jest przechowywany w oprogramowaniu układowym przez producenta OEM i pochodzi od firmy Microsoft. Masz dwie możliwości:

  1. Wygeneruj własną parę kluczy i zarządzaj nimi bezpiecznie, zainstaluj własny klucz publiczny w oprogramowaniu układowym i podpisz plik binarny własnym kluczem prywatnym ( sbsign z Ubuntu lub pesign z Fedory) lub
  2. Wyślij plik binarny do firmy Microsoft i pozwól mu go podpisać.

Kto może uzyskać podpisy / certyfikaty? Czy to jest opłacone? Czy to może być publiczne? (Powinien być dostępny w kodzie źródłowym Linuksa, prawda?)

Ponieważ podpisy / certyfikaty są osadzone w plikach binarnych, wszyscy użytkownicy powinni je uzyskać. Każdy może skonfigurować własny urząd certyfikacji i wygenerować certyfikat dla siebie. Ale jeśli chcesz, aby Microsoft wygenerował dla Ciebie certyfikat, musisz przejść przez Verisign, aby zweryfikować swoją tożsamość. Proces kosztuje 99 USD. Klucz publiczny znajduje się w oprogramowaniu układowym. Klucz prywatny znajduje się w sejfie Microsoft. Certyfikat znajduje się w podpisanym pliku binarnym. Nie dotyczy kodu źródłowego.

Czy Microsoft jest jedynym organem do składania podpisów? Czy nie powinna istnieć niezależna fundacja zapewniająca je?

Strona techniczna jest dość trywialna w porównaniu do procesu zarządzania PKI, weryfikacji tożsamości, koordynacji z każdym znanym producentem OEM i dostawcą sprzętu. To kosztuje kochanie. Microsoft ma przez lata infrastrukturę (WHQL) i doświadczenie. Oferują więc podpisywanie plików binarnych. Każda niezależna fundacja może zaoferować to samo, ale jak dotąd nie zrobiła tego.

Widzę, że z sesji UEFI na IDF 2013 firma Canonical zaczęła także umieszczać własny klucz do oprogramowania układowego tabletu. Dzięki temu Canonical może podpisywać własne pliki binarne bez przechodzenia przez Microsoft. Ale raczej nie podpiszą dla ciebie plików binarnych, ponieważ nie wiedzą, kim jesteś.

Jak wpłynie to na otwarte i wolne jądra, hobbystów / programistów jądra akademickich itp.

Twoje niestandardowe jądro nie uruchamia się w Bezpiecznym rozruchu, ponieważ nie jest podpisane. Możesz to jednak wyłączyć.

Model zaufania Bezpiecznego rozruchu blokuje niektóre aspekty jądra. Nie możesz zniszczyć jądra pisząc do / dev / kmem, nawet jeśli jesteś teraz rootem. Nie można hibernować na dysk (pracujący w górę), ponieważ nie ma sposobu, aby upewnić się, że obraz jądra nie zostanie zmieniony na bootkit podczas wznawiania. Nie możesz zrzucić rdzenia, gdy jądro wpadnie w panikę, ponieważ mechanizm kdump (kexec) może być użyty do uruchomienia bootkita (również pracującego w górę). Są one kontrowersyjne i nie są akceptowane przez Linusa do jądra głównego, ale niektóre dystrybucje (Fedora, RHEL, Ubuntu, openSUSE, SUSE) są dostarczane z własnymi łatkami Bezpiecznego rozruchu.

Osobiście podpisanie modułu wymagane do zbudowania jądra Bezpiecznego rozruchu kosztuje 10 minut, podczas gdy faktyczna kompilacja zajmuje tylko 5 minut. Jeśli wyłączę podpisywanie modułów i włączę pamięć podręczną, budowanie jądra zajmuje tylko minutę.

UEFI to zupełnie inna ścieżka rozruchu niż BIOS. Cały kod rozruchowy systemu BIOS nie będzie wywoływany przez oprogramowanie układowe UEFI.

Hiszpańska grupa użytkowników Linuksa o nazwie Hispalinux złożyła skargę przeciwko Microsoftowi na ten temat do Komisji Europejskiej.

Jak wspomniano powyżej, nikt oprócz Microsoftu nie wziął udziału w świadczeniu usługi publicznej. Obecnie nie ma dowodów na to, że Microsoft zamierza zrobić z tym zło, ale nic nie stoi na przeszkodzie, aby Microsoft nadużył swojego faktycznego monopolu i wyruszył w podróż. Tak więc, chociaż grupy użytkowników FSF i Linux mogą nie wyglądać dość pragmatycznie i nie usiądą w konstruktywnym rozwiązywaniu problemów, bardzo konieczne jest, aby ludzie wywierali presję na Microsoft i ostrzegali go przed konsekwencjami.

Czy powinienem się martwić? Odrzucam używanie oprogramowania chronionego prawem autorskim ani oprogramowania podpisanego przez zaufane firmy. Zrobiłem to do tej pory i chcę to kontynuować.

Powody, dla których warto skorzystać z bezpiecznego rozruchu:

  • Eliminuje prawdziwy wektor ataku bezpieczeństwa.
  • Jest to mechanizm techniczny, który daje użytkownikowi większą swobodę kontrolowania sprzętu.
  • Użytkownicy Linuksa muszą zrozumieć mechanizm bezpiecznego rozruchu i działać proaktywnie, zanim Microsoft staje się zbyt daleko na monopol Secure Boot polityki .

2
Dziękuję za tę szczegółową, niesamowitą odpowiedź! Bardzo obszerny. UEFI brzmi całkiem fajnie, chociaż nie użyłem ani nie napisałem dla niego kodu.

1
Rzeczywiście bardzo dobra odpowiedź. Tylko dwie rzeczy: 1) zazwyczaj istnieje możliwość załadowania własnych kluczy do UEFI - w ten sposób możesz bezpiecznie uruchomić wszystko, co sam podpiszesz; 2) Bezpieczny rozruch jest bezpieczny tylko do punktu, w którym można zaufać UEFI - jeśli użyjesz złośliwego oprogramowania układowego, łańcuch zaufania zostanie zerwany. I nie jest to niemożliwe .
peterph

Czy dystrybucje GNU / Linux używają FastBoot / QuickBoot? Nie rozumiem, dlaczego miałoby to być trudne, ale nie mogę też znaleźć informacji na ten temat - ale skoro wspominasz o tym jako o widocznej funkcji dla użytkownika końcowego, myślę, że w końcu został wykorzystany?
Hi-Angel,

9

Właśnie przeszedłem przez to z ostatnim zakupem laptopa, który został dostarczony z Windows 8 i bezpiecznym uruchomieniem UEFI. Po długim czasie i badaniach mogę odpowiedzieć na następujące pytania:

  • Nie brzmi, jakbyś pasował do kategorii „użytkownik domowy”.

Zalety UEFI, które zauważy przeciętny użytkownik, to to, że pierwszą rzeczą, którą zobaczą na ekranie, będzie ekran modułu ładującego UEFI marki Microsoft / Vendor. Żadne z tych strasznych rzeczy, takich jak „Naciśnij Del, aby skonfigurować, F11, aby wybrać urządzenie rozruchowe” itp.

Następnie ładnie przejdzie do ekranu oczekiwania jądra / programu ładującego jądro Microsoft. Stanowi to „moc do podpowiedzi” w tematyce Microsoft. Jeśli jest to faktyczna korzyść, wydaje mi się, że to oko. Byłem bardzo podenerwowany, że nie mam normalnych informacji, których oczekuję po uruchomieniu. Na przykład powodzenia, jeśli sprzedawca nie używa standardowego klucza do wejścia do podstawowej konfiguracji UEFI / Bios.

Och, tak, i teoria jest taka, że ​​zatrzyma to wirusy sektora rozruchowego lub przynajmniej sprawi, że twórcy utworzą / wykradną czyjś identyfikator i zapłacą Verisign 99 USD (trasa Fedory RedHat. Google it.)

Ach, i jest pocieranie. Każdy może podpisać kod za pomocą dowolnego klucza. Problem polega na tym, że komputer będzie uruchamiał tylko kod podpisany przez klucz zaufanych organów. Publiczna połowa klucza jest instalowana fabrycznie w rdzeniu systemu UEFI i służy do weryfikacji podpisu programów UEFI (kodu rozruchowego) podpisanego za pomocą klucza prywatnego.

Zgadnij, kto ma klucz publiczny zainstalowany w fabryce? Zgadnij, kto wymaga, aby Bezpieczny rozruch był domyślnie włączony?

Każdy producent systemu oczywiście umieści tam klucz Microsoft. Oni mogli również umieścić w kluczu Canonical (Ubuntu), Red Hat klucz, klucz Apple, itd. Inne klawisze choć oznacza więcej punktów za naruszenia, a tam jest oczywiście fizyczna granica ile mogliby przechowywać.

A jakie jest rozwiązanie dla zbuntowanego użytkownika komputera takiego jak ty?

  • Mam nadzieję, że twój dostawca systemu pozwoli ci uzyskać dostęp do konfiguracji rozruchu systemu

  • Mam nadzieję, że pozwalają wyłączyć bezpieczny rozruch. Kod rozruchowy systemu Windows będzie nadal działał bez bezpiecznego rozruchu.

  • Jeśli masz szczęście, sprzedawca systemu pozwoli ci na wprowadzenie własnych kluczy urzędu certyfikacji i możesz podpisać własne dokumenty. Jest to naprawdę potrzebne tylko wtedy, gdy chcesz się bawić przy użyciu Bezpiecznego rozruchu.

Mój laptop MSI pozwala mi wykonywać wszystkie powyższe czynności.

Chciałbym zobaczyć świat, w którym każdy może pobrać bezpłatną kopię Linux Distro i wymienić swój system operacyjny. To właśnie mieliśmy przed Bezpiecznym uruchomieniem. Mieliśmy również wiele wirusów sektora rozruchowego. Konieczność wyłączenia bezpiecznego rozruchu w konfiguracji systemu jest prawdopodobnie wystarczająco małą przeszkodą, aby sprawdzić, czy masz moc mózgu do zainstalowania systemu operacyjnego lub poznać kogoś, kto to robi.

Brak możliwości wyłączenia to zła rzecz i to zależy od producenta. Nie obwiniaj Microsoftu, chyba że „przekona” twórcę, aby uniemożliwił wyłączenie bezpiecznego rozruchu.


Witamy i dziękuję! Bardzo fajna odpowiedź, ale poczekam jeszcze trochę, zanim zaakceptuję, ponieważ chcę zobaczyć myśli innych ludzi.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.