ES2236530T3 - Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico. - Google Patents

Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico.

Info

Publication number
ES2236530T3
ES2236530T3 ES02743287T ES02743287T ES2236530T3 ES 2236530 T3 ES2236530 T3 ES 2236530T3 ES 02743287 T ES02743287 T ES 02743287T ES 02743287 T ES02743287 T ES 02743287T ES 2236530 T3 ES2236530 T3 ES 2236530T3
Authority
ES
Spain
Prior art keywords
electronic device
program
verification data
stored
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES02743287T
Other languages
English (en)
Inventor
Toni Sormunen
Risto Ronkka
Antti Kiiveri
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Application granted granted Critical
Publication of ES2236530T3 publication Critical patent/ES2236530T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Abstract

Método para garantizar la fiabilidad de un dispositivo electrónico (1), en el cual, al menos, unos primeros datos de verificación (DID, S1, PK1) y unos segundos datos de verificación (S2, PK2) se encuentran almacenados, realizándose en dicho método, el arranque (501) de un programa de inicio, caracterizado porque en el programa de inicio se llevan a cabo, al menos, una primera (P1) y una segunda (P2) etapas de inicio, porque en la primera etapa de inicio para generar dichos primeros datos de verificación (DID, S1, PK1) se utilizan, al menos parcialmente, comandos de programa de dicha primera etapa de inicio y porque, para generar dichos segundos datos de verificación (S2, PK2), se utilizan, al menos, parcialmente comandos de programa de dicha segunda etapa de inicio, examinándose la fiabilidad de, al menos, dichos primeros datos de verificación (DID, S1, PK1) en la primera etapa de inicio (P1), con lo cual sí la verificación demuestra que, al menos, dichos primeros datos de verificación (DID, S1, PK1) son fiables, pueden examinarse, al menos, dichos segundos datos de verificación (S2, PK2) en la primera etapa de inicio (P1), para confirmar la fiabilidad de la segunda etapa de inicio, con lo cual sí la verificación demuestra que, al menos, dichos segundos datos de verificación (S2, PK2) son fiables, dicha segunda etapa de inicio (P2), se lleva a cabo después de dicha primera etapa de inicio (P1).

Description

Método de seguridad para un dispositivo electrónico, un sistema de seguridad y un dispositivo electrónico.
Un método de seguridad para un dispositivo electrónico, un sistema de seguridad y un dispositivo electrónico.
La presente invención se refiere a un método de seguridad para un dispositivo electrónico como el presentado en el preámbulo de la reivindicación 1 adjunta. La invención hace también referencia a un sistema de acuerdo con el preámbulo de la reivindicación 15 adjunta. La invención se refiere asimismo a un dispositivo electrónico de acuerdo con el preámbulo de la reivindicación 26 adjunta. La invención también se refiere a un programa de acuerdo con el preámbulo de la reivindicación 29 adjunta, así como a un medio de almacenamiento de acuerdo con el preámbulo de la reivindicación 30 adjunta.
Diversos dispositivos electrónicos aplican medios de control programables, como microprocesadores, microcontroladores, lógicas programables y/o circuitos integrados programables específicos de la aplicación. Dichos dispositivos electrónicos contienen un software almacenado que consiste en uno o más programas que contienen, por ejemplo, los comandos de programa necesarios para el funcionamiento del dispositivo electrónico. Para el almacenamiento de dicho software se utiliza una memoria, una parte de la cual, al menos, consiste en una memoria no volátil, o lo que es lo mismo, que se conserva el contenido de la memoria aun cuando se produzca una interrupción en la tensión de funcionamiento de la memoria. Entre estos tipos de memoria se incluyen por ejemplo la memoria de sólo lectura (ROM), la memoria ROM programable (PROM) y una PROM que puede borrarse eléctricamente (EEPROM). Al menos una parte de la memoria se encuentra normalmente integrada en el dispositivo electrónico, pero además puede ampliarse la memoria en muchas aplicaciones, por ejemplo mediante una tarjeta de expansión de memoria. Una de estas tarjetas de expansión de memoria es la llamada tarjeta de memoria Flash. La memoria Flash es una clase de memoria tipo EEPROM cuyo contenido puede alterarse mediante programación eléctrica. Los contenidos de la memoria Flash se conservarán aún después de haberse producido una interrupción del voltaje de funcionamiento. Mediante este tipo de memoria ampliada resulta fácil dotar de nuevo software al dispositivo electrónico, así como de capacidad de memoria para almacenar, por ejemplo, fotografías en una cámara digital, para el establecimiento de derechos de acceso, como en el caso de un teléfono móvil, etc. La instalación del software en un dispositivo electrónico también puede llevarse a cabo siguiendo un método conocido per se utilizando otros medios de almacenamiento, como un disquete, un CD-ROM o un DVD.
Resulta relativamente sencillo copiar el software almacenado en los medios de almacenamiento, por lo que los proveedores de software han desarrollado diversos métodos para impedir el uso del software copiado. Uno de dichos métodos consiste en utilizar una identificación del producto o un sistema similar. De este modo, al iniciar el programa, el usuario debe introducir esta identificación del producto en el dispositivo electrónico antes de que se pueda utilizar el programa. No obstante, uno de los problemas de esta configuración es que en relación con la copia del programa el usuario puede haber obtenido esta identificación del producto del propietario del software original, por lo que también podrá utilizarse el programa copiado. Por otra parte, aun cuando el usuario del software copiado no conozca la identificación del producto, el usuario puede tratar de descubrir la estructura de la protección del programa, por ejemplo mediante procesos de ingeniería inversa o depuración (debugging), mediante los cuales el código objeto del programa se convierte al código fuente. De este modo, el usuario puede conseguir descifrar la protección contra copia y modificar el programa, por ejemplo de tal forma que se anule la protección contra copia, o de tal forma que el usuario resuelva la identificación del producto requerida basándose en el código objeto. Para dificultar más dicha posibilidad se han desarrollado programas en los que se comprueba cada cierto tiempo, durante la ejecución del programa, que dicho programa no haya sido manipulado. De este modo, el mero descifrado de la protección contra copia durante el arranque no hace necesariamente posible la utilización del software copiado durante un período más prolongado, a menos que el usuario sea capaz de determinar la estructura de dicha protección contra copia.
Es bien conocida la técnica de vincular inequívocamente un programa dado a un dispositivo concreto de forma que el programa no se pueda utilizar en otro dispositivo. Esto puede llevarse a cabo, por ejemplo, modificando el software de acuerdo con el número de serie específico del hardware o suministrando un programa de instalación que sólo pueda operar en un dispositivo en función del número de serie específico del hardware. Estas soluciones tienen el inconveniente de que esta protección puede anularse modificando tanto el software como el hardware.
Para dificultar la depuración, puede intentarse complicar, al menos, la parte correspondiente a protección contra copia y/o el almacenamiento de la identificación del producto en relación con el código del programa, lo que hace más difícil saltarse la protección contra copia. Una solución de este tipo se presenta, por ejemplo, en la solicitud de patente internacional WO 00/77597.
La patente US 5131091 presenta un método en el cual un programa almacenado en una tarjeta de memoria está protegido mediante el cifrado del contenido del código del programa mediante operaciones XOR. En el cifrado se utiliza una cadena de bits de cifrado almacenada en una memoria no volátil y se ha dificultado al máximo la búsqueda de la cadena. Se utiliza una cadena de bits de cifrado diferente en las tarjetas de memoria facilitadas a los distintos usuarios.
Un usuario que haya adquirido legalmente el software puede también tener la necesidad de asegurarse del origen del software ya que, en algunos casos, un tercero puede intentar suministrar versiones modificadas de programas originales y comercializarlas como programas originales. Este software puede contener, por ejemplo, un virus añadido, o se puede incorporar al software la llamada puerta trasera, a través de la cual el fabricante del software modificado puede incluso acceder a la red de área local de una empresa que haya instalado dicho software modificado. En algunos casos, el software modificado incluye la propiedad de transmitir al fabricante del software modificado, sin que el usuario se de cuenta, por ejemplo, los identificadores de usuario y contraseña introducidos por el usuario en el dispositivo electrónico, por ejemplo a través de una red de datos como Internet. Para garantizar el origen del software, el programa puede disponer de una firma digital en función de la cual el usuario puede establecer la autenticidad del software original.
Además de la protección de programas contra copia también es necesario proteger otras informaciones almacenadas en relación con dispositivos electrónicos para impedir su utilización inadecuada. Por ejemplo, la restricción del derecho de acceso a un usuario o usuarios específicos en relación con algunos dispositivos electrónicos está configurada de tal forma que el usuario disponga de una tarjeta inteligente personal y para utilizar el dispositivo electrónico el usuario deba insertar la tarjeta inteligente en un conector de tarjeta incluido en el dispositivo electrónico. Como autentificación auxiliar también es posible utilizar una identificación de usuario, con lo que al encender el dispositivo electrónico el usuario debe introducir dicha identificación de usuario antes de poder utilizar el dispositivo electrónico. Esta configuración se aplica, por ejemplo, en muchas redes de comunicaciones móviles, como la red de comunicaciones móviles GSM y la red de comunicaciones móviles UMTS. En el dispositivo móvil que va a utilizarse con dicha red de comunicaciones móviles, se inserta una tarjeta inteligente que se denomina SIM (Subscriber Identity Module [Módulo Identidad Abonado]) en el sistema GSM y USIM (Universal Subscriber Identity Module [Módulo Identidad de Abonado Universal]) en el sistema UMTS. En este tipo de tarjetas inteligentes, el proveedor del servicio de la red móvil de comunicaciones ya ha fijado ciertas especificaciones de abonado, como el identificador de abonado móvil internacional (IMSI). La identificación del usuario también se almacena en esta tarjeta inteligente, con lo que la tarjeta inteligente comprueba la identificación del usuario cuando se activa el dispositivo móvil.
No obstante, las soluciones presentadas más arriba no resuelven el problema planteado cuando un tercero modifica el software de tal forma que pueda utilizarlo él en otro dispositivo o modificar el funcionamiento del programa en este dispositivo. Este problema se ha suscitado, por ejemplo, en relación con dispositivos móviles en los cuales ha sido posible acceder gratuitamente a los servicios de una red de comunicaciones móviles realizando una copia de un teléfono móvil. El software y la identidad internacional del equipo de estación móvil (IMEI) del teléfono móvil copiado son idénticos a los del teléfono móvil original. También se realiza una copia de la tarjeta inteligente que se instala en el dispositivo móvil copiado. De este modo, el centro de conmutación móvil no distingue entre el dispositivo móvil original y la copia.
Otro inconveniente de las soluciones de cifrado de software y de otro tipo de datos correspondientes a la técnica anterior es que si se utiliza la misma clave de cifrado para cifrar grandes cantidades de información puede llevarse a cabo el descifrado de la clave de cifrado analizando dicha información cifrada.
Debido al aumento de la capacidad de procesamiento de datos de los dispositivos portátiles, puede almacenarse en ellos más información, que también puede ser confidencial, o información de otro tipo que no deba revelarse a extraños. El transporte de los dispositivos portátiles, sin embargo, aumentará el riesgo de pérdida o robo del dispositivo portátil, por lo que debe intentarse proteger la información almacenada en él mediante un método de cifrado. En el caso de los dispositivos portátiles suele ser posible determinar una contraseña que debe introducir el usuario en el dispositivo en el momento de su encendido hasta que el dispositivo pueda utilizarse normalmente. Sin embargo, esta protección es relativamente fácil de anular debido a que las contraseñas utilizadas suelen ser relativamente cortas y normalmente tienen una longitud inferior a diez caracteres. Por otra parte, aun cuando no se haga ningún intento de descubrir la contraseña, puede accederse a la información contenida en el dispositivo, como por ejemplo transfiriendo el medio de almacenamiento, por ejemplo, un disco duro, a otro dispositivo. Si la información contenida en el medio de almacenamiento no está en un formato cifrado podrá extraerse fácilmente la información almacenada en el medio de almacenamiento.
Es bien conocido el hecho de que la información que necesita el usuario del dispositivo puede cifrarse mediante una clave, que la información cifrada puede almacenarse en la memoria del dispositivo y que puede descifrarse mediante otra clave. La clave utilizada en el cifrado asimétrico es distinta de la clave utilizada en el descifrado. Igualmente, la clave utilizada en el cifrado simétrico es la misma que la clave utilizada para el descifrado. En el cifrado asimétrico, estas claves se denominan normalmente clave pública y clave personal. La clave pública está prevista para el cifrado y la clave personal está prevista para el descifrado. Aunque la clave pública pueda ser comúnmente conocida, normalmente no puede utilizarse para determinar con facilidad la clave personal correspondiente a la clave pública, por lo que resulta muy difícil a los extraños descifrar la información cifrada con esta clave pública. Un ejemplo de un sistema basado en el uso de dicha clave pública y de una clave personal es el sistema PGP (Pretty Good Privacy) en el cual el usuario cifra la información que va a transmitirse con la clave pública del receptor y el receptor abrirá posteriormente la información cifrada con su clave personal. No obstante, los sistemas de la técnica anterior presentan considerables inconvenientes. Las claves simétricas eficaces constan de unos 100 bits, mientras que las claves asimétricas constan de unos 1000 a 2000 e incluso 4000 bits. Si la cadena de la clave es demasiado breve, será relativamente sencillo saltársela gracias a los modernos equipos de procesamiento de datos, lo que puede denominarse ataque mediante fuerza bruta. Este problema es especialmente importante en el caso de los dispositivos portátiles de comunicaciones y procesamiento de datos en los que, igualmente, la limitada capacidad de procesamiento impide la utilización de claves largas.
Los documentos US-5802592, US-5919257, EP-A2-0616771 y EP-A1-0656587 revelan técnicas de verificación del software durante el arranque de un sistema informático.
Una de las intenciones de la presente invención consiste en facilitar un método mejorado de seguridad para un dispositivo electrónico de tal forma que se configure un programa determinado para su funcionamiento únicamente en un dispositivo electrónico dado. La invención se basa en la idea de que el arranque está configurado para que consista al menos en dos etapas, de tal forma que en la primera etapa se lleva a cabo una primera verificación de los datos y, si la primera verificación de los datos es correcta, se lleva a cabo una segunda verificación de los datos relacionada con la segunda etapa de inicio, por lo que sí la segunda verificación de datos es también correcta, será posible iniciar la segunda etapa del arranque. De forma más precisa, el método de la presente invención está caracterizado de acuerdo con la parte de características de la reivindicación 1. El sistema de la presente invención está caracterizado de acuerdo con la parte de características de la reivindicación 15. El dispositivo electrónico de la presente invención está caracterizado de acuerdo con la parte de características de la reivindicación 26. Asimismo, el software de la presente invención está caracterizado de acuerdo con la parte de características de la reivindicación 29. Igualmente, el medio de almacenamiento de la presente invención está caracterizado de acuerdo con la parte de características de la reivindicación 30.
La presente invención muestra notables ventajas en comparación con las soluciones de la técnica anterior. En el dispositivo electrónico de acuerdo con la invención, la identidad del equipo se almacena en una memoria cuya modificación se ha dificultado al máximo. Además, en una realización ventajosa, se verifica la identidad del equipo mediante una firma digital, mediante la cual la clave pública o algún tipo de información en clave utilizada durante la verificación se almacena en el dispositivo electrónico. De este modo, mediante la verificación de la firma digital, es posible verificar con una elevada probabilidad de acierto si la firma digital se corresponde con la identidad del equipo del dispositivo electrónico. En el dispositivo se fija permanentemente una identidad del equipo, fijándose otra en los datos firmados, lo que se denomina un certificado. Posteriormente, mediante la verificación de la firma, es posible comprobar la autenticidad y el autor del certificado. De este modo se verifica si la identidad permanente del equipo del dispositivo y la identidad del equipo contenida en el certificado son idénticas. Mediante el método de acuerdo con la invención puede garantizarse que tan sólo se ejecute un programa determinado en un dispositivo electrónico específico. De este modo, es posible reducir significativamente las pérdidas económicas de los proveedores de programas causadas por la copia del software. También es posible mejorar la situación de los usuarios de dispositivos electrónicos, debido a que gracias a la solución de la invención puede dificultarse de forma significativa el funcionamiento de dispositivos electrónicos y software piratas. De este modo, no se cargarán al usuario autorizado los costes relativos a la utilización de dicho dispositivo electrónico copiado que se corresponde con el dispositivo electrónico del usuario. Mediante el método de la invención puede verificarse el origen del software, por lo que el usuario del software puede estar relativamente seguro de que el origen del software se corresponde con el indicado, y que el software no contiene virus, puertas traseras o similares. La invención también hace posible que el software del dispositivo electrónico no pueda modificarse de una forma no autorizada, de tal modo que funcione con posterioridad a las modificaciones.
En el dispositivo electrónico de acuerdo con la invención, el tamaño de la memoria interna de sólo lectura del circuito puede mantenerse relativamente pequeño debido a que la integridad de los programas de la memoria externa (flash u otro tipo de memoria) puede verificarse en el interior del chip. Esto también hace posible que una mayoría de los programas del dispositivo electrónico pueda también sustituirse tras la fabricación del dispositivo electrónico e igualmente se facilita la planificación de los programas.
En una realización ventajosa de la invención, la identidad del equipo utilizada para el control de los derechos de acceso de los programas es independiente del posible código IMEI del dispositivo electrónico. De este modo, el fabricante del dispositivo puede cambiar el código IMEI si fuese necesario. Además, la longitud de la identidad del equipo puede ser más corta que el IMEI, por lo que al almacenar la identidad del equipo se necesitará una cantidad menor de memoria ampliada que cuando se aplicaban las soluciones de la técnica anterior.
En los siguientes párrafos se describirá la invención más detalladamente, haciendo referencia a los dibujos adjuntos, en los cuales:
La figura 1 muestra un dispositivo electrónico de acuerdo con una realización preferida de la invención en un diagrama de bloques reducido.
La figura 2 muestra la estructura de un programa de inicio en un dispositivo electrónico que aplica el método de acuerdo con una realización ventajosa de la invención.
La figura 3 muestra la fabricación y suministro de software a un dispositivo electrónico mediante un sistema de seguridad de acuerdo con una realización ventajosa de la invención.
La figura 4 muestra la fabricación y suministro de software a un dispositivo electrónico mediante un sistema de seguridad de acuerdo con otra realización ventajosa de la invención.
La figura 5 muestra en un organigrama el funcionamiento de un programa de inicio de acuerdo con una realización preferida de la invención.
La figura 6 muestra un principio conocido de creación de una firma digital.
A continuación se describirá el funcionamiento de un dispositivo electrónico 1 de acuerdo con una realización ventajosa de la invención en conexión con el método de la invención. El dispositivo electrónico 1 utilizado puede ser cualquier dispositivo electrónico que contenga medios para ejecutar programas. Ventajosamente, el dispositivo electrónico 1 incluye preferiblemente un software de sistema operativo o similar, mediante el cual se controlan las funciones esenciales del dispositivo electrónico y a través del cual puede controlarse la ejecución de otros programas (aplicaciones) en el dispositivo electrónico 1. Entre los ejemplos no restrictivos de dichos dispositivos electrónicos 1 que en este contexto pueden mencionarse, se encuentran un teléfono móvil y un ordenador.
El dispositivo electrónico 1 obtenido de acuerdo con una realización ventajosa de la invención y que se muestra en la figura 1 incluye un bloque de control 2 que contiene unos medios 2a para la ejecución de programas. Estos medios incluyen, por ejemplo, una unidad de microcontrolador MCU y una unidad de procesamiento de señales digitales DSP. Además, el bloque de control 2 incluye preferiblemente un circuito integrado específico de la aplicación ASIC, en el cual es posible implementar, por ejemplo, al menos una parte de las funciones lógicas del dispositivo electrónico. Asimismo, el bloque de control 2 del dispositivo electrónico 1 mostrado en la figura 1 dispone preferiblemente de una memoria de sólo lectura 2d, una parte de la cual, al menos, es una ROM programable una sola vez (OTPROM) 2e, y una memoria de acceso aleatorio 2f. No obstante, es evidente que estas memorias 2d, 2e, 2f pueden también realizarse como memorias independientes del bloque de control 2. El dispositivo electrónico también incluye unos medios de memoria 3 situados fuera del bloque de control, que incluyen preferiblemente al menos una memoria de sólo lectura 3a, una memoria de sólo lectura programable 3b y una memoria de acceso aleatorio 3c. Al menos una parte de la memoria de sólo lectura 3a está implementada de tal forma que el usuario no pueda alterar sus contenidos. También es posible conectar una ampliación de memoria al dispositivo electrónico 1 de la figura 1, situando un bloque de ampliación de memoria 4 en los medios de conexión de memoria 5. El bloque de ampliación de memoria es, por ejemplo, una tarjeta de memoria flash, pero también pueden aplicarse otros medios de ampliación de memoria en relación con la invención. Preferiblemente el dispositivo electrónico 1 también dispone de un interfaz de usuario UI que incluye una pantalla 6, un teclado 7 y unos medios de audio 8, como un auricular / altavoz y un micrófono. El dispositivo electrónico 1 obtenido de acuerdo con una realización ventajosa de la invención, y que se muestra en la figura 1, también incluye unos medios 9 para la realización de funciones de teléfono móvil, por ejemplo un teléfono móvil GSM y/o un teléfono móvil UMTS. Además, el dispositivo electrónico 1 incluye preferiblemente unos medios 10 para la conexión de una tarjeta de identificación 11, como una tarjeta SIM y/o una tarjeta USIM, al dispositivo electrónico 1.
La figura 2 muestra la estructura del programa de inicio del dispositivo electrónico 1, al cual se aplica el método de acuerdo con una realización ventajosa de la invención. El programa de inicio está dividido en, al menos, dos bloques de arranque P1, P2, de los cuales el primer bloque de arranque P1 realiza las operaciones iniciales de arranque de la primera etapa. El segundo bloque de arranque P2 lleva a cabo comprobaciones adicionales en una situación en la que no se hayan detectado en el primer bloque de arranque errores que impidan la puesta en marcha.
El método de seguridad de acuerdo con la presente invención, consistente al menos en dos etapas, funciona de la forma siguiente: su funcionamiento se indica en el organigrama de la figura 5. En el arranque del dispositivo electrónico 1 el bloque de control 2 comienza a ejecutar el programa de inicio (bloque 501 de la figura 5). Esto se lleva a cabo de una forma conocida per se, configurando el registro de direcciones del bloque de control 2 en una dirección inicial dada que contenga el comando de programa del programa de inicio que debe ejecutarse en primer lugar. Este comando de programa se encuentra situado en un primer bloque de arranque P1. Posteriormente, el funcionamiento del programa continúa preferiblemente efectuando las etapas necesarias de inicialización del dispositivo, que son conocidas mediante la técnica anterior por cualquier persona versada en la materia y que no es necesario comentar en este contexto. El primer bloque de arranque P1 incluye una primera etapa de verificación para la verificación de los primeros datos de verificación (primeros datos de seguridad). En la primera etapa de verificación, por ejemplo, se comprobará la identificación del dispositivo o una información similar almacenada en la ROM programable una sola vez 2d (bloque 502). Esta identificación del dispositivo viene dada por la referencia DID en la figura 2. Además, es posible comprobar que el código de programa del primer bloque de arranque P1 no ha sido modificado. La verificación se lleva a cabo preferiblemente en el bloque de control 2 procesando una firma digital mediante la utilización de, al menos, dicha identificación del dispositivo DID y posiblemente también, al menos, una parte del programa de inicio almacenado en la memoria de sólo lectura 2d, 2e. En el procesamiento de la firma digital se utilizan el mismo algoritmo y los mismos datos mediante los cuales se calculó la firma digital en el momento de la fabricación del dispositivo electrónico 1 a través de una clave secreta del fabricante del dispositivo, como se presentará más adelante en esta descripción. Dicha firma digital se almacena preferiblemente en la memoria programable de sólo lectura 3b (indicada con la referencia S1 en la figura 2), pero es evidente que también puede almacenarse, por ejemplo, en la misma memoria de sólo lectura 2d, 2e en la cual se ha almacenado la identificación del dispositivo DID. La firma digital puede verificarse utilizando la clave pública PK1 que corresponde a la clave secreta utilizada en la firma y que se almacena en la memoria de sólo lectura 2d, 2e. Tras el procesamiento de la firma digital se lleva a cabo una comparación entre la firma digital calculada en el bloque de control 2 y la firma digital S1 almacenada en la memoria de sólo lectura programable una sola vez 2d, 2e (bloque 503). Si la comparación muestra que ambas firmas digitales concuerdan, será posible continuar con el arranque. En los demás casos, es evidente que se ha intentado modificar el dispositivo electrónico 1 y/o los datos de identificación DID contenidos en él y/o en el programa de inicio, por lo que se impide el funcionamiento normal del dispositivo, por ejemplo mediante la desconexión del dispositivo electrónico (bloque 504). Esta parte del programa de inicio que efectúa la verificación se encuentra almacenada en la memoria del dispositivo electrónico 1 de tal forma que no puede modificarse sin provocar la destrucción del dispositivo electrónico 1. Una solución útil consiste en utilizar para el almacenamiento la memoria de sólo lectura programable una sola vez 2e del bloque de control 2.
Cuando continúa el arranque, la siguiente fase consiste en llevar a cabo la segunda etapa de verificación del programa de inicio antes de iniciar cualesquiera otros programas PG1, PG2, PG3. El código de programa correspondiente a la segunda fase de verificación es el primer bloque de arranque P1. En la segunda fase de verificación se verifica la autenticidad del segundo bloque de arranque P2 del programa de inicio. Preferiblemente, el segundo bloque de arranque P2 del programa de inicio está almacenado en la memoria de sólo lectura programable que puede borrarse eléctricamente (EEPROM) 3b, como una memoria Flash. Se procesa una firma digital utilizando, al menos, una parte del programa de inicio almacenado en la memoria de sólo lectura 3a, 3b (bloque 505). Igualmente, la firma digital S2 del segundo bloque de arranque del programa de inicio se almacena en la misma memoria 3b. El procesamiento de esta firma digital S2 aplica a algunos datos que pueden ser verificados, como una parte del código de programa del segundo bloque de arranque del programa de inicio, así como la clave secreta del fabricante del dispositivo electrónico 1. La clave pública PK2 correspondiente a esta clave secreta también se almacena en la memoria 3b. La firma digital procesada se compara con la firma digital almacenada en la memoria 3b (bloque 506), y si las firmas coinciden, podrá proseguir el arranque del dispositivo electrónico 1. No obstante, si las firmas no coinciden se impedirá el funcionamiento normal del dispositivo, por ejemplo interrumpiendo el funcionamiento del dispositivo electrónico.
Los datos que van a comprobarse (segundos datos de verificación, segundos datos de seguridad) en la segunda etapa de verificación pueden haberse generado, por ejemplo, procesando unos datos comprimidos H, por ejemplo mediante una función "hash", a partir de programas PG1, PG2, PG3, parámetros, identidades de dispositivo DID, IMEI o similares, almacenados en la memoria de sólo lectura programable 3b. Estos datos comprimidos H se firman con la clave secreta y se almacenan en la memoria de sólo lectura programable 3b. En este caso, la verificación se lleva a cabo verificando la autenticidad de la firma.
En una realización ventajosa de la invención, se transmite desde la primera etapa de inicio al programa que realiza la segunda etapa de inicio información relativa a la ubicación del programa de verificación que va a utilizarse en la segunda etapa de inicio y a la clave pública PK2.
Una vez se ha llevado a cabo con éxito la segunda fase de verificación presentada anteriormente, es posible ejecutar el segundo bloque de arranque P2 del programa de inicio almacenado en la memoria 3b. En este segundo bloque de arranque P2 del programa de inicio, por ejemplo se verifican otros datos almacenados en la memoria de sólo lectura 3b, por ejemplo de acuerdo con los principios mencionados anteriormente, procesando una o más firmas digitales (bloque 507) y comparándolas con las correspondientes firmas digitales almacenadas en la memoria de sólo lectura (bloque 508). Dichos datos a verificar incluyen, por ejemplo, información específica del dispositivo como la identidad de dispositivo DID, la identidad internacional del equipo móvil IMEI, e información específica del proveedor del servicio, como el SIM lock SL, mediante la cual el teléfono móvil puede configurarse para operar con tan sólo una o con más tarjetas SIM/USIM específicas y/o un bloqueo de operador mediante el cual el dispositivo electrónico 1 se configura para funcionar con una tarjeta SIM//USIM de un operador de telefonía móvil exclusivamente. La ejecución del segundo bloque de arranque P2 del programa de inicio podrá continuar si las firmas y las demás comprobaciones posiblemente efectuadas están en orden. Debe mencionarse que, en algunas aplicaciones, la identidad de dispositivo DID mencionado anteriormente puede generarse en función de la identidad internacional del equipo móvil IMEI, pero que también pueden ser independientes entre sí.
A continuación debe llevarse a cabo, al menos, otra etapa de verificación para examinar la parte aún no verificada del código de programa de los programas PG1, PG2, PG3, o al menos una parte de ellos (bloque 509). En esta fase de verificación es posible aplicar los principios presentados anteriormente, con lo que al menos otra firma digital y la información necesaria para su verificación se almacenan en la memoria 3b.
Una vez realizadas todas las verificaciones necesarias para la puesta en marcha del dispositivo electrónico 1, es posible arrancar otros programas PG1, PG2, PG3 (bloque 510), después de lo cual podrá utilizarse normalmente el dispositivo electrónico 1.
Las claves públicas presentadas anteriormente también pueden verificarse mediante una firma digital (= certificado) para obtener una mayor certidumbre acerca del origen de las claves públicas. En este caso, no sólo se almacenan en la memoria 2d, 2e, 3b las claves públicas, sino también las correspondientes firmas digitales, las cuales se verifican antes de ser utilizadas para otras medidas de verificación.
Aunque en la descripción anterior el programa de inicio se dividía solamente en el primer bloque de arranque P1 y en el segundo bloque de arranque P2, es evidente que en relación con la invención el programa de inicio también puede dividirse en más de dos bloques de arranque P1, P2. De este modo, cada bloque de arranque implica la verificación de, al menos, el siguiente bloque de arranque antes de que la operación pase al siguiente bloque de arranque. En la verificación se utiliza información, una parte de la cual, al menos, se encuentra almacenada en el siguiente bloque de arranque.
Las verificaciones que anteceden también pueden llevarse a cabo después del arranque durante el funcionamiento normal del dispositivo electrónico 1. La intención de esta operación es impedir, por ejemplo, la sustitución de la tarjeta inteligente con posterioridad al arranque por una tarjeta inteligente cuya utilización en dicho dispositivo electrónico 1 no está autorizada, o la sustitución de la memoria externa 3b por una memoria que contenga un código de programa modificado.
En la etapa de fabricación del dispositivo electrónico 1, de acuerdo con la invención, y/o en la fase de actualización del software, los datos y programas de verificación necesarios se generan en la memoria 2d, 2e, 3a, 3b, preferiblemente de la forma siguiente. Los códigos de programa necesarios para las verificaciones se almacenan en el bloque de control 2, incluyendo el primer bloque de arranque P1 del programa de inicio, el programa para el procesamiento de la firma digital y el algoritmo o algoritmos de cifrado o descifrado. Esta etapa está representada por el bloque 301 en la figura 3. El fabricante también almacena, al menos, una parte de la identidad de dispositivo DID en la memoria programable una sola vez 2e del bloque de control (bloque 303). Además, la clave pública PK1 del fabricante y la firma digital S1 necesaria para la verificación del primer bloque de arranque P1 y la identidad de dispositivo se almacenan en la memoria programable una sola vez 2e. Después de llevar a cabo las operaciones de almacenamiento necesarias en la memoria programable una sola vez 2e, dicha memoria programable una sola vez 2e se configura, si fuese necesario, en un estado en el cual no pueden efectuarse más cambios en la memoria. La intención de esta operación consiste en impedir el cambio, por ejemplo, de bits aislados en la identidad de dispositivo DID o en otra parte de la memoria de sólo lectura programable una sola vez 2e. En la etapa de montaje de los componentes (bloque 302), también se instala el bloque de control 2 que contiene la memoria programable una sola vez 2e en la placa del circuito del dispositivo electrónico (no mostrada). El fabricante almacena los otros bloques P2 del programa de inicio y los posibles programas de aplicaciones, por ejemplo, en la memoria programable 3b y/o en la memoria programable una sola vez 3a (bloques 304 y 305). Igualmente, la clave pública PK2 del fabricante utilizada para comprobar el segundo bloque de arranque P2 del programa de inicio, la firma digital S2, así como un posible certificado se almacenan en la memoria 3b. Posteriormente, el dispositivo electrónico 1 puede entregarse a un distribuidor o un proveedor de servicios, como un operador de telefonía móvil. De este modo, cuando un comprador del dispositivo electrónico 1 formaliza un contrato de abonado con el proveedor de servicios, el dispositivo electrónico 1 puede configurarse para que funcione con una o más tarjetas inteligentes 11, como una tarjeta SIM o cualquier tarjeta inteligente del proveedor de servicios. De este modo, el proveedor de servicios o el vendedor configura un SIM lock SL o similar, así como la identidad de dispositivo IMEI, en el dispositivo electrónico 1. En caso necesario, se recupera un certificado de una base de datos de certificados CDB para ser utilizado en la verificación de la autenticidad de los datos en relación con el arranque del dispositivo electrónico 1 en una forma descrita anteriormente en esta descripción. Estas definiciones se almacenan en la memoria 3, preferiblemente en la memoria programable 3b. Posteriormente, el dispositivo electrónico 1 estará listo para su uso. Es evidente que las operaciones realizadas por el distribuidor / proveedor de servicios también pueden ser realizadas por el fabricante del dispositivo o por una empresa de servicios autorizada por el fabricante del dispositivo. De este modo, los datos relativos al proveedor de servicios y al comprador se transmiten a la empresa en la cual se encuentran almacenados los datos.
A partir de los datos de confirmación descritos anteriormente, el proveedor de servicios puede asegurarse de que el dispositivo electrónico 1 de acuerdo con la invención, cuando está conectado a los servicios del proveedor de servicios, es realmente el dispositivo cuyo código de identificación se encuentra almacenado en el dispositivo electrónico 1. Además, está garantizado que el dispositivo electrónico 1 y los datos que contiene no han sido sometidos a modificaciones no autorizadas.
La invención también puede aplicarse a la actualización del software y otros datos en el dispositivo electrónico 1. Esto puede ser llevado a cabo, por ejemplo, por el distribuidor y/o una empresa de servicios, por ejemplo de acuerdo con la configuración mostrada en la figura 4. Por ejemplo, el usuario desea que se instale en el dispositivo electrónico 1 una nueva versión del sistema operativo. La nueva versión del sistema operativo ha sido facilitada por el proveedor del sistema operativo a dicha empresa AS, o se ha descargado a través de una red de datos desde el proveedor del sistema operativo. Preferiblemente, en relación con la descarga, se ha facilitado la identidad de dispositivo DID y también, posiblemente, la identidad del proveedor de servicios (bloque 401 de la figura 4). Cuando se descarga el sistema operativo, se efectúan las necesarias verificaciones de que el receptor está realmente autorizado a efectuar la descarga y de que el usuario está autorizado a recibir la nueva versión del sistema operativo en su dispositivo electrónico (bloque 402). El sistema operativo que va a descargarse puede suministrarse con los datos relativos a la identidad de dispositivo DID, la clave pública del proveedor del programa y/o una firma digital (flecha 403), con lo cual la ejecución de la versión del sistema operativo puede limitarse a tan sólo dicho dispositivo electrónico 1. De este modo, no será necesaria ninguna otra protección contra copia. La nueva versión del sistema operativo se transmite al dispositivo electrónico 1 (flecha 404) para su almacenamiento en la memoria programable 3b mediante un método conocido per se (bloque 405).
Existen diversos métodos conocidos de cifrado que pueden aplicarse en relación con la presente invención. Los métodos de cifrado simétrico que pueden mencionarse en este contexto incluyen Data Encryption Standard (DES), Advanced Encryption Standard (AES) y Cipher 2 de Rivest (RC2). Un método asimétrico de cifrado es Rivest, Shamir, Adleman (RSA). También se han desarrollado los denominados sistemas híbridos que utilizan tanto el cifrado asimétrico como el cifrado simétrico. En estos sistemas, normalmente se utiliza el cifrado asimétrico cuando se transmite al receptor una clave de cifrado que va a utilizarse en el cifrado simétrico, con lo cual la clave de cifrado simétrico se utiliza para cifrar una información real.
Para la transmisión de las claves públicas a utilizar en el cifrado asimétrico se ha desarrollado el sistema denominado Public Key Infrastructure - Infraestructura de Claves Públicas - (PKI). Este sistema incluye servidores en los cuales se almacenan las claves públicas y desde el cual un usuario que necesite una clave puede recuperar dicha clave. Este tipo de sistema resulta particularmente aplicable para su uso por parte de empresas, con lo que la propia empresa no necesita transmitir su clave pública a una persona que desee transmitir información a la empresa en formato cifrado.
Para las firmas digitales, se han utilizado varios sistemas como el RSA, Digital Signatures Algorithm [Algoritmo de Firmas Digitales] (DSA) y Elliptic curve Cryptography [Criptografía de cuerva Elíptica] (ECC). En relación con estos sistemas se utilizan algoritmos que comprimen la información que va a firmarse, como Secure Hash Algorithm (SHA-1) y Message Digest 5 (MD5), por mencionar alguno. La figura 6 muestra una vista preliminar de la generación de una firma digital. Los datos 601 que van a firmarse se conducen a un bloque 602 que lleva a cabo una función hash (función de compresión). Posteriormente, los datos comprimidos generados por la función hash se firman 603 mediante una clave secreta SK. La firma 604 se conecta a los datos 601 que van a firmarse. En la fase de verificación de los datos firmados, los datos confirmados con la firma se conducen a un bloque 605 que lleva a cabo la función hash para generar un código hash 606. La firma se verifica 607 utilizando una clave pública PK correspondiente a la clave secreta del firmante, tras lo cual el código hash 606 se compara 608 con los datos generados en la verificación 607 de la firma. Si los datos coinciden, puede confiarse en los datos firmados con un elevado grado de probabilidad.
Las etapas de acuerdo con la invención pueden realizarse en gran medida mediante comandos de programa de los medios de ejecución del software 2a del bloque de control 2 del dispositivo electrónico 1.
La invención también puede aplicarse, por ejemplo, a la implementación de versiones de software en varios idiomas, relacionadas con el dispositivo electrónico 1. De este modo, para cada versión de idioma se genera un conjunto de programas que contiene las definiciones en el idioma deseado. La identidad de dispositivo se configura como datos en este conjunto de programas, por lo que los programas sólo pueden utilizarse en un dispositivo determinado. Para garantizar este requisito, se aplican los mecanismos que se ajustan a la presente invención. Por otra parte, la solución de la invención también puede aplicarse de tal forma que sea posible determinar en el dispositivo electrónico 1 qué versión o versiones de idioma pueden instalarse y ejecutarse en dicho dispositivo electrónico 1.
Es evidente que la presente invención no está solamente limitada a las realizaciones presentadas anteriormente, sino que puede modificarse dentro del ámbito de las reivindicaciones adjuntas.

Claims (28)

1. Método para garantizar la fiabilidad de un dispositivo electrónico (1), en el cual, al menos, unos primeros datos de verificación (DID, S1, PK1) y unos segundos datos de verificación (S2, PK2) se encuentran almacenados, realizándose en dicho método, el arranque (501) de un programa de inicio, caracterizado porque en el programa de inicio se llevan a cabo, al menos, una primera (P1) y una segunda (P2) etapas de inicio, porque en la primera etapa de inicio para generar dichos primeros datos de verificación (DID, S1, PK1) se utilizan, al menos parcialmente, comandos de programa de dicha primera etapa de inicio y porque, para generar dichos segundos datos de verificación (S2, PK2), se utilizan, al menos, parcialmente comandos de programa de dicha segunda etapa de inicio, examinándose la fiabilidad de, al menos, dichos primeros datos de verificación (DID, S1, PK1) en la primera etapa de inicio (P1), con lo cual sí la verificación demuestra que, al menos, dichos primeros datos de verificación (DID, S1, PK1) son fiables, pueden examinarse, al menos, dichos segundos datos de verificación (S2, PK2) en la primera etapa de inicio (P1), para confirmar la fiabilidad de la segunda etapa de inicio, con lo cual sí la verificación demuestra que, al menos, dichos segundos datos de verificación (S2, PK2) son fiables, dicha segunda etapa de inicio (P2), se lleva a cabo después de dicha primera etapa de inicio
(P1).
2. Método de acuerdo con la reivindicación 1, caracterizado porque para generar de dichos primeros datos de verificación (DID, S1, PK1) se utiliza, al menos, parte de la identidad de dispositivo (DID) del dispositivo electrónico que se encuentra almacenada en el dispositivo electrónico (1).
3. Método de acuerdo con la reivindicación 2, caracterizado porque sí dicha identidad de dispositivo (DID) del dispositivo electrónico no coincide con la identidad de dispositivo utilizada para la generación de los primeros datos de verificación (DID, S1, PK1) se impide el funcionamiento normal del dispositivo electrónico (1).
4. Método de acuerdo con cualquiera de las reivindicaciones 1 a 3, caracterizado porque dichos primeros datos de verificación (DID, S1, PK1) se generan mediante una firma digital (S1) utilizando una clave secreta, porque la información relativa a la clave pública (PK1) correspondiente a la clave secreta se encuentra almacenada en el dispositivo electrónico (1) y porque la información relativa a dicha clave pública (PK1) almacenada en el dispositivo electrónico (1) se utiliza para la confirmación de dichos primeros datos de verificación (DID, S1, PK1).
5. Método de acuerdo con la reivindicación 4, caracterizado porque la información relativa a la clave pública (PK1) se encuentra almacenada en una memoria de sólo lectura programable una sola vez (2e), y porque dichos primeros datos de verificación (DID, S1, PK1) se encuentran almacenados en una memoria externa del dispositivo electrónico (1).
6. Método de acuerdo con cualquiera de las reivindicaciones 1 a 5, caracterizado porque al menos dichos primeros datos de verificación (DID, S1, PK1) se encuentran almacenados en una memoria de sólo lectura (2e).
7. Método de acuerdo con cualquiera de las reivindicaciones 1 a 6, caracterizado porque al menos parte de los comandos de programa de dicha primera etapa de inicio (P1) se encuentran almacenados en una memoria de sólo lectura (2e).
8. Método de acuerdo con cualquiera de las reivindicaciones 1 a 7, caracterizado porque los comandos de programa de dicha primera etapa de inicio (P1) y los comandos de programa de dicha segunda etapa de inicio (P2) se encuentran almacenados en memorias diferentes (2d, 2e, 3).
9. Método de acuerdo con las reivindicaciones 7 u 8, caracterizado porque dichos segundos datos de verificación (S2, PK2) se encuentran almacenados en la misma memoria en la que se encuentran almacenados los comandos de programa de dicha segunda etapa de inicio (P2).
10. Método de acuerdo con cualquiera de las reivindicaciones 1 a 9, caracterizado porque dichos segundos datos de verificación (S2, PK2) se generan mediante una firma digital (S2) utilizando una clave secreta, porque la clave pública (PK2) correspondiente a la clave secreta se encuentra almacenada en el dispositivo electrónico (1), y porque dicha clave pública (PK2) almacenada en el dispositivo electrónico (1) se utiliza para la confirmación de dichos segundos datos de verificación (S2, PK2).
11. Método de acuerdo con la reivindicación 10, caracterizado porque para generar la firma digital (S2) se selecciona un conjunto de datos, porque los datos del conjunto seleccionado se comprimen para generar una compresión (H) y porque la firma digital (S2) se genera a partir de dicha compresión
(H).
12. Método de acuerdo con cualquiera de las reivindicaciones 1 a 11, caracterizado porque en el dispositivo electrónico (1) se ejecuta, al menos, un programa (PG1, PG2, PG3), cuyo arranque se lleva a cabo en la segunda etapa de inicio (P2) y porque al menos un programa (PG1, PG2, PG3) dispone de, al menos, unos terceros datos de verificación, porque antes de arrancar dicho programa (PG1, PG2, PG3), dichos terceros datos de verificación son examinados para asegurarse de la fiabilidad de dicho programa (PG1, PG2, PG3), en el cual sí la verificación de la fiabilidad de dicho programa (PG1, PG2, PG3), demuestra que dicho programa (PG1, PG2, PG3) es fiable, al menos, uno de dichos programas (PG1, PG2, PG3) es arrancado.
13. Método de acuerdo con cualquiera de las reivindicaciones 1 a 12, caracterizado porque en dicho programa de inicio almacenado en una memoria de sólo lectura se verifica la fiabilidad de la primera etapa de inicio (P1) antes de ejecutar dicha primera etapa de inicio (P1).
14. Sistema para garantizar la fiabilidad de un dispositivo electrónico (1), en el que en dicho dispositivo electrónico (1) se encuentran almacenados, al menos, unos primeros (DID, S1, PK1) y unos segundos (S2, PK2) datos de verificación, comprendiendo dicho dispositivo electrónico (1), unos medios (2) para arrancar (501) un programa de inicio, caracterizado porque el sistema incluye medios (2) para ejecutar el programa de inicio en al menos una primera (P1) y una segunda (P2) etapas de inicio, porque durante la primera etapa de inicio (P1) para la generación de dichos primeros datos de verificación (DID, S1, PK1) se utilizan al menos parcialmente comandos de programa de dicha primera etapa de inicio, porque para la generación de dichos segundos datos de verificación (S2, PK2) se utilizan al menos parcialmente comandos de programa de dicha segunda etapa de inicio, y porque el sistema incluye adicionalmente medios para examinar la fiabilidad de, al menos, dichos primeros datos de verificación (DID, S1, PK1) en dicha primera etapa de inicio (P1) y medios para examinar dichos segundos datos de verificación (S2, PK2) en la primera etapa de inicio (P1) para confirmar la fiabilidad de la segunda etapa de inicio, en el que si al menos dichos primeros datos de verificación (DID, S1, PK1) y al menos dichos segundos datos de verificación (S2, PK2) son fiables de acuerdo con dichas comprobaciones, dicha segunda etapa de inicio (P2) está prevista para ser ejecutada después de dicha primera etapa de inicio
(P1).
15. Sistema de acuerdo con la reivindicación 14, caracterizado porque para generar de dichos primeros datos de verificación (DID, S1, PK1), se utiliza la identidad de dispositivo (DI) del dispositivo electrónico, que se almacena en dicho dispositivo electrónico (1).
16. Sistema de acuerdo con la reivindicación 15, caracterizado porque incluye medios para comparar la equivalencia de la identidad de dispositivo (DI) del dispositivo electrónico almacenada en dicho dispositivo electrónico (1) y la identidad de dispositivo utilizada para la generación de los primeros datos de verificación (DID, S1, PK1), así como medios para interrumpir el programa de inicio en el caso de que dicha identidad de dispositivo (DID) del dispositivo electrónico no se corresponda con dicha identidad de dispositivo utilizada para generar de los datos de verificación (DID, S1, PK1).
17. Sistema de acuerdo con cualquiera de las reivindicaciones 13 a 16, caracterizado porque incluye medios para generar dichos primeros datos de verificación (DID, S1, PK1) con la firma digital (S1) utilizando una clave secreta, unos medios para almacenar la información relativa a la clave pública (PK1) correspondiente a la clave secreta en el dispositivo electrónico (1), y unos medios para utilizar la clave pública (PK1) almacenada en dicho dispositivo electrónico (1) para la confirmación de dichos primeros datos de verificación (DID, S1, PK1).
18. Sistema de acuerdo con las reivindicaciones 13 a 17, caracterizado porque incluye una memoria de sólo lectura programable una sola vez (2e) en la cual están almacenados, al menos, dichos primeros datos de verificación (DID, S1, PK1).
19. Sistema de acuerdo con la reivindicación 18, caracterizado porque al menos un parte de los comandos de programa de dicha primera etapa de inicio (P1) se encuentran almacenados en una memoria de sólo lectura (2e).
20. Sistema de acuerdo con la reivindicación 19, caracterizado porque dichos segundos datos de verificación (S2, PK2) se encuentran almacenados en la misma memoria que en la que se encuentran almacenados los comandos de programa de dicha segunda etapa de inicio (P2).
21. Sistema de acuerdo con cualquiera de las reivindicaciones 13 a 20, caracterizado porque incluye medios para generar dichos segundos datos de verificación (S2, PK2) con la firma digital (S2) utilizando una clave secreta, medios para almacenar la clave pública (PK1) correspondiente a la clave secreta en el dispositivo electrónico (1) y medios para utilizar la clave pública (PK2) almacenada en dicho dispositivo electrónico (1) para la confirmación de dichos segundos datos de verificación (S2, PK2).
22. Sistema de acuerdo con cualquiera de las reivindicaciones 13 a 21, caracterizado porque incluye medios (2) para ejecutar un programa en un dispositivo electrónico (1), incluyendo dicho programa, al menos, terceros datos de verificación, unos medios para examinar dichos terceros datos de verificación para confirmar la fiabilidad de dicho programa, unos medios para arrancar dicho programa en dicha segunda etapa de inicio (P2) sí dicha verificación de la fiabilidad del programa ha demostrado que dicho programa es fiable.
23. Sistema de acuerdo con cualquiera de las reivindicaciones 13 a 22, caracterizado porque incluye un sistema de carga de programa (AS) en el cual se almacenan los programas para su carga, unos medios (9) para transmitir los primeros datos de verificación (DID, S1, PK1) desde un dispositivo electrónico (1) al sistema de carga de programas (AS), unos medios (402, CDB) para confirmar los primeros datos de verificación (DID, S1, PK1), unos medios (402) para incorporar los primeros datos de verificación (DID, S1, PK1) a un programa a cargar en el dispositivo electrónico (1) y unos medios (404, AS) para transmitir el programa al dispositivo electrónico
(1).
24. Dispositivo electrónico (1) que incluye medios para garantizar la fiabilidad de dicho dispositivo electrónico (1), estando almacenados en dicho dispositivo electrónico (1), al menos, unos primeros datos (DID, S1, PK1) y unos segundos (S2, PK2) datos de verificación, incluyendo también el dispositivo electrónico (1) medios (2) para arrancar (501) un programa de inicio, caracterizado porque el dispositivo electrónico (1) incluye medios (2) para ejecutar el programa de inicio en al menos una primera (P1) y una segunda (P2) etapas de inicio, porque en la primera etapa de inicio (P1) se utilizan, al menos parcialmente, para la generación de dichos primeros datos de verificación (DID, S1, PK1), unos comandos de programa de dicha primera etapa de inicio, porque para la generación de dichos segundos datos de verificación (S2, PK2) se utilizan al menos parcialmente comandos de programa de dicha segunda etapa de inicio, porque el dispositivo electrónico (1) incluye adicionalmente unos medios para examinar la fiabilidad de al menos dichos primeros datos de verificación (DID, S1, PK1) en dicha primera etapa de inicio (P1) y unos medios para examinar dichos segundos datos de verificación (S2, PK2) en la primera etapa de inicio (P1) para confirmar la fiabilidad de la segunda etapa de inicio, en el que sí, al menos, dichos primeros datos de verificación (DID, S1, PK1) y dichos segundos datos de verificación (S2, PK2) son fiables, según dichas comprobaciones, estando prevista dicha segunda etapa de inicio (P2) para ser ejecutada después de dicha primera etapa de inicio (P1).
25. Dispositivo electrónico de acuerdo con la reivindicación 24, caracterizado porque incluye medios (9) para realizar funciones de estación de teléfono móvil.
26. Dispositivo electrónico de acuerdo con la reivindicación 27, caracterizado porque incluye medios (9) para descargar programas a través de una red estaciones de teléfono móvil.
27. Programa que realiza todas las etapas del método de la reivindicación 1 cuando se ejecuta en un ordenador.
28. Medios de almacenamiento (2d, 2e) para almacenar un programa de acuerdo con la reivindicación 27.
ES02743287T 2001-06-15 2002-06-14 Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico. Expired - Lifetime ES2236530T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20011278A FI114416B (fi) 2001-06-15 2001-06-15 Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
FI20011278 2001-06-15

Publications (1)

Publication Number Publication Date
ES2236530T3 true ES2236530T3 (es) 2005-07-16

Family

ID=8561425

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02743287T Expired - Lifetime ES2236530T3 (es) 2001-06-15 2002-06-14 Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico.

Country Status (12)

Country Link
US (1) US7506381B2 (es)
EP (1) EP1395892B1 (es)
JP (2) JP2004530235A (es)
KR (1) KR100657532B1 (es)
CN (1) CN1276319C (es)
AT (1) ATE287102T1 (es)
BR (1) BR0210379A (es)
CA (1) CA2450844C (es)
DE (1) DE60202605T8 (es)
ES (1) ES2236530T3 (es)
FI (1) FI114416B (es)
WO (1) WO2002103495A1 (es)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL133584A (en) * 1999-12-19 2010-02-17 Enco Tone Ltd Method for the acoustic encodification of dynamic identification codes
US7849301B2 (en) * 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US20030163703A1 (en) * 2002-02-28 2003-08-28 Robins Mark Nelson Image key security system and method
US20030163716A1 (en) * 2002-02-28 2003-08-28 Robins Mark Nelson Card key security system and method
US7165824B2 (en) 2002-12-02 2007-01-23 Silverbrook Research Pty Ltd Dead nozzle compensation
US20100062844A1 (en) * 2003-03-05 2010-03-11 Bally Gaming, Inc. Authentication and validation systems for gaming devices
US7546296B2 (en) 2003-03-19 2009-06-09 Ricoh Company, Ltd. Information processing apparatus started from a program recorded on a recording medium with well-maintained security, and a recording medium storing such a program and a producing method of such a recording medium
US7568195B2 (en) 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7614051B2 (en) 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
US7549042B2 (en) 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7549148B2 (en) 2003-12-16 2009-06-16 Microsoft Corporation Self-describing software image update components
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
FR2864276B1 (fr) * 2003-12-19 2006-04-28 Thales Sa Procede de detection de modifications illicites des logiciels constructeurs
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US20060048222A1 (en) * 2004-08-27 2006-03-02 O'connor Clint H Secure electronic delivery seal for information handling system
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8176564B2 (en) * 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8321686B2 (en) 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
JP2006221629A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサのリソース管理によるコンテンツ制御方法および装置
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
US20060236122A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Secure boot
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US20070023502A1 (en) * 2005-07-26 2007-02-01 Ming-Chih Tsai Composite electronic card device
US20080220880A1 (en) * 2005-09-07 2008-09-11 Bally Gaming, Inc. Trusted Cabinet Identification System
US20080220879A1 (en) * 2005-09-07 2008-09-11 Bally Gaming, Inc. Trusted Cabinet Identification Method
US8966284B2 (en) 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
WO2007033321A2 (en) * 2005-09-14 2007-03-22 Sandisk Corporation Secure yet flexible system architecture for secure devices with flash mass storage memory
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US8046833B2 (en) * 2005-11-14 2011-10-25 Sourcefire, Inc. Intrusion event correlation with network discovery information
US20070288740A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for secure boot across a plurality of processors
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US20080134319A1 (en) * 2006-11-30 2008-06-05 Kestrelink Corporation License verification
US8423794B2 (en) 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US20080222428A1 (en) * 2007-03-07 2008-09-11 Andrew Dellow Method for Securing Authenticity of Data in a Digital Processing System
US8327456B2 (en) * 2007-04-13 2012-12-04 Microsoft Corporation Multiple entity authorization model
US8209550B2 (en) * 2007-04-20 2012-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting SIMLock information in an electronic device
SE532600C2 (sv) * 2007-06-29 2010-03-02 Oniteo Ab Metod och system för säker provisionering av hårdvara
GB2454640A (en) * 2007-07-05 2009-05-20 Vodafone Plc Received message verification
DE102007044905A1 (de) * 2007-09-19 2009-04-09 InterDigital Patent Holdings, Inc., Wilmington Verfahren und Vorrichtung zur Ermöglichung einer Dienstnutzung und Feststellung der Teilnehmeridentität in Kommunikationsnetzen mittels softwarebasierten Zugangsberechtigungsausweisen (vSIM)
US20090125996A1 (en) 2007-09-19 2009-05-14 Interdigital Patent Holdings, Inc. Virtual subscriber identity module
US9069990B2 (en) 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
US8621191B2 (en) * 2007-12-26 2013-12-31 Nokia Corporation Methods, apparatuses, and computer program products for providing a secure predefined boot sequence
US9158896B2 (en) 2008-02-11 2015-10-13 Nvidia Corporation Method and system for generating a secure key
US9069706B2 (en) 2008-02-11 2015-06-30 Nvidia Corporation Confidential information protection system and method
US8719585B2 (en) 2008-02-11 2014-05-06 Nvidia Corporation Secure update of boot image without knowledge of secure key
US9613215B2 (en) * 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
JP2009260688A (ja) * 2008-04-17 2009-11-05 Dialogue Technology Corp ワイヤレス広域通信網におけるリモート端末装置のセキュリティシステムとその方法
TW200945192A (en) * 2008-04-28 2009-11-01 Asustek Comp Inc Motherboard and method for recovering BIOS thereof and for booting computer
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
WO2010039788A2 (en) * 2008-09-30 2010-04-08 Bigfoot Networks, Inc. Processor boot security device and methods thereof
JP5278813B2 (ja) * 2009-03-25 2013-09-04 セイコーエプソン株式会社 リアルタイムクロックおよび電子機器のセキュリティ設定方法
GB2477774A (en) 2010-02-12 2011-08-17 Icera Inc Overriding production processor authentication restrictions through remote security unit for development code testing
CN102236754B (zh) * 2010-05-07 2014-01-01 扬智科技股份有限公司 数据保密方法以及使用此数据保密方法的电子装置
WO2012003591A1 (en) 2010-07-09 2012-01-12 Research In Motion Limited Microcode-based challenge/response process
EP2405377B1 (en) * 2010-07-09 2017-12-27 BlackBerry Limited Securing a component prior to manufacture of a device
US9032186B2 (en) 2010-07-09 2015-05-12 Blackberry Limited Utilization of a microcode interpreter built in to a processor
DE102010047186B4 (de) * 2010-09-30 2021-03-25 Infineon Technologies Ag Verfahren zum Unterstützen einer Bindung eines Chips an ein elektronisches Gerät und Chip bzw. elektronisches Gerät hierfür
US20120204254A1 (en) * 2011-02-04 2012-08-09 Motorola Mobility, Inc. Method and apparatus for managing security state transitions
JP2014170255A (ja) * 2011-06-29 2014-09-18 Panasonic Corp セキュアブート方法
US8386763B1 (en) * 2012-01-04 2013-02-26 Google Inc. System and method for locking down a capability of a computer system
US9489924B2 (en) 2012-04-19 2016-11-08 Nvidia Corporation Boot display device detection and selection techniques in multi-GPU devices
US9223982B2 (en) * 2013-03-01 2015-12-29 Intel Corporation Continuation of trust for platform boot firmware
CN104182242A (zh) * 2013-05-28 2014-12-03 华为技术有限公司 一种系统启动方法及装置
US9195831B1 (en) 2014-05-02 2015-11-24 Google Inc. Verified boot
CN106934289A (zh) * 2015-12-30 2017-07-07 北京展讯高科通信技术有限公司 校验及形成签名映像的方法
WO2017133771A1 (en) * 2016-02-04 2017-08-10 Telefonaktiebolaget Lm Ericsson (Publ) Actor migration
KR101862348B1 (ko) * 2016-02-09 2018-05-29 지멘스 악티엔게젤샤프트 프로그램 명령들의 안전한 실행을 위한 방법 및 실행 환경
US11374760B2 (en) * 2017-09-13 2022-06-28 Microsoft Technology Licensing, Llc Cyber physical key
DE102021207628A1 (de) * 2021-07-16 2023-01-19 Siemens Mobility GmbH Rechenanlage und Verfahren zu deren Betrieb

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3316414A1 (de) 1982-05-12 1983-12-22 Bally Manufacturing Corp., 60618 Chicago, Ill. Geraet und verfahren zum sicherstellen der unversertheit eines spielgeraets
JPH01296361A (ja) 1988-05-25 1989-11-29 Mitsubishi Electric Corp メモリカード
US5293610A (en) 1989-08-04 1994-03-08 Motorola, Inc. Memory system having two-level security system for enhanced protection against unauthorized access
US5379342A (en) 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US5509120A (en) 1993-11-30 1996-04-16 International Business Machines Corporation Method and system for detecting computer viruses during power on self test
US5643086A (en) 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5802592A (en) 1996-05-31 1998-09-01 International Business Machines Corporation System and method for protecting integrity of alterable ROM using digital signatures
US6138236A (en) 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
FI105306B (fi) 1997-06-10 2000-07-14 Nokia Networks Oy Radiojärjestelmä
US5919257A (en) 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US6032257A (en) * 1997-08-29 2000-02-29 Compaq Computer Corporation Hardware theft-protection architecture
JPH11169546A (ja) * 1997-12-12 1999-06-29 Sophia Co Ltd 遊技装置の監視システム
JPH11355468A (ja) * 1998-06-12 1999-12-24 Hitachi Ltd ネットワーク端末器、それを用いたネットワークシステムおよびネットワーク接続方法
US6405311B1 (en) * 1998-07-28 2002-06-11 Compaq Computer Corporation Method for storing board revision
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
JP2000174527A (ja) * 1998-12-08 2000-06-23 Toshiba Corp 携帯型電子機器
US6470457B1 (en) * 1998-12-14 2002-10-22 International Business Machines Corporation Local permanent storage in network computer
JP2000322253A (ja) * 1999-05-14 2000-11-24 Namco Ltd セキュリティ・システム
US6594761B1 (en) 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
US7073064B1 (en) * 2000-03-31 2006-07-04 Hewlett-Packard Development Company, L.P. Method and apparatus to provide enhanced computer protection
US6625730B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Development Company, L.P. System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine
US6584561B1 (en) * 2000-09-19 2003-06-24 Dell Products L.P. System and method to modify CD boot
US7000249B2 (en) * 2001-05-18 2006-02-14 02Micro Pre-boot authentication system
US7409539B2 (en) * 2004-08-06 2008-08-05 International Business Machines Corporation System design and code update strategy to implement a self-healing, self-verifying system
US7516315B2 (en) * 2005-03-18 2009-04-07 Research In Motion Ltd. Electronic device having an alterable configuration and methods of manufacturing and configuring the same
CN100426228C (zh) * 2005-05-20 2008-10-15 鸿富锦精密工业(深圳)有限公司 切换计算机启动顺序的系统及方法
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection

Also Published As

Publication number Publication date
CA2450844C (en) 2012-08-21
FI20011278A0 (fi) 2001-06-15
ATE287102T1 (de) 2005-01-15
BR0210379A (pt) 2004-08-10
KR100657532B1 (ko) 2006-12-13
CN1541352A (zh) 2004-10-27
DE60202605T2 (de) 2006-01-05
JP2004530235A (ja) 2004-09-30
JP2007293873A (ja) 2007-11-08
EP1395892A1 (en) 2004-03-10
DE60202605D1 (de) 2005-02-17
CN1276319C (zh) 2006-09-20
EP1395892B1 (en) 2005-01-12
FI114416B (fi) 2004-10-15
WO2002103495A1 (en) 2002-12-27
CA2450844A1 (en) 2002-12-27
KR20040007685A (ko) 2004-01-24
US7506381B2 (en) 2009-03-17
DE60202605T8 (de) 2006-04-27
US20030014663A1 (en) 2003-01-16
FI20011278A (fi) 2002-12-16

Similar Documents

Publication Publication Date Title
ES2236530T3 (es) Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico.
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
US8041957B2 (en) Associating software with hardware using cryptography
TWI416932B (zh) 用於預防複製之裝置結合快閃/開機技術
US7886355B2 (en) Subsidy lock enabled handset device with asymmetric verification unlocking control and method thereof
US9281949B2 (en) Device using secure processing zone to establish trust for digital rights management
US20060005046A1 (en) Secure firmware update procedure for programmable security devices
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
JP6509197B2 (ja) セキュリティパラメータに基づくワーキングセキュリティキーの生成
KR101904303B1 (ko) 보안 소프트웨어 인증 및 검증
US20070050622A1 (en) Method, system and apparatus for prevention of flash IC replacement hacking attack
US20120166781A1 (en) Single security model in booting a computing device
JP2004538584A (ja) 電子装置における情報の処理方法、システム、電子装置及び処理ブロック
JP2002507307A (ja) プログラムをプロセッサに読み込むための装置および方法
CN109388961B (zh) 存储设备的安全控制方法及存储设备
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
CN104868998A (zh) 一种向电子设备供应加密数据的系统、设备和方法
KR20190036779A (ko) 보안 펌웨어 업데이트 방법 및 시스템