L'impatto UEFI e SecureBoot, quanto è grave?


18

Sto pianificando di acquistare un nuovo laptop nei prossimi giorni e sono piuttosto impressionato dai nuovi e fantastici Ultrabook. Come utente GNU / Linux di lunga data, ovviamente installerò su di esso una distribuzione a mia scelta.

È probabile che dovrò comprare un computer con Windows 8 preinstallato; e è probabile che eseguirà UEFI e abbia "avvio sicuro", su cui i kernel non firmati non si avvieranno.

Probabilmente UEFI è buono, potrebbe essere necessario ritirare il BIOS. Immagino che la cosa pelosa sia Secure Boot .

Per quanto posso capire, alcuni certificati attendibili saranno incorporati nel firmware e così nel kernel ecc . Se il certificato del kernel può essere ricondotto a uno dei due firmware , il kernel si avvierà, altrimenti UEFI mi avviserà e rifiuterà di avviarsi. Questo processo impedisce l'avvio di software non certificato. Questo può avere dei benefici, anche se non li vedo.

Mi chiedo come può un kernel open source ottenere una di queste chiavi ed essere ancora libero . Ho letto un thread sulla mailing list di Linux in cui un dipendente di Red Hat chiede a Linus Torvalds di estrarre un changeset che implementa la funzione per analizzare i binari PE e intraprendere una serie complessa di azioni per consentire l'avvio del kernel in modalità Secure Boot (per quanto posso capire ). Vogliono farlo perché Microsoft firma solo binari PE. Mr. Torvalds ha gentilmente rifiutato questo changeset, affermando che il kernel implementa già lo standard, che non è PE . RedHat sta cercando di inviare questo codice al kernel in modo che non debbano farlo un giorno.

Vedi, questa è una cosa complicata. Vorrei porre le mie domande:

  • Quali vantaggi otterrò con UEFI e Secure Boot, come utente domestico?
  • Come viene eseguita questa firma ?
  • Chi può ottenere firme / certificati? È pagato? Può essere pubblico? (Dovrebbe essere disponibile nel codice sorgente di Linux, vero?)
  • Microsoft è l'unica autorità a fornire firme? Non dovrebbe esserci una fondazione indipendente per fornirli?
  • In che modo ciò avrà un impatto sui kernel open source e gratuiti, sugli sviluppatori di kernel hobbisti / accademici ecc . ad es. questo avvio ( un codice del settore di avvio molto semplice ):

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

Una notizia in questo sito Web è stata l'ispirazione di questa domanda. Un gruppo di utenti Linux spagnolo chiamato Hispalinux ha presentato una denuncia contro Microsoft su questo argomento alla Commissione europea.

Dovrei essere preoccupato? Mi rifiuto di utilizzare né software proprietario né software firmato da società fidate . L'ho fatto fino ad ora e voglio continuare così. Grazie in anticipo.


2
UEFIdi per sé non è un grosso problema, ma potrebbe essere l'avvio sicuro.
Giordania,

3
Puoi sempre avviare UEFI con l'avvio sicuro disabilitato ...
jasonwryan,

1
Secondo questo articolo, Microsoft richiede ai fornitori di impedire che SecureBoot venga disattivato nei dispositivi basati su ARM per fornire la licenza per l'uso del logo compatibile con Windows 8.

1
Non ho guardato, ma se non è possibile eseguire il flashing sulla scheda madre e le cose funzionano ancora (ogni dispositivo nello stato corretto al passaggio di consegne POST-OS), non aiuta molto. E poi c'è il firmware della scheda grafica, per esempio. Firmware del disco rigido? Tastiera? ... Questo però si sta avvicinando alla discussione piuttosto che alle richieste di chiarimenti. (E ovviamente, almeno quella citazione afferma solo che UEFI è uno sforzo della comunità; non la particolare implementazione.)
un CVn

1
Date un'occhiata al Linux Foundation documento su UEFI e avvio sicuro.
vonbrand,

Risposte:


9

Questo processo impedirà l'avvio di software non certificato. Questo può avere dei benefici, anche se non li vedo.

