ES2902336T3 - Procedimiento de protección de un dispositivo electrónico contra ataques por inyección de fallo - Google Patents

Procedimiento de protección de un dispositivo electrónico contra ataques por inyección de fallo Download PDF

Info

Publication number
ES2902336T3
ES2902336T3 ES18306089T ES18306089T ES2902336T3 ES 2902336 T3 ES2902336 T3 ES 2902336T3 ES 18306089 T ES18306089 T ES 18306089T ES 18306089 T ES18306089 T ES 18306089T ES 2902336 T3 ES2902336 T3 ES 2902336T3
Authority
ES
Spain
Prior art keywords
cont
threshold
counter
hist
electronic device
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
ES18306089T
Other languages
English (en)
Inventor
Houssem Maghrebi
Raphaël Geslain
Cyrille Pepin
David Daille-Levefre
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.)
Idemia Identity and Security France SAS
Original Assignee
Idemia Identity and Security France SAS
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 Idemia Identity and Security France SAS filed Critical Idemia Identity and Security France SAS
Application granted granted Critical
Publication of ES2902336T3 publication Critical patent/ES2902336T3/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/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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Pinball Game Machines (AREA)
  • Computer And Data Communications (AREA)

Abstract

Procedimiento de protección de un dispositivo (1) electrónico contra ataques por inyección de fallo, comprendiendo el procedimiento etapas de - detección (100) de anomalías susceptibles de inyectar un fallo en el dispositivo (1) electrónico o de estar provocadas por una inyección de fallo en el dispositivo (1) electrónico, - incremento (110, 206) de un contador de anomalías (cont_velo, cont_tearing) en función de las anomalías detectadas, - comparación (112, 208) entre el contador de anomalías (cont_velo, cont_tearing) y un primer umbral (umbral_cont_velo, umbral_cont_tearing), - puesta en práctica de una medida (114, 210) de protección del dispositivo (1) electrónico cuando el número de anomalías contadas alcanza el primer umbral (umbral_cont_velo, umbral_cont_tearing), estando el procedimiento caracterizado por que el contador de anomalías (cont_velo, cont_tearing) sólo se incrementa (110, 206) si se ha detectado: - un número de anomalías superior o igual a un segundo umbral (umbral_cont_hist) estrictamente inferior al primer umbral (umbral_cont_velo, umbral_cont_tearing) a lo largo de un periodo durante el cual se ha producido un número predeterminado (N) de procesamientos predeterminados, o - un número de procesamientos predeterminados inferior a un número predeterminado (N) de procesamientos predeterminados a lo largo de un periodo durante el cual se ha producido un número de anomalías predeterminado superior o igual al segundo umbral (umbral_cont_hist), en el que un procesamiento predeterminado comprende la puesta en práctica de una transacción bancaria o un comando ADPU.

Description

