ES2893173T3 - Procedimiento de modulación de acceso a un recurso, dispositivo y programa correspondiente - Google Patents

Procedimiento de modulación de acceso a un recurso, dispositivo y programa correspondiente Download PDF

Info

Publication number
ES2893173T3
ES2893173T3 ES17158540T ES17158540T ES2893173T3 ES 2893173 T3 ES2893173 T3 ES 2893173T3 ES 17158540 T ES17158540 T ES 17158540T ES 17158540 T ES17158540 T ES 17158540T ES 2893173 T3 ES2893173 T3 ES 2893173T3
Authority
ES
Spain
Prior art keywords
resource
access
semantic
parameter
program
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.)
Active
Application number
ES17158540T
Other languages
English (en)
Inventor
David Naccache
Rémi Geraud
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.)
Worldline MS France
Original Assignee
Ingenico Group 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 Ingenico Group SA filed Critical Ingenico Group SA
Application granted granted Critical
Publication of ES2893173T3 publication Critical patent/ES2893173T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0414Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

Procedimiento de control de acceso a recursos previamente identificados, procedimiento implementado por un dispositivo electrónico que comprende medios de acceso a dichos recursos a controlar, comprendiendo el procedimiento: - una etapa de recepción (10), procedente de un programa (ApX), de una petición de acceso (RQ) a un recurso actual (RC); - una etapa de obtención (20) de al menos un parámetro (PX) de acceso a dicho recurso actual (RC) dentro de una estructura de datos de caracterización de recursos (StrCR), comprendiendo dicha etapa de obtención (20) de dicho al menos un parámetro (PX): - una etapa de identificación (20-1) del recurso actual (RC) en la estructura de datos de caracterización de recursos (StrCR) en función de un identificador de recurso (IdX), estando el procedimiento caracterizado por que dicha etapa de obtención (20) de dicho al menos un parámetro comprende además: - una etapa de obtención (20-2), dentro de dicha estructura de datos, de un indicador de semántica (SemX) y de al menos un parámetro de modulación (PX-1, PX-2, PX-3); indicando el indicador de semántica si un recurso es de tipo semántico o no semántico, perteneciendo un recurso de tipo semántico a un grupo que comprende: - una cantidad de memoria de acceso aleatorio disponible, - una cantidad de memoria masiva disponible, - una potencia de una señal recibida, - una hora, una fecha, unos datos de reloj, - un consumo eléctrico, - un nivel de batería, - un nivel de carga de un procesador, perteneciendo un recurso de tipo no semántico a un grupo que comprende: - un identificador, - una dirección de memoria, - un número de proceso, - un número de serie, y estando el procedimiento caracterizado por que comprende además: - una etapa de modulación (30) de acceso a dicho recurso actual (RC) en función de dicho al menos un parámetro de acceso (PX) que comprende el indicador de semántica (SemX) y dicho al menos un parámetro de modulación (PX-1, PX-2, PX-3).

Description

