METODO Y DISPOSITIVO PARA PROTEGER INFORMACION DEL USUARIO CONTRA MANIPULACIONES
DESCRIPCIÓN DE LA INVENCIÓN La presente invención se refiere a un método y a un dispositivo para proteger información del usuario contra manipulaciones. Además, la presente invención se refiere a un método correspondiente y a ¦ un dispositivo para leer información del usuario que esté protegida contra manipulaciones. Además, la presente invención se refiere a un programa de computadora para implementar esos métodos , y a un portador de registro. Cada vez más y más contenido almacenado en cualquier tipo de portador de registro será protegido contra el acceso no autorizado y el copiado ilegal. Cada vez se aplica más a los CD y es una característica típica de los DVD. Se han propuesto muchas diferentes formas de proporcionar protección contra el copiado. Por lo tanto, en el medio se proporciona información de seguridad, tales como datos de protección contra copiado y otros tipos de datos administrativos. Por • ejemplo,- un disco óptico reescribible comprende información de seguridad en una capa de adaptación. Sin embargo, cada tipo de medio grabable posee riesgos únicos ya que sistemas no apropiados podrían reescribir selectivamente parte de la información de seguridad y por lo tanto permitir el acceso no REF.: 159504 autorizado y el copiado ilegal del contenido almacenado en ese medio . Por lo tanto es útil registrar el estado de los paquetes que contengan la información de seguridad. A medida 5 que los paquetes se vuelven inestables, su estado cambia. Rastreando este estado se mejora la conflabilidad y robustez, dado que los paquetes inestables o los paquetes que tienen un estado predeterminado o ilegal pueden ser fácilmente identificados . 0 Sin embargo no existe manera obvia de almacenar el estado de un paquete. Podría hacerse explícitamente, es decir almacenándolo en un archivo, pero esa manera sería vulnerable a la manipulación e incrementaría la sobrecarga, el uso de canales de subcódigo para almacenar el estado, conlleva el 5 riesgo de que la solución no sea compatible con todas las aplicaciones existentes de los canales de subcódigo. Además, la información que se encuentra en los canales de subcódigo puede, en principio, ser fácilmente manipulada. Actualmente algunos dispositivos de escritura de CD y los elementos 0 físicos de cómputo (software) del dispositivo de escritura, ¦ ·' soportan la escritura para todos los campos en el sector y todos los subcanales. Por lo tanto, cuando se usan dispositivos heredados, no es posible almacenar información que califique sectores en una manera que sea segura contra la 5 manipulación.
Por lo tanto, un objeto de la presente invención es proporcionar un método y dispositivo para proteger la información del usuario contra manipulaciones, en particular para registrar el estado de un paquete que contenga información del usuario, en una manera que sea segura contra manipulación, sin incrementar significativamente la sobrecarga requerida. Además, se proporcionará un método y dispositivo correspondientes para la lectura de la información del usuario protegida en esta manera. Este objetivo se consigue a través de un método de conformidad con la reivindicación 1, que comprende los pasos de: -almacenar la información del usuario en paquetes del canal del usuario, de un canal del usuario, -asignar información de estado a los paquetes del canal del usuario, en donde la información de estado se usa para indicar si un paquete del canal del usuario ha sido manipulado y/o es o no inestable, y -almacenar la información de estado asignada a los paquetes del canal del usuario en un canal oculto, adicional, incrustado en el canal del usuario, la información de estado asignada a un paquete del canal del usuario, es almacenada en el paquete del canal oculto asociado. La invención se basa en la idea de usar un canal oculto, la cual es una forma de ocultar información en una manera tal que dispositivos heredados no tengan acceso, ni cuando se realice la lectura ni cuando se realice la escritura, para almacenar información que califique un sector o grupo de sectores. De esta manera, el estado de los paquetes, es decir de un sector o de un grupo de sectores, puede ser almacenado en una forma segura contra la manipulación . El concepto del canal oculto para ocultar información contra el acceso ilegal, es conocido per se. Se han propuesto diferentes formas para emplear ese canal oculto. Una posibilidad, descrita en la WO 02/15185, es detectar una polaridad de una longitud de corrida en una primera posición predeterminada de una secuencia de códigos limitada por la longitud de corrida y para fijar un parámetro que refleje el grado de libertad presente en el código del canal limitado por la longitud de corrida, por ejemplo la selección de un patrón de bitios de fusión en un estándar de CD, en base a la polaridad detectada, a fin de obtener una polaridad predeterminada de una longitud de corrida, en una segunda posición predeterminada, subsecuente, de la secuencia de códigos', limitada por la longitud de corrida. La polaridad predeterminada corresponde entonces a un valor binario de la información secundaria. De esta manera, se proporciona un canal oculto con una capacidad pequeña, que se encuentra ubicado muy cerca del canal físico, de manera tal que es muy difícil detectar la información secundaria desde el flujo de bitios EFM. Otra posibilidad es usar una señal oscilante, es decir una variación de la pista de registro en la dirección radial en un disco óptico, para almacenar información en esa 5 variación. Únicamente las unidades de disco apropiadas podrán leer la información codificada en esa variación. La invención se refiere también a un método para leer información del usuario protegida contra manipulaciones, mediante un método tal como el que se describió anteriormente, 0 en donde la información del usuario es almacenada en paquetes del canal del usuario, de un canal del usuario, la información de estado es asignada a esos paquetes del canal del usuario y la información de estado es usada para indicar si un paquete del canal del usuario ha sido o no manipulado y/o si es o no 5 inestable, y la información de estado asignada a esos paquetes del canal del usuario está almacenada en un canal oculto, adicional, incrustado en el canal del usuario, la información de estado asignada a un paquete del canal del usuario es almacenada en el paquete del canal oculto asociado, que 0 comprende los pasos de : - · -leer la información del usuario de uno o más paquetes del canal del usuario, de ese canal del usuario, -leer la información de estado asociada, de los paquetes del canal oculto respectivos, en el canal oculto, 5 -verificar si la información de estado leida indica una manipulación o inestabilidad de los paquetes del canal del usuario respectivos, y -ignorar la información del usuario leída de paquetes del canal del usuario, manipulados o inestables. Además la invención se refiere a un dispositivo para proteger información del usuario contra manipulaciones, que comprende : -primeros medios de almacenamiento para almacenar la información del usuario en paquetes del canal del usuario, de un canal del usuario, -medios de asignación para asignar información de estado a los paquetes del canal del usuario, la información de estado se usa para indicar si un paquete del canal del usuario ha sido manipulado y/o si es o no inestable, y -segundos medios de almacenamiento para almacenar información de estado asignada a esos paquetes del canal del usuario, en un canal oculto adicional, incrustado en el canal del usuario, la información de estado asignada a un paquete del canal del usuario es almacenada en el paquete del canal oculto asociado. Aún más, la invención se refiere a un dispositivo para la lectura de información del usuario, protegida contra manipulaciones, mediante un método tal como el que se describió anteriormente, en donde la información del usuario es almacenada en paquetes del canal del usuario, de un canal del usuario, la información de estado es asignada a los paquetes del canal del usuario, y la información de estado es usada para indicar si un paquete del canal del usuario ha sido manipulado y/o si es o no inestable, y la información de estado asignada a esos paquetes del canal del usuario es almacenada en un canal oculto adicional, incrustado en ese canal del usuario, la información de estado asignada a un paquete del canal del usuario es almacenada en el paquete del canal oculto asociado, que comprende: -primeros medios de lectura para leer la información del usuario de uno o más paquetes del canal del usuario, de ese canal del usuario, -segundos medios de lectura para leer la información de estado asociada, de los paquetes del canal oculto respectivos, almacenados en el canal oculto, -medios de verificación para verificar si la información de estado leída indica una manipulación o inestabilidad de los paquetes del canal del usuario respectivos, y -medios de control para ignorar la información del
' usuario · leída de los paquetes del canal del usuario, manipulados o inestables . En otro aspecto la invención se refiere a un programa de computadora que comprende medios de códigos de programa de computadora para hacer que una computadora ejecute los pasos de los métodos descritos anteriormente, cuando el programa de computadora sea ejecutado en una computadora. Finalmente, la invención se refiere a un portador de registro, en particular un portador de registro óptico que 5 comprende : -información del usuario almacenada en paquetes del canal del usuario, de un canal del usuario, -información de estado almacenada en un canal oculto adicional, incrustado en el canal del usuario, para proteger 0 la información del usuario contra manipulaciones, en donde la información de estado se usa para indicar si un paquete del canal del usuario, al cual se encuentra asignada la información de estado, ha sido manipulado y/o es o no inestable, y en donde la información de estado es almacenada 5 en un paquete del canal oculto asociado con el paquete del canal del usuario de la información del usuario . Los discos ópticos, tales como por ejemplo un CD-RW que cumpla con la especificación de almacenamiento digital seguro conocida como Sapphire, comprende un área conocida como área 0 de depósito de claves, la cual es un área reservada en el área
¦ ·' de entrada para almacenar cierta información del usuario, tales como claves criptográficas, para el uso de derechos y otra información de seguridad o administrativa. Un método para proteger la información del usuario, de conformidad con la 5 invención, se aplica preferentemente para proteger información del usuario que será almacenada en el área de depósito de claves, en un disco óptico. Deberá observarse que la invención puede ser aplicada a cualquier disco óptico, es decir discos únicamente de lectura, grabables o reescribibles . En otro aspecto de la invención, la información de estado comprende valores de estado predeterminados, asignados a los paquetes del canal del usuario y almacenados en esos paquetes del canal oculto. Los valores de estado indican el estado actual de un paquete del canal del usuario y pueden ser revisados para verificar si el paquete ha sido manipulado o si es o no inestable. Además, los valores de estado pueden ser fijados en valores predeterminados para indicar qué tipo de información es almacenada en el paquete del canal del usuario correspondiente. Deberá observarse que la ausencia de la información de estado indica en general un paquete manipulado o inestable . Como ya se mencionó, el método para proteger información del usuario, contra manipulaciones, es aplicado preferentemente para proteger información administrativa y/o de seguridad, en particular información para protección contra copiado, derechos de uso, claves de recursos, listas de revocación de dispositivos, indicadores de depósitos de claves y/o calves criptográficas. Esta información es almacenada en un área de depósito de claves, en un disco óptico. En una modalidad preferida se propone que un valor de estado de $00 sea asignado a un paquete del canal del usuario, que contenga información administrativa y/o de seguridad, un valor de estado de una secuencia de bitios predeterminada es asignado a paquetes del canal del usuario vírgenes, que no contengan información del usuario, una clave criptográfica, en particular una clave del depósito de claves, es asignada a un paquete del canal del usuario que contenga derechos de uso y claves de recursos, en particular un depósito de claves, y no se asigna valor alguno a paquetes del canal del usuario inestables o manipulados. De esta manera se distinguen cuatro tipos diferentes de paquetes del canal del usuario, que comprenden diferentes tipos de información, y se asignan diferentes tipos de valores de estado a esos diferentes tipos de paquetes del canal del usuario. Mediante el uso de diferentes valores de estado asignados a los diferentes tipos de paquetes y almacenados en los paquetes del canal oculto, respectivos, un dispositivo d lectura puede identificar y distinguir el estado del paquete del canal del usuario correspondiente y puede verificar si la información del usuario almacenada en un paquete del canal del usuario será ¦¦¦ usada o. no. Esto puede ser realizado por el dispositivo de lectura en un nivel de elementos físicos de cómputo (hardware) sin involucrar ningún programa grabado en memoria inalterable o un dispositivo principal, siendo entonces una barrera difícil para los intrusos.
Preferentemente la información administrativa y/o de seguridad es almacenada en el primer paquete del canal del usuario, válido, de un área de depósito de claves proporcionada en el área de entrada en un disco óptico, y derechos de uso y claves de recursos, en particular un depósito de claves, son almacenados en al menos un paquete del canal del usuario, particularmente en el 10° y 19° paquete del canal del usuario, del área del depósito de claves. Si algunos de esos paquetes se han vuelto inestables o . han sido manipulados, la información del usuario ha sido desplazada hacia el primer paquete disponible previo. Modalidades preferidas, adicionales, de la invención, se definen en las reivindicaciones dependientes . Ahora se explicará la invención con mayores detalles, con referencia a los dibujos, en los que: La figura 1 muestra un diagrama de bloques de un dispositivo para proteger información del usuario, de conformidad con la invención, La figura 2 muestra un diagrama de bloques de un dispositivo para leer información del usuario de conformidad con la invención, y La figura 3 muestra una modalidad de la estructura de datos en un área de depósito de claves. La figura 1 muestra un diagrama de bloques de un dispositivo para proteger información del usuario contra manipulación de conformidad con la invención. La información del usuario U, tal como información administrativa y/o de seguridad, por ejemplo para la protección de contenido contra copiado, almacenada en el mismo medio o transmitida conjuntamente con la información del usuario, es almacenada mediante primeros medios de almacenamiento 1 en un canal del usuario. Ese canal del usuario es dividido en paquetes del canal del usuario, en donde cada paquete comprende uno o más sectores. De esta manera, los datos del usuario U se dividen y almacenan en esos paquetes. En una unidad de asignación 2, la información de estado del estado de los paquetes del canal del usuario, es asignada a esos paquetes. Por definición, diferentes tipos de estados de esos paquetes deberán ser distinguidos mediante el uso de tipos predeterminados de información de estado. Esa información de estado es almacenada posteriormente por segundos medios de almacenamiento 3 en un canal oculto adicional, al cual no tienen acceso los dispositivos heredados, previniendo así el acceso no autorizado a la información de estado o haciéndolo más difícil. Más particularmente, esa información de estado es almacenada en paquetes del canal oculto de ese canal oculto, en donde los paquetes del canal oculto son preferentemente asignados, cada uno, a un paquete del canal del usuario, asociado, lo cual conduce entonces a una correlación 1:1. Finalmente, los datos almacenados en el canal del usuario y la información de estado almacenada en el canal oculto, son registrados por una unidad de registro 4 en un medio de registro 5, tal como un disco óptico. Deberá observarse que el medio 5 puede ser cualquier tipo de medio de registro, tales como medios CD, DVD, DV , discos duros, discos MO o cintas. Además, la invención se aplica también cuando los datos del usuario y la información de estado no están registrados en un medio pero son transmitidos como un flujo de datos a través de una red, tal como la Internet. La figura 2 muestra un diagrama de bloques de un dispositivo para leer información del usuario protegida contra manipulaciones, tal como se describió anteriormente. En un primer paso la información del usuario es leída por primeros medios de lectura 6 del portador de registro 5, en particular información del usuario es leída de uno o más paquetes del canal del usuario. Al mismo tiempo, o posteriormente, segundos medios de lectura 7 leen la información de estado asociada, para los paquetes del canal del usuario, es decir logra acceso a los paquetes del canal oculto, correspondientes, para recuperar la información de estado almacenada en los mismos. ' Esa .información de estado es verificada mediante una unidad de verificación 8 a fin de verificar si esa información de estado indica una manipulación o si hay o no inestabilidad de un paquete del canal del usuario respectivo. En la modalidad mostrada, del dispositivo de lectura, finalmente se proporciona una unidad de control 9 para controlar la salida de los datos leídos del usuario, mediante el uso de la información de estado verificada. Preferentemente los datos del usuario que han sido leídos de paquetes del canal del usuario, manipulados o inestables, no serán emitidos, sino que serán ignorados, mientras que los datos del usuario que han sido leídos de paquetes del canal del usuario, válidos, serán emitidos . Una modalidad preferida de la invención, aplicada para proteger información de seguridad almacenada en un área de depósito de claves (KLA, por sus siglas en inglés) en el área de entrada de un CD óptico reescribible (CD-RW) se explicará ahora con referencia a la figura 3. En la misma se muestra la estructura de datos del área de depósito de claves en un CD-RW. En una modalidad particular de ese disco con formato CD-RW, el área de depósito de claves KLA tiene un espacio reservado de una longitud predeterminada, por ejemplo, una longitud de 10 segundos, empezando en un tiempo predeterminado, por ejemplo 90 segundos, antes del inicio del área de programas PA. La KLA, por ejemplo, empieza en 98:30:00 y finaliza en 98:39:74. Como un ejemplo, 19 paquetes de 64 KB cada uno (1216 KB en total) son escritos en esta área durante el formateo, iniciando al principio de la KLA. El espacio reservado restante no es ocupado. En el formateo todos los bytes de los datos del usuario en la KLA serán fijados en $AA.
En el primer bloque del primer paquete válido Pl de la KLA se localiza un espacio del parámetro de la capa de adaptación (ALP) . Esta estructura contiene indicadores del depósito de claves, en donde el depósito de claves es un contenedor para derechos de uso y claves de recursos. El ALP no está encriptado. Contigua al ALP se coloca una lista negra (BL) o lista de revocación de dispositivos, es decir una lista que contiene indicadores de dispositivos que han sido declarados inválidos, que inicia en el mismo sector. La BL no está encriptada. El tamaño de la BL es a lo más de 3.5 KB. Al menos un sector se encuentra asignado al ALP y BL combinados. Además, un bloque de claves de habilitación (E B) , es decir una estructura de datos que es usada para comunicar una clave criptográfica secreta a un conjunto de dispositivos autorizados o aplicaciones de Computadoras Personales (PC) , es colocada en la KLA, contigua a la BL, iniciando en el primer sector siguiente. El EKB no está encriptado. El tamaño del EKB es a lo más de 60 KB (30 sectores) . El ALP, la BL y el EKB, combinados, ocupan un paquete (Pl) . Los sectores parcialmente ocupados o vacíos serán rellenados con $00. La modalidad mostrada del disco reescribible, contiene además dos casos idénticos del depósito de claves KL, cada uno de los cuales ocupa al menos un paquete y a lo más dos paquetes. Sus ubicaciones son registradas en el ALP, en KL1, y KL2, respectivamente. Ambos duplicados de la KL son encriptados con la misma clave aleatoria. Los sectores parcialmente ocupados o vacíos serán rellenados con $00. La ubicación inicial del primer caso de KL ( L1) es el 10° paquete PIO de la KLA. La ubicación inicial del segundo caso de KL (KLZ) es el 19 paquete P19 de la KLA. Sin embargo, en la modalidad mostrada, los dos casos KL, KL1 y KL2 , han sido reubicados en los paquetes P9 y P18, es decir en el paquete precedente más cercano que se encuentre libre, porque los paquetes iniciales PIO y P19 se han vuelto inestables tal como es indicado por las cruces en esos paquetes . Todos los bytes de datos del usuario en esos paquetes inestables PIO y P19 han sido fijados en $FF mientras que el contenido completo de esos paquetes ha sido reubicado en paquetes del canal del usuario P8 y P18. Todos los otros paquetes, es decir los paquetes P2-P8 y P11-P17 son paquetes vacíos y se encuentran disponibles para el almacenamiento. Para indicar el estado de un paquete se introduce un canal oculto adicional y es incrustado en el canal de datos ¦·. del usuario. Ese canal oculto es dividido en paquetes del canal oculto, para almacenar información de estado para cada paquete del canal del usuario, por separado. Los posibles valores contenidos en el canal oculto, para la modalidad mostrada en la figura 3, son: a) vacío: no se encuentra registrado ningún valor en el paquete del canal oculto, lo cual significa que el paquete del canal del usuario, correspondiente, no se usa y no será usado por un dispositivo de registro para almacenar información
5 administrativa o de seguridad; b) una secuencia de bitios predeterminada, en particular $(12 04 07 DO 17 0E 0A 06) seguida de ceros: indica un paquete virgen que se encuentra disponible para el uso por la unidad de almacenamiento; 0 c) $00 indica un paquete del canal del usuario que contiene los datos administrativos actuales, en particular a ALP, BL y E B; d) una clave, por ejemplo un número de 128 bitios : indica que el canal oculto contiene una clave del canal oculto 5 y que el paquete del canal del usuario, asociado, contiene un depósito de claves . Al inicio todos los paquetes en la KLA, excepto el primer paquete Pl, son marcados como sectores vírgenes registrando la secuencia de bitios predeterminada (ver el 0 inciso b anterior) en los paquetes del canal oculto
- ¦ correspondientes. Al disponer de una cadena reconocible, seguida por $00 se reduce la probabilidad de una coincidencia con una clave registrada. La posibilidad de una coincidencia puede ser eliminada completamente imponiendo el requerimiento 5 de que la clave del canal oculto no pueda ser la mitad cero.
En el primer paquete Pl de la KLA se registran los datos administrativos (ALP, BL y EKB) . El paquete del canal oculto correspondiente contiene $00. Si se registra un depósito de claves, tal como se muestra en la figura 3 para los paquetes P9 y P18 en donde se registran dos casos del depósito de claves, KL1 y KL2 , la clave del depósito de claves, es decir la clave criptográfica que se usa para encriptar el depósito de claves, es registrada en los paquetes del canal oculto correspondiente de los paquetes del canal del usuario P9 y P18. Si algún bloque del paquete Pl que contenga el ALP se ha vuelto inestable, el contenido completo del paquete se reubica en el próximo paquete libre en la KLA. Los paquetes disponibles se seleccionan en base a la presencia de la secuencia de bitios para paquetes vacíos (ver el inciso b anterior) en el canal oculto. Todos los bitios de datos del usuario en los paquetes inestables serán fijados en $FF, y no se escribe información alguna en el paquete de canal oculto asociado . Los paquetes del canal del usuario cuyos paquetes del canal oculto asociado no contengan valor, serán ignorados por un dispositivo de lectura, que pueda ser parte de un sistema de seguridad que logre acceso a ese portador de registro. Por lo tanto los paquetes inestables o manipulados no serán usados en forma alguna por un dispositivo de lectura apropiado.
Además, los paquetes inestables típicamente pueden no ser leídos del todo. Si un paquete de canal no oculto que contenga el valor $00 se encuentra presente en la KLA, entonces la KLA o se encuentra dañada o ha sido manipulada en una manera no autorizada. La ubicación de depósitos de claves válidas es determinada explorando la KLA. Paquetes de depósito de claves válidas tienen un valor en el paquete del canal oculto asociado, que no es igual a $00 o la secuencia de bitios que indica un paquete vacío. El paquete del canal del usuario que comprende los datos administrativos (ALP, BL, EKB) se reconstruye y registra en el primer paquete virgen, contando desde el inicio de la KLA. Si no se encuentra presente un paquete de canal oculto que tenga un valor del canal oculto diferente a $00, excepto para paquetes del canal oculto que no tengan valor, entonces no encuentra presente un depósito de claves válidas. No obstante, si se encuentra presente un depósito de claves, se encuentra dañado, sin posibilidades de ser reparado, y/o ha sido manipulado. Si no se encuentran presentes del todo valores de información de estado, en algún paquete de canal oculto en el área reservada para la KLA, no hay KLA registrada del todo. De conformidad con la presente invención la información de estado generalmente puede ser escrita únicamente por dispositivos apropiados. Si un dispositivo no apropiado, por ejemplo un dispositivo heredado, escribe un paquete en la KLA, el canal oculto será nulo. La presente invención proporciona seguridad adicional porque los paquetes del canal del usuario, manipulados, que contengan un ALP o depósito de claves, son ignorados ya que no contienen información de estado válida en los paquetes del canal oculto asociado. Además, se proporciona una conflabilidad incrementada ya que la distinción entre depósitos de claves viejos que no tienen un valor de información de estado de canal oculto y sectores vírgenes que tienen una secuencia de bitios predeterminada en el canal oculto, previene la reutilización de paquetes inestables. Además se incrementa la robustez, ya que es más fácil encontrar el depósito de claves válidas si se pierde el ALP: el primer depósito de claves válidas está precedido por un bloque virgen o por el ALP. El concepto de la invención reside entonces en la información de estado que es almacenada en un canal oculto adicional , que puede ser leída únicamente por dispositivos apropiados . Se hace constar que con relación a esta fecha, el mejor rnétodo_ -conocido, por la solicitante para llevar a la práctica la citada invención, es el que resulta claro de la presente descripción de la invención.