DESCRIPCIÓN
Procedimiento de protección de un dispositivo electrónico contra ataques por inyección de fallo
Campo de la invención
La presente invención se refiere a un procedimiento de protección de un dispositivo electrónico contra ataques por inyección de fallo.
Estado de la técnica
De manera conocida, un ataque por inyección de fallo consiste en perturbar el entorno físico de un dispositivo electrónico que ejecuta un programa, de manera que se modifica el valor memorizado por el dispositivo de una variable destinada a usarse por el programa. Tales perturbaciones pueden producirse de diferentes maneras: variación de una tensión de alimentación, variación de una frecuencia de reloj del dispositivo, emisión de radiación electromagnética o láser, etc.
Para proteger un dispositivo electrónico contra ataques por inyección de fallo, se ha propuesto un procedimiento que comprende las siguientes etapas:
• detección de anomalías susceptibles de inyectar un fallo en el dispositivo electrónico o de estar provocadas por una inyección de fallo en el dispositivo electrónico,
• incrementar un contador de anomalías cada vez que se detecta una anomalía,
• comparación entre el contador de anomalías y un umbral,
• puesta en práctica de una medida de protección del dispositivo electrónico cuando el número de anomalías contadas alcanza el umbral predeterminado.
El contador de anomalías no se decrementa nunca a lo largo de la vida útil del dispositivo electrónico.
Algunas veces la medida de protección puesta en práctica puede ser radical. A modo de ejemplo, determinadas especificaciones recomiendan hacer que el dispositivo electrónico sea totalmente inutilizable, por ejemplo, borrando el contenido completo de la memoria no volátil del dispositivo electrónico.
Ahora bien, sucede que determinadas anomalías susceptibles de inyectar un fallo en el dispositivo electrónico no están provocadas por un ataque intencionado por una persona maliciosa, sino que, simplemente, están provocadas por una mala manipulación del dispositivo electrónico por su usuario, sin que este último sea malintencionado. A modo de ejemplo, puede hacerse que el dispositivo electrónico ejecute un determinado procesamiento que implica una comunicación de datos con otro dispositivo. Para ello, el dispositivo electrónico puede ponerse en contacto eléctrico con este otro dispositivo. Una ruptura accidental de la comunicación entre los dos dispositivos en presencia por ruptura de este contacto eléctrico, puede estar causada accidentalmente y clasificarse como anomalía susceptible de inyectar un fallo en el dispositivo electrónico.
Cuando estas manipulaciones se producen un número demasiado grande de veces, se supera el umbral de anomalías y se pone en práctica la medida de protección, en detrimento del usuario del dispositivo electrónico, mientras que no se ha intentado realmente ningún ataque. La solicitud de patente US-2014/0020097 A1 describe un método de detección de ataque por inyección de fallos que tiene en cuenta el número de fallos detectados a lo largo de un periodo dado.
Exposición de la invención
Un objetivo al que se refiere la invención, es proponer un procedimiento que permita proteger un dispositivo contra ataques por inyección de fallo, sin que se confundan malas manipulaciones de un usuario del dispositivo electrónico con tales ataques.
Por consiguiente, se propone el procedimiento tal como se define en la reivindicación 1.
El procedimiento propuesto se basa en la siguiente constatación: anomalías agrupadas en el tiempo son más susceptibles de ser consecuencia de ataques que anomalías puntuales, muy separadas en el tiempo.
El uso del segundo umbral para condicionar el incremento del contador de anomalías permite aprovechar astutamente esta constatación.
En efecto, si se detecta un número relativamente grande de anomalías (superior al segundo umbral) para N procesamientos predeterminados, puede suponerse razonablemente que estas anomalías no son fortuitas y, por consiguiente, se sancionan mediante un incremento del contador de anomalías.
En cambio, no se aplica una sanción de este tipo cuando se detectan demasiado pocas anomalías para N procesamientos predeterminados. Por consiguiente, no se pone en práctica la puesta en práctica de una medida de protección o al menos se pone en práctica de manera retardada cuando el dispositivo electrónico experimenta de manera puntual malas manipulaciones.
Descripción de las figuras
Otras características, finalidades y ventajas de la invención se desprenderán de la siguiente descripción, que es meramente ilustrativa y no limitativa, y que debe leerse haciendo referencia a los dibujos adjuntos en los que:
• La Figura 1 representa, esquemáticamente, un dispositivo electrónico según un modo de realización de la invención,
• La Figura 2 es un organigrama de etapas del procedimiento según el primer modo de puesta en práctica de la invención,
• La Figura 3 es un organigrama de etapas del procedimiento según el primer modo de puesta en práctica de la invención,
Descripción detallada de la invención
Haciendo referencia a la Figura 1, un dispositivo 1 electrónico comprende al menos un procesador 2, al menos una memoria 4 no volátil y una interfaz 6 de comunicación con otro dispositivo 8.
La memoria 4 no volátil memoriza programas y datos destinados a manipularse por los programas. Esta memoria es, por ejemplo, de tipo flash o EEPROM.
La memoria 4 memoriza, concretamente:
• al menos un programa diana, cuyo funcionamiento es susceptible de verse afectado por un ataque por inyección de fallo,
• un programa de control, cuya función es proteger el dispositivo contra tales ataques por inyección de fallo.
El procesador 2 está configurado para ejecutar el programa de control, concretamente en paralelo con al menos un programa diana.
La interfaz 6 de comunicación comprende, por ejemplo, al menos un contacto eléctrico destinado a ponerse en contacto eléctrico con un contacto del otro dispositivo 6, de manera que puedan comunicarse señales eléctricas portadoras de datos entre los dos dispositivos. En una variante, o de manera complementaria, la interfaz de comunicación comprende una antena de radio, por ejemplo, para establecer una comunicación del tipo “de campo cercano” (NFC).
Haciendo referencia a la Figura 2, el programa de control está configurado para poner en práctica un procedimiento que comprende las siguientes etapas, en un primer modo de realización.
El programa de control usa varios datos predeterminados:
• un número N de procesamientos predeterminados puestos en práctica por al menos uno de los programas diana. Este número N puede referirse a un solo y mismo procesamiento o bien a varios procesamientos diferentes.
• un primer umbral llamado “umbral_cont_hist” ,
• un segundo umbral llamado “umbral_cont_velo” .
Estos datos están presentes en la memoria no volátil antes del primer uso del dispositivo electrónico.
Los procesamientos predeterminados pueden ser, por ejemplo, procesamientos que conllevan un incremento del contador de velocidad (“velocity counter” ) descrito en una cualquiera de las siguientes especificaciones:
• “Security Guidelines for Java Card & GlobalPlatform Implementations including Mobile Payments” , cuya versión 1.0 se publicó en noviembre de 2010,
• “Security Guidelines for JavaCard Platform Implementation” , en su versión publicada en agosto de 2006,
• “Security Guidelines for Global Platform Implementations” , en su versión publicada en mayo de 2010. A continuación, se tomará el ejemplo no limitativo de procesamientos predeterminados que comprenden la puesta en práctica de una transacción bancaria.
El programa también usa tres contadores asignados en la memoria no volátil.
• un contador de procesamientos predeterminados,
• un primer contador de anomalías “cont_hisf’
un segundo contador de anomalías “ cont_velo” .
Estos tres contadores están a cero durante el primer inicio del programa de control.
El programa de control dispone de medios conocidos en sí mismos para detectar que el procesador 2 ha ejecutado uno de los procesamientos predeterminados. En cada nueva ejecución de uno de estos procesamientos, el contador de procesamientos se incrementa en 1 (o en -1, en caso de un incremento negativo).
Por otro lado, el programa de control pone en práctica las siguientes etapas, por ejemplo, de manera asíncrona con la detección de los procesamientos y el incremento del contador de procesamientos.
El programa de control verifica si se ha detectado una anomalía (etapa 100). Esta verificación 100 se pone en práctica, por ejemplo, de manera periódica.
Por ejemplo, se hace que uno de los programas diana compare un dato de prueba introducido por un usuario, con un dato secreto de referencia (normalmente, un código PIN). Puede considerarse que se ha detectado una anomalía cuando el dato de prueba y el dato secreto de referencia son diferentes (demostración de una anomalía mediante verificación de DAP o “ Data Authentication Pattern” , según la terminología anglosajona generalmente usada).
Si no se ha detectado ninguna anomalía, entonces el programa de control compara entonces el contador de procesamientos con el número N. Si el contador de procesamientos es superior o igual a N, entonces vuelve a ponerse el primer contador de anomalías cont_hist a cero (etapa 102). Si no, el primer contador de anomalías cont_hist no vuelve a ponerse a cero.
En respuesta a una detección de anomalía 100, el programa de control incrementa el primer contador de anomalías cont_hist en un primer incremento, por ejemplo, igual a 1 (etapa 104).
El programa de control compara a continuación el contador cont_hist con el primer umbral umbral_cont_hist (etapa 106).
Si el primer contador de anomalías cont_hist es estrictamente inferior al primer umbral umbral_cont_hist, entonces el segundo contador cont_velo no se incrementa, pero el programa de control compara entonces el contador de procesamientos con el número N. Si el contador de procesamientos es superior o igual a N, entonces vuelve a ponerse el primer contador de anomalías cont_hist a cero (etapa 108). Si no, el primer contador de anomalías cont_hist no vuelve a ponerse a cero.
Si el primer contador de anomalías cont_hist es superior o igual al primer umbral umbral_cont_hist, entonces se incrementa el segundo contador en un segundo incremento (etapa 110). El segundo incremento depende del valor actual del primer contador cont_hist.
En particular, el segundo incremento puede ser igual al valor actual del primer contador cont_hist. Esta elección presenta la ventaja de estar de acuerdo con las recomendaciones de GlobalPlatform.
Cuando se ha incrementado el segundo contador cont_velo, el programa de control compara el segundo contador cont_velo con el segundo umbral umbral_cont_velo (etapa 112).
Si el segundo contador de anomalías cont_velo es superior o igual al segundo umbral umbral_cont_velo, entonces el programa de control pone en práctica una medida de protección del dispositivo 1 electrónico (etapa 114). En efecto, en tal caso, se supone que el dispositivo 1 ha sido objeto de un ataque por inyección de fallo.
La medida de protección comprende, por ejemplo, un borrado del contenido de la memoria no volátil, en su totalidad o en parte, de manera que se hace que el dispositivo sea inutilizable.
Si el segundo contador cont_velo es estrictamente inferior al segundo umbral umbral_cont_velo, vuelve a ponerse el primer contador de anomalías cont_hist a cero (etapa 116).
Por otro lado, el programa de control escribe en la memoria 4 no volátil el valor de cada contador cada vez que se modifica este contador (etapa 118).
Además, cada vez que se ejecuta uno de los procesamientos predeterminados una vez por el procesador 2, el programa de control incrementa el contador de procesamientos.
A lo largo de la puesta en práctica de este procedimiento de protección, puede detectarse que el contador cont_velo sólo se incrementa si se ha producido un número de anomalías superior o igual al umbral umbral_cont_hist a lo largo de un periodo de duración variable durante el cual se han producido N procesamientos predeterminados.
El contador cont_velo no se decrementa nunca, de conformidad con las especificaciones de GlobalPlatform.
Conviene observar que el programa de control puede:
• contar las anomalías producidas y esperar que se produzcan N procesamientos predeterminados para decidir si debe incrementarse el contador cont_velo o no (en cuyo caso, el periodo considerado, de duración variable, llega a acabar cuando acaba de terminarse el N-ésimo procesamiento predeterminado), o bien
• contar los procesamientos predeterminados y esperar que se produzcan umbral_cont_hist anomalías para decidir si el contador cont_velo debe incrementarse o no (en cuyo caso, el periodo considerado acaba cuando se alcanza el número de anomalías predeterminado umbral_cont_hist).
La producción de una nueva anomalía o la puesta en práctica de uno de los procesamientos predeterminados tras acabar este periodo de duración variable, marca el principio de un nuevo periodo a lo largo del cual se repiten las etapas del procedimiento.
Para evitar el procedimiento de protección puesto en práctica, un atacante que desee efectuar una inyección de fallo, deberá espaciar forzosamente sus ataques en el tiempo, sin lo cual el dispositivo 1 electrónico se volverá inutilizable al final de la etapa 114.
Preferiblemente, al acabar un periodo, el programa de control modifica el número N de procesamientos predeterminados y/o el valor del umbral umbral_cont_hist. Una vez realizada esta modificación, se ponen en práctica las etapas del procedimiento a lo largo de un nuevo periodo. Una modificación de este tipo hace que el procedimiento sea menos predecible en el tiempo. Por consiguiente, es más difícil que un atacante comprenda la lógica del procedimiento de protección puesto en práctica y estime de ese modo en qué medida deben espaciarse sus ataques en el tiempo.
Aún de manera más preferible, el nuevo valor de N o el nuevo valor del umbral umbral_cont_hist se determina de manera aleatoria. Esto presenta la ventaja de hacer que el procedimiento sea totalmente impredecible.
Por otro lado, preferiblemente, el número N o el umbral umbral_cont_hist
se disminuye si el contador de anomalías cont_velo se ha incrementado a lo largo del periodo,
• se aumenta si el contador de anomalías cont_velo no se ha incrementado a lo largo del periodo.
Con una lógica de modificación de este tipo, el procedimiento se adapta de manera dinámica al contexto de uso del dispositivo electrónico. Se vuelve más estricto cuando el número de anomalías aumenta de un periodo al otro y se vuelve más relajado en el caso inverso.
En la Figura 3 se han ilustrado las etapas de un procedimiento de protección del dispositivo electrónico contra ataques por inyección de fallo, según un segundo modo de realización.
Una diferencia con el procedimiento según el primer modo de realización, es que el contador cont_hist se incrementa de modo preventivo antes de que se detecte una anomalía, y a continuación se decrementa si se confirma que no se ha producido una anomalía.
Este segundo modo de realización está particularmente adaptado para la gestión de anomalías causadas por una ruptura de comunicación entre el dispositivo electrónico y otro dispositivo.
Los procesamientos predeterminados examinados en este segundo modo de realización, son, normalmente, procesamientos que conllevan un incremento del contador denominado de “tearing” descrito en una cualquiera de las siguientes especificaciones:
• “Security Guidelines for Java Card & GlobalPlatform Implementations including Mobile Payments” , cuya versión 1.0 se publicó en noviembre de 2010,
• “Security Guidelines for JavaCard Platform Implementation” , en su versión publicada en agosto de 2006,
• “Security Guidelines for Global Platform Implementations” , en su versión publicada en mayo de 2010. Se supone que al menos uno de los procesamientos predeterminados es un procesamiento susceptible de interrumpirse (es decir, detenerse de manera anómala) por una ruptura anómala de comunicación entre el dispositivo electrónico y otro dispositivo. Este procesamiento se llama a continuación, “procesamiento de referencia” . El procesamiento de referencia comprende, por ejemplo, un comando ADPU.
En este modo de realización, el segundo contador cont_velo se sustituye por un contador cont_tearing y el segundo umbral umbral_cont_velo se sustituye por un umbral umbral_cont_tearing.
El procedimiento según el segundo modo de realización, comprende las siguientes etapas.
El programa de control dispone de medios para detectar que se ha lanzado la ejecución del procesamiento de referencia por el dispositivo electrónico. Con cada inicio del procesamiento de referencia, se incrementa el contador de procesamientos, por ejemplo, en 1 (etapa 200).
El programa de control compara a continuación el contador de procesamientos cont_hist con el primer umbral umbral_cont_hist (etapa 202).
Si el primer contador de anomalías cont_hist es estrictamente inferior al primer umbral umbral_cont_hist, entonces no se incrementa el segundo contador cont_tearing. A continuación, el programa de control escribe o actualiza por otro lado, en la memoria 4, el valor del primer contador cont_hist que acaba de incrementarse (etapa 204).
Si el primer contador de anomalías cont_hist es superior o igual al primer umbral umbral_cont_hist, entonces se incrementa el segundo contador umbral_tearing en un segundo incremento (etapa 206). El segundo incremento depende del valor actual del primer contador cont_hist.
En particular, el segundo incremento puede ser igual al valor actual del primer contador. Esta elección presenta la ventaja de estar de acuerdo con las recomendaciones de GlobalPlatform.
Cuando se ha incrementado 206 el segundo contador cont_tearing, el programa de control compara el segundo contador cont_tearing con el segundo umbral umbral_cont_tearing (etapa 208).
Si el segundo contador cont_tearing es superior o igual al segundo umbral umbral_cont_tearing, entonces el programa de control pone en práctica una medida (210) de protección del dispositivo electrónico. En efecto, en tal caso se supone que el dispositivo ha sido objeto de un ataque por inyección de fallo. La medida de protección comprende, por ejemplo, un borrado del contenido de la memoria no volátil, en su totalidad o en parte, de manera que se hace que el dispositivo sea inutilizable.
Si el segundo contador cont_tearing es estrictamente inferior al segundo umbral, vuelve a ponerse el segundo contador a cero (etapa 211).
El programa de control escribe (o actualiza) por otro lado en la memoria volátil el valor de cada contador modificado, tras volver a ponerse a cero (etapa 204).
Por otro lado, una vez que se termina uno de los procesamientos predeterminados, el programa de control verifica si se ha producido una anomalía a lo largo de la puesta en práctica del procesamiento de referencia.
El programa considera que se ha producido una anomalía de este tipo, cuando el procesamiento se ha interrumpido de manera anómala antes de completarse. Cuando el dispositivo 1 electrónico se comunica con el otro dispositivo 8 por un canal de comunicación inalámbrico, una interrupción de este tipo puede estar causada por un alejamiento mutuo accidental de los dos dispositivos 1 y 8 en presencia. Cuando estos dos dispositivos 1 y 8 se comunican mediante contacto eléctrico, esta interrupción puede estar causada por ruptura accidental de este contacto eléctrico. Si el programa de control no detecta anomalía, decrementa el primer contador cont_hist (etapa 212). Si no (se ha detectado una anomalía), el programa de control no decrementa el primer contador cont_hist.
Además, el programa de control cuenta el número de ejecuciones de procesamiento predeterminadas. El programa de control incrementa, por ejemplo, el contador de procesamientos en 1, en cada terminación, normal o anómala, de un procesamiento predeterminado.
Cuando este contador de procesamientos alcanza N, el programa de control vuelve a poner a cero el primer contador cont_hist (etapa 214).
El programa de control escribe y actualiza por otro lado, en la memoria 4 no volátil, el valor de cada contador modificado (etapa 204).
Se observará que siempre hay una escritura, tanto si hay un ataque como si no, usando para ello el programa, dado el caso, escrituras ficticias. En efecto, si solamente se incrementara un contador cuando hay un ataque, sería fácil para un atacante suprimirlo / o evitarlo.
El contador cont_tearing no se decrementa nunca, de conformidad con las especificaciones de GlobalPlatform.

