Revista Do Linux
 
  
  
 

OUTRAS SEÇÕES
  Cartas
  Variedades
  Rádio Linux
  Mensagem ao Leitor
  CD do Mês
  Coluna do Augusto
  Dicas e Truques
  Opinião
 

Quebrando o código

Em busca da liberdade de assistir seus próprios DVDs onde quisessem, um grupo de programadores cria um software e muita polêmica

Já faz algum tempo que o DVD vem conquistando cada vez mais o mercado, deixando para trás o VHS. Com toda a qualidade de imagem e som digital que um DVD oferece, logo surgiu a preocupação de evitar cópias não autorizadas dos discos.

Pensando nisto, a 4C Entity (www.4centity.com), formada pelas empresas Intel, IBM, Matsushita e Toshiba, e em conjunto com a CPTWG (Copy Protection Technical Working Group), desenvolveu a Content Protection System Architecture, também conhecida como CPSA, uma estrutura completa que abrange o controle de segurança e acesso de toda a "família" de produtos DVD, cobrindo criptografia, proteção de saídas analógicas e digitais, marcas d'água e outras tecnologias.

Uma das tecnologias oferecidas pela CPSA é o CSS, um sistema de criptografia inicialmente desenvolvido pelas empresas Matsushita e Toshiba. O CSS é um método de criptografia e autenticação cujo objetivo é evitar a cópia de arquivos diretamente de um disco DVD.

Todo fabricante de dispositivos ou softwares capazes de exibir DVDs precisa adquirir uma licença através da DVD CCA (DVD Copy Control Association), que dá ao licenciado uma chave criptográfica para acesso ao conteúdo do CD. Todo DVD que utiliza a CSS possui um conjunto de cerca de 400 chaves. O armazenamento delas no disco permite o cancelamento de licenças, apenas deixando de incluir a chave do licenciado em futuros discos DVDs.

Para exibir o conteúdo de um disco, comparam-se a chave do DVD Player com as chaves presentes no disco. Se a chave procurada estiver no disco, o filme é exibido sem problemas. Esta operação também é criptografada por outra chave, e os DVD Players contêm um circuito CSS que decodifica as informações antes de decodificar e exibir o conteúdo do disco. Já no computador, tanto o hardware quanto o software responsável pela decodificação de DVDs deve incluir um módulo de decodificação do CSS. Todo drive possui um firmware extra para a troca das chaves de autenticação e decodificação com o módulo CSS no computador.

Com a popularização do formato DVD, vários dispositivos e softwares surgiram no mercado, atendendo aos mais diversos tipos de clientes. Entretanto, os linuxers não podiam assistir a seus filmes em DVD no Linux, pois o sistema ainda não tinha suporte ao CSS.

Na época, o mercado dominado pelo Linux não era tão extenso como hoje, e nenhuma empresa se mostrou interessada em desenvolver um player, mesmo que comercial, para o sistema. A comunidade também não poderia desenvolver seus próprios softwares, pois se a DVD CCA liberasse o algoritmo de decodificação do CSS para a comunidade, o código se espalharia e todos acabariam descobrindo como ter acesso aos discos. Isto seria um grande problema para a DVD CCA, pois se o CSS era a "grande cartada" para evitar a pirataria, mostrar ao público como decodificar o conteúdo dos discos seria contraditório.

Em outubro de 1999, um software que causaria muita polêmica foi colocado à disposição na Internet: O DeCSS, que permitia decodificar discos protegidos com o CSS e, conseqüentemente, desenvolver players independentes para Linux. O software foi desenvolvido por um grupo chamado MoRE (Masters of Reverse Engineering - Mestres da Engenharia Reversa), do qual fazia parte Jon Johanssen, um jovem norueguês de 15 anos e mais dois programadores anônimos, um alemão e outro holandês.

Em 24 de janeiro de 2000, autoridades norueguesas foram até a casa de Jon e, além de ter seu celular e computadores apreendidos, tanto ele como seu pai, Per Johanssen, foram indiciados pelo Departamento de Crime Econômico da Noruega. Após um apelo por parte da MPAA., Jon Johanssen foi indiciado por violar a seção 145 do Código Criminal Norueguês, que proíbe a invasão de propriedade alheia para ganhar acesso não autorizado a informações. Entretanto, esta foi a primeira vez que o governo norueguês utilizou esta lei para processar alguém que "invadiu" sua própria propriedade. No caso, um disco DVD que Jon Johanssen havia comprado.

