ES2271427T3 - Arquitectura de servidor enchufable asegurada para sistemas de gestion de derechos digitales. - Google Patents

Arquitectura de servidor enchufable asegurada para sistemas de gestion de derechos digitales. Download PDF

Info

Publication number
ES2271427T3
ES2271427T3 ES03013564T ES03013564T ES2271427T3 ES 2271427 T3 ES2271427 T3 ES 2271427T3 ES 03013564 T ES03013564 T ES 03013564T ES 03013564 T ES03013564 T ES 03013564T ES 2271427 T3 ES2271427 T3 ES 2271427T3
Authority
ES
Spain
Prior art keywords
rights
attachable
digital
drm
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03013564T
Other languages
English (en)
Inventor
Scott C. Cottrille
Peter David Waxman
Vinay Krishnaswamy
Chandramouli Venkatesh
Attila Narin
Gregory Kostal
Prashant Malik
Vladimir Yarmolenko
Frank Byrum
Thomas K. Lindeman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2271427T3 publication Critical patent/ES2271427T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un sistema (300) para suministrar servicios de gestión de derechos digitales, comprendiendo el sistema (300): un programa de servicio que proporciona un entorno de procesamiento para realizar un servicio (306) de gestión de derechos digitales; y una pluralidad de componentes acoplables, cada uno de los cuales realiza una tarea respectiva asociada al servicio de gestión de derechos digitales, en el cual cada uno entre la pluralidad de componentes acoplables se integra en el entorno de procesamiento según un respectivo conjunto predefinido de reglas de interfaz.

Description

