Sistemul de amestecare a conținutului

CSS , Content Scramble System  este un sistem pentru protejarea conținutului media digital de pe DVD . Sistemul este extrem de instabil la hacking. Din cauza restricțiilor privind exportul de tehnologii criptografice din Statele Unite, lungimea cheii de criptare este limitată la 40 de biți, ceea ce este extrem de mic. Mai mult, din cauza vulnerabilității găsite, lungimea efectivă a cheii este de aproximativ 16 biți - adică toate opțiunile posibile pot fi rezolvate pe un computer modern în doar câteva secunde, ceea ce se datorează unei metode de protecție primitive. [1] În 2005, CSS a fost înlocuit cu AACS mai robust .

Istoricul creației

Specificația DVD a fost gata în decembrie 1995 . Producătorii de DVD playere și unități DVD trebuiau să aibă o cantitate semnificativă de filme și muzică pe DVD. Cu toate acestea, studiourile de film au observat că DVD-urile ar fi o sursă ideală pentru copierea filmelor: informațiile digitale nu își vor pierde calitatea atunci când sunt reînregistrate (casetele video nu permiteau acest lucru datorită protecției APS la ieșire analogică ). Consorțiul DVD a fost solicitat să asigure o protecție adecvată împotriva copierii. Ca urmare, Consorțiul DVD a creat Grupul de lucru tehnic pentru protecția copiei (CPTWG ) .  La 29 octombrie 1996, CPTWG a anunțat înființarea CSS, care a fost dezvoltat în principal de Toshiba și Matsushita Electric Industrial . O organizație non-profit, DVD Copy Control Association (DVD CCA ) a fost creată pentru a licenția utilizarea CSS . [2] 

Istoria hackurilor

Primul crawler CSS a apărut pe Internet în noiembrie 1997 sub numele softDVDcrack. Acest program nu a spart de fapt CSS, ci playerul Zoran. Zoran a remediat în curând erorile din versiunea piratată a playerului, dar copiile versiunii vechi au rămas online. Procesul de hacking a fost destul de complicat, așa că programul nu a primit distribuție în masă. După aceea, au existat multe alte aplicații similare. Cu toate acestea, prăbușirea CSS este asociată cu apariția programului DeCSS în noiembrie 1999 . A fost scris de un școlar norvegian Jon Johansen pe baza ingineriei inverse a codului jucătorului Xing de către o echipă de programatori germani MoRE (Maeștri în Inginerie inversă). Xing nu pare să fi codificat o cheie pentru a debloca DVD-urile protejate. DeCSS diferă de toate programele anterioare prin faptul că decriptează CSS mai degrabă decât să intercepteze fluxul video de la un player licențiat. În plus, orice computer care poate reda un film pe DVD va putea sparge CSS destul de ușor folosind DeCSS . Prin urmare, DeCSS s-a răspândit rapid în întreaga lume, chiar dacă este ilegal în unele state să postați codul DeCSS pe site-uri web. [3]

Algoritm CSS

Există mai multe componente implicate în algoritmul CSS: DVD-ul, unitatea DVD, playerul și gazda. Cu toate acestea, toate trebuie să fie licențiate de DVD Copy Control Association (DVD CCA) pentru a utiliza CSS. Algoritmul CSS este format din două părți: autentificare și criptare.

Autentificare

  1. Unitatea DVD solicită gazdei un ID de acordare de autentificare pe 2 biți .  Această valoare este folosită pentru a denumi sesiunea de autentificare.
  2. Autentificarea reciprocă are loc între unitatea DVD și gazdă. Gazda generează o secvență aleatorie de 40 de biți și o trimite pe unitatea DVD. Unitatea DVD criptează această secvență folosind funcția hash CSS ,  primește o valoare de 80 de biți, așa-numita cheie de provocare și o trimite gazdei .  Gazda însăși decriptează răspunsul și îl compară cu secvența generată. Dacă valorile se potrivesc, gazda are încredere în unitatea DVD, deoarece numai dispozitivele și programele cu licență sunt considerate a cunoaște funcția secretă hash CSS. Se efectuează operația inversă (rolurile sunt inversate între gazdă și unitatea DVD), după care unitatea DVD are încredere sau nu în gazdă, în funcție de rezultatul comparației.
  3. Este generată o cheie de magistrală .  Gazda și unitatea DVD combină secvențele aleatorii utilizate pentru autentificare, iar folosind funcția hash CSS, fiecare obține o cheie de magistrală. Această cheie criptează alte transferuri de chei între gazdă și unitatea DVD. Această cheie nu este niciodată transmisă prin autobuz.
  4. Playerul și DVD-ul sunt autentificate. Fiecare jucător licențiat are una sau mai multe chei de jucător dintr -o  listă de 409 chei. Pe un disc protejat, într-o zonă invizibilă, o cheie de disc ( eng. Disk Key ), criptată de fiecare dintre cele 409 chei, și o cheie de autentificare ( eng. Authentication Key ), adică cheia de disc criptată de la sine, sunt stocate. Aceste chei formează un bloc de 2048 de octeți. Blocul este trimis jucătorului. Jucătorul știe în ce zonă se află cheia discului, criptată cu cheia sa și decriptează valoarea din această zonă. Apoi, pentru a verifica autenticitatea cheii, decriptează cheia de autentificare folosind cheia de disc găsită și compară rezultatul cu cheia de disc. Dacă cheile se potrivesc, autentificarea este considerată reușită. În caz contrar, jucătorul efectuează toate operațiunile cu următoarea cheie de jucător cunoscută și așa mai departe. Cheia de disc este folosită mai târziu. [3]  

Decriptare

