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 PDF

Info

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
Application number
ES01980433T
Other languages
English (en)
Inventor
Ben Smeets
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2278793T3 publication Critical patent/ES2278793T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal 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)
  • Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Circuits Of Receivers In General (AREA)
  • Signal Processing For Digital Recording And Reproducing (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.
Antecedentes
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.
Sumario
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.
Breve descripción de los dibujos
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.
Descripción detallada
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.
ES01980433T 2000-09-26 2001-09-25 Sistema para proteger datos dinamicos y estaticos contra la manipulacion no autorizada. Expired - Lifetime ES2278793T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23493500P 2000-09-26 2000-09-26
US234935P 2000-09-26
US951676 2001-09-14
US09/951,676 US7043636B2 (en) 2000-09-26 2001-09-14 Data integrity mechanisms for static and dynamic data

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)

* Cited by examiner, † Cited by third party
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
AU2003243187A1 (en) * 2002-05-02 2003-11-17 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
US8074103B2 (en) * 2007-10-19 2011-12-06 Oracle International Corporation Data corruption diagnostic engine
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
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
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
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)

* Cited by examiner, † Cited by third party
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
CN1157960C (zh) * 1997-12-12 2004-07-14 美国阿尔卡塔尔资源有限合伙公司 电信平台系统及其方法
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
EP1169679A2 (en) 1999-04-12 2002-01-09 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
WO2001015382A1 (en) 1999-08-21 2001-03-01 Kent Ridge Digital Labs Legitimacy protection of electronic document and a printed copy thereof
EP1250643A2 (en) 1999-08-23 2002-10-23 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
AU2001245868A1 (en) * 2000-03-20 2001-10-03 At And T Corp. Method 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

Also Published As

Publication number Publication date
EP1325401B1 (en) 2007-02-28
CN1466710A (zh) 2004-01-07
DE60126968T2 (de) 2007-07-05
MY127742A (en) 2006-12-29
DE60126968D1 (de) 2007-04-12
EP1325401A1 (en) 2003-07-09
AU2002212279A1 (en) 2002-04-08
ATE355551T1 (de) 2006-03-15
US20020038429A1 (en) 2002-03-28
US7043636B2 (en) 2006-05-09
CN1210637C (zh) 2005-07-13
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
EP2989741B1 (en) Generation of working security key based on security parameters
ES2236530T3 (es) Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico.
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) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
JP2008520030A (ja) データを安全に記憶する方法、デバイス、及びシステム
US7571329B2 (en) Method of storing unique constant values
KR20110051181A (ko) 데이터 보안 시스템, 방법 및 컴퓨터 판독가능 매체
TWI763379B (zh) 安全積體電路晶片裝置及其保護其方法
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
US20080104396A1 (en) Authentication Method
JP6107191B2 (ja) Icカード
JP7476131B2 (ja) 効率的なデータアイテム認証
US10067770B2 (en) Platform key hierarchy
JP2022124424A5 (es)
CN117501271A (zh) 通过利用物理不可克隆函数puf进行数据加密/解密向主机认证存储设备