Krypteringshemmeligheten til DVD-Video er avslørt:

Contents Scrambling System

Av Espen Braathen

Innholdet på DVD-Video-plater er som regel beskyttet mot digital kopiering ved at innholdet er kryptert ved hjelp av CSS - Contents Scrambling System. CSS er utviklet av Matsushita og Toshiba i sammarbeid med bl.a. Intel og Compaq. Denne krypteringen bruker et sett med 40-bit nøkler. To av nøklene er lagret på selve platen og den tredje nøkkelen - kjent som en hovednøkkel (master key) - er lagret i selve CSS dekrypteringsrutinen.

For å spille av krypterte DVD-Video-filmer på en PC må følgende rutiner utføres:

Med bare 40-bits lange nøkler gir CSS i utgangspunktet en meget dårlig sikkerhet. Robuste krypteringsprogrammer som DES bruker nøkler på 56 bit, avanserte krypteringsprogrammer bruker i dag ofte nøkler på 128 eller flere bit. (USA har strenge regler for eksport av avanserte krypteringsalgoritmer og dette er nok en av gunnene til den korte nøkkellengden som CSS benytter.) Sikkerheten til CSS lå hovedsaklig i å holde algoritmen hemmelig.

CSS innkoding

Figur 1: CSS kryptering.

Deler av innholdet i VOB-filene blir kryptert ved hjelp av title_key (TK). TK blir deretter krypter ved hjelp av disc_key (DK) og lagret i hodet til hver krypterte sektor. Ved vanlig avspilling på en DVD-ROM-spiller vil drivverket kun levere de 2048 byte med brukerdata.

Sektorhode (12B) 2 KB brukerdata (2048B) Paritetssjekk (4B)

Tabell 1: Innholdsstrukur for en lang sektor.

Platenøkkelen (DK) blir kryptert opp til 408 ganger ved hjelp av hver sin unike hovednøkkel (master key). De 408 variantene av den krypterte platenøkkelen blir sammen med en kontrollnøkkel (beskrevet i avsnittet om dekryptering) lagret i en utilgjengelig sektor i platens innløpsområde. Denne sektoren kan ikke leses ved hjelp av en normal søk- og utlesningsinstruksjon. Ingen av hovednøklene blir lagret på platen og denne typen nøkler blir normalt betegnet som "private" - i motsetning til de "offentlige" nøklene som er lagre på selve platen.

Posisjon: Byte: Innhold:
0 0 Authentication Control Key
1 5 Disk_key kryptert med hovednøkkel #1
2 10 Disk_key kryptert med hovednøkkel #2
... ... Disk_key kryptert med hovednøkkel #n
408 2040 Disk_key kryptert med hovednøkkel #408
Tabell 2: Innholdsstruktur for Disc_key blokken (2048 byte).

CSS dekoding

For å frigi DK-blokken og TK fra DVD-ROM-drivverket må man utføre en autentiseringsprosedyre. Først må dekoderprogrammet utfordre drivverket ved å sende en 80-bit "challenge" nøkkel. Drivverket genererer deretter en 40 bit nøkkel med utgangspubkt i 80-bit nøkkelen. Nøkkelen blir så sendt tilbake til dekoderprogrammet som sammenlikner den med sin internt genererte 40-bit nøkkel. Dersom de to er identiske så fortsetter autentiseringsprosaessen - hvis ikke konkluderer dekoderprogrammet med at drivverket ikke oppfører seg i henhold til CSS-standarden. Deretter autentiserer drivverket dekoderprogrammet på samme måte.

Figur 2: CSS dekryptering.

Når autentiseringsprosedyren er ferdig kan drivverket endelig frigi DK-blokken. Overføringen av DK og TK er forøvrig også kryptert, men vi skal ikke gå i detalj på dette området. Hver DVD-spiller er utstyrt med et sett private hovednøkler. Sammen med den 40-bit lange hovednøkkelen lagrer man også den nøvendige offset verdien slik at CSS-dekoderrutinen kan finne igjen den krypterte platenøkkelen (DK) som passer med den aktuelle hovednøkkelen.

For å sjekke at platenøkkelen er korrekt blir den sjekket ved hjelp av kontrollnøkkelen. Dersom denne sjekken viser at platenøkkelen ikke er korrekt så forsøker CSS dekoderen å dekode platenøkkelen ved hjelp av de andre hovednøklene den er utstyrt med.

Hvis man finner korrek platenøkkel (DK) kan man fortsette til neste steg som er å dekryptere tittelnøkkelen (TK). Tilslutt kan man dekryptere selve audio- og videodataene.