Hai un nuovo meccanismo di sicurezza per controllare cosa può e cosa non può essere avviato dal tuo hardware. Una funzione di sicurezza. Non ti senti di averne bisogno fino a quando non è troppo tardi. Ma sto divagando.

Ho letto un thread sulla mailing list di Linux in cui un dipendente di Red Hat chiede a Linus Torvalds di estrarre un changeset che implementa la funzione per analizzare i binari PE e intraprendere una serie complessa di azioni per consentire l'avvio del kernel in modalità Secure Boot (per quanto posso capire ).

I driver, come il firmware della GPU, devono essere firmati in linea con Secure Boot, altrimenti può essere un altro rootkit. Lo status quo è che quei driver sono firmati in formato PE. Il kernel può comunque avviarsi senza quelli, ma l'hardware non funzionerà. Analizzare il formato PE nel kernel è solo una scelta tecnicamente più semplice per questo che chiedere a ogni fornitore di hardware di firmare i propri BLOB per ogni distribuzione, o impostare un framework di spazio utente per farlo. Linus decide di non succhiare il cazzo di Microsoft. Questo non è un argomento tecnico.

Quali vantaggi otterrò con UEFI e Secure Boot, come utente domestico?

La caratteristica più visibile è l'avvio rapido UEFI. Ho messo le mani su diversi desktop con logo Windows 8 e si avviano così velocemente che spesso mi manca il menu di avvio. Intel e OEM hanno abbastanza ingegneria su questo.

Se sei il tipo di utenti Linux che odiano il gonfiore e la duplicazione del codice con passione, potresti anche voler gestire il multiboot a livello di firmware e sbarazzarti del bootloader. UEFI fornisce un boot manager con il quale è possibile avviare direttamente nel kernel o scegliere di avviare altri SO con il menu del firmware. Anche se potrebbe aver bisogno di qualche aggiustamento.

Inoltre, grafica più elaborata durante l'avvio e nel menu del firmware. Migliore sicurezza durante l'avvio (Secure Boot). Altre funzionalità (netboot IPv4 / 6, 2 TB + dispositivi di avvio, ecc.) Sono principalmente destinate agli utenti aziendali.

Comunque, come ha detto Linus , BIOS / UEFI dovrebbe "caricare semplicemente il sistema operativo e uscire da lì", e UEFI appare certamente così per gli utenti domestici con avvio rapido. Certamente fa più cose del BIOS sotto il cofano, ma se stiamo parlando di utenti domestici, a loro non importa.

Come viene eseguita questa firma?

Teoricamente, un file binario è crittografato con una chiave privata per produrre una firma. Quindi la firma può essere verificata con la chiave pubblica per provare che il binario è firmato dal proprietario della chiave privata, quindi il binario verificato. Vedi di più su Wikipedia .

Tecnicamente, solo l'hash del binario è firmato e la firma è incorporata nel binario con formato PE e twiddling di formato aggiuntivo.

Dal punto di vista procedurale, la chiave pubblica è memorizzata nel firmware dall'OEM ed è di Microsoft. Hai due scelte:

  1. Generare la propria coppia di chiavi e gestirle in modo sicuro, installare la propria chiave pubblica sul firmware e firmare il file binario con la propria chiave privata ( sbsign da Ubuntu o pesign da Fedora), oppure
  2. Invia il tuo binario a Microsoft e lascialo firmare.

Chi può ottenere firme / certificati? È pagato? Può essere pubblico? (Dovrebbe essere disponibile nel codice sorgente di Linux, vero?)

Poiché le firme / i certificati sono integrati nei file binari, tutti gli utenti devono ottenerli. Chiunque può impostare la propria CA e generare un certificato per se stesso. Ma se vuoi che Microsoft generi un certificato per te, devi passare attraverso Verisign per verificare la tua identità. Il processo costa $ 99. La chiave pubblica è nel firmware. La chiave privata è nella cassaforte di Microsoft. Il certificato si trova nel file binario firmato. Nessun codice sorgente coinvolto.