Datele DVD sunt criptate pe sector. Informațiile despre dacă un sector este criptat sau nu sunt stocate în antetul sectorului. Numai sectoarele care transportă informații de streaming (video, imagine, sunet) sunt criptate, restul, de exemplu, cei responsabili de navigare, nu sunt criptate. Criptarea datelor se bazează pe adăugarea bit-cu-bit cu o secvență de biți pseudo-aleatorie și substituție de octeți de tabel unu-la-unu. Pentru a implementa o secvență pseudo-aleatorie, sunt utilizați registre de deplasare cu feedback liniar ( Registrul de deplasare cu feedback linear în engleză  , LFSR )

  1. Playerul solicită cheia de titlu de pe unitatea DVD .  Apoi decriptează datele primite folosind cheia de disc pentru a obține cheia de denumire.
  2. Registrele de deplasare CSS sunt populate cu octeți de cheie de nume. Algoritmul CSS utilizează două registre de deplasare cu feedback linear: 17 biți și 25 de biți. Înainte de completare, cheia de nume este adăugată pe biți la cheia sectorului ( Cheia sectorului ) .  Cheia de sector este conținută în octeții de la 80 la 84 ai sectorului. După adăugare, primul și al doilea octet al cheii de nume umple un registru de 17 biți, iar restul un registru de 25 de biți. Unul logic este inserat în al patrulea bit al fiecărui registru de deplasare pentru a preveni bucla zero.
  3. Registrele de deplasare trec prin opt cicluri și fiecare produce un octet de ieșire . Funcția XOR este utilizată ca feedback în registrele de deplasare. În cazul unui registru de 17 biți, intrarea acestuia este biții 1 și 15, iar ieșirea este bitul 17 și este ieșirea registrului de deplasare. În cazul unui registru de 25 de biți, intrarea în funcție este biții 1, 4, 5 și 15, iar ieșirea este bitul 25 și ieșirea registrului. [patru]
  4. Ieșirile registrelor sunt adunate într-un anumit mod. Înainte de adăugare, ieșirea registrului de 17 biți este inversată în funcție de biți. Octeții de ieșire din registru sunt adăugați prin adăugarea obișnuită de opt biți, iar bitul de overflow din adăugarea anterioară este adăugat la ei, iar bitul de overflow rezultat (al nouălea bit al sumei) merge la intrarea următoarei adăugări. Rezultatul formează ieșirea comună a registrelor de deplasare. În general, ieșirea fiecărui registru de deplasare poate fi fie inversată, fie nu. Rezultă că registrele de deplasare pot funcționa în patru moduri. Modul de criptare a datelor este utilizat pentru a cripta datele.
  5. Octetul de date criptat trece printr-o substituție unu-la-unu a tabelului și este adăugat la ieșirea totală a registrelor de deplasare. Rezultatul poate fi reprodus. [patru]

Registre de deplasare CSS

CSS utilizează două registre lineare de schimbare a feedback -ului .  Schimbarea registrelor are loc de la stânga la dreapta. Bitul de ieșire este valoarea funcției de feedback. Al patrulea bit al fiecărui registru este setat la unul logic atunci când registrul de deplasare este inițial umplut. [patru]

Moduri de criptare

CSS are patru moduri de criptare. Modul este selectat în funcție de informațiile criptate. Modul afectează dacă ieșirea unui anumit registru de deplasare este inversată sau nu.

Modul de criptare LSFR-17 LSFR-25
Autentificare inversat neinversată
Criptare cheie autobuz neinversată neinversată
Criptare cheie de nume neinversată inversat
Criptarea datelor inversat neinversată

[patru]

Funcția de distorsiune CSS

La criptarea cheii de disc și a cheii de nume, pe lângă registrele de deplasare, este utilizată funcția de distorsiune ( Funcția de deformare în engleză )  .

Octeții A1-A5 sunt intrarea funcției de distorsiune, ei sunt înlocuiți cu octeții cheii care este criptată. Octeții C1-C5 sunt ieșirea funcției. Octeții B1-B5  sunt valori intermediare. Octeții k1-k5 sunt octeți ai ieșirii generale a registrelor de deplasare în modul corespunzător. Registrele de deplasare sunt inițial umplute cu cheia folosită pentru criptare. Simbolul F indică o înlocuire unu-la-unu a unui octet în tabel. Plus reprezintă adăugarea pe biți a octeților. Ieșirea funcției de distorsiune este cheia criptată. [unu]

Tipuri de chei

Sistemul avea următoarele tipuri de taste [5] :

Cheile de disc și de titlu au fost scrise în zona de intrare a discului pentru a face imposibilă copierea lor directă [6] .

Vulnerabilitatea sistemului și posibilele atacuri

Vezi și

Note

  1. 1 2 3 Frank A. Stevenson. Criptanaliză a conținutului sistem de codificare . Consultat la 16 noiembrie 2009. Arhivat din original pe 2 iunie 2012.
  2. Copie arhivată (link nu este disponibil) . Consultat la 26 noiembrie 2009. Arhivat din original la 1 iulie 2013.   Opinie tehnică privind CSS
  3. 1 2 Taylor J. DVD Demystified . Preluat la 2 octombrie 2017. Arhivat din original la 25 aprilie 2018.
  4. 1 2 3 4 5 Sisteme de operare: proiectare și implementare. Lector: Gregory Kesden . Consultat la 19 noiembrie 2009. Arhivat din original pe 8 ianuarie 2019.
  5. Criptografia în Home Entertainment - O privire asupra amestecării conținutului pe DVD-uri . Consultat la 16 noiembrie 2009. Arhivat din original pe 2 iunie 2012.
  6. Scott Mueller. Actualizarea și repararea computerelor, p. 744 Arhivat 14 aprilie 2018 la Wayback Machine .