DESCRIPCIÓN
Procedimiento de modulación de acceso a un recurso, dispositivo y programa correspondiente
1. Campo
La invención se refiere al control de acceso. La invención se refiere, más particularmente, al control de acceso a recursos informáticos. Más específicamente aún, la invención se refiere al control de acceso, a recursos informáticos, para aplicaciones que se ejecutan en un dispositivo electrónico.
La presente técnica propone una solución al problema de eludir, por aplicaciones maliciosas, las barreras colocadas contra su comunicación cuando se ejecutan en uno o varios procesadores de un dispositivo electrónico.
2. Técnica anterior
La mayoría de los sistemas operativos modernos tienen mecanismos para evitar la comunicación directa entre los procesos independientes. Estos sistemas operativos proporcionan una estricta funcionalidad de control de la comunicación entre procesos. Las tecnologías como el aislamiento de procesos (por ejemplo, direccionamiento virtual, "sandboxing") se pueden implementar en software o hardware. Se especifica que para lo que sigue y para lo que precede, los términos “aplicación”, “programa” y “proceso” se consideran equivalentes, aunque presentan diferencias más o menos significativas.
Es esencial, para las aplicaciones que manejan datos sensibles o que realizan procesamientos seguros, que otra aplicación no pueda robar estos datos sensibles y, de manera más general, que no sea posible exfiltrar los datos sensibles. Ciertos tipos de dispositivos, como los terminales de pago, colocan barreras lógicas para prohibir tal comunicación, conocidas bajo el nombre de "firewalls", autorizando solamente ciertas aplicaciones bien definidas para compartir información a través de un mecanismo
Figure imgf000002_0001
comunicación entre procesos) regido por la política de seguridad del dispositivo.
Sin embargo, existen técnicas que permiten contrarrestar estas medidas de protección. Estas técnicas utilizan, por ejemplo, la tabla de procesos gestionada por el sistema operativo.
La tabla de procesos es una estructura de datos que se gestiona en la memoria de acceso aleatorio del dispositivo (terminal, ordenador, teléfono inteligente, tableta). Esta tabla comprende información sobre los procesos actualmente tratados por el sistema operativo y, en particular, el identificador de estos procesos. En general, esta información se considera inofensiva y es visible para todos los procesos y todos los usuarios. Existen algunas excepciones, en sistemas específicos. Sin embargo, en la gran mayoría de los casos, esta información es visible y utilizable.
Así, las protecciones lógicas colocadas son inoperantes frente a nuevos ataques dirigidos a dicha información auxiliar ("side-channel attacks"). Además de la tabla de identificadores, también se pueden utilizar otras informaciones, como la carga de cálculo del procesador ("load"), el uso de recursos compartidos, la información sobre los procesos en curso, etc.
Así, por ejemplo, cuando se ejecuta un programa, recibe un número de identificador que se registra en la tabla de procesos. Todas las aplicaciones pueden consultar esta tabla. Al decidir si lanzar o no este programa, es posible que una aplicación transmita un 0 o un 1.
Además, en el caso de un sistema operativo en tiempo real (RTOS), la utilización de informaciones físicas (carga del procesador, memoria disponible, etc.) y la ejecución simultánea de varias aplicaciones facilita la comunicación de estas informaciones.
Ahora bien, cada vez con mayor frecuencia, los tipos de dispositivos que antes únicamente se dedicaban a la implementación de funciones seguras (como los terminales de pago) también ofrecen la implementación de funciones no seguras. Tales posibilidades de implementación son requeridas por los clientes de estos dispositivos: quieren poder ejecutar a la vez aplicaciones seguras y aplicaciones no seguras (de tipo publicitario, por ejemplo, para los terminales de pago).
Sin embargo, es difícil controlar el conjunto de las aplicaciones instaladas (las aplicaciones multimedia, por ejemplo, pueden ser creadas por terceros, que no están controlados por el fabricante del dispositivo). Como resultado, una o varias aplicaciones maliciosas pueden potencialmente instalarse en dispositivos que implementan funciones seguras. Estas aplicaciones maliciosas no pueden comunicarse, normalmente, con programas o procesos seguros (debido a la colocación de mecanismos de control de la comunicación entre procesos), pero pueden obtener informaciones secundarias que permiten deducir otras informaciones confidenciales. El artículo "Oversahdow, A Virtualization-Based Approach to Retrofitting", Protection in Commodity Operating Systems, por Xiaoxin Chen et al., describe un procedimiento para proteger el acceso a los recursos por las aplicaciones. Este procedimiento utiliza una primitiva de enmascaramiento, en inglés "cloaking", que ofrece una vista diferente de los recursos a las aplicaciones y al sistema operativo.
El documento US2012159103 describe un procedimiento específicamente adaptado para la protección contra los canales auxiliares. Este procedimiento implementa una paginación sigilosa que evita que las aplicaciones maliciosas accedan a la memoria física que correspondería a las mismas líneas de caché que las utilizadas por la página sigilosa asignada a la aplicación protegida.
Por lo tanto, es necesario proponer una solución que permita hacer más difícil la obtención y la comprensión de informaciones secundarias, pero importantes, en el contexto de una utilización maliciosa de estas informaciones por distintos procesos.
3. Compendio
La técnica propuesta permite evitar al menos algunos de los inconvenientes de la técnica anterior. Así, la técnica propuesta permite ofuscar el comportamiento procedimental y engañar a las aplicaciones maliciosas.
Más particularmente, se describe un procedimiento de control de acceso a recursos previamente identificados, según la reivindicación independiente 1.
Así, a diferencia de las técnicas anteriores, es posible cambiar el acceso a un recurso dado, en función de parámetros que se le adjuntan, en el sistema operativo, o en una tabla de recursos del sistema operativo. Así, es posible no dar acceso directo desde el sistema operativo, a los recursos, sino difuminar de alguna manera el acceso al recurso en función de parámetros de acceso específicos.
La etapa de obtención de al menos un parámetro comprende:
- una etapa de identificación del recurso actual en la estructura de datos de caracterización de recursos en función de un identificador de recurso;
- una etapa de obtención, dentro de dicha estructura de datos, de un indicador de semántica y de al menos un parámetro de modulación.
El indicador de semántica es una representación del carácter semántico o no de un recurso.
Según un modo de realización particular, en función del indicador de semántica, la etapa de modulación comprende: - una implementación de una etapa de enmascaramiento de datos no semánticos; o
- una implementación de una etapa de enmascaramiento de datos semánticos;
- una y otra de estas dos etapas de enmascaramiento se implementan en función de los parámetros de modulación.
Así, la modulación es de naturaleza paramétrica. Es posible así modular el acceso a los recursos en función de sus características semánticas. Esto simplifica y aumenta enormemente la eficacia del enmascaramiento (del desenfoque). También evita, de paso, que un atacante discierna un patrón de enmascaramiento. En efecto, como todas las modulaciones de acceso a los recursos están parametrizadas, es posible diferenciar los procesamientos previos al acceso a cada una de ellas.
Según un modo de realización particular, la etapa de enmascarar datos no semánticos comprende:
- una etapa de obtención de un código cA correspondiente al programa;
- una etapa de cálculo de un cifrado Crx = E(RC, cA) del recurso actual por cA;
- una etapa de transmisión del cifrado Crx a dicho programa.
Así, de manera muy inusual, en lugar de transmitir un recurso al programa que realiza la llamada, se transmite un cifrado del recurso, con el que, a priori, el programa no puede hacer nada. Solamente cuando el programa requiera un acceso eficaz a este recurso, este último será descifrado por el sistema operativo. Así, un programa malicioso, que intercepta el recurso cifrado transmitido, no puede tener acceso real a este recurso en lugar del programa que realiza la llamada.
Según un modo de realización particular, la etapa de enmascarar datos no semánticos comprende:
- una etapa de recepción, procedente del programa, de un cifrado Crx del recurso actual RC;
- una etapa de obtención de un código cA correspondiente al programa;
- una etapa de descifrado RC = E-1(Crx, cA) suministrando el valor del recurso actual RC;
- una etapa de implementación de una operación requerida por el programa en el recurso actual.
Así, el programa que realiza la llamada no tiene acceso directo al recurso. Para poder obtener un valor asociado a este recurso, el programa que realiza la llamada está obligado a pasar por una etapa de descifrado, etapa que es conducida por el sistema operativo, a petición del programa, en función del cifrado anteriormente transmitido.
Según otro aspecto, también se describe un módulo de control de acceso a recursos previamente identificados, según la reivindicación independiente 5.
Tales medios se presentan, por ejemplo, en forma de circuitos impresos, de tipo FCPGA o micro-FCPGA, por ejemplo, conectados entre sí por circuitos adecuados, y que comprenden mecanismos de protección contra intrusiones. Estos mecanismos permiten asegurar que el módulo no pueda ser objeto (o con gran dificultad) de un ataque físico contra el mismo.
También se describe, según otro aspecto, un dispositivo electrónico del tipo que comprende un procesador, una memoria de acceso aleatorio y una memoria de almacenamiento, comprendiendo el dispositivo también un sistema operativo, que se ejecuta dentro de la memoria de acceso aleatorio y que permite el acceso a los recursos de dicho dispositivo electrónico. Tal dispositivo comprende al menos un módulo de control de acceso a dichos recursos, tal como se describe anteriormente.
Según una implementación preferida, las distintas etapas de los procedimientos según la invención son implementadas por uno o varios elementos de software o programas de ordenador, que comprenden instrucciones lógicas destinadas a ser ejecutadas por un procesador de datos de un dispositivo según la invención y que están concebidas para controlar la ejecución de las distintas etapas de los procedimientos.
En consecuencia, la invención también tiene por objetivo un programa, capaz de ser ejecutado por un ordenador o por un procesador de datos, comprendiendo este programa instrucciones para controlar la ejecución de las etapas de un procedimiento, tal como se mencionó anteriormente.
Este programa puede utilizar cualquier lenguaje de programación y adoptar la forma de código fuente, código objeto o código intermedio entre código fuente y código objeto, tal como en una forma parcialmente compilada, o en cualquier otra forma deseable.
La invención también tiene por objetivo un soporte de información legible por un procesador de datos, y que comprende instrucciones de un programa, tal como se mencionó anteriormente.
El soporte de información puede ser cualquier entidad o dispositivo capaz de almacenar el programa. Por ejemplo, el soporte puede comprender un medio de almacenamiento, tal como una ROM, por ejemplo un CD ROM o una ROM de circuito microelectrónico, o bien un medio de registro magnético, por ejemplo un disquete (disco flexible) o un disco duro.
Por otro lado, el soporte de información puede ser un soporte transmisible, tal como una señal eléctrica u óptica, que puede ser transmitida a través de un cable eléctrico u óptico, por radio o por otros medios. El programa según la invención se puede descargar, en particular, en una red de tipo Internet.
Alternativamente, el soporte de información puede ser un circuito integrado en el que se incorpora el programa, estando el circuito adaptado para ejecutar o para ser utilizado en la ejecución del procedimiento en cuestión.
Según un modo de realización, la invención se implementa mediante componentes de software y/o hardware. Desde esta perspectiva, el término “módulo” puede corresponder en este documento tanto a un componente de software, como a un componente de hardware o a un conjunto de componentes de hardware y software.
Un componente de software corresponde a uno o varios programas de ordenador, uno o varios subprogramas de un programa o, más en general, a cualquier elemento de un programa o de un software capaz de implementar una función o un conjunto de funciones, según lo que se describe a continuación para el módulo en cuestión. Tal componente de software es ejecutado por un procesador de datos de una entidad física (terminal, servidor, pasarela, rúter, etc.) y es capaz de acceder a los recursos materiales de esta entidad física (memorias, soportes de grabación, bus de comunicación, tarjetas electrónicas de entrada/salida, interfaces de usuario, etc.).
De la misma manera, un componente de hardware corresponde a cualquier elemento de un conjunto de hardware (o hardware) capaz de implementar una función o un conjunto de funciones, según lo que se describe a continuación para el módulo en cuestión. Puede tratarse de un componente de hardware programable o con un procesador integrado para la ejecución de software, por ejemplo un circuito integrado, una tarjeta inteligente, una tarjeta de memoria, una tarjeta electrónica para la ejecución de un microsoftware (firmware), etc.
Cada componente del sistema descrito anteriormente implementa por supuesto sus propios módulos de software.
Los distintos modos de realización mencionados anteriormente se pueden combinar entre sí para la implementación de la invención.
4. Dibujos
Otras características y ventajas de la invención serán más evidentes al leer la siguiente descripción de un modo de realización preferido, proporcionado a título de simple ejemplo ilustrativo y no limitativo, y los dibujos adjuntos, en los que:
- la figura 1 presenta un cuadro sinóptico de la técnica propuesta;
- la figura 2 presenta un cuadro sinóptico de la modulación del acceso a los recursos;
- la figura 3 describe la modulación del acceso a un recurso no semántico;
- la figura 4 describe sucintamente un dispositivo de implementación.
5. Descripción
5.1. Recordatorio del principio general
Como se explicó anteriormente, se busca evitar que una aplicación, o un programa que se ejecuta en un dispositivo electrónico, transmita o reciba informaciones de la parte del sistema operativo y/o de la parte de otras aplicaciones o programas. El principio general de la técnica se presenta en relación con la figura 1. Así, se implementa una técnica particular, que es el objeto de la presente invención. Esta técnica adopta la forma de un procedimiento de control de acceso a recursos previamente identificados, comprendiendo el procedimiento una etapa de recepción (10), procedente de un programa (ApX), una petición de acceso (RQ) a un recurso actual (RC); una etapa de obtención (20) de al menos un parámetro (PX) de acceso a dicho recurso actual (RC) dentro de una estructura de datos de caracterización de recursos (StrCR); una etapa de modulación (30) de acceso a dicho recurso actual (RC) en función de dicho al menos un parámetro de acceso (PX) obtenido de antemano. Así, a diferencia de los métodos de la técnica anterior, en los que las barreras de comunicación entre procesos (o entre programas o entre aplicaciones) son altas, el procedimiento de la invención comprende la implementación de una modulación de acceso a los recursos, a priori compartidos, del sistema operativo, con el fin de evitar o dificultar la correlación de información pública para un programa o una aplicación maliciosa.
La estructura de datos en la que se basa la presente técnica puede tener la forma de una tabla, que comprende un identificador del recurso, un indicador de semántica y uno o varios parámetros de modulación de acceso. El indicador de semántica es una representación del carácter semántico o no de un recurso. Como se explicará más adelante, en relación con los distintos modos de realización y variantes, los parámetros de modulación de acceso al recurso pueden presentarse en forma de claves de cifrado, en forma de valores de aumento o disminución o, incluso, en forma de número aleatorio. El tipo de parámetro asociado con un identificador de recurso está predefinido: el diseñador de un sistema que es objeto de la presente invención decide, durante la implementación de este sistema, el tipo de parámetro que está asociado con un identificador de recurso dado. Por ejemplo, para un acceso a un identificador de proceso, el tipo de parámetro es, por ejemplo, un cifrado y el parámetro como tal (es decir, su valor) es una clave de cifrado previamente determinada por el diseñador o un puntero hacia un generador de claves de cifrado (que genera una clave sobre la marcha, pudiendo luego almacenarla para un uso futuro destinado a ese identificador de recurso). En otras palabras, el principio general del sistema y del procedimiento propuesto consiste en la implementación de un mecanismo de interrupción específico, mecanismo implementado por el sistema operativo, que modula de manera predeterminada el acceso a los recursos comprensibles por el sistema operativo en función del parámetro de modulación y de un tipo de recurso.
De manera complementaria, la modulación del acceso a los recursos va acompañada de un mecanismo de bloqueo de acceso. Más particularmente, el acceso a un recurso dado por un programa o un proceso va acompañado de un bloqueo del acceso a este recurso para los otros programas (o procesos). Este bloqueo puede adoptar varias formas. En una configuración particular, el bloqueo es bidireccional: ningún otro proceso está autorizado a leer o a escribir un valor relacionado con el recurso cuando un proceso actual utiliza este último. En otra configuración particular, el bloqueo es unidireccional: solamente se autoriza una operación de la misma naturaleza que la implementada por el proceso actual; por ejemplo, en el caso de un intento de acceso al mismo recurso, el módulo de control de acceso no autoriza el acceso al proceso actual para leer el recurso y un segundo proceso para escribir en este mismo recurso al mismo tiempo. A continuación se presenta una implementación detallada de este bloqueo.
5.2. Modulación de acceso a recursos
En la actualidad, existe un módulo de control de acceso que realiza la modulación de acceso a los recursos. Este módulo está gestionado por el sistema operativo. En función de las configuraciones, este módulo de control es independiente del sistema operativo o está directamente integrado en el mismo. El sistema operativo llama a este módulo cuando recibe una petición de acceso a un recurso (por ejemplo, de un proceso). La petición de acceso a un recurso puede adoptar la forma de una interrupción, como es el caso de ciertos sistemas operativos, de tipo Linux. También se pueden implementar otros mecanismos de petición.
El módulo, por su parte, tiene acceso a una tabla de recursos, en la que se identifican al menos ciertos recursos. Esta tabla de recursos comprende, por ejemplo, los identificadores de recursos que el fabricante del dispositivo considera potencialmente portadores de información que permiten realizar ataques por canales ocultos. Entre los recursos previsibles, se pueden citar, en particular, la carga del procesador, los identificadores de proceso (PID), la memoria disponible, la fecha, la hora, los datos de reloj como regla general, pero también la entrada de sonido, la salida de sonido, el periférico de salida (pantalla, impresora), el periférico de entrada (teclado), la intensidad de la señal medida (señal inalámbrica wifi, Bluetooth, NFC), etc.
Dentro de la tabla de recursos, se encuentra, para cada recurso introducido, un identificador de recurso, una indicación del carácter semántico o no del recurso y uno o varios parámetros que permiten modular el acceso a este recurso.
El principio implementado en el control de acceso se presenta en relación con la figura 2. La etapa de obtención de un parámetro comprende una etapa de identificación (20-1) del recurso actual (RC) en la estructura de datos de caracterización de recursos (StrCR) en función de un identificador de recurso (IdX); y una etapa de obtención (20-2) de un indicador de semántica (SemX) y de al menos un parámetro de modulación (PX-1, PX-2, PX-3). En función del indicador de semántica (SemX), la etapa de modulación (30) comprende la implementación de una etapa de enmascaramiento (30-1) de datos no semánticos; o la implementación de una etapa de enmascaramiento (30-2) de datos semánticos. Una y otra de estas dos etapas de enmascaramiento se implementan en función de los parámetros de modulación (PX-1, PX-2, PX-3).
Así, cuando un recurso se tipifica como recurso semántico, la modulación consiste en transmitir a los procesos información contaminada con un error (es decir, información inexacta o parcialmente inexacta). Así, cualquier recurso compartido por al menos dos aplicaciones que tengan un valor semántico (p. ej., memoria disponible) está contaminado con un error. Este error es lo suficientemente pequeño como para que el funcionamiento de la aplicación no se vea afectado, pero lo suficientemente grande como para interferir un posible canal auxiliar.
Cuando un recurso no se tipifica como recurso semántico, la modulación consiste, en un modo de realización, en la transmisión de un dato cifrado. En otras palabras, cualquier recurso compartido por al menos dos aplicaciones que no tengan un valor semántico (p. ej., identificador) está enmascarado de la siguiente manera: un código, único para cada aplicación, conocido del sistema operativo (o del módulo de control), sirve para cifrar el recurso. El sistema operativo (o el módulo de control) transmite el recurso cifrado a la aplicación. Cuando la aplicación desea utilizar el recurso, comunica este dato cifrado, que el sistema operativo (o el módulo de control) descifra (y, posiblemente, vuelve a cifrar, de otra manera, para transmitirlo a una aplicación de terceros). En otros modos de realización, se pueden emplear otros procesos de enmascaramiento: por ejemplo, en lugar de cifrar los datos no semánticos, es posible dar acceso a los mismos por un proceso de desplazamiento, que consiste en proporcionar un acceso por puntero, siendo dicho puntero representativo de una dirección que se modifica en cada acceso al recurso. Así, por ejemplo, en lugar de transmitir el valor de un recurso, se transmite un puntero que apunta al recurso. El truco consiste, antes de esta transmisión, en copiar el recurso en una zona de memoria diferente cada vez. En consecuencia, se transmite un puntero que apunta a una zona de memoria diferente cada vez, de modo que una aplicación actual recibirá un puntero hacia una zona de memoria diferente de la que apunta al puntero transmitido a otra aplicación. Una vez utilizada por la aplicación, se borra (por ejemplo, se reemplaza por instrucciones nulas) la zona de memoria que contiene el recurso.
5.2.1. Enmascaramiento de datos no semánticos mediante cifrado
Para enmascarar los datos que no tienen valor semántico, el sistema operativo utiliza un procedimiento de cifrado simétrico. Este procedimiento puede ser un cifrado por XOR. Cada aplicación tiene un código único determinado por el sistema operativo y guardado en secreto. Este código se puede determinar cuando se lanza la aplicación, cuando se inicia el dispositivo o cuando se utiliza por primera vez un recurso compartido. Este código se puede elegir, por ejemplo, como un número aleatorio de tamaño suficiente. El principio de enmascaramiento de datos no semánticos (30-1) se describe en relación con la figura 3.
Cuando una aplicación AAp requiere (R0) el recurso compartido RX, se implementa el siguiente método:
- el módulo de control recupera (30-11) (por ejemplo, procedente de la tabla de recursos, ver anteriormente) el código cA correspondiente al programa ApX;
- el módulo de control calcula (30-12) el cifrado Crx = E(X, cA) del recurso actual (RC) por cA;
- el módulo de control (o el sistema operativo) transmite (30-13) Crx al programa ApX.
Así, no es el recurso actual (RC) en sí mismo el que se transmite a la aplicación que realiza la llamada (AAp), sino un cifrado del recurso. Por ejemplo, cuando el recurso corresponde a una dirección de memoria, la aplicación solicita, dirigiéndose al sistema operativo, una ubicación de memoria. El sistema operativo (utilizando el módulo de control) transmite, no la dirección, sino un cifrado de la misma.
Cuando el programa ApX desea (a continuación o inmediatamente) utilizar el recurso compartido, se implementa el siguiente método:
- el programa ApX transmite (30-14) el cifrado Crx al sistema operativo (que lo transmite al módulo de control);
- el módulo de control (30-15) recupera el código cA correspondiente al programa ApX, por ejemplo en la tabla de recursos;
- el módulo de control (30-16) descifra RX = E-1(Crx, cA) y recupera el valor de RX;
- opcionalmente, el módulo de control transmite (30-16-1) el valor RX al sistema operativo (cuando el módulo de control es independiente del sistema operativo);
- el sistema operativo realiza (30-17) la operación solicitada por el programa ApX en el recurso actual (RC).
Así, por ejemplo, cuando la aplicación desea escribir en la dirección de memoria RX, transmite la dirección Crx al sistema operativo (con el valor a escribir en esta dirección). El sistema operativo o el módulo de control (en función de la configuración) descifra Crx y escribe en la memoria.
Cuando una segunda aplicación (por ejemplo BAp) desea acceder al recurso actual (RC), las mismas etapas que las descritas anteriormente se implementan con una diferencia: el módulo de control es responsable de cifrar (y descifrar) el recurso con un código cB correspondiente a la aplicación BAp.
Este enmascaramiento es transparente para las aplicaciones. Este enmascaramiento también permite afectar de manera importante al trabajo de observación de un atacante porque no puede, incluso si controla una aplicación (por ejemplo, la AAp), conocer realmente los valores de los recursos no semánticos.
Los recursos compartidos que no tienen valor semántico son, por ejemplo: números de serie, identificadores, direcciones de memoria, número de proceso, etc.
5.2.2. Enmascaramiento de datos semánticos
Para los datos que tienen un valor semántico, el enmascaramiento consiste en transmitir a las aplicaciones un valor contaminado con un error. Este error está determinado por la variabilidad del dato: un dato que puede variar rápidamente (p. ej., un reloj rápido) sufrirá una corrección más fuerte que un dato que puede variar lentamente (p. ej., un día del año).
Este enmascaramiento afecta a las aplicaciones y no se puede aplicar necesariamente a todos los datos, pero tiene poca incidencia cuando los datos se relacionan con medidas físicas (p. ej., la potencia de la señal NFC). Se ha de tener en cuenta que todas las aplicaciones reciben información ligeramente diferente. Así, por ejemplo, para una aplicación que requiere información relacionada con la cantidad de memoria de acceso aleatorio disponible dentro del terminal, se implementa el procedimiento descrito anteriormente. Comprende la identificación del recurso solicitado y la obtención de un parámetro de modulación para este recurso. El parámetro de modulación típico para este recurso es una función de obtención de un número aleatorio o impredecible. Así, antes de proporcionar un valor relativo a este recurso, se obtiene un número aleatorio (posiblemente acotado); este número aleatorio luego se suma o se resta de la cantidad real de memoria disponible; para terminar, el resultado del cálculo anterior se transmite al programa que realiza la llamada. Así, otro programa que realiza la llamada no podrá obtener el mismo valor que el transmitido anteriormente. Este ejemplo también se puede aplicar a la carga del procesador principal del dispositivo o a la carga de un procesador secundario (por ejemplo, un procesador de cifrado y/o un procesador de tratamiento de datos de vídeo).
Otros recursos compartidos que tienen un valor semántico son, por ejemplo: memoria masiva disponible, hora, consumo eléctrico, nivel de batería, etc.
Así, con esta modulación de los valores semánticos, un programa atacante (malicioso) no puede, de manera sencilla, seguir las evoluciones y/o las modificaciones que se producen en el comportamiento del dispositivo. Así, es difícil seguir el comportamiento de un programa específico que se ejecuta en el dispositivo y, por lo tanto, es difícil realizar un ataque por canales ocultos.
5.3. Bloqueos mutuos de procesos
En esta sección, se presenta el mecanismo de bloqueo de acceso a los recursos.
Como se presentó anteriormente, hay dos tipos de bloqueo: un bloqueo bidireccional o un bloqueo monodireccional.
En el bloqueo bidireccional, se lleva a cabo un bloqueo completo del recurso siempre que sea utilizado por un proceso actual. Esto significa que no se permite que ningún otro proceso obtenga acceso al recurso mientras el mismo esté en uso por el proceso actual. Para compensar esta falta de acceso al recurso, el módulo de control, ante la recepción de una petición de acceso al recurso por otro proceso, implementa un bucle de espera durante el que se puso el otro proceso en espera para el acceso al recurso. Cuando el proceso actual libera el acceso al recurso, el módulo de control autoriza el acceso al otro proceso.
En el bloqueo monodireccional, se efectúa una exclusión mutua diferenciada en función de la operación realizada por el proceso actual. Así, en un modo de realización particular, el mecanismo de exclusión mutua obedece a la siguiente regla: para cualquier canal, una aplicación bloquea el acceso de lectura (respectivamente, de escritura) mientras que mantiene el acceso de escritura (respectivamente, de lectura).
Esta noción debe entenderse en un sentido amplio: por ejemplo, una aplicación que solicita leer la carga del procesador, si tiene acceso a la misma, al hacerlo bloquea la ejecución de otras aplicaciones o procesos (que podrían modificar el valor). Se entiende, a través de este ejemplo, que un proceso distinto del proceso actual no tiene acceso directo al recurso de "carga del procesador". En cambio, el simple hecho de lanzar un nuevo proceso puede modificar la carga del procesador y, así, dar una indicación del aumento de la carga del procesador al proceso actual que intenta tener acceso a la misma.
Así, este bloqueo consiste por lo tanto en imponer que cualquier aplicación que solicite acceso a un modo de comunicación de lectura bloquee las otras aplicaciones que deseen escribir por este modo y, a la inversa, que cualquier escritura bloquee un intento de leer en el mismo modo.
En términos generales, se puede bloquear cualquier recurso: por ejemplo, si una aplicación utiliza un micrófono, el acceso a los periféricos que producen sonido se bloquea para todas las otras aplicaciones. (En ciertos contextos, la impresora integrada en el terminal puede producir sonido).
Se pueden admitir excepciones cuando los periféricos de captura y emisión tienen dominios muy diferentes (p. ej., pantalla y sensor NFC, que utilizan, ambos, partes disjuntas del espectro electromagnético).
Esta exclusión mutua está garantizada por el módulo de control de acceso del sistema operativo. Alternativamente, en lugar de un bloqueo estricto, el módulo de control de acceso del sistema operativo puede retrasar la ejecución de aplicaciones de riesgo.
5.4. Otras características y ventajas
En relación con la figura 4, se describe un dispositivo electrónico implementado para controlar el uso de recursos, según el procedimiento descrito anteriormente.
Por ejemplo, el dispositivo electrónico comprende una memoria 41 constituida por una memoria tampón, una unidad de procesamiento 42, equipada, por ejemplo, con un microprocesador y controlada por el programa informático 43, que implementa un procedimiento de control. En la inicialización, las instrucciones de código del programa de ordenador 43 se cargan, por ejemplo, en una memoria antes de ser ejecutadas por el procesador de la unidad de procesamiento 42. La unidad de procesamiento 42 recibe en la entrada al menos un dato representativo de un recurso al que desea acceder una aplicación. El microprocesador de la unidad de procesamiento 42 implementa las etapas del procedimiento, según las instrucciones del programa informático 43 para modular el acceso al recurso, si es necesario agregando un bloqueo de dicho recurso para otras aplicaciones. Como se explicó, la modulación del acceso llama a una estructura de datos que comprende, para los recursos, parámetros de modulación.
Para ello, el dispositivo electrónico comprende, además de la memoria tampón 41, medios de comunicación, tales como módulos de comunicación de red, medios de transmisión de datos y, posiblemente, un procesador de cifrado dedicado.
El conjunto de estos medios puede adoptar la forma de un procesador modular particular implementado dentro del dispositivo, siendo dicho procesador un procesador seguro. Según un modo de realización particular, este dispositivo electrónico implementa una aplicación particular que se encarga de llevar a cabo el cifrado y la transmisión de datos, siendo esta aplicación, por ejemplo, proporcionada por el fabricante del procesador en cuestión a fin de permitir el uso de dicho procesador. Para hacer esto, el procesador comprende medios de identificación únicos. Estos medios de identificación únicos permiten asegurar la autenticidad del procesador.