Claims (10)

  1. REIVINDICACIONES
    i. Procedimiento de protección de un dispositivo (1) electrónico contra ataques por inyección de fallo, comprendiendo el procedimiento etapas de
    • detección (100) de anomalías susceptibles de inyectar un fallo en el dispositivo (1) electrónico o de estar provocadas por una inyección de fallo en el dispositivo (1) electrónico,
    • incremento (110, 206) de un contador de anomalías (cont_velo, cont_tearing) en función de las anomalías detectadas,
    • comparación (112, 208) entre el contador de anomalías (cont_velo, cont_tearing) y un primer umbral (umbral_cont_velo, umbral_cont_tearing),
    puesta en práctica de una medida (114, 210) de protección del dispositivo (1) electrónico cuando el número de anomalías contadas alcanza el primer umbral (umbral_cont_velo, umbral_cont_tearing),
    estando el procedimiento caracterizado por que el contador de anomalías (cont_velo, cont_tearing) sólo se incrementa (110, 206) si se ha detectado:
    • un número de anomalías superior o igual a un segundo umbral (umbral_cont_hisf) estrictamente inferior al primer umbral (umbral_cont_velo, umbral_cont_tearing) a lo largo de un periodo durante el cual se ha producido un número predeterminado (N) de procesamientos predeterminados, o • un número de procesamientos predeterminados inferior a un número predeterminado (N) de procesamientos predeterminados a lo largo de un periodo durante el cual se ha producido un número de anomalías predeterminado superior o igual al segundo umbral (umbral_cont_hist),
    en el que un procesamiento predeterminado comprende la puesta en práctica de una transacción bancaria o un comando ADPU.
  2. 2. Procedimiento según la reivindicación 1, en el que el contador de anomalías (umbral_cont_velo, umbral_cont_tearing) se incrementa en un valor igual al número de anomalías detectadas a lo largo del periodo.
  3. 3. Procedimiento según una de las reivindicaciones anteriores, que comprende además etapas de
    • al acabar el periodo, modificación del número predeterminado de procesamientos predeterminados y/o del segundo umbral,
    • tras la etapa de modificación, repetición de las etapas de detección y de incremento del contador de anomalías a lo largo de un nuevo periodo.
  4. 4. Procedimiento según la reivindicación anterior, en el que la modificación atribuye al número predeterminado de procesamientos predeterminados y/o al segundo umbral, un nuevo valor determinado de manera aleatoria.
  5. 5. Procedimiento según una de las reivindicaciones 3 y 4, en el que, a lo largo de la etapa de modificación, el número predeterminado de acontecimientos predeterminados y/o el segundo umbral:
    • se disminuye si el contador de anomalías se ha incrementado a lo largo del periodo,
    • se aumenta si el contador de anomalías no se ha incrementado a lo largo del periodo.
  6. 6. Procedimiento según una de las reivindicaciones 1 a 5, que comprende etapas de
    • puesta a cero de un segundo contador (cont_hisf) al principio del periodo,
    • incremento del segundo contador (cont_hist) en respuesta a una detección de anomalía (100) que se produce a lo largo del periodo,
    • si el segundo contador (cont_hist) es superior o igual al segundo umbral (umbral_cont_hist) al acabar el periodo, incremento (110) del contador de anomalías (cont_velo) con el valor del segundo contador (cont_hist),
    • si el segundo contador (cont_hist) no es superior o igual al segundo umbral (umbral_cont_hist) al acabar el periodo, no incremento del contador de anomalías.
  7. 7. Procedimiento según una de las reivindicaciones 1 a 5, que comprende etapas de
    • puesta a cero de un segundo contador (cont_hist) al principio del periodo,
    • incremento (200) del segundo contador (cont_hist) cada vez que se ejecuta un procesamiento predeterminado por el dispositivo (1) electrónico,
    • decremento (212) del segundo contador (cont_hist) de manera selectiva cada vez que se ha ejecutado un procesamiento predeterminado hasta su acabado por el dispositivo (1) electrónico,
    • si el segundo contador (cont_hist) es superior o igual al segundo umbral (umbral_cont_hisf) al acabar el periodo, incremento (206) del contador de anomalías en un valor igual al segundo contador (cont_hist).
  8. 8. Procedimiento según la reivindicación anterior, en el que el procesamiento predeterminado es un procesamiento que puede interrumpirse por una ruptura anómala de comunicación entre el dispositivo (1) electrónico y otro dispositivo (8).
  9. 9. Procedimiento según una de las reivindicaciones anteriores, en el que la puesta en práctica de una medida (114, 211) de protección comprende el borrado en una memoria del dispositivo electrónico de un contenido susceptible de haberse modificado por un ataque por inyección de fallo.
  10. 10. Producto de programa de ordenador que comprende instrucciones de código de programa para la ejecución de las etapas del procedimiento según una de las reivindicaciones anteriores, cuando se ejecuta este procedimiento por al menos un procesador.
