Ejecución controlada de un programa por un soporte portátil de datos.

Un procedimiento para la ejecucion controlada de un programa por un soporte portatil (10) de datos quecomprende una memoria (26) de programas,

un nixie° (14) de procesador y al menos un contador de estado (ZZ),en el que la memoria (26) de programas comprende al menos un programa (30) ejecutable por el nude° (14) deprocesador y con una pluralidad de secciones controladas (36.x) y en el que:

- la lectura del contador de estado (ZZ) se altera durante la ejecucion de cada secciOn controlada (36.x) parareflejar el procesamiento de la respectiva seccion controlada (36.x),

caracterizado porque

- durante la ejecuciOn de una instruccion (42.x) de salto, como consecuencia de la cual se saltan una o massecciones controladas (36.x), se altera el contador de estado (ZZ) como si las secciones controladas (36.x) saltadasse hubiesen ejecutado, y

- la lectura del contador de estado (ZZ) se compara con al menos un valor admisible en al menos un punto (38, 60,72) de comprobacion, en la que, si hay coincidencia, prosigue la ejecucion del programa y, en el caso de unadiferencia, tiene lugar una gest& (50, 64, 76) de errores.

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2002/012074.

Solicitante: GIESECKE & DEVRIENT GMBH.

Nacionalidad solicitante: Alemania.

Dirección: PRINZREGENTENSTRASSE 159 81677 MUNCHEN ALEMANIA.

Inventor/es: WEISS, DIETER.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • G06F15/00 FISICA.G06 CALCULO; CONTEO.G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › Computadores digitales en general (detalles G06F 1/00 - G06F 13/00 ); Equipo de procesamiento de datos en general.
  • G06F21/00 G06F […] › Disposiciones de seguridad para la protección de computadores, sus componentes, programas o datos contra actividades no autorizadas.
  • G06F21/06
  • G06F21/22
  • G06F21/52 G06F […] › G06F 21/00 Disposiciones de seguridad para la protección de computadores, sus componentes, programas o datos contra actividades no autorizadas. › durante la ejecución del programa, p. ej.: integridad de la pila, desbordamiento de búfer o la prevención de borrado de datos durante la ejecución del programa, p. ej. integridad de la pila, desbordamiento de búfer o la prevención de borrado de datos no deseados.
  • G06F21/55 G06F 21/00 […] › La detección de intrusiones locales o la aplicación de contramedidas.
  • G06K19/073 G06 […] › G06K RECONOCIMIENTO DE DATOS; PRESENTACION DE DATOS; SOPORTES DE REGISTROS; MANIPULACION DE SOPORTES DE REGISTROS (impresión per se B41J). › G06K 19/00 Soportes de registro para utilización con máquinas y con al menos una parte prevista para soportar marcas digitales. › Disposiciones particulares para los circuitos, p. ej. para proteger el código de identificación en la memoria (protección contra la utilización no autorizada de la memoria de un computador G06F 12/14).

PDF original: ES-2414435_T3.pdf

 

Ejecución controlada de un programa por un soporte portátil de datos.

Fragmento de la descripción:

Ejecución controlada de un programa por un soporte portátil de datos.

La invención versa, en general, acerca del campo técnico de la ejecución de programas por un soporte portátil de datos que comprende una memoria de programas con al menos un núcleo de procesador para ejecutar este programa. Un soporte portátil de datos de este tipo puede ser, en particular, una taeta de chip en diversas formas o un módulo de chip. Más en particular, la invención versa acerca de la ejecución controlada de programas para detectar interferencia o ataques y para iniciar una gestión de errores adecuada.

En muchas técnicas de ataque a soportes portátiles de datos, la ejecución normal de los programas es alterada por influencias extemas. Las interferencias de este tipo pueden ser causadas en particular por impulsos de tensión, el efecto del calor o el frío, campos eléctricos o magnéticos, ondas electromagnéticas o radiación de partículas. Por ejemplo, es posible manipular el contenido de los registros en el núcleo de un procesador mediante destellos de luz sobre el chip semiconductor, dejado al descubierto, del soporte portátil de datos. El contador de programa puede ser modificado potencialmente por tal ataque lumínico para hacer que el soporte portátil de datos dé salida a datos confidenciales de la memoria intermedia de entrada/salida en contra de la programación almacenada en el mismo.

