ES2278793T3 - Sistema para proteger datos dinamicos y estaticos contra la manipulacion no autorizada. - Google Patents
Sistema para proteger datos dinamicos y estaticos contra la manipulacion no autorizada. Download PDFInfo
- Publication number
- ES2278793T3 ES2278793T3 ES01980433T ES01980433T ES2278793T3 ES 2278793 T3 ES2278793 T3 ES 2278793T3 ES 01980433 T ES01980433 T ES 01980433T ES 01980433 T ES01980433 T ES 01980433T ES 2278793 T3 ES2278793 T3 ES 2278793T3
- Authority
- ES
- Spain
- Prior art keywords
- dynamic
- audited
- hash
- hash value
- memory
- 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
- 230000003068 static effect Effects 0.000 title claims description 69
- 230000015654 memory Effects 0.000 claims abstract description 98
- 238000013475 authorization Methods 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000004048 modification Effects 0.000 claims description 29
- 238000012986 modification Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000010367 cloning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 208000033986 Device capturing issue Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Circuits Of Receivers In General (AREA)
- Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
Un método de asegurar la integridad de un objeto de datos dinámicos que comprende uno o más items de datos dinámicos, cuyo método comprende: guardar en una memoria el objeto de datos dinámicos; guardar en la memoria los datos dinámicos de autorización; usar un primer algoritmo hash dinámico para generar un primer valor inicial hash auditado dinámico a partir de uno o más parámetros que incluyen el objeto de datos dinámicos; usar un segundo algoritmo hash dinámico para generar un segundo valor inicial hash auditado dinámico a partir de uno o más parámetros que incluyen los datos dinámicos de autorización; guardar en la memoria el primer valor inicial hash auditado dinámico; guardar en la memoria el segundo valor inicial hash auditado dinámico; determinar si un usuario está autorizado a modificar el objeto de datos dinámicos; si el usuario no está autorizado a modificar el objeto de datos dinámicos, entonces: ajustar los datos dinámicos de autorización; guardar en la memoria los datos dinámicos de autorización ajustados; usar el segundo algoritmo hash dinámico para generar un segundo valor hash auditado dinámico ajustado a partir de uno o más parámetros que incluyen los datos dinámicos de autorización ajustados; y guardar en la memoria el segundo valor hash auditado dinámico ajustado; y si el usuario está autorizado a modificar el objeto de datos dinámicos, entonces: permitir al usuario modificar el objeto de datos dinámicos; guardar en la memoria el objeto de datos dinámicos modificado; usar el primer algoritmo hash dinámico para generar un primer valor hash auditado dinámico ajustado a partir de uno o más parámetros que incluyen el objeto de datos dinámicos modificado; y guardar en la memoria el primer valor hash auditado dinámico ajustado.
Description
Sistema para proteger datos dinámicos y
estáticos contra la manipulación no autorizada.
El invento se refiere a un sistema para prevenir
la manipulación de memorias electrónicas, y en particular, a
métodos y aparatos para prevenir la manipulación no autorizada del
contenido convenientemente seguro de una memoria en un dispositivo
electrónico.
El invento descrito en la presente memoria se
refiere a cualquier dispositivo electrónico cuyo contenido de
memoria se tenga que mantener en un estado seguro o preferiblemente
inalterado. Esta clase de requisito se podría necesitar por razones
de seguridad, tales como prevenir la manipulación fraudulenta de la
memoria de un teléfono celular, o para los fines de mantener la
integridad del funcionamiento de un dispositivo electrónico en
aplicaciones críticas tales como el control aéreo o el
funcionamiento de instrumentos médicos. Según se describe y expone
en la presente memoria, los aspectos ejemplares del invento se
especifican en el contexto de un sistema y un método para asegurar
una o más memorias electrónicas dentro de un teléfono celular. En
la presente memoria se describe también un sistema que permite el
acceso a- y la manipulación de - una o más memorias electrónicas de
un dispositivo electrónico, mediante el uso de un dispositivo de
transferencia de datos que experimenta un proceso de autenticación
antes de permitírsele acceder a una memoria electrónica. Éste
último sistema se describe también en el contexto de una aplicación
de teléfono celular. Aún cuando las realizaciones ejemplares del
invento expuestas en la presente memoria se describen en el contexto
de una memoria segura de teléfono celular y unos medios para
acceder con seguridad y alterar el contenido de la memoria de un
teléfono celular, los expertos en la técnica apreciarán fácilmente
que los sistemas de acuerdo con el invento se pueden aplicar a
cualquier sistema electrónico que tenga una o más memorias cuyo
contenido tenga que permanecer inalterado, o a cuyas memorias se
tenga que acceder y posiblemente modificarse sólo por medios
autorizados. Por consiguiente, no se pretende que el alcance del
invento esté limitado por las realizaciones ejemplares especificadas
en la presente memoria, sino más bien por las reivindicaciones
adjuntas como apéndice a la misma y equivalentes a la misma.
En muchos sistemas informáticos y de
comunicaciones fijos y móviles tales como los auxiliares personales
digitales (en adelante PDA) y los teléfonos celulares, existe una
necesidad de proteger ciertos datos guardados en la memoria del
sistema. Estos datos podrían ser los datos correspondientes a un
documento, una base de datos, o un programa. En el contexto de un
teléfono celular, los datos podrían representar información tal como
el número de identificación internacional de equipo móvil (en
adelante IMEI) (según lo expuesto en la especificación del sistema
global de comunicaciones (en adelante GSM) del Instituto europeo de
normas de telecomunicación (en adelante ETSI), datos de calibración
de radio, y códigos de acceso codificado. Una vez guardados en la
memoria, este tipo de datos no se espera que cambie, y por tanto en
la presente memoria se hará referencia a ellos como datos estáticos.
Se podrían guardar también otros tipos de datos en la memoria, tales
como datos que representen una indicación de estado de si el
teléfono con GSM está o no enclavado en una red de operador
específico. Este tipo de datos, a los que se hará referencia en la
presente memoria como datos dinámicos, tiene la posibilidad de ser
modificados por el usuario, pero solamente si el usuario está
autorizado para hacer la modificación. En todos los demás casos, los
datos dinámicos no están autorizados para cambiarse.
Se han descrito técnicas para asegurar la
integridad de los datos estáticos (es decir, para prevenir que se
manipulen indebidamente los datos estáticos), tal como las expuestas
en las patentes de EE.UU. Números 5.442.645 y 6.026.293. Estos
métodos usan de forma variada técnicas criptográficas para crear las
denominadas "firmas" de los datos estáticos. Las técnicas
criptográficas son conocidas y se describen en publicaciones tales
como Manual de criptología aplicada, por A. Menezes, P.C. an Orthot,
y S.A. Vanstone, CRC Press, 1996.Las firmas se crean y se guardan
en el momento en que se sepa que los datos estáticos son auténticos.
Luego, antes de que se autorice al usuario a utilizar los datos
estáticos, se vuelve a generar la firma y se compara con la versión
guardada anteriormente. Cualquier falta de coincidencia se toma
como evidencia de que los datos estáticos han cambiado y no deben
usarse.
En la patente de EE.UU. Número 5.442.645 es
necesario guardar una clave secreta con el fin de realizar la
protección de integridad. En la patente de EE.UU. Nº 6.026.293 se
describe una técnica más elaborada, que a continuación se describe
brevemente en relación con el diagrama de bloques de la Figura 1. En
este sistema, un circuito integrado para aplicación específica (en
adelante ASIC) que incluye circuitos de tratamiento 100 está
interconectado con una memoria flash 101 de programa, una memoria de
acceso aleatorio (en adelante RAM) 103 y una memoria 105 sólo de
lectura, programable y eléctricamente borrable (en adelante EEPROM)
por medio de un bus 107 de sistema. Los circuitos de tratamiento
100 incluyen un microprocesador 109, una unidad lógica 111 de
temporizador y controlador, y dos modalidades de memoria: RAM
estática protegida (en adelante PSRAM) 113 y una memoria interna de
sólo lectura (en adelante IROM) 115. Además del código boot
tradicional 117, la IROM 115 guarda una clave pública 119, un
código de programa para el algoritmo hash (designado como código
hash 121) y un código de programa para el código 123 de
autenticación de dispositivo. Los datos estáticos 125 se guardan en
la EEPROM 105. Los datos estáticos 125 se protegen mediante valores
hash auditados 127 que también se guardan en la EEPROM 105. Los
valores hash auditados 127 se calculan mediante el algoritmo hash
implementado por el código hash 121 guardado en la IROM 115 de
circuito de tratamiento. El acceso al contenido de la EEPROM por un
dispositivo externo de transferencia de datos se controla por medio
del uso de un procedimiento de autenticación usando la clave
pública 119 y el código de autenticación 123 guardado en la IROM
115. El proceso de autenticación requiere que el dispositivo de
transferencia de datos esté en posesión de la clave secreta
correspondiente del esquema de clave pública/privada que se use para
implementar el procedimiento de autenticación. Se usa un mecanismo
temporizador, implementado por medio de la unidad lógica 111 de
temporizador y control, para disparar el funcionamiento del circuito
de tratamiento de las comprobaciones de integridad de funcionamiento
en ciertos instantes determinados por un conjunto de contadores.
Un inconveniente de los métodos actuales estriba
en que se debe asegurar el propio software que realiza la
comprobación de integridad, puesto que cualquier modo para modificar
el software de comprobación de integridad se puede usar para
puentear el mecanismo de seguridad. En la técnica descrita en la
patente de EE.UU. Nº 6.026.291 este requisito se satisface mediante
la fijación del código del software en la IROM del ASIC del circuito
de tratamiento. Sin embargo, con el fin de poder emplear esta
técnica, el promotor del sistema debe ser capaz de definir partes
en el ASIC. Esta capacidad aumenta el coste de este componente.
Otro inconveniente con estas técnicas conocidas
estriba en que no se pueden aplicar fácilmente al problema de
asegurar la integridad de los datos dinámicos.
En la patente de EE.UU. Nº 5.606.315, se
describe un mecanismo en el que el acceso a un objeto de datos
dinámicos se controla por medio de una contraseña que se guarda en
la EEPROM. Sin embargo, el usuario puede leer fácilmente de la
EEPROM la contraseña y por tanto conseguir el acceso a la capacidad
de modificar los datos dinámicos. Más aún, en el sistema descrito
en este documento, los datos dinámicos no se comprueban en cuanto a
su integridad.
Debe resaltarse que los términos
"comprende" y "que comprende" cuando se usan en esta
memoria descriptiva, se toman para especificar la presencia de
características, números enteros, y etapas de componentes
especificados; pero el uso de estos términos no excluye la
presencia o adición de uno más de otras características, números
enteros, etapas, componente o grupos de los mismos.
De acuerdo con un aspecto del presente invento,
los anteriores y otros objetos se consiguen en métodos y aparatos
que aseguran la integridad de un objeto de datos dinámicos que
comprende uno o más items de datos dinámicos. El cumplimiento de lo
anterior incluye guardar en una memoria el objeto de datos dinámicos
y los datos dinámicos de autorización. Se generan firmas hash
diferentes para el objeto de datos dinámicos y los datos dinámicos
de autorización, respectivamente, y se guardan también en la
memoria. Cuando un usuario desea modificar el objeto de datos
dinámicos, se toma una determinación en el sentido de si el usuario
está autorizado a modificar el objeto de datos dinámicos. Si el
usuario no está autorizado, entonces se modifican los datos
dinámicos de autorización (por ejemplo, se ha incrementado un
contador de intentos fallados) y se genera una nueva firma hash
para los datos dinámicos de autorización. Estos se vuelven luego a
guardar en la memoria.
Si el usuario está autorizado a modificar el
objeto de datos dinámicos, entonces se permite la modificación.
Luego se vuelve a generar la firma hash correspondiente y se guarda
de nuevo en la memoria. El objeto de datos dinámicos se considera
auténtico solamente si los valores recientemente generados de las
dos firmas hash se corresponden con los que estaban guardados
anteriormente en la memoria.
Los objetos y ventajas del invento se
comprenderán mediante la lectura de la siguiente descripción
detallada en conjunción con los dibujos, en los que:
La Figura 1 es un diagrama de bloques de un
aparato convencional para proteger la integridad de datos estáticos
guardados en una memoria;
La Figura 2 es un diagrama de flujo que
representa una técnica para asegurar que solamente se hacen
modificaciones autorizadas a un objeto de datos dinámicos (en
adelante Md), de acuerdo con una realización del invento;
La Figura 3 es un diagrama de bloques de un
aparato para proteger la integridad de los datos dinámicos guardados
en una memoria de acuerdo con una realización del invento;
La Figura 4 es un diagrama de bloques de un
aparato para proteger la integridad de datos dinámicos guardados en
una memoria de acuerdo con una realización alternativa del invento;
y
La Figura 5 es un diagrama de bloques de un
aparato para proteger la integridad de datos dinámicos guardados en
una memoria de acuerdo con una realización alternativa del
invento.
A continuación se describen las diversas
características del invento con referencia a las figuras, en las
que las partes similares se han identificado con los mismos
caracteres de referencia.
\newpage
Los diversos aspectos del invento se describirán
ahora con más detalle en relación con una serie de realizaciones
ejemplares. Para facilitar la comprensión del invento, muchos
aspectos del invento se han descrito en términos de secuencias de
acciones a realizar por elementos de un sistema de ordenador. Hay
que hacer notar que en cada una de las realizaciones, las diversas
acciones podrían realizarse mediante circuitos especializados (por
ejemplo, puertas lógicas discretas interconectadas para realizar una
función especializada), mediante instrucciones de programa que se
ejecuten por uno o más procesadores, o mediante una combinación de
ambos. Además, el invento se puede considerar adicionalmente a
realizar por completo dentro de cualquier modalidad de portador
legible por ordenador, tal como una memoria de estado sólido, un
disco magnético, un disco óptico o por onda portadora (tal como
ondas portadoras de radiofrecuencia, de audiofrecuencia o de
frecuencia óptica) que contengan un conjunto apropiado de
instrucciones de ordenador que causarían que un procesador realizase
las técnicas descritas en la presente memoria. De ese modo, los
diversos aspectos del invento se podrían realizar de muchas formas
diferentes, y todas estas formas se contemplan dentro del alcance
del invento. Para cada uno de los diversos aspectos del invento, a
cualquiera de dichas formas de realizaciones se podría hacer
referencia como "unidad lógica configurada para" realizar una
acción descrita, o alternativamente como "unidad lógica que"
realiza una acción descrita.
En un aspecto del invento, se proveen métodos y
aparatos que protegen a un sistema contra cambios no autorizados de
datos guardados en una memoria interna del sistema. En particular,
las técnicas del invento solucionan el problema de proporcionar
protección de dos tipos de datos: datos estáticos y datos dinámicos.
Como se ha explicado anteriormente, los datos estáticos son datos
que no deberían cambiarse una vez que se han cargado en el sistema.
(En algunos casos, podría ser conveniente permitir que los datos
estáticos se cambiasen, por ejemplo, en un centro de servicio
autorizado para el dispositivo en cuestión. Esta posibilidad no
altera el hecho de que al usuario del dispositivo no se le permita
nunca alterar los datos). Por contraste, los datos dinámicos son
datos que el usuario del dispositivo podría permitir modificar, pero
solamente si se le ha dado autorización para hacerlo (por ejemplo,
por un operador del sistema). Ambos tipos de datos deben protegerse
contra cambios no autorizados. Sin embargo, el mecanismo de
integridad de datos no impide al usuario modificar datos dinámicos
cuando se ha concedido autorización. Adicionalmente, podría ser
conveniente prevenir que se copien ambos tipos de datos (es decir,
que se clonen) a otros dispositivos.
Para facilitar la explicación de los diversos
principios del invento, supóngase que Ms designa los uno o más
items de datos estáticos que necesitan protección, y que Md designa
los uno o más items de datos dinámicos que necesiten protección.
Debería proveerse un mecanismo de autorización para permitir que se
realizasen modificaciones autorizadas en el Md de datos dinámicos.
En una realización ejemplar de tal mecanismo de autorización, se
requiere al usuario suministrar correctamente un código de acceso
con el fin de que se le permita modificar los datos dinámicos .En
esta realización ejemplar, el código de acceso se guarda en una
forma ilegible en la memoria del sistema como datos estáticos. El
propio código de acceso es una cadena de símbolos elegidos al azar.
Se puede hacer que el código de acceso sea ilegible cifrando sus
datos por medio de un algoritmo de cifrado E usando una clave
secreta Ke. Una elección adecuada para E podría ser el algoritmo de
la norma de cifrado de datos (en adelante DES) en modo triple según
se describe, por ejemplo, en el manual anteriormente mencionado
como referencia de A. Menezes y colaboradores. Sin embargo,
alternativamente se podría usar cualquier otro algoritmo de cifrado
seguro. El tamaño de la clave secreta Ke debería ser suficientemente
largo para prevenir una búsqueda exhaustiva de la clave. Usando una
tecnología correcta, se deberían emplear al menos 64 bits. Para la
DES triple, el tamaño de la clave es de 112 bits. Como el usuario
del sistema puede introducir los códigos de acceso manualmente, el
tamaño (en cuanto al número de símbolos a introducir) podría ser
relativamente pequeño. Por ejemplo, en el caso de datos dinámicos
definidos por las normas GSM, dicho código consistiría en, como
máximo, ocho dígitos decimales.
Debido al tamaño relativamente pequeño del
código de acceso, este método de autorización podría ser vulnerable
a un ataque exhaustivo por aproximaciones sucesivas. Para prevenir
dicha solución de fuerza bruta, es preferible proveer
adicionalmente un mecanismo que limite el número de veces que un
usuario tiene permiso para continuar introduciendo códigos de
acceso incorrectos. Esto se puede conseguir mediante la provisión de
un contador de intentos fallidos que mantenga un seguimiento del
número de entradas insatisfactorias de código de acceso. Supóngase
que "Cuenta de intentos" representa el número de intentos
fallidos para introducir el código de acceso correcto. El sistema
se puede diseñar de tal manera que quede bloqueado cuando el
contador alcanza un límite predeterminado. Dependiendo del nivel
deseado de seguridad diseñado en el sistema, podría o no ser
posible sacar al sistema de este estado bloqueado. Por ejemplo, el
usuario podría verse obligado a llevar al sistema a un centro
especial de servicio en el que se pueda realizar el desbloqueo en
condiciones de seguridad controladas.
A la vista de lo anteriormente expuesto, se
necesita algún mecanismo para asegurar la integridad del Ms de
datos estáticos, no sólo para proteger las partes de los datos
estáticos que sean atribuibles a parámetros definidos del sistema
(por ejemplo, IMEI en GSM) sino también para proteger los elementos
invariables que constituyen el método de autorización de datos
dinámicos, tales como los datos que representan el número máximo de
intentos fallidos de introducción de código de acceso que será
permitido ("límite predeterminado"), así como la implementación
del código de programa del propio método de autorización.
Se puede ver asimismo que se necesita algún
mecanismo para asegurar la integridad de los datos dinámicos, no
solamente para proteger las partes de los datos dinámicos que son
atribuibles a parámetros definidos del sistema (por ejemplo,
indicación de estado de si un teléfono GSM está enclavado en una red
de operador específico o no), sino también para proteger los
aspectos del mecanismo de autorización que cambien a través del
tiempo, tales como el contador de intentos fallidos "Cuenta de
intentos", que se debe ajustar (por ejemplo, incrementar) con
cada intento fallido de introducción de código de acceso. Si la
cuenta variable de intentos no se protegiese, un usuario no
escrupuloso podría, con relativa facilidad, poner a cero el
contador, obteniendo de ese modo la capacidad de introducir un
número ilimitado de códigos de prueba. Al contador de intentos
fallidos (Cuenta de intentos fallidos) y a todas las demás
variables guardadas en la memoria expuesta que cambian con un
intento de acceso se hace referencia colectivamente en la presente
memoria como datos dinámicos de autorización, y se les designa
Md_aut.
La integridad de los objetos de datos Ms, Md y
Md_aut. se puede conseguir de la manera siguiente. Tratando en
primer lugar con el objeto de datos Ms, al objeto de datos Ms se
asocia un valor hash estático auditado, o firma, Ss. El valor
estático auditado Ss se calcula mediante el uso de un algoritmo
hash, designado Hs, sobre Ms (o al menos una parte de él). El valor
de Ss se guarda en una memoria no volátil. En algunas realizaciones,
el valor Ss se podría guardar junto con el objeto de datos Ms en
una memoria flash de programa durante el proceso de fabricación. En
realizaciones alternativas, y como se asumirá en el resto de esta
descripción, los objetos de datos Ms y Ss se guardan en la EEPROM.
Esto tiene la ventaja de hacer posible instalar el objeto de datos
protegido Ms después de haber terminado el proceso de
fabricación.
Para impedir que el usuario realice las mismas
operaciones, el circuito de tratamiento del sistema preferiblemente
contiene un mecanismo de autenticación, tal como el descrito en la
patente de EE.UU. 6.026.293 anteriormente identificada en
combinación con, por ejemplo, el algoritmo descrito en la patente de
EE.UU. Nº 4.748.668. Sin embargo, de acuerdo con un aspecto del
invento, el mecanismo de autenticación se aplica no sólo para el fin
de proveer acceso controlado al contenido de la memoria (como se
describe en la patente de EE.UU. Nº 6.026.293), sino también para
controlar la capacidad de ejecutar el algoritmo hash Hs.
Como se ha mencionado anteriormente, podría
también ser deseable impedir el copiado (es decir, la clonación) de
datos de un dispositivo a otro. Para desarrollar este aspecto de
protección, el valor de Ss calculado por el algoritmo Hs a partir
de los datos de objeto Ms se hace además que sea una función de un
parámetro estático que preferiblemente es un número de serie de
dispositivo (designado como NºSer. en la presente memoria) que se ha
guardado en el circuito de tratamiento de la memoria flash. En
realizaciones preferidas, a cada realización de un sistema se le da
un único valor NºSer. En realizaciones alternativas, a números
limitados de realizaciones de un sistema se les podría asignar el
mismo valor NºSer., con diferentes lotes de sistemas siendo
asignados valores únicos de NºSer. El uso de un valor NºSer. como
uno de los parámetros de entrada al algoritmo hash Hs resulta en que
es virtualmente imposible para los datos protegidos de un sistema
que sean reutilizados en, o clonados a, otro sistema similar. Debe
hacerse notar que este método de obtener protección de integridad
de datos no requiere el almacenamiento en memoria de una clave
secreta. Esto es una gran ventaja, puesto que guardar claves
secretas de una manera segura requiere técnicas caras para realizar
a prueba de manipulaciones indebidas.
Volviendo ahora a la protección de datos
dinámicos, se usan dos valores hash dinámicos auditados. Un primer
valor hash dinámico auditado, designado Sd, protege al objeto de
datos dinámicos Md y se calcula mediante un primer algoritmo hash
dinámico designado Hd. Un segundo valor hash dinámico auditado,
designado S'd, protege los datos dinámicos de autorización (Md_aut.)
y se calcula mediante un segundo algoritmo hash dinámico designado
Hd_aut. Es posible usar diferentes algoritmos hash para Hd y Hd_aut.
Sin embargo, en otras realizaciones podría ser más eficaz usar
algoritmos idénticos (Hd = Hd_aut.) en tanto que generen diferentes
valores de firma. Este último resultado se podría lograr usando
diferentes parámetros de entrada para generar el segundo valor hash
dinámico auditado (S'd) que los usados para generar el primer valor
hash dinámico auditado (Sd). Por ejemplo, el primer valor hash
dinámico auditado se podría generar mediante la determinación de
Sd = Hd (Md), mientras que el segundo valor hash dinámico auditado
se podría generar determinando S'd = Hd (Md_aut.). Este aspecto del
invento se ilustrará adicionalmente más adelante en relación con un
número de realizaciones ejemplares.
El objeto de tener dos valores hash auditados
claramente diferentes es el siguiente. Cada vez que un usuario
trata de conseguir acceso a la capacidad de modificar los datos
dinámicos Md no combinados, necesita introducir el código de acceso
requerido. Sin embargo, antes de que se pueda emplear el mecanismo
de autorización, debe confirmarse primero la integridad de los
valores de Md y Md_aut. (por ejemplo, Cuenta de intentos). Si Md y
Md_aut. pasan esta comprobación pero el usuario introduce el código
de acceso erróneo, se ajustará el objeto de datos Md_aut. (por
ejemplo, se podría incrementar la variable Cuentas de intentos).
Como el segundo valor hash auditado dinámico S'd es una función de
Md_aut., se debe volver a calcular e introducir de nuevo en la
memoria no volátil. El primer valor hash auditado dinámico Sd no
tiene que recalcularse si no es una función del objeto de datos
dinámicos Md_aut.
Si, alternativamente, Md y Md_aut. pasan la
comprobación de integridad y el usuario introduce el código de
acceso correcto, entonces el usuario podría cambiar los datos
dinámicos que constituyen Md. Como el primer valor hash auditado
dinámico Sd es una función de Md, se debe recalcular. Como se verá
más adelante, en algunas realizaciones el segundo valor hash
auditado dinámico S'd es también una función de Md, y en estos casos
se debe recalcular en este momento.
Un usuario malicioso que desee cambiar Md sin
conocer el código de acceso podría intentar burlar el mecanismo de
integridad haciendo repetidos intentos de acceso y registrando
cualesquiera cambios que ocurran en los datos dinámicos Md, en los
datos dinámicos de autorización Md_aut. y en sus valores hash
auditados dinámicos asociados (Sd y S'd). Con este conocimiento,
este usuario podría ser capaz de aprender las propiedades del
mecanismo de protección. Sin embargo, como máximo este usuario verá
propiedades relacionadas con la generación del segundo valor hash
auditado dinámico, S'd, pero no verá cualquier cambio en el primer
valor hash auditado dinámico, Sd, puesto que esto no puede
producirse hasta que no se haya introducido el código de acceso
correcto. (Se supone que un usuario que introduce un código de
acceso correcto está autorizado, y por tanto no gana nada
aprendiendo cómo se ha cambiado el primer valor hash auditado
dinámico Sd). Este aspecto del invento se añade a la seguridad del
mecanismo de protección y es la razón de tener valores hash
auditados tanto para el objeto de datos dinámicos, Md, como para los
datos dinámicos de autorización, Md_aut.
La Figura 2 es un diagrama de flujo que
representa una técnica para asegurar que solamente se hacen
modificaciones autorizadas a un objeto de datos dinámicos, Md, de
acuerdo con una realización del invento. En esta realización
ejemplar, no se permitirá modificación alguna si ya se ha hecho un
cambio no autorizado al objeto de datos dinámicos, por lo que lo
primero que se hace es generar valores esperados de los valores hash
auditados dinámicos primero y segundo y comparar éstos con los
guardados, Sd y S'd respectivamente (etapa 201). Si cualquiera de
los dos valores esperados no se corresponde con el guardado
correspondiente (camino "NO" de salida del bloque de decisión
203) se declara una modificación no autorizada y se realizan las
etapas apropiadas, tales como enclavar el sistema (etapa 205).
Si, alternativamente, ambos valores hash
auditados dinámicos coinciden con los correspondientes valores
guardados (camino "SÍ" de salida del bloque de decisión 203),
entonces tanto el objeto de datos dinámicos Md como los datos
dinámicos de autorización, Md_aut. (por ejemplo, la cuenta de
intentos) han pasado la comprobación de integridad, y se permite
seguir con la rutina de modificación.
A continuación, la rutina determina si el
usuario está autorizado a hacer una modificación. En esta
realización, esto incluye determinar si el número de intentos
fallidos realizados anteriormente para obtener autorización para
modificar el objeto de datos dinámicos excede de un límite
predeterminado (bloque de decisión 207). Así, los datos dinámicos
de autorización, Md_aut., en esta realización comprenden un valor de
contador, Cuenta de intentos. Si el valor actual de "Cuenta de
intentos" es mayor que el límite predeterminado (camino "SÍ"
de salida del bloque de decisión 207), no se permitirán más
intentos, y el sistema se coloca en un estado de enclavamiento
(etapa 205).
Si el número de intentos fallidos no excede del
límite predeterminado (camino "NO" de salida del bloque de
decisión 207), la rutina de autorización continúa mediante la
determinación de si el usuario está autorizado a hacer una
modificación (bloque de decisión 209). Esto podría hacerse en una
serie de maneras. Por ejemplo, según se ha descrito anteriormente,
el usuario podría tener que suministrar un código de acceso que se
compare con un valor previamente guardado. Sin embargo, la técnica
particular de autorización usada no es un aspecto esencial del
invento, y se podrían usar otras como alternativas. Por ejemplo, se
podría requerir al usuario que insertase una tarjeta de clave válida
u otro dispositivo de seguridad del hardware. En otras alternativas,
se podría comprobar algún atributo físico del usuario, tal como su
huella dactilar, con el fin de establecer si el usuario es la
persona autorizada.
Si el usuario no pasa la comprobación de
autorización (camino "NO" de salida del bloque de decisión
209), se ajustan los datos dinámicos de autorización Md_aut., lo
que en este caso significa incrementar el contador de intentos
fallidos, "Cuenta de intentos" (etapa 211), de manera que
indique que se ha realizado todavía otro intento fallido. Como el
segundo valor hash auditado dinámico S'd es una función de la cuenta
de intentos fallidos, también se recalcula y se vuelve a guardar en
la memoria (etapa 213).
Si el usuario pasa la comprobación de
autorización (camino "SÍ" de salida del bloque de decisión
209), entonces se permite la modificación del objeto de datos
dinámicos Md (etapa 215). Siguiendo esta modificación, el primer
valor hash auditado dinámico Sd se recalcula y vuelve a guardar en
la memoria (etapa 217), porque es una función del objeto de datos
dinámicos Md. En algunas realizaciones, es ventajoso que segundo
valor hash auditado dinámico, S'd, sea una función no sólo de los
datos dinámicos de autorización, sino también del objeto de datos
dinámicos Md. Esto podría ser útil, por ejemplo, para hacer más
difícil que un usuario malicioso determine el establecimiento de
correspondencia entre los datos dinámicos de autorización y el
segundo valor hash auditado dinámico. En tales casos, o si se
ajusta la "Cuenta de intentos" (por ejemplo, repuesta a un
valor inicial) siempre que se haga una modificación de autorización
al objeto de datos dinámicos Md, el segundo valor hash auditado
dinámico S'd necesita también recalcularse y volverse a guardar en
la memoria (etapa opcional 219).
La técnica anteriormente descrita es sólo una de
muchas realizaciones posibles, todas las cuales están de acuerdo
con el invento. Por ejemplo, no es esencial que la integridad del
objeto de datos dinámicos Md y de los datos dinámicos de
autorización Md_aut. se comprueben antes de determinar si el usuario
está autorizado a hacer la modificación. Se pueden crear
realizaciones alternativas en las que la comprobación de integridad
se lleva a cabo en otros instantes antes de realizar la modificación
deseada del usuario, tal como después que el propio usuario ha
demostrado que está autorizado, o después que se ha averiguado que
la "Cuenta de intentos" no ha llegado a su límite
predeterminado pero antes de que el propio usuario haya demostrado
que está autorizado.
Las técnicas anteriormente descritas se pueden
llevar a cabo en un número de formas diferentes. A continuación se
describe una primera realización en relación con el diagrama de
bloques de la Figura 3. En este sistema, un ASIC que incluye
circuitos de tratamiento 300 está interconectado con una memoria
flash 301 de programa, una RAM 303 y una EEPROM 305 por medio de un
bus 307 de sistema. Los circuitos de tratamiento 300 incluyen un
microprocesador 309, una unidad lógica 311 de temporizador y
controlador, y dos formas de memoria, PSRAM 313 E IROM 315. La IROM
315 guarda el código boot 317 así como otros datos que se describen
más adelante con mayor detalle.
\newpage
La exposición se centrará ahora en aquellos
aspectos de esta realización que están asociados con asegurar la
integridad de los datos estáticos, Ms, que se guardan junto con su
valor hash auditado estático, Ss, en la EEPROM 305. Como se ha
explicado antes, el valor hash auditado estático, Ss, se genera
mediante un algoritmo hash estático, Hs, cuyo código de programa
319 se guarda en la IROM 315. El valor del valor hash auditado
estático Ss que se ha guardado en la EEPROM 305 se podría generar
fuera del sistema antes de transferir los datos estáticos, Ms, a la
EEPROM 305, o alternativamente se podría generar mediante los
circuitos de tratamiento 300 cuando el objeto de datos estáticos Ms
se transfiere primero a la EEPROM 305. En éste último caso, el
acceso a la capacidad de ejecutar el código 319 de programa para el
algoritmo hash Hs y de tener su valor calculado guardado en la
memoria no volátil (por ejemplo, la EEPROM 305) fuera de los
circuitos de tratamiento 300 se controla preferiblemente mediante
un procedimiento de autenticación. Para este fin se podría usar un
esquema de cifrado de clave pública/privada. El código 323 de
programa y la clave pública 321 para el procedimiento de
autenticación se guardan en la IROM 315 de los circuitos de
tratamiento 300.
Según se ha explicado anteriormente, el valor
del código hash auditado estático Ss, calculado mediante el
algoritmo hash estático Hs, es una función no sólo de qué algoritmo
hash estático se ha empleado, sino también de los valores de los
parámetros de entrada. Es posible calcular Ss estrictamente como una
función de los datos estáticos, Ms. Sin embargo, en esta realización
es preferible proteger también contra clonación. Para conseguir
también esta protección, los parámetros de entrada al algoritmo hash
estático Hs son los datos estáticos Ms y un único (o casi único)
parámetro estático, tal como el parámetro Número de serie (en
adelante NºSer). anteriormente mencionado. Esto podría expresarse
formalmente como
Ss = Hs (Ms,
NºSer)
El valor del NºSer. se podría guardar en la
memoria flash 301 de programa en el momento en que se fabrica la
memoria flash 301 de programa, y debería hacerse de tal manera que
no pueda cambiarse.
Una vez que el valor hash auditado estático Ss
se ha guardado en la EEPROM 305, se ejecuta el código 319 de
programa para el algoritmo hash estático Hs siempre que se desee
asegurar que los datos estáticos Ms guardados en la EEPROM 305 no
se han cambiado. Esto podría, por ejemplo, realizarse periódicamente
bajo la dirección de la unidad lógica 311 de temporizador y
controlador. Los datos estáticos Ms y el NºSer. se suministran como
entradas al algoritmo hash estático Hs. El valor hash auditado
estático recientemente generado, que nunca aparece fuera de los
circuitos de tratamiento 300, se compara entonces con el valor hash
auditado estático Ss guardado en la EEPROM 305. Cualquier falta de
coincidencia indica que se han cambiado los datos estáticos Ms.
La exposición se concentra ahora en los aspectos
de esta realización que están implicados en asegurar la integridad
de los datos dinámicos Md. El objeto de datos dinámicos Md se guarda
en la EEPROM 305 junto con los datos dinámicos de autorización
(que, en este caso, es un contador de intentos fallidos, "Cuenta
de intentos"), y con los valores hash auditados dinámicos primero
y segundo Sd y S'd. Un único algoritmo hash dinámico Hd, cuya
implementación 325 de código de programa se guarda en la IROM 315,
calcula los valores hash auditados dinámicos esperados primero o
segundo, Sd ó S'd, dependiendo de qué parámetros de entrada
reciba.
Los valores iniciales de los valores hash
auditados dinámicos primero y segundo, Sd y S'd, se podrían calcular
o bien fuera del sistema antes de transferir los datos dinámicos Md
a la memoria del sistema (por ejemplo, a la EEPROM 305), o
alternativamente dentro de los circuitos de tratamiento 300 cuando
el objeto de datos dinámicos Md se transfiere a la memoria del
sistema, pero después que ya se hayan guardado los objetos de datos
estáticos Ms y Md.
El valor del primer valor hash auditado
dinámico, Sd, calculado mediante el algoritmo hash dinámico Hd, es
una función del objeto de datos dinámicos Md, pero preferiblemente
no es una función del valor del contador de datos fallidos,
"Cuenta de intentos". En una realización preferida, el primer
valor hash auditado dinámico Sd depende del propio Hd y de los
valores de Md y Ss. Esto se podría expresar formalmente como:
Sd =
Hd(Md,
Ss)
Se observará que, como Ss es en sí una función
de NºSer., Sd es también una función de NºSer.
El valor del segundo valor hash auditado
dinámico, S'd, se calcula similarmente mediante el algoritmo hash
dinámico Hd como una función al menos de los datos dinámicos de
autorización Md_aut., que en este caso es el valor del contador de
intentos fallidos "Cuenta de intentos". Sin embargo, con el fin
de hacer que el esquema de protección sea más difícil de gestionar
en sentido inverso, el segundo valor hash auditado dinámico S'd
preferiblemente depende del mismo Hd y del valor de Md, NºSer. y
"Cuentas de intentos". Esto podría expresarse formalmente
como
S'd =
Hd(Md, NºSer., "Cuentas de
intentos")
Para ser declarados válidos, los datos dinámicos
Md deben pasar dos pruebas. En una de ellas, se comprueban los
datos guardados mediante los circuitos de tratamiento 300
calculando, en instantes controlados dados, un primer valor hash
esperado. Este valor calculado, que nunca se presenta fuera de los
circuitos de tratamiento 300, se compara con el primer valor hash
auditado dinámico Sd que se ha guardado anteriormente en la EEPROM
305. Si los dos valores difieren entre sí, entonces se declaran los
datos dinámicos Md como que se han modificado.
En una segunda prueba, los datos guardados se
comprueban mediante los circuitos de tratamiento 300 mediante el
cálculo, en instantes controlados dados, de un segundo valor hash
auditado dinámico esperado Este valor calculado, que tampoco se
presenta nunca fuera de los circuitos de tratamiento 300, se compara
con el segundo valor hash auditado dinámico S'd que se ha guardado
anteriormente en la EEPROM 305. De nuevo, si los dos valores
difieren entre sí, los datos dinámicos Md se declaran como
modificados. Debe hacerse notar que, incluso si el segundo valor
hash auditado dinámico S'd no es una función del objeto de datos
dinámicos Md, una falta de coincidencia indica que los datos
dinámicos de autorización (por ejemplo, el valor "Cuenta de
intentos" del contador de intentos fallidos) se han manipulado
indebidamente. Por consiguiente, se debe suponer también que el
objeto de datos dinámicos Md se ha modificado sin autorización.
Se considera que el objeto de datos dinámicos Md
es auténtico (es decir, que no se ha modificado sin autorización)
solamente si ambas pruebas se han pasado de forma satisfactoria. Si
el objeto de datos dinámicos Md se ha autenticado, el usuario puede
conseguir acceso a la capacidad de modificarlo completando de modo
satisfactorio el procedimiento de acceso. En la realización
ejemplar descrita en la presente memoria, el procedimiento de
acceso implica que el usuario introduzca un código de acceso a
través de un dispositivo de entrada tal como un teclado numérico
(no mostrado). El código de acceso esperado 327 se guarda en forma
cifrada en la EEPROM 305 y luego se descifra dentro de los
circuitos de tratamiento 300 usando una clave secreta Kc 329 y un
algoritmo de descifrado cuyo código 331 de programa está guardado
en la IROM 315.
Si el usuario completa de forma satisfactoria el
procedimiento de acceso y modifica el objeto de datos dinámicos Md,
entonces se ejecuta el algoritmo hash dinámico 325 para calcular
nuevos valores para los valores hash auditados dinámicos primero y
segundo Sd y S'd. (En las realizaciones en las que el segundo valor
hash auditado dinámico no es función del objeto de datos dinámicos
Md, solamente es necesario calcular un nuevo valor para el primer
valor hash auditado dinámico si los datos dinámicos de autorización
(por ejemplo, el valor "Cuentas de intentos" del contador de
intentos fallidos no se ha cambiado también). Estos nuevos valores
se guardan luego en la EEPROM 305 para usarlos durante una próxima
comprobación de integridad de datos dinámicos. Como se ha mencionado
anteriormente, se considera que la presentación de estos valores
sobre el bus 307 es segura, porque el usuario acaba de demostrar que
está autorizado y que por tanto no actúa con malicia.
Si el usuario falla en un intento de acceso, es
necesario actualizar los datos dinámicos de autorización (en este
caso el contador de intentos fallidos, "Cuenta de intentos"),
que están guardados en la EEPROM 305. Tras realizar esta
actualización, el valor guardado del segundo valor hash auditado
dinámico S'd ya no será válido, puesto que es función de "Cuenta
de intentos". De acuerdo con ello, se debe ejecutar el algoritmo
hash dinámico Hd para recalcular un nuevo valor para el segundo
valor hash auditado dinámico S'd. Este valor nuevo se guarda luego
en la EEPROM 305. Aunque al hacer esto se coloca el segundo valor
hash auditado dinámico S'd en el bus 307 y por tanto se tiene la
posibilidad de exponer el segundo valor hash auditado dinámico S'd a
un usuario malicioso, esto no aportará al usuario información
suficiente para determinar cómo burlar el mecanismo de comprobación
de integridad de datos dinámicos, porque todavía carecerá de
información que indique cómo se puede calcular el primer valor hash
auditado dinámico Sd. Como ambos valores hash auditados primero y
segundo son necesarios para completar satisfactoriamente el
mecanismo de comprobación de la integridad de los datos dinámicos,
el sistema es seguro.
En el diagrama de bloques de la Figura 4 se ha
ilustrado una realización alternativa del invento. En esta
realización, se evitan las costosas disposiciones de seguridad
relacionadas con la disposición de una clave secreta Kc usando en
su lugar un sistema criptográfico público/privado para la protección
del código de acceso. Esta realización difiere de la mostrada en
la Figura 3 en que una segunda clave pública 401 está guardada en la
IROM 215. Es la naturaleza pública de la segunda clave pública 401
la que permite que se guarde en la IROM 215. Por contraste, el
requisito para mantener la privacidad de la clave secreta Kc 329 de
la Figura 3 hace necesario que esta clave se guarde con seguridad
contra una lectura de salida no deseada.
La segunda clave pública 401 se puede hacer
pública sin comprometer la clave secreta que se corresponde con
ella, que la usa el fabricante. Por tanto, en esta realización, es
posible evitar las técnicas caras que de otro modo se necesitarían
para guardar con seguridad las claves secretas.
Un sistema y un método tal como los descritos en
la patente de EE.UU. Nº 4.405.829 se podrían usar para efectuar el
sistema de acceso seguro para la realización de la Figura 4. La
patente de EE.UU. Nº 4.405.829 se incorpora por ello como
referencia en la presente memoria en su totalidad.
Las realizaciones descritas anteriormente pueden
implicar alguna inversión adicional en su implementación, porque
requieren el uso de circuitos de tratamiento sin normalizar (por
ejemplo, circuitos que incluyen no sólo un microprocesador
estándar, sino también códigos de programa y parámetros particulares
guardados en la IROM del ASIC). Este coste se evita en todavía otra
realización alternativa, que se ilustra en el diagrama de bloques
de la Figura 5. En esta realización, todos los parámetros y códigos
de programa asociados con los mecanismos de integridad de los datos
estáticos y dinámicos se guardan en la memoria flash de programa,
501 en lugar de en la IROM 315. Con el fin de eliminar la
posibilidad de que un usuario malicioso simplemente reprograme
estos datos en la memoria flash de programa, debería usarse una
memoria flash de programa cuyo contenido se pueda congelar o
enclavar parcialmente (es decir, convertirlo en no reprogramable)
después de programar. En la Figura 5, este código de programa y
los parámetros asociados se muestran guardados en una parte
enclavable 503 de la memoria flash 501 de programa.
El invento se ha descrito con referencia a una
realización particular. Sin embargo, a los expertos en la técnica
les resultará evidente que es posible realizar el invento en formas
específicas distintas a la realización preferida descrita
anteriormente. Esto podría hacerse sin apartarse del espíritu del
invento. La realización preferida es meramente ilustrativa y de
ninguna manera debe considerarse restrictiva. El alcance del
invento se da mediante las reivindicaciones adjuntas como apéndice,
más que por la descripción precedente, y las variaciones y
equivalencias que entren en el alcance de las reivindicaciones están
destinadas a abarcarse en las mismas.
Claims (36)
1. Un método de asegurar la integridad de un
objeto de datos dinámicos que comprende uno o más items de datos
dinámicos, cuyo método comprende:
guardar en una memoria el objeto de datos
dinámicos;
guardar en la memoria los datos dinámicos de
autorización;
usar un primer algoritmo hash dinámico para
generar un primer valor inicial hash auditado dinámico a partir de
uno o más parámetros que incluyen el objeto de datos dinámicos;
usar un segundo algoritmo hash dinámico para
generar un segundo valor inicial hash auditado dinámico a partir de
uno o más parámetros que incluyen los datos dinámicos de
autorización;
guardar en la memoria el primer valor inicial
hash auditado dinámico;
guardar en la memoria el segundo valor inicial
hash auditado dinámico;
determinar si un usuario está autorizado a
modificar el objeto de datos dinámicos;
si el usuario no está autorizado a modificar el
objeto de datos dinámicos, entonces:
ajustar los datos dinámicos de autorización;
guardar en la memoria los datos dinámicos de
autorización ajustados;
usar el segundo algoritmo hash dinámico para
generar un segundo valor hash auditado dinámico ajustado a partir
de uno o más parámetros que incluyen los datos dinámicos de
autorización ajustados; y
guardar en la memoria el segundo valor hash
auditado dinámico ajustado; y
si el usuario está autorizado a modificar el
objeto de datos dinámicos, entonces:
permitir al usuario modificar el objeto de datos
dinámicos;
guardar en la memoria el objeto de datos
dinámicos modificado;
usar el primer algoritmo hash dinámico para
generar un primer valor hash auditado dinámico ajustado a partir de
uno o más parámetros que incluyen el objeto de datos dinámicos
modificado; y
guardar en la memoria el primer valor hash
auditado dinámico ajustado.
2. El método de la reivindicación 1, en el que
los uno o más parámetros a partir de los cuales se genera el primer
valor hash auditado dinámico incluyen además un parámetro estático
relacionado con el objeto de datos dinámicos; y
que comprende además:
si el usuario está autorizado para modificar el
objeto de datos dinámicos, entonces:
usar el segundo algoritmo hash dinámico para
generar un segundo valor hash auditado dinámico ajustado a partir de
los uno o más parámetros que incluyen el objeto de datos dinámicos
modificado, los datos dinámicos de autorización y el parámetro
estático; y
guardar en la memoria el segundo valor hash
auditado dinámico ajustado.
3. El método de la reivindicación 1, que
comprende además:
antes de permitir al usuario modificar el objeto
de datos dinámicos, tomar una determinación de si el objeto de datos
dinámicos es el producto de una modificación no autorizada, en el
que la determinación se toma:
usando el primer algoritmo hash dinámico para
generar un primer valor hash auditado dinámico esperado a partir de
los uno o más parámetros que incluyen el objeto de datos
dinámicos;
usando el segundo algoritmo hash dinámico para
generar un segundo valor hash auditado dinámico esperado a partir
de los uno o más parámetros que incluyen los datos dinámicos de
autorización;
comparando el primer valor hash auditado
dinámico esperado con el primer valor inicial hash auditado dinámico
guardado en la memoria e indicar que el objeto de datos dinámicos
es el producto de una modificación no autorizada si el primer valor
hash auditado dinámico esperado no se corresponde con el primer
valor inicial hash auditado dinámico que se ha guardado en la
memoria; y
comparando el segundo valor hash auditado
dinámico esperado con el segundo valor inicial hash auditado
dinámico que se ha guardado en la memoria e indicar que el objeto
de datos dinámicos es el producto de una modificación no autorizada
si el segundo valor hash auditado dinámico esperado no coincide con
el segundo valor inicial hash auditado dinámico que se ha guardado
en la memoria.
4. El método de la reivindicación 3, en el que
la determinación de si el objeto de datos dinámicos es el producto
de una modificación no autorizada se hace antes de determinar si el
usuario está autorizado a modificar el objeto de datos
dinámicos.
5. El método de la reivindicación 1, en el que
el primer algoritmo hash dinámico es el mismo que el segundo
algoritmo hash dinámico.
6. El método de la reivindicación 1, en el que
los datos dinámicos de autorización incluyen un valor de contador
de intentos fallidos que representa cuántos intentos fallidos se han
hecho para obtener autorización para modificar el objeto de datos
dinámicos.
7. El método de la reivindicación 1, en el
que:
el método se implementa en un primer
dispositivo; y
en el que los uno o más parámetros a partir de
los cuales se genera el primer valor hash auditado dinámico incluyen
además un parámetro estático.
8. El método de la reivindicación 7, en el que
el parámetro estático es un número de serie que distingue el primer
dispositivo de un segundo dispositivo.
9. El método de la reivindicación 8, en el que
los uno o más parámetros a partir de los que se genera el segundo
valor hash auditado dinámico incluyen además el parámetro
estático.
10. El método de la reivindicación 1, en el
que:
el método se implementa en un primer
dispositivo; y
en el que los uno o más parámetros a partir de
los cuales se ha generado el segundo valor hash auditado dinámico
incluyen un parámetro estático.
11. El método de la reivindicación 10, en el
que el parámetro estático es un número de serie que distingue el
primer dispositivo de un segundo dispositivo.
12. El método de la reivindicación 1, en el que
los uno o más parámetros a partir de los cuales se genera el primer
valor hash auditado dinámico incluyen además un valor hash auditado
estático que se ha generado como una función de un objeto de datos
estáticos mediante un algoritmo hash estático.
13. El método de la reivindicación 12, en el
que el algoritmo hash estático es el mismo que el primer algoritmo
hash dinámico.
14. El método de la reivindicación 13, en el que
el primer algoritmo hash dinámico es el mismo que el segundo
algoritmo hash dinámico.
15. El método de la reivindicación 1, en el que
la etapa de determinar si el usuario está autorizado a modificar el
objeto de datos dinámicos comprende:
recibir un código de acceso del usuario; y
determinar si el código de acceso es un código
de acceso autorizado.
16. El método de la reivindicación 15, en el que
la etapa de determinar si el código de acceso es el código de
acceso autorizado comprende:
recuperar de una memoria un código de acceso
autorizado cifrado;
descifrar el código de acceso autorizado
cifrado; y
comparar el código de acceso autorizado
descifrado con el código de acceso recibido del usuario.
17. El método de la reivindicación 15, en el
que la etapa de determinar si el código de acceso es el código de
acceso autorizado comprende:
recuperar de una memoria un código de acceso
autorizado cifrado;
cifrar el código de acceso recibido del usuario;
y
comparar el código de acceso autorizado cifrado
que se ha recuperado con el código de acceso cifrado recibido del
usuario.
18. Un método de determinar si un objeto de
datos dinámicos que está guardado en una memoria es el producto de
una modificación no autorizada, cuyo método comprende:
recuperar de la memoria un primer valor inicial
hash auditado dinámico;
recuperar de la memoria un segundo valor inicial
hash auditado dinámico;
usar un primer algoritmo hash dinámico para
generar un primer valor hash auditado dinámico esperado a partir de
uno o más parámetros que incluyen el objeto de datos dinámicos;
usar un segundo algoritmo hash dinámico para
generar un segundo valor hash auditado dinámico esperado a partir
de uno o más parámetros que incluyen datos dinámicos de
autorización, que cambia con cada intento de cambio no autorizado
del objeto de datos dinámicos;
comparar el primer valor hash auditado dinámico
esperado con el primer valor inicial hash auditado dinámico que se
ha recuperado de la memoria, e indicar que el objeto de datos
dinámicos es el producto de una modificación no autorizada si el
primer valor hash auditado dinámico esperado no se corresponde con
el primer valor inicial hash auditado dinámico que se ha recuperado
de la memoria; y
comparar el segundo valor hash auditado dinámico
esperado con el segundo valor inicial hash auditado dinámico que se
ha recuperado de la memoria e indicar que el objeto de datos
dinámicos es el producto de una modificación no autorizada si el
segundo valor hash auditado dinámico esperado no se corresponde con
el segundo valor inicial hash auditado dinámico que se ha recuperado
de la memoria.
19. Un aparato para asegurar la integridad de
un objeto de datos dinámicos que comprende uno o más items de datos
dinámicos, cuyo aparato comprende:
una unidad lógica que guarda en una memoria el
objeto de datos dinámicos;
una unidad lógica que guarda en la memoria los
datos dinámicos de autorización;
una unidad lógica que usa un primer algoritmo
hash dinámico para generar un primer valor inicial hash auditado
dinámico a partir de uno o más parámetros que incluyen el objeto de
datos dinámicos;
una unidad lógica que usa un segundo algoritmo
hash dinámico para generar un segundo valor inicial hash auditado
dinámico a partir de uno o más parámetros que incluyen los datos
dinámicos de autorización;
una unidad lógica que guarda en la memoria el
primer valor inicial hash auditado dinámico;
una unidad lógica que guarda en la memoria el
segundo valor hash inicial auditado dinámico;
una unidad lógica que determina si un usuario
está autorizado para modificar el objeto de datos dinámicos;
una unidad lógica que, si el usuario no está
autorizado a modificar el objeto de datos dinámicos, realiza la
siguientes etapas:
- ajustar los datos dinámicos de autorización;
- guardar en la memoria los datos dinámicos de autorización ajustados;
- usar el segundo algoritmo hash dinámico para generar un segundo valor hash auditado dinámico ajustado a partir de uno o más parámetros que incluyen los datos dinámicos de autorización ajustados; y
- guardar en la memoria el segundo valor hash auditado dinámico ajustado; y
\newpage
una unidad lógica que, si el usuario está
autorizado para modificar el objeto de datos dinámicos, realiza las
siguientes etapas:
- permitir que el usuario modifique el objeto de datos dinámicos;
- guardar en la memoria el objeto de datos dinámicos modificado;
- usar el primer algoritmo hash dinámico para generar un primer valor hash auditado dinámico ajustado a partir de uno o más parámetros que incluyen el objeto de datos dinámicos modificado; y
- guardar en la memoria el primer valor hash auditado dinámico ajustado.
20. El aparato de la reivindicación 19, en el
que los uno o más parámetros a partir de los cuales se genera el
primer valor hash auditado dinámico incluyen además un parámetro
estático relacionado con el objeto de datos dinámicos; y
que comprende además:
una unidad lógica que, si el usuario está
autorizado a modificar el objeto de datos dinámicos, realiza lo
siguiente:
- usar el segundo algoritmo hash dinámico para generar un segundo valor hash auditado dinámico ajustado a partir de los uno o más parámetros que incluyen el objeto de datos dinámicos modificado, los datos dinámicos de autorización y el parámetro estático; y
- guardar en la memoria el segundo valor hash auditado dinámico ajustado.
21. El aparato de la reivindicación 19,
que comprende además:
una unidad lógica que funciona antes de permitir
al usuario modificar el objeto de datos dinámicos, para hacer una
determinación de si el objeto de datos dinámicos es el producto de
una modificación no autorizada, en el que la determinación se
hace:
- usando el primer algoritmo hash dinámico para generar un primer valor hash auditado dinámico esperado a partir de los uno o más parámetros que incluyen el objeto de datos dinámicos;
- usando el segundo algoritmo hash dinámico para generar un segundo valor hash auditado dinámico esperado a partir de los uno o más parámetros que incluyen los datos dinámicos de autorización;
comparando el primer valor hash auditado
dinámico esperado con el primer valor inicial hash auditado dinámico
que se ha guardado en la memoria y que indica que el objeto de
datos dinámicos es el producto de una modificación no autorizada si
el primer valor hash auditado dinámico esperado no se corresponde
con el primer valor inicial hash auditado dinámico que se ha
guardado en la memoria; y
comparando el segundo valor hash auditado
dinámico esperado con el segundo valor inicial hash auditado
dinámico que se ha guardado en la memoria y que indica que el
objeto de datos dinámicos es el producto de una modificación no
autorizada si el segundo valor hash auditado dinámico esperado no se
corresponde con el segundo valor inicial hash auditado dinámico que
se ha guardado en la memoria.
22. El aparato de la reivindicación 21, en el
que la determinación de si el objeto de datos dinámicos es el
producto de una modificación no autorizada se hace antes de
determinar si el usuario está autorizado para modificar el objeto de
datos dinámicos.
23. El aparato de la reivindicación 19, en el
que el primer algoritmo hash dinámico es el mismo que el segundo
algoritmo hash dinámico.
24. El aparato de la reivindicación 19, en el
que los datos dinámicos de autorización incluyen un valor de
contador de intentos fallidos que representa cuántos intentos
fallidos se han hecho para obtener autorización para modificar el
objeto de datos dinámicos.
25. El aparato de la reivindicación 19, en
el que:
el aparato se implementa en un primer
dispositivo; y
en el que los uno o más parámetros a partir de
los cuales se genera el primer valor hash auditado dinámico incluyen
además un parámetro estático.
26. El aparato de la reivindicación 25, en el
que el parámetro estático es un número de serie que distingue el
primer dispositivo de un segundo dispositivo.
27. El aparato de la reivindicación 26, en el
que los uno o más parámetros a partir de los cuales se genera el
segundo valor hash auditado dinámico incluyen además el parámetro
estático.
28. El aparato de la reivindicación 19, en
el que:
el aparato se ha implementado en un primer
dispositivo; y
en el que los uno o más parámetros a partir de
los cuales se genera el segundo valor hash auditado dinámico
incluyen además un parámetro estático.
29. El aparato de la reivindicación 28, en el
que el parámetro estático es un número de serie que distingue el
primer dispositivo de un segundo dispositivo.
30. El aparato de la reivindicación 19, en el
que los uno o más parámetros a partir de los cuales se genera el
primer valor hash auditado dinámico incluyen un valor hash auditado
estático que se ha generado como una función de un objeto de datos
estáticos mediante un algoritmo hash estático.
31. El aparato de la reivindicación 30, en el
que el algoritmo hash estático es el mismo que el primer algoritmo
hash dinámico.
32. El aparato de la reivindicación 31, en el
que el primer algoritmo hash dinámico es el mismo que el segundo
algoritmo hash dinámico.
33. El aparato de la reivindicación 19, en el
que la unidad lógica que determina si el usuario está autorizado
para modificar el objeto de datos dinámicos comprende:
una unidad lógica que recibe del usuario un
código de acceso; y
una unidad lógica que determina si el código de
acceso es un código de acceso autorizado.
34. El aparato de la reivindicación 33, en el
que la unidad lógica que determina si el código de acceso es el
código de acceso autorizado comprende:
una unidad lógica que recupera de una memoria un
código de acceso autorizado cifrado;
una unidad lógica que descifra el código de
acceso autorizado cifrado; y
una unidad lógica que compara el código de
acceso autorizado descifrado con el código de acceso recibido del
usuario.
35. El aparato de la reivindicación 33, en el
que la unidad lógica que determina si el código de acceso es el
código de acceso autorizado comprende:
una unidad lógica que recupera de una memoria un
código de acceso autorizado cifrado;
una unidad lógica que cifra el código de acceso
recibido del usuario; y
una unidad lógica que compara el código de
acceso autorizado cifrado que se ha recuperado con el código de
acceso cifrado recibido del usuario.
36. Un aparato para determinar si un objeto de
datos dinámicos que está guardado en una memoria es el producto de
una modificación no autorizada, cuyo aparato comprende:
una unidad lógica que recupera de la memoria un
primer valor inicial hash auditado dinámico;
una unidad lógica que recupera de la memoria un
segundo valor inicial hash auditado dinámico;
una unidad lógica que usa un primer algoritmo
hash dinámico para generar un primer valor hash auditado dinámico
esperado a partir de los uno o más parámetros que incluyen el objeto
de datos dinámicos;
una unidad lógica que usa un segundo algoritmo
hash dinámico para generar un segundo valor hash auditado dinámico a
partir de uno o más parámetros que incluyen datos dinámicos de
autorización, que cambian con cada intento de cambio no autorizado
del objeto de datos dinámicos;
una unidad lógica que compara el primer valor
hash auditado dinámico esperado con el primer valor inicial hash
auditado dinámico que se ha recuperado de la memoria y que indica
que el objeto de datos dinámicos es el producto de una modificación
no autorizada si el primer valor hash auditado dinámico esperado no
se corresponde con el primer valor inicial auditado dinámico que se
ha recuperado de la memoria; y
una unidad lógica que compara el segundo valor
hash auditado dinámico esperado con el segundo valor inicial hash
auditado que se ha recuperado de la memoria y que indica que el
objeto de datos dinámicos es el producto de una modificación no
autorizada si el segundo valor hash auditado dinámico esperado no se
corresponde con el segundo valor inicial hash auditado dinámico que
se ha recuperado de la memoria.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23493500P | 2000-09-26 | 2000-09-26 | |
US234935P | 2000-09-26 | ||
US09/951,676 US7043636B2 (en) | 2000-09-26 | 2001-09-14 | Data integrity mechanisms for static and dynamic data |
US951676 | 2001-09-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2278793T3 true ES2278793T3 (es) | 2007-08-16 |
Family
ID=26928409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES01980433T Expired - Lifetime ES2278793T3 (es) | 2000-09-26 | 2001-09-25 | Sistema para proteger datos dinamicos y estaticos contra la manipulacion no autorizada. |
Country Status (9)
Country | Link |
---|---|
US (1) | US7043636B2 (es) |
EP (1) | EP1325401B1 (es) |
CN (1) | CN1210637C (es) |
AT (1) | ATE355551T1 (es) |
AU (1) | AU2002212279A1 (es) |
DE (1) | DE60126968T2 (es) |
ES (1) | ES2278793T3 (es) |
MY (1) | MY127742A (es) |
WO (1) | WO2002027441A1 (es) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159047A1 (en) * | 2000-09-26 | 2003-08-21 | Telefonaktiebolaget L M Ericsson (Publ) | Method of securing and exposing a logotype in an electronic device |
US7043636B2 (en) | 2000-09-26 | 2006-05-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Data integrity mechanisms for static and dynamic data |
JP3980327B2 (ja) * | 2001-11-01 | 2007-09-26 | 富士通株式会社 | 改ざん検出システム、改ざん検出方法、およびプログラム |
US20030188180A1 (en) * | 2002-03-28 | 2003-10-02 | Overney Gregor T. | Secure file verification station for ensuring data integrity |
WO2003093961A2 (en) * | 2002-05-02 | 2003-11-13 | Shieldip, Inc. | Method and apparatus for protecting information and privacy |
GB0212318D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Tamper evident removable media storing executable code |
US7296156B2 (en) * | 2002-06-20 | 2007-11-13 | International Business Machines Corporation | System and method for SMS authentication |
US20040003265A1 (en) * | 2002-06-26 | 2004-01-01 | International Business Machines Corporation | Secure method for BIOS flash data update |
AU2003281380A1 (en) * | 2002-07-02 | 2004-01-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of securing and exposing a logotype in an electronic device |
US7877607B2 (en) * | 2002-08-30 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Tamper-evident data management |
JP2004302921A (ja) * | 2003-03-31 | 2004-10-28 | Toshiba Corp | オフライン情報を利用したデバイス認証装置及びデバイス認証方法 |
JP4036838B2 (ja) * | 2004-03-12 | 2008-01-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | セキュリティ装置、情報処理装置、セキュリティ装置が実行する方法、情報処理装置が実行する方法、該方法を実行させるための装置実行可能なプログラムおよびチケット・システム |
US7287159B2 (en) * | 2004-04-01 | 2007-10-23 | Shieldip, Inc. | Detection and identification methods for software |
JP4783112B2 (ja) * | 2005-10-11 | 2011-09-28 | 株式会社日立製作所 | 署名履歴保管装置 |
US7681050B2 (en) * | 2005-12-01 | 2010-03-16 | Telefonaktiebolaget L M Ericsson (Publ) | Secure and replay protected memory storage |
US8356178B2 (en) * | 2006-11-13 | 2013-01-15 | Seagate Technology Llc | Method and apparatus for authenticated data storage |
US20080134321A1 (en) * | 2006-12-05 | 2008-06-05 | Priya Rajagopal | Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates |
TWI402715B (zh) * | 2007-03-23 | 2013-07-21 | Via Tech Inc | 應用程式保護系統及方法 |
US8209550B2 (en) * | 2007-04-20 | 2012-06-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for protecting SIMLock information in an electronic device |
US9497028B1 (en) | 2007-05-03 | 2016-11-15 | Google Inc. | System and method for remote storage auditing |
US10248483B2 (en) * | 2007-10-19 | 2019-04-02 | Oracle International Corporation | Data recovery advisor |
EP2071898A1 (en) * | 2007-12-10 | 2009-06-17 | Telefonaktiebolaget LM Ericsson (publ) | Method for alteration of integrity protected data in a device, computer program product and device implementing the method |
US20090193265A1 (en) * | 2008-01-25 | 2009-07-30 | Sony Ericsson Mobile Communications Ab | Fast database integrity protection apparatus and method |
FR2930065A1 (fr) * | 2008-04-11 | 2009-10-16 | Thales Sa | Procede de securisation de donnees d'une carte a puce |
US9559868B2 (en) | 2011-04-01 | 2017-01-31 | Onavo Mobile Ltd. | Apparatus and methods for bandwidth saving and on-demand data delivery for a mobile device |
US9348790B2 (en) * | 2011-04-01 | 2016-05-24 | Facebook, Inc. | Method for efficient use of content stored in a cache memory of a mobile device |
US20140173294A1 (en) * | 2012-12-14 | 2014-06-19 | Broadcom Corporation | Techniques for emulating an eeprom device |
US20150292985A1 (en) * | 2014-04-11 | 2015-10-15 | Stride Tool, Inc. | Smart hvac manifold system |
US9690922B2 (en) * | 2014-07-28 | 2017-06-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, apparatus, and method for anti-replay protection of data stored in a non-volatile memory device |
US10015015B1 (en) * | 2014-09-30 | 2018-07-03 | EMC IP Holding Company LLC | Method and apparatus for verifying system log integrity |
US10223294B2 (en) * | 2015-09-01 | 2019-03-05 | Nxp Usa, Inc. | Fast secure boot from embedded flash memory |
CN108234491B (zh) * | 2018-01-02 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 协议关联验证方法、装置及电子设备 |
US10693641B2 (en) * | 2018-01-12 | 2020-06-23 | Blackberry Limited | Secure container based protection of password accessible master encryption keys |
WO2020118639A1 (zh) * | 2018-12-13 | 2020-06-18 | 深圳市大疆软件科技有限公司 | 无人飞行器及其固件升级方法 |
US11907402B1 (en) | 2021-04-28 | 2024-02-20 | Wells Fargo Bank, N.A. | Computer-implemented methods, apparatuses, and computer program products for frequency based operations |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4405829A (en) | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
US4748668A (en) | 1986-07-09 | 1988-05-31 | Yeda Research And Development Company Limited | Method, apparatus and article for identification and signature |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JPH05504428A (ja) * | 1989-08-01 | 1993-07-08 | シリコン・グラフィックス,インコーポレイテッド | コンピュータオペレーティング及びファイル管理システム用ファイル変更モニタ |
US5050212A (en) * | 1990-06-20 | 1991-09-17 | Apple Computer, Inc. | Method and apparatus for verifying the integrity of a file stored separately from a computer |
US5606609A (en) * | 1994-09-19 | 1997-02-25 | Scientific-Atlanta | Electronic document verification system and method |
US5629980A (en) * | 1994-11-23 | 1997-05-13 | Xerox Corporation | System for controlling the distribution and use of digital works |
US5606315A (en) | 1994-12-12 | 1997-02-25 | Delco Electronics Corp. | Security method for protecting electronically stored data |
US5689565A (en) | 1995-06-29 | 1997-11-18 | Microsoft Corporation | Cryptography system and method for providing cryptographic services for a computer application |
EP0753816A1 (en) | 1995-07-07 | 1997-01-15 | Thomson Consumer Electronics, Inc. | A method and apparatus for storing sensitive information securely in a relatively insecure storage medium |
US5933851A (en) * | 1995-09-29 | 1999-08-03 | Sony Corporation | Time-stamp and hash-based file modification monitor with multi-user notification and method thereof |
US6467085B2 (en) | 1995-10-17 | 2002-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for reducing coupling in an object-oriented programming environment |
US5774545A (en) | 1996-03-28 | 1998-06-30 | Lucent Technologies Inc. | Method and apparatus for enhancing security in and discouraging theft of VLSI and ULSI devices |
US5802592A (en) | 1996-05-31 | 1998-09-01 | International Business Machines Corporation | System and method for protecting integrity of alterable ROM using digital signatures |
US6026293A (en) | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
WO1998019239A1 (en) | 1996-10-25 | 1998-05-07 | Raytheon Systems Canada Ltd. | Distributed virtual software interface or machine |
US5949882A (en) | 1996-12-13 | 1999-09-07 | Compaq Computer Corporation | Method and apparatus for allowing access to secured computer resources by utilzing a password and an external encryption algorithm |
AUPO704097A0 (en) | 1997-05-29 | 1997-06-19 | Griffits, John Philip | Priority display of advertising on a personal computer |
US5919257A (en) | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
EP1040678B1 (en) | 1997-12-12 | 2005-10-26 | Alcatel USA Sourcing, L.P. | Network management |
US6098079A (en) * | 1998-04-02 | 2000-08-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | File version reconciliation using hash codes |
US6285985B1 (en) | 1998-04-03 | 2001-09-04 | Preview Systems, Inc. | Advertising-subsidized and advertising-enabled software |
US6808111B2 (en) | 1998-08-06 | 2004-10-26 | Visa International Service Association | Terminal software architecture for use with smart cards |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
CA2366562A1 (en) | 1999-04-12 | 2000-10-19 | Silanis Technology Inc. | Secure electronic document creation, approval and distribution method in an open and distributed network environment |
US6373498B1 (en) | 1999-06-18 | 2002-04-16 | Phoenix Technologies Ltd. | Displaying images during boot-up and shutdown |
KR20000030060A (ko) | 1999-06-23 | 2000-06-05 | 주진용 | 소프트웨어를 이용한 광고방법 |
US6467086B1 (en) | 1999-07-20 | 2002-10-15 | Xerox Corporation | Aspect-oriented programming |
CN1305251C (zh) | 1999-08-21 | 2007-03-14 | 卓信科技有限公司 | 电子文件及其打印副本的合法性保护 |
WO2001014960A2 (en) | 1999-08-23 | 2001-03-01 | Koninklijke Philips Electronics N.V. | Generic interface for a software module |
US6317659B1 (en) | 1999-12-09 | 2001-11-13 | Honeywell International Inc. | Layered subsystem architecture for a flight management system |
US6753887B2 (en) | 2000-03-20 | 2004-06-22 | At&T Corp. | Method and apparatus for dynamically displaying brand information in a user interface |
GB0011954D0 (en) | 2000-05-17 | 2000-07-05 | Univ Surrey | Protocol stacks |
US7139709B2 (en) | 2000-07-20 | 2006-11-21 | Microsoft Corporation | Middleware layer between speech related applications and engines |
US7043636B2 (en) | 2000-09-26 | 2006-05-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Data integrity mechanisms for static and dynamic data |
TW548535B (en) | 2000-10-17 | 2003-08-21 | Ericsson Telefon Ab L M | Security system |
US7353494B2 (en) | 2000-10-26 | 2008-04-01 | Microsoft Corporation | System and method supporting configurable object definitions |
US7415270B2 (en) | 2002-02-15 | 2008-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware services layer for platform system for mobile terminals |
US7536181B2 (en) | 2002-02-15 | 2009-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Platform system for mobile terminals |
-
2001
- 2001-09-14 US US09/951,676 patent/US7043636B2/en not_active Expired - Lifetime
- 2001-09-25 EP EP01980433A patent/EP1325401B1/en not_active Expired - Lifetime
- 2001-09-25 AT AT01980433T patent/ATE355551T1/de not_active IP Right Cessation
- 2001-09-25 DE DE60126968T patent/DE60126968T2/de not_active Expired - Lifetime
- 2001-09-25 WO PCT/EP2001/011042 patent/WO2002027441A1/en active IP Right Grant
- 2001-09-25 MY MYPI20014473A patent/MY127742A/en unknown
- 2001-09-25 CN CNB018162185A patent/CN1210637C/zh not_active Expired - Lifetime
- 2001-09-25 ES ES01980433T patent/ES2278793T3/es not_active Expired - Lifetime
- 2001-09-25 AU AU2002212279A patent/AU2002212279A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US7043636B2 (en) | 2006-05-09 |
EP1325401A1 (en) | 2003-07-09 |
DE60126968D1 (de) | 2007-04-12 |
CN1466710A (zh) | 2004-01-07 |
MY127742A (en) | 2006-12-29 |
CN1210637C (zh) | 2005-07-13 |
AU2002212279A1 (en) | 2002-04-08 |
DE60126968T2 (de) | 2007-07-05 |
EP1325401B1 (en) | 2007-02-28 |
US20020038429A1 (en) | 2002-03-28 |
ATE355551T1 (de) | 2006-03-15 |
WO2002027441A1 (en) | 2002-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2278793T3 (es) | Sistema para proteger datos dinamicos y estaticos contra la manipulacion no autorizada. | |
TWI717907B (zh) | 用於安全記憶體的方法與系統 | |
ES2904501T3 (es) | Implementación de un almacenamiento seguro con protección de integridad | |
US8225110B2 (en) | Cryptographic protection of usage restrictions in electronic devices | |
ES2236530T3 (es) | Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico. | |
US9239920B2 (en) | Generation of working security key based on security parameters | |
US8041957B2 (en) | Associating software with hardware using cryptography | |
ES2332020T3 (es) | Procedimiento y sistema de control del bloqueo/desbloqueo de las funciones de acceso a red de un temrinal con funciones multiples. | |
JP4912879B2 (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
US7571329B2 (en) | Method of storing unique constant values | |
JP2008520030A (ja) | データを安全に記憶する方法、デバイス、及びシステム | |
KR20110051181A (ko) | 데이터 보안 시스템, 방법 및 컴퓨터 판독가능 매체 | |
US11416639B2 (en) | PQA unlock | |
US9003197B2 (en) | Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor | |
US10067770B2 (en) | Platform key hierarchy | |
JP7476131B2 (ja) | 効率的なデータアイテム認証 | |
JP6107191B2 (ja) | Icカード | |
JP2022124424A5 (es) | ||
US20080104396A1 (en) | Authentication Method | |
CN117501271A (zh) | 通过利用物理不可克隆函数puf进行数据加密/解密向主机认证存储设备 | |
CN119289485A (zh) | 空调机组解锁控制方法、装置、空调设备及存储介质 |