Systém kódování obsahu

CSS , Content Scramble System  je systém pro ochranu obsahu digitálních médií na médiích DVD . Systém je extrémně nestabilní vůči hackování. Z důvodu omezení exportu kryptografických technologií ze Spojených států je délka šifrovacího klíče omezena na 40 bitů, což je extrémně málo. Navíc vzhledem k nalezené zranitelnosti je efektivní délka klíče přibližně 16 bitů - to znamená, že všechny možné možnosti lze na moderním počítači vyřešit během několika sekund, což je způsobeno primitivní metodou ochrany. [1] V roce 2005 byl CSS nahrazen robustnějším AACS .

Historie vytvoření

Specifikace DVD byla připravena v prosinci 1995 . Výrobci DVD přehrávačů a DVD mechanik potřebovali mít na DVD značné množství filmů a hudby. Filmová studia si však všimla, že disky DVD by byly ideálním zdrojem pro kopírování filmů: digitální informace by při opětovném záznamu neztratily svou kvalitu (videokazety to neumožňovaly kvůli ochraně analogového výstupu APS ). Konsorcium DVD muselo poskytnout vhodnou ochranu proti kopírování. V důsledku toho konsorcium DVD vytvořilo technickou pracovní skupinu pro ochranu proti kopírování (CPTWG ) .  Dne 29. října 1996 CPTWG oznámila založení CSS, který byl vyvinut především společnostmi Toshiba a Matsushita Electric Industrial . Nezisková organizace, DVD Copy Control Association (DVD CCA ) , byla vytvořena za účelem licence na používání CSS . [2] 

Historie hacků

První CSS crawler se objevil na internetu v listopadu 1997 pod názvem softDVDcrack. Tento program ve skutečnosti nerozbil CSS, ale přehrávač Zoran. Zoran brzy opravil chyby v hacknuté verzi přehrávače, ale kopie staré verze zůstaly online. Proces hackování byl poměrně komplikovaný, takže program nedostal masovou distribuci. Poté bylo podobných aplikací mnohem více. Kolaps CSS je však spojen s příchodem programu DeCSS v listopadu 1999 . Napsal ji norský školák Jon Johansen na základě reverzního inženýrství kódu přehrávače Xing týmem německých programátorů MoRE (Masters of Reverse Engineering). Nezdá se, že by Xing zakódoval klíč k odemčení chráněných DVD. DeCSS se liší od všech předchozích programů v tom, že dešifruje CSS spíše než zachycuje video stream z licencovaného přehrávače. A co víc, každý počítač, který umí přehrát film na DVD, bude schopen docela snadno prolomit CSS pomocí DeCSS . Proto se DeCSS rychle rozšířil po celém světě, i když je v některých státech nezákonné zveřejňovat kód DeCSS na webových stránkách. [3]

CSS algoritmus

V algoritmu CSS se podílí několik komponent: DVD, jednotka DVD, přehrávač a hostitel. Všechny však musí mít licenci od Asociace kontroly kopírování DVD (DVD CCA), aby mohly používat CSS. Algoritmus CSS se skládá ze dvou částí: autentizace a šifrování.

Autentizace

  1. Jednotka DVD požádá hostitele o 2bitové ID udělení autentizace .  Tato hodnota se používá k pojmenování relace ověřování.
  2. Vzájemné ověřování probíhá mezi jednotkou DVD a hostitelem. Hostitel vygeneruje náhodnou 40bitovou sekvenci a odešle ji do jednotky DVD. Jednotka DVD zašifruje tuto sekvenci pomocí hashovací funkce CSS ,  přijme 80bitovou hodnotu, tzv. Challenge Key , a odešle ji hostiteli .  Host sám dešifruje odpověď a porovná ji s vygenerovanou sekvencí. Pokud se hodnoty shodují, hostitel důvěřuje jednotce DVD, protože tajnou hashovací funkci CSS znají pouze licencovaná zařízení a programy. Provede se obrácená operace (role mezi hostitelem a jednotkou DVD se obrátí), načež jednotka DVD důvěřuje nebo nedůvěřuje hostiteli, v závislosti na výsledku porovnání.
  3. Vygeneruje se klíč sběrnice .  Hostitel a jednotka DVD kombinují náhodné sekvence používané pro ověřování a pomocí hashovací funkce CSS každý získá klíč sběrnice. Tento klíč šifruje další přenosy klíčů mezi hostitelem a jednotkou DVD. Tento klíč není nikdy přenášen po sběrnici.
  4. Přehrávač a DVD jsou ověřeny. Každý licencovaný hráč má jeden nebo více hráčských klíčů ze seznamu  409 klíčů. Na chráněném disku se v neviditelné oblasti nachází diskový klíč ( angl. Disk Key ), zašifrovaný každým ze 409 klíčů, a ověřovací klíč ( angl. Authentication Key ), tj. diskový klíč, který je sám zašifrován. uloženy. Tyto klíče tvoří 2048bajtový blok. Blok je odeslán hráči. Přehrávač ví, ve které oblasti se klíč disku nachází, zašifruje se svým klíčem a dešifruje hodnotu v této oblasti. Poté, aby ověřil pravost klíče, dešifruje ověřovací klíč pomocí nalezeného diskového klíče a porovná výsledek s diskovým klíčem. Pokud se klíče shodují, ověření je považováno za úspěšné. V opačném případě provede přehrávač všechny operace s klávesou dalšího přehrávače, kterou zná, a tak dále. Diskový klíč se použije později. [3]  

Dešifrování

