ES2318085T3 - Sistemas y procedimientos para proporcionar id de hardware tolerante de manera flexible basado en el tiempo y el peso. - Google Patents
Sistemas y procedimientos para proporcionar id de hardware tolerante de manera flexible basado en el tiempo y el peso. Download PDFInfo
- Publication number
- ES2318085T3 ES2318085T3 ES03029937T ES03029937T ES2318085T3 ES 2318085 T3 ES2318085 T3 ES 2318085T3 ES 03029937 T ES03029937 T ES 03029937T ES 03029937 T ES03029937 T ES 03029937T ES 2318085 T3 ES2318085 T3 ES 2318085T3
- Authority
- ES
- Spain
- Prior art keywords
- component
- type
- identity
- hardware
- types
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000008569 process Effects 0.000 claims description 5
- 230000004913 activation Effects 0.000 description 32
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003292 diminished effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000003039 volatile agent Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/02—Constructional features of telephone sets
- H04M1/04—Supports for telephone transmitters or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R1/00—Details of transducers, loudspeakers or microphones
- H04R1/10—Earpieces; Attachments therefor ; Earphones; Monophonic headphones
- H04R1/1033—Cables or cables storage, e.g. cable reels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2117—User registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2129—Authenticate client device independently of the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2135—Metering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2137—Time limited access, e.g. to a computer or data
Abstract
Un procedimiento para permitir el cumplimiento de los términos de licencia de software para un producto de software para su uso con un sistema informático que comprende uno o más componentes, comprendiendo el procedimiento: para cada tipo de componente de entre un conjunto de tipos de componente, obtener (410) una identidad de componente actual asociada a partir de dicho sistema informático; para cada tipo de componente de entre dicho conjunto de tipos de componente, comparar (420) dicha identidad de componente actual asociada con una identidad de componente almacenada asociada; calcular (430) una puntuación de coincidencia determinando, para cada tipo de componente de entre dicho conjunto de tipos de componente, si ha pasado un periodo de expiración asociado usando un vector de tiempo que indica para cada tipo de componente un periodo de expiración, si los resultados de dicha comparación son positivos, incrementar dicha puntuación de coincidencia, y si los resultados de dicha comparación no son positivos y si el periodo de expiración asociado ha pasado, incrementar dicha puntuación de coincidencia; comparar (440) dicha puntuación de coincidencia con una puntuación de coincidencia umbral; y permitir que el sistema informático ejecute el producto de software si la puntuación de coincidencia es superior o igual a la puntuación de coincidencia umbral.
Description
Sistemas y procedimientos para proporcionar ID
de hardware tolerante de manera flexible basado en el tiempo y el
peso.
La presente invención va dirigida a sistemas y
procedimientos para proporcionar información de identificación para
un sistema informático y evaluar si el sistema informático coincide
con una versión guardada de información de identificación. Más en
particular, la presente invención se refiere a sistemas y
procedimientos para proporcionar un ID de hardware para un sistema
informático basándose en información de identificación del sistema
informático que es flexible y tolerante a cambios normales que
tienen lugar mientras se usa el sistema informático.
El uso de software está controlado a menudo por
una licencia de software. Dado que el software puede copiarse con
facilidad tras su venta, es difícil evitar los usos de software sin
una licencia asociada. Tales usos incluyen la piratería, cuando el
software se replica de forma ilícita y se instalan copias pirateadas
para su uso en sistemas informáticos sin licencia. Adicionalmente,
un comprador de una copia no pirateada podría usar de forma
inadecuada el software fuera del ámbito de la licencia asociada. Por
ejemplo, un usuario podría instalar el software en más sistemas
informáticos de los permitidos conforme a la licencia.
Si bien las licencias proporcionan un camino de
recurso legal contra tales prácticas, pueden ser difíciles de
ejecutar en la práctica. Por consiguiente, existe una necesidad de
otros medios para reducir la magnitud de uso de software fuera de
los términos de licencia. Un procedimiento de este tipo se basa en
crear un identificador para el sistema informático de un usuario
que tiene licencia para usar el software. La patente estadounidense
número 6,243,468 titulada "Sistema antipiratería de software que
se adapta a mejoras de hardware" y la solicitud de patente
estadounidense publicada número 20010044782 detallan este
procedimiento.
Los sistemas informáticos normalmente incluyen
varias piezas de hardware, entre las que se incluyen unidades de
disco, unidades de CDROM y procesadores. Estos componentes de
hardware tienen cada uno identificadores (números de serie o
nombres) a los que puede acceder el sistema, por ejemplo ejecutando
una llamada plug-and-play
(PnP, "enchufar y usar"). Estos identificadores de componentes
pueden combinarse de una manera predeterminada para crear un
identificador de hardware (HWID), que puede usarse para identificar
un sistema informático particular.
De manera significativa, el HWID puede emplearse
como parte de o en combinación con una licencia de software para
garantizar que el software sobre el que se ha concedido una licencia
de uso en un sistema informático específico se usa sólo en ese
sistema informático. En particular, un software con una licencia que
especifica un HWID sólo se ejecutará en un sistema informático si,
en el momento de la ejecución, el HWID calculado para el sistema
informático coincide con el HWID especificado en la licencia de
software.
Sin embargo, cuando el usuario de un sistema
informático añade, elimina o intercambia componentes del sistema,
por ejemplo, por motivos de reparación o mejora, el HWID cambia.
Cada componente nuevo o intercambiado tendrá un nuevo identificador
de componente. Por tanto, cuando se calcula el HWID para el sistema,
un nuevo identificador de componente hará que cambie el HWID. Esto
provoca problemas cuando el usuario ha obtenido una licencia de
software que especifica el HWID de una versión anterior de su
sistema informático.
Por consiguiente, se conoce aceptar un HWID
almacenado como una coincidencia sustancial cuando se compara con
un HWID recién calculado y permitir al usuario ejecutar el software.
Por ejemplo, la patente estadounidense anteriormente mencionada,
número 6,243,468, da a conocer un caso en el que se incluyen cinco
identificadores de componentes en el HWID, y si resulta que
coinciden cuatro cualquiera de ellos, el producto de software puede
operar en el sistema informático.
En la patente estadounidense número 6,148,407 se
da a conocer un procedimiento y aparato para producir huellas
digitales para plataformas informáticas. La máquina central recupera
características del sistema para muestrear valores comerciales. La
combinación de estos valores es la denominada huella digital del
sistema, que se almacena. En un proceso de verificación se crea una
huella digital para el nuevo sistema. Los valores de características
recién muestreados se comparan con los valores de plantilla
almacenados. Los valores de comparación se normalizan entonces
usando una función de predicción específica de la característica.
Tras la aplicación de la función de predicción, cada valor se
pondera con un factor de fiabilidad relativo. Se forma entonces una
salida del comparador. La suma se realiza normalmente de forma
gradual a medida que se generan los valores ponderados mediante los
procesos de comparación, normalización y ponderación, el valor del
comparador está sujeto entonces al valor umbral de la
aplicación.
En la técnica anterior no se trata el hecho de
que ciertos componentes pueden intercambiarse con más frecuencia
que otros. Tampoco se trata la utilidad de tener requisitos de
coincidencia del sistema informático menos estrictos para la
licencia a media que pasa el tiempo, ya que el valor del software
puede disminuir con el tiempo. Un sistema de licencia basado en
HWID que tratara estos hechos proporcionaría mayor seguridad y
permitiría seguridad dinámica a lo largo del tiempo.
En vista de la situación anteriormente
mencionada, existe una necesidad de un sistema que permita usar un
HWID para identificar y vincular una instanciación de software con
licencia con un sistema informático, al tiempo que se toleran
cambios en el sistema informático de un usuario legítimo con la
flexibilidad necesaria para dar cabida a cambios en el sistema de
hardware y adaptarse al paso del tiempo.
El objetivo de la presente invención es mejorar
el cumplimiento de licencias de software. Este objetivo se resuelve
mediante las reivindicaciones independientes. En las
reivindicaciones dependientes se describen realizaciones
preferidas.
En vista de lo anterior, la presente invención
proporciona sistemas y procedimientos para proporcionar un HWID que
se mantenga válido aunque se cambie la configuración del
sistema.
En una realización, cuando se activa un
software, se calcula el HWID del sistema. Un código de activación
de producto en el software o en otro lugar en el sistema consulta
los componentes de hardware existentes para obtener información
relativa a estos componentes. Por ejemplo, la tarjeta de red puede
consultarse para determinar la dirección MAC (control de acceso a
medios). La información relativa a los componentes de hardware de
cada tipo de componente de hardware se somete a hash. Los
valores sometidos a hash se concatenan en un HWID.
El HWID calculado en la activación se incluye en
un archivo de datos de licencia. También se incluyen con el HWID de
activación un vector de tiempo y uno de peso, que contienen un valor
de tiempo y peso para cada componente de hardware. También se
incluye una puntuación umbral en el archivo de datos de licencia.
Este archivo de datos de licencia debe evaluarse cada vez que se
usa el software. Cuando la licencia requiere verificación del
sistema informático, el HWID del sistema vuelve a evaluarse y el
HWID recién calculado se compara con el HWID de activación.
Cuando se compara el HWID recién calculado con
el HWID de activación para determinar si ambos HWID coinciden, se
usa un vector de tiempo y un vector de peso en la comparación. El
valor del vector de tiempo para un componente determina si el
componente se considerará en la determinación de si el HWID recién
calculado coincide sustancialmente con el HWID de activación. El
valor del vector de peso para un componente determina qué peso se
dará a una coincidencia para ese componente en la determinación de
si el HWID recién calculado coincide sustancialmente con el HWID de
activación.
A continuación se describen otras
características y realizaciones de la presente invención.
El sistema y los procedimientos para
proporcionar diseño prospectivo con promediación y visibilidad según
la presente invención se describen adicionalmente en referencia a
los dibujos adjuntos en los que:
la figura 1 es un diagrama de bloques que
representa un sistema informático ejemplar no limitante en el que
puede implementarse la presente invención;
la figura 2 es un diagrama de bloques que
representa datos de licencia en una realización de la invención;
la figura 3 es un diagrama de bloques que
representa un procedimiento de comparar cada identidad de componente
almacenada con una identidad de componente actual, usando un vector
de peso; y
la figura 4 es un diagrama de bloques que
representa un procedimiento de comparar cada identidad de componente
almacenada con una identidad de componente actual, usando un vector
de tiempo.
En una realización, se calcula un ID de hardware
(HWID) actual. Para cada tipo de componente de entre un conjunto de
tipos de componente que han de considerarse, se consultan los
componentes de ese tipo. En una realización, cada resultado se
somete a hash. Los valores resultantes comprenden el HWID
actual.
En una realización, un archivo de licencia
asociado con software almacena un HWID de activación, un vector de
tiempo, un vector de peso y una puntuación umbral. Para permitir el
uso del software, el HWID actual para el sistema informático debe
coincidir sustancialmente con el HWID de activación. El vector de
tiempo, el vector de peso, y la puntuación umbral se usan para
determinar si se produce una coincidencia sustancial.
Para determinar si el HWID actual coincide
sustancialmente con el HWID de activación, para cada tipo de
componente, cada valor sometido a hash almacenado para
componentes de ese tipo se compara con un valor sometido a
hash para cada componente actual de ese tipo. En una
realización, se calcula una puntuación de coincidencia para la
comparación global. Cualquier coincidencia indica que un componente
que existía en el sistema en el momento en que se calculó el HWID
almacenado todavía existe en el sistema. Cuando se encuentra tal
coincidencia, la puntuación de coincidencia para la comparación se
incrementa. Si la puntuación de coincidencia es superior o igual a
la puntuación umbral, el HWID actual coincide sustancialmente con el
HWID de activación.
Para cada tipo de componente, el vector de peso
indica el peso que ha de asignarse a una coincidencia de ese tipo
de componente. Cuando la puntuación de coincidencia se incrementa
debido a una coincidencia para un tipo de componente, la puntuación
de coincidencia se incrementa por el valor de peso para ese tipo de
componente.
Un vector de tiempo también está asociado con el
HWID almacenado. Para cada tipo de componente, el vector de tiempo
puede indicar un periodo de expiración. Una vez transcurrido el
periodo de expiración, incluso aunque no se haya encontrado ninguna
coincidencia para un componente, la puntuación de coincidencia se
incrementa por el valor de peso. De este modo se proporciona un
sistema HWID que puede dar diferentes pesos a diferentes
componentes y que es cada vez más tolerante de manera flexible a los
cambios de hardware en un sistema informático. En una realización
alternativa, sólo se usa el vector de tiempo. En otra realización
alternativa, sólo se usa el vector de peso.
La figura 1 y el siguiente comentario pretenden
proporcionar una breve descripción general de un entorno informático
adecuado en el que puede implementarse la invención. Ha de
entenderse, sin embargo, que se contemplan dispositivos
informáticos de bolsillo, portátiles y otros y objetos informáticos
de cualquier tipo para su uso en conexión con la presente
invención, tal como se describió anteriormente. Por tanto, aunque a
continuación se describe un ordenador de uso general, esto no es
más que un ejemplo, y la presente invención puede implementarse con
otros dispositivos informáticos, tales como un cliente ligero que
tenga interoperabilidad e interacción red/bus. Por tanto, la
presente invención puede implementarse en un entorno de servicios
albergados en red en el que están implicados muy pocos o mínimos
recursos de cliente, por ejemplo un entorno en red en el que el
dispositivo de cliente sirve meramente como una interfaz para
red/bus, tal como un objeto colocado en un aparato, o también otros
dispositivos y objetos informáticos. Básicamente, cualquier lugar en
el que puedan almacenarse o desde el que puedan recuperarse datos
es un entorno deseable, o adecuado, de funcionamiento según la
invención.
Aunque no se requiere, la invención puede
implementarse mediante un sistema operativo, para su uso por un
desarrollador de servicios para un dispositivo u objeto, y/o
incluido dentro de un software de aplicación que opera según la
invención. El software puede describirse en el contexto general de
instrucciones ejecutables por ordenador, tales como módulos de
programa, que se ejecutan por uno o más ordenadores, tales como
estaciones de trabajo de cliente, servidores u otros dispositivos.
Generalmente, los módulos de programa incluyen rutinas, programas,
objetos, componentes, estructuras de datos y similares que realizan
tareas particulares o implementan tipos de datos abstractos
particulares. Normalmente, la funcionalidad de los módulos de
programa puede combinarse o distribuirse según se desee en varias
realizaciones. Además, los expertos en la técnica apreciarán que la
invención puede ponerse en práctica con otras configuraciones
informáticas. Otros sistemas, entornos y/o configuraciones
informáticos ampliamente conocidos que pueden ser adecuados para su
uso con la invención incluyen, aunque no se limitan a, ordenadores
personales (PC), cajeros automáticos, ordenadores de servidor,
dispositivos de bolsillo o portátiles, sistemas multiprocesador,
sistemas basados en microprocesador, elementos electrónicos de
consumo programables, PC en red, aparatos, luces, elementos de
control ambiental, miniordenadores, ordenadores de gran tamaño y
similares. La invención también puede ponerse en práctica en
entornos informáticos distribuidos en los que las tareas se
realizan por dispositivos de procesamiento remoto que están
conectados a través de red/bus de comunicación u otro medio de
transmisión de datos. En un entorno informático distribuido, los
módulos de programa pueden ubicarse tanto en medios de
almacenamiento informático locales como remotos, incluyendo
dispositivos de almacenamiento de memoria, y los nodos de cliente
pueden comportarse a su vez como nodos de servidor.
La figura 1 ilustra por tanto un ejemplo de un
entorno 100 de sistema informático adecuado en el que puede
implementarse la invención, aunque como se aclaró anteriormente, el
entorno 100 de sistema informático sólo es un ejemplo de un entorno
informático adecuado y no pretende sugerir ninguna limitación en
cuanto al alcance del uso o funcionalidad de la invención. El
entorno 100 informático tampoco ha de interpretarse como que tiene
alguna dependencia o requisito respecto a cualquier componente o
combinación de los mismos ilustrados en el entorno 100 operativo
ejemplar.
Con referencia a la figura 1, un sistema
ejemplar para implementar la invención incluye un dispositivo
informático de uso general en forma de un sistema 110 informático.
Los componentes del sistema 110 informático pueden incluir, aunque
no se limitan a, una unidad 120 de procesamiento, una memoria 130 de
sistema, y un bus 121 de sistema que acopla varios componentes de
sistema incluyendo la memoria de sistema con la unidad 120 de
procesamiento. El bus 121 de sistema puede ser cualquiera de varios
tipos de estructuras de bus incluyendo un bus de memoria o
controlador de memoria, un bus periférico y un bus local usando
cualquiera de una variedad de arquitecturas de bus. A modo de
ejemplo, y no de limitación, tales arquitecturas incluyen bus
Industry Standard Architecture (ISA), bus Micro
Channel Architecture (MCA), bus Enhanced ISA
(EISA), bus local Video Electronics Standards Association
(VESA) y bus Peripheral Component Interconnect (PCI)
(también conocido como bus Mezzanine):
El sistema 110 informático normalmente incluye
una variedad de medios legibles por ordenador. Los medios legibles
por ordenador pueden ser cualquier medio disponible al que puede
acceder el sistema 110 informático e incluye medios tanto volátiles
como no volátiles, medios 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 informático y medios de
comunicación. Los medios de almacenamiento informático incluyen
medios volátiles y no volátiles, medios extraíbles y no extraíbles
implementados en cualquier procedimiento o tecnología para almacenar
información tal como instrucciones legibles por ordenador,
estructuras de datos, módulos de programa u otros datos. Los medios
de almacenamiento informático incluyen, aunque no se limitan a,
memoria de acceso aleatorio (RAM), memoria de sólo lectura (ROM),
memoria de sólo lectura programable y borrable eléctricamente
(EEPROM), memoria flash u otra tecnología de memoria, memoria de
sólo lectura de disco compacto (CDROM), discos versátiles digitales
(DVD) u otro almacenamiento en discos ópticos, almacenamiento en
casetes magnéticos, cinta magnética, disco magnético u otros
dispositivos de almacenamiento magnéticos, o cualquier otro medio
que pueda usarse para almacenar la información deseada y al que
pueda acceder el sistema 110 informático. Los medios de comunicación
normalmente materializan instrucciones legibles por ordenador,
estructuras de datos, módulos de programa u otros datos en una señal
de datos modulada tal como una onda portadora u otro mecanismo de
transporte e incluyen cualquier medio de entrega de información. El
término "señal de datos modulada" significa una señal que tiene
una o más de sus características ajustadas o cambiadas de tal
manera que codifica información en la señal. A modo de ejemplo, y no
de limitación, los medios de comunicación incluyen medios por cable
tales como una red por cable o conexión directa por cable, y medios
inalámbricos tales como medios inalámbricos acústicos, RF,
infrarrojo y otros. Combinaciones de cualquiera de los anteriores
también tendrían que incluirse dentro del alcance de los medios
legibles por ordenador.
La memoria 130 de sistema incluye medios de
almacenamiento informático en forma de memoria volátil y/o no
volátil tal como memoria 131 de sólo lectura (ROM) y memoria 132 de
acceso aleatorio (RAM). Un sistema 133 básico de entrada/salida
(BIOS), que contiene las rutinas básicas que ayudan a transferir
información entre elementos dentro del sistema 110 informático, tal
como durante el arranque, se almacena normalmente en ROM 131. La
RAM 132 normalmente contiene datos y/o módulos de programa que están
accesibles inmediatamente para y/o están operándose actualmente por
la unidad 120 de procesamiento. A modo de ejemplo, y no de
limitación, la figura 1 ilustra el sistema 134 operativo, programas
135 de aplicación, otros módulos 136 de programa y datos 137 de
programa.
El sistema 110 informático también puede incluir
otros medios de almacenamiento informático extraíbles/no
extraíbles, volátiles/no volátiles. A modo de ejemplo únicamente, la
figura 1 ilustra una unidad 141 de disco duro que lee desde o
escribe en medios magnéticos no extraíbles, no volátiles, una unidad
151 de disco magnético que lee desde o escribe en un disco 152
magnético extraíble, no volátil, y una unidad 155 de disco óptico
que lee desde o escribe en un disco 156 óptico extraíble, no
volátil, tal como un CD ROM u otro medio óptico. Otros medios de
almacenamiento informático extraíbles/no extraíbles, volátiles/no
volátiles que pueden usarse en el entorno operativo ejemplar
incluyen, aunque no se limitan a, casetes de cinta magnética,
tarjetas de memoria flash, discos versátiles digitales, cintas de
vídeo digital, RAM de estado sólido, ROM de estado sólido y
similares. La unidad 141 de disco duro está conectada normalmente al
bus 121 de sistema a través de una interfaz de memoria no extraíble
tal como la interfaz 140, y la unidad 151 de disco magnético y la
unidad 155 de disco óptico están conectadas normalmente al bus 121
de sistema mediante una interfaz de memoria extraíble, tal como la
interfaz 150.
Las unidades y sus medios de almacenamiento
informático asociados comentados anteriormente e ilustrados en la
figura 1 proporcionan almacenamiento de instrucciones legibles por
ordenador, estructuras de datos, módulos de programa y otros datos
para el sistema 110 informático. En la figura 1, por ejemplo, la
unidad 141 de disco duro está ilustrada como un sistema 144
operativo de almacenamiento, programas 145 de aplicación, otros
módulos 146 de programa y datos 147 de programa. Obsérvese que
estos componentes pueden ser o bien los mismos que o bien
diferentes del sistema 134 operativo, programas 135 de aplicación,
otros módulos 136 de programa y datos 137 de programa. Al sistema
144 operativo, a los programas 145 de aplicación, otros módulos 146
de programa y datos 147 de programa se les dan diferentes números
en la presente memoria para ilustrar que, como mínimo, son copias
diferentes. Un usuario puede introducir órdenes e información en el
sistema 110 informático a través de dispositivos de entrada tales
como un teclado 162 y un dispositivo 161 de puntero, al que
habitualmente se hace referencia como ratón, bola de control del
cursor o trackball o almohadilla sensible al tacto o
touch pad. Otros dispositivos de entrada (no mostrados)
pueden incluir un micrófono, una palanca de mando o
joystick, control de mando, antena parabólica, escáner, o
similares. Estos y otros dispositivos de entrada están conectados a
menudo a la unidad 120 de procesamiento a través de una interfaz 160
de entrada de usuario que está acoplada al bus 121 de sistema,
aunque pueden estar conectados mediante otra interfaz y estructuras
de bus, tales como un puerto paralelo, un puerto de juego o un bus
universal en serie (USB).Una interfaz 182 gráfica, tal como
Northbridge, también puede estar conectada al bus 121 de sistema.
Northbridge es un conjunto de chips que se comunican con la CPU, o
unidad 120 de procesamiento central, y asume la responsabilidad de
las comunicaciones de puerto de gráficos acelerado (AGP). Una o más
unidades 184 de procesamiento gráfico (GPU) pueden comunicarse con
la interfaz 182 gráfica. A este respecto, las GPU 184 generalmente
incluyen almacenamiento de memoria en chip, tal como almacenamiento
de registro y las GPU 184 se comunican con una memoria 186 de
vídeo. Sin embargo, las GPU 184 son sólo un ejemplo de un
coprocesador y por tanto puede incluirse una variedad de
dispositivos de coprocesamiento en el sistema 110 informático. Un
monitor 191 u otro tipo de dispositivo de visualización también
está conectado al bus 121 de sistema a través de una interfaz, tal
como una interfaz 190 de vídeo, que puede comunicarse a su vez con
una memoria 186 de vídeo. Además del monitor 191, los sistemas
informáticos también pueden incluir otros dispositivos de salida
periféricos tales como altavoces 197 e impresora 196, que pueden
estar conectados a través de una interfaz 195 de salida
periférica.
El sistema 110 informático puede operar en un
entorno en red o distribuido usando conexiones lógicas con uno o
más ordenadores remotos, tal como un ordenador 180 remoto. El
ordenador 180 remoto puede ser un ordenador personal, un servidor,
un encaminador o router, un PC en red, un dispositivo de tipo
par u otro nodo de red común, y normalmente incluye muchos o todos
los elementos anteriormente descritos con respecto al sistema 110
informático, aunque sólo se ha ilustrado un dispositivo 181 de
almacenamiento de memoria en la figura 1. Las conexiones lógicas
dibujadas en la figura 1 incluyen una red 171 de área local (LAN) y
una red 173 de área amplia (WAN), aunque también pueden incluir
otras redes/buses. Tales entornos de interconexión en red son
habituales en hogares, oficinas, redes informáticas de ámbito
empresarial, intranet e Internet.
Cuando se usa en un entorno de interconexión en
red LAN, el sistema 110 informático se conecta a la LAN 171 a
través de una interfaz de red o adaptador 170. Cuando se usa en un
entorno de interconexión en red WAN, el sistema 110 informático
normalmente incluye un módem 172 u otros medios para establecer
comunicaciones sobre la WAN 173, tal como Internet. El módem 172,
que puede ser interno o externo, puede conectarse al bus 121 de
sistema a través de la interfaz 160 de entrada de usuario, u otro
mecanismo apropiado. En un entorno de interconexión en red, los
módulos de programa dibujados en relación al sistema 110
informático, o partes del mismo, pueden almacenarse en el
dispositivo de almacenamiento de memoria remoto. A modo de ejemplo,
y no de limitación, la figura 1 ilustra programas 185 de aplicación
remotos residentes en el dispositivo 181 de memoria. Se apreciará
que las conexiones de red mostradas son ejemplares y que pueden
usarse otros medios de establecimiento de un enlace de
comunicaciones entre los ordenadores.
Varios marcos informáticos distribuidos se han
desarrollado y están desarrollándose a la luz de la convergencia de
la informática personal e Internet. Se proporciona del mismo modo a
usuarios individuales y de empresas una interfaz interoperable de
transición suave y habilitada para Web para aplicaciones y
dispositivos informáticos, haciendo las actividades informáticas
cada vez más orientadas a redes o navegadores Web.
Por ejemplo, la plataforma .NET de MICROSOFT®
incluye servidores, servicios de base o
building-block services, tales como
almacenamiento de datos basado en Web y software de dispositivo
descargable. Aunque en la presente memoria se describen
realizaciones ejemplares en conexión con software residente en un
dispositivo informático, una o más partes de la invención también
pueden implementarse a través de un sistema operativo, interfaz de
programación de aplicaciones (API) o un objeto "de gestión
intermedia" entre cualquiera de un coprocesador, un dispositivo
de visualización y un objeto de petición, de modo que puede
realizarse una operación según la invención por, soportado en o
accediendo a través de todos los lenguajes y servicios de .NET, y
también en otros marcos informáticos distribuidos.
Una transacción de licencia se produce en el
momento en que, o con posterioridad a cuando un usuario compra un
producto de software para su ejecución en un sistema 110
informático. El producto de software, por ejemplo, puede ser un
producto envasado en envoltura retráctil que tiene un programa de
software almacenado en un medio legible por ordenador
transportable, tal como un DVD, CDROM, o disquete flexible. El
producto de software también puede entregarse electrónicamente
sobre una red. El usuario carga el producto de software en el
sistema 110 informático. Sin embargo, el software puede no ser
operable sin datos de licencia. Para recibir estos datos de
licencia, el usuario debe "activar" el software poniéndose en
contacto con una entidad de confianza para el licenciante del
software, tal como un centro de intercambio de información de
licencias. Este centro de intercambio de información, por ejemplo,
es el fabricante del producto o un tercero autorizado. El proceso
de activación permite al comprador activar el producto de software
para su instalación y uso en un sistema informático específico
proporcionando al comprador los datos de licencia necesarios.
El contacto con el centro de intercambio de
información puede hacerse desde el sistema 110 informático sobre
una red tal como Internet o a través de una conexión de marcación a
un ordenador del centro de intercambio de información, que, si la
activación es satisfactoria, enviará los datos de licencia al
sistema 110 informático. De manera alternativa, el producto de
software soporta una activación con una ventana de diálogo de
interfaz (UI) gráfica de usuario que pide al usuario que llame a un
representante de servicio en el centro de intercambio de
información. La ventana UI indica la información que el usuario
comunica al representante de servicio, e incluye un cuadro de
entrada para introducir la información de licencia obtenida desde el
representante de servicio que se usa para crear los datos de
licencia para permitir el uso del software.
En una realización, un archivo de licencia
asociado con el software incluye un HWID de activación, un vector
de tiempo, un vector de peso y una puntuación umbral. Cuando ha de
comprobarse la licencia, se calcula un ID de hardware (HWID)
actual. Para cada tipo de componente de entre un conjunto de tipos
de componente que han de considerarse, se consultan los componentes
de ese tipo. Cada resultado se somete a hash. Los valores
resultantes comprenden el HWID actual. Para permitir el uso del
software, el HWID actual para el sistema informático debe coincidir
sustancialmente con el HWID de activación. El vector de tiempo, el
vector de peso y la puntuación umbral se usan para determinar si se
produce una coincidencia sustancial.
En una realización, los datos 200 de licencia
incluyen un HWID 210 de activación, un vector 220 de peso, un
vector 230 de tiempo y una puntuación 240 umbral tal como se muestra
en la figura 2. Esta información se usa para determinar en el
momento de ejecución si el HWID del sistema actual indica que es
aceptable para permitir el uso del software en el sistema
actual.
\global\parskip0.900000\baselineskip
En una realización, con referencia a la figura
1, los tipos de componente usados para calcular un HWID son: la
tarjeta de sonido (ubicada en la interfaz 195 de salida periférica);
la tarjeta de red (ubicada en la interfaz 170 de red), el BIOS 133;
la unidad 155 de CDROM, el adaptador de pantalla (que comprende la
GPU 184); el dispositivo 151 de disco, el adaptador SCSI, el
adaptador de disco, el procesador 120, y la RAM 132. Por supuesto,
pueden emplearse otros componentes sin alejarse del espíritu y el
alcance de la presente invención, y puede usarse cualquier
combinación de uno o más de estos componentes.
Cuando se calcula un HWID, se ejecutan consultas
plug and play (PnP) u otras consultas para determinar los
identificadores para estos componentes. Algunos, tal como el
procesador 120, pueden identificarse mediante un número de serie.
Otros, tal como el BIOS 133, pueden identificarse mediante una parte
de BIO 133, por ejemplo los dos primeros kilobytes del BIOS
almacenado en la ROM 131. La RAM 132, por ejemplo, puede
identificarse mediante la capacidad de almacenamiento total de la
misma.
Como un ejemplo adicional, la tarjeta de red
puede identificarse mediante una dirección MAC. La dirección MAC
(control de acceso a medios) es una dirección única que identifica
la tarjeta de red. En una red de área local (LAN) u otra red, la
dirección MAC se usa como el número de hardware único del sistema
informático. Cuando el sistema informático está conectado a
Internet, este número se usa para indexar la dirección IP correcta
para el sistema informático. La dirección MAC de una tarjeta de red
es un número único que se graba en la tarjeta de red por su
fabricante. Se asignan bloques de direcciones a cada fabricante de
tarjetas de red, y se codifican de manera fija
(hard-coded) en los chips en sus tarjetas de
red.
Como se muestra, el HWID 210 de activación
incluye, para cada tipo de componente, el número de componentes de
ese tipo que existía en la activación. El HWID 210 de activación
también incluye un valor para cada componente. En una realización,
los identificadores de hardware se someten a hash para
producir un valor sometido a hash, que se incluye en el
HWID. Por ejemplo, como se muestra en la figura 2, se instalaron
cuatro CDROM en el momento de la activación. En una realización, el
valor sometido a hash para cada componente se almacena en el
HWID. Por ejemplo, cdrom1, cdrom2, cdrom3 y cdrom4 son los
identificadores sometidos a hash para los cuatro CDROM en el
HWID 210 de activación ejemplar.
En una realización, la función hash usada
para someter a hash los identificadores de componentes es
una función de módulo. Por ejemplo, el valor sometido a hash
BIOS1 que representa el componente BIOS en HWID 210 podrían ser los
dos primeros kilobytes del BIOS, módulo 8. Por supuesto, también
puede emplearse cualquier otra función hash sin apartarse
del espíritu y el alcance de la presente invención.
En una realización, también se incluye en los
datos 200 de licencia un vector 220 de peso y una puntuación 240
umbral. Cuando un HWID recién calculado se compara con un HWID 210
de activación de modo que puede efectuarse la determinación de si
el sistema informático permitirá ejecutar el software
correspondiente a los datos 200 de licencia, se consulta cada
componente de un tipo específico de componente presente en el
sistema. Para cada componente presente de un tipo específico de
componente, la consulta se somete a hash para crear un
identificador de componente
sometido a hash. Estos identificadores de componentes sometidos a hash se incluyen en el HWID recién calculado.
sometido a hash. Estos identificadores de componentes sometidos a hash se incluyen en el HWID recién calculado.
El HWID de activación y el HWID recién calculado
se comparan. Se guarda una puntuación de coincidencia total
acumulada. Para cada tipo de componente, si cualquiera de estos
valores sometido a hash para un componente de ese tipo en el
HWID recién calculado coincide con cualquiera de los valores
sometidos a hash para ese tipo de componente en el HWID 210
de activación, entonces la puntuación de coincidencia se incrementa.
Una vez calculada la puntuación de coincidencia, si la puntuación
de coincidencia es superior o igual a la puntuación umbral, el HWID
actual coincide sustancialmente con el HWID de activación. En otra
realización, los HWID deben coincidir exactamente para que se
incremente la puntuación de coincidencia. En otra realización, cada
componente de un tipo dado presente en el HWID de activación debe
estar presente en el HWID recién calculado para que se incremente
la puntuación de coincidencia para ese tipo de componente. También
se contemplan otros medios para determinar una coincidencia entre
los HWID para un tipo de componente, y pueden emplearse sin alejarse
del espíritu y el alcance de la invención.
El vector 220 de peso controla la magnitud del
incremento. Por ejemplo, un identificador de BIOS coincidente
incrementará la puntuación de coincidencia en tres, mientras que un
identificador de CDROM coincidente sólo incrementará la puntuación
de coincidencia en uno.
Adicionalmente, en una realización, el vector
230 de tiempo puede emplearse cuando se calcula la puntuación de
coincidencia. Para cualquier componente, si el vector 230 de tiempo
contiene un valor para ese componente, éste es la expiración para
el uso de ese componente al comparar los dos HWID. Por ejemplo, en
datos 200 de licencia ejemplares, como se ve en la figura 2, se
almacena un periodo de tiempo para algunos componentes. En los
datos 200 de licencia ejemplares, dos años es el periodo de tiempo
almacenado para los componentes de CDROM. Por tanto, si han pasado
dos años desde la concesión de la licencia, un valor no coincidente
correspondiente a los CDROM actualmente presentes en el sistema
informático no afectará negativamente a la puntuación de
coincidencia. Por lo tanto, la puntuación de coincidencia se
incrementará en uno (el valor en el vector 220 de peso)
independientemente de si se encuentra un CDROM en el sistema
informático cuyo identificador coincide con los valores almacenados
en el HWID 210 de activación (a saber, cdrom1, cdrom2, cdrom3 y
cdrom4). En otra realización, la puntuación de coincidencia se
incrementa en un valor especificado previamente (con independencia
del valor del vector 220 de peso) cuando la puntuación de
coincidencia se incrementa debido a expiración en lugar de debido a
una coincidencia.
\global\parskip1.000000\baselineskip
Para permitir que tenga lugar una expiración,
puede incluirse una fecha de licencia en los datos 200 de licencia.
De manera alternativa, cada valor del vector 230 de tiempo puede
expresarse como una fecha fija. Adicionalmente, pueden
implementarse medidas de seguridad para garantizar que la puesta a
cero de un reloj de sistema no entorpece la comparación de fechas.
Cuando no existen datos válidos en el vector 230 de tiempo para un
tipo de componente (en una realización, cuando el valor se pone a
cero), el componente se usa siempre para determinar la puntuación
de coincidencia. Por ejemplo, el vector 230 de tiempo indica que
sólo expiran componentes de MAC, CDROM y pantalla. Otros
componentes no lo hacen.
En una realización, sólo se incluye un vector de
peso pero no un vector de tiempo en los datos de licencia. En esta
realización, para comparar dos HWID, se considera cada componente, y
la puntuación de coincidencia se incrementa sólo si hay una
coincidencia. Como se muestra en la figura 3, en la etapa 310, se
obtiene la información de identidad actual para cada uno de los
componentes relevantes del sistema. En la etapa 320, la información
de identidad actual se compara con la información de identidad de
componente almacenada del HWID de activación. Si se usa una función
hash, la información de identidad se somete a hash y
se compara con la información de identidad de componente
almacenada, que también se ha sometido a hash. En la etapa
330, cuando hay una coincidencia para un tipo dado de componente, se
incrementa una puntuación de coincidencia en el valor en el vector
de peso asociado con ese tipo de componente. Y en la etapa 340, una
vez considerados todos los componentes, la puntuación de
coincidencia se compara con la puntuación de coincidencia umbral
para determinar si la coincidencia ha sido satisfactoria. Esta
prueba puede usarse de varias formas. Por ejemplo, si la
comparación se hace para determinar si un sistema tiene licencia
para ejecutar software, si la coincidencia es satisfactoria, el
sistema informático tiene permiso para ejecutar el software.
En otra realización, sólo se incluye un vector
de tiempo, pero no un vector de peso en los datos 200 de licencia.
En esta realización, cuando se encuentra una coincidencia de
componente, se suma el mismo valor a la puntuación de coincidencia,
independientemente del tipo de componente que esté comparándose. Sin
embargo, si el valor de tiempo especificado para el tipo de
componente ha pasado, incluso aunque no se encuentre coincidencia,
la puntuación de coincidencia se incrementará. Como se muestra en la
figura 4, en la etapa 410, se obtienen los componentes del HWID, la
información de identidad actual para cada uno de los componentes
relevantes del sistema. En la etapa 420, la información de
identidad actual se compara con la información de identidad de
componente almacenada del HWID 210 de activación. En la etapa 430,
cuando hay una coincidencia para un tipo dado de componente o
cuando ha pasado el periodo de expiración para ese tipo de
componente, la puntuación de coincidencia se incrementa. Como
antes, en la etapa 440, la puntuación de coincidencia se compara con
la puntuación de coincidencia umbral para determinar si la
coincidencia ha sido satisfactoria.
En una realización, se incluye una puntuación de
coincidencia en los datos 200 de licencia. En otra realización, se
"graba a fuego" una puntuación de coincidencia en el cálculo de
si está presente una coincidencia sustancial. Por tanto, los datos
200 de licencia pueden incluir simplemente un vector de tiempo,
simplemente un vector de peso, o un vector tanto de tiempo como de
peso, y en cualquiera de estas combinaciones puede incluir una
puntuación de coincidencia o, de manera alternativa, puede basarse
en una puntuación de coincidencia "grabada a fuego" en el
cálculo de si está presente una coincidencia sustancial.
Al usar un vector de tiempo, un vector de peso,
o ambos, la licencia ya no son datos pasivos, sino que desempeña un
papel en los datos de comparación de licencia. El licenciante o el
centro de intercambio de información pueden tener más control sobre
la experiencia del usuario. Por ejemplo, el licenciante puede
encuestar a los usuarios y descubrir que un porcentaje
significativo de ellos cambiará las tarjetas de vídeo cada dos años.
Esto puede hacer que el licenciante establezca el valor de tiempo
para las tarjetas de vídeo en nuevas licencias en dos años.
Posteriormente, puede determinarse que llegarán al mercado nuevas
tarjetas de vídeo en seis meses, y que la mayoría de usuarios
cambiará entonces su tarjeta de vídeo. El licenciante puede
establecer el valor de tiempo en seis meses en las nuevas
licencias. Puede determinarse que hay una amplia variación en cuándo
los usuarios cambian las unidades de CDROM, pero otros valores de
tiempo son muy precisos a la hora de describir el comportamiento
del usuario. Esto puede hacer que el licenciante establezca el valor
de peso para las unidades de CDROM más bajo que los valores de peso
para otros componentes.
En una realización, se usa un vector de peso
para reaccionar a cambios en la información relativa al usuario. Un
usuario obtiene una primera licencia de software. Entonces, por
ejemplo, cuando ha expirado un periodo de evaluación, el usuario
obtiene una segunda licencia de software. El primer HWID de
activación se compara con el segundo HWID de activación, y se
ajustan apropiadamente valores de peso para componentes. En una
realización de este tipo, a los componentes que se han cambiado se
les da un peso aumentado con respecto a los componentes que no se
han cambiado. Esto refleja una suposición de que un componente que
se ha cambiado recientemente no se volverá a cambiar. En otra
realización de este tipo, a los componentes que se han cambiado se
les da un peso disminuido con respecto a componentes que no se han
cambiado. Esto refleja una suposición de que es probable que el
usuario pruebe o cambie componentes que el usuario ha cambiado
históricamente.
Como se mencionó anteriormente, aunque se han
descrito realizaciones ejemplares de la presente invención en
conexión con diversos dispositivos informáticos y arquitecturas de
red, los conceptos subyacentes pueden aplicarse a cualquier
dispositivo informático o sistema en el que es deseable implementar
un ID de hardware. Por tanto, los procedimientos y sistemas de la
presente invención pueden aplicarse a una variedad de aplicaciones y
dispositivos. Por ejemplo, el(los) algoritmo(s) de la
invención pueden aplicarse al sistema operativo de un dispositivo
informático, proporcionado como un objeto separado en el
dispositivo, como parte de otro objeto, como un objeto descargable
desde un servidor, como una "gestión intermedia" entre un
dispositivo u objeto y la red, como un objeto distribuido, etc.
Aunque se escogen lenguajes de programación, nombres y ejemplos
ejemplares en la presente memoria como representativos de diversas
elecciones, estos leguajes, nombres y ejemplos no pretenden ser
limitantes. Un experto en la técnica apreciará que hay numerosas
formas de proporcionar código de objeto que logre los mismos,
similares o equivalentes sistemas y procedimientos logrados por la
invención.
Las diversas técnicas descritas en la presente
memoria pueden implementarse en conexión con hardware o software o,
si resulta apropiado, con una combinación de ambos. Por tanto, los
procedimientos y el aparato de la presente invención, o ciertos
aspectos o partes de la misma, pueden adoptar la forma de código de
programa (es decir, instrucciones) materializadas en medios
tangibles, tales como disquetes flexibles, CD-ROM,
discos duros, o cualquier otro medio de almacenamiento legible por
máquina, en los que, cuando el código de programa se carga en y se
ejecuta por una máquina, tal como un ordenador, la máquina se
convierte en un aparato para la puesta en práctica de la invención.
En el caso de la ejecución de código de programa en ordenadores
programables, el dispositivo informático incluirá generalmente un
procesador, un medio de almacenamiento legible por el procesador
(incluyendo elementos de almacenamiento y/o memoria volátiles y no
volátiles), al menos un dispositivo de entrada, y al menos un
dispositivo de salida. Uno o más programas que pueden utilizar los
servicios de procesamiento de señales de la presente invención, por
ejemplo, mediante el uso de una API de procesamiento de datos o
similar, se implementan preferiblemente en un lenguaje de
programación orientado a objetos o de procedimiento de alto nivel
para comunicarse con un ordenador. Sin embargo, el(los)
programa(s) puede(n) implementarse en lenguaje
ensamblador o máquina, si se desea. En cualquier caso, el lenguaje
puede ser un lenguaje compilado o interpretado, y puede combinarse
con implementaciones de hardware.
Los procedimientos y aparatos de la presente
invención también pueden ponerse en práctica mediante comunicaciones
materializadas en forma de código de programa que se transmite
sobre algún medio de transmisión, tal como sobre cableado o hilo
eléctrico, mediante fibra óptica, o mediante cualquier otra forma de
transmisión, en las que, cuando el código de programa se recibe y
se carga en y se ejecuta por una máquina, tal como una EPROM, una
disposición de puerta, un dispositivo lógico programable (PLD), un
ordenador de cliente, un grabador de vídeo o similar, o una máquina
receptora que tiene las capacidades de procesamiento de señales
descritas en las realizaciones ejemplares anteriores se convierte
en un aparato para la puesta en práctica de la invención. Cuando se
implementa en un procesador de uso general, el código de programa se
combina con el procesador para proporcionar un aparato único que
opera para invocar la funcionalidad de la presente invención.
Adicionalmente, cualquier técnica de almacenamiento usada en
conexión con la presente invención puede ser de manera invariable
una combinación de hardware y software.
Aunque la presente invención se ha descrito en
conexión con las realizaciones preferidas de las diversas figuras,
ha de entenderse que pueden usarse otras realizaciones similares o
que pueden realizarse modificaciones y adiciones a la realización
descrita para realizar la misma función de la presente invención sin
desviarse de la misma. Además, ha de enfatizarse que se contempla
una variedad de plataformas informáticas, incluyendo sistemas
operativos de dispositivo de bolsillo y otros sistemas operativos de
aplicación específica, específicamente a medida que el número de
dispositivos en red inalámbricos sigue proliferando. Adicionalmente
aún, la presente invención puede implementarse en o a través de una
pluralidad de chips o dispositivos de procesamiento, y el
almacenamiento puede realizarse de manera similar a través de una
pluralidad de dispositivos. Por lo tanto, la presente invención no
debe limitarse a una única realización, sino que más bien debe
interpretarse en la amplitud y el alcance según las
reivindicaciones adjuntas.
Claims (22)
1. Un procedimiento para permitir el
cumplimiento de los términos de licencia de software para un
producto de software para su uso con un sistema informático que
comprende uno o más componentes, comprendiendo el procedimiento:
para cada tipo de componente de entre un
conjunto de tipos de componente, obtener (410) una identidad de
componente actual asociada a partir de dicho sistema
informático;
para cada tipo de componente de entre dicho
conjunto de tipos de componente, comparar (420) dicha identidad de
componente actual asociada con una identidad de componente
almacenada asociada;
calcular (430) una puntuación de coincidencia
determinando, para cada tipo de componente de entre dicho conjunto
de tipos de componente, si ha pasado un periodo de expiración
asociado usando un vector de tiempo que indica para cada tipo de
componente un periodo de expiración, si los resultados de dicha
comparación son positivos, incrementar dicha puntuación de
coincidencia, y si los resultados de dicha comparación no son
positivos y si el periodo de expiración asociado ha pasado,
incrementar dicha puntuación de coincidencia;
comparar (440) dicha puntuación de coincidencia
con una puntuación de coincidencia umbral; y
permitir que el sistema informático ejecute el
producto de software si la puntuación de coincidencia es superior o
igual a la puntuación de coincidencia umbral.
2. El procedimiento según la reivindicación 1,
en el que dicha etapa de obtener (410), para cada tipo de
componente de entre dicho conjunto de tipos de componente, una
identidad de componente actual asociada comprende:
obtener una identidad de componente actual
individual asociada para todos los componentes de ese tipo de
componente.
3. El procedimiento según las reivindicaciones 1
y 2, en el que, para al menos un tipo de componente de entre dicho
conjunto de tipos de componente de hardware, dicha identidad de
componente almacenada asociada comprende una o más identidades de
componente almacenadas individuales asociadas, y en el que dicha
etapa de comparar, para cada tipo de componente de hardware de
entre dicho conjunto de tipos de componente de hardware, dicha
identidad de componente existente asociada con una identidad de
componente almacenada asociada comprende:
dar un resultado positivo si cualquiera de
dichas identidades de componente almacenadas individuales asociadas
coincide con cualquiera de dichas identidades de componente actuales
individuales asociadas.
4. El procedimiento según las reivindicaciones 1
y 2, en el que, para al menos un tipo de componente de entre dicho
conjunto de tipos de componente de hardware, dicha identidad de
componente almacenada asociada comprende una o más identidades de
componente almacenadas individuales asociadas, y en el que dicha
etapa de comparar, para cada tipo de componente de hardware de
entre dicho conjunto de tipos de componente de hardware, dicha
identidad de componente existente asociada con una identidad de
componente almacenada asociada comprende:
dar un resultado positivo si todas dichas
identidades de componente almacenadas individuales asociadas
coinciden con cualquiera de dichas identidades de componente
actuales individuales asociadas.
5. El procedimiento según las reivindicaciones 1
a 4, en el que dicha etapa de obtener (410), para cada tipo de
componente de hardware de entre un conjunto de tipos de componente
de hardware, una identidad de componente existente asociada
comprende:
consultar un componente de hardware del tipo de
componente de hardware para obtener un resultado de consulta; y
someter a hash el resultado de
consulta.
6. El procedimiento según las reivindicaciones 1
a 5, en el que dicho conjunto de tipos de componente comprende uno
o más seleccionados de entre los siguientes:
tarjeta de sonido, tarjeta de red, BIOS, unidad
de CDROM, adaptador de pantalla, dispositivo de disco, adaptador
SCSI, adaptador de disco, procesador y RAM.
7. El procedimiento según una de las
reivindicaciones 1 a 6, en el que la identidad de componente
almacenada está almacenada en una estructura (200) de datos de
licencia para permitir que se cumplan los términos de licencia de
software para un producto de software para su uso con un sistema
informático que comprende uno o más componentes de uno o más tipos
de componente, comprendiendo la estructura (200) de datos de
licencia:
un ID (210) de hardware que comprende una
pluralidad de valores, correspondiendo cada valor a una identidad
de componente para uno de dichos componentes;
un vector (230) de tiempo que comprende, para
cada uno de al menos uno de dichos tipos de componente, un valor de
expiración para dicho tipo de componente.
8. El procedimiento según la reivindicación 7,
en el que la estructura de datos de licencia comprende además: una
puntuación umbral para determinar si dicho ID de hardware coincide
sustancialmente con un segundo ID de hardware.
9. El procedimiento según la reivindicación 7,
en el que la estructura de datos de licencia comprende además:
un vector de peso que comprende, para cada uno
de dichos uno o más tipos de componente, un valor de peso para
dicho tipo de componente.
10. El procedimiento según las reivindicaciones
7 ó 9, en el que la estructura de datos de licencia comprende
además:
una puntuación umbral para determinar si dicho
ID de hardware coincide sustancialmente con un segundo ID de
hardware.
11. Un medio legible por ordenador para permitir
el cumplimiento de los términos de licencia de software para un
producto de software para su uso con un sistema informático que
comprende uno o más componentes, que tiene almacenado en el mismo
al menos un módulo ejecutable por ordenador que comprende
instrucciones ejecutables por ordenador para llevar a cabo un
procedimiento, comprendiendo el procedimiento:
para cada tipo de componente de entre un
conjunto de tipos de componente, obtener (410) una identidad de
componente actual asociada de dicho sistema informático;
para cada tipo de componente de entre dicho
conjunto de tipos de componente, comparar (420) dicha identidad de
componente actual asociada con una identidad de componente
almacenada asociada;
calcular (430) una puntuación de coincidencia
determinando, para cada tipo de componente de entre dicho conjunto
de tipos de componente, si ha pasado un periodo de expiración
asociado usando un vector de tiempo que indica, para cada tipo de
componente, un periodo de expiración, si los resultados de dicha
comparación son positivos, incrementar dicha puntuación de
coincidencia, y si los resultados de dicha comparación no son
positivos y si el periodo de expiración asociado ha pasado,
incrementar dicha puntuación de coincidencia;
comparar (440) dicha puntuación de coincidencia
con una puntuación de coincidencia umbral; y
permitir que el sistema informático ejecute el
producto de software si la puntuación de coincidencia es superior o
igual a la puntuación de coincidencia umbral.
12. El medio legible por ordenador según la
reivindicación 11, en el que dicha etapa de obtener (410), para
cada tipo de componente de entre dicho conjunto de tipos de
componente, una identidad de componente actual asociada
comprende:
obtener una identidad de componente actual
individual asociada para todos los componentes de ese tipo de
componente.
13. El medio legible por ordenador según las
reivindicaciones 11 y 12, en el que, para al menos un tipo de
componente de entre dicho conjunto de tipos de componente de
hardware, dicha identidad de componente almacenada asociada
comprende una o más identidades de componente almacenadas
individuales asociadas, y en el que dicha etapa de comparar, para
cada tipo de componente de hardware de entre dicho conjunto de tipos
de componente de hardware, dicha identidad de componente existente
asociada con una identidad de componente almacenada asociada
comprende:
dar un resultado positivo si cualquiera de
dichas identidades de componente almacenadas individuales asociadas
coincide con cualquiera de dichas identidades de componente actuales
individuales asociadas.
14. El medio legible por ordenador según las
reivindicaciones 11 y 12, en el que, para al menos un tipo de
componente de entre dicho conjunto de tipos de componente de
hardware, dicha identidad de componente almacenada asociada
comprende una o más identidades de componente almacenadas
individuales asociadas, y en el que dicha etapa de comparar, para
cada tipo de componente de hardware de entre dicho conjunto de tipos
de componente de hardware, dicha identidad de componente existente
asociada con una identidad de componente almacenada asociada
comprende:
dar un resultado positivo si todas dichas
identidades de componente almacenadas individuales asociadas
coinciden con cualquiera de dichas identidades de componente
actuales individuales asociadas.
15. El medio legible por ordenador según las
reivindicaciones 11 a 14, en el que dicha etapa de obtener (410),
para cada tipo de componente de hardware de entre un conjunto de
tipos de componente de hardware, una identidad de componente
existente asociada comprende:
consultar un componente de hardware del tipo de
componente de hardware para obtener un resultado de consulta; y
someter a hash el resultado de
consulta.
16. El medio legible por ordenador según las
reivindicaciones 11 a 15, en el que dicho conjunto de tipos de
componente comprende uno o más seleccionados de entre los
siguientes:
tarjeta de sonido; tarjeta de red, BIOS, unidad
CDROM, adaptador de pantalla, dispositivo de disco, adaptador SCSI,
adaptador de disco, procesador y RAM.
17. Un dispositivo informático para permitir el
cumplimiento de los términos de licencia de software para un
producto de software para su uso con un sistema informático que
comprende uno o más componentes, que comprende:
medios para obtener, para cada tipo de
componente de entre un conjunto de tipos de componente, una
identidad de componente actual asociada de dicho sistema
informático;
medios para comparar, para cada tipo de
componente de entre dicho conjunto de tipos de componente, dicha
identidad de componente actual asociada con una identidad de
componente almacenada asociada;
medios para calcular una puntuación de
coincidencia determinando, para cada tipo de componente de entre
dicho conjunto de tipos de componente, si ha pasado un periodo de
expiración asociado usando un vector de tiempo que indica, para
cada tipo de componente un periodo de expiración, si los resultados
de dicha comparación son positivos, incrementar dicha puntuación de
coincidencia, y si los resultados de dicha comparación no son
positivos y si el periodo de expiración asociado ha pasado,
incrementar dicha puntuación de coincidencia;
medios para comparar dicha puntuación de
coincidencia con una puntuación de coincidencia umbral; y
medios para permitir que el sistema informático
ejecute el producto de software si la puntuación de coincidencia es
superior o igual a la puntuación de coincidencia umbral.
18. El dispositivo informático según la
reivindicación 17, en el que dichos medios para obtener, para cada
tipo de componente de entre dicho conjunto de tipos de componente,
una identidad de componente actual asociada comprende:
medios para obtener una identidad de componente
actual individual asociada para todos los componentes de ese tipo
de componente.
19. El dispositivo informático según las
reivindicaciones 17 y 18, en el que, para al menos un tipo de
componente de entre dicho conjunto de tipos de componente de
hardware, dicha identidad de componente almacenada asociada
comprende una o más identidades de componente almacenadas
individuales asociadas, y en el que dichos medios para comparar,
para cada tipo de componente de hardware de entre dicho conjunto de
tipos de componente de hardware, dicha identidad de componente
existente asociada con una identidad de componente almacenada
asociada comprenden:
medios para dar un resultado positivo si
cualquiera de dichas identidades de componente almacenadas
individuales asociadas coincide con cualquiera de dichas
identidades de componente actuales individuales asociadas.
20. El dispositivo informático según las
reivindicaciones 17 y 18, en el que, para al menos un tipo de
componente de entre dicho conjunto de tipos de componente de
hardware, dicha identidad de componente almacenada asociada
comprende una o más identidades de componente almacenadas
individuales asociadas, y en el que dichos medios para comparar,
para cada tipo de componente de hardware de entre dicho conjunto de
tipos de componente de hardware, dicha identidad de componente
existente asociada con una identidad de componente almacenada
asociada comprenden:
medios para dar un resultado positivo si todas
dichas identidades de componente almacenadas individuales asociadas
coinciden con cualquiera de dichas identidades de componente
actuales individuales asociadas.
21. El dispositivo informático según las
reivindicaciones 17 a 20, en el que dichos medios para obtener,
para cada tipo de componente de hardware de entre un conjunto de
tipos de componente de hardware, una identidad de componente
existente asociada comprenden:
medios para consultar un componente de hardware
del tipo de componente de hardware para obtener un resultado de
consulta; y
medios para someter a hash el resultado
de consulta.
22. El dispositivo informático según las
reivindicaciones 17 a 21, en el que dicho conjunto de tipos de
componente comprende uno o más seleccionados de entre los
siguientes:
tarjeta de sonido; tarjeta de red, BIOS, unidad
de CDROM, adaptador de pantalla, dispositivo de disco, adaptador
SCSI, adaptador de disco, procesador y RAM.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/337,064 US7302590B2 (en) | 2003-01-06 | 2003-01-06 | Systems and methods for providing time-and weight-based flexibly tolerant hardware ID |
US337064 | 2003-01-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2318085T3 true ES2318085T3 (es) | 2009-05-01 |
Family
ID=32655428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03029937T Expired - Lifetime ES2318085T3 (es) | 2003-01-06 | 2003-12-29 | Sistemas y procedimientos para proporcionar id de hardware tolerante de manera flexible basado en el tiempo y el peso. |
Country Status (14)
Country | Link |
---|---|
US (2) | US7302590B2 (es) |
EP (1) | EP1452940B1 (es) |
JP (1) | JP4651947B2 (es) |
KR (1) | KR101014140B1 (es) |
CN (1) | CN100377022C (es) |
AT (1) | ATE419587T1 (es) |
AU (1) | AU2004200043B2 (es) |
BR (1) | BRPI0400061B1 (es) |
CA (1) | CA2454842C (es) |
DE (1) | DE60325550D1 (es) |
DK (1) | DK1452940T3 (es) |
ES (1) | ES2318085T3 (es) |
MX (1) | MXPA04000166A (es) |
RU (1) | RU2372653C2 (es) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644442B2 (en) * | 2003-01-31 | 2010-01-05 | Microsoft Corporation | Systems and methods for using machine attributes to deter software piracy in an enterprise environment |
US7290149B2 (en) * | 2003-03-03 | 2007-10-30 | Microsoft Corporation | Verbose hardware identification for binding a software package to a computer system having tolerance for hardware changes |
US20050027657A1 (en) * | 2003-08-01 | 2005-02-03 | Yuri Leontiev | Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers |
US7379918B2 (en) * | 2004-07-30 | 2008-05-27 | Microsoft Corporation | Method and system for single reactivation of software product licenses |
US9547780B2 (en) | 2005-03-28 | 2017-01-17 | Absolute Software Corporation | Method for determining identification of an electronic device |
US20140013449A1 (en) | 2005-07-28 | 2014-01-09 | Adobe Systems Incorporated | Delayed validation for software licensing and activation |
US8712973B2 (en) * | 2006-04-11 | 2014-04-29 | International Business Machines Corporation | Weighted determination in configuration management systems |
US8769703B2 (en) | 2006-04-27 | 2014-07-01 | Unisys Corporation | System and method for providing a mechanism to virtualize a perpetual, unique system identity on a partitioned computer system |
US8521652B2 (en) * | 2006-05-19 | 2013-08-27 | Hewlett-Packard Development Company, L.P. | Discovering licenses in software files |
US7610483B2 (en) * | 2006-07-25 | 2009-10-27 | Nvidia Corporation | System and method to accelerate identification of hardware platform classes |
US20080183690A1 (en) | 2007-01-26 | 2008-07-31 | Ramachandran Puthukode G | Method for providing assistance in making change decisions in a configurable managed environment |
FR2912529A1 (fr) * | 2007-02-13 | 2008-08-15 | France Telecom | Couplage d'un programme informatique ou de donnees a un systeme de reference et verification associee. |
US8528109B2 (en) * | 2007-10-09 | 2013-09-03 | Microsoft Corporation | Optimizing amount of data passed during software license activation |
EP2260427A4 (en) * | 2008-02-20 | 2016-11-16 | Ericsson Telefon Ab L M | FLEXIBLE NODEIDENTITY FOR TELECOM NODES |
US8676714B2 (en) * | 2009-06-11 | 2014-03-18 | Microsoft Corporation | Hardware specific product license validation |
US20100332400A1 (en) * | 2009-06-24 | 2010-12-30 | Craig Stephen Etchegoyen | Use of Fingerprint with an On-Line or Networked Payment Authorization System |
US20110093503A1 (en) * | 2009-10-19 | 2011-04-21 | Etchegoyen Craig S | Computer Hardware Identity Tracking Using Characteristic Parameter-Derived Data |
US8316421B2 (en) * | 2009-10-19 | 2012-11-20 | Uniloc Luxembourg S.A. | System and method for device authentication with built-in tolerance |
US9256899B2 (en) * | 2010-01-15 | 2016-02-09 | Dell Products, L.P. | System and method for separation of software purchase from fulfillment |
US9235399B2 (en) * | 2010-01-15 | 2016-01-12 | Dell Products L.P. | System and method for manufacturing and personalizing computing devices |
US10387927B2 (en) * | 2010-01-15 | 2019-08-20 | Dell Products L.P. | System and method for entitling digital assets |
US9100396B2 (en) * | 2010-01-29 | 2015-08-04 | Dell Products L.P. | System and method for identifying systems and replacing components |
US8170783B2 (en) | 2010-03-16 | 2012-05-01 | Dell Products L.P. | System and method for handling software activation in entitlement |
US9218491B2 (en) * | 2010-04-13 | 2015-12-22 | Hewlett-Packard Development Company, L.P. | Systems and methods for providing security in an electronic device |
GB2484268A (en) | 2010-09-16 | 2012-04-11 | Uniloc Usa Inc | Psychographic profiling of users of computing devices |
US8657000B2 (en) | 2010-11-19 | 2014-02-25 | Exxonmobil Upstream Research Company | Systems and methods for enhanced waterfloods |
US8739869B2 (en) | 2010-11-19 | 2014-06-03 | Exxonmobil Upstream Research Company | Systems and methods for enhanced waterfloods |
US8656996B2 (en) | 2010-11-19 | 2014-02-25 | Exxonmobil Upstream Research Company | Systems and methods for enhanced waterfloods |
US8974661B2 (en) | 2010-12-30 | 2015-03-10 | Exxonmobil Upstream Research Company | Methods for separation of bitumen from oil sands |
EP2686806B1 (en) * | 2011-03-15 | 2019-09-11 | Irdeto B.V. | Change-tolerant method of generating an identifier for a collection of assets in a computing environment using a secret sharing scheme |
AU2011101296B4 (en) | 2011-09-15 | 2012-06-28 | Uniloc Usa, Inc. | Hardware identification through cookies |
US8949401B2 (en) | 2012-06-14 | 2015-02-03 | Dell Products L.P. | Automated digital migration |
US9779219B2 (en) | 2012-08-09 | 2017-10-03 | Dell Products L.P. | Method and system for late binding of option features associated with a device using at least in part license and unique ID information |
US8856757B2 (en) * | 2012-11-08 | 2014-10-07 | International Business Machines Corporation | Automatic license entitlement calculation |
AU2013100802B4 (en) | 2013-04-11 | 2013-11-14 | Uniloc Luxembourg S.A. | Device authentication using inter-person message metadata |
US8695068B1 (en) | 2013-04-25 | 2014-04-08 | Uniloc Luxembourg, S.A. | Device authentication using display device irregularity |
CN104850519A (zh) * | 2015-04-10 | 2015-08-19 | 宁波萨瑞通讯有限公司 | 电子产品中硬件id更换情况的远程统计系统及方法 |
US10365931B2 (en) * | 2017-02-27 | 2019-07-30 | Microsoft Technology Licensing, Llc | Remote administration of initial computer operating system setup options |
US20200220865A1 (en) * | 2019-01-04 | 2020-07-09 | T-Mobile Usa, Inc. | Holistic module authentication with a device |
US20230297724A1 (en) * | 2022-03-15 | 2023-09-21 | Microsoft Technology Licensing, Llc | Hardware identity restoration post-device repair |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2145068A1 (en) * | 1992-09-21 | 1994-03-31 | Ric Bailier Richardson | System for software registration |
JP2924560B2 (ja) * | 1993-04-23 | 1999-07-26 | 日本電気株式会社 | 有償プログラムプロダクト利用チェック装置 |
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 |
US5815709A (en) * | 1996-04-23 | 1998-09-29 | San Microsystems, Inc. | System and method for generating identifiers for uniquely identifying object types for objects used in processing of object-oriented programs and the like |
JPH10283271A (ja) * | 1997-03-31 | 1998-10-23 | Victor Co Of Japan Ltd | 暗号鍵生成方法,光ディスク,情報再生方法及びその装置 |
US6148407A (en) * | 1997-09-30 | 2000-11-14 | Intel Corporation | Method and apparatus for producing computer platform fingerprints |
US6501846B1 (en) * | 1997-11-25 | 2002-12-31 | Ethentica, Inc. | Method and system for computer access and cursor control using a relief object image generator |
US6243468B1 (en) * | 1998-04-29 | 2001-06-05 | Microsoft Corporation | Software anti-piracy system that adapts to hardware upgrades |
US7503072B2 (en) * | 1998-04-29 | 2009-03-10 | Microsoft Corporation | Hardware ID to prevent software piracy |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US6697948B1 (en) | 1999-05-05 | 2004-02-24 | Michael O. Rabin | Methods and apparatus for protecting information |
DE10023820B4 (de) * | 2000-05-15 | 2006-10-19 | Siemens Ag | Software-Schutzmechanismus |
DE10155752A1 (de) * | 2001-11-14 | 2003-05-22 | Siemens Ag | Lizenzierungsverfahren |
JP4313941B2 (ja) * | 2000-09-29 | 2009-08-12 | 株式会社東芝 | 半導体記憶装置 |
KR100375220B1 (ko) * | 2000-10-12 | 2003-03-07 | 삼성전자주식회사 | 플래시 메모리 장치 형성방법 |
US6898286B2 (en) * | 2000-12-19 | 2005-05-24 | International Business Machines Corporation | Method and system verifying product licenses using hardware and product identifications |
US20040073789A1 (en) * | 2002-10-15 | 2004-04-15 | Powers John Stephenson | Method for collaborative software licensing of electronically distributed computer programs |
TWI255683B (en) * | 2005-01-05 | 2006-05-21 | Asustek Comp Inc | Portable electronic device and battery module thereof |
-
2003
- 2003-01-06 US US10/337,064 patent/US7302590B2/en not_active Expired - Fee Related
- 2003-12-29 EP EP03029937A patent/EP1452940B1/en not_active Expired - Lifetime
- 2003-12-29 AT AT03029937T patent/ATE419587T1/de not_active IP Right Cessation
- 2003-12-29 DE DE60325550T patent/DE60325550D1/de not_active Expired - Lifetime
- 2003-12-29 DK DK03029937T patent/DK1452940T3/da active
- 2003-12-29 ES ES03029937T patent/ES2318085T3/es not_active Expired - Lifetime
- 2003-12-30 CN CNB2003101097951A patent/CN100377022C/zh not_active Expired - Fee Related
-
2004
- 2004-01-05 RU RU2004100639/09A patent/RU2372653C2/ru not_active IP Right Cessation
- 2004-01-05 BR BRPI0400061A patent/BRPI0400061B1/pt not_active IP Right Cessation
- 2004-01-05 CA CA2454842A patent/CA2454842C/en not_active Expired - Fee Related
- 2004-01-06 AU AU2004200043A patent/AU2004200043B2/en not_active Ceased
- 2004-01-06 KR KR1020040000762A patent/KR101014140B1/ko active IP Right Grant
- 2004-01-06 JP JP2004001490A patent/JP4651947B2/ja not_active Expired - Fee Related
- 2004-01-07 MX MXPA04000166A patent/MXPA04000166A/es active IP Right Grant
-
2007
- 2007-10-17 US US11/874,075 patent/US7779274B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4651947B2 (ja) | 2011-03-16 |
DK1452940T3 (da) | 2009-03-23 |
CA2454842C (en) | 2012-10-23 |
KR101014140B1 (ko) | 2011-02-14 |
CA2454842A1 (en) | 2004-07-06 |
US7302590B2 (en) | 2007-11-27 |
KR20040063824A (ko) | 2004-07-14 |
MXPA04000166A (es) | 2005-06-17 |
RU2004100639A (ru) | 2005-06-10 |
AU2004200043B2 (en) | 2009-07-16 |
RU2372653C2 (ru) | 2009-11-10 |
CN100377022C (zh) | 2008-03-26 |
US7779274B2 (en) | 2010-08-17 |
ATE419587T1 (de) | 2009-01-15 |
US20040133792A1 (en) | 2004-07-08 |
EP1452940B1 (en) | 2008-12-31 |
BRPI0400061B1 (pt) | 2016-08-09 |
EP1452940A1 (en) | 2004-09-01 |
BRPI0400061A (pt) | 2004-10-19 |
JP2004213676A (ja) | 2004-07-29 |
AU2004200043A1 (en) | 2004-07-22 |
DE60325550D1 (de) | 2009-02-12 |
US20080040619A1 (en) | 2008-02-14 |
CN1609746A (zh) | 2005-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2318085T3 (es) | Sistemas y procedimientos para proporcionar id de hardware tolerante de manera flexible basado en el tiempo y el peso. | |
KR101219819B1 (ko) | 디지털 어플리케이션을 라이센싱하기 위한 유연한 라이센싱 아키텍처 | |
US7849329B2 (en) | Licensing the use of a particular feature of software | |
US7827550B2 (en) | Method and system for measuring a program using a measurement agent | |
US20050177823A1 (en) | License management | |
US20020007456A1 (en) | Secure processor architecture for use with a digital rights management (DRM) system on a computing device | |
US20040015694A1 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
US20080300887A1 (en) | Usage Model of Online/Offline License for Asset Control | |
BRPI0615811A2 (pt) | sistema operacional encerrado em unidade de processamento | |
US20070168574A1 (en) | System and method for securing access to general purpose input/output ports in a computer system | |
BRPI0801772B1 (pt) | Método implementado por computador, sistema de tratamento de informação e meio de armazenamento legível por computador | |
JPH11345117A (ja) | プログラムの不正実行防止機能付きプロセッサ、プロセッサが実行するインストラクション、及びプログラムの不正実行防止方法 | |
JP2004038247A (ja) | ライセンス管理方法、ライセンス管理システム、ライセンス管理プログラム | |
US7765407B2 (en) | Method and apparatus for providing centralized user authorization to allow secure sign-on to a computer system | |
US11914717B2 (en) | Information handling systems and related methods to cryptographically verify information handling system platform components and track events associated with the platform components | |
JP4017149B2 (ja) | プログラムの不正実行防止機能付きプロセッサ | |
JP2004046756A (ja) | ライセンス管理方法、ライセンス管理システム、ライセンス管理プログラム | |
KR20080088911A (ko) | 메모리의 배드정보를 암호화키로 사용하는 데이터저장카드, 연결장치 및 그 방법 | |
Myers | Programming with explicit security policies | |
JP2001222509A (ja) | 指紋認証を備えたソフトウェア初期化方法と、ソフトウェア初期化方法を備えた情報処理装置 | |
TWM398679U (en) | Portable memory device with multiple partitions |