Se conoce un dispositivo para controlar un motor de cierre de puertas en un vehículo por la solicitud de patente europea EP 1 056 012 A2 en el que un procesador de control ejecuta una pluralidad de subprogramas uno tras otro, incrementándose un contador tras cada subprograma. Tras la ejecución de los subprogramas se realiza una comprobación de si el estado del contador corresponde al número de subprogramas.

Sin embargo, este dispositivo conocido está relacionado únicamente con un sistema instalado permanentemente en el vehículo. No se considera un uso más general, en particular en un soporte portátil de datos. Además, en este dispositivo solo se proporciona una secuencia estrictamente secuencial de todos los subprogramas. Por lo tanto, la enseñanza conocida a raíz del documento EP 1 056 012 A2 no es adecuada para aplicaciones más complejas, en las que subprogramas individuales han de ser saltados de forma opcional.

Se conoce un procedimiento para monitorizar la ejecución de subrutinas por el documento US 5.732.272 A, sirviendo el procedimiento, en particular, para el seguimiento temporal y la evaluación del rendimiento'fespectivamente. En principio, se monitoriza la ejecución de una subrutina realizando una "anotación de inicio" al inicio y realizando una "anotación de salida" al final de la ejecución del programa. En el caso de que ya no pueda ejecutarse correctamente la "anotación de salida", se proporcionan medidas de salvaguardia, que siguen garantizando el correcto registro de la ejecución de la subrutina. Debido a su complejidad, la solución conocida es de idoneidad limitada para sistemas que tienen recursos limitados.

El documento US 6.353.924 A describe un procedimiento para el seguimiento detallado de la ejecución de programas para detectar fallos. Se añaden respectivos elementos de "código de instrumentación" a los bloques individuales del programa que ha de ser objeto de seguimiento, comprendiendo los elementos de "código de instrumentación" información de identificación de bloques por medio de la cual se detecta la ejecución de bloque respectivo. La solución propuesta es adecuada solo en un grado limitado para determinar rápidamente tentativas de manipulación durante la ejecución del programa.

Por el documento WO 00/54155, se conoce un procedimiento para monitorizar la correcta ejecución de un programa por medio de una unidad de monitorización conectada entre una memoria de programas y un procesador. Se asigna un respectivo valor numérico a cada instrucción del programa, determinando y calculando la unidad de monitorización el valor numérico antes de la ejecución por el procesador. El valor de clave calculada de la respectiva operación previa se incluye en la operación de cálculo de clave calculada. Se compara un valor final característico resultante de clave calculada con un valor de referencia. El procedimiento es seguro, pero requiere que se lleven a cabo operaciones de cálculo comparativamente costosas para generar valores de clave calculada.

En consecuencia, el objeto de la presente invención es evitar, al menos parcialmente, los problemas de la técnica anterior y crear un procedimiento para la ejecución controlada de programas por un soporte portátil de datos, así como un soporte portátil de datos que proporcione una protección fiable contra manipulaciones del valor del contador de programa y que también sean adecuados para su uso en la ejecución de programas complejos. En particular, en las realizaciones preferentes ha de lograrse una alta protección con poco gasto.

Según la invención, este objeto se logra, total o parcialmente, mediante un procedimiento con las características de la reivindicación 1y con un soporte portátil de datos con las características de la reivindicación 10. Las reivindicaciones dependientes están relacionadas con realizaciones preferentes de la invención.

La invención parte del concepto básico de controlar la correcta ejecución de programas por medio de un contador de estado que es arrastrado durante la ejecución del programa. El programa tiene una pluralidad de secciones controladas cuyo procesamiento lleva en cada caso a un cambio en el contador de estado. No es preciso que las 55 secciones controladas coincidan con subprogramas ni módulos de programa. La lectura del contador de estado se compara con uno más valores admisibles en al menos un punto de comprobación del programa y, en caso de diferencia, tiene lugar una gestión de errores adecuada.

Según la invención se proporciona al menos la posibilidad de que el programa comprenda al menos una instrucción de salto, por la que se saltan y, por lo tanto, no se ejecutan una o más secciones controladas. En este caso, la lectura del contador de estado cambia en conjunción con la ejecución de la instrucción de salto, como si las secciones controladas se hubiesen ejecutado. El valor del contador de estado puede ser entonces comprobado en un punto posterior en el tiempo independientemente de la ejecución de la instrucción de salto. La flexibilidad en la configuración del programa que ha de ejecutarse puede así aumentar considerablemente sin que tengan que establecerse limitaciones con respecto a la seguridad.