Data DVD jsou šifrována podle sektorů. Informace o tom, zda je sektor zašifrován nebo ne, je uložena v záhlaví sektoru. Šifrovány jsou pouze sektory, které nesou streamované informace (video, obraz, zvuk), zbytek, například ty, které zodpovídají za navigaci, šifrovány nejsou. Šifrování dat je založeno na sčítání bit po bitu s pseudonáhodnou sekvencí bitů a substitucí bajtů jedna ku jedné. Pro implementaci pseudonáhodné sekvence se používají posuvné registry s lineární zpětnou vazbou ( anglicky  Linear Feedback Shift Register, LFSR )

  1. Přehrávač si vyžádá titulkový klíč z jednotky DVD .  Poté pomocí diskového klíče dešifruje přijatá data, aby získal pojmenovací klíč.
  2. Posuvné registry CSS jsou naplněny bajty klíče názvu. Algoritmus CSS používá dva lineární zpětnovazební posuvné registry: 17bitový a 25bitový. Před vyplněním je klíč názvu bitově přidán k klíči sektoru ( Sector Key ) .  Klíč sektoru je obsažen v bajtech 80 až 84 sektoru. Po přidání první a druhý bajt jmenného klíče vyplní 17bitový registr a zbytek vyplní 25bitový registr. Logická jednička je vložena do čtvrtého bitu každého posuvného registru, aby se zabránilo nulové smyčce.
  3. Posuvné registry procházejí osmi cykly a každý vytváří výstupní bajt . Funkce XOR se používá jako zpětná vazba v posuvných registrech. V případě 17bitového registru jsou jeho vstupem bity 1 a 15 a výstupem bit 17 a je výstupem posuvného registru. V případě 25bitového registru jsou vstupem funkce bity 1, 4, 5 a 15 a výstupem je bit 25 a výstup registru. [čtyři]
  4. Výstupy registrů se určitým způsobem sčítají. Před přidáním je výstup 17bitového registru bitově invertován. Výstupní bajty registru se sčítají obvyklým osmibitovým sčítáním a k nim se přičte bit přetečení z předchozího sčítání a výsledný bit přetečení (devátý bit součtu) jde na vstup dalšího sčítání. Výsledek tvoří společný výstup posuvných registrů. Obecně platí, že výstup každého posuvného registru může být invertován nebo ne. Z toho vyplývá, že posuvné registry mohou pracovat ve čtyřech režimech. Režim šifrování dat se používá k šifrování dat.
  5. Šifrovaný datový bajt prochází substitucí tabulkou jedna ku jedné a je přidán k celkovému výstupu posuvných registrů. Výsledek lze reprodukovat. [čtyři]

CSS posuvné registry

CSS používá dva posuvné registry lineární zpětné vazby .  K posunu v registrech dochází zleva doprava. Výstupní bit je hodnota zpětné vazby. Čtvrtý bit každého registru je nastaven na logickou jedničku, když je posuvný registr zpočátku naplněn. [čtyři]

Režimy šifrování

CSS má čtyři režimy šifrování. Režim se volí podle toho, jaké informace jsou zašifrovány. Režim ovlivňuje, zda je výstup konkrétního posuvného registru invertován nebo ne.

Režim šifrování LSFR-17 LSFR-25
Autentizace obrácený nepřevrácené
Šifrování klíče sběrnice nepřevrácené nepřevrácené
Šifrování klíče názvu nepřevrácené obrácený
Šifrování dat obrácený nepřevrácené

[čtyři]

Funkce zkreslení CSS

Při šifrování diskového klíče a jmenného klíče se kromě posuvných registrů využívá funkce zkreslení ( anglicky  Mangling Function ).

Bajty A1-A5 jsou vstupem funkce zkreslení, jsou nahrazeny bajty klíče, který je zašifrován. Výstupem funkce jsou bajty C1-C5 . Bajty B1-B5  jsou střední hodnoty. Byty k1-k5 jsou byty obecného výstupu posuvných registrů v odpovídajícím režimu. Posuvné registry jsou zpočátku naplněny klíčem používaným pro šifrování. Symbol F označuje výměnu bajtu v tabulce jedna ku jedné. Plus znamená bitové sčítání bajtů. Výstupem funkce zkreslení je šifrovaný klíč. [jeden]

Typy klíčů

Systém měl následující typy klíčů [5] :

Diskové a titulkové klíče byly napsány v úvodní oblasti disku, aby nebylo možné je přímo zkopírovat [6] .

Chyby zabezpečení a možné útoky

Viz také

Poznámky

  1. 1 2 3 Frank A. Stevenson. Kryptoanalýza systému kódování obsahu . Získáno 16. listopadu 2009. Archivováno z originálu 2. června 2012.
  2. Archivovaná kopie (odkaz není dostupný) . Získáno 26. listopadu 2009. Archivováno z originálu 1. července 2013.   Technický názor na CSS
  3. 1 2 Taylor J. DVD Demystified . Získáno 2. října 2017. Archivováno z originálu dne 25. dubna 2018.
  4. 1 2 3 4 5 Operační systémy: Návrh a implementace. Přednáší Gregory Kesden . Získáno 19. listopadu 2009. Archivováno z originálu 8. ledna 2019.
  5. Kryptografie v domácí zábavě – pohled na kódování obsahu na discích DVD . Získáno 16. listopadu 2009. Archivováno z originálu 2. června 2012.
  6. Scott Mueller. Upgrade a opravy PC, str. 744 Archivováno 14. dubna 2018 na Wayback Machine .