1. UEFI Secure Boot
The good and the bad
Marcello Missiroli
Davide Bolcioni
2. Di che cosa parleremo
● Motivazioni che hanno portato a UEFI
● Stutturazione tecnica di UEFI
● Le cose buone
● Le cose cattive (o quantomeno sospette)
3. Evoluzione del Boot
● Anni 70: Inizializza e lancia il BASIC
● Anni 80: IBM propone e distribuisce il codice
per il BIOS – successo oltre le aspettative
● Tentativi di miglioramenti BIOS (falliti)
● ABIOS (IBM su PS/2, Microchannel)
● Common Hardware Reference Platform
(PowerPC)
● OpenFirmware(Forth)
● LinuxBIOS (Licenza)
4. Come funziona il boot oggi
● Lento
● Menu del bios poco intuitivi
(spesso in inglese)
● Opzioni oscure tramite [canc]
[Fn]
● Tecnologia degli anni 80
● Durata dai 15 ai 120 secondi
● Usa 16bit e 1Mbyte (max)
● Limite di 2Tb
5. Avvio e spegnimento
● Si fanno tutti i giorni (spesso più volte al giorno)
● Sono un elemento di valutazione della bontà di
un sistema (specie per gli utenti non tecnici)
● Dipendono dal firmware
7. Ecco UEFI
● Unified Extensible Firmware
Interface (UEFI)
● Sostituisce il BIOS
● Usa 32 o 64 bit
● Usa UGA (Unified Graphics
Adapter) che sostituisce e
migliora VGA
● Usa driver (EFI Byte Code,
EBC). I dispositivi possono
essere usati anche in fase di
avvio
8. Uso del disco
● Si possono usare partizioni maggiori di 2Tbyte
(max 8Zbyte)
● Non usa più il MBR e le partizioni “classiche”,
ma lo schema GUID
● Supporta FAT 32/16/12
10. Voce della tabella delle
partizioni GUID
● Usa 128 byte(!)
● I primi 16 sono il TIPO della partizione
● I secondi 16 sono un ID univoco della
partizione
● Seguono 8 byte per l'inizio della partizione
(Logical Block Addressing)
● 8 per la fine della partizione (LBA)
● 16 per gli attributi
● 72 per il nome della partizione (UTF-16)
12. Situazione attuale di supporto
● Windows
● Windows 3.1, XP e Vista NON possono funzionare
con EFIU
● Windows 7 e Windows server si, ma solo a 64bit
● Linux
● Può funzionare
● Mac OS
● Si, ma con un hack (hackintosh)
13. UEFI: il buono
● Tempi di boot ridotti (7s)
● POST effettuato in grafica moderna
● Passaggio al SO senza sfarfallii
● Protezione dai rootkit e dalle modifiche al BIOS
non autorizzate
● Uso di grandi partizioni
14. UEFI Secure Boot
● Come funziona?
● All'avvio viene eseguito il firmware UEFI
● Esamina le memorie di massa che trova
● Riconosce le partizioni avviabili
● Segue una politica per avviare qualcosa
● L'unico che trova
● Il primo
● Chiede all'utente
15. UEFI Secure Boot
● I file avviabili includono una firma
● Firmati con una chiave privata
– Nel caso di Windows 8, una di Microsoft
● Il firmware cerca la chiave pubblica corrispondente
● Il file viene letto e la firma viene verificata
● Se non corrisponde, quel file non viene avviato
● Tecnologia analoga a SSL
– Ingegnerizzata da Intel
– Sicura quanto lo home banking
16. Conseguenze
● Windows 8 da HD si avvia
● Firmato dalla chiave Microsoft
Presumibilmente presente (OEM certification)
–
● Windows 8 da CD o USB si avvia
● Idem
● Linux da CD si avvia ?
La chiave è presente ?
17. Le chiavi del regno
● Chi controlla le chiavi UEFI controlla il PC
● Il produttore del PC controlla la chiave iniziale
● Quelle di Microsoft ci saranno
– I produttori di PC non possono ignorare Windows
● Red Hat potrebbe, probabilmente pagando
– Non necessariamente in tutti
● Canonical potrebbe, probabilmente pagando
– Non è un costo da poco
● Debian avrebbe presumibilmente difficoltà
18. Fornitore e consumatore
● Il fornitore sceglie le chiavi presenti
● Opzione per disabilitare la verifica della chiave
● Il fornitore può scegliere varie politiche
● Solo la chiave Microsoft
● La chiave Microsoft e la propria
● La chiave di chiunque paghi abbastanza
● Una chiave da dispositivo rimovibile (dopo)
● Interfaccia di gestione delle chiavi
– Aggiungi, Rimuovi, Abilita, Disabilita, ...
19. A pensar male - 1
● Ufficialmente per motivi di sicurezza
● Strumenti di ripristino ?
● Stratagemma per tagliare le gambe a Linux
● Quota di mercato in crescita
– In particolare nei mercati emergenti
● Acquirente ostaggio delle scelte del fornitore
● Scelte presenti ma soprattutto future
– Software a corredo
– Installazione OEM vincolata
20. A pensar male -2
● L'avvio è solo il primo passo
● Una rana si può bollire viva ... piano piano
● Con UEFI controllo cosa viene avviato
● Ciò che viene avviato controlla che S.O. parte
– Le chiavi sono nel TPM (aka Palladium)
● Il S.O. controlla la chiave dei programmi avviati
– Possono andare in esecuzione solo se autorizzati
● Autorizzati da chi ?
● Niente più software liberamente modificabile
– Dà fastidio, perchè consente ai peones di scegliere
21. Esempio: Windows 8
● Per avere il logo Windows 8 un OEM deve
● Attivare Secure Boot
● Impedirne il controllo tramite programma
– Quale programma ?
● Assicurare che vengano impediti aggiornamenti del
firmware non autorizzati
– Autorizzati da chi ?
22. Attestazione
● Il software può proteggersi dalla copia e
dall'uso fuori dai termini di licenza
● Si collega via Internet per verificare
● Questo controllo non può essere rimosso
● Si torna a pagare la licenza di ogni programma
● Niente abuso del software OEM
● Posso impedire la circolazione dell'usato
● Software in abbonamento, a consumo, a tempo
● Intrattenimento pay per view
23. Farsi pagare
● I produttori di PC possono farsi pagare
● Per ciascuna chiave nel firmware UEFI
● I produttori di S.O. possono farsi pagare
● Per ciascuna applicazione autorizzata
● I produttori di applicazioni possono farsi pagare
● Per l'applicazione stessa
● Per i contenuti che riproducono
● Per autorizzare eventuali add-on
● I produttori di contenuti possono farsi pagare
24. Se non siete d'accordo...
● Petizione della FSF
http://www.fsf.org/campaigns/secure-boot-vs-restricted-boot
26. Caso RedHatLinux
Il sistema legge la tabella delle partizioni
● monta EFI System Partition (ESP), una
partizione VFAT etichettata con un globally
unique identifier (GUID) particolare (di solito
in /boot/efi/)
● La directory /boot/efi/EFI/redhat/ contiene
grub.efi, una versione di GRUB speciale.
● GRUB determina quale sistema operativo o
kernel deve avviare, lo carica all'interno della
memoria e trasferisce il controllo della
macchina al sistema operativo in questione.
27. Caso Ubuntu
● Google is your friend, or try:
● https://help.ubuntu.com/community/UEFI
● http://askubuntu.com/questions/91484/how-to-boot-ubun
● https://help.ubuntu.com/community/UEFIBooting
YMMV
28. Licenza
● Questo file è distribuito con licenza Creative
Common BY-SA
● http://creativecommons.org/licenses/by-sa/2.5/it/
●