Microsoft è l'unica autorità a fornire firme? Non dovrebbe esserci una fondazione indipendente per fornirli?

Il lato tecnico è piuttosto banale, rispetto al processo di gestione della PKI, verifica dell'identità, coordinamento con tutti i produttori OEM e hardware noti. Questo costa un caro. Microsoft ha infrastrutture (WHQL) ed esperienza per anni. Quindi offrono di firmare binari. Chiunque fondazioni indipendenti possono farsi avanti per offrire la stessa cosa, ma nessuno lo ha fatto finora.

Da una sessione UEFI all'IDF 2013, vedo che anche Canonical ha iniziato a mettere la propria chiave su alcuni firmware per tablet. Quindi Canonical può firmare i propri file binari senza passare attraverso Microsoft. Ma è improbabile che firmino file binari per te perché non sanno chi sei.

Che impatto avranno i kernel open source e gratuiti, gli sviluppatori di kernel accademici / hobbisti, ecc.

Il tuo kernel personalizzato non si avvierà in Secure Boot, perché non è firmato. Puoi disattivarlo però.

Il modello di attendibilità di Secure Boot blocca alcuni aspetti del kernel. Come se non potessi distruggere il tuo kernel scrivendo su / dev / kmem anche se sei root adesso. Non è possibile ibernare su disco (in fase di elaborazione a monte) poiché non è possibile garantire che l'immagine del kernel non venga modificata in un bootkit al momento del riavvio. Non puoi scaricare il core quando il tuo panico del kernel, perché il meccanismo di kdump (kexec) può essere usato per avviare un bootkit (anche a monte). Questi sono controversi e non accettati da Linus nel kernel mainline, ma alcune distro (Fedora, RHEL, Ubuntu, openSUSE, SUSE) vengono comunque fornite con le loro patch Secure Boot.

Personalmente la firma del modulo richiesta per la creazione di un kernel Secure Boot costa 10 minuti mentre la compilazione effettiva richiede solo 5 minuti. Se disattivo la firma del modulo e accendo ccache, la compilazione del kernel richiede solo un minuto.

UEFI è un percorso di avvio completamente diverso dal BIOS. Tutto il codice di avvio del BIOS non verrà chiamato dal firmware UEFI.

Un gruppo di utenti Linux spagnolo chiamato Hispalinux ha presentato una denuncia contro Microsoft su questo argomento alla Commissione europea.

Come detto sopra, nessuno tranne Microsoft ha intensificato per fare il servizio pubblico. Al momento non ci sono prove dell'intenzione di Microsoft di fare del male con questo, ma non c'è nemmeno nulla che impedisca a Microsoft di abusare del suo monopolio di fatto e fare un viaggio di potere. Quindi, mentre i gruppi di utenti di FSF e Linux potrebbero non sembrare abbastanza pragmatici e non essersi effettivamente seduti per risolvere i problemi in modo costruttivo, è assolutamente necessario che le persone facciano pressione su Microsoft e lo avvertano delle ripercussioni.

Dovrei essere preoccupato? Mi rifiuto di utilizzare né software proprietario né software firmato da società fidate. L'ho fatto fino ad ora e voglio continuare così.

Ragioni per abbracciare Secure Boot:

  • Elimina un vero vettore di attacco di sicurezza.
  • È un meccanismo tecnico per offrire all'utente maggiore libertà di controllare il proprio hardware.
  • Gli utenti Linux devono comprendere il meccanismo di avvio sicuro e agire in modo proattivo prima che Microsoft arrivi troppo al monopolio della politica di avvio sicuro .

2
Grazie per questa risposta dettagliata e fantastica! Molto completo. UEFI sembra abbastanza interessante, anche se non ho usato né scritto codice per questo.

1
Ottima risposta, davvero. Solo due cose: 1) di solito c'è la possibilità di caricare le tue chiavi nella tua UEFI - in questo modo puoi avviare in modo sicuro tutto ciò che firmi; 2) L'avvio protetto è sicuro solo fino al punto in cui uno si fida di UEFI - se si utilizza un aggiornamento del firmware dannoso, la catena di affidabilità viene interrotta. E questo non è inconcepibile .
peterph,

