Sistema de codificación de contenido
CSS , Content Scramble System es un sistema para proteger contenido de medios digitales en medios de DVD . El sistema es extremadamente inestable a la piratería. Debido a las restricciones a la exportación de tecnologías criptográficas de los Estados Unidos, la longitud de la clave de cifrado está limitada a 40 bits, que es extremadamente pequeña. Además, debido a la vulnerabilidad encontrada, la longitud efectiva de la clave es de aproximadamente 16 bits, es decir, todas las opciones posibles se pueden clasificar en una computadora moderna en solo unos segundos, lo que se debe a un método de protección primitivo. [1]
En 2005, CSS fue reemplazado por el AACS más robusto .
Historial de creación
La especificación del DVD estuvo lista en diciembre de 1995 . Los fabricantes de reproductores de DVD y unidades de DVD necesitaban tener una cantidad significativa de películas y música en DVD. Sin embargo, los estudios de cine notaron que los DVD serían una fuente ideal para copiar películas: la información digital no perdería su calidad cuando se volviera a grabar (los videocasetes no permitían esto debido a la protección de salida analógica APS ). El DVD Consortium estaba obligado a proporcionar una protección anticopia adecuada. Como resultado, el Consorcio de DVD creó el Grupo de Trabajo Técnico de Protección de Copias (CPTWG ) . El 29 de octubre de 1996, el CPTWG anunció el establecimiento de CSS, que fue desarrollado principalmente por Toshiba y Matsushita Electric Industrial . Se creó una organización sin fines de lucro, la Asociación de Control de Copias de DVD (DVD CCA ) , para licenciar el uso de CSS . [2]
Historia de los hacks
El primer rastreador CSS apareció en Internet en noviembre de 1997 con el nombre de softDVDcrack. Este programa en realidad no rompió CSS, sino el reproductor Zoran. Zoran pronto solucionó los errores en la versión pirateada del reproductor, pero las copias de la versión anterior permanecieron en línea. El proceso de piratería fue bastante complicado, por lo que el programa no recibió una distribución masiva. Después de eso, hubo muchas más aplicaciones similares. Sin embargo, el colapso de CSS está asociado con el advenimiento del programa DeCSS en noviembre de 1999 . Fue escrito por un estudiante noruego, Jon Johansen, basado en la ingeniería inversa del código del jugador Xing por un equipo de programadores alemanes MoRE (Masters of Reverse Engineering). Xing no parece haber codificado una clave para desbloquear DVD protegidos. DeCSS se diferencia de todos los programas anteriores en que descifra CSS en lugar de interceptar la transmisión de video de un reproductor con licencia. Además, cualquier computadora que pueda reproducir una película en DVD podrá descifrar CSS con bastante facilidad usando DeCSS . Por lo tanto, DeCSS se extendió rápidamente por todo el mundo, aunque en algunos estados es ilegal publicar código DeCSS en sitios web. [3]
Algoritmo CSS
Hay varios componentes involucrados en el algoritmo CSS: el DVD, la unidad de DVD, el reproductor y el host. Sin embargo, todos deben tener licencia de la Asociación de Control de Copias de DVD (DVD CCA) para usar CSS. El algoritmo CSS consta de dos partes: autenticación y cifrado.
Autenticación
- La unidad de DVD solicita al host una ID de concesión de autenticación de 2 bits . Este valor se utiliza para nombrar la sesión de autenticación.
- La autenticación mutua tiene lugar entre la unidad de DVD y el host. El host genera una secuencia aleatoria de 40 bits y la envía a la unidad de DVD. La unidad de DVD encripta esta secuencia utilizando la función hash CSS , recibe un valor de 80 bits, la llamada clave de desafío , y la envía al host . El propio host descifra la respuesta y la compara con la secuencia generada. Si los valores coinciden, el host confía en la unidad de DVD, ya que solo se considera que los dispositivos y programas con licencia conocen la función hash secreta de CSS. Se realiza la operación inversa (los roles se invierten entre el host y la unidad de DVD), después de lo cual la unidad de DVD confía o no en el host, según el resultado de la comparación.
- Se genera una clave de bus . El host y la unidad de DVD combinan las secuencias aleatorias utilizadas para la autenticación y, mediante la función hash CSS, cada uno obtiene una clave de bus. Esta clave encripta más transferencias de claves entre el host y la unidad de DVD. Esta clave nunca se transmite por el bus.
- El reproductor y el DVD están autenticados. Cada jugador con licencia tiene una o más claves de jugador de una lista de 409 claves. En un disco protegido, en un área invisible, se encuentran una clave de disco ( eng. Disk Key ), cifrada por cada una de las 409 claves, y una clave de autenticación ( eng. Authentication Key ), es decir, la clave de disco cifrada por sí misma. almacenado. Estas claves forman un bloque de 2048 bytes. El bloque se envía al jugador. El reproductor sabe en qué área se encuentra la clave del disco, cifrada con su clave, y descifra el valor en esta área. Luego, para verificar la autenticidad de la clave, descifra la clave de autenticación utilizando la clave de disco encontrada y compara el resultado con la clave de disco. Si las claves coinciden, la autenticación se considera exitosa. De lo contrario, el jugador realiza todas las operaciones con la siguiente clave de jugador conocida, y así sucesivamente. La clave del disco se usa más tarde. [3]
Descifrado
Los datos del DVD se cifran por sector. La información sobre si un sector está encriptado o no se almacena en el encabezado del sector. Solo se cifran los sectores que llevan información de streaming (vídeo, imagen, sonido), el resto, por ejemplo, los encargados de la navegación, no están cifrados. El cifrado de datos se basa en la suma bit a bit con una secuencia de bits pseudoaleatoria y sustitución de bytes de tabla uno a uno. Para implementar una secuencia pseudoaleatoria, se utilizan registros de desplazamiento de retroalimentación lineal ( English Linear Feedback Shift Register, LFSR )
- El reproductor solicita la clave de título de la unidad de DVD . A continuación, descifra los datos recibidos utilizando la clave del disco para obtener la clave de denominación.
- Los registros de desplazamiento CSS se rellenan con bytes de clave de nombre. El algoritmo CSS utiliza dos registros de desplazamiento de retroalimentación lineal: 17 bits y 25 bits. Antes de llenar, la clave de nombre se agrega bit a bit a la clave de sector ( Sector Key ) . La clave de sector está contenida en los bytes 80 a 84 del sector. Después de la suma, el primer y segundo byte de la clave de nombre llenan un registro de 17 bits y el resto llena un registro de 25 bits. Se inserta un uno lógico en el cuarto bit de cada registro de desplazamiento para evitar el bucle cero.
- Los registros de desplazamiento pasan por ocho ciclos y cada uno produce un byte de salida . La función XOR se utiliza como retroalimentación en los registros de desplazamiento. En el caso de un registro de 17 bits, su entrada son los bits 1 y 15, y la salida es el bit 17 y es la salida del registro de desplazamiento. En el caso de un registro de 25 bits, la entrada a la función son los bits 1, 4, 5 y 15, y la salida es el bit 25 y la salida del registro. [cuatro]
- Las salidas de los registros se suman de cierta manera. Antes de la suma, la salida del registro de 17 bits se invierte bit a bit. Los bytes de salida del registro se agregan mediante la adición habitual de ocho bits, y se les agrega el bit de desbordamiento de la adición anterior, y el bit de desbordamiento resultante (el noveno bit de la suma) va a la entrada de la siguiente adición. El resultado forma la salida común de los registros de desplazamiento. En general, la salida de cada registro de desplazamiento puede invertirse o no. De ello se deduce que los registros de desplazamiento pueden operar en cuatro modos. El modo de cifrado de datos se utiliza para cifrar datos.
- El byte de datos cifrados pasa por una tabla de sustitución uno a uno y se agrega a la salida total de los registros de desplazamiento. El resultado se puede reproducir. [cuatro]
Registros de desplazamiento CSS
CSS utiliza dos registros de desplazamiento de retroalimentación lineal . El cambio de registros se produce de izquierda a derecha. El bit de salida es el valor de la función de realimentación. El cuarto bit de cada registro se establece en uno lógico cuando el registro de desplazamiento se llena inicialmente. [cuatro]
Modos de cifrado
CSS tiene cuatro modos de cifrado. El modo se selecciona según la información que se cifra. El modo afecta si la salida de un registro de desplazamiento en particular se invierte o no.
Modo de encriptación
|
LSFR-17
|
LSFR-25
|
Autenticación
|
invertido
|
no invertido
|
Cifrado de clave de bus
|
no invertido
|
no invertido
|
Cifrado de clave de nombre
|
no invertido
|
invertido
|
Cifrado de datos
|
invertido
|
no invertido
|
[cuatro]
Función de distorsión CSS
Al cifrar la clave del disco y la clave del nombre, además de los registros de desplazamiento, se utiliza la función de distorsión ( Función de manipulación en inglés ).
Los bytes A1-A5 son la entrada de la función de distorsión, se sustituyen por los bytes de la clave que se cifra. Los bytes C1-C5 son la salida de la función. Los bytes B1-B5 son valores intermedios. Los bytes k1-k5 son bytes de la salida general de los registros de desplazamiento en el modo correspondiente. Los registros de desplazamiento se llenan inicialmente con la clave utilizada para el cifrado. El símbolo F denota un reemplazo uno a uno de un byte en la tabla. Plus significa adición bit a bit de bytes. La salida de la función de distorsión es la clave cifrada. [una]
Tipos de llaves
El sistema contaba con los siguientes tipos de llaves [5] :
- Teclas del reproductor de DVD . _ Cada fabricante obtuvo la licencia de su propia clave (una de las 409 disponibles) para usar en sus reproductores de DVD de DVD Copy Control Association , una organización fundada por DVD Forum .
- Claves de disco cifradas con claves de reproductor de DVD . Cada reproductor de DVD descifró la clave del disco utilizando su propia clave de reproductor.
- Las claves de título son claves cifradas mediante la clave de disco y necesarias para descifrar fragmentos de datos individuales .
Las claves del disco y del título se escribieron en el área de entrada del disco para que fuera imposible copiarlas directamente [6] .
Vulnerabilidades del sistema y posibles ataques
- Secreto del algoritmo . En criptografía, se acostumbra considerar que los cifrados con un algoritmo de cifrado secreto son más débiles que los cifrados con un algoritmo abierto. Es más probable que un cifrado abierto descubra vulnerabilidades en la etapa de desarrollo y las solucione. Cuando el algoritmo secreto se hace público, el sistema pierde la fuerza criptográfica proporcionada por el secreto del algoritmo y es problemático corregir el algoritmo después de su uso generalizado. El acuerdo de no divulgación de la estructura interna de CSS, celebrado al recibir la licencia, no excluye la posibilidad de divulgación. El uso de CSS en una gran cantidad de programas y dispositivos aumentó el riesgo de desclasificar el algoritmo mediante ingeniería inversa .
- Longitud de clave . Las claves de disco en CSS tienen una longitud de 40 bits. Una clave de esta longitud se puede recoger en una computadora personal moderna en aproximadamente un día. Sin embargo, los desarrolladores de CSS procedieron asumiendo que tal ataque sería lo suficientemente costoso como para usarse en la copia masiva de discos; no descartaron casos aislados de hackeo.
- Ataque (dificultad 2 40 ): Busto.
- Salida de registros de desplazamiento lineal . Con varios bytes conocidos de la salida total de los registros de desplazamiento, puede averiguar el estado inicial de los registros de desplazamiento y, por lo tanto, la clave con la que se llenaron los registros.
- Ataque 1 (dificultad 2 16 ): Para realizar el ataque, necesitas conocer 6 bytes de la salida total de los registros de desplazamiento.
- Asumir estado inicial de registro LFSR-17
- Obtenga 4 bytes de salida de LSFR-17
- Conociendo la salida de LSFR-17, usando la suma bit a bit con 4 bytes de la salida total (que se conocen) obtenga la salida de LSFR-25
- Según la salida, descubra el estado inicial del LSFR-25 "desplazándolo" 4 bytes hacia atrás
- Genera 2 bytes más y compara con los 2 bytes conocidos restantes de la salida total
- Si no coincide, comience de nuevo.
- Ataque 2 (dificultad 2 17 ): Para realizar el ataque, necesitas conocer 5 bytes de la salida total de los registros de desplazamiento. Este ataque es más práctico que el anterior, ya que puedes averiguar 5 bytes de la salida de los registros de desplazamiento del ataque a la función de distorsión.
- Asumir estado inicial de registro LFSR-17
- Obtenga 3 bytes de salida de LSFR-17
- Recibe 3 bytes de salida LSFR-25 (de la misma forma que en el Ataque 1). Para averiguar el estado inicial de LSFR-25, se requiere el conocimiento de un bit más
- Adivina el valor del bit que falta
- Seleccione el valor del bit que corresponde al estado inicial con una unidad lógica en el cuarto bit (signo del estado inicial)
- Si ambos valores coinciden, entonces marque ambos.
- Genera dos bytes más y compáralos con los bytes de salida conocidos
- Si no coincide, comience de nuevo.
- Función de distorsión
De la entrada y salida conocidas de la función de distorsión ( A y C ) puede aprender 5 bytes de la salida de los registros de desplazamiento ( k )
- Ataque (dificultad 2 8 ): Para su implementación es necesario conocer la entrada A y la salida C de la función de distorsión. También se supone que la regla de sustitución uno a uno F también se conoce
- Adivina el valor de k5
- Descubre todos los valores desconocidos de k y B uno por uno
- Compare el valor conocido de C1 y el valor obtenido de los k1 y B1 encontrados
- Repita todos los pasos si no coinciden [4]
- Clave de autenticación
Una clave de autenticación es una clave de disco cifrada con una clave de disco. Esta información facilita la búsqueda de la clave de disco a partir de la clave de autenticación.
- Ataque (dificultad 2 25 ) Se supone que se conoce la clave de autenticación, es decir, la entrada de la función de distorsión A . Los valores de C encontrados serán la clave del disco. Este ataque es de diccionario , por lo que es necesario construir varias tablas:
1) Hacer coincidir cada par de B1 y k2 (con A1 y A2 conocidos ) con el C2
correspondiente 2) Hacer coincidir cada estado inicial de LSFR-25 con el primero, segundo y quinto de los 5 bytes de su salida
- Asuma el valor B2 y el estado inicial del registro LSFR-17
- Encuentre k1 y k5 ( C1 y C2 son conocidos, LSFR-17 se completa con ellos)
- Encuentre todos los k2 posibles para los B1 y C2 seleccionados (no hay más de ocho)
- Encuentre el primer, segundo y quinto byte de la salida del registro LSFR-25 (se puede obtener la salida de LSFR-17, la salida total es k y se conoce)
- Restaurar el estado inicial del registro LSFR-25 de la segunda tabla y así obtener el valor de C3 , C4 y C5 .
- Por analogía con el ataque de la función de distorsión, encuentre B2 y verifique si tal valor es posible dados A1 , A2 y k2
- En caso de discrepancia, vuelva a iniciar el algoritmo [1]
Véase también
Notas
- ↑ 1 2 3 Frank A. Stevenson. Sistema de Criptoanálisis de Contenidos Scrambling . Consultado el 16 de noviembre de 2009. Archivado desde el original el 2 de junio de 2012. (indefinido)
- ↑ Copia archivada (enlace no disponible) . Consultado el 26 de noviembre de 2009. Archivado desde el original el 1 de julio de 2013. (indefinido) Opinión técnica sobre CSS
- ↑ 1 2 Taylor J. DVD Desmitificado . Consultado el 2 de octubre de 2017. Archivado desde el original el 25 de abril de 2018. (indefinido)
- ↑ 1 2 3 4 5 Sistemas Operativos: Diseño e Implementación. Conferenciante: Gregory Kesden . Consultado el 19 de noviembre de 2009. Archivado desde el original el 8 de enero de 2019. (indefinido)
- ↑ Criptografía en entretenimiento doméstico: una mirada a la codificación de contenido en DVD . Consultado el 16 de noviembre de 2009. Archivado desde el original el 2 de junio de 2012. (indefinido)
- ↑ Scott Müller. Actualización y reparación de PC, pág. 744 Archivado el 14 de abril de 2018 en Wayback Machine .
disco óptico |
---|
información general |
| |
---|
Tipos de discos ópticos |
- disco láser / disco láser
- Disco compacto / Disco compacto (CD): CD de audio , disco de música 5.1 , CD de súper audio, CD de fotos , CD-R , CD-ROM , CD-RW , CD de video (CDV), CD de video (VCD), CD de súper video , CD+G , CD-Text , CD-ROM XA , CD-Extra , CD-i Bridge , CD-i
- MiniDisc / MiniDisc : Hi-MD
- DVD : DVD-Audio , DVD-R , DVD+R , DVD-R DL , DVD+R DL , DVD-RW , DVD+RW , DVD-RW DL , DVD+RW DL , DVD-RAM , DVD-D , DVD ENAV
- Disco Blu-ray (BD): BD-R , BD-RE , BD-ROM
- DVD de alta definición
- CH DVD
- VMD de alta definición
- TÚ HACES
- UMD
- Memoria holográfica : HVD
- Almacenamiento de datos ópticos 3D
|
---|
Formatos |
|
---|
Tecnologías de protección |
|
---|