O pai de Jon, Per Johanssen, foi indiciado por ser o dono dos equipamentos onde o DeCSS estava armazenado e, também, por possuir o domínio onde havia um link para o código do DeCSS. Mais tarde, a MPAA também conseguiu na justiça norte-americana proibir que sites norte-americanos distribuam o código do software.

Enquanto o processo do DeCSS corria, também se alegava que o programa facilitava a pirataria, já que ele quebrava a criptografia utilizada nos discos DVD e permitia sua leitura. É interessante lembrar que mesmo antes do DeCSS aparecer já existiam técnicas para cópia de DVD. Os discos poderiam ser copiados bit-a-bit e até mesmo em fita VHS. Criptografia não é proteção anticópia. A criptografia apenas restringe o acesso às informações, mas não as impede de serem copiadas. Podemos pegar como exemplo um livro em Chinês. Para quem não domina o idioma, a leitura não seria possível. Nada lhe impediria, entretanto, de fazer cópias do livro, que poderiam ser lidas sem problemas por alguém fluente em chinês.

Em Janeiro de 2003, Jon finalmente foi absolvido, provando que não fizera nada errado quando ajudou a "crackear" o código de um DVD que era dele mesmo. Além disso, o tribunal também determinou que não é ilegal utilizar o DeCSS para assistir filmes adquiridos legalmente.

Criatividade a serviço da liberdade

Com a proibição da MPAA de colocar o código fonte do DeCSS à disposição em websites, alguns norte-americanos começaram a divulgar o código fonte das mais diversas maneiras. Além das já esperadas variações do DeCSS, como versões traduzidas para outras linguagens, como Perl (www-2.cs.cmu.edu/~dst/DeCSS/Gallery/qrpff.pl e www-2.cs.cmu.edu/~dst/DeCSS/Gallery/qrpff-fast.pl), PHP (www-2.cs.cmu.edu/~dst/DeCSS/Gallery/css_descramble-php.txt) e uma implementação menor do código em C (www-2.cs.cmu.edu/~dst/DeCSS/Gallery/hannum-efdtt-source.txt), também surgiram invenções bastante criativas.

Um Haiku, tradicional forma de poema japonês, foi escrito por um autor anônimo tendo como base o código do DeCSS. O mesmo aconteceu com músicas, que chegaram até a render uma coletânea, com parte da arrecadação das vendas doada para a EFF (Electronic Frontier Foundation), uma organização que luta contra práticas de empresas ou governos que possam acabar interferindo na liberdade civil dentro do ciberespaço.

Na divulgação do código, também foram utilizados filmes, como arquivos mpeg que exibem todo o código do DeCSS em animação. Alguns defensores do DeCSS resolveram ir mais além e, utilizando técnicas de esteganografia, esconderam o código em uma imagem gif com o rosto de Jack Valenti, presidente da MPAA.

Para ver mais formas criativas de distribuição do código-fonte do programa, não deixe de visitar a Gallery of CSS Decramblers (www-2.cs.cmu.edu/~dst/DeCSS/Gallery/). Este website foi criado pelo Dr. David S. Touretzky, do departamento de Ciências da Computação da Carnegie Mellon University.

Organizou-se também um concurso internacional de formas de distribuição do código, tendo como vencedor da categoria "Hack Value - Best High-Tech Entry", Andrea Gnesutta, que conseguiu esconder o arquivo css-auth.tar.gz em uma imagem png de um banner. Para retirar o arquivo da imagem, bastava abrir o arquivo e copiar a partir do byte 0x002428 os próximos 0x547E bytes para um novo arquivo. Já o vencedor da categoria "Reverse Hack Value - Best Low-Tech Entry", Samuel Goldstein, amarrou um CD com o código em balões infláveis que carregavam a mídia pelos ares (dvd.zgp.org/balloon/).

Para saber mais:

DVD Demystified - www.dvddemystified.com/
Entrevista com Jon Johanssen - makeashorterlink.com/?S2E952753
42 formas de distribuir o DeCSS - decss.zoy.org/
EFF - www.eff.org
MPAA - www.mpaa.org


Felipe Arruda - felipe@RevistaDoLinux.com.br

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux