jump to navigation

Quanto è robusto il Trusted Computing? January 23, 2006

Posted by laspinanelfianco in Sicurezza, Trusted Computing.
add a comment

Da un punto di vista crittografico, quanto è robusto il Fritz Chip (TPM) usato come chip crittografico dai sistemi Trusted Computing? Quanto è difficile decrittare un documento cifrato dal Fritz Chip? Quanto è difficile scoprire le chiavi usate per la cifratura?

Per fortuna, rispondere a queste domande è abbastanza semplice. Il Fritz chip usa tre diversi protocolli (algoritmi) per i suoi scopi:

  • RSA per cifrare e decifrare documenti e flussi di dati. RSA usa un algoritmo crittografico a chiave pubblica, con lunghezza delle chiavi variabile.
  • HMAC per verificare autenticità ed integrità dei messaggi.
  • SHA – 1 per creare gli “hash” dei file.

Tutti questi algoritmi appartengono alla “famiglia” di RSA e sono ampiamente descritti sia sul sito di RSA che a Wikipedia. Ognuno di questi algoritmi presenta qualche punto debole e, se “crackato”, potrebbe mettere in discussione l’esistenza stessa del Trusted Computing. Tuttavia, il vero elemento cruciale di questa analisi è quasi certamente l’algoritmo RSA. Se venisse crackato RSA, sarebbe possibile decifrare i documenti ed i flussi di dati protetti dai sistemi di Trusted Computing ma anche quelli protetti dalle altre implementazioni di RSA usate nella stragrande maggioranza delle applicazioni crittografiche esistenti, da SSL a SSH alla protezione della MS XboX. RSA è infatti l’algoritmo di cifratura di gran lunga più diffuso su questo pianeta.

Allora, quanto è robusto RSA?

RSA è molto, molto robusto. L’azienda che lo “produce” (RSA Security) tiene in vita già da molti anni una serie di sfide per verificare sistematicamente quanto sia robusto il suo algoritmo. Le sfide consistono nel riuscire a trovare i due numeri primi che, moltiplicati tra loro, danno origine ad un nuovo numero primo di grandi dimensioni. Si tratta cioè di un risolvere un problema di fattorializzazione, molto simile a quello che tutti quanti abbiamo dovuto affrontare alle scuole medie cercando il massimo comun divisore di due numeri. La differenza più evidente (ma non la più importante) è che i numeri sono enormi: da un minimo di 64 bit fino a 2048 (576 cifre digitali). Ma perchè le sfide proposte da RSA Security vertono su questo tipo di problema, invece di concentrarsi semplicemente sulla decrittazione di un testo cifrato? Perchè tutta la sicurezza di RSA dipende proprio da questo problema di fattorializzazione: le chiavi pubbliche e private usate nel processo di cifratura e di decifrazione sono appunto due numeri primi di enormi dimensioni di questo tipo. Il messaggio cifrato è appunto il prodotto di uno di questi numeri per il messaggio (OK: è un po’ strano ma ricordatevi che un “file”, od un insieme di dati digitali, è in realtà una sequenza di 0 ed 1 e può quindi essere letto come se fosse un numero). Trovare i numeri primi che “compongono” un altro numero primo corrisponde (circa) a trovare la chiave di cifratura dato il testo cifrato.

Che cosa hanno dimostrato queste sfide?

Queste sfide hanno dimostrato che per identificare chiavi molto più corte di quelle usate dal Trusted Computing occorrono risorse enormi ed enormi quantità di tempo. Ad esempio, per fattorializzare un numero primo di “soli” 640 bit (ricordiamo che il Fritz Chip usa chiavi a 2048 bit, cioè circa 3 volte più lunghe) sono stati necessari 5 mesi di calcolo (di puro calcolo! non di lavoro complessivo!) ed una rete formata da decine di migliaia di PC. Si è calcolato che questa rete, nel suo complesso, abbia impegnato risorse equivalenti a quelle di 30 PC Opteron a 2.2 Ghz che lavorassero per un anno ininterrottamente.

Tutte le sfide che riguardano chiavi più lunghe di 640 bit sono tuttora prive di un vincitore. Un progetto simile, che era orientato alla identificazione delle chiavi a 2048 bit necessarie a “sbloccare” la XboX di Microsoft, è stato abbandonato dopo circa due anni di lavoro senza ottenere alcun risultato.

In altri termini, decifrare i file ed i messaggi che vengono protetti dal Fritz Chip è un’opera che richiederebbe sicuramente delle decine di anni, e probabilmente molti secoli, anche usando una rete di computer composta da centinaia di migliaia o persino milioni di machine. A tutti gli effetti pratici, un attacco di questo tipo non è possibile.

Ad aggravare questa situazione c’è il fatto che anche se si riuscisse a decritare in questo modo una singola chiave a 2048 bit, questa darebbe accesso solamente ai file cifrati da un singolo chip. Bisognerebbe ripetere l’attacco per ogni altri chip esistente.

Anche RSA, come quasi tutti gli algoritmi di cifratura, può essere attaccato in modi più intelligenti e più “efficienti” di un semplice attacco “a forza bruta” come quello che abbiamo appena citato. Tuttavia, dieci anni di ricerca matematica e dieci anni di tentativi in questa direzione non hanno fornito risultati di particolare rilievo. Se l’implementazione dell’algoritmo è fatta con competenza (e potete star tranquilli che quella del Fritz Chip lo è) e se il sistema viene usato con attenzione (ed il Fritz Chip si occupa anche di questo), RSA è sostanzialmente inviolabile per tutte le applicazioni pratiche. Solo un grosso centro di ricerca, dotato di adeguati supercomputer, potrebbe riuscire a violare una singola chiave RSA di dimensioni molto limitate (diciamo 56 bit) in tempi utili.

Una “speranza” potrebbe venire dai progressi futuri dei quantum computer ma anche su questo non c’è da farsi particolari illusioni: un quantum computer non è un semplice oggetto digitale simile al vostro PC ed acquistabile per poche centinaia di euro al supermercato. Un quantum computer assomiglia ad un piccolo laboratorio chimico, costa come un palazzo e richiede una schiera di tecnici di alto livello per funzionare. Niente del genere entrerà nelle nostre case prima di 5 generazioni.

Potete trovare ulteriori informazioni a queste URL:

http://www.rsasecurity.com/

RSA Factory Challenge

http://distributedcomputing.info/index.html

Distributed.Net – Cryptography
Distributed.Net – risultati recenti

Cracking the XboX

e, naturalmente, a Wikipedia. Cercate i termini di vostro interesse con il suo motore di ricerca interno.

Un ottimo testo di crittografia è il mitico:

Applied Cryptography

di Bruce Schneier per John Wiley & C. Publisher

Nella seconda edizione (quella in mio possesso), RSA è trattato nelle pagine 466 e seguenti. C’è una disamina abbastanza completa dei metodi di cracking più conosciuti ed una valutazione della sicurezza di RSA di fronte ad essi.

PS: Chiedo scusa ai tecnici per la ridda di imprecisioni tecniche che affolla questo articolo. Ho cercato di spiegare le cose fondamentali a chi non ha una preparazione informatica e crittologica. Le persone che invece hanno questa preparazione sono sicuramente in grado di valutare la sicurezza del Fritz Chip in piena autonomia.