lunes, 7 de mayo de 2007

Teoría de juegos y la revocación en aacs

Para los detalles sobre cómo funciona aacs puedes consultar la primera parte de esta serie.


Antes había hablado de cómo el elemento fundamental de aacs consiste en la revocación de reproductores "débiles", que permitan (intencionalmente o no) conocer las claves que usan para el descifrado de las películas. Si no se hiciese esto, todo el modelo caería abajo, ya que se podría fácilmente crear un reproductor "pirata" usando las claves de uno original, y quien dice un reproductor dice un ripeador, un copiador... Sólo habría que escoger el reproductor más débil de entre los cientos que se fabricasen y atacarlo hasta averiguar sus claves. Y ahí se acabo todo. Así que es esencial poder revocar las claves que se han visto comprometidas.


Antes de nada, ¿qué es exactamente lo que se revoca? En cada disco viene, además de la película, la clave con la que se descifra. Esa clave viene cifrada de modo que sólo se pueda descifrar con al menos una de las claves secretas de los reproductores "autorizados". Si las claves de un reproductor se ven descubiertas, serán revocadas, es decir, ninguna de sus claves podrá descifrar la clave que permita ver las películas que se publiquen posteriormente (no, no pueden fundir los discos ya editados que tienes en casa, que siguen teniendo la clave de visionado cifrado con una clave que puedes descifrar ya que está grabada físicamente y todavía no han encontrado como cambiar el pasado). Los otros reproductores en teoría no se ven afectados porque aunque compartan alguna clave con el que ha sido revocado, siempre tienen alguna clave distinta, que será la que se utilice para cifrar alguna copia de la clave de visionado.


¿Problemas que tiene esto? Bueno, el primero es que aunque en teoría se pueda hacer por cada reproductor individual, en la práctica no tiene sentido hacerlo porque: a) el número de claves para que dos reproductores en el mundo no tengan exactamente las mismas es exageradamente grande y b) Si alguien ha descubierto que un reproductor guarda las claves en por ejemplo la posición de memoria 0xFBB8A0 no tiene más que buscarse otro reproductor exactamente igual y mirar esa posición de memoria sin perder más tiempo. Así que probablemente se haga por modelo (o versión) del reproductor.


Esto provoca un problema bastante importante y es que se puede provocar un ataque de denegación de servicio. Y no solo en teoría, sino que es un fallo gigantesco que acabará derrotando la protección.


Pongamos un ejemplo. En principio los reproductores más fáciles de "hackear" son los que son únicamente programas de ordenador. ¿Por qué? Bueno, el ordenador es tuyo y te instalas lo que quieres. Y no solo eso, sino que te lo conoces como la palma de tu mano. Ejecutas el programa reproductor y un decompilador, o como hizo arnezami, deteniéndolo y volcando el contenido de la memoria para poder examinarla, o lo que sea... Supongamos que existe un reproductor software al que llamaremos win_aacs (por ejemplo). Supongamos que tiene un error, o una vulnerabilidad, o simplemente que hay alguien muy hábil (nunca descartes esa opción) y sus claves se publican en internet. Supongamos entonces que esas claves se revocan. ¿Qué pasa entonces? Que los que usen ese reproductor en su ordenador descubriran que no pueden ver las películas más nuevas, y que el fabricante del reproductor tendrá que pedir disculpas, tratar de averiguar cuál era el problema, arreglarlo, y con suerte conseguirá nuevas claves, que tendrá que distribuir a sus usuarios. ¿Es un problema? Sí, pero hay mucha gente que tiene ordenador que también tiene conexión a internet, por lo que bastaría una actualización a través de internet. Si no, esos programas tienden a ser baratos, por lo que si pierdes unos pocos euros, pues qué se le va a hacer... no haber confiado en win_aacs_company.

Ahora supongamos que en lugar de ser un mísero reproductor software, es un home theater de más de mil euros, o una play 3, que valen un pico. ¿Alguien tiene conectado eso a una línea telefónica? O supongamos que es un reproductor software importante, de esos que viene por defecto en cierto sistema operativo, que usa más gente del tipo que no suele tener conexión a internet en casa. Supongamos que de nuevo viene alguien muy aburrido y muy hábil, destripa el aparato y publica las claves, que son revocadas. Entonces miles de clientes llamarán irritados a la empresa que sea, que tendrá que mandar cds con las nuevas claves y la actualización del software que permita que no sean descubiertas, y digamos que aunque los que lleven aacs sean generosos con los plazos, las personas que descubran que tienen que esperar al menos una semana en ver "spiderman 8", ya que no sabían nada de la actualización hasta que metieron esa película, no estarán muy contentas. Y ahora supongamos que quién publica las claves secretas de un reproductor muy usado y difícil de actualizar no dice cómo las descubre, las actualizaciones no arreglan el fallo y las claves se revelan una y otra vez, y que por cada vez hacen perder a la gran compañía X un montón de dinero. Una gran compañía no puede simplemente abandonar el reproductor a su suerte ya que tendrá miles de clientes con un reproductor caro que no pueden usar, y tiene una reputación que mantener. Supongamos que presiona para que las claves no se revoquen o tarden más en hacerlo. Ahora existe un conjunto de claves no revocadas que han sido reveladas, junto con un montón de gente cabreada con la protección anticopia de regalo. Victoria.


¿Entonces por qué todo eso? Bueno, lo primero es que ganan tiempo. Si revocan un reproductor débil, la persona que ha averiguado cómo destriparlo tiene que perder el tiempo en descubrir otra vulnerabilidad en la nueva versión de ese o en otro distinto. A lo mejor tarda unos meses (tendrá otra vida, trabajo, familia...) en los que la gente que no pueda esperar pagará 30€ por "spiderman 8". Lo segundo... bueno, la verdad es que realmente sólo ganan tiempo, y las maravillas imaginarias que hayan prometido a las distribuidoras de películas es asunto sólo de ellos y su conciencia.



Nota para los que han pagado para poder usar este sistema:

Situación anterior: algunos veían tus películas sin pagar (es discutible que hubiesen pagado en caso de no poder verlas). Situación posterior: algunos verán tus películas sin pagar (en cuanto la primera persona las ripee y las cuelgue en un formato sin protección) y además has creado un botón rojo de autodestrucción en tu negocio, qué no sólo pueden aprovechar los hackers que deseen ver películas sin pagar (o películas por las que sí han pagado pero no usan windows), sino también empresas rivales, empleados descontentos... Y encima has pagado por ello. Felicidades.