ES2331115T3 - Procedimiento y dispositivo de control de acceso en un sistema integrado. - Google Patents

Procedimiento y dispositivo de control de acceso en un sistema integrado. Download PDF

Info

Publication number
ES2331115T3
ES2331115T3 ES02804648T ES02804648T ES2331115T3 ES 2331115 T3 ES2331115 T3 ES 2331115T3 ES 02804648 T ES02804648 T ES 02804648T ES 02804648 T ES02804648 T ES 02804648T ES 2331115 T3 ES2331115 T3 ES 2331115T3
Authority
ES
Spain
Prior art keywords
subject
access
space
update
module
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
ES02804648T
Other languages
English (en)
Inventor
Alain Boudou
Christoph Siegelin
Jean-Claude Marchetaux
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.)
Thales DIS France SA
Original Assignee
Gemalto SA
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 Gemalto SA filed Critical Gemalto SA
Application granted granted Critical
Publication of ES2331115T3 publication Critical patent/ES2331115T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Abstract

Método para controlar el acceso a objetos (5) almacenados en un espacio de memoria de un sistema informático por un sujeto (3) almacenado en un espacio de programa de dicho sistema que desea realizar una operación en dichos objetos (5), que se caracteriza porque controla el acceso a dichos objetos (5) a través de un atributo dinámico (8) unido a dicho sujeto (3) cuyo valor es actualizado de acuerdo con los estados presente y pasado del sujeto.

Description