ES18306089T 2017-08-09 2018-08-08 Procedimiento de protección de un dispositivo electrónico contra ataques por inyección de fallo Active ES2902336T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1757616A FR3070076B1 (fr) 2017-08-09 2017-08-09 Procede de protection d'un dispositif electronique contre des attaques par injection de faute

Publications (1)

Publication Number Publication Date
ES2902336T3 true ES2902336T3 (es) 2022-03-28

Family

ID=60955123

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18306089T Active ES2902336T3 (es) 2017-08-09 2018-08-08 Procedimiento de protección de un dispositivo electrónico contra ataques por inyección de fallo

Country Status (4)

Country Link
US (1) US20190050565A1 (es)
EP (1) EP3441902B1 (es)
ES (1) ES2902336T3 (es)
FR (1) FR3070076B1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7462431B2 (ja) * 2020-02-28 2024-04-05 本田技研工業株式会社 不正信号検出装置
IL296962A (en) * 2022-09-30 2024-04-01 Qualcomm Inc Systems and techniques for mitigating defect injection in an abuse-proof element

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928549B2 (en) * 2001-07-09 2005-08-09 International Business Machines Corporation Dynamic intrusion detection for computer systems
US7308714B2 (en) * 2001-09-27 2007-12-11 International Business Machines Corporation Limiting the output of alerts generated by an intrusion detection sensor during a denial of service attack
US20100031156A1 (en) * 2008-07-31 2010-02-04 Mazu Networks, Inc. User Interface For Network Events and Tuning
US8800036B2 (en) * 2010-01-22 2014-08-05 The School Of Electrical Engineering And Computer Science (Seecs), National University Of Sciences And Technology (Nust) Method and system for adaptive anomaly-based intrusion detection
WO2011094484A1 (en) * 2010-01-28 2011-08-04 Drexel University Detection, diagnosis, and mitigation of software faults
EP2357783B1 (fr) * 2010-02-16 2013-06-05 STMicroelectronics (Rousset) SAS Procédé de détection d'un fonctionnement potentiellement suspect d'un dispositif électronique et dispositif électronique correspondant.
KR101977733B1 (ko) * 2012-07-12 2019-05-13 삼성전자주식회사 오류 기반 공격의 검출 방법
US9661015B2 (en) * 2014-05-23 2017-05-23 Nxp B.V. Randomizing countermeasures for fault attacks
US9544321B2 (en) * 2015-01-30 2017-01-10 Securonix, Inc. Anomaly detection using adaptive behavioral profiles
US9471778B1 (en) * 2015-11-30 2016-10-18 International Business Machines Corporation Automatic baselining of anomalous event activity in time series data
US10380341B2 (en) * 2016-04-01 2019-08-13 Qualcomm Incorporated Adaptive systems and procedures for defending a processor against transient fault attacks
US10045218B1 (en) * 2016-07-27 2018-08-07 Argyle Data, Inc. Anomaly detection in streaming telephone network data
RU2637997C1 (ru) * 2016-09-08 2017-12-08 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного кода в файле
CN107203806B (zh) * 2017-05-15 2020-01-10 东软集团股份有限公司 数据异常检测方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
US20190050565A1 (en) 2019-02-14
EP3441902B1 (fr) 2021-09-29
FR3070076B1 (fr) 2019-08-09
FR3070076A1 (fr) 2019-02-15
EP3441902A1 (fr) 2019-02-13