Arquitectura de servidor enchufable asegurada para sistemas de gestión de derechos digitales.
Campo técnico
Esta invención se refiere a sistemas de gestión de derechos digitales. Más en particular, la invención se refiere a arquitecturas acoplables para baterías de procesos en sistemas de gestión de derechos digitales.
Antecedentes de la invención
La gestión y el control de cumplimiento de los derechos digitales son sumamente deseables en relación a contenidos digitales tales como audio digital, vídeo digital, texto digital, datos digitales, multimedios digitales, etc., donde tales contenidos digitales han de distribuirse a uno o más usuarios. Los típicos modos de distribución incluyen dispositivos tangibles tales como un disquete magnético, una cinta magnética, un disco compacto (CD) óptico, etc., y medios intangibles tales como una cartelera electrónica, una red electrónica, Internet, etc. Al ser recibidos por el usuario, dicho usuario representa o reproduce el contenido digital con la ayuda de un dispositivo de representación adecuado, tal como un reproductor de medios en un ordenador personal, o algo similar.
En un posible escenario, un propietario de contenidos, o un propietario de derechos, tal como un autor, un editor, un difusor, etc., desea distribuir tales contenidos digitales a cada uno entre muchos usuarios o destinatarios, a cambio de un arancel de licencia o alguna otra consideración. En tal escenario, entonces, el contenido puede ser una canción, un álbum de canciones, una película, etc., y la finalidad de la distribución es generar los aranceles de licencia. Tal propietario de contenidos, si se le da la opción de escoger, probablemente desearía restringir lo que el usuario puede hacer con tales contenidos digitales distribuidos. Por ejemplo, el propietario de contenidos desearía restringir al usuario la posibilidad de copiar y redistribuir tales contenidos a un segundo usuario, al menos de forma tal que niegue al propietario de contenidos un arancel de licencia de tal segundo usuario.
Además, el propietario de contenidos puede desear brindar al usuario la flexibilidad de adquirir distintos tipos de licencias de uso a distintos aranceles de licencia, comprometiendo a la vez al usuario con los términos de cualquier tipo de licencia que se adquiera de hecho. Por ejemplo, el propietario de contenidos puede desear permitir que los contenidos digitales distribuidos se reproduzcan sólo un número limitado de veces, sólo por un cierto tiempo total de duración, sólo sobre un cierto tipo de máquina, sólo sobre un cierto tipo de reproductor de medios, sólo por un cierto tipo de usuario, etc.
En otro escenario posible, un desarrollador de contenidos, tal como un empleado en una organización, desea distribuir tales contenidos digitales a uno o más empleados en la organización, o a otros individuos fuera de la organización, pero desearía evitar que otros representaran los contenidos. Aquí, la distribución de los contenidos es más afín a la compartición de contenidos con base en una organización, de manera confidencial o restringida, en contraposición con la distribución de base amplia, a cambio de un arancel de licencia o de alguna otra consideración. En tal escenario, entonces, los contenidos pueden ser una presentación de documento, una hoja de cálculo, una base de datos, un correo electrónico, o algo similar, tal como lo que puede intercambiarse dentro de un entorno de oficina, y el desarrollador de contenidos puede desear asegurarse de que los contenidos permanecen dentro del entorno de oficina, y que no son reproducidos por individuos no autorizados, tales como, por ejemplo, los competidores o adversarios. Nuevamente, tal desarrollador de contenidos desea restringir lo que un destinatario puede hacer con tales contenidos digitales distribuidos. Por ejemplo, el propietario de los contenidos desearía restringir al usuario en cuanto a copiar y redistribuir tales contenidos a un segundo usuario, al menos de manera tal que exponga los contenidos fuera del ámbito de los individuos que deberían estar autorizados para reproducir los contenidos.
Además, el desarrollador de contenidos puede desear proporcionar a diversos destinatarios distintos niveles de derechos de reproducción. Por ejemplo, el desarrollador de contenidos puede desear permitir que los contenidos digitales protegidos sean visibles y no imprimibles con respecto a una clase de individuos, y visibles e imprimibles con respecto a otra clase de individuos.
Sin embargo, y en cualquier escenario posible, después que ha tenido lugar la distribución, tal propietario, o desarrollador, de contenidos, tiene muy poco control, si acaso, sobre los contenidos digitales. Esto es especialmente problemático a la vista del hecho de que prácticamente todo ordenador personal incluye el software y el hardware necesarios para hacer una copia digital exacta de tales contenidos digitales, y para descargar tal copia digital exacta a un disco grabable, magnético u óptico, o para enviar tal copia digital exacta por una red, tal como Internet, a cualquier destino.
Por supuesto, como parte de una transacción en la cual se distribuyen los contenidos, el propietario o desarrollador de contenidos puede requerir al usuario o destinatario de los contenidos digitales que prometa no redistribuir tales contenidos digitales de manera indebida. Sin embargo, tal promesa es fácil de hacer y fácil de romper. Un propietario o desarrollador de contenidos puede intentar impedir tal redistribución por medio de cualquiera de diversos dispositivos de seguridad conocidos, que usualmente involucran cifrado y descifrado. Véase, por ejemplo, KONSTANTAS D ET AL: "Agent-based commercial dissemination of electronic information" ["Diseminación comercial basada en agentes de información electrónica"], COMPUTER NETWORKS, ELSEVIER SCIENCE PUBLISHERS B.V., AMSTERDAM, NL, vol. 32, nº 6, 30 de mayo de 2000 (2000-05-30), páginas 753-765, ISSN: 1389-1286. Sin embargo, no hay prácticamente nada que impida a un usuario medianamente determinado el descifrar contenidos digitales cifrados, guardando tales contenidos digitales en formato no cifrado, y redistribuyendo luego los mismos.
Por muchas razones, la tecnología del servidor de DRM es dinámica. Es decir, según la tecnología se desarrolla a lo largo del tiempo, o según surgen nuevas amenazas para la seguridad de los contenidos digitales, se tiende a emplear distintos enfoques para realizar ciertas tareas a fin de proporcionar servicios específicos. Frecuentemente, la provisión de un servicio de DRM específico involucra la realización de un cierto número de tareas distintas. Sin embargo, de tanto en tanto, un proveedor podría desear realizar sólo una tarea, o unas pocas, de manera distinta. El proveedor y el usuario, típicamente, preferirían que el sistema, en su totalidad, fuese perturbado lo menos posible. Además, debido al coste y a otras restricciones, distintos usuarios de tales servidores de DRM desean o requieren sistemas que se comportan de manera diferente. En consecuencia, sería ventajoso si se dispusiera de sistemas y procedimientos por los cuales sólo pudiesen cambiarse tareas seleccionadas dentro de la provisión de un servicio de gestión de derechos digitales, de manera modular, sin la necesidad de modificar todo el programa de provisión de servicios.
Además, debido a que una típica instalación de DRM puede proporcionar un cierto número de servicios de gestión de derechos digitales, tales como servicios de edición, de licencias, de federación, de suscripción, etc., es deseable que estos servicios se suministren de manera tal que permita al proveedor o administrador de la instalación mantener el sistema tan eficientemente como sea posible. Por ejemplo, el administrador podría no querer tener que actualizar el servicio de edición cada vez que se realiza un cambio en el componente de licencias, y viceversa. En consecuencia, sería ventajoso si se dispusiera de sistemas para proporcionar estos servicios independientemente entre sí. Hay una necesidad en la tecnología, por lo tanto, de un enfoque modular para el suministro de una pluralidad de servicios de DRM independientes entre sí. Tales enfoques serían especialmente ventajosos si permitiesen la categorización como componentes de la lógica comercial clave, de forma tal que los terceros pudieran extender y modificar la funcionalidad de la DRM y la lógica comercial de la plataforma.
Resumen de la invención
Según las Reivindicaciones 1 y 21, la invención proporciona arquitecturas seguras acoplables de servidores para sistemas de gestión de derechos digitales. Un servidor de gestión de derechos digitales según la invención se basa en una arquitectura de baterías de procesos, en la cual cada uno entre una pluralidad de servicios de gestión de derechos digitales se realiza en una respectiva batería de procesos, y las respectivas baterías de procesos son independientes entre sí. Tales servicios pueden incluir contenidos digitales con gestión de derechos de edición y de licencia. Cada batería de procesos incluye un programa de servicio que brinda un entorno de procesamiento para llevar a cabo un servicio de gestión de derechos digitales, y una pluralidad de componentes acoplables, cada uno de los cuales realiza una tarea respectiva, asociada al servicio de gestión de derechos digitales.
Un proveedor de un sistema de DRM puede proporcionar los programas de servicio, y una pluralidad de opciones acoplables de gestión de derechos digitales, cada una de las cuales está asociada a un respectivo componente acoplable. Basándose en las selecciones efectuadas por el destinatario de la instalación, los componentes acoplables deseados pueden integrarse en el entorno de procesamiento según un respectivo conjunto predefinido de reglas de interfaz.
La pluralidad de componentes acoplables puede incluir uno o más componentes acoplables de extensión, que realizan sus respectivas tareas basándose en la ocurrencia de ciertos sucesos prescritos. Un componente acoplable de extensión puede adaptarse para detener el procesamiento del programa de servicio. La pluralidad de componentes acoplables también puede incluir uno o más componentes acoplables asincrónicos, que realizan sus respectivas tareas después de que se ha completado el procesamiento de la batería principal de procesos para la acción solicitada.
Breve descripción de las diversas vistas de los dibujos
Otras características de la invención son adicionalmente evidentes a partir de la siguiente descripción detallada de las realizaciones de la presente invención, considerada conjuntamente con los dibujos adjuntos.
La Fig. 1 es un diagrama en bloques que representa un ejemplo de entorno informático no limitador, en el cual puede implementarse la presente invención.
La Fig. 2 es un diagrama en bloques que representa un ejemplo de entorno en red, que tiene diversos dispositivos informáticos en los cuales puede implementarse la presente invención.
La Fig. 3 es un diagrama en bloques funcionales de una realización preferida de un sistema y un procedimiento según la invención, para editar contenidos digitales.
La Fig. 4 proporciona un diagrama de flujo de una realización preferida de un procedimiento según la invención, para contenidos digitales con gestión de derechos de edición.
La Fig. 4A es un diagrama en bloques que muestra la estructura de una etiqueta firmada de derechos, según lo producido por el procedimiento de la Fig. 4.
La Fig. 5 es un diagrama en bloques funcionales de una realización preferida de un sistema y un procedimiento según la invención, para contenidos digitales con gestión de derechos de licencia.
Las Figs. 6A y 6B proporcionan un diagrama de flujo de una realización preferida de un procedimiento según la invención, para contenidos digitales con gestión de derechos de licencia.
La Fig. 7 es un diagrama de flujo que muestra las etapas clave llevadas a cabo al reeditar una etiqueta de derechos según una realización de la presente invención.
La Fig. 8 es un diagrama en bloques que muestra un certificado emitido por un servidor de DRM a un usuario, a fin de permitir al usuario realizar la edición fuera de línea, según una realización de la presente invención.
La Fig. 9 es un diagrama en bloques que muestra una plantilla de derechos que especifica información a incorporar en una etiqueta de derechos, según una realización de la presente invención.
La Fig. 10 es un diagrama de flujo que muestra las etapas clave llevadas a cabo al crear la plantilla de derechos de la Fig. 9 y al crear la etiqueta firmada de derechos de la Fig. 4A, basada en la plantilla de derechos, según una realización de la presente invención.
La Fig. 11 ilustra una arquitectura genérica de baterías de procesos según la invención.
La Fig. 12 ilustra una realización preferida de una batería de procesos de edición según la invención.
La Fig. 13 ilustra una realización preferida de una batería de procesos de licencia según la invención.
La Fig. 14 proporciona un diagrama de flujo de una realización preferida de un procedimiento según la invención, para proporcionar una arquitectura acoplable segura de servidor para sistemas de gestión de derechos digitales.
Descripción detallada de la invención Ejemplo de Dispositivo Informático
La Fig. 1 y la siguiente exposición están concebidas para proporcionar una breve descripción general de un entorno informático adecuado, en el cual pueda implementarse la invención. Debería entenderse, sin embargo, que se contemplan dispositivos de mano, portátiles, y otros dispositivos de toda clase, para su empleo en relación a la presente invención. Si bien se describe a continuación un ordenador de propósito general, esto no es sino un ejemplo, y la presente invención sólo requiere un cliente ligero que tenga interoperabilidad e interacción con un servidor de red. Por ello, la presente invención puede implementarse en un entorno de servicios alojados en red, en el cual se implica un número muy pequeño, o mínimo, de recursos del cliente, p. ej., un entorno en red en el cual el dispositivo cliente funciona simplemente como un explorador o una interfaz con la Web en Internet.
Aunque no se requiere, la invención puede implementarse por medio de una interfaz de programación de aplicaciones (Application Programming Interface - API), para su utilización por parte de un desarrollador, e/o incluirse dentro del software de exploración de la red, que se describirá en el contexto general de las instrucciones ejecutables por ordenador, tales como módulos de programa, que son ejecutados por uno o más ordenadores, tales como estaciones clientes, servidores u otros dispositivos. Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos y otros similares, que realizan tareas particulares o bien implementan tipos particulares de datos abstractos.
Típicamente, la funcionalidad de los módulos de programa puede combinarse o distribuirse según se desee en diversas realizaciones. Además, aquellos versados en la técnica apreciarán que la invención puede llevarse a la práctica con otras configuraciones de sistemas de ordenadores. Otros sistemas informáticos, entornos y/o configuraciones bien conocidas, que puedan ser adecuadas para su empleo con la invención, incluyen, pero no se limitan a, los ordenadores personales (PC), cajeros automáticos, ordenadores servidores, dispositivos de mano o portátiles, sistemas de multiprocesadores, sistemas basados en microprocesadores, electrónica de consumo programable, ordenadores personales en red, miniordenadores, ordenadores centrales, y otros similares. La invención también puede llevarse a la práctica en entornos informáticos distribuidos, donde las tareas son realizadas por dispositivos de procesamiento remoto, que están enlazados a través de una red de comunicaciones u otro medio de transmisión de datos. En un entorno informático distribuido, los módulos de programa pueden colocarse en medios de almacenamiento de ordenadores, tanto locales como remotos, incluyendo dispositivos de almacenamiento en memoria.
La Fig. 1 ilustra así un ejemplo de un entorno 100 de sistema informático adecuado, en el cual puede implementarse la invención, aunque, como se ha aclarado anteriormente, el entorno 100 del sistema informático es sólo un ejemplo de un entorno informático adecuado, y no está concebido para sugerir ninguna limitación en cuanto al alcance del empleo o la funcionalidad de la invención. Tampoco debería interpretarse que el entorno informático 100 tenga alguna dependencia o requisito vinculado con uno cualquiera, o una combinación, de los componentes ilustrados en el ejemplo de entorno operativo 100.
Con referencia a la Fig. 1, un ejemplo de sistema para implementar la invención incluye un dispositivo informático de propósito general, en la forma de un ordenador 110. Los componentes del ordenador 110 pueden incluir, pero no se limitan a, una unidad 120 de procesamiento, una memoria 130 del sistema, y un bus 121 del sistema que acopla diversos componentes del sistema, incluyendo la memoria del sistema, con la unidad 120 de procesamiento. El bus 121 del sistema puede ser de cualquiera de los diversos tipos de estructuras de bus, incluyendo un bus de memoria o un controlador de memoria, un bus periférico y un bus local que utiliza una cualquiera entre una gran variedad de arquitecturas de bus. A modo de ejemplo, y no de limitación, tales arquitecturas incluyen el bus ISA (Industry Standard Architecture - Arquitectura Industrial Estándar), el bus MCA (Micro Channel Architecture - Arquitectura de Microcanal), el bus EISA (Enhanced ISA - ISA Mejorado), el bus local VESA (Video Electronics Standards Association - Asociación de Estándares de Electrónica de Vídeo) y el bus PCI (Peripheral Component Interconnect - Interconexión Periférica de Componentes), también conocido como el bus Mezzanine (Entresuelo).
El ordenador 110, típicamente, incluye diversos medios legibles por ordenador. Los medios legibles por ordenador pueden ser cualesquiera medios disponibles que puedan ser accesibles desde el ordenador 110, e incluyen medios tanto volátiles como no volátiles, extraíbles y no extraíbles. A modo de ejemplo, y no de limitación, los medios legibles por ordenador pueden comprender medios de almacenamiento en ordenador y medios de comunicación. Los medios de almacenamiento en ordenador incluyen medios tanto volátiles como no volátiles, extraíbles y no extraíbles, implementados en cualquier procedimiento o tecnología para el almacenamiento de información, tales como instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento en ordenador incluyen, pero no se limitan a, la memoria RAM, ROM, EEPROM, flash u otra tecnología de memoria, dispositivos CDROM, discos versátiles digitales (DVD) u otros dispositivos de almacenamiento en disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda emplearse para almacenar la información deseada, y que pueda ser accesible desde el ordenador 110. Los medios de comunicación, típicamente, realizan instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos, en una señal modulada de datos, tal como una onda portadora u otro mecanismo de transporte, e incluyen cualquier medio de entrega de información. El término "señal modulada de datos" significa una señal que tiene una o más de sus características fijadas o cambiadas, de manera tal como para codificar información en la señal. A modo de ejemplo, y no de limitación, los medios de comunicación incluyen medios cableados tales como una red cableada o una conexión de cableado directo, y medios inalámbricos tales como medios acústicos, de RF (radiofrecuencia), infrarrojos y otros medios inalámbricos. Las combinaciones de cualesquiera de los anteriores también deberían incluirse dentro del ámbito de los medios legibles por ordenador.
La memoria 130 del sistema incluye medios de almacenamiento en ordenador, en forma de memoria volátil y/o no volátil, tal como la memoria 131 sólo de lectura (ROM) y la memoria 132 de acceso aleatorio (RAM). Un sistema básico 133 de entrada/salida (BIOS), que contiene las rutinas básicas que ayudan a transferir información entre elementos dentro del ordenador 110, tal como durante al arranque, se almacena, típicamente, en la memoria ROM 131. La memoria RAM 132, típicamente, contiene datos y/o módulos de programa que están inmediatamente accesibles para, y/o están siendo operados actualmente por, la unidad 120 de procesamiento. A modo de ejemplo, y no de limitación, la Fig. 1 ilustra el sistema operativo 134, los programas 135 de aplicación, otros módulos 136 de programa y los datos 137 de programa.
El ordenador 110 también puede incluir otros medios de almacenamiento en ordenador, extraíbles o no extraíbles, volátiles o no volátiles. Sólo a modo de ejemplo, la Fig. 1 ilustra un controlador 141 de disco rígido que lee, o graba, en medios magnéticos no extraíbles, no volátiles; un controlador 151 de disco magnético que lee o graba en un disco magnético 152 extraíble, no volátil; y un controlador 155 de disco óptico que lee y graba en un disco óptico 156 extraíble, no volátil, tal como un disco CD ROM u otros medios ópticos. Otros medios de almacenamiento en ordenador, extraíbles o no extraíbles, volátiles o no volátiles, que pueden emplearse en el ejemplo de entorno operativo incluyen, pero no se limitan a, casetes de cinta magnética, tarjetas de memoria flash, discos versátiles digitales, cinta de vídeo digital, memoria RAM de estado sólido, memoria ROM de estado sólido, y otros similares. El controlador 141 de disco rígido, típicamente, está conectado con el bus 121 del sistema a través de una interfaz de memoria no extraíble, tal como la interfaz 140, y el controlador 151 de disco magnético y el controlador 155 de disco óptico, típicamente, están conectados con el bus 121
\hbox{del sistema por una interfaz de
memoria extraíble, tal como la interfaz 150.}
Los controladores y sus medios asociados de almacenamiento en ordenador, expuestos anteriormente e ilustrados en la Fig. 1, proporcionan almacenamiento de instrucciones legibles por ordenador, estructuras de datos, módulos de programa y otros datos para el ordenador 110. En la Fig. 1, por ejemplo, el controlador 141 de disco rígido se ilustra almacenando el sistema operativo 144, los programas 145 de aplicación, otros módulos 146 de programa y los datos 147 de programa. Observe que estos componentes pueden bien coincidir con, o bien diferir del sistema operativo 134, los programas 135 de aplicación, los otros módulos 136 de programa y los datos 137 de programa. El sistema operativo 144, los programas 145 de aplicación, los otros módulos 146 de programa y los datos 147 de programa reciben aquí distintos números para ilustrar que, como mínimo, son copias distintas. Un usuario puede ingresar comandos e información en el ordenador 110 a través de dispositivos de entrada, tales como un teclado 162 y un dispositivo 161 de puntero, comúnmente denominado ratón, puntero táctil o panel táctil. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, una palanca de juegos, un panel de juegos, un plato de satélite, un escáner, u otros similares. Estos y otros dispositivos de entrada se conectan a menudo con la unidad 120 de procesamiento a través de una interfaz 160 de entrada de usuario, que está acoplada con el bus 121 del sistema, pero pueden conectarse por medio de otras estructuras de interfaz y de bus, tales como un puerto paralelo, un puerto de juegos o un bus universal en serie (Universal Serial Bus - USB).
Un monitor 191, u otro tipo de dispositivo de visualización, también está conectado con el bus 121 del sistema por medio de una interfaz, tal como una interfaz 190 de vídeo. Una interfaz gráfica 182, tal como Northbridge, también puede conectarse con el bus 121 del sistema. Northbridge es un grupo de chips que se comunica con la CPU (Unidad Central de Procesamiento), o con la unidad 120 de procesamiento del anfitrión, y que asume la responsabilidad por las comunicaciones del puerto de gráficos acelerados (AGP). Una o más unidades 184 de procesamiento de gráficos (GPU) pueden comunicarse con la interfaz 182 de gráficos. En este sentido, las GPU 184 incluyen generalmente almacenamiento de memoria en el chip, tal como almacenamiento en registros, y las GPU 184 se comunican con una memoria 186 de vídeo. Las GPU 184, sin embargo, no son sino un ejemplo de un coprocesador y, por ello, puede incluirse una gran variedad de dispositivos de coprocesamiento en el ordenador 110. Un monitor 191 u otro tipo de dispositivo de visualización también se conecta con el bus 121 del sistema por medio de una interfaz, tal como una interfaz 190 de vídeo, que, a su vez, puede comunicarse con la memoria 186 de vídeo. Además del monitor 191, los ordenadores también pueden incluir otros dispositivos periféricos de salida, tales como los altavoces 197 y la impresora 196, que pueden conectarse a través de una interfaz periférica 195 de salida.
El ordenador 110 puede operar en un entorno de red utilizando conexiones lógicas con uno o más ordenadores remotos, tal como un ordenador remoto 180. El ordenador remoto 180 puede ser un ordenador personal, un servidor, un encaminador, un PC en red, un dispositivo a la par u otro nodo común de red y, típicamente, incluye muchos de, o todos, los elementos descritos anteriormente en relación al ordenador 110, aunque sólo un dispositivo 181 de almacenamiento en memoria ha sido ilustrado en la Fig. 1. Las conexiones lógicas ilustradas en la Fig. 1 incluyen una red 171 de área local (LAN) y una red 173 de área amplia (WAN), pero también pueden incluir otras redes. Tales entornos de red son comunes en las oficinas, las redes de ordenadores de empresa, las redes intranet y la red Internet.
Cuando se emplea en un entorno de red LAN, el ordenador 110 se conecta con la LAN 171 a través de una interfaz o adaptador 170 de red. Cuando se emplea en un entorno de red WAN, el ordenador 110, típicamente, incluye un módem 172 u otros medios para establecer comunicaciones por la red WAN 173, tal como Internet. El módem 172, que puede ser interno o externo, puede conectarse con el bus 121 del sistema a través de la interfaz 160 de entrada del usuario, u otro mecanismo adecuado. En un entorno en red, los módulos de programa ilustrados con respecto al ordenador 110, o bien porciones de ellos, pueden almacenarse en el dispositivo remoto de almacenamiento en memoria. A modo de ejemplo, y no de limitación, la Fig. 1 ilustra los programas remotos 185 de aplicación como residentes en el dispositivo 181 de memoria. Se apreciará que las conexiones de red mostradas son un ejemplo, y que pueden utilizarse otros medios de establecer un enlace de comunicaciones entre los ordenadores.
Alguien medianamente versado en la tecnología puede apreciar que un ordenador 110, u otro dispositivo cliente, puede desplegarse como parte de una red de ordenadores. En este contexto, la presente invención se refiere a cualquier sistema de ordenadores que tenga cualquier número de unidades de memoria o de almacenamiento, y cualquier número de aplicaciones y procesos presentes en cualquier número de unidades o volúmenes de almacenamiento. La presente invención puede aplicarse en un entorno con ordenadores servidores y ordenadores clientes desplegados en un entorno de red, con almacenamiento remoto o local. La presente invención también puede aplicarse a un dispositivo informático autónomo, que tenga capacidades de funcionalidad de lenguajes de programación, interpretación y ejecución.
El procesamiento distribuido facilita el compartir recursos y servicios de ordenador, por intercambio directo entre dispositivos y sistemas informáticos. Estos recursos y servicios incluyen el intercambio de información, el almacenamiento en memoria caché, y el almacenamiento en disco para ficheros. El procesamiento distribuido aprovecha la conectividad de red, permitiendo a los clientes equilibrar su potencia colectiva a fin de beneficiar la empresa común. En este aspecto, diversos dispositivos pueden tener aplicaciones, objetos o recursos que pueden interactuar para implicar técnicas de autenticación de la presente invención para una o más baterías de procesos gráficos fiables.
La Fig. 2 proporciona un diagrama esquemático de un ejemplo de entorno de procesamiento en red o distribuido. El entorno de procesamiento distribuido comprende los objetos informáticos 10a, 10b, etc., y los objetos o dispositivos informáticos 110a, 110b, 110c, etc. Estos objetos pueden comprender programas, procedimientos, almacenes de datos, lógica programable, etc. Los objetos pueden comprender porciones de los mismos, o distintos, dispositivos, tales como agendas electrónicas, televisores, reproductores de MP3, ordenadores personales, etc. Cada objeto puede comunicarse con otro objeto por medio de la red 14 de comunicaciones. Esta red puede comprender en sí misma otros objetos informáticos y dispositivos informáticos que proporcionan servicios al sistema de la Fig. 2. Según un aspecto de la invención, cada objeto 10 o 110 puede contener una aplicación que podría requerir las técnicas de autenticación de la presente invención para la batería o baterías de procesos gráficos fiables.
También puede apreciarse que un objeto, tal como el 110c, puede estar alojado en otro dispositivo informático 10 o 110. Así, aunque el entorno físico ilustrado puede mostrar a los dispositivos conectados como ordenadores, tal ilustración es un mero ejemplo, y el entorno físico, alternativamente, puede ilustrarse o describirse como compuesto por diversos dispositivos digitales, tales como agendas electrónicas, televisores, reproductores de MP3, etc.; objetos de software tales como interfaces, objetos COM y otros similares.
Existe una gran variedad de sistemas, componentes y configuraciones de red que brindan soporte a entornos de procesamiento distribuido. Por ejemplo, los sistemas de procesamiento pueden conectarse entre sí por medio de sistemas de cableado, o inalámbricos; por redes locales, o por redes de distribución amplia. Actualmente, muchas de las redes están acopladas a Internet, que proporciona la infraestructura para el procesamiento ampliamente distribuido, y que abarca muchas redes distintas.
En entornos de redes domésticas, hay al menos cuatro medios distintos de transporte por red, cada uno de los cuales puede brindar soporte a un protocolo único, tal como la línea de Energía, los medios de datos (tanto inalámbricos como cableados), los medios de voz (p. ej., el teléfono) y los medios de entretenimiento. La mayoría de los dispositivos de control doméstico, tales como los interruptores de luz y los electrodomésticos, pueden utilizar la línea de energía para su conectividad. Los Servicios de Datos pueden ingresar al hogar como banda ancha (p. ej., bien DSL o módem de Cable) y son accesibles dentro del hogar empleando conectividad bien inalámbrica (p. ej., HomeRF o 802.11b) o bien cableada (p. ej., Home PNA, Cat 5, incluso la línea de energía). El tráfico de voz puede ingresar al hogar bien como cableado (p. ej., Cat 3) o bien como inalámbrico (p. ej., teléfonos celulares), y puede distribuirse dentro del hogar utilizando el cableado Cat 3. Los medios de entretenimiento pueden ingresar al hogar a través de satélite o cable y, típicamente, se distribuyen en el hogar utilizando cable coaxial. IEEE 1394 y DVI también están surgiendo como interconexiones digitales para grupos de dispositivos de medios. Todos estos entornos de red, y otros que puedan surgir como estándares de protocolo, pueden interconectarse a fin de formar una intranet que pueda conectarse con el mundo exterior a través de Internet. En resumen, existe una gran variedad de fuentes distintas para el almacenamiento y la transmisión de datos y, avanzando en consecuencia, los dispositivos informáticos requerirán formas de proteger contenidos en todas las porciones de la batería de procesos de procesamiento de datos.
La denominación de Internet se refiere usualmente a la colección de redes y pasarelas que utilizan el juego TCP/IP de protocolos, que son bien conocidos en la tecnología de las redes de ordenadores. TCP/IP es un acrónimo de "Transport Control Protocol/Internet Protocol" ["Protocolo de Control de Transporte/Protocolo Intrarred"]. Internet puede describirse como un sistema de redes de ordenadores remotos geográficamente distribuidos, interconectados por ordenadores que ejecutan protocolos de red que permiten a los usuarios interactuar y compartir información por las redes. Debido a tal extendida compartición de información, las redes remotas como Internet han evolucionado generalmente, hasta ahora, hacia un sistema abierto para el cual los desarrolladores pueden diseñar aplicaciones de software a fin de realizar operaciones o servicios especializados, esencialmente sin restricciones.
De esta manera, la infraestructura de red permite un enjambre de topologías de red, tales como arquitecturas cliente/servidor, par a par, o híbridas. El "cliente" es un miembro de una clase o grupo que utiliza los servicios de otra clase o grupo con el cual no está vinculado. Así, en informática, un cliente es un proceso, es decir, en esencia, un conjunto de instrucciones o tareas, que solicita un servicio suministrado por otro programa. El proceso cliente utiliza el servicio solicitado sin tener que "conocer" ningún detalle de operación acerca del otro programa, o bien del servicio en sí. En una arquitectura de cliente/servidor, en particular, en un sistema en red, un cliente es usualmente un ordenador que accede a recursos compartidos de red, suministrados por otro ordenador, p. ej., un servidor. En el ejemplo de la Fig. 2, los ordenadores 110a, 110b, etc., pueden concebirse como clientes, y el ordenador 10a, 10b, etc., puede concebirse como el servidor, donde el servidor 10a, 10b, etc., mantiene los datos que se reproducen luego en los ordenadores clientes 110a, 110b, etc.
Un servidor, típicamente, es un sistema informático remoto accesible por una red remota, tal como Internet. El proceso cliente puede estar activo en un primer sistema informático, y el proceso servidor puede estar activo en un segundo sistema informático, comunicándose entre sí por un medio de comunicaciones, proporcionando así funcionalidad distribuida
\hbox{y permitiendo que múltiples clientes aprovechen las
capacidades de recopilación de información del servidor.}
Cliente y servidor se comunican entre sí utilizando la funcionalidad proporcionada por una capa de protocolo. Por ejemplo, el HTTP (Hypertext Transfer Protocol - Protocolo de Transferencia de Hipertexto) es un protocolo común que se utiliza conjuntamente con la WWW (World Wide Web - Máxima Malla Mundial). Típicamente, se utiliza una dirección de red de ordenador, tal como un URL (Universal Resource Locator - Localizador Universal de Recurso) o una dirección de IP (Internet Protocol - Protocolo de Internet), para identificar entre sí a los ordenadores servidores o clientes. La dirección de red puede denominarse dirección de URL. Por ejemplo, la comunicación puede proporcionarse por un medio de comunicaciones. En particular, el cliente y el servidor pueden acoplarse entre sí a través de conexiones de TCP/IP para comunicaciones de alta capacidad.
De esta manera, la Fig. 2 ilustra un ejemplo de entorno en red o distribuido, con un servidor en comunicación con los ordenadores clientes a través de una red/bus, en donde puede emplearse la presente invención. En más detalle, un cierto número de servidores 10a, 10b, etc., se interconectan por medio de una red/bus 14 de comunicaciones, que puede ser una red LAN, WAN, intranet, Internet, etc., con un cierto número de dispositivos clientes o de procesamiento remoto 110a, 110b, 110c, 110d, 110e, etc., tales como un ordenador portátil, un ordenador de mano, un cliente ligero, un electrodoméstico conectado en red, u otro dispositivo, tal como una grabadora de vídeo, un televisor, un horno, una lámpara, un calentador y otros similares, según la presente invención. Se contempla así que la presente invención pueda aplicarse a cualquier dispositivo informático con relación al cual es deseable procesar, almacenar o proteger el contenido de una fuente fiable.
En un entorno de red en el cual el bus/red 14 de comunicaciones es Internet, por ejemplo, los servidores 10 pueden ser servidores de Web, con los cuales los clientes 110a, 110b, 110c, 110d, 110e, etc., se comunican por medio de cualquiera entre un cierto número de protocolos conocidos, tales como HTTP. Los servidores 10 también pueden funcionar como clientes 110, como puede ser característico en un entorno de procesamiento distribuido. Las comunicaciones pueden ser por cable o inalámbricas, según corresponda. Los dispositivos clientes 110 pueden o no comunicarse por medio de la red/bus 14 de comunicaciones, y pueden tener comunicaciones independientes asociadas a la misma. Por ejemplo, en el caso de un televisor o grabadora de vídeo, puede haber o no un aspecto vinculado con la red para el control del mismo. Cada ordenador cliente 110 y cada ordenador servidor 10 puede estar equipado con diversos módulos de programa u objetos 135 de aplicaciones, y con conexiones o acceso a diversos tipos de elementos u objetos de almacenamiento, por medio de los cuales pueden almacenarse ficheros, o a los cuales pueden descargarse o migrarse una o más porciones de ficheros. De esta manera, la presente invención puede utilizarse en un entorno de red de ordenadores que tenga ordenadores clientes 110a, 110b, etc., que pueden acceder e interactuar con una red/bus 14 de ordenadores y con los ordenadores servidores 10a, 10b, etc., que pueden interactuar con los ordenadores clientes 110a, 110b, etc., y con otros dispositivos 111 y bases de datos 20.
Edición de Contenidos Digitales
La Fig. 3 es un diagrama en bloques funcionales de una realización preferida de un sistema y un procedimiento según la invención para editar contenidos digitales.
La "edición", según se emplea aquí ese término, se refiere a un proceso que una aplicación o servicio ejecuta para establecer, con una entidad fiable, un conjunto de derechos y condiciones que la entidad puede emitir para esos contenidos, así como a quién pueden emitirse esos derechos y condiciones. Según la invención, el proceso de edición incluye el cifrado de los contenidos digitales y la asociación de una lista de derechos persistentes que pueden hacerse cumplir, y que el autor de los contenidos concibió para todos los usuarios posibles de los contenidos. Este proceso puede llevarse a cabo de manera segura a fin de prohibir el acceso a cualquiera de los derechos o a los contenidos, a menos que así lo determine el autor de los contenidos.
En una realización preferida de la invención, pueden emplearse, en particular, tres entidades para editar contenidos digitales seguros: una aplicación 302 de preparación de contenidos que se ejecuta en el cliente 300 y que prepara los contenidos para su edición, una interfaz 306 de programación de aplicaciones (API) de gestión de derechos digitales (DRM), que también reside en el dispositivo cliente 300, y un servidor 320 de DRM que está acoplado, en términos de comunicación, con el cliente 300 a través de una red 330 de comunicación. En una realización preferida de la invención, la red 330 de comunicación incluye Internet, aunque debería entenderse que la red 330 de comunicación podría ser cualquier red de área local o amplia, tal como una intranet de propiedad corporativa, por ejemplo.
La aplicación 302 de preparación de contenidos puede ser cualquier aplicación que produce contenidos digitales. Por ejemplo, la aplicación 302 puede ser un procesador de la palabra u otro editor que produzca ficheros de texto digital, música digital, vídeo u otros contenidos similares. Los contenidos también podrían incluir flujos de contenidos, tales como flujos de audio o vídeo, de un suceso en vivo o grabado, por ejemplo. Según la invención, la aplicación de preparación de contenidos invita al usuario de la misma a cifrar los contenidos utilizando una clave que el usuario proporciona. La aplicación 302 utiliza la clave para cifrar los contenidos digitales, formando de tal manera un fichero 304 de contenidos digitales cifrados. La aplicación cliente también invita al usuario a proporcionar datos de derechos para el fichero 304 de contenidos digitales. Los datos de derechos incluyen una identidad respectiva para cada identidad que tiene derechos en los contenidos digitales. Tal entidad puede ser, por ejemplo, un individuo, una clase de individuos, o un dispositivo. Para cada tal entidad, los datos de derechos también incluyen una lista de derechos que esa entidad tiene en los contenidos, y cualesquiera condiciones que puedan imponerse sobre cualquiera, o sobre todos esos derechos. Tales derechos pueden incluir el derecho de leer, editar, copiar, imprimir, etc., los contenidos digitales. Además, los derechos pueden ser inclusivos o exclusivos. Los derechos inclusivos indican que un usuario especificado tiene un derecho especificado en los contenidos (p. ej., el usuario puede editar los contenidos digitales). Los derechos exclusivos indican que un usuario tiene todos los derechos en los contenidos, excepto aquellos especificados (p. ej., el usuario puede hacer cualquier cosa con los contenidos digitales, excepto copiarlos).
Según una realización de la invención, la API cliente 306 puede pasar los contenidos digitales cifrados y los datos de derechos al servidor 320 de DRM. Utilizando un proceso que se describe en detalle a continuación, el servidor 320 de DRM determina si puede hacer cumplir los derechos que el usuario ha asignado y, en ese caso, el servidor 320 de DRM firma los datos de derechos a fin de formar una etiqueta firmada 308 de derechos (SRL). En general, sin embargo, cualquier entidad fiable puede firmar los datos de derechos, utilizando, preferiblemente, una clave fiable para el servidor 320 de DRM. Por ejemplo, un cliente puede firmar los datos de derechos utilizando una clave proporcionada por el servidor 320 de DRM.
La etiqueta 308 de derechos puede incluir datos que representan la descripción de derechos, la clave de los contenidos cifrados y la firma digital sobre la descripción de derechos y la clave de los contenidos cifrados. Si el servidor de DRM está firmando la etiqueta correcta, pasa la etiqueta firmada 308 de derechos al cliente, a través de la API cliente 306, que almacena la etiqueta firmada 308 de derechos en el dispositivo cliente 300. La aplicación 302 de preparación de contenidos asocia entonces la etiqueta firmada 308 de derechos al fichero 304 de contenidos digitales cifrados. Por ejemplo, la SRL 308 puede concatenarse con el fichero de contenidos digitales cifrados a fin de formar un fichero 310 de contenidos con gestión de derechos. En general, sin embargo, los datos de derechos no necesitan combinarse con los contenidos digitales. Por ejemplo, los datos de derechos podrían almacenarse en una ubicación conocida, y una referencia a los datos de derechos almacenados podría combinarse con los contenidos digitales cifrados. La referencia podría incluir un identificador que indica dónde están almacenados los datos de derechos (p. ej., el almacén de datos que contiene los datos de derechos), y un identificador que corresponde a aquellos datos de derechos específicos en esa ubicación específica de almacenamiento (p. ej., que identifica el fichero que contiene los datos específicos de derechos de interés). Los contenidos 310 con gestión de derechos pueden entregarse entonces a cualquiera en cualquier parte, y sólo aquellas entidades que tienen derechos para consumir los contenidos pueden consumir los contenidos, y sólo de acuerdo con los derechos que les fueron concedidos.
La Fig. 4 es un diagrama de flujo de un ejemplo de procedimiento 400 según la invención, para contenidos digitales con gestión de derechos de edición, en el cual la etiqueta de derechos está firmada por un servidor de DRM. Debería entenderse, sin embargo, que esta realización es un mero ejemplo, y que la etiqueta de derechos puede ser firmada, en general, por cualquier entidad fiable. Generalmente, un procedimiento según la invención para editar contenidos digitales puede incluir: cifrar los contenidos digitales utilizando una clave de contenidos (CK), generar una descripción de derechos asociada con los contenidos digitales, cifrar la clave de contenidos (CK) según una clave pública para un servidor de DRM (PU-DRM) a fin de obtener el resultado (PU-DRM(CK)), y crear una firma digital basada en una clave privada (PR-DRM) correspondiente
\hbox{a
(PU-DRM) por la combinación de la descripción de
derechos y (PU-DRM(CK)).}
En la etapa 402, la aplicación 302 genera una clave de contenidos (CK) que se emplea para cifrar los contenidos digitales. Preferiblemente, la clave de contenidos (CK) es una clave simétrica, aunque, en general, puede utilizarse cualquier clave para cifrar los contenidos digitales. Los algoritmos de clave simétrica, que a veces se denominan algoritmos de "clave secreta", utilizan la misma clave para descifrar un mensaje que la que utilizan para cifrar el mensaje. Por esa razón, se prefiere que la (CK) se mantenga secreta. La compartición de (CK) entre remitente y receptor debería hacerse muy cuidadosamente, a fin de evitar la intercepción no autorizada de tal (CK). Debido a que la (CK) está compartida entre el cifrador y el descifrador, la (CK) se comunica, preferiblemente, antes de que se transmita cualquier mensaje cifrado.
Varios algoritmos de generación de claves simétricas son bien conocidos en la tecnología. En una realización preferida, se emplea el DES (Data Encryption Standard - Estándar de Cifrado de Datos), aunque debería entenderse que podría utilizarse cualquier algoritmo simétrico. Los ejemplos de tales algoritmos de claves simétricas incluyen, sin limitación, Triple-DES, el IDEA (International Data Encryption Algorithm - Algoritmo Internacional de Cifrado de Datos), Cast, Cast-128, RC4, RC5 y SkipJack.
En la etapa 404, la aplicación 302 cifra los contenidos digitales con la clave simétrica de contenidos (CK) a fin de formar los contenidos digitales cifrados 304, que pueden grabarse utilizando la notación (CK(contenidos)). El autor que utiliza la aplicación 302 también puede generar datos de derechos asociados a los contenidos digitales. Los datos de derechos pueden incluir una lista de entidades que estarán autorizadas a consumir los contenidos, y los derechos específicos que cada una de las entidades posee con respecto a los contenidos, junto con cualesquiera condiciones que puedan imponerse sobre esos derechos. Tales derechos, por ejemplo, pueden incluir visualizar los contenidos, imprimir los contenidos, etc. La aplicación 302 proporciona los datos de derechos a la API 306. Un ejemplo de datos de derechos en formato XML/XrML se adjunta a la presente como el Apéndice 1.
En la etapa 406, la API 306 genera una segunda clave de cifrado (DES1), que se utiliza para cifrar la clave de contenidos (CK). Preferiblemente, (DES1) también es una clave simétrica. En la etapa 408, la API 306 cifra la (CK) con (DES1) para dar como resultado (DES1(CK)). En la etapa 410, la API 306 descarta la (CK), dando como resultado que la (CK) puede obtenerse ahora sólo descifrando (DES1(CK)). A fin de garantizar que (CK(contenidos)) está protegida a un servidor central 320 de DRM, y que todas las "solicitudes de licencia" para los contenidos se hacen centralmente según los datos de derechos, la API 306, en la etapa 412, se pone en contacto con el servidor provisto 320 de DRM y extrae la clave pública (PU-DRM) del mismo. En la etapa 414, la API 306 cifra (DES1) con (PU-DRM) para dar como resultado (PU-DRM(DES1)). De esta manera, la (CK) puede protegerse según (PU-DRM), a fin de garantizar que el servidor 320 de DRM es la única entidad que podrá obtener acceso a la (CK), según lo requerido para descifrar (CK(contenido)). En la etapa 416, la API 306 cifra los datos de derechos (es decir, la lista de entidades autorizadas y los respectivos derechos y condiciones asociadas a cada entidad autorizada en la lista) con (DES1) para dar como resultado (DES1(datosdederechos)).
En una realización alternativa, la (CK) puede emplearse a fin de cifrar directamente los datos de derechos, para dar como resultado (CK(datosdederechos)), y renunciar completamente por ello al empleo de (DES1). Sin embargo, el empleo de (DES1) para cifrar los datos de derechos permite a tal (DES1) adecuarse a cualquier algoritmo específico que pudiera ser obligado para el servidor de DRM, mientras que la (CK) podría ser especificada por una entidad independiente del servidor de DRM, y podría no ser tan obligada para el mismo.
En la etapa 418, la aplicación 302 de protección de contenidos puede despachar (PU-DRM(DES1)) y (DES1(datosdederechos)) al servidor 320 de DRM como una etiqueta de derechos para su firma. Alternativamente, el cliente mismo puede firmar los datos de derechos. Si los datos de derechos están siendo despachados al servidor para su firma, entonces, en la etapa 420, el servidor 320 de DRM accede a los datos de derechos y verifica que puede hacer cumplir los derechos y condiciones en la etiqueta de datos despachada. A fin de verificar que puede hacer cumplir los datos de derechos, el servidor 320 de DRM aplica (PR-DRM) a (PU-DRM(DES1)) para dar como resultado (DES1), y luego aplica (DES1) a (DES1(datosdederechos)) para dar como resultado los datos de derechos en limpio. El servidor 320 puede entonces efectuar cualquier comprobación de criterios a fin de verificar que los usuarios, derechos y condiciones especificados en los datos de derechos están dentro de cualquier criterio instituido por el servidor 320. El servidor 320 firma la etiqueta de derechos originalmente despachada, incluyendo (PU-DRM(DES1)) y (DES1(datosdederechos)) para dar como resultado la etiqueta firmada 308 de derechos (SRL), donde la firma se basa en la clave privada del servidor 320 de DRM (PR-DRM), y devuelve la SRL 308 a la API 306, la cual presenta entonces la SRL 308 devuelta a la aplicación cliente 302.
La SRL 308 es un documento firmado digitalmente, lo cual lo hace resistente a la manipulación. Además, la SRL 308 es independiente del tipo de clave y algoritmo efectivamente utilizados para cifrar los contenidos, pero mantiene la relación fuerte de 1 a 1 con los contenidos que está protegiendo. Con referencia ahora a la Fig. 4A, en una realización de la presente invención, la SRL 308 puede incluir información sobre los contenidos que es la base de la SRL 308, incluyendo tal vez un identificador de los contenidos; información sobre el servidor de DRM que firma la SRL 308, incluyendo (PU-DRM(DES1)) e información de referencia, tal como una URL para localizar el servidor de DRM en una red, e información de resguardo si la URL falla; información que describe la SRL 308 en sí misma; (DES1(datosdederechos)); (DES1(CK)); y S (PR-DRM), entre otras cosas. Un ejemplo de SRL 308 en XML/XrML se adjunta a la presente como el Apéndice 2.
Al garantizar que una entidad fiable firma los datos de derechos para crear una etiqueta 308 de derechos firmada, el servidor de DRM está afirmando que emitirá licencias para los contenidos según los términos estipulados por el editor, según lo descrito en los datos de derechos de la etiqueta 308 de derechos. Como debería apreciarse, a un usuario se le requiere que obtenga una licencia a fin de reproducir los contenidos, especialmente puesto que la licencia contiene la clave de contenidos (CK). Cuando un usuario quiere obtener una licencia para los contenidos cifrados, el usuario puede presentar una solicitud de licencia que incluya la SRL 308 para los contenidos, y un certificado que verifica las credenciales del usuario ante el servidor 320 de DRM, o ante otra entidad emisora de licencia. La entidad emisora de licencia puede entonces descifrar (PU-DRM(DES1)) y (DES1(datosdederechos)) a fin de producir los datos de derechos, enumerar todos los derechos concedidos por el autor (si lo hubiera) a la entidad solicitante de licencia, y construir una licencia con sólo esos derechos específicos.
Preferiblemente, al recibir la aplicación 302 la SRL 308, tal aplicación 302 concatena la etiqueta 308 firmada de derechos con el correspondiente (CK(contenidos)) 304, a fin de formar los contenidos digitales con gestión de derechos. Alternativamente, los datos de derechos pueden almacenarse en una localidad conocida, con una referencia a esa localidad proporcionada con los contenidos digitales cifrados. De esta manera, una aplicación reproductora que esté habilitada por DRM puede descubrir la etiqueta 308 firmada de derechos a través de la porción de contenidos que la aplicación reproductora está intentando reproducir. Este descubrimiento lanza a la aplicación reproductora a iniciar una solicitud de licencia ante el servidor 320 de licencias de DRM. La aplicación editora 302 puede almacenar un URL del servidor 320 de licencias de DRM, por ejemplo, o bien el servidor 320 de licencias de DRM puede insertar su propio URL como una porción de metadatos en la etiqueta de derechos antes de firmarla digitalmente, para que la API 306, cliente de DRM, llamada por la aplicación reproductora, pueda identificar el servidor 320 correcto de licencias de DRM. Preferiblemente, un identificador único, tal como un identificador globalmente único (GUID), por ejemplo, se incluye en la etiqueta de derechos antes de ser firmada.
En una realización preferida de la invención, puede utilizarse el protocolo sencillo de acceso a objetos (SOAP) para la comunicación entre la aplicación 302 de protección de contenidos, o la aplicación reproductora, y el servidor 320 de DRM. Además, pueden proporcionarse bibliotecas de las API, tales como la API 306, para que a las aplicaciones, tales como la aplicación 302, no se les requiera implementar la parte cliente del protocolo de DRM, sino que puedan tan sólo hacer llamadas locales a las API. Preferiblemente, se utiliza XrML, un lenguaje XML, para especificar descripciones de derechos, licencias y etiquetas de derechos para contenidos digitales, aunque debería entenderse que puede emplearse cualquier formato adecuado para la descripción de derechos y de otros datos.
Cómo Obtener una Licencia para los Contenidos Editados
La Fig. 5 es un diagrama en bloques funcionales de una realización preferida de un sistema y un procedimiento según la invención, para contenidos digitales con gestión de derechos de licencia. "Licenciar", según se utiliza aquí ese término, se refiere a un proceso que ejecuta una aplicación o un servicio a fin de solicitar y recibir una licencia que permitirá que una entidad nombrada en la licencia consuma los contenidos según los términos especificados en la licencia. Los datos de entrada al proceso licenciador pueden incluir la etiqueta firmada 308 de derechos (SRL) asociada a los contenidos para los cuales se solicita una licencia, y el certificado o certificados de clave pública de la(s) entidad(es)
para la(s) cual(es) se solicita la licencia. Observe que la entidad que solicita una licencia no debe necesariamente ser la entidad para la cual se está solicitando una licencia. Típicamente, una licencia incluye la descripción de derechos de la SRL 308, una clave cifrada que puede descifrar los contenidos cifrados, y una firma digital sobre la descripción de derechos y la clave cifrada. La firma digital asegura que las entidades y derechos nombrados son
legítimos.
Una manera para que la aplicación 302 consuma los contenidos 310 con gestión de derechos es que la API cliente 306 remita la etiqueta 308 firmada de derechos de los contenidos 310 con gestión de derechos al servidor 320 de DRM por medio de la red 330 de comunicaciones. La ubicación del servidor 320 de DRM puede hallarse, por ejemplo, en la información de referencia en la SRL 308. En tal realización, el servidor 320 de licencias de DRM, a través de un proceso que se describe en detalle a continuación, puede utilizar la descripción de derechos en la etiqueta de derechos para determinar si puede emitir una licencia y, en ese caso, derivar la descripción de derechos a incluir con la licencia. Como se ha descrito anteriormente, la etiqueta 308 de derechos contiene la clave de contenidos (CK) cifrada según la clave pública del servidor 320 de DRM (PU-DRM) (es decir, (PU-DRM(CK))). En el proceso de emitir una licencia, el servidor 320 de DRM descifra de forma segura este valor a fin de obtener (CK). Entonces, utiliza la clave publica (PU-ENTIDAD) en el certificado de clave pública que se pasa en la solicitud de licencia para volver a cifrar (CK) (es decir, (PU-ENTIDAD(CK))). La (PU-ENTIDAD(CK)) recién cifrada es lo que el servidor 320 coloca en la licencia. De esta manera, la licencia puede devolverse al llamador sin el riesgo de exponer (CK), ya que sólo el poseedor de la clave privada asociada (PR-ENTIDAD) puede recuperar (CK) a partir de (PU-ENTIDAD(CK)). La API cliente 306 utiliza entonces (CK) para descifrar los contenidos cifrados, a fin de formar los contenidos digitales descifrados 312. La aplicación cliente 302 puede utilizar entonces los contenidos digitales descifrados 312 según los derechos que se proporcionan en la licencia.
Alternativamente, un cliente, tal como el cliente editor, por ejemplo, puede emitir su propia licencia para consumir los contenidos. En tal realización, puede ejecutarse un proceso garantizado en el ordenador cliente, que brinda al cliente la(s) clave(s) necesaria(s) para descifrar los contenidos digitales, en circunstancias adecuadas.
Las Figs. 6A y 6B proporcionan un diagrama de flujo de una realización preferida de un procedimiento 600 según la invención, para licenciar contenidos digitales con gestión de derechos. Según la invención, una entidad solicitante puede despachar una solicitud de licencia a nombre de uno o más licenciatarios potenciales. La entidad solicitante puede o no ser uno de los licenciatarios potenciales. Un licenciatario potencial puede ser una persona, un grupo, un dispositivo, o cualquier otra entidad que pueda consumir los contenidos de cualquier manera. El procedimiento 600 se describirá ahora con referencia a una realización en la cual un servidor de DRM procesa la solicitud de licencia, aunque debería entenderse que el procesamiento de la solicitud de licencia también podría realizarse en el cliente, y emitir el cliente directamente las licencias.
En la etapa 602, una entidad emisora de licencias, tal como un servidor de DRM, por ejemplo, recibe una solicitud de licencia. Preferiblemente, una solicitud de licencia incluye bien un certificado de clave pública o bien una identidad para cada una de la(s) licencia(s) solicitada(s). El protocolo SOAP para una realización preferida de una solicitud de licencia es:
\vskip1.000000\baselineskip
1
En la etapa 604, la entidad solicitante (es decir, la entidad que efectúa la solicitud de licencia) es autenticada. Según una realización de la invención, la entidad emisora de licencia puede configurarse para utilizar autenticación de protocolo (p. ej., interpelación-respuesta) a fin de determinar la identidad de la entidad solicitante, o bien puede configurarse para no requerir la autenticación de la entidad solicitante (lo que también se conoce como "permitir autenticación anónima"). Allí donde se requiere la autenticación, puede utilizarse cualquier tipo de método de autenticación (p. ej., el método de interpelación-respuesta mencionado anteriormente, un método de identificador de usuario y contraseña como MICROSOFT .NET, PASSPORT, autorización de WINDOWS, x509, etc.). Preferiblemente, se permite la autenticación anónima, así como el brindar soporte a cualquier método de autenticación de protocolo respaldado por sistemas integrados de información. El resultado de la etapa de autenticación será una identidad, tal como una identidad "anónima" (para la autenticación anónima), o bien una identidad de cuenta personal, por ejemplo. Si la solicitud de licencia no puede autenticarse por el motivo que sea, se devuelve un código de error y no se concede ninguna licencia.
En la etapa 606, la entidad autenticada es autorizada - es decir, se determina si a la entidad autenticada en la etapa 608 se le permite solicitar una licencia (ya sea para sí misma o en nombre de otra entidad). Preferiblemente, la entidad emisora de licencia almacena una lista de entidades a las que se permite (o no se permite) solicitar una licencia. En una realización preferida, una identidad en esta lista de identidades es la identidad de la entidad que hace la solicitud, antes que la identidad de la entidad para la cual se está solicitando una licencia, aunque podría ser cualquiera de las dos. Por ejemplo, a una identidad de cuenta personal puede no permitírsele realizar directamente una solicitud de licencia, pero un proceso servidor fiable puede realizar una solicitud de licencia en nombre de tal
entidad.
Según la invención, la solicitud de licencia puede incluir bien un certificado de clave pública o bien una identidad para cada potencial licenciatario. Si una licencia se solicita sólo para un licenciatario, sólo se nombra un certificado o identidad. Si una licencia se solicita para una pluralidad de licenciatarios, puede nombrarse un certificado o una identidad para cada licenciatario potencial.
Preferiblemente, la entidad emisora de licencia tiene un certificado de clave pública para cada licenciatario válido. Sin embargo, una aplicación 302 puede querer generar una licencia para un usuario dado, pero la aplicación 302 podría no tener acceso al certificado de clave pública para ese usuario. En tal situación, la aplicación 302 puede especificar la identidad del usuario en la solicitud de licencia y, como resultado, la entidad emisora de licencia puede invocar un componente acoplable de certificados registrados que realiza una búsqueda en un servicio de directorios y que devuelve el certificado de clave pública del usuario correcto.
Si, en la etapa 608, la entidad emisora determina que el certificado de clave pública no está incluido en la solicitud de licencia, entonces la entidad emisora utiliza la identidad especificada para realizar una búsqueda, en un servicio o base de datos de directorios, del certificado de clave pública correspondiente. Si, en la etapa 610, la entidad emisora determina que el certificado está en el directorio, entonces, en la etapa 612, se extrae el certificado. En una realización preferida, se utiliza un componente acoplable de certificados para extraer certificados de clave pública de un servicio de directorio, por medio de un protocolo de acceso a directorios. Si no puede hallarse un certificado para un licenciatario potencial dado, ya sea en la solicitud o en el directorio, entonces el servidor de licencias no genera una licencia para ese licenciatario potencial y, en la etapa 614, se devuelve un código de error a la entidad
solicitante.
Suponiendo que la entidad emisora de licencias tiene un certificado de clave pública para al menos un licenciatario potencial, entonces, en la etapa 616, la entidad emisora valida la fiabilidad de los certificados del licenciatario. Preferiblemente, la entidad emisora está configurada con un conjunto de certificados de emisor fiable, y determina si el emisor del certificado del licenciatario está en la lista de emisores fiables. Si, en la etapa 616, la entidad emisora determina que el emisor del certificado del licenciatario no está en la lista de emisores fiables, entonces la solicitud fracasa para ese licenciatario, y un código de error se genera en la etapa 614. Así, ningún licenciatario potencial cuyo certificado no esté emitido por un emisor fiable recibiría una licencia.
Además, la entidad emisora, preferiblemente, lleva a cabo la validación de la firma digital para todas las entidades en la cadena de certificados que van desde los certificados del emisor fiable hasta los certificados de clave pública del licenciatario individual. El proceso de validar las firmas digitales en una cadena es un algoritmo bien conocido. Si el certificado de clave pública para un licenciatario potencial dado no es validado, o si un certificado en la cadena no es validado, el licenciatario potencial no es fiable y, por lo tanto, no se emite una licencia a ese licenciatario potencial. En caso contrario, en la etapa 618, puede emitirse una licencia. El proceso se repite en la etapa 620 hasta que se hayan procesado todas las entidades para las cuales se ha solicitado una
licencia.
Según se muestra en la Fig. 6B, la entidad emisora de licencias procede a validar la etiqueta firmada 308 de derechos que se recibe en la solicitud de licencia. En una realización preferida, la entidad emisora puede utilizar un componente acoplable de etiquetas de derechos, y una base de datos de trastienda, para almacenar en el servidor una copia maestra de toda etiqueta de derechos firmada por la entidad emisora. Las etiquetas de derechos se identifican por el GUID colocado en ellas en su edición. En tiempo de emisión de licencias (en la etapa 622), la entidad emisora analiza sintácticamente la etiqueta de derechos ingresada en la solicitud de licencia y extrae su GUID. Luego pasa este GUID al componente acoplable de etiquetas de derechos, el cual emite una consulta sobre la base de datos a fin de extraer una copia de la etiqueta maestra de derechos. La etiqueta maestra de derechos podría estar más actualizada que la copia de la etiqueta de derechos enviada en la solicitud de licencia, y será la etiqueta de derechos empleada en la solicitud en las etapas que siguen. Si no se halla ninguna etiqueta de derechos en la base de datos basándose en el GUID, la entidad emisora verifica sus criterios, en la etapa 624, para determinar si aún se permite emitir una licencia basada en la etiqueta de derechos en la solicitud. Si los criterios no lo permiten, la solicitud de licencia fracasará en la etapa 626, y un código de error se devolverá a la API 306 en la etapa
628.
En la etapa 630, la entidad emisora de licencias valida la etiqueta 308 de derechos. Se valida la firma digital en la etiqueta de derechos y, si la entidad emisora de licencias no es la emisora de la etiqueta de derechos (la entidad que la firmó), entonces la entidad emisora de licencias determina si el emisor de la etiqueta de derechos es otra entidad fiable (p. ej., una entidad con la cual la entidad emisora de licencias está habilitada para compartir material de claves). Si la etiqueta de derechos no es validada, o si no está emitida por una entidad fiable, entonces la solicitud de licencia fracasa en la etapa 626, y un código de error se devolverá a la API 306 en la etapa
628.
Una vez que han tenido lugar todas las validaciones, la entidad emisora de licencias traduce la etiqueta 308 de derechos a una licencia para cada uno de los licenciatarios aprobados. En la etapa 632, la entidad emisora de licencias genera la respectiva descripción de derechos para la licencia a emitir a cada licenciatario. Para cada licenciatario, la entidad emisora evalúa la identidad nombrada en el certificado de clave pública de ese licenciatario con respecto a las identidades nombradas en la descripción de derechos en la etiqueta de derechos. La descripción de derechos asigna a cada derecho, o conjunto de derechos, un conjunto de los identificadores que pueden ejercer ese derecho, o conjunto de derechos, en una licencia. Para cada derecho, o conjunto de derechos, con los cuales está asociada la identidad de este licenciatario, ese derecho, o conjunto de derechos, se copia en una nueva estructura de datos para la licencia. La estructura de datos resultante es la descripción de derechos en la licencia para ese licenciatario específico. Como parte de este proceso, la entidad emisora de licencias evalúa cualquier precondición que pudiera estar asociada a cualquier de los derechos, o conjuntos de derechos, en la descripción de derechos de la etiqueta de derechos. Por ejemplo, un derecho puede tener una precondición temporal asociada a él, que limita a la entidad emisora de licencias para emitir una licencia después de un tiempo especificado. En este caso, la entidad emisora necesitaría comprobar la hora actual y, si es posterior a la hora especificada en la precondición, entonces la entidad emisora no podría conceder ese derecho al licenciatario, incluso si la identidad de ese licenciatario estuviera asociada a ese
derecho.
En la etapa 636, la entidad emisora toma (PU-DRM(DES1)) y (DES1(CK)) de la etiqueta 308 de derechos y aplica (PR-DRM) para obtener (CK). La entidad emisora vuelve entonces a cifrar (CK) utilizando (PU-ENTIDAD), el certificado de clave pública del licenciatario, para obtener como resultado (PU-ENTIDAD(CK)). En la etapa 638, la entidad emisora concatena la descripción de datos generada con (PU-ENTIDAD(CK)), y firma digitalmente la estructura de datos resultante, utilizando (PR-DRM). Esta estructura de datos firmada es la licencia para este licenciatario específico.
Cuando, en la etapa 640, la entidad emisora determina que no hay más licencias que generar para esa solicitud específica, habrá generado cero o más licencias. Las licencias generadas se devuelven a la entidad solicitante, en la etapa 642, junto con la cadena de certificados asociada a esas licencias (p. ej., el propio certificado de clave pública del servidor, así como el certificado que emitió su certificado, y así sucesivamente).
El protocolo SOAP para una realización preferida de una respuesta de licencia es el siguiente:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Protocolo pasa a página siguiente)
2
En una realización preferida de un sistema según la invención, puede utilizarse una pluralidad de claves de licenciante. En tal realización, la clave de contenidos (CK) que viaja cifrada, a través de la etiqueta 308 de derechos, y hacia la licencia, puede efectivamente ser cualquier dato arbitrario. Una variación especialmente útil es utilizar una pluralidad de distintas claves cifradas de contenidos (CK), asociadas, respectivamente, a distintos derechos o distintos titulares en la descripción de derechos. Por ejemplo, las versiones digitales de canciones en un álbum podrían cifrarse todas con distintas claves (CK). Estas claves (CK) se incluirían en la misma etiqueta de derechos, pero un titular puede tener el derecho de reproducir una de las canciones (p. ej., podría tener sólo derechos para obtener la única clave en su licencia), mientras que un segundo titular podría tener derechos para reproducir todas las canciones (tendría derechos para obtener todas las claves en su licencia).
Preferiblemente, un sistema según la invención permite a las aplicaciones o usuarios editores nombrar grupos o clases de licenciatarios en una etiqueta 308 de derechos. En tal realización, la entidad emisora de licencias evaluará todos los grupos o clases nombrados en la etiqueta de derechos a fin de determinar si la identidad del licenciatario actual es un miembro de aquellos grupos o clases. Si se halla tal miembro en un grupo o clase nombrada, la entidad emisora podría añadir los derechos, o conjuntos de derechos, asociados al grupo o clase, a la estructura de datos de descripción de derechos utilizada para la licencia.
En una realización preferida de la invención, las interfaces del protocolo de edición y licencia en el servidor de DRM dan soporte a la autenticación y la autorización de la aplicación o usuario invocante, y la consola administrativa para el servidor de DRM permite a un administrador generar una lista de control de acceso tanto para la interfaz de licencia como para la de edición. Esto permite al cliente del servidor aplicar criterios en cuanto a cuáles usuarios o aplicaciones se les permite bien editar, bien licenciar, o ambas cosas.
Cómo Modificar o Reeditar la Etiqueta Firmada 308 de Derechos
En una realización de la presente invención, la SRL 308 puede ser "reeditada" si al usuario de los contenidos se le ha concedido el permiso suficiente para hacerlo. Es decir, si se le permite, el usuario puede alterar datos de derechos dentro de la SRL 308. Es de hacer notar que tal permiso de alterar los datos de derechos debería concederse muy discreta y juiciosamente, especialmente puesto que un usuario con permiso para alterar los datos de derechos puede, en esencia, concederse a sí mismo amplios derechos con respecto a los contenidos asociados. Es concebible que tal usuario podría incluso concederse a sí mismo el derecho de exponer los contenidos y remitir los mismos al mundo entero.
Aquí, el permiso para alterar se señala incluyendo dentro de los datos de derechos en la SRL 308 una indicación de que un usuario específico, o una clase de usuarios, puede, efectivamente, alterar o "reeditar" los datos de derechos y la etiqueta 308 de derechos. Cuando el servidor 320 de DRM recibe tal SRL 308 con tal permiso con relación a una solicitud de una licencia, el servidor 320 de DRM incluye dentro de la licencia solicitada para el usuario la clave simétrica (DES1) cifrada según la clave pública del usuario (es decir, PU-ENTIDAD) para dar como resultado (PU-ENTIDAD(DES1)).
De esta manera, para editar los datos de derechos dentro de la SRL 308, y volviendo ahora a la Fig. 7, el usuario extrae (PU-ENTIDAD(DES1)) de la licencia (etapa 701), aplica al mismo (PR-ENTIDAD) para obtener como resultado (DES1) (etapa 703), extrae (DES1(datosdederechos)) de la SRL 308 (etapa 705) y aplica (DES1) al mismo para obtener como resultado los datos de derechos (etapa 707). A continuación, el usuario altera los datos de derechos según desee (etapa 709) y despacha los datos de derechos alterados al servidor 320 de DRM de la manera estipulada en relación con la Fig. 4, a fin de obtener una etiqueta firmada 308 de derechos (etapa 711). Por supuesto, aquí, la etiqueta firmada 308 de derechos es efectivamente una SRL 308 reeditada y, en consecuencia, una vez que la SRL 308 es recibida (etapa 713), el usuario desgaja la SRL 308 original concatenada a los contenidos asociados (etapa 715) y luego concatena la SRL 308 reeditada a tales contenidos (etapa 717).
De esta manera y, como puede apreciarse, la reedición de una SRL 308 permite a un usuario actualizar los datos de derechos en la SRL 308, incluyendo los derechos, condiciones y usuarios, sin tener que alterar los contenidos asociados. En particular, la reedición no requiere volver a cifrar los contenidos asociados con una nueva (CK). Además, la reedición no requiere generar una nueva SRL desde cero, especialmente puesto que la SRL 308 original tiene muchos elementos en sí misma que pueden copiarse a la nueva SRL 308.
Cómo Autoeditar la Etiqueta Firmada 308 de Derechos
En una realización de la presente invención, la SRL 308 puede ser firmada por el mismo usuario solicitante. En consecuencia, el usuario no necesita ponerse en contacto con el servidor 320 de DRM a fin de obtener una SRL 308 para una porción asociada de contenidos. Como resultado, la autoedición puede también denominarse edición fuera de línea. En tal realización, puede requerirse a un usuario que se ponga en contacto con un servidor 320 de DRM a fin de solicitar una licencia basada en tal SRL 308 autoeditada. También debería entenderse que una entidad editora puede estar habilitada para emitir sus propias licencias.
En particular, y con referencia ahora a la Fig. 8, en la realización, un usuario se da primero de alta para autoeditar, recibiendo desde un servidor 320 DRM un certificado 810 de DRM, que incluye una clave pública (PU-CERT) y una clave privada correspondiente (PR-CERT), cifrada según la clave pública del usuario (PU-ENTIDAD), para dar como resultado (PU-ENTIDAD(PR-CERT)). El certificado debería estar firmado con la clave privada del servidor 320 de DRM (PR-DRM), de manera tal que el servidor 320 de DRM pueda verificar el mismo, como se expondrá en más detalle más adelante. Como puede apreciarse, el certificado 810 de DRM autoriza al usuario a autoeditar. Como también puede apreciarse, el par de claves (PU-CERT, PR-CERT) son distintas del par (PU-ENTIDAD, PR-ENTIDAD), y se emplean específicamente para la autoedición. Observe que el par de claves (PU-CERT, PR-CERT) puede dejarse de lado, en cuyo caso el certificado 810 de DRM incluye sólo la clave pública del usuario (PU-ENTIDAD) y está firmado con la clave privada del servidor 320 de DRM (PR-DRM), de forma tal que el servidor 320 de DRM pueda verificar el mismo.
La autoedición difiere de la edición, según se muestra en la Fig. 4, en que el usuario, esencialmente, toma el lugar del servidor 320 de DRM con respecto a las etapas llevadas a cabo por el mismo. Significativamente, el usuario firma la etiqueta de derechos despachada, que incluye (PU-DRM(DES1)) y (DES1(datosdederechos)), con (PR-CERT), según ha sido obtenida a partir del certificado 810 de DRM (es decir, S (PR-CERT)) para obtener como resultado la etiqueta firmada 308 de derechos (SRL). Como debería apreciarse, el usuario obtiene (PR-CERT) del certificado 810 de DRM obteniendo (PU-ENTIDAD(PR-CERT)) de tal certificado 810 de DRM y aplicando (PR-ENTIDAD) al mismo. Observe, sin embargo, que el usuario no puede verificar que el servidor 320 de DRM puede hacer cumplir los derechos en la etiqueta de derechos despachada, especialmente puesto que el usuario no tiene un (PR-DRM) para aplicarlo a (PU-DRM(DES1)). En consecuencia, el servidor 320 de DRM debería realizar por sí mismo la verificación en el momento en que se solicita una licencia, basándose en la SRL 308 autoeditada.
Una vez que el usuario autoedita la SRL 308, el usuario concatena tal SRL 308 autoeditada y el certificado 810 de DRM, empleado para producir la misma, a los contenidos, y tales contenidos, con la SRL 308 y el certificado 810 de DRM, se distribuyen a otro usuario. A continuación, el otro usuario solicita y obtiene una licencia para los contenidos, del servidor 320 de DRM, de esencialmente la misma manera que se muestra en las Figs. 6A y 6B. Aquí, sin embargo, el usuario solicitante de licencia despacha al servidor 320 de DRM tanto la SRL 308 autoeditada como el certificado 810 de DRM, según están concatenados a los contenidos. El servidor 320 de DRM verifica entonces S (PR-DRM) en el certificado 810 de DRM basándose en el (PU-DRM) correspondiente, y obtiene (PU-CERT) del certificado 810 de DRM. El servidor 320 de DRM verifica entonces S (PR-CERT) en la SRL 308, basándose en el (PU-CERT) obtenido, y continúa como antes. Observe, sin embargo, que, dado que el usuario no ha verificado que el servidor 320 de DRM pueda hacer cumplir los derechos en la SRL 308 y, como se ha estipulado anteriormente, el servidor 320 de DRM debería llevar a cabo por sí mismo la verificación en este momento.
Plantilla de Derechos
Como se ha estipulado anteriormente, un usuario está dotado de la libertad de crear prácticamente cualquier variedad o especie de datos de derechos en una etiqueta de derechos, definiendo usuarios o clases de usuarios, definiendo derechos para cada usuario o clase de usuarios definidos, y definiendo luego cualesquiera condiciones de empleo. Sin embargo, y significativamente, puede ser engorroso y repetitivo definir repetidamente los datos de derechos para múltiples etiquetas de derechos, especialmente cuando los mismos usuarios, o clases de usuarios, derechos, y condiciones, se definen repetidamente para distintas porciones de los contenidos. Tal situación, por ejemplo, puede ocurrir en un entorno corporativo o de oficina, donde un usuario está editando repetidamente distintas porciones del contenido, que han de compartirse con un equipo definido específico de usuarios. En tal situación, entonces, y en una realización de la presente invención, se crea una plantilla de derechos que el usuario puede emplear repetidamente con respecto a la creación de etiquetas de derechos, donde la plantilla de derechos ya incluye en sí un conjunto predefinido de usuarios o clases de usuarios, derechos predefinidos para cada usuario o clase de usuarios definidos, y condiciones predefinidas de utilización.
En una realización de la presente invención, y volviendo ahora a la Fig. 9, una plantilla 900 de derechos tiene esencialmente los mismos datos de derechos que estarían en una etiqueta de derechos. Sin embargo, dado que (DES1) no es conocido hasta que se edita el contenido, los datos de derechos no pueden cifrarse según tal (DES1), como ocurre en una etiqueta de derechos. En una realización de la presente invención, entonces, la plantilla 900 de derechos con los datos de derechos no cifrados se despacha, en el transcurso del cifrado de datos de derechos con (DES1) en la etapa 416 de la Fig. 4, para producir (DES1(datosdederechos)). Por supuesto, los datos de derechos se extraen de la plantilla 900 de derechos despachada antes de ser cifrados de tal manera.
Puede o no darse el caso de que el servidor 320 de DRM y la clave pública (PU-DRM) del mismo sean conocidos en el momento en que se construye la plantilla de derechos. Además, incluso si se conocen, puede o no darse el caso de que haya más de un servidor 320 de DRM, cada uno de ellos con su propio (PU-DRM). No obstante, en el caso en que el servidor 320 de DRM y la clave pública (PU-DRM) del mismo sean conocidos en el momento en que se construye la plantilla de derechos, y en el caso en que sólo se emplee un servidor 320 de DRM, o que sólo un servidor 320 de DRM ha de emplearse en relación con la plantilla 900 de derechos, tal plantilla de derechos también puede incluir en sí información sobre el servidor de DRM que ha de firmar una etiqueta de derechos resultante de la plantilla 900 de derechos, incluyendo la clave pública (PU-DRM) del mismo. Aunque tal (PU-DRM) aparece en la SRL 308 cifrando (DES1) para dar como resultado (PU-DRM(DES1)), ha de apreciarse nuevamente que (DES1) no es conocido hasta que se edita el contenido y, por lo tanto, (PU-DRM) en la plantilla 900 de derechos no puede cifrar tal (DES1), como es el caso en una etiqueta de derechos. En una realización de la presente invención, entonces, la plantilla 900 de derechos con el (PU-DRM) no cifrado, se despacha en el transcurso del cifrado de (DES1) con (PU-DRM) en la etapa 414 de la Fig. 4 a fin de producir (PU-DRM(DES1)). Por supuesto, (PU-DRM) se extrae de la plantilla 900 de derechos despachada, antes de ser empleada.
También en el caso precitado, otra información en el servidor de DRM, que puede incluirse en la plantilla de derechos, puede incluir también información de referencia tal como un URL para localizar al servidor de DRM en una red, e información de resguardo si el URL falla. En cualquier caso, la plantilla de derechos también puede incluir información que describe la plantilla 900 de derechos en sí misma, entre otras cosas. Observe que la plantilla 900 de derechos también puede proporcionar espacio para información relevante al contenido que ha de editarse, tal como información que aparece en una etiqueta de derechos relevante al contenido y/o las claves de cifrado (CK) y (DES1), aunque tal espacio no es necesario si no se transforma efectivamente una instanciación de la plantilla de derechos en una etiqueta de derechos.
Aunque la plantilla 900 de derechos, según lo revelado hasta aquí, está principalmente para comodidad del usuario, también ha de apreciarse que, en algunas circunstancias, un usuario no debería tener libertad irrestricta para definir datos de derechos en una etiqueta de derechos, y puede utilizarse una plantilla 900 de derechos para limitar el alcance o tipo de etiquetas de derechos que pueden crearse. Por ejemplo, y especialmente en el caso de un entorno corporativo o de oficina, puede predefinirse, como norma, que un usuario específico siempre debería editar contenidos sólo para una clase específica de usuarios, o que el usuario nunca debería editar contenidos para una clase específica de usuarios. En todo caso, y en una realización de la presente invención, tal norma está realizada como datos de derechos predefinidos en una o más plantillas 900 de derechos, y el usuario puede estar restringido para emplear tales plantillas de derechos a fin de crear etiquetas de derechos al editar contenidos. Es de hacer notar que una plantilla de derechos o un grupo de plantillas de derechos, puestos a disposición de un usuario para especificar normas de edición para el usuario, pueden especificar cualquier tipo específico de norma de edición sin apartarse del espíritu y el alcance de la presente
invención
Para especificar una plantilla 900 de derechos para un usuario restringido o similar, y volviendo ahora a la Fig. 10, un administrador o similar, de hecho, construye la plantilla 900 de derechos definiendo los datos de derechos predefinidos (etapa 1001), y definiendo cualquier otro dato que pueda ser necesario y adecuado, tal como información relevante a un servidor 320 de DRM específico (etapa 1003). Significativamente, para llevar a cabo la plantilla de derechos para su empleo por parte del usuario restringido o similar, la plantilla 900 de derechos debe hacerse oficial. Es decir, la plantilla 900 de derechos debe ser reconocible como una plantilla de derechos que el usuario restringido o similar puede emplear. En consecuencia, en una realización de la presente invención, la plantilla de derechos, tal como la ha construido el administrador o similar, se despacha al servidor 320 de DRM para ser firmado por el mismo, donde tal firma hace oficial la plantilla de derechos (etapa 1005).
Observe que el servidor firmante 320 de DRM es el servidor 320 de DRM cuya información está en la plantilla 900 de derechos, si acaso tal información está efectivamente presente en la plantilla 900 de derechos. Observe, también, que el servidor 320 de DRM puede firmar la plantilla 900 de derechos sólo al efectuar toda comprobación necesaria, o bien puede firmar sin ninguna comprobación en absoluto. Observe, finalmente, que la firma de la plantilla S (PR-DRM-T) (donde la -T significa que la firma es para la plantilla oficial 900 de derechos) del servidor DRM debería basarse al menos en los datos de derechos predefinidos en la plantilla 900 de derechos, pero también puede basarse en otra información sin apartarse del espíritu y alcance de la presente invención. Como se estipula más adelante, la firma S (PR-DRM-T) se incorporará a una etiqueta de derechos y se verificará en relación con la misma y, en consecuencia, cualquiera que sea la base de la firma, también debería incorporarse a la etiqueta de derechos de forma inalterada.
Al firmar el servidor 320 de DRM la plantilla 900 de derechos y devolver la misma al administrador o figura similar, el administrador recibe la plantilla 900 de derechos, firmada y ahora oficial, con S (PR-DRM-T) (etapa 1007), y remite la plantilla oficial 900 de derechos (ORT) a uno o más usuarios para su utilización por parte de los mismos (etapa 1009). En consecuencia, para que un usuario edite contenidos basándose en una ORT 900, dicho usuario extrae la ORT 900 (etapa 1011) y construye una etiqueta de derechos basándose en la ORT 900 (etapa 1013), proporcionando toda información necesaria, tal como información acerca del contenido, información acerca de la clave adecuada, los datos de derechos de la ORT 900 cifrados por (DES1), que dan como resultado (DES1(datosdederechos)), y cualquier otra información de la ORT 900. Significativamente, el usuario también incluye, con la etiqueta de derechos, la firma S (PR-DRM-T) de la ORT 900.
A continuación, y como antes, el usuario despacha la etiqueta de derechos al servidor 320 de DRM para la firma (etapa 1015). Aquí, sin embargo, el servidor 320 de DRM no firmará la etiqueta de derechos despachada, a menos que se verifique S (PR-DRM-T) en la misma. Es decir, el servidor 320 de DRM hace cumplir que el usuario debe basar la etiqueta de derechos despachada en una ORT 900, rehusándose a firmar la etiqueta de derechos despachada a menos que tal etiqueta de derechos despachada incluya una firma S (PR-DRM-T) de una ORT 900. En particular, el servidor 320 de DRM extrae tal S (PR-DRM-T), y toda información sobre la que se base tal firma, de la etiqueta de derechos despachada, y luego verifica tal firma basándose en (PU-DRM). Observe que los datos de derechos en la etiqueta de derechos despachada están cifrados según (DES1) (es decir, (DES1(datosdederechos)). En consecuencia, el servidor 320 de DRM debe obtener primero (DES1) y descifrar (DES1(datosdederechos)) con el mismo, según lo estipulado anteriormente con relación a la Fig. 7, a fin de poder verificar la firma basándose en los datos de derechos en la etiqueta de derechos despachada.
Una vez verificada, el servidor 320 de DRM firma la etiqueta de derechos despachada con S (PR-DRM-L), a fin de producir una SRL 308, igual que antes (donde la -L significa que la firma es para la SRL 308). Aquí, S (PR-DRM-L) puede reemplazar a S (PR-DRM-T), o puede añadirse a tal S (PR-DRM-T). Si se añade, S (PR-DRM-L) puede basarse en parte en S (PR-DRM-T). Observe que (PR-DRM) puede emplearse para producir tanto S (PR-DRM-T) como S (PR-DRM-L), o que pueden emplearse distintos (PR-DRM) para uno cualquiera entre S (PR-DRM-T) y S (PR-DRM-L). Al firmar el servidor 320 de DRM la etiqueta de derechos y devolver la SRL 308 al usuario, el usuario recibe la SRL 308 con S (PR-DRM-L) (etapa 1017) y procede a concatenar la misma al contenido que se está editando, igual que antes.
Si la firma S (PR-DRM-T) de la ORT 900 se basa, al menos en parte, en los datos de derechos predefinidos en la ORT 900, entonces tales datos de derechos, según aparecen en la SRL 308 (en (DES1(datosdederechos)), no pueden sufrir modificaciones o variaciones. En caso contrario, no se verificará la S (PR-DRM-T). No obstante, en una realización de la presente invención, los datos de derechos en la ORT 900 pueden variar dentro de reglas prescritas, que también se incluyen en la ORT 900. Por ejemplo, las reglas pueden especificar que uno entre dos conjuntos de datos de derechos ha de incluirse en una SRL 308, o pueden permitir una selección entre un conjunto de alternativas. Como puede apreciarse, las reglas pueden ser reglas específicas cualesquiera, estipuladas con cualquier sintaxis adecuada, sin apartarse del espíritu y el alcance de la presente invención. Aquí, las reglas son interpretadas por un intérprete de reglas adecuado para el usuario en el momento en que se crea la etiqueta de derechos. Aunque los datos de derechos pueden variar, las reglas no varían de igual manera y, en consecuencia, la firma de plantilla S (PR-DRM-T) para la ORT 900 se basa, al menos en parte, en las reglas, y no en los datos de derechos en sí. Como resultado de esto, las reglas incluidas en la ORT 900 también deben incluirse en la SRL 308.
En una realización de la presente invención, los datos de derechos predefinidos en la ORT 900 son fijos e invariantes en parte, y son variables y gobernados por reglas en parte, según lo estipulado anteriormente. Aquí, la firma de la plantilla S (PR-DRM-T) para la ORT 900 se basa, al menos en parte, sobre la parte fija de las reglas, y sobre las reglas para la parte variable de los datos de derechos.
Como puede apreciarse, la ORT 900, en posesión de un usuario, puede quedar caducada o desactualizada. Es decir, la ORT 900, a través de los datos de derechos en la misma, puede reflejar criterios que han quedado desactualizados, irrelevantes o, simplemente, no son aplicables ya. Por ejemplo, uno o más usuarios, o clases de usuarios, especificados en los datos de derechos de la ORT 900, pueden no existir ya en el entorno de normas, o bien cierto usuario, o clase de usuarios, especificados en los datos de derechos de la ORT 900, pueden no tener ya los mismos derechos en el entorno de normas. En tal caso, puede ser que el administrador haya emitido una ORT 900 revisada, pero que el usuario esté usando aún una versión previa, caducada, de la ORT 900.
En tal situación, entonces, y en una realización de la presente invención, el servidor 320 de DRM, al firmar una plantilla 900 de derechos despachada, a fin de crear una ORT 900, retiene una copia de la ORT 900; cada ORT 900 tiene un indicio identificador único, y cada etiqueta de derechos construida basándose en una ORT 900 incluye el indicio identificador de tal ORT 900 en la misma. En consecuencia, al recibir una etiqueta de derechos despachada, tal como la relacionada con la Fig. 10, el servidor 320 de DRM busca el indicio identificador de la ORT 900 en la etiqueta de derechos, extrae la copia más reciente de tal ORT 900 basándose en el indicio identificador hallado, quita los datos de derechos de la etiqueta de derechos despachada, inserta los datos de derechos de la ORT 900 extraída y luego firma la etiqueta de derechos basándose, al menos en parte, en los datos de derechos insertados. Por supuesto, el servidor de DRM también realiza cualesquiera etapas de cifrado y descifrado necesarias y relevantes en el proceso según lo estipulado, incluyendo el descifrado y recifrado de (DES1(datosdederechos)). Observe que si el servidor de DRM está adaptado para reemplazar los datos de derechos en una etiqueta de derechos despachada, tal etiqueta de derechos, y la ORT 900 de la cual se ha construido tal etiqueta de derechos, no deben necesariamente incluir los datos de derechos en las mismas. En cambio, los datos de derechos sólo deben residir en el servidor 320 de DRM. Sin embargo, la inclusión de datos de derechos en la etiqueta de derechos, y en la ORT 900 a partir de la cual se construye tal etiqueta de derechos, podría ser de utilidad para el usuario y, por lo tanto, puede ser útil en algunas situaciones.
Arquitectura Acoplable para Baterías de Procesos de DRM
Un típico servidor de DRM, y una plataforma de servicio según la invención, pueden incluir uno o más servicios de DRM de alto nivel, tales como licencias, edición, suscripción, activación, certificación, federación y otros similares. Según la invención, los respectivos sistemas de software que brindan cada uno de estos servicios pueden proporcionarse como "baterías de procesos" que están diseñadas de manera modular, a fin de que puedan instalarse individualmente en cualquier combinación, y que puedan luego ser gestionadas, habilitadas o inhabilitadas, autenticadas o deslegitimadas, etc. Cada uno de los servicios de DRM puede denominarse una batería de procesos, debido a la forma en que procesan las solicitudes desde el principio hasta el final, con diversas etapas de procesamiento por el camino.
Las baterías de procesos trabajan conjuntamente a fin de presentar una plataforma rica de DRM e, individualmente, cada una proporciona un importante servicio de DRM. Además, componentes específicos de la plataforma de DRM, que encapsulan la lógica comercial (lo que puede ser importante para un servidor de DRM y para una implementación de servicios exitosos), son compartidos en el ámbito de la gama de DRM, y son "acoplables" por terceros. Tal implementación brinda la flexibilidad tanto para desarrollar rápidamente soluciones de servicio como para ofrecer a los clientes una manera de personalizar software para sus necesidades de DRM.
Preferiblemente, se emplean el Servidor de Información de Internet ("IIS") y el modelo ASP.net de Microsoft para los servicios de escritura. El IIS está diseñado para proporcionar seguridad a intranets corporativas y a Internet. Además, el IIS proporciona una implementación del protocolo de la Capa de Tomas Seguras (SSL). para la comunicación y autenticación seguras con certificados X.509, Cifra de Clave Pública RSA y una amplia gama de características adicionales de seguridad. ASP.net es un entorno de programación que permite el desarrollo rápido de potentes aplicaciones y servicios de Web. Es parte de la plataforma .NET de Microsoft, y proporciona una manera fácil y escalable de construir, desplegar y ejecutar aplicaciones de Web que pueden orientarse hacia cualquier explorador o dispositivo.
En una realización preferida de la invención, se envía una solicitud de HTTP de tipos fuertes a un servidor de Web que ejecuta el IIS, ASP.net y uno o más servicios de DRM. La solicitud de HTTP es entonces preprocesada por el IIS y por ASP.net, y dirigida al servicio adecuado de DRM. Una vez que la solicitud lleva al código de servicio de DRM, ingresa a una de las baterías de procesos encargados del procesamiento. Cada batería de procesos está definida al más alto nivel por un fichero de ASP.net (un fichero ASMX) que describe por sí mismo el punto de entrada del servicio y el código que se encarga de las solicitudes a ese punto de entrada. Para cada batería de procesos, hay código de servicio de DRM detrás del punto de entrada, y la combinación del fichero ASMX y del código detrás de él compone la batería de procesos.
El código tras el punto de entrada es modular, y puede compartir código con otras baterías de procesos. Puede incluir: 1) código de inicio específico para la solicitud, que preprocesa los parámetros de la solicitud, llevando a cabo cualquier normalización requerida de los datos y realizando operaciones comunes de inicio de solicitudes en baterías de procesos; 2) código que realiza acciones específicas para el procesamiento de la solicitud (y específicas para la batería de procesos); 3) código que invoca componentes internos compartidos (compartidos entre baterías de procesos y accesibles sólo a la plataforma de DRM) y componentes públicos compartidos (compartidos entre baterías de procesos y acoplables por terceros); y 4) código de cierre de solicitudes, que toma los resultados generados por la batería de procesos y formula una respuesta adecuada para la solicitud.
Como resultado de este diseño de baterías de procesos, los servicios de DRM pueden desplegarse fácilmente en cualquier permutación. Por ejemplo, los servicios de Licencias y de Federación pueden instalarse en una instalación específica, y los servicios de Edición e Información pueden inhabilitarse. En otro ejemplo, pueden instalarse sólo los servicios de Licencias, o sólo los de Edición, con el cumplimiento de estrictos requisitos de autenticación para el servicio de Edición, aplicándolos al punto de entrada del fichero ASMX. Tal diseño de baterías de procesos también brinda la introducción eficiente de nuevos servicios en el futuro, tal como un servicio de Suscripción, o un servicio de Firma y Validación de Firma, por ejemplo, sin afectar a los servicios existentes de DRM, pero aprovechando la infraestructura existente.
Dentro de cada batería de procesos se ejecuta un cierto número de etapas de la batería de procesos, algunas de las cuales invocan componentes sólo internos de DRM, y algunas de las cuales invocan componentes públicos y acoplables ("acoples"). Como resultado de este diseño acoplable de DRM, los terceros pueden escribir u obtener componentes personalizados que ejecutan una parte del proceso general de la batería de procesos de DRM. Preferiblemente, se toman medidas para garantizar que tales terceros son fiables antes de que tales componentes acoplables de terceros se integren en el marco de la batería de procesos. Las técnicas estándar y públicas proporcionadas por el entorno .NET pueden utilizarse para garantizar que el componente acoplable de terceros es fiable. Los componentes acoplables de terceros pueden instalarse dinámicamente. Tales componentes acoplables de terceros pueden ser identificados, en los datos de configuración del sistema de DRM, por ejemplo, y cargarse en tiempo de ejecución. Tal diseño brinda facilidad de uso y de administración del sistema de DRM.
Generalmente, un componente acoplable lleva a cabo una tarea discreta, tal como extraer una Etiqueta de Derechos del almacenamiento, generar un nodo XML de Punto de Distribución basado en datos de configuración, realizar operaciones de clave privada utilizando hardware personalizado de cifrado/descifrado, etc., Ciertos componentes acoplables especializados se denominan aquí "extensiones". Las extensiones se invocan cuando ocurren sucesos generales, tal como cuando es hora de autorizar una solicitud, cuando se ha generado una licencia, etc., Los componentes acoplables son más activos en el procesamiento de las baterías de procesos, llevando a cabo una tarea esencial y requerida en la batería de procesos. Las extensiones son más pasivas, respondiendo a sucesos y, posiblemente, realizando algún trabajo o bien no haciendo nada.
La Fig. 11 ilustra una batería genérica 1100 de procesos según la invención. La batería 1100 de procesos incluye un programa 1102 de servicio que proporciona un entorno de procesamiento para llevar a cabo un servicio de gestión de derechos digitales, tal como la edición, las licencias, etc. La batería 1100 de procesos incluye una pluralidad de componentes acoplables 1120a, 1102b. Cada componente acoplable 1120a, 1120b realiza su respectiva tarea, asociada al servicio de gestión de derechos digitales. Los tipos de tareas que puede realizar un componente acoplable en una batería de procesos de gestión de derechos digitales se describen en detalle por toda esta especificación. Cada uno de la pluralidad de componentes acoplables 1120a, 1120b está integrado en el entorno 1102 de procesamiento según un respectivo conjunto predefinido de reglas de interfaz. Típicamente, estas reglas de interfaz se negocian entre el proveedor del entorno de procesamiento del programa de servicio y el proveedor del componente acoplable (que, como se ha descrito anteriormente, pueden o no ser la misma entidad). Una batería 1100 de procesos también puede incluir una o más extensiones 1130.
En algún punto 1140 a lo largo de la batería de procesos, todas las tareas necesarias para llevar a cabo el servicio (p. ej., procesar la solicitud) han sido completadas. Después de ese punto 1140, los componentes asincrónicos pueden integrarse en el entorno 1110 de procesamiento. En primera instancia, los componentes asincrónicos pueden utilizarse para tareas que no son necesarias para realizar el servicio. De esta manera, los componentes asincrónicos proporcionan un modelo de extensibilidad fuera de banda para tareas que no tienen que llevarse a cabo durante el procesamiento de la batería de procesos. Como son procesados después de que las tareas del servicio requerido han sido completadas, los componentes asincrónicos no impiden el procesamiento de una solicitud. Preferiblemente, los componentes asincrónicos no tiene poder de veto. Cualquier número de componentes asincrónicos puede ser procesado en paralelo.
Gracias a esta plataforma abierta, se prefiere que se tomen medidas para proteger los datos y las interfaces. Por ejemplo, podría requerirse que los componentes acoplables que están trabajando dentro del entorno de la batería de procesos sean fiables. Esto puede lograrse de diversas maneras. Por ejemplo, pueden emplearse técnicas de nombrado fuerte y de código con gestión de seguridad basado en evidencias, entre el programa de servicio y sus componentes acoplables, a fin de validar el componente y asegurarse de que el programa de servicio se fía del componente acoplable y de que el componente acoplable se fía del programa de servicio. Además, los datos que el programa de servicio proporciona a los componentes acoplables, y los datos que el programa de servicio acepta de ellos, pueden controlarse cuidadosamente. Por ejemplo, en una realización preferida, a los componentes acoplables se les niega el acceso directo a las estructuras de datos del programa de servicio. En cambio, se replican los datos que entran y salen de los componentes acoplables.
La Fig. 12 ilustra una realización preferida de una batería 1200 de procesos de edición según la invención. Como se muestra, la batería 1200 de procesos de edición puede incluir un programa de servicio, tal como un programa de solicitudes de edición, por ejemplo, que proporciona un entorno de procesamiento a fin de procesar una solicitud para editar contenido digital con gestión de derechos. La batería 1200 de procesos de edición también puede incluir una pluralidad de componentes acoplables, cada uno de los cuales realiza su respectiva tarea asociada al procesamiento de la solicitud de edición. Cada uno de la pluralidad de componentes acoplables se integra en el entorno de procesamiento según su respectivo conjunto predefinido de reglas de interfaz. Cada uno de los ejemplos de componentes acoplables se describe ahora en detalle.
Puede proporcionarse un componente acoplable 1120a de "autenticación" para determinar la identidad de la entidad que solicita la licencia. De esta manera, el proveedor del componente acoplable 1320a de autenticación puede controlar si se requiere la autenticación y, en ese caso, el proveedor puede controlar el tipo de autenticación, el método de autenticación, si se permite o no la autenticación anónima, y el tipo de código de error que se devolverá si la solicitud no puede autenticarse por cualquier motivo.
Puede proporcionarse un componente acoplable 1220b de "autorización" para autorizar la identidad autenticada. Generalmente, puede utilizarse un componente acoplable de autorización para determinar si una entidad solicitante está autorizada a hacer aquello que la entidad solicitante ha pedido. Por ejemplo, en una batería de procesos de edición, puede utilizarse un componente acoplable de autorización para determinar si se permite a la identidad autenticada editar contenidos con gestión de derechos utilizando el sistema de DRM. De esta manera, el proveedor del componente acoplable de autorización puede controlar qué entidades pueden solicitar qué acciones, qué lista de entidades se almacena, cómo y dónde se almacena tal lista, cómo las entidades autorizadas causan alta y baja de la lista, y sucesos similares.
Puede utilizarse un componente acoplable 1220c de "almacenamiento de etiqueta de derechos" para almacenar una etiqueta maestra de derechos generada según la invención. Como se ha descrito en detalle anteriormente, puede asociarse una etiqueta maestra de derechos a un identificador, tal como un GUID. En el momento de emitir la licencia, el servidor extrae del almacenamiento una copia de la etiqueta maestra de derechos, basándose en el GUID. El proveedor de un componente acoplable 1220c de almacenamiento de etiquetas de derechos puede definir las localidades donde ha de almacenarse la etiqueta maestra de derechos, y las técnicas de almacenamiento empleadas para almacenar la etiqueta de derechos.
Puede utilizarse un componente acoplable 1220d de "clave privada" para proteger la clave privada raíz. De esta manera, el proveedor de un componente acoplable 1220d de clave privada puede especificar el algoritmo de protección de clave privada que utilizará el sistema. Un cierto número de algoritmos de protección de clave privada, que son adecuados para su empleo en un sistema de DRM según la invención, se describen en la Solicitud de Patente Estadounidense Nº (Registro de Procurador MSFT-1334).
En el punto 1240 de terminación, como se muestra en la Fig. 12, el procesamiento de la solicitud de edición ha sido completado, y los componentes asincrónicos 1250 comienzan a realizar sus respectivas tareas. Como se muestra, la batería 1200 de procesos de edición también puede incluir un componente 1250a de "bolsa de propiedades", una aplicación 1250b de "registro" y un componente acoplable 1250c, como motor de certificados. Debería entenderse, sin embargo, que una batería de procesos de edición según la invención puede incluir cualquier número de componentes acoplables, incluyendo cualquier número de extensiones o componentes asincrónicos.
Una "bolsa de propiedades" 1250a es un recurso que está disponible para los componentes acoplables durante el tiempo de ejecución, y que presenta información de contexto de la solicitud. El proveedor de la bolsa de propiedades puede así controlar qué datos se meten en la bolsa de propiedades, a quién se deja disponible la bolsa de propiedades, y en qué circunstancias puede dejarse disponible la bolsa de propiedades.
Puede utilizarse una aplicación 1250b de "registro" para archivar datos relacionados con la solicitud de edición. El proveedor del componente de registro puede así controlar qué datos se archivan, dónde se archivan los datos y en qué formato se archivan los datos.
Un componente acoplable 1250c, "motor de certificados", es un componente acoplable asincrónico que escribe certificados (p. ej., un certificado de licencia). El motor de certificados sabe cómo abordar la gramática del lenguaje de derechos que se está utilizando (p. ej., XrML). El proveedor del componente acoplable del motor de certificados puede así controlar el formato y contenido de los certificados, el lenguaje de derechos que se está utilizando, etc.
La Fig. 13 ilustra una realización preferida de una batería 1300 de procesos de licencias según la invención. Según se muestra, la batería 1300 de procesos de licencias puede incluir un programa de servicio, tal como un programa de solicitudes de licencia, por ejemplo, que proporciona un entorno de procesamiento para procesar una solicitud de licencia. La batería 1300 de procesos de licencias también puede incluir una pluralidad de componentes acoplables, cada uno de los cuales realiza su respectiva tarea, asociada al procesamiento de la solicitud de licencia. Cada uno de la pluralidad de componentes acoplables se integra en el entorno de procesamiento del programa de solicitud de licencias según su respectivo conjunto predefinido de reglas de interfaz. Cada uno de los ejemplos de componentes acoplables se describe ahora en detalle. Observe que, en una realización preferida de un sistema de DRM según la invención, los componentes acoplables pueden compartirse entre diversos servicios de batería de procesos, o de Web, y muchos de los componentes acoplables que pueden incluirse en una batería de procesos de licencias pueden ser idénticos a aquellos incluidos en la batería de procesos de edición descrita anteriormente.
Puede proporcionarse un componente acoplable 1320a de "autenticación", tal como el descrito anteriormente con relación a la batería de procesos de edición, a fin de determinar la identidad de la entidad que solicita la
licencia.
Puede proporcionarse un componente acoplable 1320b de "autorización", tal como el descrito anteriormente con relación a la batería de procesos de edición, a fin de autorizar la identidad autenticada. En una batería de procesos de licencias, pueden utilizarse un componente acoplable de autorización a fin de determinar si se permite o no a la entidad solicitante solicitar una licencia. De esta manera, el proveedor del componente acoplable de autorización puede controlar si se permite o no a una identidad de cuenta personal realizar directamente una solicitud de licencia, si un proceso servidor fiable puede o no realizar una solicitud de licencia a nombre de tal entidad, y otros
similares.
Puede utilizarse un componente acoplable 1320c de "expansión de grupo" para extraer una lista de usuarios individuales de un identificador de grupo. Se prevé que, en general, la pertenencia a un grupo predefinido cambiará a lo largo del tiempo. En consecuencia, un sistema de DRM según la invención puede incluir un repositorio de grupos que contiene las respectivas listas de usuarios para cada uno de un cierto número de grupos. Cada grupo tiene un identificador de grupo asociado. Por ello, toda vez que se recibe un identificador de grupo durante el procesamiento de un servicio de gestión de derechos digitales (p. ej., edición), puede llamarse al componente acoplable de expansión de grupos para extraer la lista actual del grupo que corresponde al identificador de grupo recibido.
Puede utilizarse un componente acoplable 1320d de "extracción de etiqueta de derechos" para extraer una etiqueta de derechos que corresponde a un identificador recibido. Como se ha descrito en detalle anteriormente, el servidor analiza sintácticamente la etiqueta de derechos ingresada en la solicitud de licencia a fin de extraer su GUID. Luego pasa este GUID al componente acoplable 1320d de extracción de etiquetas de derechos, el cual emite una consulta sobre la base de datos a fin de extraer una copia de la etiqueta maestra de derechos.
Puede utilizarse un componente acoplable de "extracción de certificados" para extraer un certificado desde un servidor en el cual se almacenan tales certificados. Por ejemplo, una entidad solicitante podría estar solicitando prelicencias para un cierto número de licenciatarios potenciales, pero la entidad solicitante no tiene los certificados para los licenciatarios potenciales. Sin embargo, se necesitan los certificados para emitir la licencia, por lo que puede utilizarse el componente acoplable de extracción de certificados para extraer los certificados del servidor en el cual están almacenados.
Puede utilizarse un componente acoplable de "almacenamiento" para encapsular el acceso al almacenamiento, cualquiera que sea el proporcionado. De esta manera, el proveedor de un componente aplicable de almacenamiento puede especificar los almacenes en los cuales pueden almacenarse datos, o de los cuales pueden extraerse datos, así como el "lenguaje" que la batería de procesos necesita para comunicarse con el almacén o almacenes de datos. Por ejemplo, una batería de procesos podría necesitar acceder a un almacén específico de datos por medio del
SQL.
Puede utilizarse un componente acoplable 1320g de "punto de distribución" con relación a la superdistribución de la URL de referencia. El componente acoplable 1320g de punto de distribución lee los URL de referencia en una dirección de almacenamiento, y los incorpora en documentos XrML cuando es requerido para hacerlo. La salida de este componente acoplable es una porción bien definida de XML que define la URL de referencia con la que un cliente puede ponerse en contacto a fin de realizar una operación de DRM tal como emisión de licencias, adquisición de derechos, etc.
Puede utilizarse un componente acoplable 1320h de "clave privada", tal como el descrito anteriormente con relación a la batería de procesos de edición, para proteger la clave privada raíz.
En el punto 1340 de terminación, como se muestra en la Fig. 13, se completa el procesamiento de la solicitud de licencia, y los componentes acoplables asincrónicos 1350 comienzan a realizar sus respectivas tareas. Como se muestra, la batería 1300 de procesos de licencias también puede incluir un componente 1350a de "bolsa de propiedades", una aplicación 1350b de "registro", y un componente acoplable 1350c como motor de certificados, tal como se ha descrito anteriormente en relación a la batería de procesos de edición. Debería entenderse, sin embargo, que una batería de procesos de licencias según la invención puede incluir cualquier número de componentes acoplables, incluyendo cualquier número de extensiones o componentes asincrónicos.
La Fig. 14 proporciona un diagrama de flujo de una realización preferida de un procedimiento 1400 según la invención, a fin de proporcionar una arquitectura acoplable de servidor seguro para sistemas de gestión de derechos digitales. En la etapa 1402, el proveedor del sistema proporciona un programa de servicio que brinda un entorno de procesamiento para llevar a cabo un servicio de gestión de derechos digitales, tal como la edición, la emisión de licencias, etc. En una realización preferida, el programa de servicio incluye código para llevar a cabo el servicio asociado de DRM.
En la etapa 1404, el proveedor del sistema proporciona una pluralidad de opciones acoplables de DRM, cada una de las cuales está asociada a un respectivo componente acoplable que lleva a cabo una respectiva tarea, asociada al servicio de gestión de derechos digitales. El instalador, comprador, administrador del sistema, etc., o bien otro usuario del sistema, puede entonces seleccionar entre la pluralidad de opciones acoplables, a fin de escoger aquellos componentes acoplables que brinden la funcionalidad específica que el consumidor desea para esa batería de procesos, para esa instalación.
En la etapa 1406, el proveedor del sistema recibe las selecciones acoplables y, en la etapa 1408, integra en el entorno de procesamiento los componentes acoplables que corresponden a las opciones acoplables seleccionadas. De esta manera, un usuario de un sistema de DRM según la invención puede personalizar el sistema según las necesidades o deseos del usuario, y puede actualizar el sistema de manera económica, fácil y eficiente, cambiando los componentes acoplables.
Conclusión
La programación necesaria para efectuar los procesos ejecutados con relación a la presente invención es relativamente inmediata, y debería ser obvia al colectivo de programación relevante En consecuencia, tal programación no se adjunta a la presente. Cualquier programación específica, entonces, puede emplearse a fin de llevar a cabo la presente invención sin apartarse del espíritu y el alcance de la misma.
De esta manera, se han descrito arquitecturas acoplables seguras para sistemas de gestión de derechos. Aquellos versados en la tecnología apreciarán que pueden hacerse numerosos cambios y modificaciones a las realizaciones preferidas de la invención, y que tales cambios y modificaciones pueden hacerse sin apartarse del espíritu de la invención. Por ejemplo, aunque la invención ha sido descrita en detalle con relación a las baterías de procesos de edición y de emisión de licencias, debería entenderse que la invención puede emplearse en otras baterías de procesos de gestión de derechos digitales que realizan otros servicios de gestión de derechos digitales, tales como la suscripción, la activación, la certificación, la federación, y otros similares. Se pretende, por lo tanto, que las reivindicaciones adjuntas cubran todas las variaciones equivalentes que queden dentro del ámbito de la invención.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Apéndice pasa a página siguiente)
3
4
5
6

