CSS, del inglés Content Scrambling System, es un código de cifrado utilizado en los DVD (Digital Versatile Disc) comerciales, con el fin de cifrar la información multimedia, codificada en formato MPEG-2. Fue creado con el fin de salvaguardar la duplicación ilegal de discos mediante el cifrado de archivos y la introducción de las claves de cifrado en el reproductor hardware.
El Content Scrambling System (CSS) se usa en DVD para cifrar los datos, de manera que solamente los reproductores con licencias de DVD pueden descodificar. El descifrado se realiza de diferentes formas, desarrollando un protocolo de petición-respuesta entre el software reproductor de DVD y la unidad lectora de DVD (ATAPI, SCSI o SATA).
Un sector en un DVD contiene 2048 bytes (igual que el sector de un CD-ROM). Cada sector tiene una cabecera con un paquete MPEG-2 que son precedidas por sus correspondientes cadenas de datos (MPEG-2, AC-3, etc.) u otro tipo de información (PCI y DSI).
Un sector contiene los datos del paquete. Inmediatamente después de su cabecera, comienza la cabecera del PACK, que contiene 2 bits que determinarán el tipo de cifrado.
Estos bits se codifican de la siguiente manera, si el PACK es un paquete de datos:
Una vez obtenido un sector que necesite ser descifrado usando CSS, y la clave secreta correcta, éste es descifrado y está listo para ser reproducido en un PC o en un lector DVD.
El CSS se basa en un esquema simple de cifrado basado en cambios XORs y tablas de búsquedas. La longitud de la clave es de 40 bits, por lo tanto, para romper la llave mediante un ataque mediante fuerza bruta se precisan 2^25 combinaciones, y para un ataque de texto plano solamente 2^18 combinaciones.
La debilidad del CSS es precisamente la longitud extremadamente corta de la clave secreta y errores de cifrado que hacen que el algoritmo sea vulnerable a un ataque, pudiéndose analizar en un tiempo razonable.
Cuando se inserta un nuevo DVD en una unidad DVD, éste debe ser autentificado antes de poder ser usado. La autenticación de disco es ligeramente más complicada. Usa CSS en modo 3.
La autenticación requiere de los siguientes pasos, que deben de realizarse en el orden correcto:
Una vez se den estos pasos, toda la superficie del DVD será legible por la unidad de DVD.
En 1999, el algoritmo CSS fue descubierto y publicado en Internet, por un adolescente noruego de 15 años, junto con un grupo de hackers.
Fue el noruego Jon Lech Johansen quien creó el DeCSS junto al grupo MoRE (Masters of Reverse Engeneering) para poder ver las películas adquiridas legalmente en Linux. El DeCSS (Decoder Content Scramblins System) siempre ha estado rodeado de un halo de prohibición, polémica y muchos problemas para su libre distribución, puesto que existen muchos intereses creados en el negocio de los DVD.
La industria discográfica llevó a juicio al único miembro del grupo con identidad conocida: el joven noruego Jon Johansen, acusado de robo de datos. La justicia noruega absolvió a Jon de todos los cargos. Según el veredicto, usar DeCSS para leer DVD obtenidos legalmente no es ilegal, y no hay ninguna prueba de que Jon quisiera facilitar la copia ilegal.
Si Noruega hubiera tenido una legislación similar a la directiva sobre copyright de la UE, probablemente Jon hubiera sido declarado culpable de quebrantar el artículo 6 (violar una protección de copyright).