Similar Documents

Publication Publication Date Title
CN108885663B (zh) 用于使处理器抵御瞬时故障攻击的自适应系统和程序
ES2390638T3 (es) Procedimiento y dispositivo de protección de un microcircuito contra ataques
ES2902336T3 (es) Procedimiento de protección de un dispositivo electrónico contra ataques por inyección de fallo
ES2543210T3 (es) Procedimiento y dispositivo de tratamiento de datos
JP2017156945A (ja) 情報処理装置及び制御方法
WO2017097042A1 (zh) 一种安全芯片及其非易失性存储控制装置、方法
CN104143065A (zh) 安全智能终端设备、及信息处理方法
KR20160112316A (ko) 애플리케이션 보호 방법 및 장치
JP7033676B2 (ja) ソフトセキュリティ対策を用いたセキュア集積回路
JP2007004456A (ja) 携帯可能電子装置及び携帯可能電子装置のデータ出力方法
ES2548688T3 (es) Soporte de datos portátil que comprende un contador de error de control
ES2763818T3 (es) Procedimiento de segurización de al menos una zona de memoria de un dispositivo electrónico, módulo de segurización, dispositivo electrónico y programa de ordenador correspondientes
US9483641B2 (en) Method and device for the performance of a function by a microcircuit
JP2014530418A (ja) 安全鍵自己生成
KR101986028B1 (ko) 코드 포인터 보수를 사용하여 프로세싱 흐름에 대한 공격에 대해 장치를 보호하기 위한 시스템 및 방법
EP3667533A1 (en) Method for securing a system in case of an undesired power-loss
US10242183B2 (en) Method of executing a program by a processor and electronic entity comprising such a processor
CN107111577B (zh) 双处理器系统的存储器存取
US9553975B2 (en) Portable terminal and method for controlling portable terminal
KR102418385B1 (ko) 부채널 공격에 대응하기 위한 프로세서의 제어 방법 및 제어 장치
JP6379852B2 (ja) 電子情報記録媒体、プロセッサモジュールの処理方法、及びプロセッサモジュールの処理プログラム
CN114880721A (zh) 用于处理存储在存储器中的数据的方法和装置
JP2011170721A (ja) Icカード及びコンピュータプログラム
JP2016200948A (ja) プログラム不正書き替え防止装置