Claims (28)

1. Un sistema (300) para suministrar servicios de gestión de derechos digitales, comprendiendo el sistema (300):
un programa de servicio que proporciona un entorno de procesamiento para realizar un servicio (306) de gestión de derechos digitales; y
una pluralidad de componentes acoplables, cada uno de los cuales realiza una tarea respectiva asociada al servicio de gestión de derechos digitales,
en el cual cada uno entre la pluralidad de componentes acoplables se integra en el entorno de procesamiento según un respectivo conjunto predefinido de reglas de interfaz.
2. El sistema de la reivindicación 1, en el cual el servicio de gestión de derechos digitales incluye el procesamiento de una solicitud de edición, para editar el contenido digital con gestión de derechos.
3. El sistema de la reivindicación 2, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para almacenar una etiqueta de derechos que incluye una descripción de derechos, una clave cifrada de contenido y una firma digital que abarca tanto la descripción de derechos como la clave cifrada de contenido.
4. El sistema de la reivindicación 2, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para proteger una clave privada que se utiliza con relación al cifrado y descifrado del contenido digital con gestión de derechos.
5. El sistema de la reivindicación 2, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para generar un certificado.
6. El sistema de la reivindicación 2, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para autenticar una entidad que despacha la solicitud de edición.
7. El sistema de la reivindicación 2, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para determinar si una entidad que despacha la solicitud de edición está autorizada para editar el contenido digital con gestión de derechos, según la solicitud.
8. El sistema de la reivindicación 1, en el cual el servicio de gestión de derechos digitales incluye el procesamiento de una solicitud de licencia para licenciar el contenido digital con gestión de derechos.
9. El sistema de la reivindicación 8, en el cual la pluralidad de componentes acoplables incluye un componente acoplable de expansión de grupo, para extraer una lista de usuarios basada en un identificador de grupo proporcionado en la solicitud de licencia.
10. El sistema de la reivindicación 8, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para extraer una etiqueta de derechos que incluye una descripción de derechos, una clave cifrada de contenido y una firma digital que abarca tanto la descripción de derechos como la clave cifrada de contenido.
11. El sistema de la reivindicación 8, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para extraer un certificado.
12. El sistema de la reivindicación 8, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para autenticar una entidad que despacha la solicitud de licencia.
13. El sistema de la reivindicación 8, en el cual la pluralidad de componentes acoplables incluye un componente acoplable para determinar si una entidad que despacha la solicitud de licencia está autorizada para utilizar el contenido digital con gestión de derechos según la solicitud.
14. El sistema de la reivindicación 1, en el cual la pluralidad de componentes acoplables incluye al menos un componente acoplable de extensión, que realiza su respectiva tarea basándose en la ocurrencia de un suceso prescrito.
15. El sistema de la reivindicación 14, en el cual el componente acoplable de extensión está adaptado para detener el procesamiento del programa de servicio.
16. El sistema de la reivindicación 1, en el cual la pluralidad de componentes acoplables incluye al menos un componente asincrónico.
17. El sistema de la reivindicación 1, en el cual el servicio de gestión de derechos digitales incluye un servicio de suscripción.
18. El sistema de la reivindicación 1, en el cual el servicio de gestión de derechos digitales incluye un servicio de activación.
19. El sistema de la reivindicación 1, en el cual el servicio de gestión de derechos digitales incluye un servicio de certificación.
20. El sistema de la reivindicación 1, en el cual el servicio de gestión de derechos digitales incluye un servicio de federación.
21. Un procedimiento para proporcionar servicios de gestión de derechos digitales, comprendiendo el procedimiento:
el suministro de un programa de servicio que proporciona un entorno de procesamiento para realizar un servicio de gestión de derechos digitales;
el suministro de una pluralidad de opciones acoplables de gestión de derechos digitales, en donde cada una de las opciones acoplables está asociada a un respectivo componente acoplable que lleva a cabo una respectiva tarea asociada al servicio de gestión de derechos digitales; y
la integración de un componente acoplable seleccionado en el entorno de procesamiento, en el cual un componente acoplable seleccionado corresponde a una opción acoplable seleccionada entre la pluralidad de opciones acoplables;
22. El procedimiento de la reivindicación 21, que comprende adicionalmente:
la recepción de una selección acoplable que corresponde al componente acoplable seleccionado.
23. El procedimiento de la reivindicación 21, en el cual el componente acoplable deseado se integra en el entorno de procesamiento según un conjunto predefinido de reglas de interfaz.
24. El procedimiento de la reivindicación 21, en el cual un programa de servicio proporciona un entorno de procesamiento para realizar un servicio de licencias.
25. El procedimiento de la reivindicación 21, en el cual el programa de servicio proporciona un entorno de procesamiento para realizar un servicio de edición.
26. Un sistema de gestión de derechos digitales, que comprende:
un servidor (320) de gestión de derechos digitales que incluye un medio legible por ordenador que tiene almacenado en el mismo instrucciones ejecutables por ordenador, para llevar a cabo una pluralidad de servicios (306) de gestión de derechos digitales, en donde cada uno de la pluralidad de servicios de gestión de derechos digitales se efectúa en una respectiva batería de procesos, y en donde las respectivas baterías de procesos son independientes entre sí (1110, 1210, 1310).
27. El sistema de gestión de derechos digitales de la reivindicación 26, en el cual cada una de las baterías de procesos comprende:
un programa de servicio que proporciona un entorno de procesamiento para llevar a cabo el servicio asociado de gestión de derechos digitales; y
una pluralidad de componentes acoplables, cada uno de los cuales realiza una respectiva tarea asociada al servicio de gestión de derechos digitales.
28. El sistema de gestión de derechos digitales de la reivindicación 27, en el cual cada uno de la pluralidad de componentes digitales está integrado en el entorno de procesamiento según un respectivo conjunto predefinido de reglas de interfaz.
ES03013564T 2002-06-28 2003-06-13 Arquitectura de servidor enchufable asegurada para sistemas de gestion de derechos digitales. Expired - Lifetime ES2271427T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US185906 2002-06-28
US10/185,906 US7631318B2 (en) 2002-06-28 2002-06-28 Secure server plug-in architecture for digital rights management systems