El contador de estado puede estar configurado como un registro en el núcleo de procesador o como una zona de memoria en la memoria de trabajo del soporte portátil de datos. En las realizaciones preferentes de la invención el contador de estado se configura como un contador diferencial de estado cuyo valor resulta de la diferencia entre dos contadores implementados en términos de soporte físico que se denominan contador base y contador activo. Se impide así que el contador de estado adopte una única secuencia de valores durante la ejecución del programa conforme avanza. Por lo tanto, el uso de un contador diferencial de estado hace que resulte más difícil que el procedimiento usado sea objeto de espionaje y aumenta la seguridad del mismo. Preferentemente, el contador base es inicializado de manera regular, porque se configura a la respectiva lectura del contador activo.

En principio, la estructura del programa que ha de ejecutarse no está sujeta a ninguna limitación. Sin embargo, en configuraciones preferentes, que se contemplan en particular para tarjetas de chip o módulos de chip, la estructura básica del programa es un bucle que comprende una sección inicial, una pluralidad de secciones controladas y una sección de acción.

Preferentemente, la sección inicial incluye la lectura de entrada de una instrucción extema, las secciones controladas están relacionadas con el procesamiento de la instrucción, y en la sección de acción se emite una respuesta. En este caso, el punto de comprobación, o uno de los puntos de comprobación cuando hay una pluralidad de puntos de comprobación, está situado preferentemente entre la última sección controlada y la sección de acción, de modo que solo se emite la respuesta cuando la comprobación del contador de estado no ha dado como resultado alguna indicación de interferencia con la ejecución del programa. Una característica general de las realizaciones preferentes de la invención, con independencia de dicha estructura del programa, es proporcionar un punto de comprobación antes de cada acción del soporte portátil de datos orientada al exterior.

Preferentemente,... [Seguir leyendo]

 


Reivindicaciones:

1. Un procedimiento para la ejecución controlada de un programa por un soporte portátil (10) de datos que comprende una memoria (26) de programas, un núcleo (14) de procesador y al menos un contador de estado (ZZ) , en el que la memoria (26) de programas comprende al menos un programa (30) ejecutable por el núcleo (14) de procesador y con una pluralidad de secciones controladas (36.x) y en el que:

-la lectura del contador de estado (ZZ) se altera durante la ejecución de cada sección controlada (36.x) para reflejar el procesamiento de la respectiva sección controlada (36.x) ,

caracterizado porque

-durante la ejecución de una instrucción (42.x) de salto, como consecuencia de la cual se saltan una o más secciones controladas (36.x) , se altera el contador de estado (ZZ) como si las secciones controladas (36.x) saltadas se hubiesen ejecutado, y

-la lectura del contador de estado (ZZ) se compara con al menos un valor admisible en al menos un punto (38, 60, 72) de comprobación, en la que, si hay coincidencia, prosigue la ejecución del programa y, en el caso de una

diferencia, tiene lugar una gestión (50, 64, 76) de errores.

2. El procedimiento según la reivindicación 1 caracterizado porque el contador de estado (ZZ) está configurado como un contador diferencial de estado cuyo valor de contador corresponde a la diferencia entre los valores de un contador activo (Al) y de un contador base (BZ) .

3. El procedimiento según las reivindicaciones 1 o 2 caracterizado porque el programa (30) está configurado como un bucle que comprende una sección inicial (34) , la pluralidad de secciones controladas (36.x) y una sección (40) de acción, situándose el punto (38) de comprobación o uno de los puntos de comprobación entre la última sección controlada (36.N) y la sección (40) de acción.

4. El procedimiento según las reivindicaciones 2 y 3 caracterizado porque el contador base (BZ) está configurado con el respectivo valor del contador activo (Al) antes de la ejecución de las secciones controladas (36.x) .

5. El procedimiento según cualquiera de las reivindicaciones 1 a 4 caracterizado porque el programa (30) comprende al menos un módulo (56) que contiene una o más de las secciones controladas (36.x) .

