jump to navigation

Crackare il Fritz Chip January 29, 2006

Posted by laspinanelfianco in Trusted Computing.
12 comments

Di questo argomento ho già parlato in diverse occasioni ma vedo che sono ancora in molti a cullarsi nella illusione che sia possibile crackare il Fritz Chip, così come è avvenuto per molti sistemi DRM in passato, per cui ho deciso di occuparmene di nuovo.

Differenza tra Trusted Computing e sistemi DRM

Un sistema DRM è qualcosa di statico e di definito. Di solito è un aggeggio costruito solo in software e funziona in questo modo:

  1. Il materiale che deve essere protetto viene cifrato (“crittografato”) in modo che sia leggibile solo da un certo programma. Il sistema di cifra è scelto una volta per tutte e non può essere cambiato con facilità.
  2. Il programma viene scritto in modo tale che si prenda cura dei diritti del produttore secondo i criteri imposti da produttore stesso. Il programa contiene sia l’implementazione del sistema di cifratura che le chiavi di cifra.
  3. Di solito, dopo un po’ arriva qualcuno più sveglio della media che riesce a fare il reverse engineering del programma originale, riesce a capire come accedere alle chiavi e quindi crea un nuovo programma “alternativo” che permette di consumare liberamente il contenuto del file infischiandosene dei criteri imposti da suo produttore.

Viceversa, un Sistema Trusted Computing è qualcosa di molto più fondamentale (“vicino alle fondamenta del sistema”), e soprattutto è qualcosa di dinamico e di continuamente mutevole. Di solito è un aggeggio composto sia da hardware che da software e funziona più o meno in questo modo.

  1. Il computer mette a disposizione dei programmi una serie di funzionalità crittografiche (implementate in hardware) che permettono di cifrare e decifrare al volo file e flussi di dati. Il computer mette anche a disposizione una “cassaforte” hardware dove conservare le chiavi (fuori dalla portata dell’utente del PC e dei suoi programmi!).
  2. Su queste funzionalità di base, i programmi creano ognuno il proprio sistema DRM: un sistema diverso per ogni programma, una chiave diversa per ogni PC e persino per ogni file. Il sistema di cifra è definito una volta per tutte e non può essere cambiato ma è implementato in hardware, fuori dalla portata di un hacker. Inoltre, esiste una chiave diversa per ogni oggetto da proteggere e questa chiave è conservata all’interno del Fritz Chip, inaccessibile a chiunque (persino al programma originale!). Una chiave diversa per ogni oggetto significa anche che sproteggere l’oggetto A non permette di accedere a nessuno degli oggetti B, C, D, etc. che sono protetti con lo stesso sistema ma con una chiave diversa.
  3. Il furbacchione di prima a questo punto si trova in guai seri perchè sia il sistema di cifra che le chiavi sono all’interno del Fritz Chip e non ne escono mai. Andare a ficcanasare dentro il Fritz Chip è quasi impossibile, persino per laboratori di fisica ben attrezzati. Come se non bastasse, se anche si riuscisse a “crackare” un singolo Fritz Chip, il lavoro fatto servirebbe solo ad accedere ai file gestiti da quel Fritz chip. La vittoria non sarebbe in alcun modo trasferibile ad un altro PC.

Il vero ruolo del Fritz Chip

Il Fritz Chip, quindi, non deve essere visto come un “soldatino” che viene messo a guardia del PC, sconfitto il quale ogni risorsa presente sul PC (musica, film, software) diventa magicamente e completamente accessibile.

Il Fritz Chip è il fornitore (blindato ed affidabile) di una funzionalità chiave (la decifrazione del file) in assenza della quale nessuna risorsa protetta del PC è accessibile.

Cosa dovrebbe voler dire “crackare il Fritz Chip”?

Cosa dovrebbe voler dire allora, “crackare il Fritz Chip”? “Ammazzare” il Fritz Chip, in un modo o nell’altro, non risolverebbe nessuno dei nostri problemi. Il Fritz Chip ci serve vivo e vegeto.

Il problema semmai è quello di convincerlo a “tradire” i suoi padroni esterni (il produttore del software o dei contenuti che ci interessano) ed a lavorare per noi. Ma come si fa?

Ovviamente, non lo si può “torturare” e bisogna quindi ingannarlo. Tecnicamente, si tratta di fargli credere che sta ancora servendo fedelmente i suoi padroni mentre invece sta agendo nel nostro interesse. Per fare questo, tuttavia, è necessario riuscire a creare una delle seguenti “illusioni”.

  • Far credere al Fritz Chip che siamo una persona od un programma diverso da quello che siamo.
  • Far credere al Fritz Chip che si trova in una situazione di assoluta sicurezza quando questo non è vero.