Claims (7)

REIVINDICACIONES
1. Procedimiento de control de acceso a recursos previamente identificados, procedimiento implementado por un dispositivo electrónico que comprende medios de acceso a dichos recursos a controlar, comprendiendo el procedimiento:
- una etapa de recepción (10), procedente de un programa (ApX), de una petición de acceso (RQ) a un recurso actual (RC);
- una etapa de obtención (20) de al menos un parámetro (PX) de acceso a dicho recurso actual (RC) dentro de una estructura de datos de caracterización de recursos (StrCR), comprendiendo dicha etapa de obtención (20) de dicho al menos un parámetro (PX):
- una etapa de identificación (20-1) del recurso actual (RC) en la estructura de datos de caracterización de recursos (StrCR) en función de un identificador de recurso (IdX), estando el procedimiento caracterizado por que dicha etapa de obtención (20) de dicho al menos un parámetro comprende además:
- una etapa de obtención (20-2), dentro de dicha estructura de datos, de un indicador de semántica (SemX) y de al menos un parámetro de modulación (PX-1, PX-2, PX-3); indicando el indicador de semántica si un recurso es de tipo semántico o no semántico, perteneciendo un recurso de tipo semántico a un grupo que comprende:
- una cantidad de memoria de acceso aleatorio disponible,
- una cantidad de memoria masiva disponible,
- una potencia de una señal recibida,
- una hora, una fecha, unos datos de reloj,
- un consumo eléctrico,
- un nivel de batería,
- un nivel de carga de un procesador,
perteneciendo un recurso de tipo no semántico a un grupo que comprende:
- un identificador,
- una dirección de memoria,
- un número de proceso,
- un número de serie, y estando el procedimiento caracterizado por que comprende además: - una etapa de modulación (30) de acceso a dicho recurso actual (RC) en función de dicho al menos un parámetro de acceso (PX) que comprende el indicador de semántica (SemX) y dicho al menos un parámetro de modulación (PX-1, PX-2, PX-3).
2. Procedimiento de control de acceso según la reivindicación 1, caracterizado por que, en función del indicador de semántica (SemX), la etapa de modulación (30) comprende:
- una implementación de una etapa de enmascaramiento (30-1) de datos no semánticos; o
- una implementación de una etapa de enmascaramiento (30-2) de datos semánticos;
- una y otra de estas dos etapas de enmascaramiento se implementan en función de los parámetros de modulación (PX-1, PX-2, PX-3).
3. Procedimiento de control de acceso según la reivindicación 2, caracterizado por que la etapa de enmascaramiento (30-1) de datos no semánticos comprende:
- una etapa de obtención (30-11) de un código cA correspondiente al programa ApX;
- una etapa de cálculo (30-12) de un cifrado Crx = E(RC, cA) del recurso actual (RC) por cA;
- una etapa de transmisión (30-13) del cifrado Crx a dicho programa ApX.
4. Procedimiento de control de acceso según la reivindicación 2, caracterizado por que la etapa de enmascaramiento (30-1) de datos no semánticos comprende:
- una etapa de recepción (30-14), procedente del programa ApX, de un cifrado Crx del recurso actual RC; - una etapa de obtención (30-15) de un código cA correspondiente al programa ApX;
- una etapa de descifrado (30-16) descifra RC = E' 1(Crx, cA) suministrando el valor del recurso actual RC; - una etapa de implementación (30-17) de una operación requerida por el programa ApX en el recurso actual (RC).
5. Módulo de control de acceso a recursos previamente identificados, módulo implementado dentro de un dispositivo electrónico que comprende medios de acceso a dichos recursos a controlar, comprendiendo el módulo:
- medios de recepción (10), procedentes de un programa (ApX), de una petición de acceso (RQ) a un recurso actual (RC);
- medios de obtención (20) de al menos un parámetro (PX) de acceso a dicho recurso actual (RC) dentro de una estructura de datos de caracterización de recursos (StrCR), que comprende:
- medios de identificación (20-1) del recurso actual (RC) en la estructura de datos de caracterización de recursos (StrCR) en función de un identificador de recurso (IdX), estando el módulo caracterizado por que los medios de obtención (2) comprenden además:
- medios de obtención (20-2), dentro de dicha estructura de datos, de un indicador de semántica (SemX) y de al menos un parámetro de modulación (PX-1, PX-2, PX-3), indicando el indicador de semántica si un recurso es de tipo semántico o no semántico, perteneciendo un recurso de tipo semántico a un grupo que comprende:
- una cantidad de memoria de acceso aleatorio disponible,
- una cantidad de memoria masiva disponible,
- una potencia de una señal recibida,
- una hora, una fecha, unos datos de reloj,
- un consumo eléctrico,
- un nivel de batería,
- un nivel de carga de un procesador,
perteneciendo un recurso de tipo no semántico a un grupo que comprende:
- un identificador,
- una dirección de memoria,
- un número de proceso,
- un número de serie, y estando el módulo caracterizado por que comprende además: - medios de modulación (30) de acceso a dicho recurso actual (RC) en función de dicho al menos un parámetro de acceso (PX) que comprende el indicador de semántica (SemX) y dicho al menos un parámetro de modulación (PX-1, PX-2, PX-3).
6. Dispositivo electrónico del tipo que comprende un procesador, una memoria de acceso aleatorio y una memoria de almacenamiento, comprendiendo el dispositivo también un sistema operativo, que se ejecuta dentro de la memoria de acceso aleatorio y que permite el acceso a los recursos de dicho dispositivo electrónico, estando el dispositivo caracterizado por que comprende al menos un módulo de control de acceso a dichos recursos, tal como el descrito en la reivindicación 5.
7. Producto de programa informático descargable de una red de comunicación y/o almacenado en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado por que comprende instrucciones de código de programa para la ejecución de un procedimiento de control de acceso según la reivindicación 1, cuando se ejecuta en un ordenador.
ES17158540T 2016-03-01 2017-02-28 Procedimiento de modulación de acceso a un recurso, dispositivo y programa correspondiente Active ES2893173T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1651714A FR3048529B1 (fr) 2016-03-01 2016-03-01 Procede de modulation d'acces a une ressource, dispositif et programme correspondant

