La storia del break dell’AACS
Cap. 1 – Come funziona l’AACS (Advanced Access Content System)
Nota: aggiornato al 18/5/07 per includere le informazioni utili a capire la revoca.
La figura che segue mostra un diagramma semplificato, ma sufficiente per i nostri scopi, del funzionamento dell’AACS nel caso di un player software (come Power DVD). Rappresenta il colloquio tra il disco contenente il film (a sinistra) ed il player (a destra), durante il processo di decrittazione dei contenuti del film.
http://img504.imageshack.us/img504/3025/hosttn8.png
Il processo è il seguente:
-il player contiene una o più Device Key, che identificano univocamente un particolare player software (programma per PC); le Device Key possono essere revocate, impedendo a quel player di leggere i dischi futuri (cioè quelli emessi dopo la revoca);
-il player legge dal disco un file chiamato MKB (Media Key Block):
-- l’MKB contiene delle istruzioni che permettono al player, usando la Device Key, di entrare in possesso di un’altra chiave (o set di chiavi), detta Processing Key; esistono moltissime Processing Key, ma ogni player ne può ottenere solo alcune, in base all’MKB; cambiando le istruzioni dell’MKB, i player possono essere revocati (solo per i dischi futuri, con l’MKB variato): in pratica gli si permette di ottenere solo Processing Key che non consentono di continuare il processo di decrittazione;
-- ottenuta la Processing Key, il player prende dall’MKB un altro dato, il valore-C (C-value), che in pratica è la Media Key criptata, e la decripta con la Processing Key, ottenendo la Media Key (Km nella figura), che è la chiave associata a ciascun film;
-il player utilizza la propria Host Private Key (un'altra chiave tipica di ciascun player) ed un certificato (Host Certificate) firmato dall'AACS-LA per autenticarsi con il disco ed ottenere da questo la Volume ID, una specie di etichetta del film, che, usata insieme alla Media Key, genera la Volume Unique Key (Kvu nella figura), unica per ogni film; questo ulteriore apparentemente inutile passaggio serve ad impedire la copia bit-per-bit del disco, in quanto la Volume ID è fuori dallo spazio file del disco, e viene ottenuta dal player con un comando READ DVD STRUCTURE, accettato solo se il player ha un Host Certificate rilasciato dall’AACS-LA; quindi se si copia il disco, la Volume ID non viene copiata e la copia non funziona; anche le HPK possono essere revocate, impedendo al player di autenticarsi con i dischi, sia precedenti che successivi alla revoca;
-il player usa la Volume Unique Key per decrittare la(e) Title Key (Kt nella figura) scritta(e) in maniera criptata sul disco; ci possono essere una o più Title Key, che decrittano parti diverse del contenuto;
-il player usa la(e) Title Key per decrittare il contenuto del disco e finalmente (HDCP permettendo) possiamo vedere il film.
Cap. 2 – muslix64: sogno o realtà ?
6/12/2006: un “consumatore infuriato”, come egli stesso si definisce, noto con lo pseudonimo di muslix64, compra il lettore HD DVD della XBOX 360 con un film HD DVD e lo collega al PC, ma si accorge che ben due player software non gli consentono di vedere il film, perchè la sua scheda video non è HDCP e il suo monitor è DVI. Si infuria e decide di decrittare il film. Legge le specifiche AACS pubblicamente disponibili in Rete e comincia a lavorare...
13/12/2006: muslix64 si concentra sulle Title Key; scopre con sorpresa che, usando WinDVD versione giapponese, le Title Key si trovano nella memoria del PC. Così decritta il suo primo film.
18/12/2006: muslix64 pubblica su YouTube un video che mostra la decrittazione del film; il titolo ? "AACS is Unbreakable" ovviamente.
20/12/2006: muslix64 pubblica la prima versione di un programma in Java, BackupHDDVD, realizzato con le informazioni pubbliche sull’AACS, che, qualora gli si fornisca la Title Key, decritta un film HD DVD.
27/12/2006: muslix64 apre un thread su BackupHDDVD su un noto sito di conversione DVD e si apre il dibattito.
Tuttavia, mulsix64 si rifiuta categoricamente di fornire le Title Key e persino di dare indizi sul metodo con il quale le ha trovate ed estratte dalla memoria del PC. Ciò genera molta diffidenza. Ci si chiede: ma è vero ?
4/1/2007: qualcuno usa il termine “miglior bufala (best hoax) del 2006, forse del 2007”.
Cap. 3 – Rovistare nella spazzatura: la riscossa di muslix64
13/1/2007 ore 00.26: un certo LordSloth, per confermare la validità di BackupHDDVD, pubblica un link con una lista di 16 argomenti variegati, che vanno da Mark Twain alla periodicità solare alle strategie edilizie e nulla sembrano aver a che fare con l’AACS. Viene contestato e deriso, ma insiste che si tratta di una “scavenger hunt”, letteralmente una “caccia alle carogne”, o “rovistamento nella spazzatura”, una specie di caccia al tesoro dove devi entrare in possesso di una cosa senza acquistarla. Viene ammonito ben 2 volte dal moderatore per OT.
13/1/2007 ore 01.38: ma nel frattempo, un certo Janvitos cerca i 16 argomenti con Google, per ciascuno prende il numero di 2 o 3 cifre che appare nel primo risultato e lo traduce in esadecimale. Ottiene così la seconda Title Key di Serenity, la prima chiave AACS pubblicata nella storia.
13/1/2007 ore 02.54: conoscendo una Title Key, viene individuato il file di WinDVD che la contiene.
13/1/2007 ore 03.00: viene pubblicata la posizione in memoria di WinDVD della tabella di tutte le Title Key (Kt) e della Volume Unique Key (Kvu).
13/1/2007 ore 04.58: muslix64 ricompare dicendo: “visto che non era un a bufala ?”; è la sua riscossa.
20/1/2007: muslix64 comunica di aver decrittato il suo primo BD, dimostrando che la vulnerabilità dell’AACS non è limitata agli HD DVD.
Oggi è possibile trovare in rete le Volume Unique Key (Kvu) di oltre 150 titoli (soprattutto americani) HD DVD e BD, consentendo ai legittimi possessori sia la copia che la visione con apparati privi di HDCP.
Cap. 4 – E se il player viene revocato ? oltre muslix64
Il lavoro di muslix64 e compagni ha inferto un duro colpo all’AACS, ma non l’ha messo KO. I film HD DVD e BD già pubblicati sono irrimediabilmente compromessi, ma il sistema aveva previsto la defaillance dei player (già accaduta con i DVD e il famigerato player Xing) e la possibilità di rimettere al sicuro quanto meno i dischi di futura pubblicazione. Per revocare il player compromesso, basta cambiare l’MKB dei futuri dischi, in modo da impedire (solo) al player revocato di raggiungere le Processing Key che consentano di ottenere la Media Key, interrompendo il processo di decrittazione. Senza player “bucato” non è possibile leggere le Volume Unique Key in memoria e l’AACS torna sicuro.
Temendo questa contromisura, molti hanno cominciato a cercare un metodo di break dell’AACS che non necessiti della lettura della memoria di un player, rendendo vana la revoca.
5/2/2007: un certo arnezami dichiara di aver trovato la Volume ID di King Kong HD DVD e aggiunge che non sembra crittata e neanche casuale, visto che coincide con la data/ora di produzione del film. Dal primo post si vede che la Volume ID insieme alla Media Key permette di ricavare la Volume Unique Key, che poi consente di decrittare tutto il film. La speranza di arnezami è che la Media key sia eguale in tutti i film; se fosse così basterebbe che uno qualunque nel mondo la trovasse una volta sola per decrittare tutti i film HD DVD e BD esistenti fino ad eventuale cambio della Media Key. E, anche in quel caso, basterebbe di nuovo che uno solo nel mondo... Tutto ciò senza leggere la memoria di alcun player e senza che sia possibile revocare alcunchè.
6/2/2007: appare chiaro che le Media Key sono diverse da film a film; non è possibile utilizzare l’unica Media Key per decrittare tutti i dischi; l’attenzione si sposta sulla Processing Key, sperando che questa sia unica; in tal caso, con la Processink Key unica ed il C-value preso dal disco, si dovrebbe ottenere la Media Key e quindi, in cascata...
7/2/2007: sono state trovate le Volume ID di diversi HD DVD ed è ormai evidente che sono testo in chiaro: in genere contengono il nome del film, la data/ora di produzione, etc...; le Volume ID non sono però direttamente leggibili sul disco, per i motivi esposti nel primo post, ma vengono ricavate “sniffando” il collegamento USB tra il player HD DVD della XBOX 360 e il PC;
9/2/2007: viene trovata la Volume ID del primo BD: questa sembra però avere un valore random; si brancola nel buio.
Cap. 5 – La gloria di arnezami
11/2/2007 ore 07:23: arnezami trova la Media Key di King Kong HD DVD; sente di essere vicino alla meta;
11/2/2007 ore 13:17: arnezami annuncia di aver trovato la Processing Key usando King Kong HD DVD; sarà unica per tutti i dischi ? chiede la verifica su film diversi da King Kong;
11/2/2007 ore 14:09: arriva la conferma sui film The Departed e Spy Game; arnezami pubblica la Processing Key, valida per tutti gli HD DVD;
13/2/2007: arriva la conferma che la Processing Key funziona anche sui Blu Ray: per la cronaca, il primo film decrittato così è Talladega Nights, il secondo è The House of Flying Daggers;
E’ il de profundis dell’AACS. La data 11/2/2007 passa alla storia della lotta contro i sistemi DRM. Qualcuno si spinge a commentare che la storia che ho riassunto è più avvincente di qualsiasi film in HD pubblicato finora.
Cap 7: Trovata anche (una) Device Key di WinDVD8
24/2/07 ore 20:25: un certo ATARI Vampire, che si definisce emule di muslix64, Janvitos e arnezami, dichiara di aver trovato la Device Key di WinDVD8. Chiede la conferma.
24/2/07 ore 23:22: arnezami conferma: applicando alla key di ATARI Vampire l'algoritmo AES-G3, si ottiene la Processing Key trovata da arnezami. Quindi si tratta di una sub Device Key di WinDVD8, probabilmente l'ultima dell'albero che parte dalla Device Key principale.
Conseguenze: è adesso possibile scrivere un player free di HD DVD e BD che funzionerà per sempre per tutti i titoli usciti fino adesso e per tutti quelli che usciranno prima che l'AACS-LA si decida a revocare la Device Key di WinDVD 8.
Stay tuned per la prossima chiave scoperta.;)
Michele
Cap. 8 - Trovata la Private Host Key di PowerDVD 7.1
Ed è arrivata la scoperta dell'ennesima chiave.
4/3/07 ore 00:51: un certo jx6bpm inaugura la sua partecipazione alla discussione sull'AACS con la dichiarazione di aver trovato la Private Host Key di un qualche PowerDVD. Chiede conferme.
4/3/07 ore 02:02: arnezami conferma; la chiave privata fornita da jx6bpm corrisponde alla chiave pubblica; è probabilmente un PowerDVD 7.x.
4/3/07 ore 18:43: dopo alcune conferme incrociate, si ha la certezza: è la Private Host Key di PowerDVD 7.1.
Cosa comporta la scoperta di quest'ulteriore chiave ? Intanto occorre sottolineare che non si tratta di una semplice (sub) Device Key, come quella di WinDVD8 la cui scoperta è descritta nel capitolo precedente. Questa è una chiave privata, che consente al player software di autenticarsi con il disco e di ricevere l'agognata Volume ID, che, insieme alla Processing Key, già trovata, consente di decrittare tutto il contenuto.
In pratica, ciò significa che non è più necessario sniffare la Volume ID sulla connessione USB con il driver della XBOX, e che è possibile creare un player indipendente free multipiattaforma.
Arrivederci alla prossima chiave.
Michele
Cap. 9 - Ottenuta Volume ID senza Host Private Key
Ci eravamo appena abituati alla disponibilità della Host Private Key di PowerDVD 7.1 e avevamo cominciato a chiederci cosa sarebbe successo se (quando) sarebbe stata revocata, ed ecco che:
5/3/07 ore 21:38: arnezami annuncia che, seguendo un suggerimento di KenD00, è riuscito a costruire un software che estrae in maniera affidabile la Volume ID dal disco, usando qualunque player e senza bisogno di conoscere la Host Private Key.
La tecnica utilizzata sfrutta un grosso "buco" dell'AACS: il bus di comunicazione tra disco e player non è criptato.
Cosa significa ? Per ottenere la Volume ID non c'è più bisogno di sniffare la connessione USB e neppure di avere la Host Private Key, che quindi può essere tranquillamente revocata.
Ora esiste quindi una tecnica di back-up da utilizzare per ottenere la Volume ID nel caso che la Host Private Key venga revocata.
Ricordo che, per decrittare i contenuti, oltre alla Volume ID, serve anche la Processing Key, allo stato nota per tutti i dischi HD DVD e BD sul mercato, ma che l'AACS-LA potrebbe (dovrebbe) cambiare nei nuovi dischi.
La ricerca continua.
Michele
Cap. 10 - Ottenuta Volume ID senza autenticazione AACS
4/4/07 ore 01:06: Geremia annuncia che, dopo 2 mesi di duro lavoro (di cui le ultime due settimane quasi “senza dormire”) è riuscito ad ottenere la Volume ID da un HD-DVD senza bisogno di autenticazione AACS; l’approccio è consistito nell’operare un hack al firmware del lettore HD-DVD della XBOX 360 (dissaldando la ROM, leggendola, modificando il firmware e risaldandola), in modo da leggere la struttura del disco senza autenticarsi.
Che significa ?
Che non è più necessario avere una Host key non revocata per ottenere la Volume ID (che, ricordo, insieme alla Processing Key, genera la Volume Unique Key, che “apre” tutto il film); in questo momento, in cui si aspetta il “nuovo” AACS con le chiavi revocate, è una notizia importante; anche se l’AACS-LA revoca le Host Private Key compromesse, sarà sempre possibile ottenere le VUK.
Precedentemente (vedi post precedenti) erano stati trovati altri metodi più "ruspanti" per ottenere la Volume ID senza Host Private Key, ma questo è molto più significativo dal punto di vista concettuale: è la prima volta che viene operato un break di una protezione strettamente AACS; i break precedenti avevano sfruttato vulnerabilità dei player software o del collegamento lettore-PC.
Inoltre, poichè le liste di revocazione (almeno per host e drive) stanno sul disco, questo risultato apre le porte ad attacchi contro il baluardo più robusto dell'AACS: il sistema di revocazione (ricordo che il CSS dei DVD fu battutto in un colpo solo proprio perchè non prevedeva sistemi di revocazione).
In parole semplici, si può dire che operando un hack sul firmware del lettore si può fargli fare quello che vogliamo noi piuttosto che quello vuole l'AACS.
P.S. - Mi rendo conto che la vicenda diventa sempre più complessa e oscura, ma purtroppo i progettisti dell'AACS, nel tentativo di renderlo più sicuro, lo hanno reso solo molto complesso e farraginoso.
Cap. 11 - Arriva la prima revoca; ma nasce morta!
11/5/07: sul forum di SlySoft viene segnalato che AnyDVD HD 6.1.4.3 non riesce ad eliminare l’AACS dai dischi 2 e 3 della nuova trilogia di Matrix su HD DVD (versione USA). E’ arrivata la prima revoca.
Come funziona ? Nell’AACS esistono diversi meccanismi di revoca. I tre principali sono:
- revoca implicita: revoca la/e Processing Key e la/e Device Key; ; funziona solo per i dischi nuovi (emessi dopo la revoca); è basata sulla modifica dell’MKB (Media Key Block) e della sua struttura ad albero; i nuovi dischi non contengono chiavi revocate (da qui la dicitura “implicita”), ma un nuovo albero binario che rende le vecchie PK non più “matematicamente” utili per continuare il processo di decrittazione;
- revoca esplicita del player: revoca le Host Private Key e Host Certificate dei player, che servono ad autenticarsi con il disco per ottenere la Volume ID; funziona su tutti i dischi (vecchi e nuovi); è basata sulla HRL (Host Revocation List): i dischi nuovi contengono una lista di chiavi host revocate che viene conservata sul lettore;
- revoca esplicita del drive: revoca le Drive Private Key dei drive; funziona su tutti i dischi (vecchi e nuovi); è basata sulla DRL (Drive Revocation List): i dischi nuovi contengono una lista di chiavi Drive revocate che viene conservata sul lettore (il lettore si “autodenuncia” al player dicendogli “io non sono affidabile”).
L’esame della revoca mostra che il terzo meccanismo non è stato utilizzato (i lettori HD DVD della XBOX 360 sono salvi!). La revoca, ancora sotto studio, comprende in linea di massima:
- una revoca implicita. ottenuta con il passaggio dell’MKB da v.1 a v.3; si passa dalla vecchia Processing Key unica, ad un set di nuove PK;
- una revoca esplicita di alcuni player (tra cui Power DVD), ottenuta con una Host Revocation List di alcune Host Private Key.
16/5/07: SlySoft annuncia che la versione 6.1.5.1 Beta di AnyDVD HD è in grado di decodificare il nuovo AACS;
17/5/07: arriva la conferma da un possessore della trilogia: il nuovo AnyDVD HD funziona!
Questa volta è stato battuto un record storico: la nuova protezione è stata infranta ancora prima che i dischi che la contengono fossero ufficialmente disponibili nei negozi (data prevista: 22/5/07). E questo, a detta di SlySoft, senza che i loro tecnici fossero in possesso di un esemplare dei nuovi dischi, tanto da essere costretti ad emettere una versione Beta del software, chiedendo agli utenti in possesso di copie in anteprima di fare la prova!