17Aug

Om jag köper en dator med Windows 8 och Secure Boot kan jag fortfarande installera Linux?

Det nya UEFI Secure Boot-systemet i Windows 8 har orsakat mer än sin rättvisa andel av förvirring, särskilt bland dubbla booters. Läs vidare när vi klargör missuppfattningarna om dubbla uppstart med Windows 8 och Linux.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsaren Harsha K är nyfiken på det nya UEFI-systemet. Han skriver:

Jag har hört mycket om hur Microsoft implementerar UEFI Secure Boot i Windows 8. Det förhindrar uppenbarligen att obehöriga bootloaders körs på datorn för att förhindra skadlig programvara. Det finns en kampanj från Free Software Foundation mot säker start, och många har sagt online att det är ett "power grip" av Microsoft att "eliminera gratis operativsystem".

Om jag får en dator som har Windows 8 och Secure Boot förinstallerad, kommer jag fortfarande att kunna installera Linux( eller något annat operativsystem) senare? Eller fungerar en dator med Secure Boot bara någonsin med Windows?

Så vad är affären?Är dubbla booters verkligen oturliga?

Svaret

SuperUser-bidragsgivaren Nathan Hinkle erbjuder en fantastisk översikt över vad UEFI är och är inte:

Först och främst är det enkla svaret på din fråga:

  • Om du har en ARM-tablett som kör Windows RT( som Surface RT ellerAsus Vivo RT), då kommer du inte att kunna inaktivera Secure Boot eller installera andra operativsystem .Liksom många andra ARM-tabletter, kommer dessa enheter endast att driva operativsystemet de kommer med.
  • Om du har en icke-ARM-dator som kör Windows 8( som Surface Pro eller någon av de myriade ultrabooks, stationära datorer och tabletter med en x86-64 processor), då kan du inaktivera Secure Boot helt , eller så kan duinstallera dina egna nycklar och skriv in din egen bootloader. Hur som helst, kan du installera ett tredje part-operativsystem som en Linux distro eller FreeBSD eller DOS eller vad som helst.

Nu, vidare till detaljerna om hur hela denna Secure Boot-sak verkligen fungerar: Det finns mycket felaktig information om Secure Boot, särskilt från Free Software Foundation och liknande grupper. Detta har gjort det svårt att hitta information om vad Secure Boot faktiskt gör, så jag ska försöka mitt bästa för att förklara. Observera att jag inte har någon personlig erfarenhet av att utveckla säkra uppstartssystem eller något liknande;Det här är bara vad jag har lärt mig av att läsa online.

Först och främst är Secure Boot inte något som Microsoft kom upp med. De är de första som implementerar det allmänt, men de uppfann inte det. Det är en del av UEFI-specifikationen, som i grund och botten är en nyare ersättning för det gamla BIOS som du förmodligen är van vid. UEFI är i grunden den programvara som talar mellan operativsystemet och hårdvaran. UEFI-standarder skapas av en grupp som heter "UEFI Forum", som består av datorindustrin företrädare inklusive Microsoft, Apple, Intel, AMD och en handfull dator tillverkare.

Den andra viktigaste punkten, som har Secure Boot aktiverat på en dator, betyder inte att datorn aldrig kan starta något annat operativsystem .Faktum är att Microsofts egna Windows-maskinvarukrav för certifiering anger att för icke-ARM-system måste du kunna avaktivera både säker start och ändra nycklarna( för att tillåta andra operativsystem).Mer om det senare men.

Vad gör Secure Boot?

I grunden förhindrar det att skadlig programvara attackerar datorn genom startsekvensen. Malware som går igenom startprogrammet kan vara mycket svårt att upptäcka och stoppa eftersom det kan infiltrera operativsystemets lågnivåfunktioner, vilket gör det osynligt för antivirusprogram. Allt som Secure Boot verkligen gör är att det verifierar att startprogrammet är från en pålitlig källa och att den inte har manipulerats. Tänk på det som popup-kepsarna på flaskor som säger "Öppna inte om locket är uppåt eller att tätningen har manipulerats".

På den högsta nivån av skydd har du plattformsknappen( PK).Det finns bara en PK på något system, och det installeras av OEM under tillverkning. Den här nyckeln används för att skydda KEK-databasen. KEK-databasen innehåller Key Exchange Keys, som används för att ändra de andra säkra startdatabaserna. Det kan finnas flera KEKs. Det finns då en tredje nivå: den auktoriserade databasen( db) och den förbjudna databasen( dbx).Dessa innehåller information om certifikatmyndigheter, ytterligare kryptografiska nycklar och UEFI-enhetsbilder för att tillåta eller blockera. För att en startladdare ska kunna köra måste den skrivas kryptografiskt med en nyckel som är i db och är inte i dbx.

Bild från att bygga Windows 8: Skydda före operativsystemet med UEFI

Så här fungerar det på ett verkligt Windows 8-certifierat system

OEM genererar sin egen PK och Microsoft ger en KEK som OEM måste förhandlaladda in i KEK databasen. Microsoft skriver sedan Windows 8 Bootloader, och använder sin KEK för att sätta denna signatur i den auktoriserade databasen. När UEFI startar datorn, verifierar den PK, verifierar Microsofts KEK och verifierar sedan startläsaren. Om allt ser bra ut, kan operativsystemet starta.