Publications (1)

Publication Number Publication Date
ES2893173T3 true ES2893173T3 (es) 2022-02-08

Family

ID=56372962

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17158540T Active ES2893173T3 (es) 2016-03-01 2017-02-28 Procedimiento de modulación de acceso a un recurso, dispositivo y programa correspondiente

Country Status (4)

Country Link
US (1) US11227054B2 (es)
EP (1) EP3214565B1 (es)
ES (1) ES2893173T3 (es)
FR (1) FR3048529B1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736466B2 (en) * 2019-09-18 2023-08-22 Bioconnect Inc. Access control system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
US6263445B1 (en) * 1998-06-30 2001-07-17 Emc Corporation Method and apparatus for authenticating connections to a storage system coupled to a network
US20040243845A1 (en) * 2002-02-01 2004-12-02 Larsen Vincent Alan System and method for process-based security in a network device
JP4007873B2 (ja) * 2002-07-09 2007-11-14 富士通株式会社 データ保護プログラムおよびデータ保護方法
US7437766B2 (en) * 2002-10-03 2008-10-14 Sandia National Laboratories Method and apparatus providing deception and/or altered operation in an information system operating system
DE10341096A1 (de) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
JP4643479B2 (ja) * 2006-03-22 2011-03-02 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法
US8996814B2 (en) * 2010-12-21 2015-03-31 Microsoft Technology Licensing, Llc System and method for providing stealth memory
WO2014065801A1 (en) * 2012-10-25 2014-05-01 Empire Technology Development Llc Secure system time reporting
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US9509707B2 (en) * 2014-06-24 2016-11-29 Qualcomm Incorporated Methods and systems for thwarting side channel attacks