6. El procedimiento según la reivindicación 5 caracterizado porque el módulo (56) es un módulo controlado en el que el cambio del contador de estado (ZZ) dentro del módulo (56) se compara en un punto (60) de comprobación con al menos un valor admisible.

7. El procedimiento según la reivindicación 6 caracterizado porque, antes del respectivo primer cambio del contador de estado (ZZ) en el móclulo controlado (56) , la lectura del contador de estado (ZZ) o de un valor relacionado con el mismo se introduce en memoria intermedia en un contador base local (LBZ) .

8. El procedimiento según cualquiera de las reivindicaciones 1 a 7 caracterizado porque al menos una de las secciones controladas (36.x) comprende una pluralidad de subsecciones controladas (68.x) , cambiando el valor de un contador local (LZ) durante la ejecución de cada subsección controlada (68.x) para reflejar el procesamiento de la respectiva subsección controlada (68.x) , y comparándose el valor del contador local (LZ) en al menos un punto (72) de comprobación con al menos un valor admisible.

9. El procedimiento según cualquiera de las reivindicaciones 1 a 8 caracterizado porque el procedimiento se usa para repeler ataques luminicos en los que el valor de un contador (16) de programa del núcleo (14) de procesador es manipulado por influencia de la luz.

10. Un soporte portátil (10) de datos, en particular una tarjeta de chip o un módulo de chip, que comprende una memoria (26) de programas, un núcleo (14) de procesador y al menos un contador de estado (ZZ) , comprendiendo la memoria (26) de programas al menos un programa (30) ejecutable por el núcleo (14) de procesador y con una pluralidad de secciones controladas (36.x) , caracterizado porque la memoria (26) de programas comprende instrucciones para hacer que el núcleo (14) de procesador ejecute un procedimiento según cualquiera de las reivindicaciones 1 a 9.

--AZ

-=

-=


 

Patentes similares o relacionadas:

Sistema de sellado y método para instalar un sistema de sellado, del 3 de Junio de 2020, de THE EUROPEAN ATOMIC ENERGY COMMUNITY (EURATOM), REPRESENTED BY THE EUROPEAN COMMISSION: Sistema de sellado para contenedores nucleares, que sella una tapa de contenedor de un contenedor nuclear a un cuerpo de contenedor de dicho contenedor nuclear, dicho […]

Tarjeta de circuito integrado sin contacto con control digital, del 29 de Abril de 2020, de Smart Packing Solutions: Tarjeta de circuito integrado con funcionamiento sin contacto, destinada a comunicarse con un lector de tarjeta de circuito integrado que funciona a una frecuencia […]

Disco de soporte de registro conectado, del 1 de Enero de 2020, de MPO International: Disco de soporte de registro analógico que presenta por lo menos una primera cara que comprende por lo menos una capa de lectura y por […]

Pulsador de doble cara con función táctil, del 6 de Noviembre de 2019, de Khaled Asef, Mohammad: Pulsador , que comprende un primer contacto de conmutación y un segundo contacto de conmutación , que están dispuestos de manera […]

Disposición de recipiente que incluye un dispositivo de comunicación inalámbrica y método para operar el mismo, del 9 de Octubre de 2019, de NOVARTIS AG: Una disposición de recipiente , que comprende: un cuerpo de recipiente que comprende un interior para recibir materias sólidas o líquidos; […]

Método para autorizar una comunicación con un dispositivo electrónico portátil, tal como un acceso a un área de memoria, dispositivo y sistema electrónicos correspondientes, del 19 de Junio de 2019, de GEMALTO SA: Un método para permitir la comunicación con un dispositivo electrónico portátil y un dispositivo de comunicación externo , comprendiendo el dispositivo electrónico […]

Objeto portátil seguro, del 1 de Marzo de 2019, de GEMALTO SA: Un objeto portátil seguro del tipo de tarjeta inteligente que comprende (a) un cuerpo de objeto y (b) un micro-módulo que comprende un procesador y […]

Sistema de seguridad NFC y método para deshabilitar etiquetas no autorizadas, del 30 de Enero de 2019, de AVERY DENNISON CORPORATION: Una pantalla publicitaria que comprende un sistema de seguridad de NFC, que comprende, además: un controlador de seguridad del sistema de seguridad de NFC; […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .