ES2803209T3 - Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo - Google Patents

Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo Download PDF

Info

Publication number
ES2803209T3
ES2803209T3 ES16166334T ES16166334T ES2803209T3 ES 2803209 T3 ES2803209 T3 ES 2803209T3 ES 16166334 T ES16166334 T ES 16166334T ES 16166334 T ES16166334 T ES 16166334T ES 2803209 T3 ES2803209 T3 ES 2803209T3
Authority
ES
Spain
Prior art keywords
control device
memory area
platform
message
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES16166334T
Other languages
English (en)
Inventor
Adrien Duprez
Olivier Grisal
Eric Saliba
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 SA
Original Assignee
Thales 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 Thales SA filed Critical Thales SA
Application granted granted Critical
Publication of ES2803209T3 publication Critical patent/ES2803209T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Procedimiento de control sistemático por un dispositivo de control (10) de al menos un mensaje de configuración de transferencia, siendo el mensaje de configuración de transferencia un mensaje de configuración de una transferencia por acceso directo desde una aplicación (App) que se ejecuta en una plataforma (12) hacia una zona de memoria (M1, M2) usada por al menos un periférico de hardware externo (16), comprendiendo la plataforma (12) una o varias interfaces físicas, de manera que el periférico (16) está conectado con la plataforma (12) por medio de una o varias interfaces físicas de la plataforma (12), el periférico (16) usa una pluralidad de zonas de memoria (M1, M2), cada zona de memoria (M1, M2) está caracterizada por una dirección física única (@P1, @P2), el mensaje de configuración de una transferencia comprende al menos un campo y un cuerpo, el campo refiere una dirección física de una zona de memoria (M1, M2), el dispositivo de control (10) pertenece a la plataforma (12) e implementa al menos una de las funciones siguientes: - una función de verificación (CHECK), - una función de sincronización (SYNCHRO), - una función de bloqueo (FREEZE), - una función de alerta (ALERT), y - una función de configuración del dispositivo de control (10) con una política de seguridad, de manera que el procedimiento es implementado por el dispositivo de control (10) y comprende al menos las etapas siguientes: - suministro al dispositivo de control (10) de una política de seguridad que define las direcciones de las zonas de memoria (M1, M2) autorizadas para la aplicación (App), - suministro al dispositivo de control (10) de una correspondencia entre el valor de un campo del mensaje y una dirección física (@P1, @P2) de una zona de memoria (M1, M2), - suministro de una estructura (24) de control de las transferencias en la que el mensaje de configuración es apto para ser memorizado, usándose la estructura (24) para realizar transferencias de datos en una primera zona de memoria (M1), respectivamente en una segunda zona de memoria (M2), por acceso directo a una dirección física (@P1) de la primera zona de memoria (M1), respectivamente a una dirección física (@P2) de la segunda zona de memoria (M2), referidas en la estructura (24), - recepción del mensaje por el dispositivo de control (10), - conversión por el dispositivo de control (10) del cuerpo del mensaje en una o varias acciones para efectuar en una zona de memoria (M1, M2), y - prueba por el dispositivo de control (10) de la conformidad de cada acción con la política de seguridad y emisión de una notificación cuando una acción no está de acuerdo con la política de seguridad.

Description

DESCRIPCIÓN
Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo
[0001] La presente invención se refiere a un procedimiento de control sistemático. La presente invención se refiere también a un dispositivo de control adaptado para la implementación del procedimiento de control. La presente invención se refiere igualmente a un producto de programa informático y a un soporte de información asociados.
[0002] Una transferencia por acceso directo (en inglés, direct memory access) es un procedimiento informático en el que se intercambian datos entre un elemento de emisión y de recepción de datos tal como un periférico de hardware externo conectado a una plataforma y una zona de memoria de la plataforma sin intervención de un procedimiento de terceros.
[0003] Dichas zonas de memoria son gestionadas clásicamente por una unidad de gestión de memoria (en inglés, memory management unit o MMU). Dicha unidad de gestión de memoria permite en particular controlar los accesos a las zonas de memoria de un procedimiento informático, tal como un programa informático que refiere direcciones de memoria virtuales. Para ello, la unidad de gestión de memoria traduce las direcciones de memoria virtuales referidas por el programa informático en direcciones físicas que corresponden a las zonas de memoria usadas.
[0004] Además, para asegurar una transferencia de datos por acceso directo entre una aplicación que se ejecuta en una plataforma y un periférico de hardware externo conectado a la plataforma, se sabe hacer transitar los datos por un controlador de interfaz que accede directamente a las zonas de memoria concernidas.
[0005] Sin embargo, dicho controlador de interfaz puede presentar debilidades en la gestión y el uso de las direcciones físicas referidas en los campos de los datos transferidos, lo que puede conllevar una transferencia de datos ilícitos hacia zonas de memoria prohibidas por medio de las zonas de memoria en acceso directo.
[0006] El documento US 2014/173236 A1 describe un procedimiento para proteger una porción de memoria del sistema a la que puede accederse mediante periféricos externos.
[0007] El documento US 2004/205203 A1 describe, por su parte, un vector de exclusión usado por un acceso DMA que define un conjunto de páginas a las que no pueden acceder los circuitos externos que acceden en directo a la memoria del sistema. El núcleo con seguridad garantiza así un aislamiento al permitir que ciertas páginas sean excluidas de los accesos DMA.
[0008] Existe así la necesidad de un procedimiento de control sistemático que permite detectar la transferencia de mensajes ilícitos hacia zonas de memoria prohibidas.
[0009] La presente invención se define mediante las reivindicaciones independientes adjuntas a las que conviene referirse. Se exponen características ventajosas en las reivindicaciones dependientes. Se considera que las realizaciones o ejemplos descritos en la presente descripción mostrada a continuación que no están cubiertos por las reivindicaciones no forman parte de la invención.
[0010] Otras características y ventajas de la invención se desprenderán de la lectura de la descripción que se ofrece a continuación de realizaciones de la invención, proporcionada a modo de ejemplo únicamente y en referencia a los dibujos que son:
- figura 1, una vista esquemática de un ejemplo de una transferencia de datos por acceso directo entre una aplicación que se ejecuta en una plataforma y un periférico de hardware externo conectado con la plataforma,
- figura 2, una vista esquemática de un ejemplo de una transferencia de datos por acceso directo entre una aplicación que se ejecuta en una plataforma y un periférico de hardware externo conectado con la plataforma según una primera realización, estando los datos transferidos controlados por un dispositivo de control,
- figura 3, una vista esquemática de un ejemplo de una transferencia de datos por acceso directo según una segunda realización, y
- figura 4, una vista esquemática de un ejemplo de una transferencia de datos por acceso directo según una tercera realización.
[0011] En lo que sigue de la descripción, los datos ilustrados en las figuras son líneas de código informático y/o direcciones denotadas de manera arbitraria.
[0012] En las figuras 2, 3 y 4 se representa un dispositivo de control 10.
[0013] El dispositivo de control 10 está adaptado para la implementación de un procedimiento de control sistemático de al menos un mensaje de configuración de transferencia. El mensaje de configuración de transferencia es un mensaje de configuración de una transferencia por acceso directo desde una aplicación App que se ejecuta en una plataforma 12 hacia al menos una zona de memoria M1, M2 usada por al menos un periférico de hardware externo 16 conectada con la plataforma 12 por un controlador de interfaz 30.
[0014] El mensaje de configuración comprende al menos un campo y un cuerpo.
[0015] El campo del mensaje de configuración comprende informaciones relativas a la dirección física @P1, respectivamente @p2, de una primera zona de memoria M1, respectivamente de una segunda zona de memoria M2, destinada a al menos una transferencia de datos por acceso directo. Cada zona de memoria M1, M2 se caracteriza, de hecho, por una dirección física única.
[0016] El cuerpo del mensaje de configuración comprende informaciones relativas a acciones para efectuar en la primera zona de memoria M1, respectivamente en la segunda zona de memoria M2.
[0017] El mensaje de configuración es apto para ser memorizado en una estructura 24 de control de las transferencias. La estructura 24 es usada por el controlador de interfaz 30 para realizar transferencias de datos en la primera zona de memoria M1, respectivamente en la segunda zona de memoria M2, por acceso directo a la dirección física @P1 de la primera zona de memoria M1, respectivamente a la dirección física @P2 de la segunda zona de memoria M2, referidas en la estructura 24.
[0018] La estructura 24 es referida por la aplicación App por medio de un controlador de interfaz 19 (en inglés, driver).
[0019] Las zonas de memoria M1, M2 y la estructura 24 son gestionadas por una unidad de gestión de memoria 18 (en inglés, memory management unit o MMU). Las reglas de acceso (en inglés, memory mapping) de la aplicación App a la estructura 24 pueden configurarse por medio del dispositivo de control 10. La aplicación App no dispone de derechos de configuración de la unidad de gestión de memoria 18. La aplicación App accede en lectura y en escritura a la estructura 24 por medio del controlador de interfaz 19 y la unidad de gestión de memoria 18.
[0020] A modo de ilustración, la primera zona de memoria M1 es una zona de memoria autorizada para la aplicación App y la segunda zona de memoria M2 es una zona de memoria prohibida para la aplicación App.
[0021] La estructura 24 se subdivide asimismo en bloques de memoria gestionados por la unidad de gestión de memoria 18.
[0022] Las informaciones contenidas en el mensaje de configuración pueden conllevar acciones en zonas de memoria prohibidas. Dichas acciones se deben, por ejemplo, a una ausencia de control por la unidad de gestión de memoria 18 de las direcciones físicas de las zonas de memoria contenidas en el campo del mensaje y/o a transferencias de datos no gestionadas por la unidad de gestión de memoria 18. La realización de acciones en zonas de memoria prohibidas se ilustra, en particular, en la figura 1 en la que un mensaje que se dirige a la segunda zona de memoria M2 se transmite a la segunda zona de memoria M2 a la vez que la segunda zona de memoria M2 está prohibida para la aplicación App.
[0023] Una de las funciones del dispositivo de control 10 es impedir una o varias transferencias de datos ilícitos desde la aplicación App hacia el periférico externo 16 por medio de las zonas de memoria M1, M2 internas en la plataforma 12. Recíprocamente, el dispositivo de control 10 está configurado para impedir las transferencias de datos ilícitos desde el periférico externo 16 hacia la aplicación App.
[0024] Para impedir dichas transferencias de datos ilícitos entre la aplicación App y el periférico externo 16, el dispositivo de control 10 implementa al menos una de las funciones siguientes:
- una función de verificación, ilustrada por la referencia «CHECK» en las figuras 2 a 4, de los mensajes de configuración escritos, por la aplicación App por medio del controlador de interfaz 19, en la estructura 24 antes de la lectura y el tratamiento de dichos mensajes por el controlador de interfaz 30.
- una función de sincronización, ilustrada por la referencia «SYNCHRO» en las figuras 2 a 4, de los tratamientos en curso efectuados por el controlador de interfaz 30 sobre los datos de la estructura 24. La sincronización comprende, por ejemplo, un control del estado de progreso de los tratamientos efectuados por el controlador de interfaz 30 y/o de puesta en marcha o en parada de los tratamientos efectuados por el controlador de interfaz 30 en la estructura 24.
- una función de bloqueo, ilustrada por la referencia «FREEZE» en las figuras 2 a 4, de los mensajes controlados por el dispositivo de control 10 hasta al tratamiento de dichos mensajes por el controlador de interfaz 30, de forma que se garantiza la no modificación por la aplicación App o por el controlador de interfaz 19 de los mensajes de transferencias verificados por el dispositivo de control 10,
- una función de alerta, ilustrada por la referencia «ALERT» en las figuras 2 a 4, hacia un sistema operativo 17 (en inglés, Operating System) en caso de detección de anomalías en las direcciones de transferencia contenidas en los mensajes de transferencia memorizados en la estructura 24 y verificados por el dispositivo de control 10.
- una función de configuración del dispositivo de control 10 con una política de seguridad.
[0025] La función de sincronización implementada por el dispositivo de control 10 permite controlar que la función de verificación de los mensajes de configuración sea invocada y realizada sistemáticamente antes del tratamiento de los mensajes por el controlador de interfaz 30.
[0026] La función de bloqueo es implementada por el dispositivo de control 10 por medio de dos mecanismos que pueden usarse de forma exclusiva o concurrente.
[0027] El primer mecanismo se basa en el uso por el dispositivo de control 10 de la configuración de la unidad de gestión de memoria 18. Así, el dispositivo 10 asegura un bloqueo que prohíbe el acceso de la aplicación App a un bloque de memoria de la estructura 24, de manera que dicho bloque de memoria contiene los mensajes de configuración ya verificados por el dispositivo 10. El bloqueo se mantiene hasta el tratamiento de dichos mensajes por el controlador de interfaz 30. Una vez tratados los mensajes, el dispositivo 10 configura de nuevo la unidad de gestión de memoria 18 para desbloquear el acceso a dicho bloque de memoria de la estructura 24 y bloquear un nuevo bloque de memoria de la estructura 24 que contiene nuevos mensajes de configuración de transferencias verificados por el dispositivo de control 10.
[0028] El procedimiento según el primer mecanismo se ilustra esquemáticamente en la figura 2.
[0029] El segundo mecanismo se basa en el cálculo y el almacenamiento por el dispositivo de control 10 de motivos de integridad para uno o varios mensajes de configuración de transferencia verificados por el dispositivo de control 10. Los motivos de integridad son memorizados en una zona de memoria específica 25 de la plataforma 12 de manera que solo el dispositivo de control 10 tenga acceso a dicha zona de memoria específica 25. Los motivos de integridad son controlados justo antes del tratamiento de los mensajes por el controlador de interfaz 30.
[0030] El procedimiento según el segundo mecanismo se ilustra esquemáticamente en la figura 3.
[0031] El dispositivo de control 10 es apto para detener y volver a arrancar el controlador de interfaz 30 de manera que el controlador de interfaz 30 trate solo los mensajes verificados por el dispositivo de control 10 después de la implementación del primer mecanismo y/o del segundo mecanismo descritos anteriormente.
[0032] La función de verificación del dispositivo de control 10 permite controlar que las direcciones referidas en la estructura 24 estén de acuerdo con una política de seguridad. En caso de detección de una anomalía, el dispositivo de control 10 realiza un tratamiento de neutralización y/o genera una excepción. La neutralización consiste, por ejemplo, en sustituir las direcciones prohibidas por direcciones que hacen referencia a una zona de memoria no válida o una zona de memoria controlada por el único dispositivo de control 10.
[0033] El dispositivo de control 10 pertenece a la plataforma 12.
[0034] Como variante, el dispositivo de control 10 pertenece al periférico de hardware externo 16.
[0035] El dispositivo de control 10 es, según el ejemplo de las figuras 2 a 4, un producto de programa informático. El producto de programa es, por ejemplo, un programa informático tal como un software, un software integrado o un microcódigo (en inglés, firmware).
[0036] La interacción del programa informático con la plataforma 12 permite implementar el procedimiento de control.
[0037] El producto de programa informático es memorizado en un soporte de informaciones. El soporte de informaciones es un soporte legible en una unidad de tratamiento de datos.
[0038] La aplicación App es un conjunto de programas informáticos aptos para ser ejecutados en la plataforma 12. La plataforma 12 es capaz de intercambiar informaciones con un periférico 16 por medio del controlador de interfaz 19. El controlador de interfaz 19 es un programa informático que permite que otro programa interaccione con un periférico por medio de un controlador de interfaz.
[0039] La plataforma 12 comprende una o varias interfaces físicas que conectan el o los periféricos 16 con la plataforma 12.
[0040] La plataforma 12 es, por ejemplo, una plataforma de hardware tal como un ordenador, un equipo de hardware, un sistema sobre chip (en inglés, System on Chip o SoC) o un componente electrónico dedicado (en inglés, Application Specific Integrated Circuit o ASIC) o una plataforma de software tal como un hipervisor, con las capas de abstracción del hipervisor asociadas con una plataforma de hardware y/o máquinas virtuales.
[0041] En el caso de una plataforma 12 de hardware, el dispositivo de control 10 está integrado en un microcódigo, configurable o no, en el sistema operativo, por ejemplo, en controladores de interfaz, o directamente en la implementación de hardware.
[0042] En el caso de una plataforma de software, el dispositivo de control 10 está integrado en el hipervisor o en las capas de abstracción del hipervisor asociadas a una plataforma de hardware, o en el sistema operativo.
[0043] En las realizaciones ilustradas en las figuras 1 a 4, la plataforma 12 comprende un módulo de conversión 20.d
[0044] El módulo de conversión 20 es apto para asociar a cada dirección virtual una dirección física que corresponde a una zona de memoria M1, M2. Una dirección virtual es una dirección de la memoria virtual que un sistema operativo pone a disposición de sus procedimientos para que se ejecuten dichos procedimientos. Una dirección física es un número binario que representa un emplazamiento en una memoria central 22 de la plataforma 12.
[0045] El periférico externo 16 comprende, por ejemplo, un soporte de almacenamiento de informaciones que permiten memorizar datos numéricos, por ejemplo, una clave USB, o un soporte de transferencia de informaciones que permiten intercambiar informaciones con la plataforma 12, por ejemplo, un enlace Ethernet.
[0046] El periférico 16 está conectado, por ejemplo, con la plataforma 12 por medio de un protocolo USB (del inglés Universal Serial Bus, traducido al español por Bus Universal en Serie) o por medio de un protocolo Ethernet.
[0047] El periférico 16 usa una pluralidad de zonas de memoria M1, M2.
[0048] Las zonas de memoria M1, M2, la estructura 24 y la zona de memoria específica 25 son capaces de memorizar datos.
[0049] El controlador de interfaz 30 puede conectar la plataforma 12 al periférico de hardware externo 16. El controlador de interfaz 30 puede igualmente conectar la plataforma 12 a otros periféricos de hardware externos como se presenta en la figura 4.
[0050] El controlador de interfaz 30 pertenece a la plataforma 12.
[0051] Como variante, el controlador de interfaz 30 está integrado en una aplicación App que se ejecuta en la plataforma 12.
[0052] A continuación, se describe el funcionamiento del dispositivo de control 10.
[0053] Inicialmente, el procedimiento de control comprende una etapa de suministro al dispositivo de control 10 de una política de seguridad que define los accesos autorizados o prohibidos a las zonas de memoria M1, M2 para la aplicación App.
[0054] Como complemento, el dispositivo de control 10 interroga a la unidad de gestión de memoria 18 para determinar si un acceso a una zona de memoria M1, M2 está autorizado o prohibido.
[0055] El procedimiento comprende asimismo una etapa de suministro al dispositivo de control 10 de una correspondencia entre el valor de un campo del mensaje y una dirección física @P1, @P2 de una zona de memoria M1, M2.
[0056] El procedimiento comprende a continuación la recepción del mensaje por el dispositivo de control 10.
[0057] A continuación, el dispositivo de control 10 convierte el cuerpo del mensaje en una o varias acciones para efectuar en una zona de memoria M1, M2.
[0058] Después, el dispositivo de control 10 comprueba la conformidad de cada acción con la política de seguridad tal como se describe a continuación.
[0059] El dispositivo de control 10 implementa la función de verificación de los mensajes de configuración de las transferencias, ilustrada por la referencia «CHECK» en las figuras 2 a 4.
[0060] La política de seguridad define, según un conjunto de reglas, la o las acciones autorizadas o prohibidas, de transferencia de datos hacia o desde un periférico externo 16 en cada zona de memoria M1, M2 para la aplicación App. Las acciones son, por ejemplo, la lectura de una zona de memoria M1, M2 o la escritura en una zona de memoria M1, M2 por el controlador de interfaz 30.
[0061] La política de seguridad comprende al menos una de las reglas siguientes entre:
- una autorización o una prohibición, para la aplicación App, de escritura o de lectura en zonas de memoria M1, M2 usadas por el periférico 16, y
- una autorización o una prohibición, para el controlador de interfaz 30, de escritura o de lectura en zonas de memoria M1, M2 usadas por el periférico 16.
[0062] Dichas reglas se acoplan en su caso a un parámetro que conecta cada una de las reglas a un identificador del periférico de hardware externo 16 o a una dirección de una interfaz física de la plataforma 12.
[0063] Así, el dispositivo de control 10 adapta las reglas de control en función de la interfaz física en la que está conectado el periférico externo 16.
[0064] Ventajosamente, el dispositivo 10 trata simultáneamente varios periféricos externos 16, varias interfaces externas gestionadas por diferentes controladores de interfaz 30 o aprovecha varias estructuras de transferencia 24 o controla las autorizaciones de acceso para varias aplicaciones App. La figura 4 es un ejemplo de dicho modo de uso del dispositivo 10.
[0065] En los ejemplos de las figuras 1 a 4, la primera zona de memoria M1 está autorizada en lectura y en escritura por el controlador de interfaz 30 para transferencia hacia el periférico 16 y la segunda zona de memoria M2 no está autorizada ni en escritura ni en lectura por el controlador de interfaz 30 para transferencia hacia el periférico 16.
[0066] El procedimiento comprende, ventajosamente, una etapa de suministro al dispositivo de control 10 de la estructura 24.
[0067] La estructura 24 comprende, por ejemplo, el número de zonas de memoria M1, M2, el volumen de datos memorizables en cada zona de memoria M1, m2 o el volumen de datos memorizados en cada zona de memoria M1, M2 o la asociación de cada memoria M1, M2 a una interfaz física gestionada por el controlador de interfaz 30 o el identificador del periférico externo 16.
[0068] La etapa de suministro al dispositivo de control 10 de la estructura 24 puede referirse a varias estructuras 24 como se representa en la figura 4.
[0069] Además, el procedimiento de control comprende una etapa de verificación por el dispositivo de control 10 del mensaje y de realización de una o varias acciones de control en una zona de memoria M1, M2 para el periférico 16.
[0070] La verificación se efectúa por medio de una tabla de reglas memorizada en una memoria del dispositivo de control 10. La etapa de verificación permite determinar las acciones no conformes con la política de seguridad, por ejemplo, las acciones relativas a la escritura y/o a la lectura de una zona de memoria prohibida.
[0071] A continuación, el procedimiento de control comprende una etapa de bloqueo de los mensajes de configuración controlados en la estructura 24 por el dispositivo de control 10.
[0072] Por ejemplo, la etapa de bloqueo es implementada por una configuración de la unidad de gestión de memoria 18 que prohíbe cualquier modificación en la zona de memoria M1, M2 en la que se memoriza el o los mensajes controlados. Como variante, la etapa de bloqueo es realizada por cálculo del motivo de integridad del o de los mensajes controlados. El motivo de integridad es opcionalmente un motivo criptográfico y se memoriza en una zona de memoria específica 25 accesible solo por el dispositivo 10.
[0073] Además, el procedimiento comprende, cuando se realiza la acción de bloqueo, una etapa de desbloqueo. Según la elección de implementación de la etapa de bloqueo, el desbloqueo se implementa por
- una reconfiguración de la unidad de gestión de memoria 18 después de que el controlador de interfaz 30 haya realizado la transferencia del mensaje en la primera zona de memoria M1, y
- un control del motivo de integridad antes de la transferencia del mensaje en la primera zona de memoria M1 por el controlador de interfaz 30.
[0074] Para que las etapas de verificación y de bloqueo estén sincronizadas, el dispositivo 10 controla de manera permanente el progreso de los tratamientos del controlador de interfaz 30 y, llegado el caso, suspende y relanza los tratamientos del controlador de interfaz 30.
[0075] Cuando la acción de verificación detecta una no conformidad con respecto a la política de seguridad, el dispositivo de control 10 interrumpe la transferencia. El mensaje no es tratado así por el controlador de interfaz 30 y la transferencia no se efectúa.
[0076] Opcionalmente, el dispositivo de control 10 hace activarse una alerta o una notificación que permite que el sistema operativo sea informado de la no conformidad de una acción. Dicha alerta o notificación permite, por ejemplo, detectar ataques informáticos o disfuncionamientos y refuerza así la seguridad de la transferencia de datos.
[0077] Así, el dispositivo de control 10 asegura una protección suplementaria durante las transferencias de mensajes por acceso directo entre una aplicación App que se ejecuta en una plataforma 12 y zonas de memoria M1, M2 usadas para transferencias hacia periféricos de hardware externos 16.
[0078] En una realización ventajosa, el dispositivo de control 10 implementa las etapas siguientes.
[0079] Cuando se define la estructura 24 y el controlador de interfaz 30 es instado por el controlador de interfaz 19 para iniciar la transferencia, el controlador de interfaz 19 comunica al controlador de interfaz 30, por medio de registros del controlador de interfaz 30, la dirección del primer mensaje de configuración. Dicha dirección es, por ejemplo, denotada como «@ controler_init».
[0080] El dispositivo 10 controla de forma permanente el controlador de interfaz 30. El dispositivo 10 detecta así la activación del controlador de interfaz 30 con la dirección @ controler_init.
[0081] El dispositivo 10 realiza entonces las operaciones de inicialización siguientes:
o detención del controlador 30 que no trata así la solicitud del controlador de interfaz 19,
o análisis de la estructura 24 y en particular reglas de acceso a la estructura 24,
o verificación de que la dirección @ controler_init está definida en las reglas de acceso de la estructura 24, o verificación del mensaje de configuración situado en la dirección @ controler_init,
o realización opcional de una verificación de los mensajes de configuración situados en otras direcciones, y o si no se detecta ninguna alerta, rearranque del controlador de interfaz 30.
[0082] Como continuación a las operaciones de inicialización en la dirección @ controler_init, el dispositivo 10 asegura las operaciones de control de la verificación de los mensajes de configuración en al menos una dirección de la estructura 24. La dirección de la estructura 24 se denota, por ejemplo, por «@ verify». Para ello, el dispositivo de control 10 controla:
o que la dirección actual, denotada por «@ verify_current», del mensaje de configuración para verificar es estrictamente superior a la dirección actual, denotada por «@ controler_current» del mensaje de configuración para tratar por el controlador de interfaz 30. Si esta propiedad no se verifica, el dispositivo 10 detiene el controlador de interfaz 30 y realiza las operaciones de verificación de los mensajes de configuración hasta que la dirección actual «@ verify_current» del mensaje de configuración para verificar sea estrictamente superior a la dirección actual «@ controler_current» del mensaje de configuración para tratar por el controlador de interfaz 30.
o que la dirección actual @ verify_current del mensaje de configuración para verificar por el dispositivo 10 está contenida estrictamente en las reglas de acceso a la estructura 24. Si esta propiedad no se cumple, el dispositivo 10 genera una alerta.
o que la desviación entre la dirección actual @ controler_current del mensaje de configuración para tratar por el controlador de interfaz 30 y la dirección de configuración del mensaje de configuración que el controlador de interfaz 30 ha tratado anteriormente, denotada por «@ controler_previous» es estrictamente igual a una unidad de dirección en las reglas de acceso de la estructura 24. Si esta propiedad no se cumple, el dispositivo 10 reinicia las operaciones de inicialización en la dirección @ controler_init descrita anteriormente considerando que la dirección @ controler_init es igual a la dirección actual @ controler_current.
[0083] La implementación del procedimiento es sencilla de realizar en la práctica ya que no se efectuará ninguna modificación en los procesadores, los periféricos de hardware y el software de aplicación existente.
[0084] Así, el procedimiento puede estar integrado en numerosos tipos de arquitecturas que se apoyan tanto en hardware como en software sin tener que modificarlos.
[0085] Así, el procedimiento permite cubrir los riesgos de fugas de datos durante los intercambios con periféricos externos.
[0086] El dispositivo de control 10 es independiente de la plataforma 12 y del periférico de hardware 16.
[0087] Además, el dispositivo de control 10 puede realizarse en forma de hardware o de software. El dispositivo de control 10 puede configurarse además de manera que permita tener en cuenta fácilmente nuevos ataques y/o amenazas.
[0088] El experto en la materia comprenderá que la invención no se limita a la realización descrita en la figura 1, ni a los ejemplos concretos de la descripción. Otra variante consiste, por ejemplo, en combinar uno o varios ejemplos descritos anteriormente.

Claims (10)

REIVINDICACIONES
1. Procedimiento de control sistemático por un dispositivo de control (10) de al menos un mensaje de configuración de transferencia, siendo el mensaje de configuración de transferencia un mensaje de configuración de una transferencia por acceso directo desde una aplicación (App) que se ejecuta en una plataforma (12) hacia una zona de memoria (M1, M2) usada por al menos un periférico de hardware externo (16), comprendiendo la plataforma (12) una o varias interfaces físicas, de manera que el periférico (16) está conectado con la plataforma (12) por medio de una o varias interfaces físicas de la plataforma (12), el periférico (16) usa una pluralidad de zonas de memoria (M1, M2), cada zona de memoria (M1, M2) está caracterizada por una dirección física única (@P1, @P2), el mensaje de configuración de una transferencia comprende al menos un campo y un cuerpo, el campo refiere una dirección física de una zona de memoria (M1, M2), el dispositivo de control (10) pertenece a la plataforma (12) e implementa al menos una de las funciones siguientes:
- una función de verificación (CHECK),
- una función de sincronización (SYNCHRO),
- una función de bloqueo (FREEZE),
- una función de alerta (ALERT), y
- una función de configuración del dispositivo de control (10) con una política de seguridad,
de manera que el procedimiento es implementado por el dispositivo de control (10) y comprende al menos las etapas siguientes:
- suministro al dispositivo de control (10) de una política de seguridad que define las direcciones de las zonas de memoria (M1, M2) autorizadas para la aplicación (App),
- suministro al dispositivo de control (10) de una correspondencia entre el valor de un campo del mensaje y una dirección física (@P1, @P2) de una zona de memoria (M1, M2),
- suministro de una estructura (24) de control de las transferencias en la que el mensaje de configuración es apto para ser memorizado, usándose la estructura (24) para realizar transferencias de datos en una primera zona de memoria (M1), respectivamente en una segunda zona de memoria (M2), por acceso directo a una dirección física (@P1) de la primera zona de memoria (M1), respectivamente a una dirección física (@P2) de la segunda zona de memoria (M2), referidas en la estructura (24),
- recepción del mensaje por el dispositivo de control (10),
- conversión por el dispositivo de control (10) del cuerpo del mensaje en una o varias acciones para efectuar en una zona de memoria (M1, M2), y
- prueba por el dispositivo de control (10) de la conformidad de cada acción con la política de seguridad y emisión de una notificación cuando una acción no está de acuerdo con la política de seguridad.
2. Procedimiento según la reivindicación 1, en el que la plataforma (12) comprende un hipervisor, de manera que el dispositivo de control (10) forma parte del hipervisor.
3. Procedimiento según la reivindicación 1 o 2, en el que la estructura (24) se usa igualmente durante la implementación de la prueba de conformidad.
4. Procedimiento según cualquiera de las reivindicaciones 1 a 3, en el que la política de seguridad comprende al menos una de las reglas siguientes:
- autorización de escritura en zonas de memoria (M1, M2) usadas por el periférico (16),
- prohibición de escritura en zonas de memoria (M1, M2) usadas por el periférico (16),
- autorización de lectura de zonas de memoria (M1, M2) usadas por el periférico (16), y - prohibición de lectura de zonas de memoria (M1, M2) usadas por el periférico (16).
5. Procedimiento según cualquiera de las reivindicaciones 1 a 4, en el que el periférico (16) está conectado con la plataforma (12) por medio de un protocolo USB o un protocolo Ethernet.
6. Procedimiento según cualquiera de las reivindicaciones 1 a 5, comprendiendo la plataforma (12) un controlador de interfaz (30) corriente arriba del dispositivo de control (10) y capaz de efectuar la o las acciones, comprendiendo el procedimiento igualmente al menos una de las etapas siguientes:
- si la acción sometida a prueba está de acuerdo con la política de seguridad, el mensaje se comunica al controlador de interfaz (30) y la acción se efectúa, y
- si la acción sometida a prueba no está de acuerdo con la política de seguridad, el mensaje no se comunica al controlador de interfaz (30) y la acción no se efectúa.
7. Procedimiento según la reivindicación 6, en el que el controlador de interfaz (30) pertenece a la plataforma (12) o está integrado en una aplicación (App) que se ejecuta en la plataforma (12).
8. Dispositivo de control (10) adaptado para la implementación de un procedimiento de control sistemático por un dispositivo de control (10) de al menos un mensaje de configuración de transferencia, siendo el mensaje de configuración de transferencia un mensaje de configuración de una transferencia por acceso directo desde una aplicación (App) que se ejecuta en una plataforma (12) hacia una zona de memoria (M1, M2) usada por al menos un periférico de hardware externo (16), comprendiendo la plataforma (12) una o varias interfaces físicas, de manera que el periférico (16) está conectado con la plataforma (12) por medio de una o varias interfaces físicas de la plataforma (12), el periférico (16) usa una pluralidad de zonas de memoria (M1, M2), cada zona de memoria (M1, M2) está caracterizada por una dirección física única (@P1, @P2), el mensaje de configuración de una transferencia comprende al menos un campo y un cuerpo, el campo refiere una dirección física de una zona de memoria (M1, M2), el dispositivo de control (10) pertenece a la plataforma (12) e implementa al menos una de las funciones siguientes: - una función de verificación (CHECK),
- una función de sincronización (SYNCHRO),
- una función de bloqueo (FREEZE),
- una función de alerta (ALERT), y
- una función de configuración del dispositivo de control (10) con una política de seguridad,
siendo el dispositivo de control (10) capaz de implementar al menos las etapas siguientes:
- recepción de una política de seguridad que define las direcciones de las zonas de memoria (M1, M2) autorizadas para la aplicación (App),
- recepción de una correspondencia entre el valor de un campo del mensaje y una dirección física (@P1, @P2) de una zona de memoria (M1, M2),
- recepción de una estructura (24) de control de las transferencias en la que el mensaje de configuración es apto para ser memorizado, de manera que la estructura (24) se usa para realizar transferencias de datos en una primera zona de memoria (M1), respectivamente en una segunda zona de memoria (M2), por acceso directo a una dirección física (@P1) de la primera zona de memoria (M1), respectivamente a una dirección física (@P2) de la segunda zona de memoria (M2), referidas en la estructura (24),
- recepción del mensaje,
- conversión del cuerpo del mensaje en una o varias acciones para efectuar en una zona de memoria (M1, M2), y - prueba de la conformidad de cada acción con la política de seguridad y emisión de una notificación cuando una acción no está de acuerdo con la política de seguridad.
9. Producto de programa informático que incluye instrucciones de software, de manera que las instrucciones de software implementan un procedimiento según cualquiera de las reivindicaciones 1 a 7, cuando las instrucciones de software son ejecutadas por una plataforma.
10. Soporte de informaciones en el que se memoriza un producto de programa informático según la reivindicación 9.
ES16166334T 2015-04-22 2016-04-21 Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo Active ES2803209T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1500854A FR3035528B1 (fr) 2015-04-22 2015-04-22 Procede de controle systematique des adresses de zones memoire dans le cadre d'un transfert par acces direct

Publications (1)

Publication Number Publication Date
ES2803209T3 true ES2803209T3 (es) 2021-01-25

Family

ID=54007749

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16166334T Active ES2803209T3 (es) 2015-04-22 2016-04-21 Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo

Country Status (4)

Country Link
EP (1) EP3086235B1 (es)
ES (1) ES2803209T3 (es)
FR (1) FR3035528B1 (es)
PL (1) PL3086235T3 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111295644A (zh) * 2017-10-30 2020-06-16 惠普发展公司,有限责任合伙企业 保障硬件初始化

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7975117B2 (en) * 2003-03-24 2011-07-05 Microsoft Corporation Enforcing isolation among plural operating systems
FR2954539B1 (fr) * 2009-12-23 2014-08-29 Thales Sa Procede et dispositif de detection de transferts errones pour microcontroleur ou microprocesseur en vue de garantir le partitionnement.
EP2795503A4 (en) * 2011-12-21 2015-08-26 Intel Corp SECURE DIRECT MEMORY ACCESS
US9063891B2 (en) * 2012-12-19 2015-06-23 Advanced Micro Devices, Inc. Secure computer system for preventing access requests to portions of system memory by peripheral devices and/or processor cores

Also Published As

Publication number Publication date
EP3086235B1 (fr) 2020-04-01
FR3035528B1 (fr) 2017-05-26
PL3086235T3 (pl) 2020-10-05
FR3035528A1 (fr) 2016-10-28
EP3086235A1 (fr) 2016-10-26

Similar Documents

Publication Publication Date Title
US11843705B2 (en) Dynamic certificate management as part of a distributed authentication system
US11809544B2 (en) Remote attestation for multi-core processor
CN102486755B (zh) 存储器保护单元和用于控制对存储设备的访问的方法
US10402567B2 (en) Secure boot for multi-core processor
TWI402682B (zh) 對嵌入式控制器的記憶體保護
CN109564606A (zh) 用于将安全协处理器用于固件保护的方法和装置
CN106465100A (zh) 场所感知安全性和策略编排
US20150254017A1 (en) Trusted Execution and Access Protection for Embedded Memory
WO2010039788A2 (en) Processor boot security device and methods thereof
JP2006506754A5 (es)
EP3646224B1 (en) Secure key storage for multi-core processor
US11562079B2 (en) System-on-chip and method for operating a system-on-chip
CN105677586B (zh) Mcu的闪存的访问权限控制方法和装置
EP3757838B1 (en) Warm boot attack mitigations for non-volatile memory modules
ES2803209T3 (es) Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo
JPWO2020158377A1 (ja) 電子制御装置、電子制御装置のセキュリティ検証方法
Dubrulle et al. Blind hypervision to protect virtual machine privacy against hypervisor escape vulnerabilities
JP2020205050A (ja) リソース保護
TW202324158A (zh) 以安全分區記憶體空間於系統單晶片中錯誤管理
Zhou et al. Dancing with giants: Wimpy kernels for on-demand I/O isolation
Heo et al. Hardware-assisted trusted memory disaggregation for secure far memory
US20230267094A1 (en) System on a chip and method for operating a system on a chip
JP2013131043A (ja) プログラマブルコントローラ