ES2826977T3 - Programación segura de datos secretos - Google Patents

Programación segura de datos secretos Download PDF

Info

Publication number
ES2826977T3
ES2826977T3 ES16741878T ES16741878T ES2826977T3 ES 2826977 T3 ES2826977 T3 ES 2826977T3 ES 16741878 T ES16741878 T ES 16741878T ES 16741878 T ES16741878 T ES 16741878T ES 2826977 T3 ES2826977 T3 ES 2826977T3
Authority
ES
Spain
Prior art keywords
cryptographic key
secret data
secure element
volatile memory
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
ES16741878T
Other languages
English (en)
Inventor
Didier Hunacek
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.)
Nagravision SARL
Original Assignee
Nagravision 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 Nagravision SA filed Critical Nagravision SA
Application granted granted Critical
Publication of ES2826977T3 publication Critical patent/ES2826977T3/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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/0825Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/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/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/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Abstract

Un método para almacenar datos secretos en un dispositivo que comprende un elemento seguro acoplado a una memoria no volátil, el método que comprende: derivar, mediante el elemento seguro, una primera clave criptográfica al descifrar y autenticar los datos de la clave criptográfica con una clave que está cableada al elemento seguro; escribir, mediante el elemento seguro, la primera clave criptográfica en la memoria no volátil; descifrar y autenticar, mediante el elemento seguro, primeros datos secretos mediante el uso de la primera clave criptográfica para formar segundos datos secretos; y, luego, hacer ilegible el valor real de la primera clave criptográfica al cambiar irreversiblemente al menos una parte de la primera clave criptográfica al cambiar el estado de al menos un bit de la primera clave criptográfica y luego bloquear la primera clave criptográfica almacenada para evitar cambios adicionales.

Description

