jump to navigation

Il Database delle Chiavi RSA dei Fritz Chip February 28, 2006

Posted by laspinanelfianco in Trusted Computing.
trackback

Come noto, ogni TPM (Fritz Chip) è identificato univocamente da una coppia di chiavi crittografiche RSA a 2048 Bit. Non sono io a dirlo ma David Safford, il ricercatore IBM autore dell’unico documento (peraltro solo semi-ufficiale) che sia stato scritto a difesa del Trusted Computing, il famoso “rebuttal“. Ecco come Safford descrive questo identificatore in un suo articolo apparso su Linux Journal:

The TPM stores three important keys in non-volatile memory. The endorsement key is a 2,048-bit RSA public and private key pair, which is created randomly on the chip at manufacture time and cannot be changed. The private key never leaves the chip, while the public key is used for attestation and for encryption of sensitive data sent to the chip, as occurs during the TPM_TakeOwnership command. Because this key is sensitive from a privacy perspective, its use can be disabled completely by the TPM owner.

Si tratta quindi di una coppia di chiavi RSA a 2048 Bit. La chiave privata non lascia mai il chip e viene usata per testarne l’identità. La chiave pubblica viene usata per cifrare i dati inviati al chip e per altre funzioni. Secondo le specifiche, la chiave pubblica può essere “disabilitata” in modo da preservare la privacy degli utenti.

Per capire come sia possibile conoscere con certezza l’identita del chip bisogna capire come funziona un sistema crittografico a chiave pubblica. Vi consiglio di leggere qualcosa su questo argomento a Wikipedia, ad esempio questo articolo sulla Public Key Cryptography o questo articolo su RSA. In poche parole, l’identificazione del chip è possibile grazie al fatto che un documento cifrato con la chiave pubblica (di cui disponiamo) può essere decifrato solo dalla corrispondente chiave privata (mantenuta segreta all’inteno del chip). La procedura di identificazione del chip è quindi simile alla seguente (in realtà è diversa ed un po’ più complessa, ma per i nostri scopi basta questa rappresentazione).

  1. Ci si procura la chiave pubblica del chip che si vuole identificare (da un database pubblico o da un archivio creato in occasione di un precedente contatto con il chip in questione).
  2. Si cifra un documento qualunque con questa chiave e lo si invia al chip da “certificare”.
  3. Se il chip riesce a decifrare il documento e ad inviarcene la copia in chiaro, allora è il chip “giusto”.

Per questo motivo, se si disabilita la chiave pubblica diventa impossibile verificare l’identità del Fritz chip.

Prima di procedere, vi prego di notare alcuni punti.

  1. La coppia di chiavi viene generata, sempre e comunque, in fase di produzione del Fritz Chip cioè “in fabbrica”, fuori dal controllo dell’utente finale.
  2. Disabilitare la chiave pubblica vuol dire rinunciare ad accedere ai documenti cifrati da sistemi Trusted Computing, in particolare quelli usati dai sistemi DRM e ERM. In pratica, vuol dire tagliarsi fuori dal mondo con le proprie mani.

A questo punto dovrebbe essere ben chiara l’importanza di queste chiavi RSA per la privacy dell’utente e per la sua possibilità di accedere all’universo digitale che si va creando grazie al Trusted Computing (tra cui Internet).

Ora poniamoci una domanda cruciale: “Per identificare con certezza un Fritz Chip (e quindi il dispositivo su cui è installato e con esso il suo utente o proprietario), ho bisogno di conoscere la sua chiave RSA pubblica. Dove posso trovare questa chiave?”

La risposta a questa domanda è la seguente. In uno di questi due posti:

  1. Un archivio di chiavi di mia proprietà (“privato”) nel quale ho memorizzato questa chiave in occasione di un precedente incontro con questo Fritz Chip.
  2. Un archivio “pubblico” di chiavi RSA corrispondenti ad un certo insieme di Fritz Chip, ad esempio il database in cui il produttore di Fritz Chip ha memorizzato le chiavi pubbliche dei chip da essa prodotti.