Also Published As

Publication number Publication date
EP3214565A1 (fr) 2017-09-06
US20170255787A1 (en) 2017-09-07
US11227054B2 (en) 2022-01-18
EP3214565B1 (fr) 2021-07-07
FR3048529B1 (fr) 2018-03-23
FR3048529A1 (fr) 2017-09-08

Similar Documents

Publication Publication Date Title
US10552645B2 (en) Method for secure communications using NFC cryptographic security module
CN108781210B (zh) 具有可信执行环境的移动设备
CN101661544B (zh) 在主显示器内提供安全显示窗口的方法和设备
CN104156642B (zh) 一种基于安全触控屏控制芯片的安全密码输入系统和方法
EP2630607B1 (en) Method and apparatus including architecture for protecting sensitive code and data
US7299364B2 (en) Method and system to maintain application data secure and authentication token for use therein
EP2672673B1 (en) Apparatus and method for secure data processing
US20160380985A1 (en) Binding a trusted input session to a trusted output session
TW201723920A (zh) 硬體強制單向密碼學
WO2005091109A1 (en) Device with a cryptographic coprocessor
Atamli-Reineh et al. Analysis of trusted execution environment usage in samsung KNOX
JP2014081613A (ja) セッション状態情報の暗号化および復号化方法
Zhang et al. SoftME: A Software‐Based Memory Protection Approach for TEE System to Resist Physical Attacks
Guan et al. Building a trustworthy execution environment to defeat exploits from both cyber space and physical space for ARM
Tychalas et al. SGXCrypter: IP protection for portable executables using Intel's SGX technology
US20190220419A1 (en) Secure electronic device
Jang et al. Retrofitting the partially privileged mode for TEE communication channel protection
US10601592B2 (en) System and method trusted workspace in commercial mobile devices
ES2893173T3 (es) Procedimiento de modulación de acceso a un recurso, dispositivo y programa correspondiente
KR20100006309A (ko) 위치 기반 정보 보호 시스템 및 그 방법
KR20140089703A (ko) 모바일 데이터 보안 장치 및 방법
Khalid et al. Hardware-Assisted Isolation Technologies: Security Architecture and Vulnerability Analysis
JP2020201526A (ja) 暗号処理用プラット―フォーム
Liao et al. FSPDE: A Full Stack Plausibly Deniable Encryption System for Mobile Devices
ES2853574T3 (es) Almacenamiento de memoria seguro