DRM reloaded
Voltando ao DRM, conforme já expliquei no post anterior o DRM é uma idéia praticamente fadada ao fracasso porque:
- Você está tentando proteger o conteúdo de quem deve ter acesso a este. E portanto você tem que dar acesso ao conteúdo de uma forma “controlada”
- Se sua proteção funciona para 99% dos usuários e apenas uma pequena parte é capaz de burlar seu sistema falhou. Porque provavelmente boa parte dos 99% já seriam usuários que não iriam tentar burlar. E quem conseguiu burlar tem custo nenhum para fazer quantas reproduções desejar, ou distribuir online, etc, etc…
- O sistema penaliza quem não deveria ser penalizado. Repare que muitas vezes a proteção causa algum tipo de amolação ao usuário, justamente o bom usuário que te sustenta. Muitas vezes ele não consegue usar o produto em todos os seus reprodutores, mesmo os que deveriam legitimamente tocar, ele perde o direito a fazer alguns usos que sempre foram considerados razoáveis (fair use) como ter uma cópia de segurança, e por aí vai. Ou seja é um sistema que causa muito mais problemas para quem é honesto do que para quem não é.
- Algumas proteções não precisam ser necessariamente quebradas. Se meu dvd possui conteúdo criptografado eu não preciso quebrar a criptografia. Basta conseguir fazer uma cópia 100% fiel da mídia.
Entrando mais em detalhes no ponto 1 temos que entender o que é uma forma “controlada” de prover conteúdo. Como eu já expliquei se eu encripto um conteúdo eu tenho uma chave de criptografia.
(abrindo um parênteses, criptografar nada mais é que aplicar uma função matemática que torna praticamente impossível a um terceiro “ler e entender” o conteúdo. Esta função tem que ter uma função de retorno que permita recuperar o original. Se eu utilizar todas as vezes a mesma função eu perco a capacidade de individualizar a mensagem. Basta eu conhecer a função de retorno da mensagem A para ser capaz de ler a mensagem B, mesmo que eu não deva. Criar um algoritmo de criptografia de qualidade é algo bastante desafiador, e utilizar uma funcao diferente para cada mensagem seria impossível. O que se faz então é utilizar algoritmos muito bons que tem como uma das suas entradas uma chave que permite individualizar aquela “sessão de encriptação”. )
E esta chave criptográfica é necessária ao recipiente para poder decriptar. Logo ela deve vir junto de um conteúdo de mídia com DRM. Recentemente o tão badalado esquema de criptografia dos novos formatos de vídeo de HDTV foi quebrado simplesmente realizando uma busca em todo conteúdo do DVD. A idéia do sujeito foi super simples. Se ela está lá basta fazer uma busca byte a byte. E ele varreu todo o conteúdo do DVD testando todas as seqüências de byte como chave para decriptar o conteúdo. Batata ! Em algum tempo achou.
Então como podemos acrescentar algum controle a isto ? Somente se o usuário não puder fazer o que quiser com os leitores de mídia. Mas os computadores são de propósito geral e fazem tudo que seus donos os “instruem” a fazer dentro do que é computacionalmente possível. E esta arquitetura aberta que é o grande charme do PC. E quando eu digo PC aqui, quero dizer no sentido lato, mas principalmente na família IBM PC, que foi realmente um projeto totalmente aberto. Nã0 é por outro motivo que foi a arquitetura vencedora da guerra mercadológica nas últimas décadas apesar de em muitos casos não ser tecnologicamente a mais avançada.
Então a solução é criar um PC em que seu dono não possa fazer tudo. Isto tem nome e já existe. É a chamada Trusted Computing Plataform (plataforma de computação confiável). Na qual é possível confiar que o usuário não vá bolir com “certas áreas protegidas”. E a proteção é por hardware. Imagine um pc de propósito geral igual ao que você possui. Mas ele tem áreas de memória que você (e nem mesmo o sistema operacional) consegue acessar, e roda códigos que você não pode alterar.
Aí dá para ter DRM. Porque eu mando uma mensagem para o seu TC module e ele cuida das funções de decriptar e te repassar o conteúdo (não exatamente, mas próximo disto). Dá para ter proteção contra cheating em jogos online (MMORPGS), dá para ter ferramentas de segurança mais poderosas (antivírus, antispywares), dá para proteger o conteúdo do HD do seu laptop contra roubo(criptografando). Dá para fazer coisas muito legais como identificar sua máquina na internet de forma única e sem repúdio (e viva a privacidade) !! Dá até para impedir que você troque o sistema operacional da sua máquina. Sua ? Bom… acho que não é mais uma máquina para chamar de sua… Reparou que isto quebrou totalmente o grande charme da arquitetura do PC e a raíz do seu sucesso ?
Outra opção é não sofisticar tanto, não precisa ser por hardware. Se eu consigo simplesmente mexer no seu sistema operacional e colocar um módulo de software rodando no nível mais alto de permissão. Com este módulo eu posso monitorar e controlar muita coisa que o usuário pode tentar fazer mas não é do interesse do proprietário do conteúdo. E eu posso fazer isto tudo sorrateiramente de forma a ficar transparente para o usuário que existe este módulo. Mas os hacker já faziam isto há muito tempo. Era chamada a tecnologia de rootkit. Pois foi exatamente o que a Sony fez há pouco tempo atrás e o resultado foi o maior bafafá quando descobriram. Engraçado que apesar de pedir desculpas em público ela parece que não aprendeu a lição pois recentemente lançou um USB Stick utilizando a mesma tecnologia.
Agora porque você precisa burlar o sistema operacional se você já pode ter todas estas “features” com alta agregação de valor para o usuário final embutidas pelo próprio fabricante. É isto que a Microsoft fez no Vista. Reescreveu o sistema operacional inteiro do zero para incluir nova arquitetura de segurança que inclui um suporte visceral para DRM. Uma análise completa do que implica esta nova arquitetura eu deixo para o Peter Guttman em seu paper Uma análise de custo do Sistema de DRM do Windows Vista. O paper é inglês e esbarra em um certo tecnicismo, mas não é uma leitura difícil.