Publications (1)

Publication Number Publication Date
ES2271427T3 true ES2271427T3 (es) 2007-04-16

Family

ID=27612990

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03013564T Expired - Lifetime ES2271427T3 (es) 2002-06-28 2003-06-13 Arquitectura de servidor enchufable asegurada para sistemas de gestion de derechos digitales.

Country Status (7)

Country Link
US (1) US7631318B2 (es)
EP (1) EP1376980B1 (es)
JP (1) JP4489382B2 (es)
AT (1) ATE337671T1 (es)
DE (1) DE60307736T2 (es)
ES (1) ES2271427T3 (es)
NO (1) NO333104B1 (es)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606659B1 (en) 2000-01-28 2003-08-12 Websense, Inc. System and method for controlling access to internet sites
US7493397B1 (en) * 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US7428725B2 (en) * 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US7194464B2 (en) 2001-12-07 2007-03-20 Websense, Inc. System and method for adapting an internet filter
US20030233477A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation Extensible infrastructure for manipulating messages communicated over a distributed network
US7502945B2 (en) * 2002-06-28 2009-03-10 Microsoft Corporation Using a flexible rights template to obtain a signed rights label (SRL) for digital content in a rights management system
US7574653B2 (en) * 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US20040122772A1 (en) * 2002-12-18 2004-06-24 International Business Machines Corporation Method, system and program product for protecting privacy
US7370017B1 (en) * 2002-12-20 2008-05-06 Microsoft Corporation Redistribution of rights-managed content and technique for encouraging same
JP4175118B2 (ja) * 2003-01-14 2008-11-05 ヤマハ株式会社 コンテンツ処理装置及びプログラム
JP3823925B2 (ja) * 2003-02-05 2006-09-20 ソニー株式会社 情報処理装置、ライセンス情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US7370212B2 (en) * 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7136945B2 (en) * 2003-03-31 2006-11-14 Sony Corporation Method and apparatus for extending protected content access with peer to peer applications
US7353397B1 (en) * 2003-04-30 2008-04-01 Adobe Systems Incorporated Repurposing digitally signed information
EP2270622B1 (en) * 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
KR100953160B1 (ko) * 2003-06-26 2010-04-20 삼성전자주식회사 네트워크 장치 및 이를 이용하는 상이한 저작권 관리방식을 갖는 네트워크 장치간의 컨텐츠 호환성 제공 방법
US7237256B2 (en) 2003-07-14 2007-06-26 Sun Microsystems, Inc. Method and system for providing an open and interoperable system
US7506162B1 (en) 2003-07-14 2009-03-17 Sun Microsystems, Inc. Methods for more flexible SAML session
EP1557762A1 (en) * 2003-07-25 2005-07-27 Matsushita Electric Industrial Co., Ltd. Data processing apparatus
KR100493904B1 (ko) * 2003-09-18 2005-06-10 삼성전자주식회사 다수의 기기를 지원하는 drm 라이센스 방법
US7801819B2 (en) 2003-10-03 2010-09-21 Sony Corporation Rendering rights delegation system and method
US8103004B2 (en) * 2003-10-03 2012-01-24 Sony Corporation Method, apparatus and system for use in distributed and parallel decryption
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
FR2865051B1 (fr) * 2004-01-14 2006-03-03 Stg Interactive Procede et systeme pour l'exploitation d'un reseau informatique destine a la publication de contenu
US9003548B2 (en) 2004-04-13 2015-04-07 Nl Systems, Llc Method and system for digital rights management of documents
US7836510B1 (en) 2004-04-30 2010-11-16 Oracle America, Inc. Fine-grained attribute access control
US7565356B1 (en) 2004-04-30 2009-07-21 Sun Microsystems, Inc. Liberty discovery service enhancements
US7890604B2 (en) * 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US20050251380A1 (en) * 2004-05-10 2005-11-10 Simon Calvert Designer regions and Interactive control designers
US9026578B2 (en) * 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US7464386B2 (en) * 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US20060020883A1 (en) * 2004-05-28 2006-01-26 Microsoft Corporation Web page personalization
US7530058B2 (en) * 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
US8156448B2 (en) * 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
GB2415065B (en) * 2004-06-09 2009-01-21 Symbian Software Ltd A computing device having a multiple process architecture for running plug-in code modules
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7437358B2 (en) 2004-06-25 2008-10-14 Apple Inc. Methods and systems for managing data
EP1789892A2 (en) * 2004-08-02 2007-05-30 JustSystems Corporation A document processing and management approach to adding an exclusive plugin implementing a desired functionality
JP4728610B2 (ja) * 2004-08-04 2011-07-20 株式会社リコー アクセス制御リスト添付システム、オリジナルコンテンツ作成者端末、ポリシーサーバ、オリジナルコンテンツデータ管理サーバ、プログラム及び記録媒体
GB2416879B (en) 2004-08-07 2007-04-04 Surfcontrol Plc Device resource access filtering system and method
JP4748762B2 (ja) * 2004-08-24 2011-08-17 キヤノン株式会社 署名生成方法及び情報処理装置
US20060048224A1 (en) * 2004-08-30 2006-03-02 Encryptx Corporation Method and apparatus for automatically detecting sensitive information, applying policies based on a structured taxonomy and dynamically enforcing and reporting on the protection of sensitive data through a software permission wrapper
GB2418108B (en) * 2004-09-09 2007-06-27 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
GB2418999A (en) 2004-09-09 2006-04-12 Surfcontrol Plc Categorizing uniform resource locators
GB2418037B (en) * 2004-09-09 2007-02-28 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
JP4722052B2 (ja) * 2004-10-15 2011-07-13 ソフトバンクモバイル株式会社 連係動作方法及び通信端末装置
US7882236B2 (en) * 2005-02-04 2011-02-01 Microsoft Corporation Communication channel model
US7500097B2 (en) * 2005-02-28 2009-03-03 Microsoft Corporation Extendable data-driven system and method for issuing certificates
US7509489B2 (en) * 2005-03-11 2009-03-24 Microsoft Corporation Format-agnostic system and method for issuing certificates
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
WO2006107168A1 (en) 2005-04-08 2006-10-12 Electronics And Telecommunications Research Intitute Tool pack structure and contents execution device
US8725646B2 (en) * 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8429755B2 (en) * 2005-05-26 2013-04-23 Sandisk Technologies Inc. System and method for receiving digital content
GB0512744D0 (en) * 2005-06-22 2005-07-27 Blackspider Technologies Method and system for filtering electronic messages
KR100728928B1 (ko) * 2005-07-01 2007-06-15 삼성전자주식회사 기록매체를 통해 오프라인된 영상기기에 컨텐츠 재생권한부여방법
US8239682B2 (en) 2005-09-28 2012-08-07 Nl Systems, Llc Method and system for digital rights management of documents
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
US20070204078A1 (en) * 2006-02-09 2007-08-30 Intertrust Technologies Corporation Digital rights management engine systems and methods
EA200901153A1 (ru) * 2005-10-18 2010-04-30 Интертраст Текнолоджиз Корпорейшн Системы и способы на основе механизма управления цифровыми правами
US20070156601A1 (en) * 2006-01-03 2007-07-05 International Business Machines Corporation Method and system for providing interoperability between digital rights management systems
KR101314751B1 (ko) * 2006-01-26 2013-10-02 삼성전자주식회사 디알엠 설치 관리 방법 및 장치
US8103590B2 (en) * 2006-02-17 2012-01-24 Yahoo! Inc. Method and system for managing multiple catalogs of files on a network
US8020206B2 (en) 2006-07-10 2011-09-13 Websense, Inc. System and method of analyzing web content
US8615800B2 (en) * 2006-07-10 2013-12-24 Websense, Inc. System and method for analyzing web content
US8020149B2 (en) * 2006-08-04 2011-09-13 Apple Inc. System and method for mitigating repeated crashes of an application resulting from supplemental code
US9654495B2 (en) 2006-12-01 2017-05-16 Websense, Llc System and method of analyzing web addresses
GB2458094A (en) * 2007-01-09 2009-09-09 Surfcontrol On Demand Ltd URL interception and categorization in firewalls
GB2445764A (en) * 2007-01-22 2008-07-23 Surfcontrol Plc Resource access filtering system and database structure for use therewith
AU2008214131B2 (en) * 2007-02-02 2012-06-14 Websense, Inc. System and method for adding context to prevent data leakage over a computer network
US8015174B2 (en) 2007-02-28 2011-09-06 Websense, Inc. System and method of controlling access to the internet
US8276167B2 (en) * 2007-03-21 2012-09-25 International Business Machines Corporation Distributed pluggable middleware services
US20080249943A1 (en) * 2007-04-04 2008-10-09 Barrs John W Modifying A Digital Media Product
US8892471B2 (en) * 2007-04-04 2014-11-18 International Business Machines Corporation Modifying a digital media product
US7693871B2 (en) * 2007-04-04 2010-04-06 International Business Machines Corporation Modifying a digital media product
US11153656B2 (en) 2020-01-08 2021-10-19 Tailstream Technologies, Llc Authenticated stream manipulation
US11991416B2 (en) 2007-04-13 2024-05-21 Tailstream Technologies, Llc Authenticated stream manipulation
GB0709527D0 (en) 2007-05-18 2007-06-27 Surfcontrol Plc Electronic messaging system, message processing apparatus and message processing method
US20090006624A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Entertainment Access Service
JP4990399B2 (ja) * 2007-09-06 2012-08-01 マイクロソフト コーポレーション セッションブローカ拡張性アプリケーションプログラムインターフェース
US8732236B2 (en) * 2008-12-05 2014-05-20 Social Communications Company Managing network communications between network nodes and stream transport protocol
US8601482B2 (en) * 2007-11-02 2013-12-03 Microsoft Corporation Delegation metasystem for composite services
US10013536B2 (en) * 2007-11-06 2018-07-03 The Mathworks, Inc. License activation and management
US20090157841A1 (en) * 2007-12-14 2009-06-18 Microsoft Corporation Encapsulation of online storage providers
US20090171762A1 (en) * 2008-01-02 2009-07-02 Microsoft Corporation Advertising in an Entertainment Access Service
US10475010B2 (en) * 2008-01-10 2019-11-12 Microsoft Technology Licensing, Llc Federated entertainment access service
US9015842B2 (en) 2008-03-19 2015-04-21 Websense, Inc. Method and system for protection against information stealing software
US8370948B2 (en) * 2008-03-19 2013-02-05 Websense, Inc. System and method for analysis of electronic information dissemination events
US8407784B2 (en) * 2008-03-19 2013-03-26 Websense, Inc. Method and system for protection against information stealing software
US9130986B2 (en) 2008-03-19 2015-09-08 Websense, Inc. Method and system for protection against information stealing software
US8141129B2 (en) * 2008-05-29 2012-03-20 Microsoft Corporation Centrally accessible policy repository
US8769640B2 (en) * 2008-05-29 2014-07-01 Microsoft Corporation Remote publishing and server administration
US8387152B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Attested content protection
CA2729158A1 (en) * 2008-06-30 2010-01-07 Websense, Inc. System and method for dynamic and real-time categorization of webpages
CN106131178A (zh) * 2008-12-05 2016-11-16 社会传播公司 实时内核
US20100208082A1 (en) * 2008-12-18 2010-08-19 Band Crashers, Llc Media systems and methods for providing synchronized multiple streaming camera signals of an event
US9069851B2 (en) 2009-01-15 2015-06-30 Social Communications Company Client application integrating web browsing and network data stream processing for realtime communications
KR20100108970A (ko) * 2009-03-31 2010-10-08 삼성전자주식회사 디지털 저작권 관리 컨텐츠의 보호 방법 및 장치
EP2443580A1 (en) 2009-05-26 2012-04-25 Websense, Inc. Systems and methods for efficeint detection of fingerprinted data and information
US20130132733A1 (en) * 2009-05-26 2013-05-23 Sunil C. Agrawal System And Method For Digital Rights Management With System Individualization
JP5662439B2 (ja) * 2009-07-17 2015-01-28 アルカテル−ルーセント 中小企業(sme)におけるデジタル著作権管理(drm)の方法および装置ならびにdrmサービスを提供するための方法
US9015493B2 (en) 2010-09-16 2015-04-21 Microsoft Technology Licensing, Llc Multitenant-aware protection service
EP2697929A4 (en) 2011-04-11 2014-09-24 Intertrust Tech Corp INFORMATION SECURITY SYSTEMS AND METHODS
US8516273B2 (en) 2011-05-31 2013-08-20 Asobe Systems Incorporated Porting digital rights management service to multiple computing platforms
US8082486B1 (en) 2011-06-09 2011-12-20 Storify, Inc. Source attribution of embedded content
US8769059B1 (en) * 2012-05-23 2014-07-01 Amazon Technologies, Inc. Best practice analysis, third-party plug-ins
US9626710B1 (en) 2012-05-23 2017-04-18 Amazon Technologies, Inc. Best practice analysis, optimized resource use
US10740765B1 (en) 2012-05-23 2020-08-11 Amazon Technologies, Inc. Best practice analysis as a service
US9219648B1 (en) 2012-05-23 2015-12-22 Amazon Technologies, Inc. Best practice analysis, automatic remediation
US9117054B2 (en) 2012-12-21 2015-08-25 Websense, Inc. Method and aparatus for presence based resource management
US8888005B2 (en) 2013-04-12 2014-11-18 David Prokop Uniquely identifiable drug dosage form units
KR101835238B1 (ko) 2013-07-23 2018-03-06 에릭슨 에이비 매니패스트-기반 자격 집행을 갖는 미디어 분배 시스템
IN2014CH01484A (es) 2014-03-20 2015-09-25 Infosys Ltd
GB2530245A (en) * 2014-07-15 2016-03-23 Piksel Inc Controlling delivery of encrypted media assets
CN105871577A (zh) 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 资源权限管理方法及装置
US9954832B2 (en) 2015-04-24 2018-04-24 Encryptics, Llc System and method for enhanced data protection
EP3255597A1 (en) * 2016-06-12 2017-12-13 Apple Inc. Managing secure transactions between electronic devices and service providers
US10645066B2 (en) * 2016-11-19 2020-05-05 Alan Earl Swahn Rights controlled communication
CN112565236B (zh) * 2020-11-30 2023-08-01 广州酷狗计算机科技有限公司 信息鉴权方法、装置、计算机设备及存储介质
CN115408047B (zh) * 2022-08-11 2023-07-25 北京大氪信息科技有限公司 一种版本发布方法、装置及电子设备

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5864620A (en) * 1996-04-24 1999-01-26 Cybersource Corporation Method and system for controlling distribution of software in a multitiered distribution chain
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
US6006279A (en) * 1997-01-21 1999-12-21 Canon Information Systems, Inc. Plug-in module host framework
CA2228185C (en) * 1997-01-31 2007-11-06 Certicom Corp. Verification protocol
US6389535B1 (en) * 1997-06-30 2002-05-14 Microsoft Corporation Cryptographic protection of core data secrets
US6122741A (en) * 1997-09-19 2000-09-19 Patterson; David M. Distributed method of and system for maintaining application program security
WO1999015947A1 (en) * 1997-09-19 1999-04-01 Hyo Joon Park Software license control system based on independent software registration server
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
US6189146B1 (en) * 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6701433B1 (en) * 1998-03-23 2004-03-02 Novell, Inc. Method and apparatus for escrowing properties used for accessing executable modules
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US7017188B1 (en) * 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US7073063B2 (en) * 1999-03-27 2006-07-04 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like
US6973444B1 (en) * 1999-03-27 2005-12-06 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
US7024393B1 (en) 1999-03-27 2006-04-04 Microsoft Corporation Structural of digital rights management (DRM) system
US7103574B1 (en) 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
JP2000293587A (ja) * 1999-04-09 2000-10-20 Sony Corp 情報処理装置および方法、管理装置および方法、並びに提供媒体
US6557105B1 (en) * 1999-04-14 2003-04-29 Tut Systems, Inc. Apparatus and method for cryptographic-based license management
US6560606B1 (en) * 1999-05-04 2003-05-06 Metratech Method and apparatus for processing data with multiple processing modules and associated counters
US6449720B1 (en) * 1999-05-17 2002-09-10 Wave Systems Corp. Public cryptographic control unit and system therefor
US6405366B1 (en) * 1999-05-28 2002-06-11 Electronic Data Systems Corporation Multi-layered software application interface architecture
US6385719B1 (en) * 1999-06-30 2002-05-07 International Business Machines Corporation Method and apparatus for synchronizing parallel pipelines in a superscalar microprocessor
JP2001118332A (ja) * 1999-10-20 2001-04-27 Sony Corp データ配信システムとその方法、データ処理装置、データ使用制御装置および配信用データが記録された機械読み取り可能な記録媒体
US6538656B1 (en) * 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
JP3614061B2 (ja) * 1999-12-06 2005-01-26 ヤマハ株式会社 自動演奏装置及び自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体
GB2357229B (en) * 1999-12-08 2004-03-17 Hewlett Packard Co Security protocol
US7213005B2 (en) * 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6996720B1 (en) 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
JP2001175605A (ja) 1999-12-17 2001-06-29 Sony Corp データ処理装置
US7047411B1 (en) 1999-12-17 2006-05-16 Microsoft Corporation Server for an electronic distribution system and method of operating same
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
US6772340B1 (en) 2000-01-14 2004-08-03 Microsoft Corporation Digital rights management system operating on computing device and having black box tied to computing device
JP2001256318A (ja) * 2000-03-14 2001-09-21 Sony Corp コンテンツ取り引きシステムおよびコンテンツ取り引き方法、並びにプログラム提供媒体
US6386894B2 (en) * 2000-04-28 2002-05-14 Texas Instruments Incorporated Versatile interconnection scheme for beverage quality and control sensors
US6961858B2 (en) * 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US7017189B1 (en) 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US6891953B1 (en) * 2000-06-27 2005-05-10 Microsoft Corporation Method and system for binding enhanced software features to a persona
US7073199B1 (en) * 2000-08-28 2006-07-04 Contentguard Holdings, Inc. Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine
WO2002023315A2 (en) 2000-09-12 2002-03-21 Aladdin Knowledge Systems, Ltd. System for managing rights and permitting on-line playback of digital content
US7343324B2 (en) 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
JP2004521414A (ja) * 2000-12-08 2004-07-15 松下電器産業株式会社 配信装置、端末装置、及びこれらで用いられるプログラム、方法。
US6978376B2 (en) * 2000-12-15 2005-12-20 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
CN101783807B (zh) * 2001-01-17 2011-08-10 康坦夹德控股股份有限公司 使用标准演示引擎作数字权限管理的系统及方法
JP4191902B2 (ja) * 2001-02-28 2008-12-03 株式会社日立製作所 コンテンツ配信装置
AU2002339746A1 (en) * 2001-05-18 2002-12-03 Imprivata Inc. System and method for authentication using biometrics
US8099364B2 (en) * 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8275716B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
WO2002101490A2 (en) * 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Cryptographic trust zones in digital rights management
US20030046274A1 (en) * 2001-08-30 2003-03-06 Erickson John S. Software media container
WO2003034313A2 (en) * 2001-10-18 2003-04-24 Macrovision Corporation Systems and methods for providing digital rights management compatibility
US7840488B2 (en) * 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
US7011214B2 (en) * 2001-12-28 2006-03-14 Dm & Bb Private pallet-box cargo shipping system
US7747531B2 (en) * 2002-02-05 2010-06-29 Pace Anti-Piracy Method and system for delivery of secure software license information
US7092527B2 (en) * 2002-04-18 2006-08-15 International Business Machines Corporation Method, system and program product for managing a size of a key management block during content distribution
US7174021B2 (en) * 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations

