jump to navigation

Trusted Computing e DRM February 25, 2006

Posted by laspinanelfianco in DRM, Trusted Computing.
trackback

In un suo commento al mio articolo “Nei Mac pulsa il TPM” su Punto Informatico, Enzo4510 dice:

La mia obiezione è questa: ma qualcuno ha mai provato a pensare come sarebbe un computer in grado di usare il fritz chip per realizzare il DRM, sia sul software che sui contenuti multimediali?

Con “usare il fritz chip” intendo proprio un sistema la cui sicurezza si basa sull’ impossibilità da parte di un utente normale di recuperare le chiavi segrete memorizzate all’ interno del fritz chip, altrimenti parliamo di classici sistemi di protezione anticopia simili a quelli esistenti, craccabilissimi e realizzabili anche senza fritz chip.

Qui di seguito trovate una descrizione del funzionamento dei sistemi DRM di II generazione, cioè quelli basati su Trusted Computing. Non sto più a creare i links ai siti che spiegano i termini usati. Fate riferimento a Wikipedia (in inglese) per ogni dubbio.

Il Fritz Chip come strumento crittografico “General Purpose”

Il Fritz Chip (TPM) è un “semplice” processore crittografico dedicato. Da un punto di vista concettuale non è molto diverso da programmi crittografici come GPG e PGP. Il suo ruolo è semplicemente quello di cifrare e decifrare al volo documenti e flussi di dati. Oltre a questo, il TPM si occupa di generare certificati digitali con cui “fotografare” lo stato di programmi e documenti in modo che sia possibile, in seguito, verificarne l’autenticità e l’integrità. In modo analogo, il TPM è in grado di apporre delle apposite firme digitali sui documenti per certificare la loro provenienza e la loro integrità.

Di conseguenza, il Fritz chip non deve essere visto come un soldatino che resta attivamente a guardia di ciò che fa l’utente ed interviene per far rispettare le regole. Il TPM deve essere considerato una funzionalità della piattaforma, esattamente come il masterizzatore ed il suo driver. Senza questa funzionalità, non è possibile decifrare i dati che sono stati protetti con questa tecnologia, esattamente come senza masterizzatore non si può creare un CD.

DRM e Crittografia

Tutti (ma proprio tutti) i sistemi DRM esistenti e concepibili fanno uso di qualche forma di crittografia per proteggere i propri dati. Se i dati da proteggere (musica o film in formato digitale) venissero lasciati “in chiaro” non ci sarebbe nessun modo di proteggerli da copie ed abusi di vario tipo.

Per diversi anni, i sistemi esistenti hanno fatto uso di sistemi crittografici (più o meno proprietari e più o meno robusti) implementati in software (come GPG e PGP).

Alcuni di questi sistemi si sono dimostrati più robusti di altri ma tutti, indistintamente, si sono dimostrati vulnerabili a qualche tipo di attacco via software. Il motivo è abbastanza ovvio: la tecnologia attuale permette di guardare dentro il programma (usando un debugger od altre tecniche) e di metterlo alla prova fino a trovare un punto debole. Ad esempio, è possibile usare questa tecnica per identificare e copiare le chiavi di cifra memorizzate all’interno del programma. Inoltre, il programma vive in un mondo virtuale (quello creato dalla piattaforma) che può essere emulato in modo da convincere il sistema DRM a svolgere le sue funzioni di decifrazione anche quando dovrebbe rifiutarsi di farlo. Ad esempio, è una tecnica comune quella di intercettare le chiamate a certi tipi di chiavi hardware e sostituire la chiave hardware con un programma che fornisce sempre e comunque le autorizzazioni necessarie ad usare un certo prodotto.

Per questo motivo tutti (ma dico proprio tutti) gli studiosi che si occupano di DRM concordano sul fatto che non sia possibile creare dei sistemi DRM realmente inviolabili senza un adeguato supporto hardware. Il supporto hardware a cui si riferiscono è un dipositivo come il TPM od una Smart Card. Una Smart Card può essere vista come un TPM removibile.