Per questo motivo, il Fritz Chip è protetto da due sistemi di importanza fondamentale:

  • L’hashing, cioè un processo che gli permette di riconoscere programmi ed utenti sulla base di una apposita firma digitale non falsificabile
  • L’attestazione del sistema, cioè un processo che gli permette di verificare l’integrità e la affidabilità di tutta la baracca (hardware, sistema operativo, BIOS, programmi, utente, etc.), sia localmente (il vostro PC) che remotamente (il PC di un’altra persona, collegato in rete al vostro).

L’implementazione pratica di questi due dispositivi si basa sull’uso dello stesso Fritz Chip. Il sistema crittografico e le chiavi usate per queste funzionalità risiedono all’interno del Fritz Chip e non sono accessibili, esattamente come nel caso precedente. Il Fritz chip è in grado di creare da solo tutta la “fiducia” di cui ha bisogno, esattamente come farebbe un pignolo ed intelligente agente segreto umano. Non è quindi possibile interferire con questo meccanismo “autorefenziale.”

A questo punto, dovreste aver già capito come stanno le cose: di fronte a questo sistema non c’è niente da fare.

Conclusioni

Non è tecnicamente corretto parlare di “crackare il Fritz Chip”. Semmai si tratta di ingannarlo. Sfortunatamente per i pirati, il Fritz Chip è molto ben protetto contro gli inganni. Possiamo dire che tutta la sua importanza risiede proprio nella sua capacità di resistere agli inganni e di creare un “perimetro di fiducia” basato su criteri logici e tecnici, non sulle impressioni delle persone.

Una possibile alternativa potrebbe consistere nel riprodurre (clonare) un intero Fritz Chip, in modo che il software che ne ha bisogno lo trovi al suo posto quando è necessario, tralasciando tuttavia di implementare le funzionalità di sicurezza tipiche del Fritz Chip (chiavi ci cifra inaccessibili, etc.). Clonare un chip, tuttavia, è molto meno semplice di quello che potrebbe sembrare. Si tratta di un processo produttivo che richiede una costosa e complessa attrezzatura per cui è sostanzialmente fuori dalla portata pratica degli hacker.

Questo Sistema è Trusted Computing? January 29, 2006

Posted by laspinanelfianco in Trusted Computing.
5 comments

OK, mia zia mi ha regalato 500 euro per il mio compleanno. Li metto insieme ai 500 che ho guadagnato facendo il sito web del fornaio e mi infilo da MediaWorld per comprarmi un nuovo PC. Questo laptop qui, della SeAvessiUnNomeNonSareiQuiAPerdereTempoConTe, sembra a posto. Ma è “libero” od è Trusted Computing? Come faccio a scoprirlo?

Il modo più semplice in assoluto di scoprirlo sarebbe quello di eseguire sul PC del software che richiede il supporto per il TC e vedere se funziona. Un player multimediale che usa un sistema DRM basato su TC sarebbe un ottimo strumento di test. Purtroppo (o per fortuna), in questo momento non è ancora disponibile niente del genere e bisogna arrangiarsi in altro modo.

Il Trusted Computing consiste fisicamente di questi componenti:

  1. Un chip crittografico (TPM, noto anche come Fritz Chip) saldato sulla motherboard o, in alternativa a questo chip, l’equivalente della sua “circuiteria” e delle sue funzionalità “integrate” (“annegate”) all’interno della CPU, come avverrà per alcune CPU di Intel, AMD, IBM, ARM e TransMeta.
  2. Un BIOS (o qualcosa di equivalente) in grado di attivare e gestire il Fritz Chip
  3. Un Sistema Operativo dotato (come minimo) dei driver necessari a pilotare il Fritz Chip
  4. Dei programmi applicativi (come M$ MediaPlayer o M$ Office) che siano in grado di sfruttare le funzionalità offerte dal TC.

Di conseguenza, per sapere se un “sistema” (PC+software) è “Trusted Computing” è necessario verificare se dispone di una o più di queste funzionalità. Ecco come si può fare.

Verificare la presenza del Fritz chip

Se è possibile aprire la macchina e controllare la motherboard, basta cercare un chip prodotto da uno dei sei produttori di Fritz chip (IBM, Atmel, Infineon, etc.). Se si trova un “ragnetto” con stampato sopra TPM, il sistema è certamente Trusted Computing.

