viernes, 4 de mayo de 2007

Cómo funciona la clave de aacs

Edición: He estado leyendo este hilo en doom9 y parece ser que la processing key no es lo que yo había entendido que era (parece que es una especie de device key, y por tanto puede ser revocada). Dentro de poco lo explicaré bien. Lo siento :(

Edición II: He empezado a explicar de nuevo cómo funciona todo. La primera parte la podeis encontrar aqui.

Dejo el post por si quereis seguir leyendolo de todas formas, pero os aviso que aacs no funciona exactamente así.




Todos habreis oido ya lo de la clave de aacs. Si no, aqui y aqui teneis un resumen.


A mi, más que el efecto en las comunidades de internet, y los intentos de censura, me ha interesado más lo que es exactamente este número:
09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0.

¿Es muy importante? ¿Realmente derrota la protección anticopia? Veamoslo...




Cómo funciona aacs

Aacs es un sistema de protección anticopia para los discos de alta definición. Se basa en pasar la pelota directamente a los creadores de los reproductores, con la amenaza de que si permiten (intencionalmente o no) que los usuarios puedan acceder a las claves, su reproductor no podrá reproducir las películas que se publiquen posteriormente.


¿Por qué es necesario ésto? Por lo obvio. Aacs está basado en un modelo criptográfico, pero para ver la película cifrada, las claves tienen que venir con ella (si no, el disco no vale de nada). Por lo tanto, para que el usuario no conozca las claves (a pesar de que las necesita) amenazan a los fabricantes de reproductores con que si de alguna forma salen de la caja negra del software, ellos están fuera del negocio.


El modelo, simplificando, funciona así:



  • La clave de descifrado viene en el disco. La he llamado media key block (mantengo los términos en inglés por si quereis seguir leyendo sobre ésto en otros lados). Viene cifrada, para que no se pueda leer del disco a palo seco sin un reproductor "autorizado".

  • El reproductor tiene una serie de claves denominadas device keys. Con alguna de ellas puede descifrar el media key block, y sacar de allí una clave intermedia, que en los foros de doom9 llaman processing key (creo que en la documentación oficial de aacs le llaman media key). ¿Es esa clave suficiente? No.

  • ¿Por qué? Si ésta fuese toda la protección, no habría sistema anticopia. No sería posible ripear la peli sin conocer alguna device key, pero sí sería posible hacer una copia exacta del disco (bit a bit) y que funcionase exactamente igual que el original. ¿Cómo se impide? Se mete en el disco una cosa que se llama volume id, que está en una parte del disco que las grabadoras domésticas no pueden grabar (de forma que no se pueda copiar de un disco a otro). Es necesario usa esa clave junto con la processing key para obtener la clave de lectura de la película

  • ¿Y cómo se obtiene el volume id? Se supone que el lector de discos sólo se lo da a reproductores autorizados, que se identifican con una clave secreta propia del reproductor. El reproductor "firma" su petición y obtiene el volume id. Calcula también la processing key y con ambas obtiene el title key, con el que puede descifrar el contenido




Vale, y ahora ¿en qué consiste la protección? El truco está en que las claves que tienen los reproductores son específicas para cada reproductor (En teoría podrían hacerse para cada uno individualmente, pero supongo que se darán por modelos). En el disco el media key block está repetido de modo que cada reproductor pueda descifrarlo con al menos una de sus claves. Si un reproductor deja de estar autorizado, las peliculas que salgan posteriormente (NO las que ya han sido publicadas) no tendrán el media key block cifrado con ninguna clave de ese reproductor, de modo que el reproductor dejará de funcionar con las nuevas películas. Así fuerzan a que sean los reproductores los que protejan las claves.


¿Por qué? Veamos los modos de ataque a este sistema


  • El mejor: conseguir los device keys sacándolas del software reproductor o engañándole para que te las de. Con eso ya casi estás. Como he dicho, la protección contra ello es que cuando se publiquen, se revocan y ese reproductor (y los reproductores piratas que usen esas claves) no podrán usar las peliculas que se publiquen desde ese momento. Por supuesto, si alguien las averigua pero no las comparte, podrá seguir usándolas, pero es demasiado trabajo para un usuario corriente, y habrá pocas personas que puedan hacerlo.

  • Además, si no usas un reproductor autorizado, necesitas obtener el volume id de algún modo. Ésto es más fácil. Una forma es espiar la comunicación entre el reproductor autorizado y el lector de discos. Otra que han conseguido es que si tienes un reproductor autorizado y dejas que se identifique, luego puedes pedir el volume id antes de que lo haga él. Una última, mucho más difícil pero más general, es modificar el firmware del lector para que no solicite la identificación. Por ahora todas las copias de una película tienen el mismo volume id, por lo que si lo obtiene una persona en todo el mundo es suficiente.

  • Y ahora el cutre. Si lo otro es muy difícil, lo que se puede hacer es que una persona en todo el mundo obtenga la clave final (title key) de cada película y la publique. Un reproductor pirata podrá usar esa clave para reproducir esa película. Pensad que es algo como los números de serie para activar los programas. ¿Cómo piensan evitarlo? Identificando el reproductor débil que está permitiendo que quien sea esté obteniendo las claves y revocándolo. Hay sistemas que permitirán reducir el número de reproductores que pueden ser con cada película que se desproteja, de forma que con un número suficiente de películas puedan saber exactamente que reproductor es. Por ahora, sin embargo, no están utilizando esos sistemas.


O sea, que ya están suponiendo que es posible obtener las claves (buena suposición, por cierto) y se limitan a reducir el daño que produzcan esas claves en el futuro, y al mismo tiempo tratan de fortalecer el reproductor débil que permite obtener las claves ("si no arreglas ese fallo, no te damos otras").


Ajá... Y ahora, ¿qué es ese número? Ese número es la processing key. No sería gran cosa si no fuese por que todas las películas publicadas hasta ahora (tanto hd-dvd como blu-ray) usan la misma clave, o sea, esa. Muy buena, sí señor... Con eso no importa que no conozcas las claves secretas de los reproductores, porque no necesitas descifrar la clave que viene en el disco, es 09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0. Sólo necesitas el volume id.

¿Es el santo grial? No. Pueden cambiar por fin la clave de una película a otra, pero si no lo han hecho presupongo que algún problema habrá. Es noticia porque la persona que lo ha hecho (arnezami en el foro de doom9) no ha revelado el reproductor débil, y es posible que pueda volver a hacerlo una y otra vez (y si revocan el reproductor a lo mejor otro tiene el mismo error). Ha empezado la carrera, y sólo un bando se ha gastado cientos de millones.



En este otro post explico por qué al final la medida de revocación de reproductores débiles va a ser inútil...



Enlaces: (todo en inglés)
Foro de doom9 donde arnezami publica la clave
Foro de doom9 donde Geremia explica cómo se va a poder modificar el firmware del lector
Serie de posts en freedom to tinker que analizan aacs