ES2795101T3 - Actualización de un sistema operativo para un elemento seguro - Google Patents
Actualización de un sistema operativo para un elemento seguro Download PDFInfo
- Publication number
- ES2795101T3 ES2795101T3 ES13177111T ES13177111T ES2795101T3 ES 2795101 T3 ES2795101 T3 ES 2795101T3 ES 13177111 T ES13177111 T ES 13177111T ES 13177111 T ES13177111 T ES 13177111T ES 2795101 T3 ES2795101 T3 ES 2795101T3
- Authority
- ES
- Spain
- Prior art keywords
- operating system
- loader
- secure element
- volatile memory
- instructions
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
Elemento seguro (30) que comprende al menos un microprocesador (31), una memoria no volátil (34) y una interfaz (36) de comunicación, siendo apto el elemento seguro (30) para comunicar con un dispositivo (10) de actualización por la interfaz (36) de comunicación, almacenando la memoria no volátil (34) al menos un cargador (38) de instrucciones iniciales, estando configurado el microprocesador (31) para ejecutar el cargador (38) de instrucciones iniciales durante un arranque del elemento seguro (30), caracterizado por que el cargador (38) de instrucciones iniciales comprende instrucciones para la ejecución de: - una etapa (E1, E12) de arranque para determinar si la memoria no volátil (34) almacena un sistema operativo (35) activo, - una etapa de autentificación del dispositivo (10) de actualización, que comprende: - una determinación (E6, E13) de primeros datos de autentificación (AUTH30) en función de una variable (RAND) y de una clave (MKi) almacenada en dicha memoria no volátil (34), y - una comparación (E7, E14) de los primeros datos de autentificación (AUTH30) y de los segundos datos de autentificación (AUTH10) recibidos del dispositivo (10) de actualización, luego - si la memoria no volátil (34) almacena un sistema operativo (35) activo, una etapa (E15) de desactivación del sistema operativo (35), y - en caso de autentificación del dispositivo (10) de actualización, una etapa (E9, E10) de almacenamiento de un nuevo sistema operativo recibido desde el dispositivo (10) de actualización en la memoria no volátil (34) y una etapa (E11) de activación del nuevo sistema operativo, cuando dichas instrucciones son ejecutadas por el microprocesador (31), estando además el elemento seguro caracterizado por que: - si la memoria no volátil (34) almacena un sistema operativo (35) activo, el cargador (38) de instrucciones iniciales lanza la ejecución del sistema operativo (35) de manera que el sistema operativo gestiona la ejecución de aplicaciones y los comandos recibidos en la interfaz (36) de comunicación, y la etapa de autentificación del dispositivo (10) de actualización, comprende: - un envío (F4), por el sistema operativo (35), de un mensaje (M5) que contiene la variable (RAND) al dispositivo (10) de actualización, y - una recepción (F5), por el sistema operativo (35), de los segundos datos de autentificación (AUTH10), - una interrogación, por el sistema operativo (35), del cargador (38) de instrucciones iniciales para que el cargador (38) de instrucciones iniciales verifique los segundos datos de autentificación (AUTH10), - si el sistema operativo (35) está inactivo, el cargador (38) de instrucciones iniciales sigue siendo maestro de manera que los comandos recibidos en la interfaz de comunicación son gestionados por el cargador (38) de instrucciones iniciales, y la etapa de autentificación del dispositivo de actualización comprende: - un envío (E4), por el cargador (38) de instrucciones iniciales, de un mensaje (M5) que contiene la variable (RAND) al dispositivo (10) de actualización, - una recepción (E5), por el cargador (38) de instrucciones iniciales, de los segundos datos de autentificación (AUTH10).
Description
DESCRIPCIÓN
Actualización de un sistema operativo para un elemento seguro
Antecedentes de la invención
La presente invención se refiere al campo de los elementos seguros integrados, tales como las tarjetas inteligentes. Un elemento seguro integrado, por ejemplo, una tarjeta inteligente, típicamente tiene la arquitectura de hardware de un ordenador y en particular comprende un microprocesador y una memoria no volátil que comprende programas de ordenador ejecutables por el microprocesador. En particular, la memoria no volátil incluye un sistema operativo cargado por el fabricante del elemento seguro antes de que esté disponible para un usuario.
Puede ser conveniente actualizar el sistema operativo después de que el elemento seguro haya sido puesto a disposición del usuario.
El documento WO 2012/062632 A1 describe un procedimiento para actualizar el software en un elemento integrado. Este procedimiento comprende el borrado del software, la carga de un programa de gestión de actualización en lugar del software, que carga un cargador de instrucciones iniciales actualizado cuando se inicia el elemento integrado. La seguridad de esta solución se basa únicamente en la huella del software. Por lo tanto, esta solución no es adecuada para las aplicaciones que requieren un alto grado de seguridad. Además, el procedimiento requiere dos reinicios del elemento seguro.
Por lo tanto, existe la necesidad de un procedimiento fiable y seguro de actualización de software para un elemento seguro. El documento EP 2453 352 A1 describe un procedimiento de actualización y de firmware en un elemento integrado. El documento DE 199 25 389 A1 describe un procedimiento de carga de nuevo código ejecutable después de una autentificación de un dispositivo de actualización.
Objeto y resumen de la invención.
La invención propone un elemento seguro que comprende al menos un microprocesador, una memoria no volátil y una interfaz de comunicación, siendo apto el elemento seguro para comunicar con un dispositivo de actualización por la interfaz de comunicación, almacenando la memoria no volátil al menos un cargador de instrucciones iniciales, estando configurado el microprocesador para ejecutar el cargador de instrucciones iniciales durante el arranque del elemento seguro, y estando caracterizado como en la reivindicación 1.
Por lo tanto, el cargador de instrucciones iniciales permite la actualización del sistema operativo, de manera segura y fiable. En efecto, como esta actualización requiere autentificación del dispositivo de actualización, es imposible que un tercero proporcione una versión corrompida del sistema operativo al elemento seguro.
La etapa de autentificación del dispositivo de actualización comprende:
- una etapa de envío de un mensaje que contiene una variable al dispositivo de actualización,
- una etapa de recepción de los segundos datos de autentificación,
- una etapa de determinación de los primeros datos de autentificación en función de dicha variable y de una clave memorizada en dicha memoria no volátil, y
- una etapa de comparación de los primeros datos de autentificación y de los segundos datos de autentificación.
Así, el cargador de instrucciones iniciales comprende en sí mismo todas las instrucciones necesarias para realizar la autentificación del dispositivo de actualización. Por tanto, la actualización del sistema operativo se puede iniciar o continuar cuando la memoria no volátil no comprende sistema operativo o cuando el sistema operativo se ha desactivado, por ejemplo, durante un intento de actualización precedente que no haya sido conseguido.
El cargador de instrucciones iniciales también puede comprender instrucciones para la ejecución de una etapa de envío de un mensaje que contiene un dato cifrado en función de la clave y de dicha variable al dispositivo de actualización. Esto permite que el dispositivo de actualización autentifique el elemento seguro. Por tanto, se lleva a cabo una autentificación mutua entre el elemento seguro y el dispositivo de actualización. Así, solo un elemento seguro autentificado puede obtener la nueva versión del sistema operativo.
Si la memoria no volátil comprende un sistema operativo activo, este sistema operativo incluye instrucciones para la ejecución de:
- una etapa de envío de un mensaje que contiene la variable al dispositivo de actualización,
- una etapa de recepción de los segundos datos de autentificación,
- si es necesario, una etapa de envío de un mensaje que contiene datos cifrados en función de la clave y de la variable al dispositivo de actualización.
En este caso, si la memoria no volátil incluye un sistema operativo activo, éste comprende las instrucciones que le permiten participar en la autentificación, en colaboración con el cargador de instrucciones iniciales. Por tanto, la actualización del sistema operativo puede iniciarse durante el funcionamiento normal del elemento seguro, cuando su funcionamiento es gestionado por el sistema operativo.
La etapa de memorización puede comprender la recepción del nuevo sistema operativo de manera cifrada.
Así, un tercero que intercepta la comunicación entre el dispositivo de actualización y el elemento seguro no puede obtener la nueva versión del sistema operativo.
En este caso, la etapa de autentificación puede comprender la determinación de una clave de sesión en función de dicha clave y de dicha variable, y la etapa de memorización puede comprender la recepción del nuevo sistema operativo cifrado con dicha clave de sesión.
Como se utiliza la misma clave de sesión para la autentificación y la comunicación cifrada, los recursos criptográficos requeridos en el elemento seguro son limitados.
Por razones de seguridad y de fiabilidad, el cargador de instrucciones iniciales se almacena preferiblemente de manera no modificable.
Por ejemplo, el cargador de instrucciones iniciales se almacena en una parte no regrabable de la memoria no volátil. En una variante, el cargador de instrucciones iniciales se almacena en una parte regrabable de la memoria no volátil, conteniendo la memoria no volátil un sistema operativo configurado para bloquear los comandos de escritura en el cargador de instrucciones iniciales.
La invención también propone un terminal que comprende al menos un microprocesador, una memoria no volátil y un elemento seguro conforme a la reivindicación 1, comprendiendo la memoria no volátil del terminal un programa de gestión de actualización y una aplicación destinada a usar un servicio proporcionado por el elemento seguro, el programa de gestión de actualización de las instrucciones para la ejecución de:
- una etapa de transmisión que comprende la recepción del nuevo sistema operativo del dispositivo de actualización y el envío del nuevo sistema operativo recibido al elemento seguro,
- una etapa de desactivación de dicho servicio durante al menos la etapa de transmisión, cuando dichas instrucciones son ejecutadas por el microprocesador del terminal.
La invención también proporciona un sistema que comprende al menos un elemento seguro conforme a la invención y un dispositivo de actualización que almacena la nueva versión del sistema operativo.
Breve descripción de los dibujos
Otras características y ventajas de la presente invención surgirán de la descripción dada a continuación, con referencia a los dibujos adjuntos que ilustran un ejemplo de realización de la misma, desprovista de cualquier carácter limitante. En las figuras:
La figura 1 representa un sistema que incluye un elemento seguro según un modo de realización de la invención, La figura 2 representa las etapas principales correspondientes a la ejecución del cargador de instrucciones iniciales del elemento seguro de la figura 1,
La figura 3 representa las interacciones en el sistema de la figura 1 durante la actualización del sistema operativo del elemento seguro,
Las figuras 4A, 4B, 4C y 4D representan el estado de la memoria no volátil del elemento seguro de la figura 1, en diferentes momentos,
Las figuras 5A, 5B, 5C y 5D representan la memoria no volátil del elemento seguro de la figura 1 para ilustrar el procesamiento de comandos, y
Las figuras 6 y 7 ilustran un ejemplo de determinación de bloques que contienen, de manera cifrada, una nueva versión de un sistema operativo.
Descripción detallada de un modo de realización.
La figura 1 representa un sistema que incluye un dispositivo 10 de actualización, un terminal 20 y un elemento seguro 30 integrado en el terminal 20.
El dispositivo 10 de actualización presenta la arquitectura de hardware de un ordenador y comprende en particular un microprocesador 11, una interfaz 12 de comunicación, una memoria volátil 13 y una memoria no volátil 14. El microprocesador 11 permite la ejecución de programas informáticos almacenados en la memoria no volátil 14, utilizando la memoria volátil 13 como espacio de trabajo. La interfaz 12 de comunicación permite comunicar con el terminal 20.
La memoria no volátil 14 almacena en particular una nueva versión de un sistema operativo para un elemento seguro, denominado OS(V2), así como una clave secreta K.
El dispositivo 10 de actualización es, por ejemplo, un servidor de actualización que se encuentra en las instalaciones de un fabricante de elementos seguros. En este caso, la interfaz 12 de comunicación permite establecer comunicación con el terminal 20 a través de una red de telecomunicaciones, por ejemplo, a través de Internet. En una variante, el dispositivo 10 de actualización puede ser un elemento seguro, por ejemplo, una tarjeta SD, una tarjeta NFC o una memoria USB. En este caso, la interfaz 12 de comunicación permite establecer una comunicación con el terminal 20 pasando por un lector de elemento seguro.
El terminal 20 es, por ejemplo, un terminal portátil que pertenece a un usuario, por ejemplo, un teléfono portátil.
El terminal 20 presenta la arquitectura de hardware de un ordenador y comprende en particular un microprocesador 21, una interfaz 22 de comunicación, una memoria volátil 23, una memoria no volátil 24 y una interfaz 26 de comunicación. El microprocesador 21 permite la ejecución de programas informáticos almacenados en la memoria no volátil 24, utilizando la memoria volátil 23 como espacio de trabajo. La interfaz 22 de comunicación permite comunicar con el dispositivo 10 de actualización. La interfaz 26 de comunicación permite comunicar con el elemento seguro 30.
La memoria no volátil 24 almacena en particular el sistema operativo 25 del terminal 20, un programa P1 de gestión de actualización, y datos y aplicaciones de usuario, de los cuales se representa una aplicación A1.
El programa P1 tiene por función gestionar la comunicación entre el elemento seguro 30 y el dispositivo 10 de actualización, para permitir que se actualice el sistema operativo del elemento seguro 30. El programa P1 es preferiblemente un módulo integrado en el sistema operativo 25 del terminal 20, como se representa en la figura 1.
El elemento seguro 30 es, por ejemplo, una tarjeta inteligente alojada de manera extraíble en el terminal 20.
El elemento seguro 30 presenta la arquitectura de hardware de un ordenador y comprende en particular un microprocesador 31, una interfaz 36 de comunicación, una memoria volátil 33 y una memoria no volátil 34. El microprocesador 31 permite la ejecución de programas informáticos almacenados en la memoria no volátil 34, utilizando la memoria volátil 33 como espacio de trabajo. La interfaz 36 de comunicación permite comunicar con el terminal 20.
La memoria no volátil 34 almacena en particular un cargador 38 de instrucciones iniciales (denominado BL para «Boot Loader»), un sistema operativo 35, datos 37 de usuario, una clave MKi, un número de serie Ni, un indicador 39 de estado del sistema operativo 35, y una variable 70 que representa el valor de un contador C de autentificación.
El sistema operativo 35 es, en el estado representado, una primera versión indicada como OS(V1) diferente de la versión OS(V2) almacenada por el dispositivo 10 de actualización.
El indicador 39 de estado del sistema operativo 35 puede tomar un valor «activo» o «inactivo». Se trata, por ejemplo, de un bit de estado almacenado en el sistema operativo 35 o en otra parte de la memoria no volátil 34. Su misión se describe a continuación.
El contador C de autentificación se inicializa a un valor determinado, por ejemplo 50. Durante el proceso de actualización del sistema operativo, el contador C es disminuido. Al final del proceso de actualización, si éste ha sido exitoso, el contador se reinicia. Si el valor del contador C cae por debajo de un cierto umbral, por ejemplo 3, esto significa que han fallado numerosos intentos de actualizar el sistema operativo 35. En este caso, el proceso de actualización es bloqueado. Entonces ya no es posible actualizar el sistema operativo 35 comunicando con el dispositivo 10 de actualización. Sin embargo, es posible reinicializar el elemento seguro y cargar en él un nuevo sistema operativo accediendo a un proveedor de servicios con derechos de acceso específicos.
La clave MKi y el número de serie Ni corresponden a la clave secreta K almacenada por el dispositivo 10 de actualización y, por ejemplo, se almacena en el cargador 38 de instrucciones iniciales. Más específicamente, el dispositivo 10 de actualización comprende medios de derivación que permiten determinar una clave MKi correspondiente al número de serie Ni de un elemento seguro i, de acuerdo con un procedimiento mantenido en secreto. En una variante no representada, el dispositivo 10 de actualización almacena las claves MKi y los números de serie Ni de una pluralidad de elementos seguros. En ambos casos, el dispositivo 10 de actualización puede determinar la clave MKi asociada con un número de serie Ni.
Los datos 37 de usuario comprenden en particular aplicaciones, de las cuales se representa una aplicación A2, y datos personales de los cuales se representa un conjunto D1. El sistema operativo 35 permite la gestión de las aplicaciones
alojadas en el elemento seguro 30. Estas aplicaciones son, por ejemplo, aplicaciones seguras que permiten el acceso a servicios de pago y transporte, y explotan una interfaz de comunicación del terminal 20 de tipo NFC.
El cargador 38 de instrucciones iniciales contiene en particular una interfaz de programación API que permite la interacción entre el cargador 38 de instrucciones iniciales y el sistema operativo 35 durante su ejecución.
La comunicación entre el terminal 20 y el elemento seguro 30, a través de las interfaces 26 y 36 de comunicación se basa, por ejemplo, en el intercambio de la unidad ADPU conforme a la norma ISO/IEC 7816-4.
El microprocesador 31 está configurado para ejecutar el cargador 38 de instrucciones iniciales durante el arranque del elemento seguro 30. En funcionamiento normal, el cargador 38 de instrucciones iniciales lanza entonces la ejecución del sistema operativo 35. El sistema operativo 35 gestiona entonces la ejecución de aplicaciones y la interpretación de los comandos recibidos por la interfaz 36.
El cargador 38 de instrucciones iniciales se almacena de una manera no modificable. Por ejemplo, el cargador 38 de instrucciones iniciales se almacena en una parte de la memoria no volátil 34 de tipo ROM. En este caso, el cargador 38 de instrucciones iniciales puede formar parte del cargador de instrucciones iniciales utilizado por el fabricante del elemento seguro 30 para cargar el sistema operativo 35 durante la puesta en servicio del elemento seguro 30. Como variante, el cargador 38 de instrucciones iniciales se almacena en una parte de la memoria no volátil 24 regrabable, por ejemplo, del tipo de memoria Flash. En este caso, el sistema operativo 35 está configurado para bloquear cualquier comando de escritura en esta parte de la memoria.
Ahora se describirá el funcionamiento del sistema en la figura 1, en particular la actualización del sistema operativo 35 para reemplazar la primera versión OS(V1) con la segunda versión OS(V2).
La figura 2 es un diagrama de etapas que representa las etapas principales de un procedimiento operativo del elemento seguro 30, correspondiente a la ejecución del cargador 38 de instrucciones iniciales. La figura 3 es un diagrama que representa los mensajes intercambiados entre el dispositivo 10 de actualización, el terminal 20 y el elemento seguro 30 durante el procedimiento operativo de la figura 2.
Este procedimiento de funcionamiento comienza en la etapa E0 durante el arranque del elemento seguro 30. Como se explicó anteriormente, el microprocesador 31 está configurado para lanzar la ejecución del cargador 38 de instrucciones iniciales durante el arranque del elemento seguro 30. Por ejemplo, el cargador 38 de instrucciones iniciales se encuentra en un emplazamiento predeterminada de la memoria no volátil 34, llamado sector de arranque, al que apunta inicialmente el microprocesador 31.
Luego, en la etapa E1, el elemento seguro 30 determina si el sistema operativo 35 está activo. Más precisamente, si la memoria no volátil 34 contiene el sistema operativo 35 y el indicador 39 de estado tiene el valor «activo», entonces se considera que el sistema operativo 35 está activo. Por el contrario, si la memoria no volátil 34 no contiene un sistema operativo 35 o si el indicador 39 de estado tiene el valor «inactivo», se considera que el sistema operativo 35 está inactivo.
Si el sistema operativo 35 está activo, entonces, en la etapa E12, el cargador 38 de instrucciones iniciales lanza la ejecución del sistema operativo 35. Esto corresponde al modo de funcionamiento normal del elemento seguro 30, durante el cual el sistema operativo 35 gestiona la ejecución de aplicaciones y los comandos recibidos en la interfaz 36 de comunicación.
Por el contrario, si el sistema operativo 35 está inactivo, entonces el cargador 38 de instrucciones iniciales no inicia la ejecución del sistema operativo 35. En otras palabras, el cargador 38 de instrucciones iniciales sigue siendo maestro. Esto tiene la consecuencia, en particular, de que los comandos recibidos en la interfaz 36 de comunicación son gestionados por el cargador 38 de instrucciones iniciales.
Así, cuando el programa P1 de gestión de actualización del terminal 20 envía mensajes M3 y M4 destinados a lanzar el proceso de actualización del sistema operativo 35, estos mensajes M3 y M4 son recibidos o bien por el cargador 38 de instrucciones iniciales (etapa E2) si el sistema operativo 35 está inactivo, o bien por el sistema operativo 35 (etapa F2) si está activo. A continuación, se describe en primer lugar el proceso de actualización del sistema operativo 35 en el caso en que el sistema operativo 35 está inactivo (etapas E2 a E11), luego en el caso en que el sistema operativo 35 está activo (etapas F2 a F5, E13, E14, F8, E15 y E9 a E11).
Con referencia a la figura 3, el terminal 20 envía un mensaje M1 al dispositivo 10 de actualización para solicitarle la última versión disponible del sistema operativo. El envío del mensaje M1 forma parte de la ejecución del programa P1 y se lleva a cabo, por ejemplo, periódicamente o cuando se cumple una condición predeterminada.
El dispositivo 10 de actualización responde al mensaje M1 con un mensaje M2 que especifica la versión disponible: V=V2.
Luego, el terminal 20 envía un mensaje M3 al elemento seguro 30, para seleccionar la aplicación de actualización, es decir, la parte del cargador 38 de instrucciones iniciales o del sistema operativo 35 responsable de la ejecución de las etapas E2 y siguientes o F2 y siguientes. El mensaje M3 es, por ejemplo, un comando de tipo ADPU recientemente definido, llamado «Selección de aplicación del cargador del OS».
Luego, el terminal 20 envía un mensaje M4 al elemento seguro 30, para informarle de la nueva versión V2 disponible. El mensaje M4 es recibido, en la etapa E2, por el elemento seguro 30. Más específicamente, en el presente ejemplo donde el sistema operativo está inactivo, el mensaje M4 es gestionado directamente por el cargador 38 de instrucciones iniciales. El mensaje M4 es, por ejemplo, un comando de tipo ADPU recién definido, llamado «VERSIÓN DE EMPUJE DISPONIBLE».
Luego, en la etapa E3, el elemento seguro 30 determina la versión del sistema operativo. Por ejemplo, el cargador 38 de instrucciones iniciales interroga al sistema operativo 35 utilizando la interfaz de programación API. Si el sistema operativo 35 está presente, responde dando su versión V. Si no hay ningún sistema operativo presente, el cargador 38 de instrucciones iniciales tiene en cuenta una versión V por defecto que almacena y que corresponde a la versión del sistema operativo 35 cargada inicialmente en el elemento seguro 30 por el fabricante. El elemento seguro 30 verifica entonces que la versión V recibida en el mensaje M4 es superior a la versión actual del sistema operativo 35, es decir V1 en este ejemplo.
Si la versión V recibida en el mensaje M4 es superior a la versión actual del sistema operativo 35, entonces, en la etapa E4, el elemento seguro 30 envía un mensaje M5 hacia el dispositivo 10 de actualización, por medio del terminal 20 que lo prolonga por un mensaje M5'. El mensaje M5 contiene el número de serie Ni del elemento seguro 30, un número aleatorio RAND y el valor del contador C de autentificación (variable 70).
En función del número de serie Ni contenido en el mensaje M5', el dispositivo 10 de actualización determina la clave correspondiente MKi, ya sea en función del número de serie Ni y de la clave secreta K, de acuerdo con el procedimiento de derivación mencionado anteriormente, o bien consultando la clave MKi que almacena en correspondencia con el número de serie Ni recibido. A continuación, el dispositivo 10 de actualización determina una clave de sesión SK en función de la clave MKi determinada y del número aleatorio RAND recibido, y de los datos de autentificación AUTH10 mediante el cifrado del número aleatorio RAND con la clave de sesión SK. El dispositivo 10 de actualización envía entonces un mensaje M6 que contiene los datos de autentificación AUTH10 al elemento seguro 30, por medio del terminal 20 que lo prolonga en un mensaje M6'. El mensaje M6' es, por ejemplo, un comando del tipo de ADPU recién definido, denominado «AUTENTIFICACIÓN MUTUA».
El mensaje M6' es recibido por el elemento seguro 30 en la etapa E5. En respuesta a la recepción del mensaje M6', el elemento seguro 30 determina, en la etapa E6, una clave de sesión SK, normalmente idéntica a la clave de sesión SK determinada por el dispositivo 10 de actualización, dependiendo de la clave maestra MKi y del número aleatorio RAND, y de los datos de autentificación AUTH30 mediante el cifrado del número aleatorio RAND con la clave de sesión SK determinada. El elemento seguro 30 también disminuye el contador C de autentificación.
Luego, en la etapa E7, el elemento seguro 30 compara los datos de autentificación AUTH10 y AUTH30. En caso de correspondencia, una autentificación, por el elemento seguro 30, del dispositivo 10 de actualización se ha realizado, con determinación de una clave de sesión SK.
En caso de autentificación, en la etapa E8, el elemento seguro 30 envía un mensaje M7 al dispositivo 10 de actualización, por medio del terminal 20 que lo prolonga en un mensaje M7'. El mensaje M7 se cifra con la clave de sesión SK y contiene la versión actual V1 del sistema operativo 35 determinado en la etapa E3.
La recepción del mensaje M7' permite entonces que el dispositivo 10 de actualización autentifique el elemento seguro 30. Por ejemplo, si la versión está codificada en dos bytes y el mensaje descifrado comprende 16 bytes, el dispositivo 10 de actualización puede autentificar el elemento seguro comprobando que los primeros 14 bytes del mensaje descifrado M7' son cero. Por lo tanto, se ha llevado a cabo una autentificación mutua entre el elemento seguro 30 y el dispositivo 10 de actualización.
Luego, el dispositivo 10 de actualización determina N bloques OSB1, OSB2, ... OSBN. Cada bloque comprende una parte del sistema operativo cifrada con la clave de sesión SK. El número N se elige de modo que el tamaño de un bloque sea lo suficientemente limitado como para poder ser transmitido en un solo comando del tipo ADPU. El dispositivo 10 de actualización luego transmite los bloques determinados al terminal 20, en uno o más mensajes M8. El terminal 20 almacena los bloques recibidos hasta que se hayan recibido todos los bloques.
Entonces, el terminal 20 envía una sucesión de mensajes M91, M92, ... M9n al elemento seguro 30, conteniendo cada mensaje M91, M92, ... M9n que contiene uno de los bloques OSB1, OSB2, ... OSBN. Cada bloque es descifrado por el elemento seguro 30, utilizando la clave de sesión SK, y almacenado en lugar de la versión V1 del sistema operativo 35.
Cada mensaje M9j, para j variando de 1 a N-1 es, por ejemplo, un comando del tipo ADPU recientemente definido, llamado «BLOQUE DE CARGA», al que el elemento seguro 30 responde con un mensaje de reconocimiento M9j'. El mensaje M9n es, por ejemplo, un comando de tipo ADPU recién definido, llamado «CARGAR EL ÚLTIMO BLOQUE». La recepción, por el elemento seguro 30, de los mensajes M91, M92, ... M9n constituye una etapa E9 de recepción de la nueva versión del sistema operativo.
Después de recibir el último mensaje M9n , en la etapa E10, el elemento seguro 30 realiza una verificación de la nueva versión del sistema operativo recibido, por ejemplo, mediante una prueba de verificación de redundancia cíclica.
Si se verifica la prueba, en la etapa E11, el elemento seguro 30 reinicializa el contador C, activa el sistema operativo 35 y lanza su ejecución. En este estado, la nueva versión del sistema operativo 35 es por tanto ejecutada por el elemento seguro 30.
En el caso en el que, en la etapa E1, se ha determinado que el sistema operativo 35 está activo, la operación es similar a la descrita anteriormente y a continuación se describen las principales diferencias. En la etapa E12, el elemento seguro 30 ejecuta el sistema operativo 35. Así, como se explicó anteriormente, el mensaje M4 recibido es gestionado por el sistema operativo 35. Las etapas F2 a F5 de la figura 2 corresponden a las etapas E2 a E5 descritas anteriormente, pero corresponden a la ejecución de instrucciones del sistema operativo 35 y no del cargador 38 de instrucciones iniciales.
Después de recibir los datos de autentificación AUTH10, el sistema operativo 35 interroga al cargador 38 de instrucciones iniciales, por medio de la interfaz de programación API, para que verifique los datos de autentificación AUTH10 durante las etapas E13 y E14 similares a las etapas E6 y E7. A continuación, es el sistema operativo 35 el que responde con el mensaje M7 a la etapa F8. Luego, el sistema operativo 35 vuelve al cargador 38 de instrucciones iniciales en la etapa E15.
En la etapa E15, el cargador 38 de instrucciones iniciales desactiva el sistema operativo 35. Por ejemplo, el cargador de instrucciones iniciales borra el sistema operativo 35 de la memoria no volátil 34, o modifica el valor del indicador 39 de estado a «inactivo». Las siguientes etapas E9 a E11 son similares a las descritos anteriormente.
Las etapas E1 a E15 corresponden a la ejecución, por el microprocesador 31, de instrucciones del cargador 38 de instrucciones iniciales. Las etapas F2 a F5 y F8 corresponden a la ejecución, por el microprocesador 31, de instrucciones del sistema operativo 35.
Las figuras 4A a 4D representan el contenido de la memoria no volátil 34 en diferentes momentos del proceso de fabricación del elemento seguro 30 y de la actualización del sistema operativo 35. Las figuras 4A y 4B muestran que, en este ejemplo, la memoria no volátil 34 comprende una parte 40 regrabable, por ejemplo, del tipo de memoria Flash, y una parte 41 no regrabable del tipo ROM.
La figura 4A representa el estado inicial de la memoria no volátil 34. La parte 40 está vacía y la parte 41 comprende el cargador de instrucciones iniciales del fabricante de la tarjeta. En este estado inicial, el microprocesador 31 está configurado para lanzar la ejecución de este cargador de instrucciones iniciales durante el arranque del elemento seguro 30, como representa la flecha 42. La función del cargador de instrucciones iniciales es permitir la carga del cargador 38 de instrucciones iniciales, del sistema operativo 35 y de los datos 37 de usuario en la parte 40 de la memoria no volátil 34, durante la personalización del elemento seguro 30 por el fabricante.
La figura 4B representa el estado de la memoria no volátil 34 después de la personalización del elemento seguro 30 por el fabricante. La parte 40 comprende el cargador 38 de instrucciones iniciales, el sistema operativo 35 (versión OS(V1)), los datos 37 del usuario y un área 44 no utilizada. El cargador de instrucciones iniciales de la parte 41 se ha desactivado y el microprocesador 31 está configurado para lanzar la ejecución del cargador 38 de instrucciones iniciales durante el arranque del elemento seguro 30, como representa la flecha 43. En este estado, el sistema operativo 35 se activa y, por lo tanto, el cargador 38 de instrucciones iniciales lanza la ejecución del sistema operativo 35, como representa la flecha 45. Esto corresponde a las etapas E0, E1 y E12 descritas anteriormente.
La figura 4C representa la parte 40 de la memoria no volátil 34 durante el proceso de actualización del sistema operativo 35. Más específicamente, en el estado de la figura 4C, el sistema operativo 35 se ha desactivado (etapa E15 de la figura 2), ya sea borrando o modificando el indicador 39 de estado. El cargador 38 de instrucciones iniciales recibe mensajes M9i, lo que está representado por la flecha 46, y almacena los bloques OSBi contenidos en estos mensajes en lugar de la versión antigua del sistema operativo 35, como se representa por la flecha 47. Esto corresponde a la etapa E9 en la figura 2.
La figura 4D representa la parte 40 de la memoria no volátil 34 después de la actualización del sistema operativo 35 (paso E11 de la figura 2). La parte 40 comprende el cargador 38 de instrucciones iniciales, el sistema operativo 35 en la versión OS(V2), los datos 37 del usuario y un área 44 no utilizada. Como las versiones OS(V1) y OS(V2) del sistema operativo 35 no tienen necesariamente el mismo tamaño, el área 44 no utilizada puede tener un tamaño diferente entre la figura 4D y la figura 4B. En el estado representado, el sistema operativo 35 está activado. El microprocesador 31 está configurado para lanzar la ejecución del cargador 38 de instrucciones iniciales durante el arranque del elemento seguro, como representa la flecha 43. En este estado, el sistema operativo 35 se activa y, por lo tanto, el cargador 38 de instrucciones iniciales lanza la ejecución del sistema operativo 35, como representa la flecha 45.
Las figuras 5A a 5D ilustran un ejemplo del procesamiento de los mensajes M4 (comando ADPU «VERSIÓN DE EMPUJE DISPONIBLE») y M6' (comando ADPU «AUTENTIFICACIÓN MUTUA») por el elemento seguro 30.
En particular, la figura 5A ilustra el procesamiento de un mensaje M4 (comando ADPU «VERSIÓN DE EMPUJE DISPONIBLE») cuando el sistema operativo 35 está activo. La recepción del mensaje M4 corresponde, por lo tanto, a la etapa F2 de la figura 2. En respuesta al mensaje M4, el sistema operativo 35 interroga al cargador 38 de instrucciones iniciales para determinar la versión del sistema operativo 35 (flecha 50). El cargador 38 de instrucciones iniciales consulta entonces la información de versión en el sistema operativo 35 (flecha 51) y responde al sistema operativo (flecha 52). Estos
intercambios se llevan a cabo utilizando la interfaz de programación API. A continuación, el sistema operativo 35 responde con un mensaje M5, que corresponde a la etapa F4 de la figura 2.
A modo de comparación, la figura 5B ilustra el procesamiento de un mensaje M4 (comando ADPU «VERSIÓN DE EMPUJE DISPONIBLE») cuando el sistema operativo 35 está inactivo. En este ejemplo, el sistema operativo 35 ha sido borrado. La recepción del mensaje M4 corresponde a la etapa E2 de la figura 2. En respuesta al mensaje M4, el cargador 38 de instrucciones iniciales intenta interrogar al sistema operativo 35 para determinar la versión del sistema operativo 35 (flecha 53). Como el sistema operativo 35 ha sido borrado, el cargador 38 de instrucciones iniciales no recibe respuesta y, por tanto, usa la versión por defecto que almacena. Luego, el cargador 38 de instrucciones iniciales responde con un mensaje M5, que corresponde a la etapa E4 de la figura 2.
La figura 5C ilustra el procesamiento de un mensaje M6' (comando ADPU «AUTENTIFICACIÓN MUTUA») cuando el sistema operativo 35 está activo. La recepción del mensaje M6' corresponde, por tanto, a la etapa F5 de la figura 2. En respuesta al mensaje M6', el sistema operativo 35 interroga al cargador 38 de instrucciones iniciales para verificar los datos de autentificación AUTH10 del dispositivo 10 de actualización (flecha 54). El cargador 38 de instrucciones iniciales verifica los datos de autentificación AUTH10 usando la clave maestra MKi (flecha 56). Esto corresponde a las etapas E13 y E14 de la figura 2. El cargador 38 de instrucciones iniciales confirma la autentificación al sistema operativo (flecha 55). Luego, el sistema operativo 35 responde con un mensaje M7, que corresponde a la etapa F8 de la figura 2.
A modo de comparación, la figura 5D ilustra el procesamiento de un mensaje M6' (comando ADPU «AUTENTIFICACIÓN MUTUA») cuando el sistema operativo 35 está inactivo. La recepción del mensaje M6' corresponde, por tanto, a la etapa E5 de la figura 2. En respuesta al mensaje M6', el cargador 38 de instrucciones iniciales verifica los datos de autentificación AUTH 10 usando la clave maestra MKi (flecha 57). Esto corresponde a las etapas E6 y E7 en la figura 2. El cargador 38 de instrucciones iniciales confirma la autentificación y responde con un mensaje M7, lo que corresponde a la etapa E8 de la figura 2.
Se ha descrito, con referencia a las figuras 2 y 3, la realización de la autentificación mutua y de una comunicación cifrada entre el elemento seguro 30 y el dispositivo 10 de actualización. El experto en la técnica puede elegir formatos de clave y algoritmos criptográficos apropiados para realizar estas funciones. A continuación, se da un ejemplo no limitativo.
El dispositivo 10 de actualización almacena una clave secreta K de 32 bytes. Cuando recibe un número de serie Ni de 16 bytes, el dispositivo 10 de actualización puede determinar la clave MKi de 32 bytes correspondiente al elemento seguro 30 cuyo número de serie es Ni, en función de K y de Ni. Los diseñadores del sistema pueden elegir el algoritmo que permite calcular la función MKi de K y Ni y mantenerlo en secreto para mejorar la seguridad. El uso del número de serie de Ni permite diferenciar los datos de autentificación y el cifrado de diferentes elementos seguros. El elemento seguro almacena directamente la clave MKi y por tanto, no debe calcular MKi en función de K y Ni.
La clave de sesión SK se puede determinar utilizando el algoritmo AES-256, en función de la clave MKi y del número aleatorio RAND de 32 bytes. El dispositivo 10 de actualización y el elemento seguro 30 calculan los dos: SK = AES-256(MKi, RAND).
En lugar del número aleatorio RAND, se puede usar otra variable (variable pseudoaleatoria, fecha, número incremental...)
Los datos de autentificación AUTH10 y AUTH30 también se pueden determinar utilizando el algoritmo AES-256, en función de la clave de sesión SK y del número aleatorio RAND. Así, el dispositivo 10 de actualización calcula AUTH10 = AES-256(SK, RAND). De manera correspondiente, el elemento seguro 30 calcula AUTH30 = AES-256(SK, RAND). Al comparar los datos de autentificación AUTH10 recibidos y los datos de autentificación AUTH30, determinados, el elemento seguro 30 realiza una autentificación del dispositivo 10 de actualización.
El mensaje M7 enviado por el elemento seguro 30 al dispositivo 10 de actualización comprende la versión actual V1 del sistema operativo 35 cifrada por la clave de sesión SK usando el algoritmo AES-256-CBC-IS09797-M1 : M7 = AES-256-CBC-IS09797-M1 (SK, V1). Esto permite la autentificación del elemento seguro 30 por el dispositivo 10 de actualización. Para este propósito, se utiliza el modo CBC («encadenamiento de bloques de cifrado») y se utiliza un criptograma ICV que se determina en función del número aleatorio RAND. Por ejemplo, ICV se determina aplicando el algoritmo AES-256 de 16 bytes centrales del número aleatorio RAND.
Así, puede realizarse una autentificación mutua entre el elemento seguro 30 y el dispositivo 10 de actualización.
Las figuras 6 y 7 ilustran un ejemplo de determinación, por el dispositivo 10 de actualización, de los bloques OSB1, OSB2, ...OSBN que contiene, de forma cifrada, la nueva versión OS(V2) del sistema operativo 35.
El código del sistema operativo, denominado OS(V2), es un conjunto de datos no cifrados que contienen en particular instrucciones ejecutables por el microprocesador 31. El dispositivo 10 de actualización añade una huella digital 60 al final del código OS(V2). La huella digital 60 se determina, por ejemplo, utilizando el algoritmo SHA-512.
A continuación, el dispositivo 10 de actualización añade, al comienzo del código OS(V2), un número secreto 61, el tamaño 62 del código OS(V2) y la versión 63 del sistema operativo del código OS(V2). El número secreto 61 está codificado, por
ejemplo, en cuatro bytes y es conocido por el dispositivo 10 de actualización y por el elemento seguro 30. Ofrece seguridad adicional durante la verificación, por el elemento seguro 30, del sistema operativo recibido. El tamaño 61 está codificado, por ejemplo, en cuatro bytes. La versión 63 del sistema operativo del código OS(V2) está codificada, por ejemplo, en dos bytes.
Luego, el dispositivo 10 de actualización añade, al final del conjunto formado por el número secreto 61, el tamaño 62, la versión 63, el código OS(V2) y la huella 61, datos 64 de llenado (por ejemplo, bytes de valores «0») para alcanzar un número total de bytes que es un múltiplo N de 16. Por tanto, es posible descomponer el conjunto de datos formado en N bloques Data1, Data2, ... DataN de 16 bytes, que contienen el código OS(V2) de forma no cifrada.
A partir de los bloques Data1, Data2, ... DataN, el dispositivo 10 de actualización determina los bloques OSB1, OSB2, ... OSBN que contienen el código OS(V2) de forma cifrada, por ejemplo, como se ilustra en la figura 7.
En la figura 7, ICV es un criptograma determinado en función del número aleatorio RAND. Por ejemplo, ICV se determina aplicando el algoritmo AES-256 a 16 bytes centrales del número aleatorio RAND.
A continuación, el cifrado de los bloques Data1, Data2, ...DataN se realiza mediante el algoritmo AES-256 en modo CBC («encadenamiento de bloque de cifrado») utilizando la clave SK y el criptograma ICV. Así, el criptograma ICV y el bloque Data1 se combinan mediante una operación XOR (O exclusivo). Luego, el resultado de esta operación XOR se cifra utilizando la clave de sesión SK y el algoritmo AES-256 para determinar el bloque OSB1.
Para cada bloque de Data(i) siguiente, se determina el bloque OSB(i) correspondiente de manera similar, pero utilizando el bloque OSB(i-1) en lugar del criptograma ICV.
Después de haber recibido cada bloque OSB(i), en la etapa E9 de la figura 2, el elemento seguro 30 puede descifrar los datos recibidos con la clave de sesión SK. Luego, en la etapa E10, la verificación en particular de la huella 60 y del número secreto 61 permite detectar una posible corrupción.
El sistema de la figura 1 tiene varias ventajas.
En particular, es posible actualizar el sistema operativo 35 del elemento seguro 30. Esta actualización puede realizarse mientras el elemento seguro 30 ya está en funcionamiento en el terminal 20 de un usuario. En el caso de una comunicación entre el terminal 20 y el dispositivo 10 de actualización que pasa por una red de telecomunicación, el usuario no debe ir a un lugar específico como la tienda de un proveedor de servicios. El sistema operativo 35 puede ser reemplazado en su totalidad. Durante la actualización, los datos 37 de usuario no cambian. Así, después de actualización, el usuario dispone siempre de sus aplicaciones y de sus datos personales. Además, el funcionamiento del terminal 20 no debe interrumpirse.
Gracias a la autentificación mutua del dispositivo 10 de actualización y del elemento seguro 30, y a la comunicación cifrada entre el dispositivo 10 de actualización y el elemento seguro 30, no es posible para un tercero obtener la nueva versión OS(V2) del sistema operativo ni proporcionar una versión corrompida al elemento seguro 30 haciéndose pasar por el dispositivo 10 de actualización. En particular, si el programa P1 del terminal 20 se reemplaza por una versión corrompida, esta versión puede, en el mejor de los casos, obtener los bloques cifrados de OSB(i). En otras palabras, la confidencialidad e integridad del sistema operativo están protegidas. Estas características pueden permitir obtener una certificación del elemento seguro y/o del sistema.
El dispositivo 10 de actualización puede contar los intentos fallidos de autentificación mutua. Si este número alcanza un umbral determinado, el dispositivo 10 de actualización puede tomar una medida de protección, por ejemplo, emitiendo una advertencia o poniendo el elemento seguro en una lista negra.
Como la autentificación mutua y el cifrado se basan en un número de serie del elemento seguro, se diversifican por elemento seguro. Por tanto, un fallo no afecta al conjunto de los elementos seguros vinculados al dispositivo de actualización.
El número aleatorio RAND es generado por el elemento seguro, y no por el dispositivo 10 de actualización. Esto limita la carga de trabajo impuesta al dispositivo de actualización, lo cual es particularmente interesante en el caso de un dispositivo de actualización en conexión con numerosos elementos seguros.
El uso de la misma clave de sesión SK para la autentificación mutua y la comunicación cifrada entre el elemento seguro y el dispositivo de actualización permite limitar los recursos necesarios al nivel del elemento seguro. Sin embargo, en una realización alternativa, la autentificación mutua y la comunicación cifrada utilizan claves diferentes.
La presencia del programa P1 en el terminal 20 permite adaptar el comportamiento del terminal 20 durante la actualización del sistema operativo. Por ejemplo, las aplicaciones del terminal 20 que recurren a aplicaciones del elemento seguro 30 pueden desactivarse durante la actualización.
Claims (9)
1. Elemento seguro (30) que comprende al menos un microprocesador (31), una memoria no volátil (34) y una interfaz (36) de comunicación, siendo apto el elemento seguro (30) para comunicar con un dispositivo (10) de actualización por la interfaz (36) de comunicación, almacenando la memoria no volátil (34) al menos un cargador (38) de instrucciones iniciales, estando configurado el microprocesador (31) para ejecutar el cargador (38) de instrucciones iniciales durante un arranque del elemento seguro (30),
caracterizado por que el cargador (38) de instrucciones iniciales comprende instrucciones para la ejecución de:
- una etapa (E1, E12) de arranque para determinar si la memoria no volátil (34) almacena un sistema operativo (35) activo,
- una etapa de autentificación del dispositivo (10) de actualización, que comprende:
- una determinación (E6, E13) de primeros datos de autentificación (AUTH30) en función de una variable (RAND) y de una clave (MKi) almacenada en dicha memoria no volátil (34), y
- una comparación (E7, E14) de los primeros datos de autentificación (AUTH30) y de los segundos datos de autentificación (AUTH10) recibidos del dispositivo (10) de actualización, luego
- si la memoria no volátil (34) almacena un sistema operativo (35) activo, una etapa (E15) de desactivación del sistema operativo (35), y
- en caso de autentificación del dispositivo (10) de actualización, una etapa (E9, E10) de almacenamiento de un nuevo sistema operativo recibido desde el dispositivo (10) de actualización en la memoria no volátil (34) y una etapa (E11) de activación del nuevo sistema operativo,
cuando dichas instrucciones son ejecutadas por el microprocesador (31),
estando además el elemento seguro caracterizado por que:
- si la memoria no volátil (34) almacena un sistema operativo (35) activo, el cargador (38) de instrucciones iniciales lanza la ejecución del sistema operativo (35) de manera que el sistema operativo gestiona la ejecución de aplicaciones y los comandos recibidos en la interfaz (36) de comunicación, y la etapa de autentificación del dispositivo (10) de actualización, comprende:
- un envío (F4), por el sistema operativo (35), de un mensaje (M5) que contiene la variable (RAND) al dispositivo (10) de actualización, y
- una recepción (F5), por el sistema operativo (35), de los segundos datos de autentificación (AUTH10),
- una interrogación, por el sistema operativo (35), del cargador (38) de instrucciones iniciales para que el cargador (38) de instrucciones iniciales verifique los segundos datos de autentificación (AUTH10),
- si el sistema operativo (35) está inactivo, el cargador (38) de instrucciones iniciales sigue siendo maestro de manera que los comandos recibidos en la interfaz de comunicación son gestionados por el cargador (38) de instrucciones iniciales, y la etapa de autentificación del dispositivo de actualización comprende:
- un envío (E4), por el cargador (38) de instrucciones iniciales, de un mensaje (M5) que contiene la variable (RAND) al dispositivo (10) de actualización,
- una recepción (E5), por el cargador (38) de instrucciones iniciales, de los segundos datos de autentificación (AUTH10).
2. Elemento seguro (30) según la reivindicación 1, en el que el cargador (38) de instrucciones iniciales comprende instrucciones para la ejecución de una etapa (E8) de envío de un mensaje (M7) que contiene un dato (V1) cifrado en función de la clave (MKi) y dicha variable (RAND) al dispositivo (10) de actualización.
3. Elemento seguro (30) según la reivindicación 1, en el que el sistema operativo (35) incluye instrucciones para la ejecución de una etapa (F8) de envío de un mensaje (M7) que contiene un dato (V1) cifrado en función de la clave (MKi) y de dicha variable (RAND) al dispositivo (10) de actualización.
4. Elemento seguro (30) según una de las reivindicaciones 1 a 3, en el que la etapa de almacenamiento comprende la recepción del nuevo sistema operativo de manera cifrada.
5. Elemento seguro (30) según la reivindicación 4, en el que la etapa de autentificación comprende la determinación de
una clave de sesión (SK) en función de dicha clave (MK¡) y de dicha variable, comprendiendo la etapa de almacenamiento la recepción del nuevo sistema operativo cifrado con dicha clave de sesión (SK).
6. Elemento seguro (30) según una de las reivindicaciones 1 a 5, en el que el cargador (38) de instrucciones iniciales se almacena en una parte (41) no regrabable de la memoria no volátil (34).
7. Elemento seguro (30) según una de las reivindicaciones 1 a 5, en el que el cargador (38) de instrucciones iniciales se almacena en una parte regrabable (40) de la memoria no volátil (34), conteniendo la memoria no volátil (34) un sistema operativo (35) configurado para bloquear los comandos de escritura en el cargador (38) de instrucciones iniciales.
8. Terminal (20) que comprende al menos un microprocesador (21), una memoria no volátil (24) y un elemento seguro (30) según una de las reivindicaciones 1 a 7, comprendiendo la memoria no volátil (24) del terminal (20) un programa (P1) de gestión de actualización y una aplicación (A1) destinada a utilizar un servicio proporcionado por el elemento seguro (30), comprendiendo el programa (P1) de gestión de actualización instrucciones para la ejecución de:
- una etapa de transmisión que comprende la recepción del nuevo sistema operativo desde el dispositivo (10) de actualización y el envío del nuevo sistema operativo recibido al elemento seguro,
- una etapa de desactivación de dicho servicio durante al menos la etapa de transmisión,
cuando dichas instrucciones son ejecutadas por el microprocesador (21) del terminal (20).
9. Sistema que comprende al menos un elemento seguro (30) según una de las reivindicaciones 1 a 7 y un dispositivo (10) de actualización que almacena la nueva versión del sistema operativo.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1257062A FR2993682B1 (fr) | 2012-07-20 | 2012-07-20 | Mise a jour d'un systeme d'exploitation pour element securise |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2795101T3 true ES2795101T3 (es) | 2020-11-20 |
Family
ID=47003055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13177111T Active ES2795101T3 (es) | 2012-07-20 | 2013-07-18 | Actualización de un sistema operativo para un elemento seguro |
Country Status (10)
Country | Link |
---|---|
US (1) | US9779246B2 (es) |
EP (1) | EP2688010B1 (es) |
JP (1) | JP6214259B2 (es) |
KR (1) | KR101517286B1 (es) |
CN (1) | CN103577221B (es) |
BR (1) | BR102013020063B1 (es) |
ES (1) | ES2795101T3 (es) |
FR (1) | FR2993682B1 (es) |
RU (1) | RU2643457C2 (es) |
TW (1) | TWI510959B (es) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011015710A1 (de) * | 2011-03-31 | 2012-10-04 | Giesecke & Devrient Gmbh | Verfahren zum Aktualisieren eines Datenträgers |
FR3019347B1 (fr) | 2014-03-25 | 2017-07-21 | Oberthur Technologies | Securisation du chargement de donnees dans une memoire non-volatile d'un element securise |
EP2930641B1 (en) | 2014-04-07 | 2019-04-03 | Nxp B.V. | Method of Programming a Smart Card, Computer Program Product and Programmable Smart Card |
FR3023951B1 (fr) * | 2014-07-15 | 2016-08-05 | Oberthur Technologies | Procede d'etablissement d'une session de communication via une interface swp |
US9934014B2 (en) * | 2014-08-22 | 2018-04-03 | Apple Inc. | Automatic purposed-application creation |
DE102014220616A1 (de) * | 2014-10-10 | 2016-04-14 | Bundesdruckerei Gmbh | Verfahren zum Laden von ausführbaren Programminstruktionen in eine Chipkarte im Wirkbetrieb |
DE102014224278A1 (de) * | 2014-11-27 | 2016-06-02 | Bundesdruckerei Gmbh | Verfahren zum Nachladen von Software auf eine Chipkarte durch einen Nachladeautomaten |
KR102459703B1 (ko) * | 2014-12-29 | 2022-10-27 | 엘지디스플레이 주식회사 | 유기발광다이오드 표시장치와 그 구동방법 |
KR101662947B1 (ko) * | 2015-03-25 | 2016-10-05 | (주)에이티솔루션즈 | 보안운영체제를 이용한 세션보안 제공 방법 |
EP3086254A1 (en) | 2015-04-22 | 2016-10-26 | Gemalto Sa | Method of managing applications in a secure element when updating the operating system |
JP2017033149A (ja) | 2015-07-30 | 2017-02-09 | 株式会社東芝 | 情報処理装置、コントローラ、及び、情報処理装置の制御方法 |
JP6602102B2 (ja) * | 2015-08-21 | 2019-11-06 | 三菱電機株式会社 | プログラム更新制御装置、情報家電機器、プログラム更新システム、プログラム更新方法およびプログラム |
EP3160166A1 (en) * | 2015-10-19 | 2017-04-26 | Gemalto Sa | Method for managing applications in a secure element |
EP3176695A1 (en) * | 2015-12-04 | 2017-06-07 | Gemalto Sa | Method for managing a package in a secure element |
EP3208717A1 (en) * | 2016-02-17 | 2017-08-23 | Gemalto Sa | Method for managing objects in a secure element |
DE112016006524T5 (de) * | 2016-03-30 | 2018-11-22 | Ford Global Technologies, Llc | Authentifizierung einer Fahrzeugcomputeraktualisierung |
US10911939B2 (en) * | 2017-06-14 | 2021-02-02 | Huawei Technologies Co., Ltd. | Embedded universal integrated circuit card profile management method and apparatus |
KR102057665B1 (ko) * | 2017-07-04 | 2020-01-22 | 주식회사 웨인 | 리눅스 계열 운영체제 배포시스템 |
US10769279B2 (en) * | 2017-08-24 | 2020-09-08 | Apple Inc. | Secure element operating system update notification |
JP6988444B2 (ja) * | 2017-12-20 | 2022-01-05 | 大日本印刷株式会社 | 初期設定方法、セキュアエレメント、デバイス及びプログラム |
US10789364B2 (en) * | 2018-05-02 | 2020-09-29 | Nxp B.V. | Method for providing an authenticated update in a distributed network |
CN108874418B (zh) * | 2018-05-23 | 2022-04-05 | 北京五八信息技术有限公司 | Ui组件的更新方法、装置、终端及计算机可读存储介质 |
EP3736716B1 (en) * | 2019-05-10 | 2021-12-22 | Aptiv Technologies Limited | Method for protecting an electronic control unit |
US11240634B1 (en) * | 2020-01-02 | 2022-02-01 | II Leon Tyrone Cain | Systems and methods for initiating a secure media session between mobile computing devices during image capture |
EP4113341A1 (en) * | 2021-06-30 | 2023-01-04 | Giesecke+Devrient Mobile Security GmbH | Encryption scheme for providing software updates to an update agent |
EP4307142A1 (en) * | 2022-07-13 | 2024-01-17 | Giesecke+Devrient Mobile Security Germany GmbH | Update agent for multiple operating systems in a secure element |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4216914B2 (ja) * | 1997-10-17 | 2009-01-28 | 株式会社リコー | ネットワークシステム |
US5987605A (en) * | 1998-02-28 | 1999-11-16 | Hewlett-Packard Co. | Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device |
DE19925389A1 (de) * | 1999-06-02 | 2000-12-21 | Beta Res Gmbh | Verfahren und Vorrichtung zur Übertragung von Daten auf SmartCards |
DE19926389B4 (de) | 1999-06-10 | 2008-02-07 | Behr Gmbh & Co. Kg | Luftführungsanordnung für eine Kraftfahrzeug-Klimatisierungsanlage |
US20030182414A1 (en) * | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | System and method for updating and distributing information |
US6944854B2 (en) * | 2000-11-30 | 2005-09-13 | International Business Machines Corporation | Method and apparatus for updating new versions of firmware in the background |
CN1734418A (zh) * | 2004-08-09 | 2006-02-15 | 上海乐金广电电子有限公司 | 存储器程序更新方法 |
US7698698B2 (en) * | 2004-09-30 | 2010-04-13 | Smith Micro Software, Inc. | Method for over-the-air firmware update of NAND flash memory based mobile devices |
JP2006127267A (ja) * | 2004-10-29 | 2006-05-18 | Toshiba Corp | 情報処理装置およびブート制御方法 |
US7522732B2 (en) * | 2004-11-09 | 2009-04-21 | Lexmark International, Inc. | Method for controlling the distribution of software code updates |
US7865740B2 (en) * | 2005-09-27 | 2011-01-04 | Intel Corporation | Logging changes to blocks in a non-volatile memory |
KR100778293B1 (ko) * | 2005-10-10 | 2007-11-22 | 삼성전자주식회사 | 디지털방송처리장치 및 디지털방송처리장치 부트로더의업그레이드 방법 |
JP2007213494A (ja) * | 2006-02-13 | 2007-08-23 | Ntt Docomo Inc | 更新起動装置及び更新起動制御方法 |
KR101426710B1 (ko) * | 2006-07-14 | 2014-09-23 | 삼성전자주식회사 | 휴대단말기의 버전정보 갱신 장치 및 방법 |
KR20080039046A (ko) | 2006-10-31 | 2008-05-07 | 삼성전자주식회사 | 펌웨어 업데이트 장치 및 방법 |
JP2008276555A (ja) | 2007-04-27 | 2008-11-13 | Toshiba Corp | 情報処理装置、およびファームウェア更新方法 |
US8635608B2 (en) | 2007-09-04 | 2014-01-21 | Teradata Us, Inc. | Software update system and method |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
US8162227B2 (en) * | 2007-11-12 | 2012-04-24 | Micron Technology, Inc. | Intelligent controller system and method for smart card memory modules |
US8286883B2 (en) * | 2007-11-12 | 2012-10-16 | Micron Technology, Inc. | System and method for updating read-only memory in smart card memory modules |
US8607034B2 (en) * | 2008-05-24 | 2013-12-10 | Via Technologies, Inc. | Apparatus and method for disabling a microprocessor that provides for a secure execution mode |
US8055893B2 (en) * | 2008-08-28 | 2011-11-08 | Lenovo (Singapore) Pte. Ltd. | Techniques for booting a stateless client |
JP5113700B2 (ja) * | 2008-09-24 | 2013-01-09 | 株式会社日立ソリューションズ | ファームウェア更新装置及び方法 |
TW201027324A (en) * | 2009-01-14 | 2010-07-16 | Giga Byte Tech Co Ltd | Embedded electronic device free from being stuck in update failure and method of making the same |
JP5220675B2 (ja) * | 2009-04-07 | 2013-06-26 | 株式会社日立製作所 | シンクライアントマスタの書換システム、シンクライアントマスタの書換方法、およびシンクライアント |
JP2012058803A (ja) * | 2010-09-06 | 2012-03-22 | Dainippon Printing Co Ltd | シンクライアントシステム、およびオペレーティングシステム更新方法 |
US8756409B2 (en) * | 2010-10-13 | 2014-06-17 | International Business Machines Corporation | System, method and computer program product for retrieving data at boot time |
EP2453352A1 (en) | 2010-11-08 | 2012-05-16 | Gemalto SA | Software updating process for an embedded device |
US8984611B2 (en) * | 2011-05-09 | 2015-03-17 | I Think Security Ltd. | System, apparatus and method for securing electronic data independent of their location |
-
2012
- 2012-07-20 FR FR1257062A patent/FR2993682B1/fr active Active
-
2013
- 2013-07-18 ES ES13177111T patent/ES2795101T3/es active Active
- 2013-07-18 EP EP13177111.5A patent/EP2688010B1/fr active Active
- 2013-07-19 US US13/946,681 patent/US9779246B2/en active Active
- 2013-07-19 RU RU2013133975A patent/RU2643457C2/ru active
- 2013-07-19 JP JP2013150450A patent/JP6214259B2/ja active Active
- 2013-07-19 TW TW102125961A patent/TWI510959B/zh active
- 2013-07-22 KR KR1020130086043A patent/KR101517286B1/ko active IP Right Grant
- 2013-07-22 BR BR102013020063-8A patent/BR102013020063B1/pt active IP Right Grant
- 2013-07-22 CN CN201310410455.6A patent/CN103577221B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP6214259B2 (ja) | 2017-10-18 |
BR102013020063A2 (pt) | 2015-10-20 |
CN103577221A (zh) | 2014-02-12 |
CN103577221B (zh) | 2018-12-18 |
EP2688010B1 (fr) | 2020-03-04 |
JP2014029688A (ja) | 2014-02-13 |
BR102013020063B1 (pt) | 2021-10-13 |
TWI510959B (zh) | 2015-12-01 |
RU2013133975A (ru) | 2015-01-27 |
TW201413491A (zh) | 2014-04-01 |
FR2993682A1 (fr) | 2014-01-24 |
FR2993682B1 (fr) | 2014-08-22 |
EP2688010A1 (fr) | 2014-01-22 |
RU2643457C2 (ru) | 2018-02-01 |
KR20140011998A (ko) | 2014-01-29 |
KR101517286B1 (ko) | 2015-05-04 |
US9779246B2 (en) | 2017-10-03 |
US20140025940A1 (en) | 2014-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2795101T3 (es) | Actualización de un sistema operativo para un elemento seguro | |
ES2671011T3 (es) | Procedimiento y sistema de gestión de un elemento de seguridad integrado eSE | |
ES2917183T3 (es) | Dispositivo móvil que tiene un entorno de ejecución seguro | |
ES2904501T3 (es) | Implementación de un almacenamiento seguro con protección de integridad | |
ES2971859T3 (es) | Método y aparato para asegurar una aplicación móvil | |
ES2802265T3 (es) | Método de autorización de una operación que va a realizarse en un dispositivo informático objetivo | |
JP6437433B2 (ja) | 医療デバイスとその遠隔デバイスの間の保護された通信 | |
EP2901392B1 (en) | Securing personal identification numbers for mobile payment applications by combining with random components | |
ES2332020T3 (es) | Procedimiento y sistema de control del bloqueo/desbloqueo de las funciones de acceso a red de un temrinal con funciones multiples. | |
US9443421B2 (en) | Method used in a system for remotely controlling an appliance | |
US9787663B2 (en) | Replaying a batch of secure commands in a secure channel | |
BR102014017104A2 (pt) | pré-geração de chaves de sessão para transações eletrônicas e dispositivos que pré-geram chaves de sessão para transações eletrônicas | |
US10680814B2 (en) | Device key security | |
BR102018014023A2 (pt) | Sistema e método de comunicação segura | |
Krstić | Behind the scenes with iOS security | |
Cooijmans et al. | Secure key storage and secure computation in Android | |
ES2770006T3 (es) | Método para gestionar una aplicación | |
CN110313005B (zh) | 用于设备应用的安全性架构 | |
KR101810165B1 (ko) | 전자 화폐 단말 및 이를 이용하여 전자 화폐를 제공하는 방법 | |
US20230114775A1 (en) | Portable Chip Device and Method for Executing a Software Module Update in a Portable Chip Device | |
CN117454361A (zh) | 一种密钥管理方法及相关设备 |