DESCRIPCIÓN
Programación segura de datos secretos
Esta invención se refiere a la provisión de programación segura de datos secretos. Es particularmente adecuada, pero de ninguna manera se limita a, la programación de datos secretos en el momento de la fabricación o la programación final de un dispositivo de sistema en chip.
Antecedentes de la invención
Cuando se fabrica un dispositivo, tal como un dispositivo de sistema en chip, puede personalizarse con datos secretos, por ejemplo, claves de cifrado, contraseñas y/u otros datos confidenciales. Típicamente, el fabricante del dispositivo incorpora los datos secretos en el momento de la creación de la pastilla o justo antes de empaquetar el dispositivo. Por lo tanto, los datos secretos deben estar disponibles para el fabricante, y esto puede causar problemas de seguridad, ya que los datos pueden cederse a partes que no deberían tener acceso a los datos a través de brechas de seguridad o actividades sin escrúpulos. Una forma de mitigar este riesgo es proporcionar al fabricante una 'caja negra' que sea capaz de descifrar los datos secretos que se han precifrado por un proveedor de datos secretos y comunicarse con el sistema de programación del fabricante para que los datos secretos se liberen en el momento adecuado para incorporarlos en el dispositivo.
Dicha "caja negra" es un sistema costoso de mantener y operar. Una manera de proceder sin el uso de la 'caja negra' es descifrar los datos secretos cifrados directamente en el dispositivo en cuestión en el momento del empaquetado final. Esto puede lograrse por medio de un módulo específico implementado en el dispositivo que puede ser un elemento seguro. El elemento seguro tiene conocimiento de algoritmos personalizados y una o más claves de cifrado/descifrado específicas conocidas solo por el proveedor de datos secretos para descifrar los datos secretos. Además, solo podrían usarse algoritmos genéricos y un conjunto de claves, ya que sería demasiado costoso y poco práctico entregar un conjunto separado para cada dispositivo a programar. El proveedor de datos secretos puede entregar el elemento seguro al fabricante en forma de una lista de conexiones. La lista de conexiones se incorpora en el diseño del dispositivo.
Dicho esquema de programación de dispositivos y entrega de datos secretos se basa en la confidencialidad de la lista de conexiones. Si la lista de conexiones estuviera disponible para una parte no autorizada, el algoritmo y las claves secretas de cifrado/descifrado podrían usarse para descifrar los datos secretos. Por lo tanto, la lista de conexiones es un punto único de fallo y, por lo tanto, un riesgo de seguridad. El documento US8700899 describe un dispositivo que cifra y descifra una clave que tiene para operaciones criptográficas con claves recibidas de otro dispositivo a través de un canal seguro. El documento US2010/0100747 describe la descarga de información a un dispositivo, la codificación de la información en el dispositivo en un elemento seguro y el almacenamiento de la información en forma codificada en una memoria persistente segura. El documento US2003/0093684 describe un método para almacenar una clave en forma cifrada en la memoria persistente y descifrar la clave para su uso en un coprocesador criptográfico.
Por lo tanto, es conveniente proporcionar una programación alternativa de datos secretos que tenga una mayor seguridad.
Resumen
De acuerdo con un primer aspecto, se proporciona un método como se define en la reivindicación 1. Por tanto, se proporciona un método que comprende proporcionar un dispositivo que comprende un elemento seguro acoplado a una memoria no volátil, la memoria no volátil que comprende una primera clave criptográfica almacenada en la misma, el elemento seguro que descifra y autentica los primeros datos secretos mediante el uso de la primera clave criptográfica para formar segundos datos secretos; y luego hacer ilegible el valor real de la primera clave criptográfica al cambiar irreversiblemente al menos una parte de la primera clave criptográfica al cambiar el estado de al menos un bit de la primera clave criptográfica y luego bloquear la primera clave criptográfica almacenada para evitar cambios adicionales.
Opcionalmente, el método comprende además el elemento seguro que cifra y firma los segundos datos secretos mediante el uso una segunda clave criptográfica conocida únicamente por el elemento seguro para formar los terceros datos secretos, y almacenar los terceros datos secretos en la memoria no volátil.
Opcionalmente, el método comprende además el elemento seguro que deriva la primera clave criptográfica al descifrar y autenticar los datos de la clave criptográfica con una clave que está cableada en el elemento seguro.
Opcionalmente, el método comprende además el elemento seguro que escribe la primera clave criptográfica en la memoria no volátil.
Opcionalmente, el método comprende además almacenar los primeros datos secretos en la memoria no volátil antes del descifrado y la autenticación.
Opcionalmente, el método comprende además el elemento seguro que hace ilegible el valor verdadero de los primeros datos secretos al cambiar irreversiblemente al menos una parte de los primeros datos almacenados en la memoria no volátil.
Opcionalmente, el método comprende además el elemento seguro que proporciona la segunda clave criptográfica de una función físicamente imposible de clonar contenida en el mismo.
Opcionalmente, el método comprende además el elemento seguro que descifra y autentica los terceros datos secretos mediante el uso de la segunda clave criptográfica. Opcionalmente, el método en donde la memoria no volátil comprende una memoria programable una sola vez.
Opcionalmente, el método en donde la memoria no volátil solo es accesible por el elemento seguro.
Opcionalmente, el método en donde el dispositivo es un dispositivo SoC.
De acuerdo con un segundo aspecto, se proporciona un dispositivo como se define en la reivindicación 7 de las reivindicaciones adjuntas. Por lo tanto, se proporciona un dispositivo que comprende un elemento seguro acoplado a una memoria no volátil, la memoria no volátil dispuesta para contener una primera clave criptográfica almacenada en ella, el elemento seguro configurado para descifrar y autenticar los primeros datos secretos mediante el uso de la primera clave criptográfica para formar segundos datos secretos y luego hacer ilegible el valor real de la primera clave criptográfica al cambiar irreversiblemente al menos una parte de la primera clave criptográfica al cambiar el estado de al menos un bit de la primera clave criptográfica y luego bloquear la primera clave criptográfica almacenada para evitar cambios adicionales. Opcionalmente, el dispositivo en donde el elemento seguro se configura además para cifrar y firmar los segundos datos secretos mediante el uso de una segunda clave criptográfica conocida solo por el elemento seguro para formar terceros datos secretos y almacenar los terceros datos secretos en la memoria no volátil.
Opcionalmente, el dispositivo en donde el elemento seguro se configura además para derivar la primera clave criptográfica al descifrar y autenticar los datos de la clave criptográfica con una clave que está cableada en el elemento seguro. Opcionalmente, el dispositivo en donde el elemento seguro se configura además para escribir la primera clave criptográfica en la memoria no volátil.
Opcionalmente, el dispositivo en donde los primeros datos secretos se almacenan en la memoria no volátil antes del descifrado y la autenticación.
Opcionalmente, el dispositivo en donde el elemento seguro se configura además para hacer ilegible el valor real de los primeros datos secretos al cambiar irreversiblemente al menos una parte de los primeros datos almacenados en la memoria no volátil. Opcionalmente, el dispositivo en donde el elemento seguro se configura además para proporcionar la segunda clave criptográfica de una función físicamente imposible de clonar contenida en el mismo.
Opcionalmente, el dispositivo en donde el elemento seguro se configura además para descifrar y autenticar los terceros datos secretos mediante el uso de la segunda clave criptográfica.
Opcionalmente, el dispositivo en donde la memoria no volátil comprende una memoria programable una sola vez.
Opcionalmente, el dispositivo en donde la memoria no volátil solo es accesible por el elemento seguro.
Opcionalmente, el dispositivo es un dispositivo SoC.
De acuerdo con un tercer aspecto, se proporciona un medio legible por ordenador como se define en la reivindicación 11. Por lo tanto, se proporciona un medio legible por ordenador que comprende instrucciones que, cuando se ejecutan, hacen que un procesador realice cualquiera de los métodos descritos en la presente descripción.
Con todos los aspectos, las características preferibles y opcionales se definen en las reivindicaciones dependientes. Breve descripción de los dibujos
Las modalidades se describirán ahora a manera de ejemplo solamente y con referencia a los dibujos en los que:
La Figura 1 ilustra un dispositivo de seguro de acuerdo con una modalidad; y
La Figura 2 ilustra métodos de acuerdo con las modalidades;
En las figuras, los elementos similares se indican mediante números de referencia similares en todas partes.
Descripción general
En la presente descripción se describe un dispositivo 10 que comprende una memoria no volátil que puede ser cualquier dispositivo que puede programarse con datos secretos, por ejemplo, un PLD (dispositivo lógico programare), FPGA (matriz de puertas programares en campo) o SoC (sistema en chip). Los datos secretos se proporcionan cifrados con una clave de proveedor por el proveedor de datos secretos. Los datos secretos se descifran en el dispositivo de manera que a) la clave del proveedor y los datos secretos nunca estén disponibles fuera del dispositivo en un estado no cifrado, y b) una vez que se han instalado los datos secretos, la clave del proveedor se vuelve ilegible para que ataques inescrupulosos al dispositivo no puedan descubrir la clave.
Los datos secretos se descifran desde el estado de entrega inicial mediante el uso de la clave del proveedor y pueden almacenarse localmente dentro del dispositivo en una forma cifrada del dispositivo donde la clave de cifrado del dispositivo es única y conocida solo por el dispositivo.
Con el dispositivo y el método descritos, se elimina un único punto de fallo en el que tanto la lista de conexiones del dispositivo como la clave del proveedor deben estar disponibles con el propósito de decodificar los datos secretos. Además, al usar una clave de cifrado del dispositivo que es única para el dispositivo, incluso si la parte sin escrúpulos ha obtenido acceso a la lista de conexiones del dispositivo y puede leer los datos cifrados del dispositivo, no hay manera de descubrir la clave de cifrado del dispositivo que se crea internamente al dispositivo siempre que sea necesario. Además, incluso si la clave del proveedor es descubierta por una parte sin escrúpulos, podría cambiarse para la producción futura del dispositivo de manera que se minimiza la brecha de seguridad.
Descripción detallada
Volviendo a la Figura 1, un dispositivo 10 comprende un elemento de seguridad 12 y una memoria no volátil 14. La memoria no volátil puede ser una memoria programable una sola vez y puede disponerse para contener una primera clave criptográfica. El dispositivo también puede comprender una CPU 16 y una o ambas ROM 18 y RAM externa (no mostradas). Las diversas partes constituyentes del dispositivo 10 pueden comunicarse entre sí a través de una estructura de bus como se ilustra. El elemento seguro 12 puede ser la única parte del dispositivo 10 que puede comunicarse con la memoria no volátil 14.
Ahora se describirán métodos para proporcionar datos secretos de manera segura y descifrar datos secretos de manera segura en el dispositivo 10.
Con referencia a la Figura 2, en la etapa 25, un primer registro del proveedor de datos secretos que comprende una primera clave criptográfica (proporcionada por el proveedor de datos secretos) se carga en la memoria no volátil 14. Como se muestra en la Figura 2, la primera clave criptográfica puede cargarse en la memoria no volátil (por medio del primer registro del proveedor de datos secretos) de una de dos maneras. En algunas modalidades como se muestra en las etapas 21 y 22, el elemento seguro 12 carga la primera clave criptográfica en la memoria no volátil, y en otras modalidades como se muestra en las etapas 23 y 24, el fabricante del dispositivo u otra parte carga la primera clave criptográfica en la memoria no volátil sin la participación del elemento seguro 12.
En la fabricación del dispositivo, la lista de conexiones para el elemento seguro 12 puede comprender una clave criptográfica cableada y un algoritmo de cifrado/descifrado personalizado cableado opcional. En este contexto, cableado se refiere a que los datos en cuestión no se pueden modificar.
En la etapa 21, el elemento seguro 12 puede usar la clave criptográfica cableada y el algoritmo de descifrado/cifrado opcional para descifrar y autenticar el primer registro del proveedor de datos secretos que comprende la primera clave criptográfica. La etapa 21 puede realizarse la primera vez que se enciende el dispositivo. Si el primer registro del proveedor de datos secretos que comprende la primera clave criptográfica se descifra y autentica con éxito, en la etapa 22 el primer registro del proveedor de datos secretos se almacena en la memoria no volátil 14 por el elemento seguro 12 en su forma cifrada.
En las etapas alternativas 23 y 24, en la etapa 23, el fabricante del dispositivo carga el primer registro secreto del proveedor de datos que comprende la primera clave criptográfica en la memoria no volátil 14 sin la participación del elemento seguro 12 y en un estado cifrado. El descifrado de este puede realizarse mediante la clave criptográfica cableada. En la etapa 24, el fabricante del dispositivo carga un segundo registro del proveedor de datos secretos temporal que comprende los primeros datos secretos también en la memoria no volátil 14. El segundo registro del proveedor de datos secretos se cifra y firma mediante el uso de la primera clave criptográfica del primer registro del proveedor de datos secretos. En cualquiera de las etapas 23 y 24, o en ambas, el fabricante del dispositivo puede usar una ruta de programación del soporte físico dedicada (no se muestra en la Figura 1). Después de llevara cabo la carga requerida de datos, la ruta de programación del soporte físico puede desactivarse permanentemente por medios de soporte físico tales como desactivar la ruta al quemar fusibles relacionados y/o medios de programa informático al programar bits en la memoria no volátil para que el acceso a la memoria no volátil externo al dispositivo ya no sea posible.
Siguiendo las etapas 21 y 22, o 23 y 24, en la etapa 25, el primer registro del proveedor de datos secretos que comprende la primera clave criptográfica está presente en la memoria no volátil 14 en un estado cifrado.
En una alternativa, después de la etapa 21, en la etapa 22A, si el primer registro secreto del proveedor de datos que comprende la primera clave criptográfica se descifra y autentica con éxito, el elemento seguro puede guardar una copia de la primera clave criptográfica y luego la etapa 26 se realiza sin que la primera clave criptográfica (comprendida en el primer registro del proveedor de datos secretos) se almacene en la memoria no volátil 14. La copia de la primera clave criptográfica puede ser una copia transitoria local.
En la etapa 26, que puede ocurrir después de un reinicio del dispositivo, el elemento seguro 12 descifra y autentica los primeros datos secretos mediante el uso de la primera clave criptográfica (en forma descifrada) para formar segundos datos secretos. Los primeros datos secretos pueden estar presentes en la memoria no volátil por medio de la etapa opcional 24 (del segundo registro temporal del proveedor de datos secretos disponible previamente), o el segundo registro secreto del proveedor de datos puede proporcionarse por separado por un proveedor de datos secretos en la etapa opcional 27.
En la etapa 28, si el descifrado y la autenticación de los primeros datos secretos para formar los segundos datos secretos tienen éxito, el elemento seguro 12 usa una segunda clave criptográfica conocida solo por el elemento seguro para cifrar y firmar los segundos datos secretos para formar los terceros datos secretos. El elemento seguro almacena entonces los terceros datos secretos en la memoria no volátil 14. El algoritmo usado con la segunda clave criptográfica para formar terceros datos secretos puede ser diferente del algoritmo presente en el elemento seguro y usado en la etapa 21 para descifrar el primer registro del proveedor de datos.
La segunda clave criptográfica que solo se conoce por el elemento seguro 12 puede generarse por una función físicamente imposible de clonar (PUF) presente en el dispositivo. La PUF puede estar disponible para el algoritmo criptográfico presente en el elemento seguro y conocida solo por el algoritmo con el elemento seguro que es incapaz de leer la PUF. La segunda clave criptográfica puede generarse en cada reinicio por la PUF. Los detalles del mecanismo de funcionamiento de la PUF pueden encontrarse en los documentos US2014/0376717 y EP2816757 "Method and unique cryptographic device with a physically unclonable function". Como se entenderá, la función físicamente imposible de clonar produce la segunda clave criptográfica que es única para el dispositivo particular en el que reside y que no puede clonarse ni siquiera por medio de la inspección del dispositivo con un microscopio u otros medios de inspección. Esto se debe a que las diferencias de fabricación imperceptibles que se usan para generar la segunda clave criptográfica no son reproducibles o predecibles. Como los procesos de fabricación son imperfectos, se produce una personalización involuntaria de los componentes dentro del dispositivo que pueden transformarse en información útil que puede usarse para producir identificadores únicos. Por lo tanto, se proporciona una PUF en la que, por ejemplo, una secuencia de bits pseudoaleatoria puede representar la información derivada de las diferencias imperceptibles, como se entendería. Esto, a su vez, puede usarse para crear una clave criptográfica única.
En la etapa 29, si el primer registro secreto del proveedor de datos que comprende la primera clave criptográfica está presente en la memoria no volátil, la primera clave criptográfica se vuelve ilegible desde la memoria no volátil. Esto puede lograrse por medio de borrar y bloquear al menos una parte de la primera clave criptográfica de modo que se oculte el valor real de la primera clave criptográfica. Por ejemplo, ciertos bits de la primera clave criptográfica pueden programarse en la memoria no volátil y estar en un estado bloqueado, y otros bits pueden estar en un estado desbloqueado. Todos los bits desbloqueados pueden borrarse, es decir, pueden reescribirse como un '1' o un '0'. Los bits desbloqueados pueden entonces bloquearse para que todos los bits estén bloqueados. Quedaría claro que después de una operación de borrado de este tipo, el valor real de la primera clave criptográfica sería ilegible a partir de ese momento. En un ejemplo, todos los bits "1" desbloqueados pueden reescribirse como "0" y todos los bits "0" desbloqueados pueden reescribirse como "1".
Como un resultado de la etapa 29, los primeros datos secretos ya no pueden descifrarse y autenticarse ya que la clave requerida (primera clave criptográfica) es ilegible.
Las etapas 28 y 29 pueden intercambiarse en orden.
En la etapa 30, si la memoria no volátil 14 comprende un segundo registro temporal del proveedor de datos secretos por medio de la etapa opcional 24, el elemento seguro hace ilegible el valor real del segundo registro temporal del proveedor de datos secretos mediante el mismo mecanismo que para el primer registro del proveedor de datos secretos/primera clave en la etapa 29.
En la etapa 31 y la actividad posterior, el elemento seguro 12 puede descifrar y autenticar los terceros datos secretos (que es una copia cifrada específica del dispositivo de los primeros datos secretos) de la memoria no volátil 14 mediante el uso de la segunda clave criptográfica según sea necesario. Por lo tanto, los primeros datos secretos (originalmente contenidos dentro del segundo registro del proveedor de datos secretos) están disponibles en tiempo de ejecución y pueden usarse según lo requiera la aplicación en ejecución.
La etapa 31 puede ocurrir después de un reinicio del dispositivo. Puede considerarse que el dispositivo opera en un modo de ejecución normal en lugar de en un modo de programación de las etapas 21, 22, 22Ay 25 a 30. Después de reinicios posteriores del dispositivo, el dispositivo puede comenzar a operar en modo de ejecución desde la etapa 31, ya que los primeros datos secretos se han entregado a la memoria no volátil 14 de una manera segura. El elemento seguro 12 puede determinar si comenzar la operación desde la etapa 31 determinando si los primeros datos secretos se han borrado y bloqueado previamente en la etapa 29.
Como puede verse, desde la etapa 31 en adelante (que es el estado del dispositivo cuando se pone a disposición de usuarios no seguros, es decir, consumidores), los datos secretos del segundo registro del proveedor de datos secretos (o el segundo registro temporal del proveedor de datos secretos) solo están disponibles dentro de la memoria no volátil en un estado cifrado de manera que el cifrado usado solo es descifrable por el elemento seguro que cifró los datos. En ningún momento se ha puesto a disposición ningún dato secreto fuera del dispositivo en forma no cifrada (abierta), ni tampoco la primera clave criptográfica para descifrar y autenticar los primeros datos secretos disponibles en cualquier lugar del dispositivo.
Por lo tanto, se ha proporcionado una programación segura de datos secretos sin un solo punto de fallo. Una parte sin escrúpulos necesitaría acceder a los primeros datos secretos en las instalaciones del fabricante para obtener la primera clave criptográfica, así como también la lista de conexiones, para fabricar el dispositivo que incluye el elemento seguro.
En otro escenario, incluso si la parte sin escrúpulos puede leer los terceros datos de la memoria no volátil de un dispositivo en el campo, y tiene la lista de conexiones del dispositivo, todavía no hay manera de obtener la segunda clave criptográfica (generado a partir de la PUF), por lo tanto, los datos secretos permanecen cifrados y, por lo tanto, seguros.
Además, incluso si se descubre la primera clave criptográfica, podría cambiarse para la fabricación futura del dispositivo, mitigando así la brecha de seguridad. Para mayor seguridad, los primeros datos secretos podrían entregarse (etapa 27) o programarse (etapa 24) por un fabricante diferente al que fabrica (o programa) el dispositivo.
Algunos o todos los métodos descritos pueden implementarse mediante un programa informático. El programa informático comprende instrucciones o códigos ejecutables por ordenador dispuestos para instruir o hacer que un procesador, tal como el dispositivo 10, realice una o más funciones de los métodos descritos. El programa informático puede proporcionarse a un aparato, tal como el dispositivo 10, en un medio legible por ordenador o en un producto de programa informático. El medio legible por ordenador o el producto de programa informático puede comprender medios no transitorios tales como semiconductores o memoria de estado sólido, cinta magnética, una memoria extraíble o disquete de ordenador, una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM), un disco magnético rígido y un disco óptico, tal como un CD-ROM, CD-R/W, DVD o Blu-ray. El medio legible por ordenador o el producto de programa informático puede comprender una señal de transmisión o un medio para la transmisión de datos, por ejemplo, para descargar el programa informático a través de Internet.

Claims (11)

REIVINDICACIONES
1. Un método para almacenar datos secretos en un dispositivo que comprende un elemento seguro acoplado a una memoria no volátil, el método que comprende:
derivar, mediante el elemento seguro, una primera clave criptográfica al descifrar y autenticar los datos de la clave criptográfica con una clave que está cableada al elemento seguro;
escribir, mediante el elemento seguro, la primera clave criptográfica en la memoria no volátil;
descifrar y autenticar, mediante el elemento seguro, primeros datos secretos mediante el uso de la primera clave criptográfica para formar segundos datos secretos; y,
luego, hacer ilegible el valor real de la primera clave criptográfica al cambiar irreversiblemente al menos una parte de la primera clave criptográfica al cambiar el estado de al menos un bit de la primera clave criptográfica y luego bloquear la primera clave criptográfica almacenada para evitar cambios adicionales.
2. El método de la reivindicación 1, que comprende además el elemento seguro que cifra y firma los segundos datos secretos mediante el uso de una segunda clave criptográfica conocida solo por el elemento seguro para formar terceros datos secretos; y almacenar los terceros datos secretos en la memoria no volátil.
3. El método de la reivindicación 1, que comprende además almacenar los primeros datos secretos en la memoria no volátil antes del descifrado y la autenticación.
4. El método de la reivindicación 3, que comprende además el elemento seguro que hace ilegible el valor real de los primeros datos secretos al cambiar irreversiblemente al menos una parte de los primeros datos almacenados en la memoria no volátil.
5. El método de cualquiera de las reivindicaciones 1 a 4, que comprende además el elemento seguro que proporciona la segunda clave criptográfica de una función físicamente imposible de clonar contenida en el mismo.
6. El método de cualquiera de las reivindicaciones 1 a 5, que comprende además el elemento seguro que descifra y autentica los terceros datos secretos mediante el uso de la segunda clave criptográfica.
7. Un dispositivo que comprende un elemento seguro acoplado a una memoria no volátil, la memoria no volátil dispuesta para contener una primera clave criptográfica almacenada en la misma; el elemento seguro configurado para implementar el método de acuerdo con cualquiera de las reivindicaciones 1 a 6.
8. El dispositivo de acuerdo con la reivindicación 7, en donde la memoria no volátil comprende una memoria programable una sola vez.
9. El dispositivo de la reivindicación 7 u 8, en donde la memoria no volátil solo es accesible por el elemento seguro.
10. El dispositivo de cualquiera de las reivindicaciones anteriores 7 a 9, en donde el dispositivo es un dispositivo SoC.
11. Un medio legible por ordenador que comprende instrucciones que, cuando se ejecutan, hacen que un procesador realice el método de cualquiera de las reivindicaciones 1 a 6.
ES16741878T 2015-06-29 2016-06-29 Programación segura de datos secretos Active ES2826977T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1511385.5A GB201511385D0 (en) 2015-06-29 2015-06-29 Secure programming of secret data
PCT/EP2016/065225 WO2017001530A1 (en) 2015-06-29 2016-06-29 Secure Programming of Secret data

Publications (1)

Publication Number Publication Date
ES2826977T3 true ES2826977T3 (es) 2021-05-19

Family

ID=53872377

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16741878T Active ES2826977T3 (es) 2015-06-29 2016-06-29 Programación segura de datos secretos

Country Status (8)

Country Link
US (1) US10700857B2 (es)
EP (1) EP3314807B1 (es)
JP (1) JP2018519752A (es)
KR (2) KR20230150409A (es)
CN (1) CN107925574B (es)
ES (1) ES2826977T3 (es)
GB (1) GB201511385D0 (es)
WO (1) WO2017001530A1 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3483772A1 (en) * 2017-11-14 2019-05-15 Nagravision S.A. Integrated circuit personalisation with data encrypted with the output of a physically unclonable function
US11228423B2 (en) 2020-01-12 2022-01-18 Advanced New Technologies Co., Ltd. Method and device for security assessment of encryption models
EP4030682A1 (en) * 2021-01-13 2022-07-20 Nagravision SA Method and device for controlling access to a resource
US20220393859A1 (en) * 2021-06-07 2022-12-08 Micron Technology, Inc. Secure Data Storage with a Dynamically Generated Key

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134660A (en) * 1997-06-30 2000-10-17 Telcordia Technologies, Inc. Method for revoking computer backup files using cryptographic techniques
JP2000122539A (ja) * 1998-10-16 2000-04-28 Matsushita Electric Ind Co Ltd 著作物保護システム
US7380131B1 (en) * 2001-01-19 2008-05-27 Xilinx, Inc. Copy protection without non-volatile memory
JP4224262B2 (ja) * 2001-07-09 2009-02-12 パナソニック株式会社 デジタル情報保護システム、記録媒体装置、送信装置及び再生装置
US7194633B2 (en) * 2001-11-14 2007-03-20 International Business Machines Corporation Device and method with reduced information leakage
DE10254320A1 (de) * 2002-11-21 2004-06-03 Philips Intellectual Property & Standards Gmbh Schaltungsanordnung mit nicht-flüchtigem Speichermodul und Verfahren zum Ver-/Entschlüsseln von Daten des nicht-flüchtigen Speichermoduls
JP3995207B2 (ja) * 2003-02-26 2007-10-24 日本放送協会 コンテンツ送信装置、コンテンツ送信方法、コンテンツ送信プログラムおよびコンテンツ再生装置、コンテンツ再生方法、コンテンツ再生プログラム
US7792303B2 (en) * 2004-07-14 2010-09-07 Intel Corporation Method of delivering direct proof private keys to devices using a distribution CD
JP4717398B2 (ja) * 2004-09-10 2011-07-06 キヤノン株式会社 データ処理装置の制御方法
US20060133607A1 (en) * 2004-12-22 2006-06-22 Seagate Technology Llc Apparatus and method for generating a secret key
JP4688558B2 (ja) * 2005-04-27 2011-05-25 富士通株式会社 コンテンツ管理システム、コンテンツ管理装置及びコンテンツ管理方法
KR100970040B1 (ko) * 2005-08-03 2010-07-16 엔엑스피 비 브이 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기
US7814318B1 (en) * 2005-09-27 2010-10-12 Oracle America, Inc. Scalable file system configured to make files permanently unreadable
JP2007124530A (ja) * 2005-10-31 2007-05-17 Konica Minolta Business Technologies Inc 復号化処理装置および復号化方法ならびに画像形成装置
US9653004B2 (en) * 2008-10-16 2017-05-16 Cypress Semiconductor Corporation Systems and methods for downloading code and data into a secure non-volatile memory
JP2011028522A (ja) 2009-07-24 2011-02-10 Softbank Mobile Corp ホスト装置、認証方法、並びに、コンテンツ処理方法及びそのシステム
US8316243B2 (en) * 2009-08-07 2012-11-20 Via Technologies, Inc. Apparatus and method for generating unpredictable processor-unique serial number for use as an encryption key
EP2526505B1 (en) * 2010-01-20 2015-06-17 Intrinsic ID B.V. Device and method for obtaining a cryptographic key
US20120089450A1 (en) * 2010-10-07 2012-04-12 Microsoft Corporation Loyalty offer
US8930715B2 (en) * 2011-05-26 2015-01-06 International Business Machines Corporation Address translation unit, device and method for remote direct memory access of a memory
WO2012164721A1 (ja) * 2011-06-02 2012-12-06 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法
US8700899B1 (en) * 2012-06-27 2014-04-15 Emc Corporation Forward-secure key unlocking for cryptographic devices
EP2816756A1 (fr) 2013-06-18 2014-12-24 Nagravision S.A. Procédé et dispositif cryptographique unique à fonction physiquement induplicable
US9633210B2 (en) * 2013-09-13 2017-04-25 Microsoft Technology Licensing, Llc Keying infrastructure
US20150143130A1 (en) * 2013-11-18 2015-05-21 Vixs Systems Inc. Integrated circuit provisioning using physical unclonable function
JP6199712B2 (ja) * 2013-11-26 2017-09-20 Kddi株式会社 通信端末装置、通信端末関連付け方法、及びコンピュータプログラム

Also Published As

Publication number Publication date
GB201511385D0 (en) 2015-08-12
US10700857B2 (en) 2020-06-30
CN107925574A (zh) 2018-04-17
KR20230150409A (ko) 2023-10-30
EP3314807B1 (en) 2020-09-30
US20190044715A1 (en) 2019-02-07
EP3314807A1 (en) 2018-05-02
WO2017001530A1 (en) 2017-01-05
JP2018519752A (ja) 2018-07-19
KR20180022800A (ko) 2018-03-06
KR102592286B1 (ko) 2023-10-19
CN107925574B (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
US9043610B2 (en) Systems and methods for data security
JP5984625B2 (ja) 半導体装置及び暗号鍵書き込み方法
US8776211B1 (en) Processing commands according to authorization
US8281115B2 (en) Security method using self-generated encryption key, and security apparatus using the same
US20170126414A1 (en) Database-less authentication with physically unclonable functions
ES2826977T3 (es) Programación segura de datos secretos
ES2773950T3 (es) Sistema informático asegurado con autenticación asíncrona
US20150143130A1 (en) Integrated circuit provisioning using physical unclonable function
US8726038B2 (en) FPGA apparatus and method for protecting bitstream
CN102117387A (zh) 安全密钥访问设备及方法
KR20140063863A (ko) 호스트 디바이스, 반도체 메모리 디바이스, 및 인증 방법
JP7087172B2 (ja) Pqaロック解除
Trimberger et al. FPGA security: From features to capabilities to trusted systems
US10387653B2 (en) Secure provisioning of semiconductor chips in untrusted manufacturing factories
CN102236754B (zh) 数据保密方法以及使用此数据保密方法的电子装置
US11689363B2 (en) Method for setting permissions for cryptographic keys, computer program and cryptographic processing system
Nazim et al. FILE ENCRYPTION SYSTEM USING FLASH DRIVE AUTHENTICATION (FESFA)
CN114065267A (zh) 基于国密算法的fpga码流的保护方法及其装置
Token Security Policy