L’importanza delle chiavi di cifra

Uno dei più famosi assiomi della crittografia è che la robustezza di un sistema di cifra deve risiedere solo (dico proprio solo) nelle sue chiavi. In altri termini deve (dico deve) essere possibile rendere pubblico l’algoritmo e la sua implementazione (il codice) senza che questo renda più semplice decifrare abusivamente (o “decrittare”, per usare la terminologia corretta) i dati che sono stati protetti con il sistema di cifra.

Nel rispetto di questo importante assioma, i più grandi ed i più diffusi sistemi di cifra sono sempre “open”: il loro algoritmo è ampiamente descritto in apposito documenti ed il codice che lo implementa è spesso “open source”. Questo è vero per DES e per quasi tutti gli algoritmi che lo hanno succeduto (quasi tutti descritti in dettaglio nel famosissimo libro “Applied Cryptography” di Bruce Schneier) ed è vero per molti programmi crittografici open source come GPG di GNU.

Tutta la sicurezza di questi sistemi (usati anche dai militari) risiede nella segretezza delle chiavi.

A questo punto, dovrebbe essere chiaro per quale motivo i progettisti di sistemi come il Trusted Computing ed i sistemi DRM ritengono di importanza fondamentale poter memorizzare le loro chiavi di cifra all’interno del TPM, invece che sul disco rigido del PC o su un altro supporto passivo.

Il TPM è un componente “attivo” in questo senso: non si può semplicemente leggere e scrivere dati al suo interno come se fosse un floppy. Il TPM si comporta come un server remoto su Internet. Prima di poter ottenere dal TPM delle informazioni (le chiavi di cifra) dovete stabilire una conversazione con il TPM stesso e dimostrare di avere diritto a quella informazione. In pratica, dovete dimostrare la vostra identità e dovete dimostrare che il software che state usando è conforme a determinate regole (stabilite dal proprietario dei dati).

Quando è necessario un database delle chiavi

Normalmente, un sistema DRM non si preoccupa di legare il consumo di un certo prodotto ad un certo, specifico dispositivo (PC o altro). Il sistema DRM si limita a “gestire” in modo opportuno la copia da un dispositivo all’altro (di solito, impedendola del tutto). Per questa sua applicazione di base, che è la tipica applicazione dei DRM che noi tutti conosciamo, il sistema DRM non ha bisogno di conoscere l’esatta identità del device utilizzato. Gli basta sapere se è quello “giusto” (quello “autorizzato”). Il sistema DRM può ottenere questa certezza grazie a dei certificati digitali che identificano la macchina, qualunque essa sia.

Esistono però dei casi in cui il sistema DRM deve essere in grado di stabilire se un certo device (PC) appartiene ad una certa classe od addirittura se il device è un certo specifico dispositivo tra milioni che sono stati prodotti. Un caso di questo tipo si è verificato con i MacIntosh basati su architettura Intel: Apple ha bisogno di spaere se l’utente sta cercando di installare il suo prezioso MacOS X su un vero MacIntel o su un comune PC Intel. Nel caso specifico, Apple ha deciso di non spingere i controlli fin dove il sistema di Trusted Computing poteva arrivare. Infatti, MacOS X può essere installato su semplici PC.

In casi come questo, per essere sicuri che il device appartiene ad una certa classe di prodotti (i MacIntel) o che si tratta di uno specifico device (il PC di un certo, specifico utente), è necessario confrontare l’identificatore univoco del TPM con un database di identificatori esterno al sistema stesso, ad esempio conservato su un server di rete. L’identificatore univoco del TPM è una chiave pubblica RSA a 2048 bit che viene generata dal TPM stesso al momento della sua produzione.