La prima tecnica è quella tipica di un sistema DRM usato per proteggere dei contenuti multimediali. Quando vi collegate ad un sito web per acquistare qualcosa, il server chiede la chiave pubblica del vostro Fritz Chip e la memorizza, in modo da essere in grado di riconoscere lo stesso Fritz Chip quando vi collegherete di nuovo in futuro. In questo caso, la chiave pubblica viene usata più o meno come un cookie di sessione. Il server remoto non è in grado di dire chi siete ma solo di dire se siete la stessa persona che ha acquistato un certo servizio in precedenza. (La situazione in realtà è molto più complessa ma non possiamo spiegarla in dettaglio in questa sede senza farvi addormentare).

La seconda tecnica, secondo le specifiche del Trusted Computing Group non dovrebbe essere mai attuabile nella pratica perchè le aziende produttrici non dovrebbero tenere traccia dei TPM prodotti. Ecco, qui di seguito, come spiega questo concetto David Safford nel suo Rebuttal.

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

(Da Clarifying Misinformation about TCPA di David Safford, pagina 4 di 7. Il corsivo è mio.)

Come potete vedere, David Safford si premura di spiegare come le specifiche del TCG si spingano molto avanti nell’imporre ai produttori la creazione di un meccanismo di “identità virtuali” che proteggano la reale identità dell’utente. Queste specifiche si spingono molto avanti anche nello sforzo di rendere non necessarie e, se possibile, non desiderabili le procedure di identificazione del Fritz Chip. Tuttavia, nelle due frasi in corsivo, Safford è costretto ad ammettere due cose importantissime:

  1. L’unico modo di identificare in modo certo un Fritz Chip è quello di ricorrere alla sua chiave RSA pubblica
  2. L’unico modo di sapere se un certo Fritz Chip è un vero Fritz Chip (e non un emulatore) e se appartiene ad una certa “classe” di TPM (Ad esempio quelli che sono stati montati sui MacIntel) è quello di confrontare la sua chiave privata con quelle memorizzate dal produttore (o chi per lui).

A questo punto, ci dobbiamo domandare: “Che garanzie esistono che questo database di chiavi RSA pubbliche non venga mai realizzato dai produttori? Che garanzie esistono che la nostra privacy venga rispettata?”

La risposta è: nessuna.

Non sono io a dirlo ma il Trusted Computing Group stesso all’interno del più importante dei suoi documenti ufficiali: proprio quelle Best Practices che dovrebbero rappresentare la “Bibbia” e la “Legge” per i produttori di sistemi Trusted Computing. Come ha fatto notare Bruce Schneier in un suo famoso articolo sul suo Blog, queste Best Practices non vincolano in nessun modo i produttori. Sono semplici “buoni propositi” dell’ente di standardizzazione (il TCG). Come se non bastasse, all’interno di questo documento, che rimane comunque l’unico documento in cui il TCG prende una posizione etica sull’uso di questa tecnologia, il TCG stesso è costretto a riconoscere il suo fallimento nell’imporre regole chiare per il rispetto della privacy. Lo fa nei due punti seguenti.

However, preventing potentially coercive and anticompetitive behavior is outside the scope of TCG. (Pagina 11)

Computing and the Internet have fundamentally changed the value and importance of information. TCG technology, when properly implemented, has the capability to greatly improve the security of platforms on the Internet. At the same time, as with most security technologies, TCG technology could also be used inappropriately to undermine basic human rights of privacy and platform owner/user control. In light of this possibility for misuse of TCG technology, the TCG has worked very hard to specify building blocks for a security system that favors platform owner/user control, user privacy, interoperability, and data portability. The TCG realizes that market forces, coercive behavior, and poor implementations can do much to weaken these principles and that there is little the TCG organization can do to prevent a manufacturer or system designer from subverting the goals of privacy and control, if they are determined to do so. What TCG can do, however, is to say that such implementations fit neither the spirit of the TCG organization nor the letter of the TCG Principles. (Conclusioni a pagina 13)