Procedimiento y dispositivo de control de acceso en un sistema integrado.
La presente invención se refiere a un método y a un dispositivo para controlar el acceso a áreas de memoria unidas a aplicaciones y módulos de software de una unidad electrónica con microprocesador, en particular un microcontrolador. La invención se puede aplicar, por ejemplo y aunque no de forma limitativa, a tarjetas inteligentes electrónicas.
La tarjeta inteligente, como todos los sistemas informáticos integrados, incluye un procesador, entradas/salidas y memoria que está dividida en memoria no volátil, utilizada generalmente para almacenar programas y datos, y memoria volátil, utilizada generalmente como memoria de procesamiento. Actualmente los sistemas integrados u objetos portables y en particular las tarjetas inteligentes realizan funciones cada vez más complejas debido, en particular, al almacenamiento de programas de aplicaciones múltiples: estas tarjetas inteligentes se designan con el término "tarjeta inteligente multiaplicación".
Para la seguridad de las tarjetas inteligentes multiaplicación, el aislamiento de las diferentes aplicaciones entre sí resulta fundamental. En una tarjeta inteligente que contiene varias aplicaciones es, por tanto, importante poder denegar a las aplicaciones el acceso a datos que no les pertenecen para evitar el uso indebido o la transferencia de información al exterior. Por ejemplo, puede ser necesario denegar a una primera aplicación el acceso a datos confidenciales que pertenecen a una segunda aplicación, p. ej. claves criptográficas. En particular, dado que los datos están almacenados de forma permanente en la memoria no volátil, puede ser necesario limitar la lectura y la actualización únicamente a las aplicaciones autorizadas.
Además, dado el aumento de la capacidad de memoria y la potencia de procesamiento de las tarjetas inteligentes, la arquitectura software se está haciendo cada vez más estructurada, con funciones que están aisladas entre sí como módulos y distribuidas a diferentes niveles.
Así, por ejemplo, en una arquitectura software para tarjeta inteligente podemos identificar, como muestra la figura 1, la capa de núcleo "CORE" que tiene una interfaz directa con el hardware (y que comprende en particular las rutinas de acceso a la memoria no volátil genérica), la capa de sistema "OS" relativa al sistema operativo que gestiona los recursos y servicios compartidos y la capa de aplicación "APPLI" que agrupa las diferentes aplicaciones software. Cada capa puede ser subdividida en subcapas y módulos funcionales: la capa de sistema incluye, p. ej. módulos funcionales tales como el servicio de procesamiento de algoritmo criptográfico, la gestión de memoria y los recursos de entrada/salida.
En este tipo de modelo, una aplicación ya no puede acceder a sus datos en la memoria de forma directa sino que lo tiene que hacer a través de funciones situadas en las capas de núcleo y de sistema. El problema de limitar el acceso a datos almacenados a las aplicaciones autorizadas sólo surge, en particular, en este contexto de accesos indirectos.
De forma más general, puede diseñarse una arquitectura de software modular multicapa en donde, en primer lugar, un módulo llama a uno o más módulos para ejecutar algunas de sus tareas y, en segundo lugar, cada módulo tiene un programa y datos almacenados en una memoria no volátil en áreas claramente definidas, datos para los cuales el manejo o el uso debe estar restringido a los módulos autorizados únicamente.
Generalmente, los mecanismos de protección de la memoria pueden fabricarse en forma de software y/o hardware para aplicaciones interpretadas y en forma de hardware para aplicaciones ejecutadas como ventanas que se abren en la memoria (tal como un dispositivo de segmentación) o como matrices de acceso semiestáticas. Las aplicaciones se asocian a áreas de memoria durante la configuración o cuando se selecciona una aplicación. Estos mecanismos sólo permiten el acceso a la memoria a pares predeterminados de áreas de código/datos.
El documento US 5,452,431 revela un mecanismo de control de acceso a memoria en el cual la dirección del programa proporcionada por el contador de programa de la CPU se compara con un rango preconfigurado de direcciones para decidir si la aplicación que se está ejecutando puede acceder a una determinada área de memoria.
El documento US 5,312,453 revela un mecanismo de control de acceso a memoria similar al sugerido por
US 5,452,431 pero que además tiene una reconfiguración dinámica de los rangos de dirección del programa
\hbox{permitidos.}
Por ejemplo, con una matriz de acceso, las páginas de memoria se asocian a aplicaciones cuando se configura la tarjeta programando atributos de página; el papel del hardware en el momento de la ejecución se limita a una simple comparación entre la identidad del "propietario" de la página y la identidad del módulo que intenta acceder a esta página (conocido por el hardware, p. ej. a través de la posición del contador de programa). El inconveniente de estos mecanismos de matriz de acceso reside en que necesitan una relación directa entre el programa y los datos: esta relación existe cuando el propietario de la página accede a sus datos directamente (a través de las instrucciones de lectura/escritura del microprocesador) pero desaparece en las configuraciones en las que un módulo distinto al propietario desea acceder a los datos "en su nombre". Dos ejemplos que ilustran esta situación son (i) una máquina virtual que accede a los datos de aplicaciones "en su nombre" y (ii) un módulo gestor de EEPROM entre la aplicación y la memoria no volátil. Estos accesos "de relación indirecta" no pueden ser protegidos por dispositivos de tipo matriz de acceso.
La invención pretende superar los inconvenientes conocidos de los dispositivos y sistemas del estado de la técnica pero cumpliendo a la vez los requisitos que puedan surgir.
En el contexto de una arquitectura de software modular multicapa de un sistema informático y más particularmente en la siguiente descripción de un sistema integrado tal como una tarjeta inteligente, el objeto de la invención es, por tanto, proponer un método capaz de aislar y proteger áreas de memoria unidas a dichos módulos.
En este contexto también, el objeto de la invención es proponer un método capaz de controlar el acceso a la memoria y limitar el acceso a los módulos que estén autorizados.
La invención se refiere a un método para controlar el acceso a objetos almacenados en un espacio de memoria de un sistema informático por un sujeto almacenado en un espacio de programa de dicho sistema, deseando dicho sujeto realizar una operación en dichos objetos, que se caracteriza porque controla el acceso a dichos objetos a través de un atributo dinámico unido a dicho sujeto cuyo valor es actualizado de acuerdo con los estados presente y previos del sujeto.
La invención también se refiere a un dispositivo de control de acceso que implementa el método descrito anteriormente así como a un sistema integrado que utiliza dicho dispositivo. La invención también se refiere al programa que implementa dicho método.
La invención se describe a continuación en más detalle haciendo referencia a los dibujos adjuntos, en donde:
- la figura 1 es una representación esquemática de una arquitectura de software modular multicapa de un sistema informático;
- la figura 2 es un diagrama de flujo que ilustra las etapas principales de una forma de realización del método de control de acceso de acuerdo con la invención;
- la figura 3 es una representación esquemática de un ejemplo de encadenamiento de módulos y áreas de memoria a las que dichos módulos desean acceder;
- la figura 4 es un diagrama que representa un ejemplo de encadenamiento de módulos y áreas de memoria a las que dichos módulos tienen derecho a acceder;
- la figura 5 es el diagrama de flujo que muestra las etapas del método de control de acceso según la figura 2 de acuerdo con dos variantes de realización, una mostrada en trazo continuo y la otra en trazo continuo y linea de puntos;
- la figura 6 ilustra un sistema según la figura 1 que muestra el método de control de acceso.
\vskip1.000000\baselineskip
En un sistema informático 1 con arquitectura de software modular multicapa como se ilustra en la figura 1, un módulo 2, \alpha y \beta completa una determinada tarea solicitada por el exterior mediante un conjunto de comandos de entrada/salida, solicitada por otro módulo o como consecuencia de un evento hardware. Un módulo capaz de ejecutar una tarea solicitada desde el exterior se mencionará en adelante como una aplicación. La ejecución de dicha tarea corresponde a la ejecución de una serie de instrucciones denominada programa (A, B) almacenado en una memoria no volátil en un espacio denominado espacio "PROG" (espacio de programa) específico de dicho módulo. La serie de instrucciones se aplica a un conjunto de datos almacenados en una memoria no volátil de otro espacio, denominado espacio "DATA" (espacio de datos), que son los espacios a y b para los programas A y B, respectivamente. Los espacios de datos a y b consisten en espacios para los cuales dichos módulos \alpha y \beta tienen derechos de acceso. A título ilustrativo, en la figura 1 la activación del módulo \alpha corresponde a la ejecución del programa A almacenado en el espacio de programa PROG, aplicándose dicho programa A a datos almacenados en el espacio de datos a. Si el módulo \alpha tiene un derecho concedido por el módulo \beta, su programa accede al espacio de datos b del módulo B (flecha de puntos en la figura 1).
Mientras ejecuta su tarea, un módulo puede llamar a otros módulos. Como consecuencia, los programas son ejecutados de forma sucesiva, en donde el módulo llamado sigue al módulo llamador.
En el contexto del sistema 1 descrito anteriormente, el método de la invención consiste no sólo en aislar las diferentes aplicaciones de software sino también en aislar todos los módulos en el sistema (independientemente de su nivel): el método debe garantizar que un módulo en la capa de aplicación no pueda acceder a datos para los que no está autorizado a través de llamadas a módulos en capas inferiores. El método de la invención debe, por tanto, limitar el acceso a espacios de memoria únicamente a los módulos autorizados 2.
El concepto de control de acceso está representada en la figura 2: un control de acceso acepta o rechaza una operación realizada por una entidad activa 3 conocida como el sujeto "S" almacenado en el espacio PROG (p. ej. un proceso de procesamiento) que ejecuta en nombre de un usuario 4, en entidades pasivas 5 conocidas como objetos "O" del espacio de memoria DATA (p. ej. un contenedor de datos almacenados) o PROG según las reglas 6 que caracterizan la política aplicada, atributos de seguridad 7, 8 asociados en primer lugar con el objeto objetivo 5 y en segundo, con el sujeto 3 que ejecuta para un usuario 4 y el tipo de operación. El sujeto consiste en uno o más módulos 2 que se ejecutan sucesivamente para realizar una determinada operación.
Un software integrado como p. ej. el de las tarjetas inteligentes multiaplicación puede describirse como un sujeto 3 que primero ejecuta para usuarios externos 4 que necesitan las diferentes aplicaciones y en segundo, realiza operaciones de tipo acceso en la memoria no volátil.
En el contexto de la presente arquitectura de software modular integrada, la invención propone un método y un dispositivo para controlar el acceso a objetos 5, que se caracteriza porque está basado en atributos dinámicos 8 unidos al objeto 3 y cuyo valor depende de la historia del sujeto, es decir, de sus estados presente y pasado. El método limita el acceso a objetos a aquellos módulos autorizados 2 únicamente, incluso en el caso de accesos indirectos, es decir, que se producen a través de unos o más módulos diferentes.
El método incluye las etapas siguientes:
-
una etapa de gestión 9 para manejar el atributo 8 del sujeto, según los estados presente y pasado del sujeto 3;
-
una etapa de comparación de un ítem de información que caracteriza el objeto objetivo, que es el atributo 7 del objeto, y un ítem de información que caracteriza los estados presente y pasado del sujeto, que es el atributo 8 del sujeto;
-
una etapa de filtrado para aceptar o rechazar la operación en función de dicha comparación y opcionalmente del tipo de operación y/o de reglas predefinidas 6.
\vskip1.000000\baselineskip
En la siguiente descripción, el método según la invención se describe en detalle en cuanto a su aplicación al espacio de datos DATA, es decir, el objeto objetivo es parte de dicho espacio DATA. Para que el método de la invención resulte más fácil de comprender, la etapa de gestión se describirá después de las de comparación y filtrado.
La etapa de comparación consiste con mayor precisión en comparar un ítem de información que caracteriza el área de memoria dirigida, con mayor precisión el espacio de datos objetivo (denominado espacio objetivo), con un ítem de información que caracteriza el espacio de datos asociado con los estados presente y pasado del programa actual (denominado espacio autorizado).
El espacio objetivo está identificado por un atributo 7. De acuerdo con la primera variante de realización, el atributo 7 es un ítem de información asociado con la operación. De acuerdo con una segunda variante, el atributo 7 es un ítem de información asociado físicamente con el área de memoria dirigida (forma de realización de la figura 2). El espacio autorizado está caracterizado por un atributo 8 del mismo tipo que el utilizado para el espacio objetivo, para simplificar la comparación. En la primera variante de realización, el atributo es una dirección de memoria según el conocido modelo MMU (Memory Management Unit); la operación actual especifica una dirección de memoria a la que el sujeto 3 desea acceder. La comparación entonces consiste en comprobar que la dirección 7 en cuestión está contenida en una ventana 8 de direcciones, correspondiéndose la ventana 8 de direcciones con el espacio autorizado. En la segunda variante de realización, la operación actual selecciona un atributo 8 que especifica un identificador. La comparación consiste en comprobar la identidad entre el identificador 7 del espacio objetivo y el identificador 8 del espacio autorizado (modelo MAC-Mandatory Access Control).
La etapa de filtrado consiste en realizar una acción dependiendo del resultado de la etapa de comparación, es decir, que acepta la operación si el espacio de datos al que se dirige la operación (el espacio objetivo) y el espacio de datos para el cual el acceso está autorizado en el momento de la operación (el espacio autorizado) se corresponden, o de lo contrario lo rechaza. También pueden tenerse en cuenta otras características tales como el tipo de operación, que amplía la cualificación del espacio objetivo, p. ej. espacio accesible sólo en modo lectura (ejemplos de posible cualificación: lectura, escritura, programación (escribe 1), borrado (escribe 0) o combinaciones de estos términos, suministro de instrucciones). También pueden imponerse reglas adicionales 6. Por ejemplo, el acceso sólo puede ser concedido a uno o más módulos predeterminados, en donde esta restricción se aplica además del filtrado dependiendo del resultado de la comparación entre el espacio objetivo y el espacio autorizado.
La etapa de gestión consiste en gestionar la información que caracteriza el espacio de datos autorizado asociado con el estado actual del programa: el método llama a un mecanismo 9 para inicializar (considerado en esta descripción como una actualización inicial) y actualizar el espacio autorizado. El espacio autorizado es inicializado o reinicializado en cada cambio de aplicación (cambio a la aplicación A en la figura 4, en donde los módulos M1, M2, M3 no son aplicaciones sino simples módulos activados para procesar una tarea solicitada por otro módulo).
Dicha gestión depende de las características funcionales de la arquitectura y de la política de seguridad que debe ser implementada.
En el contexto de una arquitectura de software modular integrada en la que un módulo puede llamar a otro módulo para subcontratar una tarea, el programa del módulo llamado puede acceder a sus propios datos y también tiene el privilegio de poder acceder a los datos del espacio de datos perteneciente al módulo llamador. Durante una sucesión de llamadas entre los módulos, el privilegio se hereda de un módulo a otro: un determinado espacio de datos puede ser accedido por toda una serie de módulos. Por tanto, un programa de un módulo llamado puede acceder, además de a su propio espacio de datos, también al espacio de datos de cualquiera de los módulos que han llamado anteriormente o de varios de ellos.
El manejo o el uso de los datos está limitado a los módulos autorizados únicamente: el método de control de acceso de acuerdo con la invención acepta o rechaza operariones en datos almacenados en la memoria no volátil dependiendo del encadenamiento de llamadas entre los módulos y de las elecciones de cada programa para acceder a sus propios datos de forma transitoria.
Una característica de la política de seguridad de la tarjeta inteligente es que un módulo sólo puede usar, manejar o acceder a sus propios datos o a datos correspondientes a la tarea que le ha sido encomendada. Como se muestra en el primer ejemplo (Ej. 1) de la figura 3, un módulo llamado (B) hereda el privilegio de acceder al espacio de datos de la tarea para la que ha sido llamado, espacio que puede pertenecer al módulo llamador (A) o heredado por el propio módulo llamado (B). En el primer ejemplo, el espacio autorizado no necesita ser actualizado ya que no cambia. El módulo también puede necesitar (segundo ejemplo, Ej. 2) acceder a sus propios datos; en este caso el espacio autorizado se actualiza mediante una solicitud (explícita o implícita como se ilustra en la figura 5 y se detalla más adelante) de este módulo. Cuando el módulo deja de acceder a su propio espacio de datos, vuelve al contexto anterior y de nuevo accede al espacio de datos para el cual ha recibido un privilegio por parte de la llamada subcontratante; el espacio autorizado vuelve a su valor anterior mediante una solicitud (implícita o explícita como se ilustra en la figura 5). En el segundo ejemplo, el módulo B llamado por el módulo A accede a los datos del módulo A (flecha u) y a sus propios datos (flecha v) de forma transitoria. El módulo C, llamado por el módulo B, llamado a su vez por el módulo A, accede a los datos del módulo B (flecha x) o del módulo A (flecha y) y a sus propios datos (flecha w) de forma transitoria.
La etapa de actualización realizada para autorizar el encadenamiento de los accesos a los espacios objetivo como se ha descrito antes, se implementa de acuerdo con diferentes formas de la realización ilustrada en la figura 4.
La figura 4 representa, en el ejemplo ilustrado, las llamadas entre los módulos A, M1, M2, M3, los espacios objetivos durante las llamadas y los cambios a espacios autorizados durante un determinado período (t1, t2).
De acuerdo con la primera forma de realización, la etapa de actualización puede realizarse utilizando una pila de espacios autorizados (PILE ESP_AUT de la figura 4): cada módulo solicita (de forma implícita o explícita) que su propio espacio de datos sea añadido o retirado de la pila de espacios autorizados cuando necesita acceder a él. En la parte con fondo gris de la figura 4 (letra "o") antes de llamar al módulo M3, el módulo M2 pide que su propio espacio m2 sea añadido a la pila de espacios autorizados. La pila entonces consiste en los espacios siguientes: al m2. Teniendo en cuenta la actualización del espacio autorizado, el módulo M3 puede acceder al espacio m2 (ACC_MEM). El módulo M3 entonces solicita acceso (letra "p") a sus propios datos m3; su propio espacio m3 es colocado en la pila de espacios autorizados. La pila entonces consiste en los espacios siguientes: al m2 m3. El dispositivo de control de acceso autoriza una operación en un espacio de datos cuando el espacio de datos al que se dirige la operación y el espacio de datos para el cual está autorizado el acceso en el momento de la operación son idénticos: el espacio de datos autorizado en el momento de la comparación corresponde al espacio que está en la parte superior de la pila (en el primer ejemplo es el espacio m2 y en el segundo ejemplo es el espacio m3), siendo los espacios que están en la parte inferior de la pila (en el primer ejemplo el espacio al y en el segundo ejemplo los espacios al m2) espacios que han sido espacios autorizados y que lo volverán a ser.
Cabe destacar que la pila de espacios autorizados puede ser bastante diferente de la pila de módulos de llamada; p. ej. si ninguno de los módulos llamados accede a sus propios datos, la pila de espacios autorizados se reduce al espacio de datos del primer módulo llamador (flechas r, s, t de la figura 4 - espacio de datos a1).
De acuerdo con una segunda forma de realización, se establece una política de seguridad menos rigurosa. Esta política de actualización se implementa a través de un mecanismo de gestión de tipo lista: cada módulo puede solicitar (de forma implícita o explícita) que su propio espacio de datos sea colocado o retirado de la lista de espacios autorizados.
Como se ilustra de forma simple en la figura 4, cada módulo llamado puede acceder potencialmente a su propio espacio de datos y su espacio de datos es añadido a la lista (LIST ESP_AUT). El manejo de la lista es implícito y está sincronizado con las llamadas de módulo. En este caso, la lista de espacios autorizados es la misma que la lista de espacios de datos asociados a los módulos identificados en la pila de módulos llamadores a la que se ha añadido el espacio de datos del último módulo llamado.
La limitación es menos rigurosa que en el caso anterior; de hecho, el mecanismo de actualización en la segunda forma de realización permite la operación si existe un acuerdo entre el espacio objetivo y uno de los espacios autorizados de la lista. El mecanismo, por tanto, permite a un módulo llamador acceder a datos de cualquiera de los módulos llamados antes del control de acceso.
Según la primera variante de la etapa de actualización ilustrada en la figura 5 con trazo continuo, la solicitud realizada por un módulo 2 de añadir o retirar su espacio 8 de datos a la pila o la lista de espacios autorizados es explícita: la solicitud usa uno o más comandos de actualización internos (CIMJ en la figura 5) del tipo "add (or remove) my space" (añadir o retirar mi espacio) o "add (or remove) a given space" (añadir o retirar un espacio dado).
Según otra variante de realización de la etapa de actualización ilustrada en trazo continuo y línea de puntos en la figura 5, la solicitud de un módulo 2 de añadir su espacio 8 de datos, o retirarlo, de una pila o lista de espacios autorizados, es implícita. La solicitud usa un comando de actualización interno (CIMJ) desde un mecanismo 11 de interceptación de llamada o de procesamiento preliminar, en donde dicho mecanismo solicita la adición (o retirada) del espacio de datos correspondiente al espacio objetivo mediante la operación realizada por la llamada a un módulo llamado (o el retorno al módulo llamador).
Para actualizar el atributo del sujeto según el estado del sujeto o, más en particular, para gestionar la información que caracteriza el espacio de datos asociado con el estado del procesamiento actual, es decir, el espacio autorizado, el mecanismo de gestión debe procesar la solicitud de actualización correspondiente al cambio del estado del sujeto, como se muestra en la figura 2.
La protección ofrecida por el control de acceso depende del nivel de seguridad proporcionado en la gestión de dicho control. Para aumentar la seguridad en la gestión de control de acceso se planifica un mecanismo de gestión de actualización como un control de identidad del sujeto y de sus derechos. La solicitud para actualizar el atributo 8 del sujeto sólo es aceptada y tenida en cuenta si su emisor, un módulo (en este caso el módulo activo o el módulo de interceptación), es identificado de forma fiable y está autorizado para hacer esta solicitud: el mecanismo de gestión de actualización de atributos de sujeto comprende un mecanismo 10 para comprobar la identidad del solicitante de dicha actualización y para comprobar sus derechos.
El mecanismo 10 debe, en primer lugar, identificar el módulo que hace la solicitud de actualización y, en segundo lugar, comprobar que la solicitud es legal comprobando los derechos del módulo sobre el espacio de datos objetivo. Los derechos son específicos de los datos del módulo en cuestión y han sido guardados previamente.
La identidad del módulo llamador se obtiene generalmente mediante la identificación del espacio de programa del llamador. En una solicitud de patente presentada el mismo día que la presente solicitud por el mismo solicitante con el título "Method and system for module chaining control in a modular software architecture" (WO 03050660) se describe un mecanismo de identificación de este tipo.
Si se realiza una solicitud explícita del tipo "añadir (o retirar) un determinado espacio", el derecho del espacio de programa sobre el espacio de datos en cuestión se guarda en la memoria, p. ej. en una tabla que une el(los) espacio(s)
de programa y múltiples espacios de datos de acuerdo con los derechos de los espacios de programa sobre los espacios de datos. Esta solución es adecuada cuando los datos pueden ser compartidos entre varios módulos. Para que dos o más módulos puedan compartir un espacio de datos, simplemente tienen que compartir el derecho a actualizar el espacio autorizado añadiendo este espacio de datos.
De forma más específica, si se realiza una solicitud explícita del tipo "añadir (o retirar) mi espacio", la correspondencia entre el espacio de programa y el espacio de datos debe ser guardada en la memoria. Esta solución es adecuada cuando existe una relación biyectiva entre espacio de programa y espacio de datos.
Si la solicitud es implícita, el derecho del espacio de programa del módulo llamador sobre el espacio de datos objetivo debe ser guardado en la memoria, p. ej. en una tabla que una el(los) espacio(s) de programa y múltiples espacios de datos como anteriormente; la tabla sólo será consultada si el espacio objetivo difiere del espacio autorizado existente.
Como se muestra en las figuras 5 y 6, el mecanismo 9 utilizado para inicializar y actualizar el espacio autorizado según la invención es iniciado por un comando externo CE. El comando externo activa ("ACTIV" en las figuras) uno de los módulos 2 del sistema 1. La activación de uno de estos módulos inicializa ("Inic") el espacio autorizado a un valor particular que permite al primer módulo llamado por dicho comando externo acceder al área de memoria necesaria. Cuando un módulo llama a otro módulo se ejecuta el método de la invención descrito anteriormente.
El método según la invención ha sido descrito en su aplicación para controlar el acceso al espacio de memoria de datos. De forma similar, el método según la invención puede ser utilizado para controlar el acceso al espacio de memoria de programa.
A título ilustrativo se describe a continuación el caso de una arquitectura de tres capas como la que puede encontrarse en una tarjeta inteligente (figura 6).
En el caso ilustrado en la figura 6, el mecanismo de comparación y acción se implementa en el hardware al nivel de acceso a memoria (MEM). Al activar (ACTIV) las aplicaciones (APLI), el sistema operativo (SO) inicializa el espacio autorizado. El sistema operativo (SO) comprende un mecanismo 11 de interceptación de llamadas que notificará de forma implícita a la gestión (9, 10) del espacio autorizado, el espacio al que se dirige la llamada hecha al sistema (que puede ser diferente al espacio inicializado si una aplicación ha llamado a otra). La gestión (9, 10) del espacio autorizado identifica la aplicación que llama y modifica, en función de los derechos de dicha aplicación que llama, el espacio autorizado dándole el valor del espacio objetivo. La función de gestión del dispositivo es jerárquica, siendo el núcleo capaz de modificar el espacio autorizado por sobrecarga (SURCH). Una vez realizada la actualización, se comparan los espacios ATTRI-S y ATTRI-O de acuerdo con una regla de comparación dada, el tipo de operación y las reglas específicas. El acceso solicitado por la operación es aceptado o rechazado en función del resultado de la comparación.
Una realización especial consiste en implementar el mecanismo de comparación y acción en el hardware; en este caso, un método consiste en transferir la parte superior de la pila a un registro hardware y otro método consiste en implementar toda la pila en el hardware. En arquitecturas simples o con un control de acceso limitado, la gestión del dispositivo puede ser implementada con un hardware específico.
La totalidad o parte del sistema descrito anteriormente puede ser realizada en el hardware.
Además, el conjunto de módulos de dicho sistema puede tener cualquier otra forma y, en particular, algunos módulos de dicho conjunto pueden ser agrupados o también divididos para formar nuevos módulos.
El sistema según la invención está centralizado y es único o jerárquico y presenta mecanismos separados de comparación, acción y gestión.
Por tanto, la invención se refiere a un método para controlar el acceso a objetos 5 almacenados en un espacio de memoria de un sistema informático por un sujeto 3 almacenado en un espacio de programa de dicho sistema, en donde dicho sujeto desea realizar una operación en dichos objetos 5, que se caracteriza porque controla el acceso a dichos objetos 5 a través de un atributo dinámico 8 unido a dicho sujeto 3 cuyo valor es actualizado de acuerdo con los estados presente y anteriores del sujeto.
El atributo del objeto es un ítem de información que caracteriza el área de memoria a la que va dirigida la operación realizada por el sujeto y el atributo de sujeto es un ítem de información que caracteriza el espacio de memoria autorizado asociado con el estado presente y pasado del programa de procesamiento actual, es decir, el sujeto.
El atributo dinámico es un ítem de información del tipo dirección(es) de memoria o un ítem de información del tipo identificador.
Un módulo del sujeto solicita de forma explícita la actualización del atributo dinámico 8 o de forma implícita a través de un mecanismo de interceptación de llamadas subyacente.

Claims (10)

1. Método para controlar el acceso a objetos (5) almacenados en un espacio de memoria de un sistema informático por un sujeto (3) almacenado en un espacio de programa de dicho sistema que desea realizar una operación en dichos objetos (5), que se caracteriza porque controla el acceso a dichos objetos (5) a través de un atributo dinámico (8) unido a dicho sujeto (3) cuyo valor es actualizado de acuerdo con los estados presente y pasado del sujeto.
2. Método de control de acceso de acuerdo con la reivindicación 1, que se caracteriza porque incluye las etapas:
-
una etapa para actualizar el atributo dinámico (8) del sujeto y gestionar dicha actualización;
-
una etapa para comparar un ítem de información que caracteriza el objeto objetivo (5) que es el atributo del objeto y un ítem de información que caracteriza los estados presente y pasado del sujeto (3) que es dicho atributo dinámico del sujeto;
-
una etapa de acción para aceptar o rechazar el acceso dependiendo del resultado de dicha comparación y opcionalmente del tipo de operación y/o reglas predefinidas y guardadas.
3. Método según la reivindicación 1 ó 2, que se caracteriza porque controla el acceso a dicho (s) objeto (s) de acuerdo con el encadenamiento de llamadas entre módulos y la elección de cada módulo de acceder a su propio objeto.
4. Método según una de las reivindicaciones 1 a 3, que se caracteriza porque el mecanismo de actualización de atributo dinámico es de tipo pila, en donde el atributo dinámico utilizado para el control de acceso está en la parte superior de la pila.
5. Método según una de las reivindicaciones 1 a 3, que se caracteriza porque el mecanismo de actualización de atributo dinámico es de tipo lista, siendo el atributo dinámico utilizado para el control de acceso la totalidad de dicha lista.
6. Método según una de las reivindicaciones 1 a 5, que se caracteriza porque consiste en gestionar dicha actualización comprobando la identidad y los derechos de la parte de módulo del sujeto y solicitando la actualización del atributo (8), ya sea esta actualización implícita o explícita, y realizando solamente dicha actualización si el módulo está autorizado para ello.
7. Dispositivo para controlar el acceso de un sujeto (3) almacenado en un espacio de programa de un sistema informático que comprende al menos un medio de memoria y un medio de computación y que desea realizar una operación en objetos (5) almacenados en un espacio de memoria de dicho sistema, que se caracteriza porque comprende un medio para realizar un control de acceso a dichos objetos utilizando un atributo dinámico (8) unido a dicho sujeto (3) y situado en la memoria, cuyo valor es actualizado de acuerdo con los estados presente y pasado del sujeto.
8. Dispositivo según la reivindicación 7, que se caracteriza porque comprende:
-
un mecanismo para actualizar un atributo dinámico del sujeto y gestionar la actualización en función de los estados presente y pasado del sujeto;
-
un mecanismo para comparar un ítem de información que caracteriza el objeto objetivo que es el atributo del objeto y un ítem de información que caracteriza el estado del sujeto que es el atributo dinámico (8) del sujeto, estando dichos ítems de información almacenados en el medio de memoria;
-
un mecanismo de acción para aceptar o rechazar la operación dependiendo del resultado anterior, del tipo de operación y/o de reglas predefinidas.
9. Sistema integrado que se caracteriza porque comprende el dispositivo según la reivindicación 7 ó 8.
10. Programa informático que incluye instrucciones de código de programa para ejecutar las etapas del método según una de las reivindicaciones 1 a 6 cuando dicho programa se ejecuta en un sistema de procesamiento de datos.
ES02804648T 2001-12-12 2002-12-11 Procedimiento y dispositivo de control de acceso en un sistema integrado. Expired - Lifetime ES2331115T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0116054 2001-12-12
FR0116054A FR2833374A1 (fr) 2001-12-12 2001-12-12 Procede et dispositif de controle d'acces dans un systeme embarque

Publications (1)

Publication Number Publication Date
ES2331115T3 true ES2331115T3 (es) 2009-12-22

Family

ID=8870387

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02804648T Expired - Lifetime ES2331115T3 (es) 2001-12-12 2002-12-11 Procedimiento y dispositivo de control de acceso en un sistema integrado.

Country Status (8)

Country Link
US (1) US7363293B2 (es)
EP (1) EP1456759B8 (es)
AT (1) ATE433157T1 (es)
AU (1) AU2002366692A1 (es)
DE (1) DE60232541D1 (es)
ES (1) ES2331115T3 (es)
FR (1) FR2833374A1 (es)
WO (1) WO2003050686A1 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266538B1 (en) * 2002-03-29 2007-09-04 Emc Corporation Methods and apparatus for controlling access to data in a data storage system
US7526347B2 (en) * 2003-02-18 2009-04-28 Fisher-Rosemount Systems, Inc. Security for objects in a process plant configuration system
US7117052B2 (en) * 2003-02-18 2006-10-03 Fisher-Rosemount Systems, Inc. Version control for objects in a process plant configuration system
US7729789B2 (en) 2004-05-04 2010-06-01 Fisher-Rosemount Systems, Inc. Process plant monitoring based on multivariate statistical analysis and on-line process simulation
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7761924B2 (en) * 2004-06-30 2010-07-20 Microsoft Corporation Manipulation of information embedded in content
US8074288B2 (en) * 2005-07-15 2011-12-06 Microsoft Corporation Isolation of application-specific data within a user account
DE102006037493A1 (de) * 2006-08-10 2008-02-14 Giesecke & Devrient Gmbh Tragbarer Datenträger
US8881039B2 (en) 2009-03-13 2014-11-04 Fisher-Rosemount Systems, Inc. Scaling composite shapes for a graphical human-machine interface
US8825183B2 (en) * 2010-03-22 2014-09-02 Fisher-Rosemount Systems, Inc. Methods for a data driven interface based on relationships between process control tags
US8805881B2 (en) 2010-05-06 2014-08-12 International Business Machines Corporation Reputation based access control
US8359328B2 (en) 2010-06-15 2013-01-22 International Business Machines Corporation Party reputation aggregation system and method
US8931048B2 (en) 2010-08-24 2015-01-06 International Business Machines Corporation Data system forensics system and method
US8800029B2 (en) 2010-10-04 2014-08-05 International Business Machines Corporation Gathering, storing and using reputation information
US9516006B2 (en) * 2013-10-23 2016-12-06 Google Inc. Re-programmable secure cryptographic device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2683357A1 (fr) * 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
US5229652A (en) * 1992-04-20 1993-07-20 Hough Wayne E Non-contact data and power connector for computer based modules
US5578808A (en) * 1993-12-22 1996-11-26 Datamark Services, Inc. Data card that can be used for transactions involving separate card issuers
JP2783971B2 (ja) * 1994-01-26 1998-08-06 日本信販株式会社 クレジットカードの発行方法
DE19536169A1 (de) * 1995-09-29 1997-04-03 Ibm Multifunktionale Chipkarte
US6754886B1 (en) * 1998-11-30 2004-06-22 International Business Machines Corporation Method and system for storing java objects in devices having a reduced support of high-level programming concepts
FR2811096A1 (fr) * 2000-06-28 2002-01-04 St Microelectronics Sa Microprocesseur securise comprenant un systeme d'attribution de droits a des librairies