Se non si trova niente del genere, non è detto che il sistema sia “libero”. Il Fritz Chip potrebbe essere irriconoscibile (privo di marchi) o addirittura integrato nella CPU. In questo caso, è necessario verificare se il TPM è raggiungibile via software e, per fare questo, è necessario un sistema operativo dotato dei necessari driver.

In questo momento, stranamente, l’unico S.O. dotato di driver per il TPM è Linux (dal kemel 2.6.12 in poi). Di conseguenza, si può installare una distro Live di linux come Knoppix e verificare se il driver del TPM integrato nel kernel riporta uno stato di “TPM Presente”.

Per fare questa verifica occorre pasticciare un po’ dalla linea di comando, per cui mi auguro che qualcuno scriva un aggeggino software adatto per semplificare questo compito. In questo momento, un modo più semplice di portare a termine la nostra verifica consiste nel verificare cosa fa il BIOS.

Verificare la compatibilità TC del BIOS

Per varie ragioni, il BIOS deve essere in grado di attivare e disattivare il Fritz Chip (anche se è presente sulla macchina nella forma “annegata” nella CPU) e di gestirne alcune altre funzionalità. Se al momento del lancio entrate nel sistema di gestione del BIOS (premendo il tasto indicato dal sistema durante l’avviamento), potete verificare se il BIOS dispone delle funzionalità necessarie per pilotare il Fritz Chip.

Se queste funzionalità sono presenti, ed il BIOS non vi restituisce un errore del tipo “hardware assente” o “TPM assente”, allora il vostro sistema è certamente Trusted Computing.

Verificare la compatibilità TC del Sistema Operativo

Un S.O. compatibile con il Trusted Computing deve mettere a disposizione dell’utente una serie di funzionalità specifiche, tra cui quelle necessarie per “prendere possesso” del sistema attraverso una procedura nota come “Take Ownwership”, quelle necessarie per generare chiavi crittografiche per gli utenti e quelle necessarie per crittografare file e canali di comunicazione. In particolare, tutte le funzionalità legate alla creazione ed alla gestione degli utenti saranno sottoposte all’autorità del Trusted Computing e dovranno disporre dei necessari strumenti di controllo. Queste funzionalità saranno disponibili dal “Pannello di Controllo” del S.O., raccolte o meno all’interno di un folder “Trusted Computing”, e/o all’interno del folder dedicato alla gestione degli utenti.

Rovistando all’interno del pannello di controllo del S.O. è possibile verificare se sono presenti queste funzionalità. Provando ad usarne una (cum grano salis) è possibile verificare se queste funzionalità dispongono del necessario supporto hardware. Se, ad esempio, riuscite a generare e memorizzare una chiave nel TPM, allora il vostro sistema è certamente Trusted Computing.

Verificare la compatibilità TC del software applicativo

Come dicevo all’inizio, se riuscite ad installare ed utilizzare un programma che richiede il Trusted Computing, allora il vostro sistema è certamente compatibile con il TC.

Kit di verifica per la compatibilità Trusted Computing

Dato che su Linux sono presenti i driver per i Fritz chip IBM, Atmel ed Infineon, mi aspetto che a breve qualcuno scriva gli strumenti di testing necessari per verificare il grado di compatibilità di un PC con il Trusted Computing, magari sotto forma di Live CD. Se il progetto vi piace, datevi da fare perchè io, personalmente, non ho nessuna intenzione di mettermi all’opera. Potete trovare il materiale necessario qui:

http://sourceforge.net/projects/tpmdd/

http://www.research.ibm.com/gsal/tcpa/

https://developer.berlios.de/projects/tpm-emulator/

Una nota per gli utenti Apple: per quanto mi risulta, tutti i nuovi MacIntosh con CPU intel sono da considerarsi Trusted Computing a tutti gli effetti, dato che dispongono sia del TPM (usato per impedire che McOS X venga installato su plebei PC Intel) che dei relativi driver.

NOTA: Con i sistemi Trusted Computing, sarà necessario “abilitare il sistema” e “prenderne possesso” al momento del primo avviamento. Questo vuol dire che ci sarà qualche complicazione aggiuntiva per i negozi ed i supermarket che vogliono esporre sistemi funzionanti e farli provare all’utente. I dettagli non possono essere previsti in questo momento ma è logico consigliare una certa cautela nel trattare con questi sistemi quando arriverano sul mercato.