Roma – Il “Trusted Computing” è in realtà un nome collettivo che identifica diversi progetti, anche molto diversi tra loro, che vengono portati avanti da diverse aziende (il Trusted Computing Group, Microsoft, Intel, AMD, ARM, Transmeta ed altri). Ognuna di queste implementazioni del Trusted Computing è composta sia da elementi hardware (chip crittografici) che da elementi software (driver, sistemi operativi e programmi), per cui è difficile spiegare in poche parole che cosa sia il Trusted Computing. Tuttavia, tutti questi progetti condividono alcuni principi generali ed alcuni elementi chiave. Uno di questi elementi è il Fritz Chip , cioè il microchip che fornisce le funzionalità crittografiche necessarie a tutto il resto del sistema.
Il Fritz Chip è l’erede diretto del chip crittografico IBM ESS (Embedded Security Subsystem) che viene montato già da diversi anni su una parte della gamma di laptop ThinkPad di IBM (ora Lenovo). Questo chip viene ora chiamato TPM (Trusted Platform Module) e viene prodotto in serie da almeno 6 diverse aziende (Atmel, Broadcom, Infineon, Sinosun, STMicroelectronics e Winbond) secondo le specifiche del Trusted Computing Group (TCG). Il costo di questi chip varia da un minimo di 5 US$ ad un massimo di 7US$, per lotti di 1000 pezzi, a seconda del modello richiesto.
Il chip viene prodotto sia in forma “discreta” (un chip separato che viene saldato sulla motherboard) che “integrata” (la circuiteria del chip viene “annegata” all’interno di un chip più grande, ad esempio la CPU di un computer). Il Fritz Chip può essere montato sulla motherboard di qualunque dispositivo digitale , dal Personal Computer al lettore portatile di MP3.
Questo chip fornisce le seguenti funzionalità
– Una coppia di chiavi crittografiche RSA a 2048 bit che identifica in modo univoco il chip. Queste chiavi vengono create e memorizzate nel chip al momento della produzione e non possono essere rimosse, sostituite o cancellate.
– Un (ottimo) generatore di numeri casuali, necessario per generare chiavi crittografiche RSA particolarmente robuste e per altre funzioni.
– Un meccanismo hardware per generare altre chiavi RSA a 2048 bit.
– Uno “storage” sicuro per le chiavi che il chip può generare. Le chiavi vengono mantenute al sicuro all’interno del chip e vengono rilasciate ai programmi che ne fanno richiesta solo dopo aver accuratamente controllato che l’intero ambiente sia “sicuro”.
– Un motore crittografico implementato in hardware (velocissimo) che permette di cifrare e decifrare “al volo” file e flussi di dati con un algoritmo RSA e chiavi a 2048 bit.
Lo stesso motore crittografico fornisce le funzionalità necessarie per l’autenticazione e la verifica dell’integrità dei messaggi attraverso un algoritmo HMAC.
Lo stesso motore fornisce anche le funzionalità di hashing richieste dall’algoritmo HMAC grazie alla implementazione hardware di un algoritmo SHA1.
A grandi linee, si può pensare a questo microchip come alla versione hardware di un programma crittografico come PGP (Pretty Good Privacy) o GPG (GNU Privacy Guard). Programmi che implementano l’algoritmo RSA, come PGP e GPG, sono largamente utilizzati da diversi anni per la cifratura di file, documenti, messaggi di posta elettronica e canali di comunicazione (all’interno di programmi come SSH e SSL). Rispetto ad un programma come GPG, il microchip offre alcuni vantaggi chiave: può essere identificato in modo univoco (grazie alla sua chiave RSA), è velocissimo e permette di tenere le chiavi crittografiche al sicuro al suo interno.
All’interno della architettura Trusted Computing, il Fritz Chip viene usato con diverse finalità :
– Identificare in modo univoco il chip e quindi il dispositivo digitale a cui appartiene (PC od altro). In questo caso, il TPM svolge esattamente la stessa funzione che veniva svolta dal numero di serie del Pentium III .
– Generare identità crittografiche alternative, collegate all’utente, per identificare l’utente stesso nelle comunicazioni tra computer. In questo modo l’utente può avere identità diverse per scopi diversi, ad esempio una identità per il commercio elettronico ed una per l’home banking.
– Cifrare e decifrare al volo file (documenti e programmi) e flussi di dati (comunicazioni).
– Firmare digitalmente i file che spedisce e verificare che i file che riceve siano intatti e che provengano effettivamente dal mittente dal quale dichiarano di provenire.
La funzionalità più contestata in assoluto è naturalmente quella che permette di identificare in modo univoco il chip . Questa funzionalità è identica a quella fornita dal numero di serie del Pentium III (e di molti altri processori usati sulle Workstation) e permette di “agganciare” un file (documento o programma) al chip, in modo che il file non sia utilizzabile o leggibile su un altro PC.
Il Fritz Chip è un componente del tutto passivo e non prende nessuna iniziativa per conto suo: non “controlla” il processo di avviamento del PC (“bootstrap”) e non lo può bloccare. Non controlla e non blocca i programmi “sgraditi” e non dispone di nessuna lista di programmi “certificati”. Le funzionalità del Fritz Chip devono essere invocate da un programma esterno , attraverso un apposito driver. Sarà il programma esterno a decidere sulla “politica” di sicurezza che deve essere messa in atto.
Il BIOS del PC (od il firmware di un altro dispositivo digitale) può invocare le funzionalità del Fritz Chip per controllare il processo di avviamento del dispositivo ed eventualmente per bloccarlo. Il sistema operativo del computer può invocare le funzionalità del chip per verificare di essere stato installato solo sul PC per il quale è stata rilasciata la licenza. I programmi applicativi, come un lettore di film in formato MPEG4, possono invocare le funzionalità del Fritz Chip per cifrare il file MPEG4 sul disco ed i flussi di dati diretti al video ed alle casse audio, in modo da impedire la copia abusiva del prodotto .
In questo modo, il Fritz Chip pone le basi per una nuova generazione di sistemi DRM (Digital Rights Management) enormemente più robusta di quella attualmente in uso. L’uso del Trusted Computing come base per sistemi DRM è in realtà il principale motivo per cui le aziende lo vogliono imporre sul mercato.
Al momento, i driver per il Fritz Chip sono disponibili solo per Linux e per McOS X. In Linux, i driver per i chip IBM, Infineon ed Atmel sono inclusi “di serie” nella versione 2.6.12 del kernel. Dopo il passaggio alle CPU Intel, Apple usa il Fritz Chip (Infineon) per impedire l’installazione di McOS X su semplici PC Intel-based prodotti da altri. Microsoft metterà a disposizione i driver Windows per il Fritz Chip (e molto altro software per il Trusted Computing) solo tra qualche tempo, probabilmente con il Service Pack 2 di Windows Vista, previsto per il 2008. Il progetto di Microsoft per il Trusted Computing si chiama ora NGSCB. Il vecchio nome Palladium è stato abbandonato anni fa per la forte opposizione del pubblico.
Alessandro Bottoni
http://laspinanelfianco.wordpress.com/
La precedente release della rubrica Untrusted è disponibile qui
Link per approfondire
https://www.trustedcomputinggroup.org/home
http://www.no1984.org/
http://en.wikipedia.org/wiki/Trusted_Computing
http://en.wikipedia.org/wiki/Fritz_chip
http://www.rsasecurity.com/
http://en.wikipedia.org/wiki/Rsa
http://en.wikipedia.org/wiki/SHA1
http://en.wikipedia.org/wiki/HMAC
http://en.wikipedia.org/wiki/Trusted_platform_module
http://en.wikipedia.org/wiki/GPG
http://en.wikipedia.org/wiki/Digital_Rights_Management
http://en.wikipedia.org/wiki/Pentium_III
http://en.wikipedia.org/wiki/NGSCB
http://en.wikipedia.org/wiki/MacOS
http://www.research.ibm.com/gsal/tcpa/
http://tpmdd.sourceforge.net/
https://developer.berlios.de/projects/tpm-emulator