Jeg oversetter tilfeldigvis denne artikkelen som han skrev James Bottomley, teknisk rådgiver for Linux Foundation, som begynte å sette sammen en pre-bootloader slik at du kan starte Linux.
Som jeg forklarte i mitt forrige innlegg, har vi koden for Linux Foundation pre-bootloader på plass. Imidlertid var det en forsinkelse mens vi hadde tilgang til Microsofts signeringssystem.
Den første tingen å gjøre er betale $ 99 til Verisign (nå Symantec) og få en nøkkel bekreftet av Verisign. Vi gjorde det for Linux Foundation, og alt de vil gjøre er å ringe hovedkvarter for å bekrefte. Nøkkelen returnerer i en URL som er installert i nettleseren din, men standard Linux SSL-verktøy kan brukes til å trekke den ut og opprette det vanlige PEM-sertifikatet og nøkkelen. Det har ingenting med UEFI-signering å gjøre, men brukes til å validere systemet sysdev Microsoft at du er den du sier du er. Før du kan opprette en sysdev-konto, må du teste den signere en kjørbar de gir deg og laste den opp. De stiller strenge krav til at du signerer den på en bestemt Windows-plattform, men sbsign fungerte i det minste og bingo vår konto ble opprettet.
Når kontoen er opprettet, kan du fortsatt ikke laste opp UEFI-binærfiler for å signere uten først signere en papirkontrakt. Avtalene er veldig belastende, inkludert mange ekskluderte lisenser (inkludert alle GPL-er for drivere, men ikke for bootloadere). Den mest belastende delen er at avtalene ser ut til å komme utover UEFI-objektene du signerer. Advokater for Linux Foundation konkluderte med at det for det meste er ufarlig for LF fordi vi ikke selger produkter, men det kan være ekkelt for andre selskaper. I følge Matthew Garrett er Microsoft villig til å forhandle om spesielle avtaler med distribusjoner for å dempe noen av disse problemene.
Når avtalene er signert, den virkelige teknisk moro. Du kan ikke bare laste opp en UEFI-binær og få den signert. Først må du pakk den inn i en .cab-fil. Heldigvis er det et open source-prosjekt som kan lage kabinettfiler kalt lcab. Da må du signere .cab-filen med Verisign-nøkkelen. Igjen er det et annet open source-prosjekt som kan gjøre det: osslsigncode. For alle som trenger disse verktøyene, er de tilgjengelige i mitt openSuse Build Service UEFI-depot. Det siste problemet er at du laster opp filen krever silverlight. Dessverre ser ikke måneskinn ut til å fungere, og selv med forhåndsvisning av versjon 4 blir opplastingsboksen tom, så det er på tide å bruke Windows 7 under en kvm (kjernebasert virtuell maskin). Når du kommer til den delen, må du også bekrefte at binæren “som skal signeres, må ikke være lisensiert under GPLv3 eller lignende open source-lisenser”. Jeg antar at det er av frykt for nøkkelinformasjon, men det er ikke klart i det hele tatt (det samme med "lignende open source-lisenser").
Når opplastingen er fullført, stopper kabinettfilen gjennom syv trinn. Dessverre ble den første testklatringen værende låst i trinn 6 (signaturen til filene). Etter 6 dager sendte jeg en support-e-post til Microsoft og spurte hva som skjedde. Svaret: “Feilkoden som ble kastet av signeringsprosessen er at filen din er ikke et gyldig Win32-program. Er det et gyldig Win32-program? ”. Svar: åpenbart ikke, det er en gyldig 64-bit UEFI-binær. Det var ikke flere svar...
Jeg prøvde igjen. Denne gangen mottok jeg en nedlastings-e-post for den signerte filen, og styret sier det den signerte mislyktes. Jeg lastet ned den og bekreftet. Binæren fungerer på Secure Boot-plattformen og er signert med nøkkelen
subject = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI Driver Publisher
utsteder = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011Jeg spurte støtten hvorfor prosessen indikerte en feil, men jeg hadde en gyldig nedlasting, og etter en mengde e-postmeldinger svarte de "ikke bruk den filen som var feil signert. Jeg kommer tilbake til deg. " Jeg er fortsatt ikke sikker på hva problemet er, men hvis du ser på emnet til signeringsnøkkelen, det er ingenting i nøkkelen som kan indikere Linux FoundationDerfor mistenker jeg at problemet er at binærsystemet er signert med en generisk Microsoft-nøkkel i stedet for en spesifikk (og tilbakekallbar) nøkkel knyttet til Linux Foundation.
Dette er imidlertid status: Vi vil fortsette å vente på at Microsoft skal gi Linux Foundation en signert og validert pre-bootloader. Når det skjer, blir det lastet opp til Linux Foundation-nettstedet slik at alle kan bruke det.
Fuente: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/
Trekk konklusjonene dine, men dette kommer til å ta tid.