jump to navigation

Il Trusted Computing può essere violato? January 2, 2006

Posted by laspinanelfianco in Trusted Computing.
3 comments

Ormai sono in molti a chiederselo: questo diabolico aggeggio può essere violato? Ci libereremo del Trusted Computing nello stesso modo, elegante e risolutivo, con cui Jon Lech Johansen (aka DVD Jon) ci ha liberati del sistema di protezione CSS (Content Scrambling System) dei DVD? O ci toccherà invece subire a questo sopruso tecnologico?

Non è facile risponedere a questa domanda. Il Trusted Computing non è un semplice sistema di protezione crittografica dei contenuti (cioè un sistema DRM) come il CSS o come il sistema DRM usato da iTunes (e violato sia da DVD Jon che da RealNetworks). I sistemi DRM “normali” si limitano a cifrare i dati, rendendoli accessibili solo a utenti e programmi che siano in possesso delle necessarie chiavi di decifrazione. L’attacco a questi sistemi è sempre possibile, almeno in linea di principio, con varie tecniche di crittoanalisi (attacco a forza bruta, attacco con testo in chiaro, attacco basato su analisi statistiche, etc.). Proprio queste tecniche “classiche” hanno reso possibile la violazione del CSS e del sistema DRM di iTunes.

Il Trusted Computing è qualcosa di molto diverso. Il Trusted Computing si basa principalmente sulla presenza di un apposito chip crittografico sulla scheda madre del dispositivo (in futuro, questo chip verrò addirittura “integrato” nella CPU), il cosidetto “Fritz Chip”. Questo chip fornisce le seguenti funzionalità ai programmi che girano sul PC.

  1. Il chip è identificato in modo univoco da una chiave crittografica RSA (quasi impossibile da falsificare).
  2. Il chip è in grado di generare nuove chiavi RSA per vari impieghi, anch’esse quasi impossibili da falsificare.
  3. Il chip è in grado di cifrare e decifare in tempo reale flussi di dati e file usando vari protocolli (DES, RSA e via dicendo). I materiali cifrati in questo modo sono quasi impossibili da decifrare con tecniche crittoanalitiche.

In pratica, quindi, il Trusted Computing non è un “semplice” sistema DRM (Digital Rights Management), come CSS, ma piuttosto un oggetto “intelligente” che fornisce ai sistemi DRM i necessari servizi crittografici. In questo senso, si comporta come un server esterno il cui contenuto è accessibile solo attraverso la rete. Per ingannare questo “server” sarebbe necessario riuscire a fare una di queste due cose:

  1. spacciarsi per il programma legittimo e farsi consegnare dal chip le chiavi necessarie a decifrare i file ed i flussi di dati
  2. decifrare le comunicazioni che intercorrono tra il chip ed i programmi che usano i suoi servizi.

La prima tecnica di attacco è quasi impossibile da mettere in atto perchè il chip identifica i programmi con cui interagisce usando delle chiavi RSA (degli “hash”) che dipendono dalla struttura interna del loro file (in RAM o sul disco). Trovare due programmi, entrambi funzionanti, che una volta analizzati dal chip restituiscano la stessa chiave è praticamente impossibile.

La seconda tecnica di attacco è resa molto difficile da applicare dal fatto che la chiave usata per cifrare le comunicazioni cambia in continuazione (viene generata dal chip). Non basterebbe intercettare il flusso di dati ed analizzarlo (magari con un bel cluster Linux). La volta successiva il flusso di dati sarebbe cifrato con un’altra chiave ed il nostro lavoro si rivelerebbe inutile.

In ultima analisi sembra molto difficile che i Fritz Chip possano essere violati con le tecniche già usate per il CSS ed il sistema DRM di iTunes.

Una tecnica di attacco alternativa potrebbe essere quella di sfruttare la procedura di “migrazione delle chiavi”, prevista per i backup, allo scopo di trasferire le chiavi del chip su un nuovo chip “emulato” (in hardware od in software). Il secondo chip potrebbe essere costruito in modo tale da permettere poi la clonazione delle chiavi all’infinito, in aperta violazione delle specifiche di base del Trusted Computing.

Questa tecnica dovrebbe però essere analizzata a fondo da qualcuno che abbia pratica di chip FAPG o ASIC o di emulatori software.

Coloro che volessero fare qualche esperimento, possono usare l’emulatore di fritz chip disponibile a Berlios: https://developer.berlios.de/projects/tpm-emulator .