Bild från Building Windows 8: Skydda förinstallationen med UEFI

Var kommer tredje part OS, som Linux, in?

Först kan vilken Linux distro som helst välja att skapa en KEK och fråga OEM-användare att inkludera den i KEK-databasen som standard. De skulle då ha så mycket kontroll över startprocessen som Microsoft gör. Problemen med detta, som förklaras av Fedora's Matthew Garrett, är att a) det skulle vara svårt att få varje PC-tillverkare att inkludera Fedoras nyckel, och b) det skulle vara orättvist för andra Linux distroer eftersom deras nyckel inte skulle inkluderas, eftersom mindre distros inte har så många OEM-partnerskap.

Vad Fedora har valt att göra( och andra distros följer efter kostym) är att använda Microsofts signeringstjänster. Detta scenario kräver att 99 $ betalas till Verisign( certifikatmyndigheten som Microsoft använder) och ger utvecklare möjlighet att underteckna sin startladdare med hjälp av Microsofts KEK.Eftersom Microsofts KEK redan finns i de flesta datorer tillåter det dem att underteckna sin startläsare för att använda Secure Boot, utan att behöva egna KEK.Det slutar bli mer kompatibelt med fler datorer, och kostar mindre övergripande än att hantera inrättandet av ett eget signerings- och distributionssystem. Det finns några fler detaljer om hur det här kommer att fungera( med GRUB, signerade Kernel-moduler och annan teknisk info) i ovan nämnda blogginlägg, som jag rekommenderar att läsa om du är intresserad av den här typen av saker.

Antag att du inte vill hantera besväret med att registrera dig för Microsofts system eller inte vill betala $ 99 eller bara ha ett mod för stora företag som börjar med en M. Det finns ett annat alternativ att fortfarande använda SecureStarta och kör ett annat operativsystem än Windows. Microsofts hårdvaruintyg kräver att OEM-användare låter användarna ange sitt system i UEFI-anpassat läge, där de manuellt kan ändra Secure Boot-databaser och PK.Systemet kan sättas in i UEFI Setup Mode, där användaren ens kan ange sin egen PK och signera självuppladdare själva.

Microsofts egna certifieringskrav gör det också obligatoriskt för OEM att inkludera en metod för att inaktivera Secure Boot på icke-ARM-system. Du kan stänga av Secure Boot! Det enda systemet där du inte kan inaktivera Secure Boot är ARM-system som kör Windows RT, som fungerar mer på samma sätt som iPad, där du inte kan ladda egna OS.Även om jag önskar att det skulle vara möjligt att ändra operativsystemet på ARM-enheter, är det rättvist att säga att Microsoft följer industristandarden när det gäller tabletter här.

Så säker boot är inte iboende ondskan?

Såsom du förhoppningsvis kan se, är Secure Boot inte ont, och är inte begränsat endast för att användas med Windows. Anledningen till att FSF och andra är så upprörd över det är att det lägger till extra steg för att använda ett operativsystem från tredje part. Linux distros kanske inte gillar att betala för att använda Microsofts nyckel, men det är det enklaste och mest kostnadseffektiva sättet att få Secure Boot att arbeta för Linux. Lyckligtvis är det enkelt att stänga av Secure Boot och möjlighet att lägga till olika nycklar, vilket gör att man inte behöver hantera Microsoft.

Med tanke på mängden alltmer avancerad malware verkar Secure Boot som en rimlig idé.Det är inte meningen att det är en ond plot att ta över världen, och det är mycket mindre skrämmande än att några gratis programvaror kommer att få dig att tro.

Ytterligare läsning:

  • Microsoft Hardware Certification Requirements
  • Building Windows 8: Skydda före operativsystemets miljö med UEFI
  • Microsoft-presentationen om Secure Boot-implementering och nyckelhantering
  • Genomförande av UEFI Secure Boot i Fedora
  • TechNet Secure Boot-översikt
  • Wikipedia artikel om UEFI

TL; DR: Säker uppstart hindrar skadlig kod från att infektera ditt system på en låg, odetekterbar nivå under start. Vem som helst kan skapa de nödvändiga nycklarna för att få det att fungera, men det är svårt att övertyga datorproducenter att distribuera din -nyckel till alla, så du kan alternativt välja att betala Verisign för att använda Microsofts nyckel för att underteckna din startladdare och få dem att fungera. Du kan också inaktivera Secure Boot på någon icke-ARM-dator.

Senast med tanke på FSF: s kampanj mot Säker uppstart: Några av sina problem( det vill säga att det gör hårdare att installera fria operativsystem) är giltiga till en punkt .Att säga att begränsningarna kommer att "förhindra att någon startar annat än Windows" är uppenbart falsk för de skäl som illustreras ovan. Kampanjer mot UEFI / Secure Boot som en teknik är kortsynt, felinformerad och osannolikt att det ändå är effektivt. Det är viktigare att se till att tillverkare faktiskt följer Microsofts krav på att låta användare inaktivera Secure Boot eller ändra nycklarna om de så önskar.

Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.