jump to navigation

Emulare il Fritz Chip January 31, 2006

Posted by laspinanelfianco in Trusted Computing.
trackback

Dato che il Friz Chip (TPM), è il cuore del Trusted Computing e fornisce tutte le funzionalità crittografiche necessarie al resto dell’architettura, non sarebbe possibile “fregare” tutto il sistema semplicemente emulando questo componente con un apposito programma?

Questa è una delle domande a cui per diverso tempo non sono riuscito a dare una risposta chiara e definitiva. La difficoltà non risiede tanto negli aspetti tecnici del TC, tutto sommato abbastanza chiari, quanto nella strategia di comunicazione delle aziende coinvolte in questo progetto. Come spesso avviene quando si studia il TC, bisogna dedurre le risposte alle proprie domande da quel poco che viene detto (e soprattutto da quello che non viene detto) nei soporiferi documenti tecnici del TCG. Una volta distillata l’informazione in questo modo, tuttavia, la risposta è dolorosamente chiara.

L’ipotesi del cracking per emulazione

In ultima analisi, il Fritz Chip è soltanto un componente hardware come la scheda video o la scheda di rete. Questi dispositivi hardware possono essere emulati da appositi programmi, in modo che il software che ha bisogno di loro possa funzionare tranquillamente anche in loro assenza. L’emulazione è una pratica comune nel mondo dell’informatica e non presenta particolari problemi teorici. Avendo a disposizione una “macchina di Turing completa” (un normale computer) è possibile emulare in tutto od in parte un ambiente operativo con una precisione tale da fare credere al software di vivere letteralmente in un altro mondo. Sul mercato sono presenti numerosi esempi di emulatori software di questo tipo, da VMWare a Boch, a QEMU, a VirtualPC a SoftPC a Xen. Tutti questi emulatori mostrano ai programmi applicativi le immagini virtuali di schede di rete, schede audio e video, intere CPU e persino intere reti emulate via software. In tutti questi casi, un programma applicativo che gira nell’emulatore crede veramente di trovarsi all’interno di un PC costruito e configurato secondo le sue esigenze, anche se la macchina su cui si trova è completamente diversa. In questo modo è possibile installare ed eseguire Linux per Intel all’interno di un PC virtuale emulato da VMWare su una macchina Apple-Motorola, ad esempio.

L’aspetto più interessante dell’emulazione è che il software non è in grado di scoprire se sta girando nel suo ambiente abituale o nell’emulatore. Per poterlo fare dovrebbe avere un punto di riferimento esterno all’emulatore, cioè qualcosa che l’emulatore non possa falsificare, grazie al quale effettuare qualche tipo di verifica.

Il problema della chiavi

Nel caso del TPM, questo elemento esterno e non falsificabile esiste: sono le chiavi crittografiche RSA, pubblica e privata, a 2048 bit che identificano in modo univoco il Fritz Chip. Queste chiavi vengono generate durante la produzione del chip dal chip stesso e vengono memorizzate al suo interno. In questa loro forma autocontenuta, non sono quindi di nessuna utilità: l’emulazione del Fritz Chip si limiterebbe ad emulare anche le chiavi insieme a tutto il resto. Per essere utili, queste chiavi devono essere registrate in un database esterno, in modo che il software applicativo possa usare questo database per verificare se il Fritz Chip è stato veramente prodotto da una industria, secondo i criteri desiderati, od è invece una emulazione software del tutto inaffidabile.

Ma questo database esterno, esiste o no?

Cosa dicono i documenti

Questo è il punto in cui occorre rileggere varie volte i documenti del TCG, di Intel e di M$ per riuscire ad avere una risposta chiara e definitiva.

I documenti ufficiali del Trusted Computing Group glissano elegantemente su questo dettaglio. Viene prevista la generazione e la memorizzazione delle chiavi sul chip ma non viene specificato che cosa debba essere fatto di queste chiavi da parte del produttore. La decisione di memorizzarle in un database esterno viene lasciata al produttore. Una posizione simile viene mantenuta anche da Intel nei documenti di LaGrande Technology. Intel si limita a dire che userà un Fritz Chip (saldato sulla motherboard o integrato nella CPU) per questo scopo. M$ è solo leggermente più esplicita e sostiene che il software abilitato a girare su Windows Vista con NGSCB sarà soggetto a qualche forma di certificazioni.

