Untrusted/ Come ti cambiano il BIOS

di Alessandro Bottoni - 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 - 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

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. 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

Link copiato negli appunti

Ti potrebbe interessare

15 06 2006
Link copiato negli appunti