CSS algoritmen har flere åpenbare svakheter som feks kan utnyttes til å avsløre den korrekte platenøkkelen uten å kjenne til noen av de hemmelige hovednøklene. Så lenge man har kjennskap til selve algoritmen kan man med letthet regne ut korrekt platenøkkel ved å ta utgangspunkt i kontrolnøkkelen og en kryptert platenøkkel på under 20 sekunder på en kraftig maskin!

DeCSS

CSS-algoritmen og hovednøkklene skulle i utgangspunktet bli holdt strengt hemmelig (alle innvolverte parter må skrive under på en NDA - Non Disclosure Agreement), men i september 1999 klarte imidlertid medlemmer av gruppen MoRE - Masters of Reverse Engineering - å avsløre CSS algoritmen. Det gjorde man etter sigende ved å dis-assemblere den programvare baserte DVD-spilleren til Xing (opplysninger omkring dette er noe mangefult - det hevdes at noen også klarte å få ut koden fra programme der CSS rutinene var skjult på den korrekte måten). I utgangspunktet skal CSS-rutinene og hovednøkkelen være lagret på en måte som hindrer at koden kan dis-assembleres på normal måte, men av en eller annen grunn hadde programererne av Xings DVD-Video-spiller glemt å skjule CSS-koden. Ifølge ryktene kan denne forglemmelsen koste Xing meget dyrt - man er ifølge NDA-avalen ansvarlig for en erstatning på inntil 1 million USD per tilfelle hvis CSS blir missbrukt...

Med utganspunkt i den oppdagede kildekoden har MoRE laget et hendig lite program på 30 KB som fjerner CSS-krypteringen fra VOB-filene (VOB filene inneholder audio, video og subpicture data) før de feks skrives inn på harddisken. Programmet har fått navnet DeCSS.

Hvis du tar en titt på innholdet på en DVD-Video-plate vil du først finne en katalog med navnet VIDEO_TS (aka Video Title Sets). Det er kun filene i denne katalogen som leses av en DVD-Video-spiller. Katalogen inneholder to type filer: IFO og VOB (BUP-filene er bare backup av IFO-filene). Video_TS.IFO inneholder en Video Manager (VMG), en slags innholdsfortegnelse for hele platen. VTS_xx_y.IFO filene er kontrollfiler for det gjeldende Video Title Set (VTS). En plate kan inneholde hele 99 stk Video Title Sets - men plater med bare en film inneholder ofte bare en VTS.

Det er VOB-filene som inneholder selve audio- og videoinformasjonen. VOB filene følger pakkeformatet til MPEG systemsyntaks og hver pakke inneholder 2 KB med data (video, audio eller subpicture). VOB filene inneholder også en kontrollpakke med diveres navigasjonsinformasjon fra tid til annen - ca 2 ganger i sekundet, men den skal vi ikke se på i denne gjennomgangen. VOB-filer er normal 1 GB store (1 GB er maks størrelse).

Hvis du ønker å kopiere VOB-filer fra en DVD-Video-plate inn på harddisken gjør du følgende:

Hvor fort det tar å overføre VOB filene til harddisken avhenger av lesehastigheten til DVD-ROM-spillern (1x, 2x, 6x, etc) og skrivehastigheten til harddisken din (vanlige disker klarer neppe mer enn 3-4 MB/s). Selve dekrypteringen går rasende fort - den er bare en brøkdel av dataene som er kryptert slik at en programvarebasert DVD-Video-spiller ikke skal kaste bort mange prosessorsykler på dekrypteringen.

(For egen del med 2x DVD-ROM og Pentium II 266 tar det under 6 minutter å overføre en 1 GB stor VOB til HDD.)

De ferdige overførte VOB filene kan spilles av med de fleste DVD-Video-avspiller programmer. Hvis ikke programmet støtter direkte tilgang til VOB-filer kan du døpe om filutvidelsen fra .VOB til .M2V (evt .MPG). Selv om du kan kopiere alle IFO og VOB filene over på harddisken in så vil man normalt ikke kunne spille av menysystemet o.l. Årsaken til dette er at avspillerprogrammene normalt er laget slik at det ikke er mulig. En tips for de som vil prøve er å kopiere alle filene over til en Video_TS folder. Denne foldern _må_ ligge på harddiskens rot. Med mindre du får tilgang til IFO filene vil du ikke kunne velge ønsket lydspor og undertekst under avspilling.

NB! Bruken av DeCSS til å lage private kopier av innholdet på en DVD-Video-plate er en 100 prosent lovlig aktivitet i Norge.


Eksterne linker relatert til denne saken:

Cryptoanalysis of Contents Scrambling System av Frank A. Stevenson.

Tilbake til DVD menyen. Tilbake til hovedmenyen.