Dopo che persino il TCG ha abdicato in questo modo al suo ruolo di garante, possiamo dire, senza timore di smentita, che l’utente rimane con una foglia davanti ed una di dietro, secondo la migliore tradizione del “customer care” nel mondo capitalistico.

In conclusione:

  1. Le chiavi RSA vengono generate sempre e comunque dal produttore.
  2. L’utente non può rinunciare a queste chiavi senza rinunciare anche ad accedere all’universo di documenti e servizi che sono (o saranno presto) protetti da tecnologie Trusted Computing.
  3. Il produttore non ha nessun obbligo riguardo alla eventuale memorizzazione di queste chiavi, nè obblighi di legge, nà obblighi contrattuali con il TCG.
  4. Ovviamente, un database di chiavi RSA di questo tipo ha un valore commerciale notevole perchè permetterebbe, ad esempio, ad Apple di stabilire in modo certo se il suo MacOS X viene installato su un MacIntel o su un comune PC. Nello stesso modo, permetterebbe alla RIAA ed alla MPAA di sapere esattamente chi ha acquistato un brano musicale od un film in rete. La tentazione di creare e vendere questo database di chiavi è quindi molto forte.
  5. Non c’è nessuna legge, nè USA, nè UE, nè italiana che ci possa mettere al riparo da questa evenienza. I nostri legislatori sono ancora strenuamente impegnati a decidere se sia più opportuno impiantare 2 o piuttosto 3 embrioni in quei casi di fecondazione artificiale che riguardano lo 0,0000000001 per mille della popolazione. Non hanno tempo per queste sciocchezze tecnologiche da geek brufolosi e segaioli.

Se avete commenti, c’è lo spazio apposito qui sotto.

Comments»

1. Guido Trotter - February 28, 2006

Piccola correzione:

Ora poniamoci una domanda cruciale: “Per identificare con certezza un Fritz Chip (e quindi il dispositivo su cui è installato e con esso il suo utente o proprietario), ho bisogno di conoscere la sua chiave RSA privata. Dove posso trovare questa chiave?”

direi sia “ho bisogno di conoscere la sua chiave RSA pubblica”, non privata!

2. laspinanelfianco - February 28, 2006

Guido Trotter said:

direi sia “ho bisogno di conoscere la sua chiave RSA pubblica”, non privata!

Right! L’ho appena corretto. Grazie.

Alessandro Bottoni

3. Guido Trotter - February 28, 2006

Prego, figurati! Grazie a te per gli articoli!

Guido

4. Nicola Cassolato - February 28, 2006

Mettiamo anche che Asus, ad esempio, associ ad ogni scheda madre un Fritz chip. Mettiamo anche che registri tutti queste chiavi.

Mettiamo che io comperi una di queste schede madri con il TPM e ti dica che la mia chiave privata è X. Ora dimmi come fai a identificarmi?
Non capisci che un elenco anche pubblico o anche riservato ai produttori di chiavi non significa associare alla chiave la persona che ha quel prodotto? Sai che ogni prodotto a casa tua ha già un serial number che tiene traccia della produzione e della vendita? Sai che il tuo provider ha l’elenco di tutti gli IP che ha a disposizione? E sa che tutte queste cose con la privacy non c’entrano niente?

E se anche Asus (o qualsiasi altra azienda) mi chiedesse di associare il mio nome alla mia chiave (cosa peraltro più che remota) è tenuta a custodire questi dati secondo la 196/2003 che ti assicuro è MOLTO restrittiva?

Gradirei una tua risposta in merito

5. laspinanelfianco - February 28, 2006

Nicola Cassolato said:

“Mettiamo che io comperi una di queste schede madri con il TPM e ti dica che la mia chiave privata è X. Ora dimmi come fai a identificarmi? Non capisci che un elenco anche pubblico o anche riservato ai produttori di chiavi non significa associare alla chiave la persona che ha quel prodotto?”