Quindi, le distribuzioni GNU / Linux usano FastBoot / QuickBoot? Non vedo perché sarebbe difficile da fare, ma nemmeno io riesco a trovare informazioni al riguardo - ma dal momento che stai citando questo come funzionalità visibile per l'utente finale, immagino che sia finalmente utilizzato?
Ciao Angelo

9

Ho appena superato questo con un recente acquisto di laptop fornito con Windows 8 e avvio sicuro UEFI. Dopo molto tempo e ricerche, ecco cosa posso rispondere:

  • Non sembra che ti adatti alla categoria "utente domestico".

I vantaggi di UEFI che l'utente medio noterà è che la prima cosa che vedono sullo schermo sarà il display del caricatore di avvio UEFI con marchio Microsoft / Vendor. Nessuna di quelle cose spaventose come "Premi Canc per Setup, F11 per selezionare il dispositivo di avvio", ecc.

Passerà quindi alla schermata di attesa del kernel / boot loader Microsoft. Ciò presenta un "potere di sollecitare" l'esperienza a tema Microsoft. Se questo è un vero vantaggio è negli occhi di chi guarda immagino. Ero piuttosto soddisfatto di non avere le normali informazioni che mi aspetto di vedere all'avvio. Ad esempio, buona fortuna se il fornitore non utilizza una chiave standard per accedere all'impostazione UEFI / Bios di base.

Oh, sì, e la teoria è che questo fermerà i virus del settore di avvio, o almeno farà in modo che i creatori creino / rubino l'ID di qualcuno e paghino $ 99 a Verisign (la via RedHat Fedora. Google it.)

Ah, e c'è il problema. Chiunque può firmare il codice con qualsiasi chiave. Il problema è che la macchina eseguirà solo il codice firmato da una chiave di autorità attendibile. La metà pubblica della chiave viene installata in fabbrica nel core UEFI del sistema e viene utilizzata per verificare la firma dei programmi UEFI (codice di avvio) firmata con la chiave privata.

Indovina chi è la chiave pubblica installata in fabbrica? Indovina chi richiede che l'avvio protetto sia abilitato per impostazione predefinita?

Ovviamente, ogni produttore di sistemi inserirà la chiave di Microsoft. Essi potrebbero anche mettere in chiave di Canonical (Ubuntu), la chiave di Red Hat, chiave di Apple, ecc più chiavi anche se i mezzi più punti per le violazioni, e c'è ovviamente un limite fisico al numero di essi potrebbero memorizzare.

E qual è la soluzione per un utente di computer ribelle come te?

  • Spero che il tuo fornitore di sistema ti consenta di accedere alla configurazione di avvio del sistema

  • Spero che ti consentano di disattivare l'avvio sicuro. Il codice di avvio di Windows verrà comunque eseguito senza avvio sicuro.

  • Se sei davvero fortunato, il fornitore del sistema ti permetterà di inserire le tue chiavi dell'autorità di certificazione e puoi firmare le tue cose. Questo è davvero necessario solo se vuoi giocare con Secure Boot.

Il mio laptop MSI mi permette di fare tutto quanto sopra.

Mi piacerebbe vedere un mondo in cui chiunque possa ritirare una copia gratuita di un Linux Distro e sostituire il proprio sistema operativo. Questo è quello che avevamo prima di Secure Boot. Avevamo anche molti virus del settore di avvio. Dover disabilitare l'avvio sicuro nella configurazione del tuo sistema è probabilmente un ostacolo abbastanza piccolo per verificare che hai il potere del cervello di installare un sistema operativo o conoscere qualcuno che lo fa.

Non avere la possibilità di spegnerlo è una cosa negativa, e dipende dal produttore. Non dare la colpa a Microsoft, a meno che non stiano "convincendo" il produttore a prevenire la disabilitazione dell'avvio protetto.


Benvenuto e grazie! Risposta molto interessante, ma aspetterò un po 'di più prima di accettare, poiché voglio vedere i pensieri degli altri.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.