Senza questo controllo non si può essere sicuri che il TPM sia un vero TPM. Potrebbe trattarsi di un emulatore software o di un TPM prodotto in modo artigianale (FPGA) a scopi illegali. Senza questo controllo, diventa possibile installare MacOS X su qualunque cosa che contenga un TPM, vero od emulato. Senza questo controllo, qualunque dispositivo dotato di TPM, vero od emulato, è uguale a qualunque altro.

Questo non vuole assolutamente dire che senza questo controllo di identità sia possibile decifrare abusivamente i dati protetti da sistema TC. Vuol solo dire che è possibile decifrarli dovunque (se si è in grado di rispettare le condizioni di sicurezza imposte dal proprietario dei dati). La sicurezza dei dati non viene messa in discussione.

Gli altri elementi “pro-DRM” del Trusted Computing

Nell’ambito di questo discorso è necessario anche ricordare che il solo TPM non è tutto il Trusted Computing. I sistemi Trusted Computing che vedremo realmente sul mercato PC nei prossimi anni sono qualcosa di molto più ampio e complesso. Si tratta di sistemi che usano il TPM per le loro esigenze crittografiche ma che aggiungono allo schema iniziale delle risorse come la curtained memory ed il protected I/O che sembrano essere (e forse sono) stati concepiti appositamente come strumenti DRM ausiliari.

Un ipotetico sistema DRM di II generazione per la protezione dei contenuti

A questo punto, dovrebbe essere chiaro come saranno fatti i sistemi DRM di II generazione. Si tratterà di sistemi DRM assolutamente identici a quelli esistenti con due sole importantissime differenze:

  1. le operazioni crittografiche verranno delegate al TPM, molto più potente, sicuro e veloce di qualunque programma. Il TPM verrà usato anche per soddisfare le esigenze crittografiche dell’utente (non ci sarà più bisogno di GPG, quindi).
  2. le chiavi di cifra verranno conservate al sicuro dentro il TPM. Non ci sarà mai bisogno di estrarle dalla loro sede, visto che è il TPM stesso ad eseguire le operazioni crittografiche.

Queste due caratteristiche sono sufficienti a far fare un salto in avanti impressionante ai sistemi DRM. Se sfruttati per quello che possono offrire (e non alla maniera di Apple) i sistemi DRM basati su Trusted computing possono essere inviolabili sia dal punto di vista pratico che da quello teorico.

Un (mica tanto) ipotetico sistema di protezione del software basato su TC

Nello stesso modo, è abbastanza ovvio come saranno fatti i sistemi di protezione anticopia del software della prossima generazione. Questi sistemi saranno molto, molto simili a quello usato da Windows XP (il famoso sistema di “certificazione” della macchina) con una sola differenza importantissima: non sarà più il programma di installazione a creare il “certificato” sulla base del quale verrà emessa la licenza d’uso del software, sarà il TPM a generare questi certificati.

Nel caso che fosse necessario restingere l’uso di qualcosa (sistema operativo, programma, contenuti multimediali o servizi di rete) ad una specifica classe di macchine (solo i MacIntel) o ad una specifica macchina, sarà necessario creare un apposito database delle chiavi RSA che identificano i TPM. Diversamente, come abbiamo detto, si potrebbe sempre emulare il TPM e spostare tutto il sistema su una piattaforma diversa da quella prevista (come è appunto già avvenuto con MacOS X).

Spero di avere chiarito qualche dubbio su questi punti. Se avete qualcosa da dire, o da chiedere, ricordatevi dello spazio “commenti” qui sotto.

Comments»

1. Op15L - February 26, 2006

bell’articolo,
cmq usare FPGA non mi sembra conveniente, ora come ora non sono molto economici, (senza contare le schede di interfaccia)

2. Furex - February 27, 2006

Attenzione, il link a wikipedia a me risulta errato (riporta al blog)

3. Blog navigabile a history » Trusted Computing e DRM - March 17, 2006

[…] Questo post è tratto da: Trusted Computing e DRM, 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: