ES2863678T3 - Un método y sistema para transferir firmware o software a una pluralidad de dispositivos - Google Patents

Un método y sistema para transferir firmware o software a una pluralidad de dispositivos Download PDF

Info

Publication number
ES2863678T3
ES2863678T3 ES12735340T ES12735340T ES2863678T3 ES 2863678 T3 ES2863678 T3 ES 2863678T3 ES 12735340 T ES12735340 T ES 12735340T ES 12735340 T ES12735340 T ES 12735340T ES 2863678 T3 ES2863678 T3 ES 2863678T3
Authority
ES
Spain
Prior art keywords
encrypted
file
session key
electronic device
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12735340T
Other languages
English (en)
Inventor
Filippo Vernia
Davide Tazzari
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.)
Fimer SpA
Original Assignee
Fimer SpA
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 Fimer SpA filed Critical Fimer SpA
Application granted granted Critical
Publication of ES2863678T3 publication Critical patent/ES2863678T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Un método para transmitir un archivo (Fw) desde una fuente de archivos (101) a una pluralidad de dispositivos electrónicos (110(j)), estando una clave de encriptación (Kj) y un código de identificador único (IDj) asociados a cada dispositivo electrónico, en donde, para una sesión de transmisión de un archivo (Fw) se realizan las siguientes etapas: - se genera una clave de sesión (Ks); - la fuente de archivos (101) transmite a un controlador (105) a través de un canal de transmisión (103): - un archivo encriptado (C(Fw, Ks)), encriptado por medio de la clave de sesión (Ks), y - una pluralidad de claves de sesión encriptadas (C(Ks, Kj)), en donde cada clave de sesión encriptada se empareja con un código de identificador único (IDj) de un respectivo dispositivo electrónico (110(j)), con cuya clave de encriptación (Kj) se obtuvo la respectiva clave de sesión encriptada (Ks); - el controlador (105) transmite el archivo encriptado (C(Fw, Ks)) y la pluralidad de claves de sesión encriptadas (C(KS, Kj)) emparejadas con los respectivos códigos de identificador únicos (IDj) a dicha pluralidad de dispositivos electrónicos (110(j)) a través de un canal de transmisión compartido (107) en modo de difusión; y - cada dispositivo electrónico (110(j)) que recibe el archivo encriptado y la pluralidad de claves de sesión encriptadas en el canal de transmisión compartido (107), desencripta su propia clave de sesión encriptada (C(Ks, Kj)) usando la respectiva clave de encriptación (Kj) para obtener la clave de sesión desencriptada (Ks), y desencripta el archivo encriptado (C(Fw; Ks)) por medio de la clave de sesión desencriptada (Ks).

Description

DESCRIPCIÓN
Un método y sistema para transferir firmware o software a una pluralidad de dispositivos
Campo técnico
La presente invención se refiere a métodos y sistemas para la transmisión segura de archivos electrónicos, por ejemplo, archivos que contienen o constituidos por firmware o software.
Antecedentes
Una multitud de dispositivos electrónicos para consumidores y para uso profesional están provistos de software necesario para sus operaciones. Tal software se instala habitualmente por el fabricante en áreas protegidas del dispositivo, para evitar que se descarguen y copien. Comúnmente, los programas instalados dentro de dispositivos electrónicos se conocen como firmware.
El rendimiento de un dispositivo electrónico depende en gran medida del firmware o software instalado. Los mismos dispositivos pueden estar provistos con software o firmware incluso más avanzado, tanto para eliminar las deficiencias de las versiones anteriores del software, como para efectuar nuevas funciones o mejorar funciones existentes. Hoy, la tecnología habilita actualizar fácilmente los programas (software y firmware) en dispositivos electrónicos una vez que se instalan por el cliente. Ahora se considera todo esto un hecho dado y por encima de todo un artículo "imprescindible" por cualquier tipo de cliente, ya sea una gran empresa o un usuario doméstico de un aparato o dispositivo electrónico dado. Considérese cómo ahora es habitual actualizar un lector de CD, consola de videojuegos, encaminador doméstico con nuevo firmware suministrado de vez en cuando por el fabricante del dispositivo. Para sistemas operativos y software de aplicación, por ejemplo, programas de procesamiento de texto, procesamiento de vídeo e imágenes, publicación electrónica, contabilidad y otros propósitos, hay disponibles actualizaciones y avances continuos, que también se ofrecen en línea a los usuarios de los respectivos dispositivos electrónicos que usan los mismos, por ejemplo, ordenadores, teléfonos móviles y otros.
Por razones de seguridad y comercialización, los fabricantes de dispositivos necesitan proteger su producto mientras aún permiten que los usuarios actualicen remotamente el producto comprado, a través del nuevo software o firmware a medida que está disponible.
Normalmente, el canal o, en general, la trayectoria seguida por una nueva actualización de software desde el momento que deja la empresa hasta el momento que llega a su receptor previsto no está ni protegida ni es segura. Por esta razón, las empresas intentan proteger su firmware o software encriptando el mismo, usando algoritmos de encriptación adecuados para el propósito.
En la actualidad, se ha introducido una técnica de actualización de software o firmware personalizada. De acuerdo con esta técnica, el fabricante de software adopta medidas adecuadas para garantizar que un firmware o software actualizado puede enviarse únicamente a un único dispositivo. Cuando el proveedor o fabricante del software o firmware adopta un enfoque de esta clase, el software o firmware actualizado debe recibirse, por ejemplo, descargando el mismo de la Internet, una vez para cada dispositivo a actualizar. Situaciones de esta clase se experimentan habitualmente, por ejemplo, en el caso de una pluralidad de ordenadores conectados a una red empresarial. Cada ordenador debe descargar la actualización de software o firmware, por ejemplo, la actualización del sistema operativo o de una aplicación. En un caso de este tipo, la misma actualización debe descargarse a través de la conexión de internet tantas veces como ordenadores conectados a la red local hay.
Existen muchas técnicas para efectuar este proceso de actualización individual de cada dispositivo. Por ejemplo, la actualización puede controlarse usando un código de encriptación diferente para cada dispositivo a actualizar. De otra manera, pueden proporcionarse claves de hardware o software a aplicar al dispositivo; pueden hacerse de tal manera que únicamente pueden interactuar con un dispositivo específico. En este caso, por ejemplo, la clave de hardware puede estar equipada con un microcontrolador para leer datos o códigos del dispositivo con el que interactúa la clave por primera vez, y para evitar que la clave funciones si se conecta a un dispositivo diferente.
Si la actualización de un software o de un firmware, es decir, de un programa genérico en un dispositivo electrónico, por razones de seguridad y protección de datos se efectúa con una técnica que requiere enviar un software diferente para cada aparato electrónico o dispositivo, se incurrirá en grandes costes en términos de procesamiento de datos o de utilización de ancho de banda de transmisión.
Por ejemplo, supongamos que una instalación tiene una pluralidad de dispositivos electrónicos, que deben actualizarse, y un punto de recopilación que conecta los mismos a un centro de datos capaz de proporcionar las actualizaciones de software a instalar en dispositivos individuales. Una instalación de esta clase puede comprender una granja fotovoltaica, en la que cada panel se asocia con un dispositivo electrónico que intercambia información con una unidad de recopilación de datos. La unidad de recopilación de datos se fabrica y programa para recopilar información acerca de la operación correcta de paneles individuales interrogando los dispositivos electrónicos en los paneles y para comunicarse con un centro de operación remota o de supervisión. Puede representarse una situación similar por un sistema de iluminación público, que comprende una pluralidad de accesorios de luz, cada uno de los cuales puede asociarse a un dispositivo electrónico, por ejemplo, capaz de verificar la operación correcta del accesorio de iluminación, y/o para ordenar al mismo que se encienda y apague y/o para atenuar el mismo. Los dispositivos electrónicos de los accesorios de luz individuales pueden conectarse, por ejemplo, a través de un sistema de comunicación por línea eléctrica, con una unidad de recopilación de datos, que dialoga con los dispositivos electrónicos individuales. La unidad de recopilación, a su vez, puede conectarse con un centro de operación remota o de supervisión, al que se transmiten los datos recopilados por la unidad, y/o que puede enviar comandos o consultas a los dispositivos electrónicos individuales.
En un escenario de esta clase, cada vez que es necesario actualizar el software o firmware en los dispositivos electrónicos, la unidad de recopilación debe recibir el mismo software o firmware del centro de control remoto o de supervisión tantas veces como dispositivos haya que actualizar y dicho software o firmware debe encriptarse cada vez con una clave de encriptación para cada dispositivo. Suponiendo que la instalación comprende N dispositivos idénticos a actualizar, en la práctica la unidad de control tendría que descargar N veces la misma actualización únicamente porque está encriptada físicamente de una forma diferente para cada dispositivo. Esto es un problema en sí mismo, porque requiere la transmisión de una gran cantidad de datos.
Además, ya que los dispositivos electrónicos habitualmente están conectados a un bus, o a otro canal de comunicación de transmisión compartido, dicho bus se utiliza para comunicar todos los N programas a los diversos dispositivos, permaneciendo ocupado durante mucho tiempo para realizar esta función. Si el firmware o software fuera único, la unidad de control podría descargar el firmware o software únicamente una vez y transmitir el mismo a todos los dispositivos electrónicos también en modo de difusión a la vez, es decir, transmitir el mismo únicamente una vez en el bus u otro canal de transmisión.
La función primaria de la unidad de control es supervisar y gestionar los dispositivos electrónicos conectados a la misma y el bus de comunicación tiene que estar ocupado principalmente para supervisar y señalizar y para la gestión de los problemas operativos de los dispositivos electrónicos controlados. Desde este punto de vista, una actualización remota puede considerarse una funcionalidad secundaria, a la que debería dedicarse la menor cantidad de tiempo y recursos posibles. Este requisito contrasta con la necesidad de transmitir el software actualizado tantas veces como dispositivos haya: una necesidad de este tipo se determina por la necesidad de transmitir el software o firmware en condiciones seguras.
La Figura 1 muestra un diagrama de un sistema de acuerdo con la técnica anterior. El número de referencia 10 indica un centro de datos, por ejemplo, un servidor, usado, entre otros propósitos, para contener los archivos de actualización (por ejemplo, firmware) de una pluralidad de dispositivos 1, 2, ... i, ... n-1, n, que se conectan a un bus de transmisión 11. El bus 11 a su vez se conecta a un bloque 12 que representa un controlador, un registrador de datos y una interfaz y un canal de transmisión genérico 13, que conecta el mismo al servidor, por ejemplo, la Internet. Por razones de protección de datos, los archivos se transmiten desde el servidor 10 al controlador 12 de forma encriptada. Si C es el algoritmo de encriptación elegido y Fw el firmware en claro a encriptar, el tamaño del firmware encriptado será igual o mayor que el firmware original. Habitualmente, en un firmware de tamaño grande, el incremento de tamaño del archivo como consecuencia de la encriptación es casi insignificante. Por ejemplo, con el algoritmo AES de 128 bits (http://it.wikipedia.org/wiki/AdvancedEncrvptionStandard). el tamaño del objeto encriptado es un múltiplo de 128 bits, es decir, 16 bytes. Por lo tanto, si el firmware original es 10 bytes, el resultado será de 16 bytes. Si en su lugar el firmware es de 15000 bytes, el resultado será 15008 (primer múltiplo de 16 posterior a 15000). Por lo tanto, para números grandes, el firmware no encriptado y el firmware encriptado tienen un tamaño comparable. Por lo tanto, puede considerarse que
Figure imgf000003_0001
en la que
Dim(Fw) es el tamaño del archivo no encriptado (firmware);
Dim(C(Fw, Kj) es el tamaño del archivo encriptado (firmware);
Kj = f(RNDj, ...) es la clave de encriptación, que a modo de ejemplo puede representarse por una función unidireccional de una cadena de bits, una parte de la cual se representa mediante un número aleatorio RNDj . Este número es diferente para cada j ésimo dispositivo, ya que cada firmware encriptado se concibe para un dispositivo específico y no para los otros.
Por lo tanto, la encriptación no cambia sustancialmente el tamaño del firmware a transferir.
Sea Wc el peso en bytes de un intercambio de datos en el canal de comunicación entre el servidor 10 y el controlador y sea W b el peso en bytes de un intercambio de datos en el bus 11 entre el controlador 12 y cada dispositivo 1...n. Con la técnica de transmisión de acuerdo con el estado de la técnica, en la que cada j ésimo dispositivo recibe un firmware encriptado con su propia Kj clave de encriptación, el tráfico en bytes Tc en el canal de comunicación 13 será igual a
Figure imgf000004_0001
De manera similar, el tráfico en bytes TB en el bus interno 11 será
Figure imgf000004_0002
Debe tenerse en consideración que la carga de trabajo de cada jésimo dispositivo no será únicamente la necesaria para la actualización, sino también la requerida para procesar y descargar todas las (n-1) comunicaciones de actualización recibidas por los otros dispositivos conectados al bus. Habitualmente, ya que el canal 11 es un bus compartido, todos los dispositivos 1...n "escuchan" toda la comunicación independientemente de si se dirige a los mismos o no.
Sumario de la invención
Para reducir el coste de la actualización de una pluralidad de dispositivos a través de nuevos archivos, es decir, programas de software o firmware, mientras asegura seguridad de datos, se proporcionan un método de acuerdo con la reivindicación 1 y un sistema de acuerdo con la reivindicación 5.
De acuerdo con el método divulgado en este documento, el mismo archivo, previsto para cada uno de n dispositivos, se encripta con una única clave de encriptación especializada, en lo sucesivo también denominada "clave de sesión". El archivo encriptado puede transmitirse de forma segura incluso en un canal no protegido, porque si se intercepta, es aún imposible obtener el archivo no encriptado por cualquiera que no conozca o bien el algoritmo de encriptación usado o bien, sobre todo, la clave de encriptación. Junto con el archivo encriptado, también se transmite la clave de sesión. Sin embargo, la clave de sesión no se transmite en claro, porque de otra manera se perdería la protección de datos. A su vez, esta se encripta. Para hacer posible que el archivo se desencripte correctamente y, por lo tanto, se use por una pluralidad de dispositivos, la clave de sesión se encripta un número de veces igual al número de dispositivos que tienen que recibir el archivo, obteniendo una pluralidad de claves de sesión encriptadas. Cada clave de sesión encriptada se obtiene aplicando un algoritmo de encriptación a la clave de sesión, usando una clave de encriptación diferente cada vez para cada dispositivo para el que se concibe el archivo de actualización. Más específicamente, se asocia una clave de encriptación a cada dispositivo electrónico, que puede generarse, por ejemplo, por el propio dispositivo como una función de un número aleatorio prealmacenado. Este número es conocido únicamente por el dispositivo electrónico 5 y el sistema que genera los archivos encriptados a transmitir, en lo sucesivo también denominado "fuente de archivos". De esta manera, cada dispositivo electrónico será capaz de desencriptar la clave de sesión encriptada que aplica el algoritmo inverso, es decir, el algoritmo de desencriptación, usando su propia clave de encriptación generada comenzando a partir de la información que reside en un área protegida de su propia memoria. Entre la pluralidad de claves de sesión encriptadas, que se transmiten junto con el archivo encriptado, el dispositivo electrónico individual es capaz de reconocer su propia clave de sesión encriptada, es decir, la clave de sesión encriptada con su propia clave de encriptación, por ejemplo, proporcionando para cada clave de sesión encriptada a asociar un código de identificador único del dispositivo electrónico, con cuya clave de encriptación se obtuvo la clave de sesión encriptada. El código de identificador único es conocido no únicamente por el dispositivo electrónico, sino también por la fuente de archivos, que es capaz de asociar el código de identificador único a cada clave de sesión encriptada, que habilita que el dispositivo electrónico reconozca cuál de las diversas claves de sesión encriptadas es la que corresponde al mismo.
Una clave de encriptación "asociada", es decir, emparejada con el dispositivo, se entiende genéricamente para significar una clave de encriptación que coincide con el dispositivo electrónico. Puede constituirse por un número aleatorio atribuido al dispositivo electrónico, o puede obtenerse como una función a partir de uno o más números aleatorios atribuidos al dispositivo electrónico.
De acuerdo con una realización, el método comprende las etapas de:
- almacenar, en una memoria accesible por dicha fuente de archivos, y para cada dispositivo electrónico: datos asociados con la clave de encriptación del respectivo dispositivo electrónico y el código de identificador único del respectivo dispositivo electrónico, emparejados entre sí;
- generar dicha clave de sesión;
- encriptar el archivo a transmitir a través de un algoritmo de encriptación usando dicha clave de sesión, generando por lo tanto dicho archivo encriptado;
- para cada dispositivo electrónico, encriptar la clave de sesión con la clave de encriptación del dispositivo electrónico, obteniendo dicha pluralidad de claves de sesión encriptadas;
- transmitir, a cada uno de dichos dispositivos electrónicos, dicho archivo encriptado y dicha pluralidad de claves de sesión encriptadas, cada una emparejada con el respectivo código de identificador único del respectivo dispositivo electrónico, con cuya clave de encriptación se obtuvo la clave de sesión encriptada;
- en cada uno de dichos dispositivos electrónicos: identificar la respectiva clave de sesión encriptada asociada con el código de identificador único del dispositivo electrónico; desencriptar la clave de sesión encriptada por medio de la clave de encriptación del dispositivo electrónico, para obtener la clave de sesión desencriptada; desencriptar el archivo encriptado por medio de la clave de sesión desencriptada.
De acuerdo con un aspecto adicional, se proporciona un sistema para transmitir un archivo a una pluralidad de dispositivos electrónicos, en donde a cada uno de dichos dispositivos electrónicos se asocian: al menos un código de identificador único; y datos para definir una respectiva clave de encriptación. El sistema comprende: una fuente de archivos; una pluralidad de dispositivos electrónicos; al menos un canal de transmisión de datos desde dicha fuente de archivos a dichos dispositivos electrónicos. Ventajosamente, la fuente de archivos se programa para generar: un archivo encriptado por medio de una clave de sesión; y una pluralidad de claves de sesión encriptadas, obteniendo cada una encriptando la clave de sesión con la clave de encriptación de uno respectivo de dichos dispositivos electrónicos. Ventajosamente, cada dispositivo electrónico se programa para: desencriptar su propia clave de sesión encriptada usando su propia clave de encriptación, para obtener la clave de sesión desencriptada; y para desencriptar el archivo encriptado por medio de la clave de sesión desencriptada.
El sistema puede comprender ventajosamente una memoria, accesible por la fuente de archivos, en la que se almacenan los datos que definen las claves de encriptación, cada una emparejada con el código de identificador único del dispositivo electrónico correspondiente.
En algunas realizaciones, la fuente de archivos se programa para generar una clave de sesión no correlacionada con las claves de encriptación de los dispositivos electrónicos. Además, ventajosamente la fuente de archivos puede programarse: para crear, a partir de una clave de sesión, una lista de claves de sesión encriptadas, cada una de las cuales se encripta por medio de una respectiva clave de encriptación de uno de los dispositivos electrónicos a los que debe transmitirse el archivo; emparejar en dicha lista cada clave de sesión encriptada con el código de identificador único del dispositivo electrónico, a través de cuya clave de encriptación se encriptó la clave de sesión; y para transmitir dicha lista y dicho archivo encriptado a los dispositivos electrónicos.
En este documento y en las reivindicaciones adjuntas, el término "archivo" significa un conjunto de información digital que constituye por ejemplo y específicamente un programa de software o firmware, o más en general cualquier otro conjunto de información digitalizada, por ejemplo, una cadena o conjunto de datos que representan una entidad real o virtual. En particular, un archivo es una secuencia de instrucciones ejecutables por un microcontrolador o por un microprocesador. El término "fuente de archivos" significa un sistema de hardware y software construido y programado para transmitir archivos. El término "clave de encriptación" de un dispositivo electrónico significa una clave de encriptación, utilizable por un algoritmo de encriptación para encriptar un archivo, derivado a partir de un elemento de datos que se atribuye, es decir, asocia, al respectivo dispositivo. Este artículo de datos puede representarse, ventajosamente, por un respectivo número aleatorio asociado a cada dispositivo electrónico. Preferentemente, las claves de encriptación de los diversos dispositivos de un sistema son mutuamente diferentes. El término "código de identificador único" de un dispositivo electrónico significa un código, por ejemplo, que consta de un número binario, que identifica inequívocamente dicho dispositivo electrónico. El término "archivo encriptado" significa un archivo obtenido desde otro archivo que aplica un algoritmo de encriptación y al menos una clave de encriptación. El término "clave de sesión" significa una clave de encriptación usada para encriptar un archivo a transmitir desde un punto a otro de un sistema genérico. El término "clave de sesión encriptada" significa una clave obtenida a partir de una clave de sesión que aplica un algoritmo de encriptación y al menos una clave de encriptación a la clave de sesión. El término "canal de transmisión compartido" significa cualquier canal a través del cual es posible transmitir información prevista para uno o más dispositivos electrónicos conectados a dicho canal, posiblemente en modo de "difusión". Un canal compartido puede ser un bus, un canal de comunicación por línea eléctrica, un canal de radio u otro tipo de canal.
A continuación, en este documento se describen características y realizaciones y se describen adicionalmente en las reivindicaciones adjuntas, que son una parte integral de la presente descripción. La breve descripción anterior identifica características de las diversas realizaciones de la presente invención de tal manera que la presente descripción detallada puede entenderse mejor y que las presentes contribuciones a la técnica pueden apreciarse mejor. De manera evidente, existen otras características de la invención que se describirán más adelante y que se definirán en las reivindicaciones adjuntas. Con referencia a esto, antes de ilustrar las diferentes realizaciones de la invención en detalle, debe entenderse que las diversas realizaciones de la invención no se limitan en su aplicación a los detalles de construcción y a las disposiciones de componentes descritas en este documento o ilustradas en los dibujos. La invención puede tener otras realizaciones e implementarse y ponerse en práctica de diversas formas. Adicionalmente, debe entenderse que la fraseología y la terminología usada en este documento son solamente para propósitos de descripción y no debe interpretarse como limitante.
Los expertos en la materia, por lo tanto, entenderán que el concepto en el que se basa la descripción puede usarse fácilmente como una base para diseñar otras estructuras, otros métodos y/u otros sistemas para conseguir los diversos propósitos de la presente invención. Por lo tanto, es importante que las reivindicaciones se consideren comprensivas de esas construcciones equivalentes que no se alejan del espíritu y del alcance de la presente invención.
Breve descripción de los dibujos
Se obtendrá una comprensión más completa de las realizaciones ilustradas de la invención y de las muchas ventajas conseguidas cuando la invención anteriormente mencionada se entienda mejor con referencia a la descripción detallada que sigue en combinación con los dibujos adjuntos, en donde:
La Figura 1 muestra un diagrama de transmisión de archivos o programas desde un servidor a una pluralidad de dispositivos de acuerdo con la técnica anterior;
La Figura 2 muestra un diagrama de transmisión de archivos o programas desde una fuente de archivos a una pluralidad de dispositivos de acuerdo con el método descrito en este documento;
La Figura 3 muestra un diagrama de bloques de las operaciones realizadas por la fuente de archivos.
Descripción detallada de una realización
La descripción detallada de realizaciones ilustrativas que sigue se refiere a los dibujos adjuntos. Los mismos números de referencia en diferentes dibujos identifican elementos idénticos o similares. Además, los dibujos no están necesariamente a escala. Adicionalmente, la descripción detallada que sigue no limita la invención. En su lugar, el alcance de la invención se define mediante las reivindicaciones adjuntas.
A lo largo de toda la descripción, la referencia a "una realización" o "la realización" o "algunas realizaciones" significa que una característica, estructura o elemento particular descrito en relación con una realización se incluye en al menos una realización del objeto descrito. Por lo tanto, la expresión "en una realización" o "en la realización" o "en algunas realizaciones" en diversos puntos a lo largo de la descripción no se refiere necesariamente a la misma realización o realizaciones. Adicionalmente, las características, estructuras o elementos específicos pueden combinarse de cualquier forma adecuada en una o más realizaciones.
En lo sucesivo, se describe el método con referencia a un sistema en donde la transmisión de los archivos tiene lugar a través de un canal de transmisión que habilita la transmisión desde la fuente de archivos a un controlador, que, a continuación, transmite los datos a los dispositivos electrónicos individuales que son los receptores de los archivos a través de un canal compartido, por ejemplo, un bus compartido, preferentemente en modo de "difusión".
La Figura 2 muestra esquemáticamente y en forma de un diagrama de bloques un sistema para la transmisión de archivos, tales como software o firmware, desde una fuente de archivos 101 a una pluralidad de dispositivos. El número de referencia 103 indica un canal de transmisión genérico. El canal de transmisión puede ser cualquier canal, por ejemplo, la Internet. En la realización ilustrada, al canal de transmisión 103 se interconecta a un controlador 105. Este controlador recibe los datos transmitidos en el canal de transmisión 103 y transfiere los mismos, a través de un canal compartido, por ejemplo, un bus compartido, indicado genéricamente por el número de referencia 107, a una pluralidad de dispositivos electrónicos 110(1), 110(2), 110(j)... 110(n). En lo sucesivo, 110 indica genéricamente cualquiera de dichos dispositivos electrónicos, o el conjunto de dispositivos electrónicos.
Para los propósitos de la presente invención, el tipo de aparato que constituye la fuente de archivos 101 es irrelevante. Puede comprender cualquier arquitectura o estructura de hardware y/o software que es capaz de realizar las funciones descritas a continuación. El canal de transmisión 103 también puede ser cualquier canal. Para los propósitos de esta descripción, tanto los medios físicos de la propagación de datos, como el protocolo utilizado, tasa de bits, etc. son irrelevantes. También es irrelevante si el canal de transmisión está protegido o sin proteger. En lo sucesivo, se supondrá que el canal no está protegido, es decir, intrínsicamente no es seguro y, por lo tanto, es necesario transmitir los datos de forma encriptada por razones de seguridad.
El dispositivo electrónico 110 puede ser de cualquier tipo. Lo que importa es únicamente que tiene al menos un microcontrolador o microprocesador y que es capaz, por ejemplo, a través de un gestor de arranque, de realizar las operaciones y efectuar las funciones que se describirán a continuación.
Cada dispositivo electrónico 110 se asocia a al menos un código de identificador único, ID. En el diagrama de la Figura 2, IDj indica el código de identificador único genérico del dispositivo electrónico 110(j). El código de identificador único ID puede definirse por una secuencia de dígitos binarios. En lo sucesivo Did indica el tamaño en bytes del código de identificador único de un dispositivo electrónico genérico 110.
Además, se asocia un número aleatorio RNDj a cada dispositivo electrónico 110. El número aleatorio RNDj (posiblemente en combinación con otros parámetros) se usa para generar una contraseña o clave de encriptación Kj usable en combinación con un algoritmo de encriptación genérico C, para los propósitos que se clarificarán más adelante. En algunas realizaciones más simples, la clave de encriptación Kj del dispositivo 110(j) consiste en el propio número aleatorio RNDj . El número aleatorio RNDj no tiene ninguna correlación con el código de identificador único IDj del respectivo dispositivo electrónico 110j. Esto significa que es imposible obtener, a partir del código de identificador único IDj del j -ésimo dispositivo electrónico 110, la clave de encriptación Kj o el número RNDj asociado al mismo.
Los datos IDj y RNDj se almacenan ventajosamente en una memoria protegida e inaccesible del respectivo dispositivo electrónico 110(j).
El gestor de arranque de cada dispositivo 110 es capaz ventajosamente de recibir archivos, en particular firmware o software, por ejemplo, para actualizaciones. Además, el gestor de arranque es capaz convenientemente de desencriptar dicho archivo a través de un algoritmo conocido, es decir, es capaz de desencriptar un archivo que se transmite en formato encriptado.
Ventajosamente, la fuente de archivos 101 se asocia a una memoria 112 en la que pueden almacenarse los códigos de identificador únicos ID1, ID2, ... IDj ...IDn de los dispositivos electrónicos 110(1), 110(2), ...110(j)...1110(n) a los que puede solicitarse que la fuente de archivos 101 envíe archivos. A cada código de identificador único IDj del dispositivo electrónico genérico 110(j), en la memoria 112 se empareja el artículo de datos a partir del cual se obtiene la clave de encriptación. En el ejemplo ilustrado, este artículo de datos es el respectivo número aleatorio RNDj del dispositivo 110(j) identificado por el número de identificador IDj. En la práctica, a continuación, en la memoria 112 pueden almacenarse pares de datos (IDj ; RNDj), con j variable desde 1 a n, donde n es el número total de dispositivos electrónicos que pueden recibir archivos encriptados desde la fuente de archivos 101.
En el diagrama de la Figura 2 también se indica un bloque 113, que representa un registro de archivos, por ejemplo, software o firmware que la fuente de archivos 101 puede enviar a los dispositivos electrónicos 110. La fuente de archivos 101 se programa para encriptar los archivos a través de un algoritmo de encriptación genérico C.
El método usado para transferir datos, por ejemplo, firmware o software, a los dispositivos electrónicos individuales 110 se describirán ahora con referencia específica al caso de transmisión del mismo programa (es decir, un software o un firmware o más en general cualquier archivo a transferir a múltiples dispositivos), por ejemplo, una versión actualizada de una aplicación, a todos los dispositivos electrónicos 110. Debe entenderse que el método también puede usarse para actualizar únicamente algunos de los dispositivos electrónicos 110.
El método se muestra esquemáticamente en el diagrama de bloques de la Figura 3. La referencia Fw indica un programa genérico, por ejemplo, un firmware a encriptar. La primera etapa consiste en encriptar el programa FW a través de un algoritmo de encriptación genérico C y una clave de encriptación. La clave de encriptación, o contraseña, en lo sucesivo indicada como Ks puede generarse aleatoriamente para cada sesión de encriptación y transmisión, es decir, cada vez que un archivo debe transmitirse a uno o más dispositivos 110(j). En lo sucesivo, la clave de encriptación Ks se denomina "clave de sesión". El bloque 210 de la Figura 3 representa esquemáticamente la etapa de encriptar el firmware Fw a través del algoritmo C y la clave de sesión Ks . A partir de la encriptación, se obtiene un firmware encriptado indicado por C(Fw, Ks ) (bloque 220).
Usando un algoritmo de encriptación, que puede ser el mismo algoritmo de encriptación C, y las claves de encriptación Kj de cada dispositivo electrónico 110(j), a continuación se generan tantas claves de sesión encriptadas como dispositivos electrónicos 110 que tienen que recibir el software o firmware encriptado. En el ejemplo ilustrado, las claves de encriptación Kj de los dispositivos individuales se obtienen comenzando a partir de los números aleatorios RNDj almacenados en la memoria 112, estando cada número RNDj asociado a un respectivo dispositivo electrónico 110(j). En otras palabras, Kj = f(RNDj ). La memoria 112 también contiene, para cada dispositivo electrónico 110(j), el respectivo código de identificador único IDj , emparejado con el número aleatorio RNDj correspondiente. La operación de encriptar la clave de sesión Ks se representa esquemáticamente por el bloque 230. Cada clave de sesión Ks encriptada con la clave de encriptación Kj del dispositivo electrónico genérico 110(j) se indica por C(Ks , Kj ), véase el bloque 240 en la Figura 3, y se denomina "clave de sesión encriptada". Ya que en la memoria 112 el código de identificador único IDj se asocia a cada número aleatorio RNDj del respectivo j -ésimo dispositivo electrónico 110 al que debe transmitirse el archivo, cada clave de sesión encriptada C(Ks, Kj ) se empareja de nuevo con el código de identificador único IDj del respectivo j -ésimo dispositivo electrónico, cuya clave de encriptación Kj = f(RNDj ) se usó para generar la clave de sesión encriptada C(Ks , Kj ), como se muestra en el bloque 240. El código de identificador único IDj no se encripta y se transmite en claro.
Como se muestra esquemáticamente en el bloque posterior 250, para una sesión genérica de transmisión de un firmware genérico Fw, lo siguiente también se transmite en el canal de transmisión 103:
- el firmware Fw encriptado con la clave de sesión Ks: C(Fw, Ks ),
- una lista que contiene todos los pares formados por el código de identificador único IDj y clave de sesión encriptada relacionada, encriptada con la correspondencia de clave de encriptación Kj del dispositivo genérico 110(j): [IDj ; C(Ks, Kj )]. La lista contiene tanto pares como dispositivos electrónicos a actualizar.
Este flujo de datos puede transmitirse en el canal 103, que no está protegido y, por lo tanto, intrínsecamente no es seguro. Los únicos datos en claro son los códigos de identificador únicos IDj . Estos en conjunto no están correlacionados con respecto a las claves de encriptación Kj de los dispositivos electrónicos 110 y con la clave de sesión Ks . Los datos restantes (clave de sesión Ks y firmware Fw) se transmiten en versión encriptada. Sin conocer las claves de encriptación Kj de los dispositivos electrónicos y la clave de sesión Ks, es imposible desencriptar el firmware encriptado Fw.
El controlador 105 recibe este flujo de datos y transmite los mismos, por ejemplo, en modo de difusión, en el bus compartido 107. Todos los dispositivos electrónicos 110(1)...110(n) leen el mismo flujo de datos. Cada dispositivo electrónico al que se dirige el firmware identifica su propio código de identificador único IDj en el flujo de datos y, por lo tanto, puede extraer del flujo de datos la clave de sesión encriptada con su propia clave de encriptación Kj , es decir, el artículo de datos que en el diagrama de la Figura 3 se indica como C(Ks, Kj ). Ya que la clave de encriptación Kj del dispositivo electrónico 110(j), o el número aleatorio RNDj a partir del cual tiene que obtenerse la clave de encriptación Kj , se almacena por el gestor de arranque en un área protegida del dispositivo, el gestor de arranque del dispositivo electrónico es capaz de desencriptar la clave de sesión, usando el algoritmo de desencriptación C-1, obteniendo la clave de sesión Ks en claro:
Figure imgf000008_0001
en la que C-1 es la función o algoritmo de desencriptación que corresponde a la función o algoritmo de desencriptación C usado para encriptar la clave de sesión. El dispositivo genérico 110(j) en este punto es capaz, aplicando de nuevo el algoritmo de desencriptación C-1, de extraer la versión clara del firmware Fw a través de la clave de sesión Ks e instalar la misma en el dispositivo electrónico:
Por lo tanto, era posible transmitir el archivo encriptado únicamente una vez para un número n, que puede ser muy alto, de dispositivos electrónicos a actualizar. Para hacer esto, junto con el firmware encriptado, una secuencia de n claves de sesión encriptadas se transmitió con los respectivos códigos de identificador únicos, que habilitan que los dispositivos electrónicos individuales desencripten el firmware.
En lo sucesivo, se demuestra que el tamaño de los datos a transmitir, es decir, el tráfico de datos requerido, es mucho más pequeño de lo que se requeriría para transmitir n veces el archivo Fw encriptado cada vez con la clave de encriptación del dispositivo individual para el que se concibe el firmware.
Usando el mismo algoritmo de encriptación C, el tamaño del firmware encriptado resultante con la clave de sesión Ks es el mismo que el firmware resultante de la encriptación con la clave de encriptación Kj , del dispositivo 110(j) individual. El tamaño del archivo encriptado es
Dim(FW) = D = Dim(C(FW,KJ))=Dim(C(FW,Ksj) = DCF (6)
El tamaño de cada clave de sesión encriptada es
Dim(C(KS,Kj))= DP (7)
y claramente será igual para cada clave de encriptación Kj de cada dispositivo electrónico, porque las dimensiones de la Kj son las mismas y el algoritmo de encriptación permanece igual.
Por lo tanto, el tráfico en bytes Tc en el canal de comunicación será
Figure imgf000008_0002
en la que Did es el tamaño en bytes del código de identificador único de cada dispositivo electrónico 110. Como se define en la parte introductoria, Wc es el peso en bytes de un intercambio de datos en el canal de comunicación 103 entre la fuente de archivos 101 y el controlador 105. Posteriormente, el controlador 105 proporcionará el firmware encriptado, los códigos de identificador únicos y las claves de sesión encriptadas a los dispositivos electrónicos 110(j) a través del bus compartido 107 en modo de difusión. El tráfico en bytes Tb' en el bus compartido 107 vendrá dado por
Figure imgf000009_0001
en la que W b es el peso en bytes de un intercambio de datos en el bus compartido 107.
Estos datos de tráfico deben compararse ahora con lo que se habrían tenido en caso de una transmisión de acuerdo con la técnica anterior, en la que el mismo archivo encriptado o firmware se transmite tantas veces como dispositivos electrónicos para los que se concibe, encriptado cada vez con la clave de encriptación del dispositivo electrónico receptor.
Para determinar el tráfico en el canal de comunicación de servidor-controlador, se hacen las siguientes suposiciones:
• el firmware encriptado es 32 K, es decir, 32786 bytes,
• el tamaño del código de identificador único es 16 bytes,
• el tamaño de la clave de sesión encriptada o contraseña es 16 bytes.
El tráfico en el canal de transmisión 103 expresado en bytes será
Tc =n(DCF Wc ) = nDCF+nWc =32786 -n nWc (10)
de acuerdo con el método de la técnica anterior; en su lugar
T'c = Dcf n(Dm DP)+2Wc = 32786 + n(\6 16)+ 2WC (11)
usando el método descrito en este documento. Ahora se considerará la actualización de únicamente dos dispositivos electrónicos 110. Los dos valores Tc y T'c serán:
Tc = n{pcF WC) = nDCF + nWc = 32786 • n + nWc =
( 12 )
= 32786- 2 + 2WC = 65536 + 2WC
T'c = DCF+n(DID+DP)+2JVc =32786 n(l6 16) 2WC =
(13)
= 32786 2-32 2Wc = 32850 2Wc
Por lo tanto, incluso con solo 2 dispositivos electrónicos se ahorra el peso de casi todo un firmware y, por lo tanto, se ahorra un ancho de banda y tiempo de cálculo equivalentes. Si existen diez dispositivos a actualizar, los valores indicados anteriormente pasan a ser:
Tc = n{DCF + Wc ) = nDCF nWc = 32786 • n + nWc =
(14)
= 32786-10 + \0WC ='327860 + \0WC
y
T'c =Dcf n(DIO+DP)+2Wc =32786 «(16 16) + 2WC = _
= 32786+ 10-32 20^ =33106 2Pfc ( 1
De manera similar, se obtiene el mismo ahorro en el lado del bus compartido 107 con la adición de que los dispositivos también ahorrarían la carga de cálculo de recibir y descartar el firmware que no es para ellos con el coste de la búsqueda de su propia clave de encriptación en una lista y en una etapa de desencriptado adicional.
Hágase la suposición no real de que el peso de la comunicación en el canal de comunicación 103 es cero, es decir Wc = 0. Ya que en la técnica anterior este peso se añade para cada transacción, este análisis aún produce un resultado peor desde el punto de vista del nuevo método descrito en este documento.
Figure imgf000010_0001
Como es fácilmente evidente, la mejora que se obtiene tiende a ser proporcional al número de dispositivos electrónicos a actualizar.
Para un número de dispositivos electrónicos que tienden a infinito, se tiene
Figure imgf000010_0002
Este resultado conduce a las siguientes conclusiones sobre el nuevo enfoque frente a la técnica anterior:
• cuanto mayor es el número de dispositivos electrónicos a actualizar, más insignificante será el peso del firmware individual,
• cuanto mayor es el firmware, más insignificante es el peso del tamaño de la contraseña o clave de encriptación y del código de identificador único del dispositivo electrónico individual.
Finalmente, el método descrito en este documento es altamente efectivo para hacer eficiente la transferencia de un firmware o software de actualización o de un archivo genérico encriptado/codificado individualmente para una pluralidad de dispositivos. Esta técnica habilita
• mantener intacta la seguridad de la actualización tal y como se concibe por la empresa de fabricación,
• optimizar el intercambio de datos,
• obtener una mejora drástica con respecto al intercambio de datos, el tiempo de gestión de datos y la ocupación de ancho de banda,
• aumentar el rendimiento a medida que aumenta el número de dispositivos electrónicos a actualizar,
• minimizar la carga de cálculo de los dispositivos electrónicos que ya no están inundados por una miríada de actualizaciones muy grandes de ningún interés para los mismos,
• mejorar la utilización del bus compartido devolviendo al mismo a su uso primario, es decir, supervisar y controlar los dispositivos electrónicos, evitando que se sobrecargarse en caso de actualizaciones,
• mejorar la utilización del canal de comunicación de servidor-controlador, minimizando el tráfico. También debería considerarse que, frecuentemente, este es un canal costoso y el coste se basa habitualmente en el tráfico o en tiempo de conexión (por ejemplo, GPRS).
Estas ventajas se obtienen a cambio de un aumento de carga mínimo, que consta de:
• añadir un proceso de desencriptado por el dispositivo: recuperación de la clave de sesión,
• recibir y procesar la lista de las claves de sesión encriptadas.
Las realizaciones descritas anteriormente e ilustradas en los dibujos se han analizado en detalle como ejemplos de implementaciones prácticas de la invención. Los expertos en la materia entenderán que son posibles muchas modificaciones, variaciones, adiciones y omisiones, sin alejarse de los principios, a partir de los conceptos y de los contenidos de la presente invención como se define en las reivindicaciones adjuntas. Por lo tanto, el alcance de la invención debe determinarse solamente de acuerdo con la interpretación más amplia de las reivindicaciones adjuntas, incluyendo en la misma dichas modificaciones, variaciones, adiciones y omisiones. El término "comprender" y derivados del mismo no excluyen la presencia de elementos o etapas adicionales más allá de los específicamente listados en una reivindicación dada. El término "uno" o "un" o "una" que precede a un elemento, medio o característica de una reivindicación no excluye la presencia de una pluralidad de estos elementos, medios o características. Cuando una reivindicación de dispositivo lista una pluralidad de "medios", algunos o todos de tales "medios" pueden incorporarse por un único componente, miembro o estructura. La enunciación de elementos, características o medios determinados en reivindicaciones dependientes distintas no excluye la posibilidad de combinar mutuamente dichos elementos, características o medios. Cuando un método reivindicación lista una secuencia de etapas, la secuencia en la que se listan dichas etapas no es obligatoria, y puede modificarse, si la secuencia particular no se indica como obligatoria. Cualquier número de referencia en las reivindicaciones adjuntas se proporciona para facilitar la lectura de las reivindicaciones con referencia a la descripción y al dibujo, y no limitan el alcance de protección representado mediante las reivindicaciones.

Claims (8)

REIVINDICACIONES
1. Un método para transmitir un archivo (Fw) desde una fuente de archivos (101) a una pluralidad de dispositivos electrónicos (110(j)), estando una clave de encriptación (Kj ) y un código de identificador único (IDj ) asociados a cada dispositivo electrónico, en donde, para una sesión de transmisión de un archivo (Fw) se realizan las siguientes etapas:
^ se genera una clave de sesión (Ks );
^ la fuente de archivos (101) transmite a un controlador (105) a través de un canal de transmisión (103):
- un archivo encriptado (C(Fw, Ks )), encriptado por medio de la clave de sesión (Ks ), y
- una pluralidad de claves de sesión encriptadas (C(Ks, Kj )), en donde cada clave de sesión encriptada se empareja con un código de identificador único (IDj ) de un respectivo dispositivo electrónico (110(j)), con cuya clave de encriptación (Kj ) se obtuvo la respectiva clave de sesión encriptada (Ks);
^ el controlador (105) transmite el archivo encriptado (C(Fw, Ks)) y la pluralidad de claves de sesión encriptadas (C(Ks , Kj )) emparejadas con los respectivos códigos de identificador únicos (IDj ) a dicha pluralidad de dispositivos electrónicos (110(j)) a través de un canal de transmisión compartido (107) en modo de difusión; y
^ cada dispositivo electrónico (110(j)) que recibe el archivo encriptado y la pluralidad de claves de sesión encriptadas en el canal de transmisión compartido (107), desencripta su propia clave de sesión encriptada (C(Ks, Kj )) usando la respectiva clave de encriptación (Kj ) para obtener la clave de sesión desencriptada (Ks ), y desencripta el archivo encriptado (C(Fw; Ks)) por medio de la clave de sesión desencriptada (Ks ).
2. Método de acuerdo con la reivindicación 1, que comprende las etapas de:
- almacenar, en una memoria (112) accesible por dicha fuente de archivos (101), para cada dispositivo electrónico (110(j)), la clave de encriptación (Kj ) del respectivo dispositivo electrónico (110(j)) y el código de identificador único (IDj ) del dispositivo electrónico, emparejados entre sí;
- encriptar el archivo (Fw) a transmitir a través de un algoritmo de encriptación (C) usando dicha clave de sesión (Ks), generando por lo tanto dicho archivo encriptado (C(Fw; Ks ));
- para cada dispositivo electrónico (110(j)), encriptar la clave de sesión (Ks ) con la clave de encriptación (Kj ) asociada a dicho dispositivo electrónico (110(j)), obteniendo dicha pluralidad de claves de sesión encriptadas (C(Ks; Kj ));
- en cada uno de dichos dispositivos electrónicos (110(j)): identificar la clave de sesión encriptada (C(Ks; Kj )) asociada con el código de identificador único (IDj ) del dispositivo electrónico (110(hj)); desencriptar la clave de sesión encriptada (C(Ks, Kj ) por medio de la clave de encriptación (Kj ) del dispositivo electrónico (110(j)) para obtener la clave de sesión desencriptada (Ks ); desencriptar el archivo encriptado (C(Fw; Ks )) por medio de la clave de sesión desencriptada (Ks).
3. El método de acuerdo con la reivindicación 2, en donde dicha fuente de archivos (101) genera dichas claves de sesión encriptadas (C(Ks, Kj )) y combina con cada clave de sesión encriptada el código de identificador único (IDj ) que coincide con la clave de encriptación usada para obtener la clave de sesión encriptada por medio de los datos contenidos en dicha memoria (112).
4. El método de acuerdo con una o más de las reivindicaciones anteriores, en donde para cada archivo a transmitir se genera una nueva clave de sesión (Ks).
5. Un sistema para transmitir un archivo (Fw) a una pluralidad de dispositivos electrónicos (110(j)), en donde un código de identificador único (IDj ) y una clave de encriptación (Kj ) se asocian a cada uno de dichos dispositivos electrónicos; comprendiendo dicho sistema: una fuente de archivos (101); una pluralidad de dispositivos electrónicos (110(j)); un canal de conexión (103) que conecta la fuente de archivos (101) a un controlador (103) para transmitir datos desde dicha fuente de archivos (101) al controlador (105); y un canal compartido (107) que conecta dicho controlador (105) a dichos dispositivos electrónicos (110(j));
en donde dicha fuente de archivos (101) se programa: para generar un archivo (C(Fw; Ks )) encriptado por medio de una clave de sesión (Ks ); una pluralidad de claves de sesión encriptadas (C(Ks; Kj )), obteniendo cada una encriptando la clave de sesión (Ks ) con la clave de encriptación (Kj) de uno respectivo de dichos dispositivos electrónicos (110(j)); para crear una lista de dichas claves de sesión encriptadas (C(Ks; Kj )), cada una emparejada con el código de identificador único (IDj ) del dispositivo electrónico (110(j)), a través de cuya clave de encriptación (Kj) se encriptó la clave de sesión (Ks); y para transmitir dicha lista de claves de sesión encriptadas (C(Ks; Kj )) y dicho archivo encriptado (C(Fw; Ks)) a dicho controlador (105) a través del canal de conexión (103); en donde el controlador (105) está configurado para transmitir la lista de claves de sesión encriptadas (C(Ks ; Kj )) emparejadas con los códigos de identificador únicos (IDj ) y dicho archivo encriptado (C(Fw; Ks)) a los dispositivos electrónicos (110(j)) a través del canal compartido (107) en un modo de difusión; y
en donde cada dispositivo electrónico (110(j)) se programa para: desencriptar su propia clave de sesión encriptada (C(Ks, Kj )) usando su propia clave de encriptación (Kj ), para obtener la clave de sesión desencriptada (Ks); y para desencriptar el archivo encriptado por medio de la clave de sesión desencriptada.
6. El sistema de acuerdo con la reivindicación 5, que comprende una memoria (112), accesible por la fuente de archivos (101), en la que se almacenan datos para obtener dichas claves de encriptación (Kj ) de los dispositivos electrónicos (110(j)), cada una emparejada con el código de identificador único (IDj ) del dispositivo electrónico correspondiente (110(j)).
7. El sistema de acuerdo con la reivindicación 5 o 6, en donde dicha fuente de archivos (101) se programa para generar una clave de sesión (Ks ) que no se correlaciona con las claves de encriptación (Kj ) de dichos dispositivos electrónicos (110(j)).
8. El sistema de acuerdo con la reivindicación 5 o 6 o 7, en donde cada uno de dichos dispositivos electrónicos (110(j)) comprende un gestor de arranque.
ES12735340T 2012-05-29 2012-05-29 Un método y sistema para transferir firmware o software a una pluralidad de dispositivos Active ES2863678T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IT2012/000158 WO2013179316A1 (en) 2012-05-29 2012-05-29 A method and system for transferring firmware or software to a plurality of devices

Publications (1)

Publication Number Publication Date
ES2863678T3 true ES2863678T3 (es) 2021-10-11

Family

ID=46513804

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12735340T Active ES2863678T3 (es) 2012-05-29 2012-05-29 Un método y sistema para transferir firmware o software a una pluralidad de dispositivos

Country Status (5)

Country Link
US (1) US9425956B2 (es)
EP (1) EP2856695B1 (es)
CN (1) CN104396183B (es)
ES (1) ES2863678T3 (es)
WO (1) WO2013179316A1 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2991314A1 (en) * 2014-08-25 2016-03-02 Gemalto SA Method and first device for loading an application
CN104811484B (zh) * 2015-04-09 2019-06-21 努比亚技术有限公司 Fota升级方法和装置
CN105024827A (zh) * 2015-08-25 2015-11-04 苏州科贝尔实业有限公司 一种对终端设备进行数字权限管理的系统及方法
US10021021B2 (en) 2015-12-22 2018-07-10 T-Mobile Usa, Inc. Broadband fallback for router
US9998285B2 (en) * 2015-12-22 2018-06-12 T-Mobile Usa, Inc. Security hardening for a Wi-Fi router
CN106850195B (zh) * 2016-04-18 2020-05-19 中国科学院信息工程研究所 一种即时通信中群组密钥协商与通信方法
CN106022014A (zh) * 2016-05-16 2016-10-12 武汉斗鱼网络科技有限公司 一种资源文件的打包方法和解包方法
MX2018014296A (es) * 2016-05-24 2019-03-14 Arris Entpr Llc Mecanismo de distribucion de software encriptado eficiente.
DE102016009439A1 (de) * 2016-08-03 2018-02-08 Giesecke+Devrient Mobile Security Gmbh Individuelles Verschlüsseln von Steuerbefehlen
CN108270561B (zh) * 2017-01-04 2021-08-13 阿里巴巴集团控股有限公司 数据发送方法及装置、密钥索引的生成方法及装置
CN106888206B (zh) * 2017-02-13 2020-06-09 海信集团有限公司 密钥交换方法、装置及系统
CN109495527B (zh) * 2017-09-12 2021-11-02 北京普源精电科技有限公司 一种示波器的升级方法及示波器
CN109495532A (zh) * 2017-09-13 2019-03-19 北京京东尚科信息技术有限公司 客户端更新方法和装置
CN108256342B (zh) * 2018-01-12 2020-05-12 武汉斗鱼网络科技有限公司 Shader文件的加密方法、装置及解密方法、装置
CN108256343B (zh) * 2018-01-12 2020-05-12 武汉斗鱼网络科技有限公司 Shader文件的加密方法、装置及解密方法、装置
CN110176988B (zh) * 2019-04-25 2022-04-08 中国人民解放军战略支援部队信息工程大学 保证冗余执行体加密行为一致的装置及方法
CN113806774B (zh) * 2021-09-15 2024-02-13 惠州市德赛电池有限公司 加密方法、解密方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416840A (en) * 1993-07-06 1995-05-16 Phoenix Technologies, Ltd. Software catalog encoding method and system
EP2955652A1 (en) * 2000-06-16 2015-12-16 MIH Technology Holdings BV Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (drm)
US7039803B2 (en) * 2001-01-26 2006-05-02 International Business Machines Corporation Method for broadcast encryption and key revocation of stateless receivers
CA2487319C (en) * 2002-06-07 2009-01-06 General Instrument Corporation Seamless switching between multiple pre-encrypted video files
US20040059939A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc., A Delaware Corporation Controlled delivery of digital content in a system for digital content access control
US8132024B2 (en) * 2003-03-11 2012-03-06 Panasonic Corporation Digital work protection system, recording apparatus, reproduction apparatus, and recording medium
CN1894884A (zh) * 2003-12-17 2007-01-10 松下电器产业株式会社 内容分发服务器、密钥分配方法、内容输出设备及密钥发布中心
KR100670010B1 (ko) * 2005-02-03 2007-01-19 삼성전자주식회사 하이브리드 브로드캐스트 암호화 방법
FI20050393A0 (fi) * 2005-04-15 2005-04-15 Nokia Corp Avainmateriaalin vaihto
US9003173B2 (en) * 2007-09-28 2015-04-07 Microsoft Technology Licensing, Llc Multi-OS (operating system) boot via mobile device
WO2009074941A1 (en) * 2007-12-12 2009-06-18 Koninklijke Philips Electronics N.V. Device keys for nnl encryption of software update applications
US20090180617A1 (en) * 2008-01-10 2009-07-16 General Instrument Corporation Method and Apparatus for Digital Rights Management for Removable Media
US8712056B2 (en) * 2010-06-03 2014-04-29 At&T Intellectual Property I, L.P. Secure mobile ad hoc network

Also Published As

Publication number Publication date
CN104396183B (zh) 2017-09-22
WO2013179316A1 (en) 2013-12-05
EP2856695A1 (en) 2015-04-08
EP2856695B1 (en) 2021-01-13
US20150222426A1 (en) 2015-08-06
US9425956B2 (en) 2016-08-23
CN104396183A (zh) 2015-03-04

Similar Documents

Publication Publication Date Title
ES2863678T3 (es) Un método y sistema para transferir firmware o software a una pluralidad de dispositivos
US10873465B2 (en) Control mechanisms for data processing devices
US9860718B2 (en) Secure broadcast beacon communications
CN106471768B (zh) 用于建立安全通信信道的方法和装置
EP3308522B1 (en) System, apparatus and method for multi-owner transfer of ownership of a device
KR101684076B1 (ko) 사물인터넷에서 스마트 디바이스 또는 스마트 센서와 네트워크 게이트웨이 사이의 안전한 데이터 전달을 위한 통신 시스템
TWI567579B (zh) 用於對硬體裝置提供金鑰的方法和設備
JP2005530368A5 (es)
US20130070925A1 (en) Communication device, recording medium, and method thereof
US20080184341A1 (en) Master-Slave Protocol for Security Devices
TW201010370A (en) Integrated cryptographic security module for a network node
US20160323100A1 (en) Key generation device, terminal device, and data signature and encryption method
US10715332B2 (en) Encryption for transactions in a memory fabric
CN103686717A (zh) 一种物联网传感系统的密钥管理方法
EP3282737B1 (en) Information processing device, authentication device, system, information processing method, program, and authentication method
US20170213054A1 (en) Secure transactions in a memory fabric
Tan et al. A remote attestation protocol with Trusted Platform Modules (TPMs) in wireless sensor networks.
KR20150135032A (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
KR20130085535A (ko) 어플리케이션의 변조 방지 장치 및 검증 장치
CN101252432B (zh) 一种基于域的数字权限管理方法、域管理服务器及系统
JP6693577B2 (ja) 暗号鍵配信システム、鍵配信ecu、鍵配信プログラム、及び暗号鍵配信方法
ES2963922T3 (es) Instalación segura de claves de aplicación
JP5223860B2 (ja) 時刻情報配信システム、時刻配信局、端末、時刻情報配信方法及びプログラム
US9825920B1 (en) Systems and methods for multi-function and multi-purpose cryptography
JP6939313B2 (ja) 分散認証システム