ES2890399T3 - Arranque seguro de módulos de núcleo - Google Patents

Arranque seguro de módulos de núcleo Download PDF

Info

Publication number
ES2890399T3
ES2890399T3 ES18769211T ES18769211T ES2890399T3 ES 2890399 T3 ES2890399 T3 ES 2890399T3 ES 18769211 T ES18769211 T ES 18769211T ES 18769211 T ES18769211 T ES 18769211T ES 2890399 T3 ES2890399 T3 ES 2890399T3
Authority
ES
Spain
Prior art keywords
kernel module
kernel
computer
module
hash
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
ES18769211T
Other languages
English (en)
Inventor
Vico Jesús Diaz
Molina Javier Moreno
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.)
Banco Bilbao Vizcaya Argentaria SA
Original Assignee
Banco Bilbao Vizcaya Argentaria SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Banco Bilbao Vizcaya Argentaria SA filed Critical Banco Bilbao Vizcaya Argentaria SA
Application granted granted Critical
Publication of ES2890399T3 publication Critical patent/ES2890399T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Storage Device Security (AREA)

Abstract

Un método implementado por ordenador (102) para actualizar de manera segura un módulo de núcleo actualizado de manera segura (3.4'') de un dispositivo electrónico (200) que evita la intervención del desarrollador de núcleo, en el que el dispositivo electrónico (200) comprende un sistema operativo y una estructura de núcleo autenticada (1), comprendiendo la estructura de núcleo autenticada (1) - metadatos de núcleo (2) que comprenden al menos una clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4) de al menos un módulo de núcleo (3.1, 3.2, 3.3, 3.4), en el que cada clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4) corresponde a una clave privada de módulo de núcleo, siendo las claves pública y privada de módulo de núcleo correspondientes un par de claves de módulo de núcleo, y un hash raíz de módulo de núcleo (2.5) que comprende un hash raíz de un árbol de Merkle (10), - datos de núcleo (3) que comprenden datos de cuerpo de núcleo (3'), al menos un módulo de núcleo (3.1, 3.2, 3.3, 3.4), en el que un módulo de núcleo (3.1, 3.2, 3.3, 3.4) está asociado con un par de claves de módulo de núcleo, - firma de metadatos de núcleo (4), - firma de datos de cuerpo de núcleo (5), en el que el método comprende las siguientes etapas, a) proporcionar mediante un ordenador (100) un módulo de núcleo actualizado de manera segura generado según el siguiente método implementado por ordenador (101), i) insertar (12) mediante un ordenador (100) un hash camaleón (8.4) de un módulo de núcleo (3.4), una clave privada de módulo de núcleo del módulo de núcleo (3.4) y un módulo de núcleo actualizado (3.4') del módulo de núcleo (3.4) en una función de colisión de hash camaleón obteniendo así unos datos de colisión (13), en el que el hash camaleón (8.4) es un nodo de hoja del árbol de Merkle (10) y los datos de colisión (13) son de tal manera que cuando se combinan los datos de colisión con el módulo de núcleo actualizado (3.4') y se aplica un algoritmo hash a dicha combinación usando una función hash camaleón (ChamHash), el resultado es igual al hash camaleón (8.4) del módulo de núcleo (3.4), ii) combinar (14) mediante el ordenador (100), el módulo de núcleo actualizado (3.4') con los datos de colisión (13) obteniendo así un módulo de núcleo actualizado de manera segura (3.4''). b) enviar (15) mediante el ordenador (100) el módulo de núcleo actualizado de manera segura (3.4'') al dispositivo electrónico (200), - insertar (18) de manera exclusivamente interna mediante el dispositivo electrónico (200) el módulo de núcleo actualizado de manera segura (3.4''), la clave pública de módulo de núcleo correspondiente (2.4) y un hash camaleón (8.4) del módulo de núcleo (3.4) en una función de verificación de hash camaleón obteniendo así un hash de prueba (19), - si el hash de prueba (19) es diferente del hash camaleón (8.4) del módulo de núcleo (3.4), notificar al sistema operativo del dispositivo electrónico (200) que la actualización de manera segura de un módulo de núcleo es inválida, - si el hash de prueba (19) es igual al hash camaleón (8.4) del módulo de núcleo (3.4), notificar (20) al sistema operativo del dispositivo electrónico (200) que la actualización de manera segura de un módulo de núcleo es válida, y continuar con la etapa c), c) instalar (16) de manera exclusivamente interna mediante el dispositivo electrónico (200) el módulo de núcleo actualizado de manera segura (3.4'') en los datos de núcleo (3) actualizando el módulo de núcleo (3.4).

Description

DESCRIPCIÓN
Arranque seguro de módulos de núcleo
Campo técnico de la invención
La presente invención pertenece al campo técnico de la actualización de módulos de núcleo en un núcleo de un sistema operativo. Particularmente, se refiere a la delegación autenticada de actualizaciones de módulo de núcleo. Más particularmente, la invención se refiere a un método para proporcionar un módulo de núcleo actualizado de manera segura en el que terceros de confianza pueden actualizar de manera segura dicho módulo de núcleo sin la intervención del desarrollador de núcleo.
Antecedentes de la invención
Los dispositivos electrónicos actuales implementan procedimientos de arranque seguro para garantizar que el estado del dispositivo, tras el arranque, pueda ser de confianza. Esto incluye verificar el sistema mínimo de arranque, módulos de firmware y módulos de núcleo mediante mecanismos criptográficos.
Normalmente, el dispositivo electrónico tiene una clave pública raíz escrita en un área de solo lectura de la memoria. Esta clave pública raíz se usa para verificar firmas de los módulos de firmware instalados en el dispositivo electrónico, que a su vez incluyen la parte pública de una clave adicional, la clave privada de núcleo que se usa para firmar el núcleo. Las firmas resultantes se escriben en la parte de lectura-escritura de la memoria del dispositivo electrónico.
La clave privada asociada con la clave pública raíz se controla habitualmente mediante el fabricante de equipos originales, OEM, o proveedor de dispositivo y la clave privada usada para firmar el núcleo se controla por el desarrollador de firmware, quien puede ser o no la misma entidad que el OEM o proveedor de dispositivo. Por tanto, durante el arranque seguro, verificar que las firmas de núcleo y firmware son correctas es suficiente para comprobar que no se han manipulado de manera indebida los componentes de firmware y núcleo del dispositivo.
En este contexto, cualquier modificación realizada al núcleo necesita firmarse con la clave privada de núcleo. Específicamente, los módulos de núcleo proporcionan funcionalidades potenciadas al dispositivo, que muchas veces se desarrollan por terceros, que también es necesario que respeten este requisito. Este procedimiento obliga a que estos terceros sigan estrictamente el ciclo de desarrollo del desarrollador de núcleo, no pudiendo emitir actualizaciones de sus módulos respectivos cuando se necesita, aunque estas actualizaciones resuelvan problemas de seguridad importantes.
“Group-Based Attestation: Enhancing Privacy and Management in Remote Attestation” da a conocer un método de certificación que usa una plataforma remota. La solicitud de patente europea EP 2157725 A1 da a conocer un aparato de protección de contenido y un aparato de utilización de contenido. “Tree-formed Verification Data for Trusted Platforms” da a conocer un método para crear datos de verificación formados en árbol. La solicitud de patente US 2014/0365026 A1 da a conocer un aparato y un método de generación de firma.
El documento US 20110131447 A1 da a conocer un método para actualizar automáticamente firmware sin la intervención del usuario del dispositivo electrónico. Dado que la única parte que se permite que actualice el firmware es el desarrollador de núcleo, cualquier actualización que se haya realizado por cualquier tercero debería enviarse al desarrollador de núcleo. Por tanto, todavía se requiere la intervención del desarrollador de núcleo con el fin de proporcionar un firmware seguro, lo cual retrasa cualquier arreglo de actualización de seguridad importante.
Por tanto, existe una necesidad de un método que aumente la eficiencia y la agilidad de actualización de los módulos de núcleo en un dispositivo electrónico.
Sumario de la invención
La presente invención proporciona una solución alternativa para los problemas mencionados anteriormente, mediante un método implementado por ordenador para actualizar de manera segura al menos un módulo de núcleo de un dispositivo electrónico según la reivindicación 1, un sistema para actualizar de manera segura al menos un módulo de núcleo según la reivindicación 9, un programa informático según la reivindicación 10 y un medio legible por ordenador según la reivindicación 11. En reivindicaciones dependientes se definen realizaciones preferidas de la invención.
En un primer aspecto inventivo, la invención proporciona un método implementado por ordenador para proporcionar un módulo de núcleo actualizado de manera segura de un dispositivo electrónico, en el que el dispositivo electrónico comprende un sistema operativo y una estructura de núcleo autenticada, comprendiendo la estructura de núcleo autenticada
- metadatos de núcleo que comprenden
al menos una clave pública de módulo de núcleo de al menos un módulo de núcleo, en el que cada clave pública de módulo de núcleo corresponde a una clave privada de módulo de núcleo, siendo las claves pública y privada de módulo de núcleo correspondientes un par de claves de módulo de núcleo, y
un hash raíz de módulo de núcleo que comprende un hash raíz de un árbol de Merkle,
- datos de núcleo que comprenden
datos de cuerpo de núcleo,
al menos un módulo de núcleo, en el que un módulo de núcleo está asociado con un par de claves de módulo de núcleo,
- firma de metadatos de núcleo,
- firma de datos de cuerpo de núcleo,
en el que el método comprende las siguientes etapas:
i) insertar mediante un ordenador un hash camaleón de un módulo de núcleo, una clave privada de módulo de núcleo del módulo de núcleo y un módulo de núcleo actualizado del módulo de núcleo en una función de colisión de hash camaleón obteniendo así unos datos de colisión,
en el que los datos de colisión son tales que cuando se combinan los datos de colisión con el módulo de núcleo actualizado y se aplica un algoritmo hash a dicha combinación usando una función hash camaleón, el resultado es igual al hash camaleón del módulo de núcleo,
ii) combinar mediante el ordenador, el módulo de núcleo actualizado con los datos de colisión obteniendo así un módulo de núcleo actualizado de manera segura.
La estructura de núcleo autenticada es una estructura de núcleo que comprende instrucciones que permiten hacer funcionar los elementos de hardware y software de un dispositivo electrónico. Dependiendo del tipo de dispositivo electrónico, el número de módulos de núcleo puede variar y, en consecuencia, también puede variar el número de claves públicas de módulo de núcleo. La estructura de núcleo se autentica cuando se ha verificado la fuente de sus elementos.
A lo largo de este documento, “dispositivo electrónico” se entenderá como cualquier dispositivo configurado para hacer funcionar un sistema operativo tal como un dispositivo móvil, un ordenador, servidor, teléfono inteligente, ordenador tipo tableta, PDA, etc. El dispositivo electrónico comprende un sistema operativo que está configurado para gestionar el hardware comprendido en el dispositivo electrónico y para gestionar los datos usados por dicho hardware. Adicionalmente, se entenderá el módulo de núcleo como un programa informático configurado para controlar funcionalidades de hardware de un dispositivo electrónico.
Como cualquier programa informático, el módulo de núcleo puede tener actualizaciones o versiones adicionales. Por tanto, a lo largo de este documento, “módulo de núcleo actualizado” se entenderá como una nueva versión de una versión anterior de un módulo de núcleo.
Los metadatos de núcleo comprenden una clave pública que está relacionada con al menos un ordenador. El ordenador puede ser un tercero que desarrolla firmware o actualiza el módulo de núcleo. El ordenador puede ser adicionalmente un servidor o un segundo dispositivo electrónico en el que se almacena y/o actualiza y comprende además la nueva versión del módulo de núcleo y su clave privada de correspondencia. El al menos un ordenador es un elemento diferente del desarrollador de núcleo y el fabricante de equipos originales.
Cada clave pública de módulo de núcleo está relacionada con cada módulo de núcleo comprendido en los datos de núcleo. Por ejemplo, el módulo de núcleo de pantalla controla las funciones de la pantalla del dispositivo electrónico y está relacionado únicamente con una clave pública de módulo de núcleo, es decir, con una clave pública de módulo de núcleo de pantalla. Cada clave pública de módulo de núcleo tiene una clave privada de módulo de núcleo correspondiente que, a su vez, está relacionada con el ordenador, conocido como par de claves de módulo de núcleo que forman un criptosistema asimétrico. Como criptosistema asimétrico, debe entenderse un criptosistema en el que la clave privada se mantiene privada mediante el ordenador y la clave pública es pública y puede almacenarse en la estructura de núcleo autenticada.
En una realización, los metadatos de núcleo comprenden una pluralidad de claves públicas de módulo de núcleo y las claves públicas de módulo de núcleo pueden estar relacionadas únicamente con un ordenador. En esta realización, el ordenador está configurado para almacenar y/o actualizar los módulos de núcleo que están relacionados con las claves públicas de módulo de núcleo, y el ordenador tiene el par de claves de módulo de núcleo correspondiente a dicho módulo de núcleo. En otra realización, hay una pluralidad de ordenadores de los que cada ordenador puede comprender una pluralidad de claves privadas de módulo de núcleo. Como cada clave privada/pública de módulo de núcleo está relacionada con un módulo de núcleo, cada ordenador está configurado para almacenar y/o actualizar los módulos de núcleo que están relacionados con las claves públicas de módulo de núcleo.
En una realización, el ordenador comprende el módulo de núcleo, su módulo de núcleo actualizado, el hash camaleón del módulo de núcleo y la clave privada de módulo de núcleo, en el que por módulo de núcleo actualizado debe entenderse una nueva versión del módulo de núcleo. En esta realización, el ordenador es la misma entidad que produce la nueva versión del módulo de núcleo, es decir, el ordenador es desarrollador del módulo de núcleo. En este caso, el ordenador comprende normalmente todas las versiones que se han desarrollado y también puede calcular cualquier hash camaleón porque se ha recibido el par de claves de módulo de núcleo del desarrollador de núcleo o el OEM. En otra realización, el ordenador genera el par de claves de módulo de núcleo que se aceptan por el desarrollador de núcleo o el OEM.
En otra realización, el método implementado por ordenador comprende una etapa anterior antes de la etapa i) de recibir un módulo de núcleo, su módulo de núcleo actualizado, el hash camaleón del módulo de núcleo y la clave privada del módulo de núcleo.
El hash raíz de módulo de núcleo es un hash raíz de un árbol de Merkle. Adicionalmente, el hash raíz de módulo de núcleo se obtiene a partir de los datos de núcleo; en consecuencia, se detectará cualquier modificación ilegítima del módulo de núcleo, ya que hará que la firma de núcleo sea inválida debido a las propiedades de funciones hash criptográficas y a la construcción de un árbol de Merkle. Por tanto, cada hash camaleón es un nodo hoja del árbol de Merkle.
En primer lugar, el método implementado por ordenador inserta en una función de colisión de hash camaleón el módulo de núcleo actualizado, el hash camaleón de la versión anterior del módulo de núcleo y la clave privada de módulo de núcleo correspondiente a dicho módulo de núcleo. El módulo de núcleo actualizado es una nueva versión del módulo de núcleo de los datos de núcleo. La nueva versión puede resolver errores de seguridad o puede potenciar una determinada función del dispositivo electrónico.
La función de colisión de hash camaleón está configurada para encontrar unos datos de colisión. En el contexto de la invención, un hash criptográfico es una función criptográfica que transforma de manera determinista datos de longitud arbitraria en mensajes al azar de longitud fija. Las funciones hash criptográficas son unidireccionales, es decir, es inabordable mediante cálculo recuperar el parámetro usado en una ejecución de la función hash cuando solo se facilita el resultado de aplicar la función hash a ese parámetro. Tampoco puede abordarse mediante cálculo encontrar dos parámetros diferentes que produzcan el mismo resultado. Unos datos de colisión se producen cuando se usan dos o más datos diferentes como entradas para una función hash criptográfica, producen el mismo resultado al que se ha aplicado un algoritmo hash.
En un sistema de hash camaleón, cada entidad tiene un par de claves pública y privada. Por entidad debe entenderse cualquier ordenador o parte implicado en el procedimiento de actualización de un módulo de núcleo. Un hash camaleón siempre está asociado con un par de claves de módulo de núcleo. Dada una clave pública, cualquiera puede calcular un hash camaleón que puede verificarse que es válido con esa clave pública. El dueño de la clave privada correspondiente puede calcular colisiones arbitrarias para cualquier hash que se haya calculado con su clave pública, independientemente de si ha sido él realmente quien ha calculado el hash o no.
Ventajosamente, debido a las propiedades del hash camaleón una función hash criptográfica está asociada con un par de claves pública-privada. Cualquier entidad con acceso a la clave pública puede emitir y verificar hashes camaleón. Solo el dueño de la clave privada puede encontrar colisiones arbitrarias de un mensaje, dado un hash camaleón del mensaje con esa clave privada.
Por tanto, cuando el ordenador inserta los datos de núcleo de módulo actualizados, el hash camaleón del módulo de núcleo recibido, y la clave privada correspondiente a los datos de módulo en una función de colisión de hash camaleón, la función de colisión de hash camaleón calcula unos datos de colisión. Cuando se combinan los datos de colisión con los datos de núcleo de módulo actualizados y se aplica un algoritmo hash a dicha combinación usando una función hash camaleón, el resultado es igual al hash camaleón del módulo de núcleo, es decir, un hash camaleón que es correspondiente al resultado de aplicar un algoritmo hash al módulo de núcleo y la clave pública de módulo de núcleo correspondiente usando dicha función hash camaleón. Por tanto, dos datos diferentes, los datos de núcleo de módulo actualizados y los datos de núcleo de módulo, producen el mismo resultado al que se ha aplicado un algoritmo hash. Debido a esto, las firmas de núcleo y firmware no cambian y el módulo de núcleo puede instalarse sin ninguna intervención del desarrollador de núcleo.
Finalmente, se combinan los datos de colisión con los datos de núcleo de módulo actualizados obteniendo un módulo de núcleo actualizado de manera segura. La combinación en la etapa ii) proporciona un elemento, el módulo de núcleo actualizado de manera segura, que comprende la nueva versión del módulo de núcleo y los datos de colisión. En una realización, la combinación se realiza fusionando los datos de núcleo de módulo actualizados y los datos de colisión, según el algoritmo de búsqueda de colisión definido por el sistema hash camaleón.
La presente invención evita la intervención del desarrollador de núcleo manteniendo la seguridad del procedimiento de actualización de los módulos de núcleo.
Ventajosamente, empresas de desarrollo de firmware terceras legítimas, es decir, el ordenador del método, pueden seguir sus propios procedimientos para actualizar sus módulos de firmware en los dispositivos electrónicos. Esto puede dar como resultado un procedimiento más ágil que pone a disposición las versiones más recientes de cada módulo de firmware a un ritmo mucho más rápido. Esto es relevante desde un punto de vista de la seguridad, ya que estas actualizaciones resuelven muchas veces importantes errores de seguridad. Además, el método reduce la sobrecarga del fabricante de equipos originales, quien puede delegar estas tareas de manera segura y modular. Además, el fabricante de equipos originales puede revocar estas capacidades en cualquier momento si considera que un tercero, aunque esté autorizado, no está aplicando procedimientos que cumplen con los requisitos del fabricante de equipos originales eliminando la clave pública de dicho tercero de la estructura de núcleo autenticada.
Según el párrafo anterior, es claro que los pasos i) y ii) del método de la invención se realizan de manera exclusivamente interna en el dispositivo electrónico, es decir, se realizan “offline” sin llevar a cabo una comunicación fuera de dicho dispositivo.
En una realización particular, la función de colisión de hash camaleón comprende una función hash camaleón sin exposición de clave.
En una realización particular, el ordenador comprende un par de claves de módulo de núcleo.
En un segundo aspecto inventivo, la invención proporciona un método implementado por ordenador para actualizar de manera segura al menos un módulo de núcleo de un dispositivo electrónico, en el que el dispositivo electrónico comprende un sistema operativo y una estructura de núcleo autenticada. La estructura de núcleo autenticada comprende los mismos elementos descritos en el primer aspecto inventivo.
El método implementado por ordenador para actualizar de manera segura al menos un módulo de núcleo del dispositivo electrónico comprende las siguientes etapas,
a) proporcionar mediante un ordenador un módulo de núcleo actualizado de manera segura generado según el método implementado por ordenador según cualquiera de las realizaciones del primer aspecto de la invención,
b) enviar mediante el ordenador el módulo de núcleo actualizado de manera segura al dispositivo electrónico, c) instalar mediante el dispositivo electrónico el módulo de núcleo actualizado de manera segura en los datos de núcleo actualizando el módulo de núcleo.
El módulo de núcleo actualizado de manera segura se proporciona según el método implementado por ordenador según cualquiera de las realizaciones del primer aspecto de la invención. Debido a las propiedades de la función de colisión camaleón usada y los datos de colisión comprendidos en el módulo de núcleo actualizado de manera segura, la instalación del módulo de núcleo actualizado de manera segura no cambiará el hash raíz de módulo de núcleo. Ventajosamente, la tasa de actualización de los datos de núcleo se potencia aumentando la seguridad de la estructura de núcleo porque cualquier error de seguridad se resuelve rápidamente. Como se indicó anteriormente, cada hash camaleón es un nodo de hoja del árbol de Merkle.
En una realización particular, en una etapa anterior antes de la etapa a), el método comprende las siguientes etapas: - generar mediante el ordenador al menos un par de claves de módulo de núcleo,
- enviar mediante el ordenador la al menos una clave pública de módulo de núcleo al dispositivo electrónico, - enviar mediante el ordenador la al menos una clave privada de módulo de núcleo a al menos una entidad externa, y, - recibir y almacenar mediante la al menos una entidad externa, la al menos una clave privada de módulo de núcleo, - recibir y almacenar mediante el dispositivo electrónico, la al menos una clave pública de módulo de núcleo.
Ventajosamente, esta realización permite al ordenador delegar a otras entidades externas la capacidad de proporcionar actualizaciones seguras al dispositivo electrónico, reduciendo la sobrecarga del fabricante de equipos originales.
En una realización particular, en una etapa anterior antes de la etapa a), el método comprende las siguientes etapas: - generar mediante una entidad externa al menos un par de claves de módulo de núcleo,
- enviar mediante la entidad externa la al menos una clave pública de módulo de núcleo al dispositivo electrónico, - enviar mediante la entidad externa la al menos una clave privada de módulo de núcleo al ordenador, y
- recibir y almacenar mediante el ordenador, la al menos una clave pública de módulo de núcleo,
- recibir y almacenar mediante el ordenador, la al menos una clave privada de módulo de núcleo.
Ventajosamente, estas realizaciones permiten delegar la asignación de entidades externas de confianza a los elementos de confianza que se permiten que actualicen al menos un módulo de núcleo. En una realización, el elemento de confianza es el ordenador, que tiene la clave privada de módulo de núcleo correspondiente a la clave pública de módulo de núcleo. En otra realización, el elemento de confianza es una entidad externa tal como el desarrollador de núcleo o el fabricante de equipos originales. Por tanto, en una situación crítica, es decir, cuando debe resolverse un error de seguridad, el elemento de confianza es capaz de delegar o distribuir la tarea a otras entidades externas aumentando la capacidad de resolver dicho error de seguridad, reduciendo el tiempo de respuesta, y en consecuencia, aumenta la seguridad de los datos de núcleo.
En una realización particular, cualquier envío entre el ordenador y el dispositivo electrónico se realiza a través de una red de telecomunicaciones (TN), y en la que cualquier envío se cifra, preferiblemente usando seguridad de la capa de transporte, TLS. Por cualquier envío debe entenderse cualquier etapa de las realizaciones anteriores que implica el envío de datos entre cualquier entidad, tal como, el ordenador, la entidad externa o el dispositivo electrónico. Ventajosamente, esta realización aumenta la seguridad del método de la invención.
En una realización particular, el hash raíz de módulo de núcleo se calcula en el dispositivo electrónico, el hash raíz de módulo de núcleo se calcula realizando las siguientes etapas:
- insertar cada módulo de núcleo y su clave pública de módulo de núcleo correspondiente en la función hash camaleón obteniendo hash camaleón para cada módulo de núcleo,
- aplicar un algoritmo hash a cada hash camaleón obtenido por pares obteniendo un hash para cada aplicación de algoritmo hash,
- aplicar un algoritmo hash a los hashes entre sí hasta obtener el hash raíz de módulo de núcleo.
Ventajosamente, la generación del hash raíz de módulo de núcleo se calcula en el dispositivo electrónico aumentando la seguridad de los datos de núcleo.
En una realización, el método comprende además las siguientes etapas entre las etapas b) y c),
- insertar mediante el dispositivo electrónico el módulo de núcleo actualizado de manera segura, la clave pública de módulo de núcleo correspondiente y un hash camaleón del módulo de núcleo en una función de verificación de hash camaleón obteniendo así un hash de prueba,
- si el hash de prueba es diferente del hash camaleón del módulo de núcleo, notificar al sistema operativo del dispositivo electrónico que la actualización de manera segura de un módulo de núcleo es inválida,
- si el hash de prueba es igual al hash camaleón del módulo de núcleo, notificar al sistema operativo del dispositivo electrónico que la actualización de manera segura de un módulo de núcleo es válida y continuar a la etapa c).
Ventajosamente, este método permite comprobar si cualquier módulo de núcleo actualizado de manera segura recibido se ha manipulado de manera indebida o es válido.
En una realización, si el hash de prueba es diferente del hash camaleón correspondiente, el método comprende además eliminar el módulo de núcleo actualizado de manera segura. Ventajosamente, esta realización proporciona una acción adicional cuando se ha detectado que el módulo de núcleo seguro se ha manipulado de manera indebida, evitando riesgos de seguridad adicionales y aumentando la seguridad de los datos de núcleo.
Las dos realizaciones anteriores del segundo aspecto inventivo se realizan de manera exclusivamente interna en el dispositivo electrónico, es decir, se realizan “offline” sin llevar a cabo ninguna comunicación fuera de dicho dispositivo electrónico. Por tanto, las dos realizaciones anteriores pueden considerarse como un método implementado por ordenador para actualizar de manera segura y verificar de manera exclusivamente interna y segura al menos un módulo de núcleo actualizado de manera segura de un dispositivo electrónico. Ventajosamente, dichas realizaciones evitan la emisión de nuevas firmas digitales desde el OEM o el desarrollador de módulo, permitiendo que un procedimiento de verificación sea offline y no requiera hardware especial ni conectividad online, lo que puede ser crucial para hacer más ágil el procedimiento de actualización, por ejemplo, para resolver un error de seguridad.
Adicionalmente, los hashes camaleón del módulo de núcleo son nodos de hoja del árbol de Merkle por lo que son capaces de encontrar colisiones permitiendo mantener un hash raíz fijo que puede usarse para representar todos los módulos de núcleo de manera única. Esto permite reducir la cantidad de memoria empleada en el procedimiento de verificación, que ventajosamente permite implementar esta solución en dispositivos electrónicos con memorias de solo lectura o ROM limitadas.
En un tercer aspecto inventivo, la invención proporciona un sistema para actualizar de manera segura al menos un módulo de núcleo que comprende
- un servidor configurado para realizar las etapas de método del método según cualquiera de las realizaciones del segundo aspecto de la invención cuando se refieren al ordenador,
- un dispositivo electrónico en comunicación con el servidor a través de una red de telecomunicaciones (TN) configurado para realizar cualquiera de las etapas de método según cualquiera de las realizaciones del segundo aspecto de la invención cuando se refieren al dispositivo electrónico.
En un cuarto aspecto inventivo, la invención proporciona un programa informático para proporcionar un módulo de núcleo actualizado de manera segura de un dispositivo electrónico, que comprende instrucciones que, cuando se ejecuta el programa mediante un ordenador, hacen que el ordenador lleve a cabo las etapas del método implementado por ordenador según cualquiera de las realizaciones del primer aspecto de la invención.
En un quinto aspecto de la invención, la invención proporciona un programa informático para actualizar de manera segura al menos un módulo de núcleo de un dispositivo electrónico, que comprende instrucciones que, cuando se ejecuta el programa mediante un ordenador y un dispositivo electrónico, hacen que el ordenador y el dispositivo electrónico lleven a cabo las etapas del método implementado por ordenador según cualquiera de las realizaciones del segundo aspecto de la invención.
En un sexto aspecto de la invención, la invención proporciona un medio legible por ordenador,
- que comprende instrucciones que, cuando se ejecutan mediante un ordenador, hacen que el ordenador lleve a cabo las etapas del método según cualquiera de las realizaciones del primer aspecto de la invención, y/o
- que comprende instrucciones que, cuando se ejecutan mediante un ordenador y un dispositivo electrónico, hacen que el ordenador y el dispositivo electrónico lleven a cabo las etapas del método según cualquiera de las realizaciones del segundo aspecto de la invención.
Descripción de los dibujos
Estas y otras características y ventajas de la invención se entenderán claramente a la vista de la descripción detallada de la invención que se vuelve evidente a partir de una realización preferida de la invención, facilitada simplemente como ejemplo y sin limitarse al mismo, con referencia a los dibujos.
Figura 1: esta figura muestra una realización del método implementado por ordenador para proporcionar un módulo de núcleo actualizado de manera segura de un dispositivo electrónico.
Figura 2: esta figura muestra una realización de una estructura de núcleo autenticada de un dispositivo electrónico usado en el método de la invención.
Figura 3: esta figura muestra una realización del cálculo del hash camaleón de cuatro módulos de núcleo comprendidos en una estructura de núcleo autenticada.
Figuras 4, 4a y 4b: estas figuras muestran una realización de método implementado por ordenador para actualizar de manera segura al menos un módulo de núcleo actualizado de manera segura de un dispositivo electrónico.
Figura 5: esta figura muestra una realización de método implementado por ordenador para actualizar de manera segura al menos un módulo de núcleo actualizado de manera segura de un dispositivo electrónico en el que se verifica el módulo de núcleo actualizado de manera segura.
Figuras 6a y 6d: estas figuras muestran una realización de la generación de un árbol de Merkle camaleón.
Descripción detallada de la invención
Las figuras 1, 4, 4a, 4b, 5, 6a a 6d describen realizaciones de la presente invención. En particular, en la figura 1 se describe una realización del método implementado por ordenador (101) para proporcionar un módulo de núcleo actualizado de manera segura (3.4'') de un dispositivo electrónico (200).
El dispositivo electrónico (200) comprende un sistema operativo y una estructura de núcleo autenticada (1). La figura 2 muestra una realización de la estructura de núcleo autenticada (1). En esta realización, el dispositivo electrónico (200) es un teléfono inteligente y la estructura de núcleo autenticada (1) comprende metadatos de núcleo (2), datos de núcleo (3), firma de metadatos de núcleo (4) y firma de datos de núcleo (5). El valor hexadecimal de la firma de metadatos de núcleo (4) y la firma de datos de núcleo (5) es “0x028E” y “0xF341” respectivamente.
En esta realización, el dispositivo electrónico (200) comprende cuatro elementos de hardware controlados por los módulos correspondientes escritos en los datos de núcleo (3). En particular, los elementos de hardware son un sistema de posicionamiento global o GPS, acelerómetro, pantalla y teclado.
Los metadatos de núcleo (2) comprenden cuatro claves públicas de módulo de núcleo “pk” (2.1, 2.2, 2.3, 2.4) y un hash raíz de módulo de núcleo (2.5). Las claves públicas de módulo de núcleo (2.1,2.2, 2.3, 2.4) corresponden a cada elemento de hardware controlado por los datos de núcleo (3). En esta realización, las cuatro claves públicas de módulo de núcleo son una clave pública de módulo de núcleo para el GPS (2.1, pkGPS), clave pública de módulo de núcleo para el acelerómetro (2.2, pkACC), clave pública de módulo de núcleo para la pantalla (2.3, pkSCR) y clave pública de módulo de núcleo para el teclado (2.4, pk<BR). Adicionalmente, el valor hexadecimal del hash raíz de módulo de núcleo (2.5) es “0x3333”.
Los datos de núcleo (3) comprenden los programas informáticos configurados para controlar funcionalidades de hardware del dispositivo electrónico (200). En particular, los datos de núcleo (3) comprenden unos datos de cuerpo de núcleo (3.5) cuyo valor hexadecimal es “0x7D62”. Los datos de cuerpo de núcleo (3.5) incluyen los módulos firmados por el fabricante y la totalidad de la funcionalidad soportada por el fabricante, el sistema operativo y los controladores no subcontratados. Adicionalmente, los datos de núcleo (3) comprenden datos de cuatro módulos de núcleo que corresponden a cada elemento de hardware del dispositivo electrónico (200). En esta realización, las claves de datos de cuatro módulos de núcleo son:
- El módulo de núcleo para el GPS (3.1) o módulo de núcleo de GPS, en el que su valor hexadecimal es “0x2746”.
- El módulo de núcleo para el acelerómetro (3.2) o módulo de núcleo de acelerómetro, en el que su valor hexadecimal es “0x628A”.
- El módulo de núcleo para la pantalla (3.3) o módulo de núcleo de pantalla, en el que su valor hexadecimal es “0x628A”.
- El módulo de núcleo para el teclado (3.4) o módulo de núcleo de teclado, en el que su valor hexadecimal es “0x8D2C”.
Método para proporcionar un módulo de núcleo actualizado de manera segura de un dispositivo electrónico (200) (figura 1).
En esta realización, el módulo de núcleo que va a actualizarse es el módulo de núcleo de teclado (3.4). En esta realización, el ordenador (100) recibe en primer lugar (11) el módulo de núcleo de teclado (3.4) y la nueva versión del módulo de núcleo de teclado (3.4), es decir, el módulo de núcleo de teclado actualizado (3.4') y la clave privada del módulo de núcleo (sk<BR). En otras realizaciones, el ordenador (100) comprende dichos elementos recibidos.
En segundo lugar, se calculan unos datos de colisión (13) insertando en una función de colisión de hash camaleón, el módulo de núcleo de teclado actualizado (3.4'), un hash camaleón (8.4) del módulo de núcleo de teclado (3.4) y la clave privada de módulo de núcleo del teclado (2.4) (sk<BR). Finalmente, se combinan (14) los datos de colisión (13) con el módulo de núcleo de teclado actualizado (3.4') obteniendo así un módulo de núcleo actualizado de manera segura (3.4'').
En la figura 3 se muestra una realización del cálculo de todos los hashes camaleón (8.1, 8.2, 8.3, 8.4) de datos de todos los módulos de núcleo (3.1, 3.2, 3.3, 3.4). Los hashes camaleón (8.1, 8.2, 8.3, 8.4) se calculan insertando un módulo de núcleo (3.1, 3.2, 3.3, 3.4) y su clave pública de módulo de núcleo de correspondencia (2.1, 2.2, 2.3, 2.4) en la función hash camaleón (ChamHash). En esta figura, el valor hexadecimal del hash camaleón (8.1) del módulo de núcleo de GPS (3.1) es “0x0123”, el valor hexadecimal del hash camaleón (8.2) del módulo de núcleo de acelerómetro (3.2) es “0x4567”, el valor hexadecimal del hash camaleón (8.3) del módulo de núcleo de pantalla (3.3) es “0x89AB” y el valor hexadecimal del hash camaleón (8.4) del módulo de núcleo de teclado (3.4) es “0xCDEF”. En una realización, este cálculo puede realizarse en el dispositivo electrónico (200).
En la realización de la figura 1, el ordenador (100) solo se permite que proporcione actualizaciones del módulo de núcleo de teclado (3.4), por tanto el ordenador (100) solo ha recibido la clave privada de módulo de núcleo de teclado (sk<BR). Dado que los datos de colisión (13) se han calculado con la clave privada de módulo de núcleo de teclado (sk<BR) y el hash camaleón (8.4) del módulo de núcleo de teclado (3.4), el módulo de núcleo actualizado de manera segura (3.4'') proporcionará el mismo hash camaleón (8.4) “0XCDEF” solo si se calcula como con la función hash camaleón (ChamHash) y la clave pública de módulo de núcleo de teclado (2.4) (pk<BR).
Método (102) para actualizar de manera segura al menos un módulo de núcleo de un dispositivo electrónico (200) (figuras 4, 4a, 4b).
Las figuras 4, 4a y 4b muestran una realización del método implementado por ordenador (102) que actualiza de manera segura al menos un módulo de núcleo actualizado de manera segura (3.4'') de un dispositivo electrónico (200). En esta realización, el módulo de núcleo actualizado de manera segura (3.4'') corresponde a una nueva versión del módulo de núcleo de teclado (3.4).
En primer lugar, el módulo de núcleo de teclado actualizado de manera segura (3.4'') se proporciona tal como se da a conocer en la realización de la figura 1. Tal como puede apreciarse, la parte izquierda de la figura 4 es similar a la realización de la figura 1. Una vez que se proporciona el módulo de núcleo de teclado actualizado de manera segura (3.4''), el ordenador (100) envía ( l5 ) al dispositivo electrónico (200) el módulo de núcleo de teclado actualizado de manera segura (3.4''). Finalmente, una vez que el dispositivo electrónico (200) recibe el módulo de núcleo de teclado actualizado de manera segura (3.4''), el dispositivo electrónico (200) instala el módulo de núcleo de teclado actualizado de manera segura (3.4'') en la estructura de núcleo autenticada (1).
Las figuras 4a y 4b muestran un procedimiento detallado del método para actualizar el módulo de núcleo de teclado actualizado de manera segura (3.4''). En la figura 4a, puede apreciarse que la versión anterior del módulo de núcleo de teclado (3.4) tiene un valor hexadecimal de “0x8D2C” y cómo se proporciona la nueva versión del módulo de núcleo de teclado actualizado de manera segura (3.4''). Tal como se explicó en la realización de la figura 1, el módulo de núcleo actualizado (3.4'), que tiene un valor hexadecimal de “0x6A10”, el hash camaleón de la versión anterior del módulo de núcleo de teclado (3.4), que tiene un valor hexadecimal de “0xCDEF”, y la clave privada de módulo de núcleo de teclado (sk<BR) se insertan (12) en la función de colisión de hash camaleón obteniendo unos datos de colisión (13). Después, se combinan (14) los datos de colisión (13) con el módulo de núcleo actualizado (3.4') obteniendo el módulo de núcleo de teclado actualizado de manera segura (3.4''), que tiene un valor hexadecimal de “0x6250”.
En la figura 4b, puede apreciarse cómo el ordenador (100) envía (15) el módulo de núcleo de teclado actualizado de manera segura (3.4'') al dispositivo electrónico (200) y cómo el módulo de núcleo de teclado actualizado de manera segura (3.4'') se instala en la estructura de núcleo autenticada (1). Ahora, los nuevos valores hexadecimales de los módulos de núcleo son:
- 0x2746 para la primera versión del módulo de núcleo de GPS (3.1),
- 0x628A para la primera versión del módulo de núcleo de acelerómetro (3.2),
- 0xD10C para la primera versión del módulo de núcleo de pantalla (3.3), y
- 0x6250 para la segunda versión del módulo de núcleo de teclado (3.4'').
Primera realización: verificar un módulo de núcleo actualizado de manera segura (3.4” ) del dispositivo electrónico (200) (figura 5)
En la figura 5 se describe una realización para verificar (103) un módulo de núcleo actualizado de manera segura (3.4'') realizado en el dispositivo electrónico (200) durante la actualización de dicho módulo de núcleo actualizado de manera segura (3.4''). En esta realización el módulo de núcleo actualizado de manera segura (3.4'') que va a verificarse corresponde al teclado.
En particular, la figura 5 describe la realización (103) en la que, en la primera etapa, el módulo de núcleo de teclado actualizado de manera segura (3.4'') se envía (15) mediante el ordenador (100) que ha proporcionado el módulo de núcleo de teclado actualizado de manera segura (3.4'') usando la realización descrita en la figura 1. Tras el envío (15), el módulo de núcleo de teclado actualizado de manera segura (3.4'') se recibe (15') mediante el dispositivo electrónico (200) completando las etapas a) y b) del método.
Una vez recibido (15') el módulo de núcleo de teclado actualizado de manera segura (3.4''), el dispositivo electrónico inserta (18) el módulo de núcleo actualizado de manera segura (3.4''), la clave pública de módulo de núcleo correspondiente (2.4) y el hash camaleón (8.4) del módulo de núcleo (3.4) en una función de verificación de hash camaleón obteniendo así un hash de prueba (19). Si el hash de prueba (19) es diferente del hash camaleón (8.4) del módulo de núcleo (3.4), el dispositivo electrónico (200) notifica al sistema operativo del dispositivo electrónico (200) que la actualización de manera segura de un módulo de núcleo es inválida y elimina (21) el módulo de núcleo inválido. De lo contrario, el dispositivo electrónico (200) notifica (20) al sistema operativo del dispositivo electrónico (200) que la actualización de manera segura de un módulo de núcleo es válida y el método continúa en la etapa c) de instalar (16) el módulo de núcleo actualizado de manera segura y verificado (3.4'').
Segunda realización: cálculo del hash raíz de módulo de núcleo (2.5) (figuras 6a a 6d)
En esta realización, el método está configurado adicionalmente para calcular el hash raíz de módulo de núcleo (2.5) tal como se describe en las figuras 6a a 6d. En dichas figuras, se muestra la estructura del árbol de Merkle (10). En esta realización, dado que el dispositivo electrónico comprende cuatro módulos de núcleo (3.1, 3.2, 3.3, 3.4), el árbol de Merkle (10) comprende un primer nivel en el que se aplica un algoritmo hash a los cuatro módulos de núcleo (3.1, 3.2, 3.3, 3.4) usando cuatro funciones hash camaleón (ChamHash) que son similares entre sí y en los niveles superiores se aplica un algoritmo hash a los resultados (8.1, 8.2, 8.3, 8.4, 9.1, 9.2) usando funciones hash similares de 256 bits (SHA256) por pares hasta obtener un hash que es el hash raíz de módulo de núcleo (2.5) o el hash raíz de un árbol de Merkle (10). En otras realizaciones, pueden usarse otros tipos de funciones hash para construir el árbol de Merkle, por ejemplo, cualquier otra variante de las funciones hash SHA-2.
La figura 6a muestra la primera etapa del cálculo del hash raíz de módulo de núcleo (2.5). En particular, se inserta en cada función hash camaleón (ChamHash) un módulo de núcleo (3.1, 3.2, 3.3, 3.4) y su clave pública de módulo de núcleo correspondiente (2.1, 2.2, 2.3, 2.4). En esta realización los valores hexadecimales de los módulos de núcleo son 0x2746 para el módulo de núcleo de GPS (3.1), 0x628A para el módulo de núcleo de acelerómetro (3.2), 0xD10C para el módulo de núcleo de pantalla (3.3) y 0x6250 para el módulo de núcleo de teclado actualizado de manera segura (3.4''). Aunque el valor del módulo de núcleo de teclado fuera 0x8D2C, lo cual corresponde a la primera versión del módulo de núcleo de teclado (3.4), el hash raíz de módulo de núcleo (2.5) será el mismo debido al procedimiento actualizado de la realización de la figura 1.
La figura 6b muestra el resultado de aplicar una función hash camaleón (ChamHash) a los valores hexadecimales de módulos de núcleo, obteniendo los siguientes valores hexadecimales de los hash camaleón (8.1, 8.2, 8.3, 8.4):
- 0x0123 para el hash camaleón (8.1) del módulo de núcleo de GPS (3.1),
- 0x4567 para el hash camaleón (8.2) del módulo de núcleo de acelerómetro (3.2).
- 0x89AB para el hash camaleón (8.3) del módulo de núcleo de pantalla (3.3), y
- 0xCDEF para el hash camaleón (8.4) del módulo de núcleo de teclado actualizado de manera segura (3.4''). Aunque el valor del módulo de núcleo de teclado fuera 0x8D2C, lo cual corresponde a la primera versión del módulo de núcleo de teclado (3.4), el valor del hash camaleón (8.4) seguiría siendo similar debido al procedimiento actualizado de manera segura de la realización de la figura 1.
En la figura 6c, se muestra la segunda etapa del cálculo del hash raíz de módulo de núcleo (2.5), en particular, a cada hash camaleón (8.1, 8.2, 8.3, 8.4) obtenido se aplica un algoritmo hash por pares. En esta realización, al hash camaleón (8.1) del módulo de núcleo de GPS (3.1) se le aplica un algoritmo hash con el hash camaleón (8.2) del módulo de núcleo de acelerómetro (3.2) y al hash camaleón (8.3) del módulo de núcleo de pantalla (3.3) se le aplica un algoritmo hash con el hash camaleón (8.4) del módulo de núcleo de teclado actualizado de manera segura (3.4''). La función hash usada es un función hash de 256 bits (SHA256) obteniendo unos hashes primero y segundo (9.1, 9.2) en los que sus valores hexadecimales respectivos son “0x1111” y “0x2222”.
Finalmente, tal como se muestra en la figura 6d, se aplica un algoritmo hash a los hashes primero y un segundo (9.1, 9.2) obteniendo el hash raíz de módulo de núcleo (2.5) en el que el valor hexadecimal del hash raíz de módulo de núcleo (2.5) es “0x3333”. En este caso, la función hash usada es la misma función hash de 256 bits (SHA256).
En el caso en el que exista un número impar de hashes o hashes camaleón, a los hashes o hashes camaleón se aplica un algoritmo hash por pares y al hash restante se le aplicará un algoritmo hash en una siguiente etapa hasta que el número de hashes sea uno, que en este caso es el hash raíz de módulo de núcleo (2.5).
Cálculo de hash camaleón, datos de colisión (13) y hash de prueba (19) en un sistema de hash camaleón AM04
El cálculo de un hash camaleón, los datos de colisión (13) y el hash de prueba (19) dependen del tipo de función hash camaleón (chameleonHash) usado. En algunas realizaciones, puede usarse el hash camaleón descrito en el documento de Giuseppe Ateniese, Breno de Medeiros: On the Key Exposure Problem in Chameleon Hashes. IACR Cryptology ePrint Archive 2004: 243 (2004). En los siguientes párrafos, se describe una realización del cálculo del hash camaleón, datos de colisión (13) y hash de prueba (19) en un sistema de hash camaleón AM04.
Cálculo de un hash camaleón
En este ejemplo, las entradas de la función hash camaleón (chameleonHash) son la clave pública de módulo de núcleo de pantalla (2.3, pkscr) y el módulo de núcleo de pantalla (3.3) a los que va a aplicarse un algoritmo hash. Con respecto a las salidas obtenidas mediante la función hash camaleón (chameleonHash), serán el hash camaleón (8.3) del módulo de núcleo de pantalla (3.3), ch, y una estructura de datos, “aux”. “aux” comprende información auxiliar adicional que se usará para verificar el hash camaleón (y actualizada cuando se encuentra una colisión), en particular aux comprende:
• aux.r: un número aleatorio.
• aux.s: un número aleatorio.
En este ejemplo, la clave pública de módulo de núcleo de pantalla (2.3, pkscr) es una estructura de datos que comprende:
pk.y. un número.
pk.g: un número.
pk.q. un número primo.
pk.p. un número primo.
Por tanto, el hash camaleón se calcula de la siguiente manera.
- Generar aux.r. número aleatorio entre 0 y pk.q menos 1.
- Generar aux.s. número aleatorio entre 0 y pk.q menos 1.
- Calcular el hash camaleón (8.3), “ch”, del módulo de núcleo de pantalla (3.4), ch, usando la siguiente función hash camaleón (chameleonHash).
ch = r -(pk.yhasft(datasiiauxj) * pk.gauxs mod pk.p) mod pk.q,
donde:
“datos” son el módulo de núcleo, en este ejemplo, el módulo de núcleo de pantalla (3.3),
“datos || r” es. datos concatenados con r, y
mod es la operación de módulo que encuentra el resto tras la división de un número entre otro.
Cálculo de datos de colisión (13)
Siguiendo el ejemplo del cálculo de un hash camaleón, los datos de colisión (13) se calculan usando una función de colisión de hash camaleón, en la que sus entradas son.
• sk. la clave privada correspondiente a la clave pública que se usó para calcular el hash camaleón, en este caso la clave privada de módulo de núcleo de pantalla.
• ch. el hash camaleón del hash camaleón (8.3) del módulo de núcleo de pantalla (3.3).
• datos'. los “nuevos” datos para los que se encontrará una colisión con respecto a “ch”, en este caso el módulo de núcleo actualizado del módulo de núcleo de pantalla (3.3).
La salida de la función de colisión de hash camaleón son datos de colisión (13) o aux'. aux' es una estructura de datos auxiliar alternativa que hace que “ch” sea un hash camaleón válido para los datos' que comprenden.
• aux'.r. un número aleatorio diferente de aux.r.
• aux'.s. un número aleatorio diferente de aux.s.
Por tanto, los datos de colisión (13) se calculan de la siguiente manera.
- Generar un número aleatorio, k, entre 1 y pk.q menos 1
- Calcular los datos de colisión (13), aux'.r, aux'.s, usando la siguiente función de colisión de hash camaleón.
aux’.r = ch (pk.gk mod pk.p) mod pk.q
aux’.s = k - /7as/7(datos’||r) sk mod pk.q
Por tanto, una vez que se combinan datos' y aux' se obtiene un módulo de núcleo actualizado de manera segura para el módulo de núcleo de pantalla (3.3).
Cálculo de hash de prueba (19)
El hash de prueba (19) se calcula usando una función de verificación de hash camaleón, en la que sus entradas son:
pk: la clave pública usada para emitir el hash camaleón, en este ejemplo la clave pública de módulo de núcleo de pantalla (2.3, pkscr).
ch: el hash camaleón del hash camaleón (8.3) del módulo de núcleo de pantalla (3.3).
• El módulo de núcleo actualizado de manera segura para el módulo de núcleo de pantalla (3.3) que comprende: o d: los datos que van a verificarse, en este ejemplo, datos', es decir, el módulo de núcleo actualizado del módulo de núcleo de pantalla (3.3).
o auxiliar, un caso de datos auxiliares asociados con los datos de colisión (13), en este ejemplo, aux'.
El hash de prueba (19) se calcula con la función de verificación de hash camaleón de la siguiente manera: hash de prueba = auxiliar.r -(pk.yhash<dH auxiliarr) pk.g auxiliars moc¡ pk.p) mod pk.q
donde, auxiliar.r es aux'.r y auxiliar.s es aux'.s, d es datos'.
Finalmente, si el hash de prueba (19) es igual al hash camaleón (8.3), ch, significa que el hash camaleón de módulo de núcleo actualizado de manera segura para el módulo de núcleo de pantalla (3.3), es decir, el hash de prueba obtenido a partir de datos' y aux', es igual que el hash camaleón (8.3) del módulo de núcleo de pantalla (3.3), ch, por tanto el hash camaleón del módulo de núcleo actualizado de manera segura para el módulo de núcleo de pantalla (3.3) es válido, y en consecuencia, puede instalarse la nueva versión del módulo de núcleo actualizado del módulo de núcleo de pantalla (3.3). Asimismo, si el hash de prueba (19) es diferente del hash camaleón (8.3), ch, el hash camaleón del módulo de núcleo actualizado de manera segura para el módulo de núcleo de pantalla (3.3) es inválido.

Claims (11)

  1. REIVINDICACIONES
    Un método implementado por ordenador (102) para actualizar de manera segura un módulo de núcleo actualizado de manera segura (3.4'') de un dispositivo electrónico (200) que evita la intervención del desarrollador de núcleo, en el que el dispositivo electrónico (200) comprende un sistema operativo y una estructura de núcleo autenticada (1), comprendiendo la estructura de núcleo autenticada (1)
    - metadatos de núcleo (2) que comprenden
    al menos una clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4) de al menos un módulo de núcleo (3.1, 3.2, 3.3, 3.4), en el que cada clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4) corresponde a una clave privada de módulo de núcleo, siendo las claves pública y privada de módulo de núcleo correspondientes un par de claves de módulo de núcleo, y
    un hash raíz de módulo de núcleo (2.5) que comprende un hash raíz de un árbol de Merkle (10),
    - datos de núcleo (3) que comprenden
    datos de cuerpo de núcleo (3'),
    al menos un módulo de núcleo (3.1, 3.2, 3.3, 3.4), en el que un módulo de núcleo (3.1, 3.
  2. 2, 3.3, 3.4) está asociado con un par de claves de módulo de núcleo,
    - firma de metadatos de núcleo (4),
    - firma de datos de cuerpo de núcleo (5),
    en el que el método comprende las siguientes etapas,
    a) proporcionar mediante un ordenador (100) un módulo de núcleo actualizado de manera segura generado según el siguiente método implementado por ordenador (101),
    i) insertar (12) mediante un ordenador (100) un hash camaleón (8.4) de un módulo de núcleo (3.4), una clave privada de módulo de núcleo del módulo de núcleo (3.4) y un módulo de núcleo actualizado (3.4') del módulo de núcleo (3.4) en una función de colisión de hash camaleón obteniendo así unos datos de colisión (13),
    en el que el hash camaleón (8.4) es un nodo de hoja del árbol de Merkle (10) y los datos de colisión (13) son de tal manera que cuando se combinan los datos de colisión con el módulo de núcleo actualizado (3.4') y se aplica un algoritmo hash a dicha combinación usando una función hash camaleón (ChamHash), el resultado es igual al hash camaleón (8.4) del módulo de núcleo (3.4),
    ii) combinar (14) mediante el ordenador (100), el módulo de núcleo actualizado (3.4') con los datos de colisión (13) obteniendo así un módulo de núcleo actualizado de manera segura (3.4'').
    b) enviar (15) mediante el ordenador (100) el módulo de núcleo actualizado de manera segura (3.4'') al dispositivo electrónico (200),
    - insertar (18) de manera exclusivamente interna mediante el dispositivo electrónico (200) el módulo de núcleo actualizado de manera segura (3.4''), la clave pública de módulo de núcleo correspondiente (2.4) y un hash camaleón (8.4) del módulo de núcleo (3.4) en una función de verificación de hash camaleón obteniendo así un hash de prueba (19),
    - si el hash de prueba (19) es diferente del hash camaleón (8.4) del módulo de núcleo (3.4), notificar al sistema operativo del dispositivo electrónico (200) que la actualización de manera segura de un módulo de núcleo es inválida,
    - si el hash de prueba (19) es igual al hash camaleón (8.4) del módulo de núcleo (3.4), notificar (20) al sistema operativo del dispositivo electrónico (200) que la actualización de manera segura de un módulo de núcleo es válida, y continuar con la etapa c),
    c) instalar (16) de manera exclusivamente interna mediante el dispositivo electrónico (200) el módulo de núcleo actualizado de manera segura (3.4'') en los datos de núcleo (3) actualizando el módulo de núcleo (3.4).
    El método implementado por ordenador según la reivindicación 1, en el que la función de colisión de hash camaleón comprende una función hash camaleón sin exposición de clave.
  3. 3. El método implementado por ordenador según cualquiera de las reivindicaciones anteriores, en el que el ordenador (100) comprende un par de claves de módulo de núcleo.
  4. 4. El método implementado por ordenador según cualquiera de las reivindicaciones anteriores en el que en una etapa anterior antes de la etapa a), el método comprende las siguientes etapas:
    - generar mediante el ordenador (100) al menos un par de claves de módulo de núcleo,
    - enviar mediante el ordenador (100) la al menos una clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4) al dispositivo electrónico (200),
    - enviar mediante el ordenador (100) la al menos una clave privada de módulo de núcleo a al menos una entidad externa, y
    - recibir y almacenar mediante la al menos una entidad externa, la al menos una clave privada de módulo de núcleo,
    - recibir y almacenar mediante el dispositivo electrónico (200), la al menos una clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4).
  5. 5. El método implementado por ordenador según cualquiera de las reivindicaciones anteriores 1 a 3, en el que en una etapa anterior antes de la etapa a), el método comprende las siguientes etapas:
    - generar mediante una entidad externa al menos un par de claves de módulo de núcleo,
    - enviar mediante la entidad externa la al menos una clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4) al dispositivo electrónico (200),
    - enviar mediante la entidad externa la al menos una clave privada de módulo de núcleo al ordenador (100), - recibir y almacenar mediante el ordenador (100), la al menos una clave pública de módulo de núcleo (2.1, 2.2, 2.3, 2.4),
    - recibir y almacenar mediante el ordenador (100), la al menos una clave privada de módulo de núcleo.
  6. 6. El método implementado por ordenador según cualquiera de las reivindicaciones anteriores, en el que cualquier envío se realiza a través de una red de telecomunicaciones (TN), y en el que cualquier envío se cifra, preferiblemente usando seguridad de la capa de transporte, TLS.
  7. 7. El método implementado por ordenador según cualquiera de las reivindicaciones anteriores, en el que el hash raíz de módulo de núcleo (2.5) se calcula en el dispositivo electrónico (200) realizando las siguientes etapas: - insertar cada módulo de núcleo (3.1, 3.2, 3.3, 3.4) y su clave pública de módulo de núcleo correspondiente (2.1, 2.2, 2.3, 2.4) en la función hash camaleón (ChamHash) obteniendo hash camaleón (8.1, 8.2, 8.3, 8.4) para cada módulo de núcleo (3.1, 3.2, 3.3, 3.4),
    - aplicar un algoritmo hash a cada hash camaleón obtenido (8.1, 8.2, 8.3, 8.4) por pares obteniendo un hash (9.1, 9.2) para cada aplicación de algoritmo hash,
    - aplicar un algoritmo hash a los hashes (9.1, 9.2) por pares hasta obtener el hash raíz de módulo de núcleo (2.5).
  8. 8. El método implementado por ordenador según cualquiera de las reivindicaciones anteriores, en el que si el hash de prueba es diferente del hash camaleón (8.4) del módulo de núcleo (3.4), el método comprende además eliminar (21) el módulo de núcleo actualizado de manera segura (3.4'').
  9. 9. Un sistema para actualizar de manera segura al menos un módulo de núcleo que comprende
    - un servidor configurado para realizar las etapas de método del método según cualquiera de las reivindicaciones anteriores cuando se refieren al ordenador (100),
    - un dispositivo electrónico (200) en comunicación con el servidor a través de una red de telecomunicaciones (TN) configurado para realizar cualquiera de las etapas de método según cualquiera de las reivindicaciones anteriores cuando se refieren al dispositivo electrónico (200).
  10. 10. Un programa informático para actualizar de manera segura al menos un módulo de núcleo de un dispositivo electrónico (200), que comprende instrucciones que, cuando se ejecuta el programa mediante un ordenador (100) y un dispositivo electrónico (200), hacen que el ordenador (100) y el dispositivo electrónico (200) lleven a cabo las etapas del método implementado por ordenador según cualquiera de las reivindicaciones 1 a 8.
  11. 11. Un medio legible por ordenador, que comprende instrucciones que, cuando se ejecutan mediante un ordenador (100) y un dispositivo electrónico (200), hacen que el ordenador (100) y el dispositivo electrónico (200) lleven a cabo las etapas del método según cualquiera de las reivindicaciones anteriores 1 a 8.
ES18769211T 2017-09-22 2018-09-20 Arranque seguro de módulos de núcleo Active ES2890399T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17382635.5A EP3460700A1 (en) 2017-09-22 2017-09-22 Authentication of software update modules using chameleon hashing.
PCT/EP2018/075447 WO2019057810A1 (en) 2017-09-22 2018-09-20 SECURE LAUNCH OF CORE MODULES

Publications (1)

Publication Number Publication Date
ES2890399T3 true ES2890399T3 (es) 2022-01-19

Family

ID=60009564

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18769211T Active ES2890399T3 (es) 2017-09-22 2018-09-20 Arranque seguro de módulos de núcleo

Country Status (10)

Country Link
US (1) US11514170B2 (es)
EP (2) EP3460700A1 (es)
CN (1) CN111433771A (es)
AR (1) AR113125A1 (es)
CO (1) CO2020004069A2 (es)
ES (1) ES2890399T3 (es)
MX (1) MX2020003253A (es)
PE (1) PE20210546A1 (es)
UY (1) UY37887A (es)
WO (1) WO2019057810A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112292678A (zh) * 2019-01-04 2021-01-29 百度时代网络技术(北京)有限公司 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
CN110086631B (zh) * 2019-04-29 2021-06-08 电子科技大学 一种可更新变色龙哈希函数的方法
WO2020231418A1 (en) 2019-05-15 2020-11-19 Hewlett-Packard Development Company, L.P. Update signals
US20230224165A1 (en) * 2020-06-02 2023-07-13 Nec Corporation Signature verification system, signature apparatus, signature verification method, and program
WO2021245806A1 (ja) * 2020-06-02 2021-12-09 日本電気株式会社 署名検証システム、署名検証方法、およびプログラム
CN112565479B (zh) * 2020-12-07 2023-07-11 北京明略昭辉科技有限公司 设备id的动态生成方法、系统、计算机设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108783A (en) * 1998-02-11 2000-08-22 International Business Machines Corporation Chameleon hashing and signatures
CN101038545A (zh) * 2006-11-10 2007-09-19 清华大学 操作系统内核构件跨域运行的方法
JP5471444B2 (ja) * 2007-08-29 2014-04-16 日本電気株式会社 コンテンツの公開システム及び該システムにおける公開コンテンツの保証方法
JP2010050760A (ja) * 2008-08-22 2010-03-04 Hitachi Ltd コンテンツ保護装置、および、コンテンツ利用装置
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9369867B2 (en) 2012-06-29 2016-06-14 Intel Corporation Mobile platform software update with secure authentication
JP2014241465A (ja) * 2013-06-11 2014-12-25 株式会社東芝 署名生成装置、署名生成方法、署名生成プログラム、及び電力使用量計算システム
KR102139546B1 (ko) * 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
US9584317B2 (en) * 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US10326753B2 (en) * 2016-06-23 2019-06-18 International Business Machines Corporation Authentication via revocable signatures

Also Published As

Publication number Publication date
EP3685290B1 (en) 2021-07-21
CO2020004069A2 (es) 2020-06-19
AR113125A1 (es) 2020-01-29
WO2019057810A1 (en) 2019-03-28
US20200265141A1 (en) 2020-08-20
EP3685290A1 (en) 2020-07-29
US11514170B2 (en) 2022-11-29
PE20210546A1 (es) 2021-03-17
CN111433771A (zh) 2020-07-17
UY37887A (es) 2019-04-30
MX2020003253A (es) 2020-09-18
EP3460700A1 (en) 2019-03-27

Similar Documents

Publication Publication Date Title
ES2890399T3 (es) Arranque seguro de módulos de núcleo
CN109313690B (zh) 自包含的加密引导策略验证
US10552138B2 (en) Technologies for secure software update using bundles and merkle signatures
US10885197B2 (en) Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning
KR102323763B1 (ko) 호스트 시스템과 데이터 처리 가속기 사이의 보안 통신을 제공하기 위한 방법 및 시스템
US11184157B1 (en) Cryptographic key generation and deployment
US10771264B2 (en) Securing firmware
US9405912B2 (en) Hardware rooted attestation
CN108604263B (zh) 用于客户提供的完整性的双重签名可执行镜像
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
CN112262546B (zh) 用于数据处理加速器的密钥分配和交换的方法和系统
CN108255505A (zh) 一种固件更新方法、装置、设备及计算机可读存储介质
US9804891B1 (en) Parallelizing multiple signing and verifying operations within a secure routing context
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
ES2848375T3 (es) Equipo y procedimiento para utilizar un certificado de aparato del cliente en un aparato
US10853472B2 (en) System, apparatus and method for independently recovering a credential
US20170262656A1 (en) Method and device for providing verifying application integrity
US10990428B2 (en) Virtual machine integrity
BR112016001608B1 (pt) Método através do qual um dispositivo de cliente comprova sua autenticidade para um cliente de mídia a ser instalado por usuário no dispositivo de cliente e dispositivo de cliente
TW201502855A (zh) 使用安全加強晶片之用於資料之安全儲存之系統、方法及裝置
US10979216B2 (en) Generating public/private key pairs to deploy public keys at computing devices to verify digital signatures
US20190205560A1 (en) Remote provisioning and authenticated writes to secure storage devices
Nyström et al. UEFI NETWORKING AND PRE-OS SECURITY.
US10461926B2 (en) Cryptographic evidence of persisted capabilities