Also Published As

Publication number Publication date
US20050005079A1 (en) 2005-01-06
EP1456759B1 (en) 2009-06-03
DE60232541D1 (de) 2009-07-16
ATE433157T1 (de) 2009-06-15
EP1456759B8 (en) 2010-01-06
EP1456759A1 (en) 2004-09-15
AU2002366692A1 (en) 2003-06-23
FR2833374A1 (fr) 2003-06-13
US7363293B2 (en) 2008-04-22
WO2003050686A1 (en) 2003-06-19

Similar Documents

Publication Publication Date Title
ES2331115T3 (es) Procedimiento y dispositivo de control de acceso en un sistema integrado.
EP1242891B1 (en) Partitioned memory device having characteristics of different memory technologies
US9430409B2 (en) Memory protection
US20020040438A1 (en) Method to securely load and manage multiple applications on a conventional file system smart card
JP3878134B2 (ja) データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法
KR20050113659A (ko) 메모리 장치
JP2006252449A (ja) 不揮発性メモリモジュールおよび不揮発性メモリシステム
GB2356469A (en) Portable data carrier memory management system and method
JP2003196625A (ja) Icカードプログラム及びicカード
CN103699434B (zh) 一种适用于多应用之间安全访问的mpu及其多应用之间安全访问的方法
WO2006005773A1 (es) Método y dispositivo para la compartición de información entre parcelas de memoria de entornos de recursos limitados
EP1433041B1 (en) Access to data stored in an embedded database
EP1456730B1 (en) Method and system for module chaining control in a modular software architecture
US20070118680A1 (en) Method to control the access in a flash memory and system for the implementation of such a method
ES2309569T3 (es) Acceso a elementos de datos en un soporte de datos portatil.
CN116167102A (zh) 用于管理片上系统中的存储器的方法
CN110569205A (zh) 安全系统单芯片及其操作方法
EP3156933A1 (en) System and method of managing application data separation in memory with a dynamically updated data access tree
JPS63286990A (ja) Icカ−ド情報処理システム