Per avere una risposta chiara bisogna ricorrere al documento “Clarifying misinformation on TCPA” di David Safford. Ecco come Safford risponde ad un commento di William Arbough:

“Both [integrity protection and trusted storage] use trusted root certificates as this basis [of their security guarantees.]”

This is a misunderstanding of the TCPA specification. There is no requirement for certificates at all, to use any TCPA chip function. There doesn’t even exist such a root authority for TCPA in general, or for IBM’s currently shipping chips. You can generate private keys, use them to sign, and decrypt, and seal/unseal data under PCR’s, all without any certificates. The only time a certificate is needed is if you want to be able to prove to a third party that you have an approved TCPA chip. Most applications do not have this need, and this certification is not currently supported with IBM’s chips. If you want to do an application that needs such a certificate, the TCPA has an endorsement key that can be used to get a suitable certificate. The only way this can work is if someone, like the manufacturer, has recorded a given TCPA chip’s public endorsement key, and can use this knowledge to certify identity keys from the given TCPA chip. This is not required, and software access to the endorsement key can be disabled. There is certainly a privacy aspect of access to the endorsement key, as it uniquely identifies the platform, and the TCPA specification goes to great lengths to allow for anonymous certification. The best defense for privacy conscious users is simply to turn off the endorsement key.

Tradotto alla meglio, questo frammento di testo dice:

“Il Trusted Computing usa dei certificati come base della sua sicurezza.”

Non sono richiesti certificati per nessuna delle funzioni del TPM. Non esiste nemmeno una autorità in grado di rilasciare questi certificati a livello globale od a livello del produttore (IBM). Potete generare chiavi, cifrare e decifrare materiali, firmarli e verificarli senza nessun bisogno di certificati. L’unico caso in cui avete bisogno di un certificato di questo tipo è se dovete mostrare ad una terza parte che state utilizzando un TPM “approvato”. La maggior parte delle applicazioni non ha bisogno di questa garanzia e questo tipo di certificazione non è attualmente supportato da IBM. Se volete creare una applicazione che sfrutti questa possibilità, il TPM ha una apposita endorsement key che può essere usata a questo scopo. L’unico modo in cui questo sistema può funzionare è che il produttore del chip abbia registrato la chiave pubblica del chip e renda disponibile questa conoscenza per verificare l’identità del chip stesso. Questa è una funzionalità che non è richiesta dalle specifiche e comunque l’accesso del software alla endorsement key può essere disabilitato. Esiste certamente un problema di privacy legato alle endorsement key, dato che possono identificare univocamente il chip ed il suo utilizzatore. Per questo motivo le specifiche del TCG si sforzano così duramente di permettere una qualche forma di certificazione anonima. La migliore difesa da questo tipo di minacce alla privacy è semplicemente quella di disabilitare del tutto le endorsement key.

Conclusioni

Da questo frammento di testo di Safford si riesce finalmente a stabilire cosa ne è di queste chiavi. In realtà, da questo frammento di testo si possono raccogliere anche altre informazioni interessanti. Le riporto qui di seguito.

  • Le chiavi necessarie per impedire un approccio cracking-by-emulating esistono sempre (per specifica tecnica).
  • La loro memorizzazione, necessaria per la riuscita dell’operazione di contrasto, viene lasciata alla discrezione del produttore, in modo che il TCG possa difendersi più facilmente dalle inevitabili accuse relative alla violazione della privacy.
  • Le aziende, ovviamente, memorizzeranno queste chiavi e le renderanno disponibili ai produttori di software che vorranno fare questi controlli. Se non agissero in questo modo, uno dei principali vantaggi del TC andrebbe perso.
  • Safford stesso è costretto ad ammettere che queste chiavi rappresentano una minaccia per la privacy.
  • Safford stesso è costretto a riconoscere che l’unica vera difesa da questa minaccia è quella di disabilitare completamente le chiavi.

A questo punto, possiamo rispondere alla domanda iniziale: no, non è possibile fregare il sistema emulando il TPM. Il TPM può essere facilmente emulato (ne trovate un esempio qui: http://tpm-emulator.berlios.de/ ) ma l’emulazione non risolve il problema e non permette di crackare le difese.

Comments»

1. Blog navigabile a history » Emulare il Fritz Chip - March 18, 2006

[…] Questo post è tratto da: Emulare il Fritz Chip, di Alessandro Bottoni Indice “Visitati e Mancanti”   >> Next “Mancante” […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: