boot loader

Avvio protetto Linux

Avvio protetto Linux

Linux: cos'è l'avvio sicuro??

All'avvio un computer esegue un programma specifico per rilevare e inizializzare i suoi componenti hardware. Tradizionalmente, i PC compatibili con IBM utilizzano il BIOS (Basic Input Output System). Al contrario, i Mac utilizzano OpenFirmware, Android ha solo un boot loader e un Raspberry Pi parte da un firmware conservato nel sistema su un chip (SoC). Questo passaggio iniziale include i controlli hardware e la ricerca dei sistemi operativi disponibili su supporti di memorizzazione che fanno parte del computer come un disco rigido, CDROM/DVD o una scheda SD, o collegati ad esso tramite rete (Network File System (NFS) , avvio PXE).

L'ordine di ricerca effettivo dipende dalle impostazioni del BIOS del computer. La Figura 2 mostra un elenco di dispositivi disponibili da cui avviare.

Al termine viene visualizzato un elenco dei sistemi operativi disponibili con parametri specifici (chiamati “opzioni di avvio disponibili”) in un menu dal quale si sceglie il sistema operativo desiderato per l'avvio.

Dal 2012 è in uso Secure Boot. Questo articolo spiegherà cos'è, qual è l'intenzione dietro di esso e come funziona. Inoltre, risponderemo alla domanda se Secure Boot è necessario per le macchine basate solo su Linux e in che modo le distribuzioni Linux gestiscono questo caso.


Cos'è l'avvio sicuro??

Secure Boot è una questione di fiducia. L'idea generale alla base è avviare la macchina in modo sicuro per evitare che il computer venga eseguito con malware fin dall'inizio. In generale, un approccio pulito con un sistema affidabile è un approccio da sostenere con forza.

Secure Boot fa parte della Unified Extensible Firmware Interface (UEFI), un'interfaccia centrale tra il firmware, i singoli componenti del computer e il sistema operativo [3]. Per un periodo di circa cinque anni è stato sviluppato da Intel e Microsoft in sostituzione del BIOS. Nel 2012, versione 2.3.1 di UEFI è stato introdotto con Microsoft Windows 8. Microsoft ha reso obbligatorio per i produttori di computer implementare UEFI se volessero ottenere una certificazione Windows 8 per le loro macchine di nuova costruzione [15].

Ma perché Secure Boot si chiama Secure Boot?? Cosa lo rende un'opzione di avvio sicuro? Secure Boot consente solo l'avvio da bootloader assegnati in precedenza e quindi ha lo scopo di impedire l'avvio di malware o altri programmi indesiderati. Un BIOS tradizionale avvierebbe qualsiasi software. Consentirebbe persino al malware, come un rootkit, di sostituire il boot loader. Il rootkit sarebbe quindi in grado di caricare il tuo sistema operativo e rimanere completamente invisibile e non rilevabile sul tuo sistema. Mentre con Secure Boot il firmware di sistema verifica prima se il boot loader del sistema è firmato con una chiave crittografica. La chiave crittografica è una chiave che è stata autorizzata da un database contenuto nel firmware. Solo se la chiave viene riconosciuta consentirà l'avvio del sistema. Tale firma valida deve seguire una specifica dell'Autorità di certificazione UEFI Microsoft (CA).


Prospettive differenti

A prima vista sembra abbastanza buono, ma ci sono sempre due facce di una medaglia. Come al solito convivono vantaggi e svantaggi. Le rassegne stampa lodano o demonizzano Secure Boot a seconda di chi sta scrivendo la recensione.

Innanzitutto, tieni presente che l'autorità sulle chiavi crittografiche è nelle mani di un singolo attore globale - Microsoft. Dare potenza a milioni di macchine a una sola azienda non è mai una buona idea. In questo modo Microsoft si assicura il controllo completo della tua macchina. Con un'unica decisione Microsoft è in grado di bloccare l'intero mercato con un solo colpo e di escludere sia i suoi concorrenti che te come cliente. E.g. se si desidera installare hardware di un produttore diverso in una fase successiva, è necessario assicurarsi che la chiave del nuovo componente sia stata archiviata nel sistema di database. Lasciandoti con flessibilità e scelte limitate, specialmente se sei uno sviluppatore.

In secondo luogo, non solo le tue scelte hardware sono limitate, ma anche le scelte del tuo sistema operativo dovrebbero essere limitate a causa della tecnologia UEFI introdotta da Windows. Ciò significa che sta rendendo la vita difficile alla comunità Linux. Prima del suo utilizzo su hardware basato su UEFI, i boot loader Linux come GRUB devono prima essere certificati e quindi rallentano gli sviluppi piuttosto rapidi poiché la comunità Open Source è nota per. Nessuno sa cosa succede se il validatore centrale commette un errore durante la validazione o blocca il rilascio di un software aggiornato.

Terzo, cosa significa il termine malware oggi e domani?? Include i sistemi operativi dei concorrenti [5] o ne sono esclusi? Il processo di convalida scorre dietro le quinte e nessuno può provarlo.

Quarto, ci sono riserve sulla sicurezza. Secondo gli attuali sviluppi la lunghezza delle chiavi crittografiche è relativamente breve. Secure Boot consente solo certificati X509 e chiavi RSA con una lunghezza fissa di 2048 bit [16]. Nel prossimo futuro, con l'uso della parallelizzazione di massa e dell'ulteriore potenza di calcolo basata sulla virtualizzazione, questo livello di sicurezza dovrebbe essere rotto. Oggi si consigliano chiavi crittografiche con una lunghezza di 4096 bit.

In quinto luogo, sembra che il software, offerto da un grande fornitore e certificato, sia sicuro e senza errori. Come dimostra la storia, sappiamo tutti che non è vero, il software contiene sempre dei bug. Una certificazione ti culla in un falso senso di sicurezza.


Soluzioni per l'Open Source

Ma dove c'è un problema, c'è anche una soluzione. Microsoft offre generosamente l'opportunità ai distributori Linux di accedere al proprio portale Microsoft Sysdev per far firmare i propri boot loader [17]. Questo servizio ha comunque un prezzo.

Le distribuzioni Linux hanno solo uno "shim" [11] firmato sul portale Microsoft. Lo shim è un piccolo boot loader che avvia il boot loader GRUB principale delle distribuzioni Linux. Microsoft controlla solo lo shim firmato e successivamente la tua distribuzione Linux si avvia normalmente. Questo aiuta a mantenere il sistema Linux come al solito.

Come riportato da varie fonti, (U)EFI funziona bene con Fedora/RedHat, Ubuntu, Arch Linux e Linux Mint. Per Debian GNU/Linux non esiste un supporto ufficiale per l'avvio protetto [9]. Ad ogni modo, c'è un interessante post sul blog su come configurarlo [18] , oltre a una descrizione nel Wiki di Debian [14].

Alternative a UEFI

UEFI non è l'unico successore del BIOS del PC: ci sono alternative. Potresti dare un'occhiata più da vicino a OpenBIOS [4], libreboot [7], Open Firmware [8,9] e coreboot [10]. Per questo articolo non li abbiamo testati, ma è utile sapere che esistono implementazioni alternative e funzionano senza problemi.


Conclusione

Come accennato prima, la domanda chiave è la fiducia. Per quanto riguarda i computer, chiediti di quali parti del tuo sistema ti fidi: i componenti hardware (firmware, chip, TPM) e/o i componenti software (boot loader, sistema operativo, software in uso). Non è possibile eseguire il debug dell'intero sistema. Può essere utile sapere che il tuo sistema operativo non funziona contro i tuoi interessi e che ottieni le cose per le quali hai acquistato il sistema - in modo sicuro senza essere controllato da un monopolista.


Link e riferimenti

Ringraziamenti

Frank Hofmann e  Mandy Neumeyer sono coautori dell'articolo.  Gli autori desiderano ringraziare Justin Kelly per il suo aiuto e i commenti critici durante la scrittura di questo articolo.

OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...