DeCSS

Версия от 21:50, 14 сентября 2007; >Asp (Новая: DeCSS - программа для чтения и перекодирования DVD дисков. Программа написана двумя анонимусами и нор...)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

DeCSS - программа для чтения и перекодирования DVD дисков. Программа написана двумя анонимусами и норвежским программистом Йоном Йохансеном. Её текст был запрещен, и за распространение судили. Однако коллективное сопротивление победило и код программы опубликован даже в Википедии.

Формат DVD позволяет записывать на компакт-диске информацию в три раза плотнее, чем обыкновенный CD Audio протокол. Это делает возможным записывать и просматривать видео-фильмы с болванок, по вид не отличающихся от компакт-дисков. Чтобы не вышло как с компакт-дисками (которые используются кем угодно, в том числе и для нарушения копирайта) формат, в котором записываются DVD-фильмы, защищен специальной шифровательной программой, которая называется CSS (Content Scrambling System), которая является торговым секретом (это вроде патента, но в отличие от патента, торговый секрет не публикуется). Чтобы написать DVD-плэйер, требуется лицензия хозяев "торгового секрета"; из-за этого никаких DVD-плэйеров (по крайней мере, легальных) под Линуксом и прочими операционными системами (кроме Windows и Макинтошей) нет.

Особого смысла в этой шифровке нет; точнее, этот смысл состоит в том, что (вместе с DMCA) CSS позволяет ограничивать распространение нелицензионного софта и железа для чтения DVD. Дело в том, что все DVD помечены зональным кодом, соответствующим одной из семи зон, в которой эти DVD произведены (например, Россия принадлежит к одной зоне с Африкой и Средней Азией). В легально (т.е. не в Китае) произведенных DVD-плэйерах стоит защита, позволяющая данному плэйеру играть только те диски, которые произведены в его родной зоне. Нужно это для того, чтобы официально выпущенный на диске в одной зоне фильм можно было бы не выпускать в другой зоне, а показывать в кинотеатрах (в которые, после выхода фильма на DVD, никто особенно не ходит). Предполагается, что алгоритм CSS служит для регулировки выпуска плэйеров, с целью защиты дисков от чтения в посторонних зонах. От копирования DVD эта система, что забавно, не защищает. Зато, до появления расшифровщика, из этих самых дисков DVD было невозможно получить эти же самые фильмы в открытом формате; или посмотреть их из-под Линукса.

Алгоритм CSS очень слаб и легко взламывается. Осенью 1999 года норвежский подросток Йон Йохансен, которому тогда было 15, выпустил программу под названием DeCSS; эта программа смотрела зашифрованный DVD и выдавала записанный на нем фильм в открытом формате MP2. Разумеется, программа была некоммерческая и с открытым исходником; DeCSS задумывался как средство, которое позволит смотреть DVD под Линуксом.

Приоритет в написании первого дескрамблера (расшифровщика) принадлежит хакеру по имени "Dod (Drink or Die) Speedripper", обнаружившему расшифровательный алгоритм в сентябре 1999, путем дизассемблирования программы Xing.

В настоящий момент написанны сотни различных версий DeCSS; ученый Carnegie Mellon University Дэйв Турецкий составил небольшую галерею разных версий DeCSS; в том числе красивая акустическая баллада на текст DeCSS, переведенный с языка C на английский специальной программой. Баллада сия, по причине ее противозаконности, была запрещена сервером mp3.com.

Дескрамблер занимает всего несколько строчек - например вот (на Перле)

  1. !/usr/bin/perl
  2. 472-byte qrpff, Keith Winstein and Marc Horowitz
  3. MPEG 2 PS VOB file -> descrambled output on stdout.
  4. usage: perl -I :::: qrpff
  5. where k1..k5 are the title key bytes in least to most-significant order

s$/=\2048;while(<>){G=29;R=142;if((@a=unqT="C*",_)[20]&48){D=89;_=unqb24,qT,@ b=map{ord qB8,unqb8,qT,_^$a[--D]}@INC;s/...$/1$&/;Q=unqV,qb25,_;H=73;O=$b[4]<<9 |256|$b[3];Q=Q>>8^(P=(E=255)&(Q>>12^Q>>4^Q/8^Q))<<17,O=O>>8^(E&(F=(S=O>>14&7^O) ^S*8^S<<6))<<9,_=(map{U=_%16orE^=R^=110&(S=(unqT,"\xb\ntd\xbz\x14d")[_/16%8]);E ^=(72,@z=(64,72,G^=12*(U-2?0:S&17)),H^=_%64?12:0,@z)[_%8]}(16..271))[_]^((D>>=8 )+=P+(~F&E))for@a[128..$#a]}print+qT,@a}';s/[D-HO-U_]/\$$&/g;s/q/pack+/g;eval

См. также

Ссылки

Эта статья содержит текст из Книги Антикопирайт Миши Вербицкого. Так же, как и этот проект, книга опубликована на условиях лицензии GNU FDL.