Also Published As

Publication number Publication date
NO20032749D0 (no) 2003-06-17
ATE337671T1 (de) 2006-09-15
JP4489382B2 (ja) 2010-06-23
US20040003139A1 (en) 2004-01-01
DE60307736D1 (de) 2006-10-05
NO20032749L (no) 2003-12-29
NO333104B1 (no) 2013-03-04
DE60307736T2 (de) 2006-12-28
EP1376980B1 (en) 2006-08-23
EP1376980A1 (en) 2004-01-02
JP2004062890A (ja) 2004-02-26
US7631318B2 (en) 2009-12-08

Similar Documents

Publication Publication Date Title
ES2271427T3 (es) Arquitectura de servidor enchufable asegurada para sistemas de gestion de derechos digitales.
KR100949657B1 (ko) 유연한 권리 템플릿을 이용하여 권리 관리 시스템에서디지털 컨텐츠에 대한 서명된 권리 라벨(srl)을 얻기
US7891007B2 (en) Systems and methods for issuing usage licenses for digital content and services
KR100971854B1 (ko) 보안 서버 키 동작을 제공하기 위한 시스템 및 방법
EP0798892B1 (en) Creation and distribution of digital documents
JP4627624B2 (ja) 組織などの限定された領域内におけるデジタル著作権管理(drm)システムによるデジタルコンテンツのパブリッシュ
US7353402B2 (en) Obtaining a signed rights label (SRL) for digital content and obtaining a digital license corresponding to the content based on the SRL in a digital rights management system
JP4724360B2 (ja) ディジタル権利管理システムにおいて権利テンプレートを使用してディジタルコンテンツのための署名権利ラベル(srl)を取得する方法
ES2635121T3 (es) Arquitectura flexible de concesión de licencia en sistemas de gestión de derechos de contenido
JP2004246902A (ja) 組織などの限定された領域内におけるデジタル著作権管理(drm)システムによるデジタルコンテンツのパブリッシュ
JP2006504176A (ja) コンテンツ操作を許可する方法及び装置