Untrusted/ Come ti cambiano il BIOS

Untrusted/ Come ti cambiano il BIOS

I computer blindati hanno esigenze diverse da
quelli tradizionali, abbisognano di BIOS e Boot Loader di nuova
fattura. Capaci di rendere davvero.. trusted il sistema su cui operano.
Ecco di cosa si tratta

di
Alessandro Bottoni – da punto-informatico.it del 16.06.2006

AMI, Pheonix, EFIRoma – Come abbiamo già spiegato in articoli precedenti, è necessario
un BIOS particolare per costruire una piattaforma Trusted Computing
completa. Questo BIOS deve mettere a disposizione le funzionalità
necessarie per la procedura di avviamento sicuro ("Secure Boot") e le
funzionalità necessarie per la gestione del TPM
(abilitazione/disabilitazione, gestione delle chiavi primarie etc.).
Per motivi analoghi, i sistemi multi-boot devono avere un Boot Loader
in grado di collaborare con il TPM ed il BIOS.
Ecco i nuovi tipi
di BIOS e di Boot Loader che sono stati creati per soddisfare queste
esigenze ed alcuni altri che, per vari motivi, ci sembrano interessanti.

American Megatrends (AMI)
Nel Gennaio del 2003, AMI
ha annunciato la disponibilità del supporto Trusted Computing nel suo
AMI BIOS8. Questa nuova versione del BIOS AMI fornisce tutte le
funzionalità necessarie per avviare il sistema in modalità sicura
("trusted") e per gestire il TPM. In particolare, AMIBIOS8 provvede a
caricare i driver del TPM, memorizza (nel TPM) gli "hash" a 160 Bit che
descrivono lo stato della piattaforma (le famose "Platform
Configuration Registry" o "PCR") e fornisce gli strumenti software
necessari per gestire il TPM a run-time.
L’implementazione delle
specifiche TCG che AMI ha realizzato è quasi da manuale. Si attiene
strettamente alle specifiche senza tralasciare nessun elemento
importante. In questo, come vedremo, rappresenta più l’eccezione che la
regola.

Essendo in produzione da circa 3 anni, questo tipo di
BIOS è già ampiamente diffuso sul mercato, anche se non tutte le sue
applicazioni prevedono lo sfruttamento di queste sue caratteristiche.
Per avere una piattaforma Trusted Computing, lo ricordiamo, non basta
avere un BIOS TC-compliant.
AMI BIOS 8 è descritto a questa URL.

Phoenix BIOS
Phoenix
è l’altro grande produttore di BIOS per PC. Da quando Phoenix ha
acquisito la Award, sono rimasti solo AMI e Phoenix a contendersi
questo mercato. Naturalmente, anche Phoenix ha sviluppato la propria
versione di BIOS compatibile con le specifiche Trusted Computing.
Questa versione si chiama "TrustedCore" ed è già in produzione da un
paio d’anni. Per certi aspetti, la implementazione delle specifiche TCG
che Phoenix ha fatto è molto meno standard e molto meno rassicurante di
quella di AMI.

TrustedCore, infatti, dispone di un proprio
sistema crittografico interno, in grado di svolgere gran parte delle
funzioni di un TPM. Questo sistema è in grado di creare i PCR necessari
per le funzioni di Secure Boot e di verificare l’integrità dello stesso
firmware usato dal BIOS. Si tratta quindi di una implementazione
parallela a quella del TCG. Questo vuol dire che coloro che acquistano
dei PC dotati di BIOS Phoenix TrustedCore rischiano di trovarsi tra le
mani una macchina parzialmente contaminata da tecnologie Trusted
Computing senza nemmeno saperlo. L’assenza di TPM e di altri elementi
riconoscibili rende queste macchine indistinguibili da normali macchine
TC-free.

Per il resto, l’implementazione di Phoenix è simile a
quella di AMI. Questo BIOS può essere usato per pilotare una
piattaforma Trusted Computing "tradizionale" dotata di TPM.

L’implementazione di Phoenix è descritta a questa URL.

EFI (Extensible Firmware Interface)
EFI
è un nuovo tipo di BIOS (più esattamente un nuovo tipo di firmware)
ideato da Intel, che dovrebbe porre fine a molti problemi storici del
vecchio BIOS.
EFI viene usato dai nuovi Apple MacIntosh con
architettura Intel, in produzione da qualche mese. Dal 2003, lo
sviluppo di EFI non viene più guidato da Intel ma da un apposito
consorzio di aziende noto come UEFI (Unified Extensible Firmware Interface). EFI e UEFI sono nati per piattaforme a 64 bit ma Intel ne rende disponibile una versione compatibile con le normali architetture a 32 bit all’interno delle sue motherboard della serie 945.

La
principale innovazione di EFI è rappresentata dal fatto che i driver
necessari per pilotare una gran parte dell’hardware possono essere
gestiti direttamente dal firmware e potrebbero quindi essere
indipendenti dal sistema operativo utilizzato.
Questo potrebbe
permettere ai produttori di schede e di chip di creare i loro driver
indipendenti dal sistema operativo e, di conseguenza, chi crea i
sistemi operativi non dovrebbe più preoccuparsi di creare i driver.

Questo
potrebbe voler dire che i sistemi operativi "alternativi", come Linux e
BSD, potrebbero finalmente avere accesso a tutto l’hardware esistente
nello stesso modo e con la stessa efficienza dei sistemi operativi
"mainstream" come Windows. In altri termini, EFI potrebbe segnare la
fine della vita da Cenerentola a cui sono stati costretti Linux e BSD
fino ad ora.

EFI, GRUB e LiLo

Com’era prevedibile, EFI viene sostanzialmente ignorato da Microsoft
e da quasi tutti i produttori di hardware che sono legati ad essa. Ad
esempio, Microsoft ha recentemente annunciato che il supporto per EFI
(più esattamente per UEFI 2.0) sarà disponibile solo per le versioni
server a 64 bit di Windows Vista.
Pur essendo disponibili versioni di EFI a 32 bit sulle motherboard
Intel, nessun produttore di hardware si è preoccupato di creare i
relativi driver OS-indipendent, invocando come giustificazione
l’assenza di una versione di Windows a 32 bit in grado di sfruttarli
(come se esistesse solo Windows). I normali utenti dovranno quindi
continuare a fare i conti con il vecchio BIOS ed i soliti problemi di
driver. Questo vuol anche dire che esistono dei problemi per usare
Windows sui MacIntosh con architettura Intel, problemi che devono
essere risolti da BootCamp. L’utente finale dipende quindi dalla
volontà di Apple e dalla presenza di BootCamp per l’uso di Windows sui
MacIntosh.

Per quanto ci riguarda, EFI ci interessa solo in
quanto è in grado di pilotare una piattaforma Trusted Computing.
All’interno delle sue aree di memoria è possibile conservare tutto il
firmware necessario per questo scopo. Questo, infatti, è il modo in cui
funzionano i MacIntosh attualmente in produzione.
EliLo, la versione EFI-enabled di LiLo, è disponibile a questa URL.

EFI è, in un certo senso, l’erede di Open Firmware,
il sistema usato dai "vecchi" Apple MacIntosh su architettura PowerPC.
Il consorzio che si occupa del suo sviluppo è reperibile a questa URL.

Trusted GRUB e LiLo with TCPA support
Chi
usa Linux sa bene cosa sono i Boot Loader. Si tratta di piccoli
programmi che si installano nel MBR (Main Boot Record) di un hard disk
e che permettono di avviare alternativamente uno qualunque dei sistemi
operativi installati sulla macchina, ad esempio Linux o Windows.
Ovviamente, anche i boot loader devono essere resi compatibili con le
piattaforme di Trusted Computing. Per questo motivo, sono state
sviluppate le versioni TC-compliant di LiLo e GRUB, i due boot loader
più diffusi.

Questi boot loader collaborano con il BIOS e con il
sistema operativo per mantenere la "chain of trust" che permette di
garantire la affidabilità dell’intero sistema.
Trusted GRUB è reperibile a questa URL.
La versione TC-compliant di LiLo è parte del progetto Enforcer, reperibile a questa URL

LinuxBIOS e OpenBIOS
Leggendo
queste righe dovrebbe essere diventata evidente la necessità di
liberare l’hardware dalla dipendenza da uno specifico BIOS e/o
firmware. Solo usando un BIOS "open source", infatti, è possibile avere
il pieno controllo dell’intero sistema e tutte le garanzie necessarie
sul suo funzionamento. A questo scopo sono stati avviati due importanti
progetti per la creazione di BIOS "liberi".

Il primo progetto è promosso dalla Free Software Fundation e si chiama LinuxBIOS. Il sito ufficiale del team di sviluppo è a questa URL.
LinuxBIOS
è un piccolo BIOS a 32 bit che svolge solo le funzioni indispensabili.
Si tratta quindi di un BIOS molto veloce e molto versatile. Attualmente
viene usato da una dozzina di costruttori, tra cui Cray, LinuxLab e
ClusterLab, per la realizzazione di cluster per l’elaborazione
parallela.

OpenBIOS è un progetto meno maturo ma non meno
interessante. Gli obiettivi che si pongono i suoi sviluppatori sono una
totale "openness" ed una totale indipendenza dalla piattaforma hardware
e software. Il sito del progetto si trova a questa URL.

Conclusioni
L’avvento
del Trusted Computing comporta anche la sostituzione dei vecchi BIOS
con altri in grado di supportare queste funzionalità. Questo
cambiamento poteva essere l’occasione per un passo avanti nel settore
dei BIOS, verso una maggiore indipendenza dal produttore, ma non è
stato così.
Progetti di grande importanza, come EFI e LinuxBIOS,
giacciono inutilizzati a causa dell’antico vendor lock-in che lega i
produttori di hardware al principale produttore di sistemi operativi.
Nessuno sembra avere interesse a rompere questo legame e cercare
fortuna per conto proprio sul mercato con prodotti adatti al mondo
Linux e BSD.

A questa amarezza di fondo si somma quella dovuta alla scarsa trasparenza che domina questo mercato.

La
presenza di funzionalità molto simili a quelle specifiche del Trusted
Computing sui BIOS prodotti da Phoenix non è dichiarata in modo
sufficiente al momento della vendita del prodotto. Io stesso sono stato
testimone dell’acquisto di un PC dotato di BIOS Phoenix TrustedCore da
parte di una persona assolutamente contraria a queste tecnologie.
Almeno
in questo caso, l’acquirente ha fatto veramente tutto il possibile per
evitare l’acquisto di un sistema "trusted" ma non è ugualmente riuscito
ad evitarlo. Questo dovrebbe far riflettere sulla reale natura di
questi sistemi, sulla loro pericolosità e sulla "coda di paglia" delle
aziende coinvolte.

Alessandro Bottoni (Tutte le release di Untrusted sono disponibili a questo indirizzo)

Image for: Untrusted/ Come ti cambiano il BIOS