Quando parliamo di queste cose, che hanno una portata spaziale e temporale superiore a quelle della nostra vita privata, è necessario pensare anche a quello che può succedere, ad esempio, in Cina o in Italia fra 30 anni. Dovunque ci sia un governo con tentazioni totalitarie, una tecnologia come questa rappresenta un serio pericolo. La momentanea libertà di cui godiamo è solo l’effetto delle nostri leggi e delle nostre abitudini, hic et nunc. Non ha un valore assoluto.

A parte questo, cosa succede se acquisti un laptop da Dell, su Internet, e paghi con carta di credito? Già oggi circa il 20% dei portatili e circa il 10% dei desktop viene acquistato in questo modo.

“Sai che ogni prodotto a casa tua ha già un serial number che tiene traccia della produzione e della vendita? Sai che il tuo provider ha l’elenco di tutti gli IP che ha a disposizione? E sa che tutte queste cose con la privacy non c’entrano niente?”

Sono perfettamente al corrente di entrambe le cose e, personalmente, non ho intenzione di aggiungere, ai molti modi già esistenti di tracciare le mie attività, anche quelle concesse dal TC.

A parte questo, ci sono delle differenze tecniche di non poco conto. Il serial number marcato sul cabinet del mio PC non può essere letto da un server remoto quando mi collego ad Internet. (In questo momento, i nostri device NON hanno ancora dei serial number “incisi nel silicio”) Anche l’IP della macchina può essere mascherato. La chiave RSA del TC non può essere mascherata in modo analogo.

“E se anche Asus (o qualsiasi altra azienda) mi chiedesse di associare il mio nome alla mia chiave (cosa peraltro più che remota) è tenuta a custodire questi dati secondo la 196/2003 che ti assicuro è MOLTO restrittiva?”

Essendo un consulente che si occupa (anche) di queste cose, conosco gli obblighi di legge. Tuttavia, questa legge protegge i cittadini italiani di questa generazione. Che succede in Cina? Che succederà ai nostri nipoti? Pensi che fra 20 anni non ci sarà più il TC? O pensi che le leggi di oggi saranno valide in eterno, con qualunque governo?

Ad ogni modo, il produttore/venditore non ha bisogno di chiederti nulla: se paghi con qualcosa che ti renda identificabile, ha già tutte le info che gli servono. Prova a leggere il mio articolo di qualche giorno fa sugli RFID.

Alessandro Bottoni

6. L’amico Fritz at The Amarildo’s Journal - March 10, 2006

[…] L’uso di questa tecnica di verifica richiede però la creazione e l’uso di un database centralizzato delle endorsement key che corrispondono ai chip "reali". Un simile database ha delle pesanti implicazioni per la privacy degli utenti e non può essere creato con leggerezza. La reazione del "pubblico" alla creazione di un simile database sarebbe sicuramente molto più feroce di quella che ha già portato nel 2000 all’abbandono dei "serial number" sulle CPU Intel dopo lo scandalo del Pentium III (vedi anche qui). Tutto questo senza nemmeno parlare di cosa succederebbe se questo database di chiavi RSA finisse sotto il controllo di qualche malintenzionato o di qualche governo totalitario. […]

7. Blog navigabile a history » Fuga da Alcatraz - March 26, 2006

[…] L’uso di questa tecnica di verifica richiede però la creazione e l’uso di un database centralizzato delle endorsement key che corrispondono ai chip “reali”. Un simile database ha delle pesanti implicazioni per la privacy degli utenti e non può essere creato con leggerezza. La reazione del “pubblico” alla creazione di un simile database sarebbe sicuramente molto più feroce di quella che ha già portato nel 2000 all’abbandono dei “serial number” sulle CPU Intel dopo lo scandalo del Pentium III (vedi anche qui). Tutto questo senza nemmeno parlare di cosa succederebbe se questo database di chiavi RSA finisse sotto il controllo di qualche malintenzionato o di qualche governo totalitario. […]


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: