ES2853574T3 - Almacenamiento de memoria seguro - Google Patents
Almacenamiento de memoria seguro Download PDFInfo
- Publication number
- ES2853574T3 ES2853574T3 ES16151422T ES16151422T ES2853574T3 ES 2853574 T3 ES2853574 T3 ES 2853574T3 ES 16151422 T ES16151422 T ES 16151422T ES 16151422 T ES16151422 T ES 16151422T ES 2853574 T3 ES2853574 T3 ES 2853574T3
- Authority
- ES
- Spain
- Prior art keywords
- blob
- trusted
- execution mode
- key
- user password
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Un método para asegurar un almacenamiento de memoria en un aparato, comprendiendo el método: recibir (202) una contraseña de usuario; leer (206) un número aleatorio de un Módulo de Plataforma de Confianza, TPM, del aparato; recibir (210) valores de uno o más Registros de Configuración de Plataforma del Módulo de Plataforma de Confianza; crear (212) un blob mediante el uso del número aleatorio y los valores de uno o más registros y la contraseña de usuario; encriptar (216) el blob en el Módulo de Plataforma de Confianza; volver a encriptar (222) el blob encriptado en un modo de ejecución de Entorno de Ejecución de Confianza, TEE, del aparato mediante el uso de una clave específica de hardware y la contraseña de usuario; y almacenar (226) el blob reencriptado, comprendiendo el reencriptado además: generar una sal a partir de la contraseña del usuario; aplicar un Algoritmo de Hash Seguro, SHA, a la sal; generar una clave Estándar de Encriptado Avanzado mediante el uso de la sal y la clave específica de hardware; y encriptar la clave del Estándar de Encriptado Avanzado mediante el uso del Encadenamiento de Bloques de Cifrado Estándar de Encriptación Avanzado, AES-CBC.
Description
DESCRIPCIÓN
Almacenamiento de memoria seguro
Campo técnico
Las realizaciones ejemplares y no limitantes de la invención se refieren en general a almacenamientos de memoria seguros.
Antecedentes
La siguiente descripción de la técnica anterior puede incluir conocimientos, descubrimientos, entendimientos o descripciones, o asociaciones junto con descripciones no conocidas para la técnica relevante antes de la presente invención pero proporcionadas por la invención. Algunas de estas contribuciones de la invención se pueden señalar específicamente a continuación, mientras que otras de estas contribuciones de la invención serán evidentes a partir de su contexto.
Hoy en día la información se almacena a menudo en forma digital. Los almacenamientos de información digital son de muchas formas. Por lo general son discos duros, o unidades flash, por ejemplo. Estos almacenamientos de memoria son de muchos tamaños y se pueden utilizar en una gran variedad de dispositivos, incluidos ordenadores personales, teléfonos móviles, tabletas, portátiles o unidades extraíbles.
Dado que la información digital es fácil de copiar y transferir de un almacenamiento a otro, la seguridad se ha convertido en un tema importante cuando se desarrollan almacenamientos y métodos para acceder a los almacenamientos. Esto se aplica a todos los tipos de almacenamiento pero especialmente a los que están ubicados o conectados a dispositivos móviles que los usuarios llevan consigo. Dado que la ubicación física del almacenamiento no es segura se debe tener cuidado para garantizar que solo un usuario con derecho a acceder pueda acceder a los datos del almacenamiento.
Se sabe que se utiliza criptografía para proteger los datos en almacenamientos de memoria. Los datos están encriptados y solo pueden acceder los usuarios que sepan cómo desencriptarlos. Se han utilizado contraseñas de usuario y diferentes métodos de encriptación para proporcionar seguridad. Sin embargo, aún no se ha resuelto una solución satisfactoria que sea fuertemente resistente a los ataques.
El documento US 2012/0297200 describe soluciones para aprovisionar blobs encriptados y certificados de cliente.
Breve descripción
Un objeto de la presente invención es proporcionar un método y un aparato para implementar la protección de un almacenamiento de memoria que ofrece una solución respaldada por hardware para proteger los datos en un almacenamiento de memoria.
Según un aspecto de la presente invención, se proporciona un método para asegurar un almacenamiento de memoria en un aparato, que comprende el método: recibir una contraseña de usuario; leer un número aleatorio del Módulo de Plataforma de Confianza, TPM; recibir valores de uno o más Registros de Configuración de Plataforma del Módulo de Plataforma de confianza; crear un blob mediante el uso del número aleatorio y los valores de uno o más registros y la contraseña de usuario; encriptar el blob en el Módulo de Plataforma de Confianza; volver a encriptar el blob en un modo de ejecución de Entorno de Ejecución de Confianza, TEE, del aparato mediante el uso de una clave específica de hardware y la contraseña de usuario; y almacenar el blob reencriptado, el reencriptado que comprende además: generar sal a partir de la contraseña del usuario; aplicar un Algoritmo de Hash Seguro, SHA, a la sal; generar una clave Estándar de Encriptado Avanzado mediante el uso de la sal y clave específica de hardware; y encriptar la clave mediante el uso del Encadenamiento de Bloques de Cifrado Estándar de Encriptación Avanzado, AES-CBC.
Según otro aspecto de la presente invención, se proporciona un aparato que comprende: un módulo de plataforma de confianza, TPM, un procesador que comprende un modo de ejecución abierto y un modo de ejecución de Entorno de Ejecución de Confianza, TEE, y un almacenamiento de memoria; en el que el procesador está en el modo de ejecución abierto configurado para recibir la contraseña del usuario; solicitar un número aleatorio del Módulo de Plataforma de Confianza, TPM; recibir valores de uno o más Registros de Configuración de Plataforma del Módulo de Plataforma de Confianza; crear un blob mediante el uso del número aleatorio y los valores de uno o más registros y la contraseña del usuario; solicitar al Módulo de Plataforma de confianza que encripte el blob; solicitar el modo de ejecución del Entorno de Ejecución de Confianza del procesador para volver a encriptar el blob mediante el uso de la clave específica de hardware y la contraseña del usuario; y almacenar el blob reencriptado, en el que el procesador está en el modo de ejecución de privilegios restringidos configurado para generar sal a partir de la contraseña del usuario; aplicar un Algoritmo de Hash Seguro, SHA, a la sal; generar una clave Estándar de Encriptado Avanzado mediante el uso de sal y clave específica de hardware; y encriptar la clave mediante el uso de el Encadenamiento de Bloques de Cifrado Estándar de Encriptado Avanzado, AES-CBC.
Algunas realizaciones de la invención se describen en las reivindicaciones dependientes.
Breve descripción de los dibujos
A continuación la invención se describirá con mayor detalle por medio de realizaciones preferidas con referencia a los dibujos adjuntos, en los que
La Figura 1 ilustra un ejemplo simplificado de un aparato en el que se pueden aplicar algunas realizaciones de la invención;
Las Figuras 2 y 3 son gráficos de señalización que ilustran realizaciones.
Descripción detallada de algunas realizaciones
La criptografía ha sido objeto de un extenso estudio especialmente desde el desarrollo de los ordenadores. La criptografía moderna se basa en complejos algoritmos matemáticos que se utilizan para encriptar los datos que se protegerán. Normalmente los algoritmos utilizan una clave o claves que pueden formarse a partir de una sal aleatoria y contraseñas generadas por el usuario.
Utilizar la criptografía es siempre un compromiso entre complejidad, velocidad, facilidad de uso y seguridad. Especialmente en dispositivos móviles que tienen requisitos de velocidad y potencia de procesamiento limitados debido a la facilidad de uso y por otro lado los requisitos de alta seguridad el diseño de un esquema de protección adecuado es una tarea desafiante.
En las soluciones actuales para la criptografía en un dispositivo móvil, los datos del usuario y las claves criptográficas se almacenan en el dispositivo de forma encriptada. Las claves criptográficas se generan mediante el uso de una contraseña de usuario, sal aleatoria y funciones de derivación de claves predeterminadas. Las claves criptográficas generadas a partir de la contraseña del usuario son vulnerables a los ataques de fuerza bruta. Las claves criptográficas se generan totalmente en el lado del usuario y se almacenan en forma encriptada. El lado del usuario de un dispositivo es un área de memoria abierta, en la que se ejecutan todas las aplicaciones que se ejecutan en el dispositivo. Este método puede presentar un riesgo de seguridad por ejemplo en cuanto a revelar las claves. El método no cumple con los estándares de seguridad introducidos por muchos gobiernos.
El método actual proporciona un soporte de verificación de contraseña utilizado en el bloqueo de pantalla y una encriptación de clave de almacenamiento que utiliza un sha1-hash (Algoritmo-1 de Hash Seguro), una contraseña de usuario y el valor de sal almacenado en una base de datos en el dispositivo. Esta solución es vulnerable a ataques calculados previamente, como la fuerza bruta en caso de que se roben el archivo hash de contraseña y el valor de sal de la base de datos. También es notable que el método actual en el que las claves se encriptan con la clave generada a partir de la contraseña del usuario no vincula las claves a un dispositivo en particular, lo que conduce a la situación en la que las claves se pueden quitar a otros dispositivos para romperlas.
La Figura 1 ilustra un ejemplo simplificado de un aparato 100 en el que se pueden aplicar algunas realizaciones de la invención. En algunas realizaciones, el aparato puede ser un dispositivo móvil o una parte de un dispositivo móvil. El dispositivo móvil puede ser un teléfono móvil, una tableta, un ordenador portátil, un asistente digital personal (PDA), un dispositivo de lectura electrónica, por ejemplo. El aparato puede incluir un dispositivo de comunicación móvil inalámbrico que funcione con o sin un módulo de identificación de abonado (SIM).
Debe entenderse que el aparato se representa aquí como un ejemplo que ilustra algunas realizaciones. Es evidente para un experto en la técnica que el aparato también puede comprender otras funciones y/o estructuras y no se requieren todas las funciones y estructuras descritas. Aunque el aparato se ha representado como una entidad, se pueden implementar diferentes módulos y memoria en una o más entidades físicas o lógicas.
El aparato 100 del ejemplo incluye un circuito 102 de control configurado para controlar al menos parte del funcionamiento del aparato. El circuito de control puede ser un procesador. En una realización, el circuito de control comprende dos secciones o modos separados, un modo 104 de ejecución abierto y un modo 106 de ejecución de Entorno de Ejecución de Confianza (TEE). El modo de ejecución abierto es un modo en el que se ejecutan el sistema de operación normal y las aplicaciones de usuario. Puede estar disponible el acceso a un subconjunto predeterminado de los recursos físicos del aparato. El modo de ejecución de Entorno de Ejecución de Confianza es un entorno de ejecución aislado seguro que puede proporcionar acceso a diferentes recursos en comparación con el modo abierto. Los datos, recursos y aplicaciones del modo de ejecución de Entorno de Ejecución de Confianza no son visibles ni accesibles mediante el modo de ejecución abierto. En una realización, el modo de ejecución de Entorno de Ejecución de Confianza almacena una clave específica de hardware, que es diferente para cada aparato o cada circuito de control. La clave puede ser una clave de hardware secundaria, SHK.
El aparato puede comprender además una memoria 108 para almacenar datos y aplicaciones. La memoria 108 puede comprender un lado 110 de usuario abierto, donde se ejecutan todas las aplicaciones de usuario. Normalmente, no se utiliza encriptado en el lado 110 del usuario. Además, la memoria puede comprender un almacenamiento 112 de memoria seguro. El almacenamiento de memoria seguro puede protegerse mediante acceso no autorizado mediante el uso de encriptado.
En algunas realizaciones, el aparato 100 puede comprender un transceptor 114. El transceptor está conectado operativamente al circuito 102 de control. Puede estar conectado a una disposición de antena que comprende uno más elementos de antena o antenas (no mostradas).
El circuito 102 de control está configurado para ejecutar una o más aplicaciones. Las aplicaciones pueden almacenarse en la memoria 108.
En algunas realizaciones, el aparato 100 puede comprender además una interfaz 116 conectada operativamente al circuito 102 de control. La interfaz puede conectar el aparato a otros aparatos respectivos. La interfaz puede comprender una interfaz de usuario con la que el usuario del aparato puede interactuar con el aparato.
En una realización, el aparato puede comprender además un circuito 118 de Módulo de Plataforma de Confianza, TPM. El Módulo 118 de Plataforma de Confianza es una circuitería separada o un chip de ordenador tal como un microcontrolador que puede almacenar de forma segura datos usados en autenticación. Los datos pueden comprender contraseñas, certificados o claves criptográficas. En general, el circuito TPM puede ser cualquier circuito configurado para encriptar datos protegidos con una contraseña de usuario. El circuito TPM puede comprender uno o más registros especiales, como un registro de configuración de plataforma (PCR) para almacenar información. El número de registros puede ser 24, por ejemplo. En una realización, se utilizan dos de los registros de circuitos TPM, PCR0 y PCR1. El número de registros utilizados es simplemente un ejemplo. Los registros pueden comprender datos que se utilizan en el encriptado. En una realización, los datos se almacenan en los registros en el momento en que se enciende el aparato. Los datos pueden ser inalterables por el usuario y pueden basarse en valores hash que se almacenan en el aparato y que son específicos del aparato. Varias empresas comerciales fabrican circuitos TPM.
En una realización, la creación y el uso del almacenamiento 112 de memoria seguro se realiza mediante la distribución del proceso de generación/verificación de clave criptográfica y el proceso de verificación de contraseña de usuario entre el modo de ejecución de Entorno de Ejecución de Confianza del lado 104, 110 de usuario abierto, y el circuito TPM y también enlazar las claves criptográficas a un dispositivo y circuito TPM en particular. La contraseña de encriptado del usuario se verifica en el circuito TPM en combinación con el modo de ejecución del Entorno de Ejecución de Confianza. La clave criptográfica real nunca se almacena en el dispositivo sino una clave de derivación.
La Figura 2 es un gráfico de señalización que ilustra una realización. El ejemplo de la Figura 2 ilustra cómo se crea y prepara el almacenamiento 112 de memoria seguro para su uso. La Figura 2 ilustra la señalización entre la aplicación 200 que solicita el almacenamiento 112 de memoria seguro, el modo 104 de ejecución abierta del circuito 102 de control, el modo 106 de ejecución del Entorno de Ejecución de Confianza (TEE) del circuito 102 de control y el circuito 118 TPM. Cualquier valor numérico (bytes, tamaños) son ejemplos meramente ilustrativos no limitantes.
Primero, una aplicación 200 que necesita el almacenamiento de memoria seguro transmite 202 una contraseña de usuario al modo 104 de ejecución abierto del circuito de control. La contraseña puede haber sido recibida del usuario a través de la interfaz 116.
El modo 104 de ejecución abierto del circuito de control está configurado para solicitar un número aleatorio del circuito 118 TPM. En una realización, el número aleatorio comprende 32 bytes.
El circuito TMP está configurado para generar el número aleatorio y transmitir 206 el número aleatorio al modo 104 de ejecución abierto. El número aleatorio puede usarse como clave de derivación.
El modo 104 de ejecución abierto del circuito de control está configurado para solicitar 208 valores de registro PCR0 y PCR1 del circuito 118 TPM. El circuito lee los valores y los transmite 210 al modo 104 de ejecución abierto.
A continuación, el modo de ejecución abierto 104 del circuito de control se configura para construir 212 un blob mediante la asignación del número aleatorio de 32 bytes en el blob y enlazar el blob a los valores de registro PCR0 y PCR1 y la contraseña de usuario. El blob significa un objeto binario grande y es una colección de datos binarios almacenados como una sola entidad.
El modo 104 de ejecución abierto del circuito de control está configurado para enviar 214 el blob desde el circuito 118 TPM para su cifrado.
El circuito 118 TPM encripta 216 el blob y transmite el blob encriptado al modo 104 de ejecución abierto. En una realización, en esta fase el blob comprende el número aleatorio de 32 bytes y el tamaño total es 313 bytes.
El tamaño numérico del blob es simplemente un ejemplo. El tamaño real depende de muchas cuestiones, como la cantidad de registros de circuito TPM utilizados.
A continuación, el modo 104 de ejecución abierto del circuito de control se configura para enviar 220 el blob encriptado al modo 106 de ejecución de Entorno de Ejecución de Confianza, TEE, del aparato para volver a encriptarlo. En una realización, también se envía la contraseña de usuario al TEE. En una realización, la contraseña de usuario se ejecuta a través del algoritmo PBDKF-SHA256 (Algoritmo Hash Seguro de Función de Derivación de Clave Basado en Contraseña) y el resultado de eso se usa como una sal para el encriptado TEE. El valor de sal derivado de la
contraseña del usuario se puede utilizar en el cifrado AES (Estándar de Encriptado Avanzado) y en la derivación de claves en TEE. En una realización, el vector de inicialización AES (vector IV) es el resultado del valor de sal, IV = SHA256 (sal). La derivación de la clave deriva una clave de encriptado de la clave de hardware secundaria SHK y la sal puede ser una de las entradas para eso. Como resultado, la clave de cifrado está vinculada además del SHK a la contraseña del usuario.
El modo 106 de ejecución del Entorno de Ejecución de Confianza del aparato está configurado para volver a encriptar 222 el blob mediante el uso de una clave específica de hardware y la contraseña de usuario. La clave específica de hardware puede ser la clave de hardware secundaria, SHK. Como se mencionó, en una realización se realiza un SHA256 (sal), luego se genera una clave AES (Estándar de Encriptado Avanzado) mediante el uso de una clave específica de hardware y finalmente se realiza el encriptado AES-CBC (Encadenamiento de Bloques de Cifrado). Por lo tanto, el encriptado está vinculado al dispositivo y la contraseña del usuario. En una realización, en esta fase, el tamaño total del blob es de 320 bytes. Nuevamente, el tamaño numérico del blob es simplemente un ejemplo.
El modo 106 de ejecución del entorno de ejecución de confianza envía 224 el blob reencriptado al modo 104 de ejecución abierto del circuito de control que está configurado para almacenar 226 el blob en el sistema de archivos del aparato que no se borra durante la operación de parpadeo.
El almacenamiento de memoria seguro está ahora listo para su uso y se informa 228 a la aplicación 200.
La Figura 3 es otro diagrama de señalización que ilustra una realización. El ejemplo de la Figura 3 ilustra cómo se abre el almacenamiento 112 de memoria seguro para su uso. La Figura 3 ilustra la señalización entre la aplicación 200 que solicita el almacenamiento 112 de memoria seguro, el modo 104 de ejecución abierto del circuito 102 de control, el modo 106 de ejecución del Entorno de Ejecución de Confianza (TEE) del circuito 102 de control y el circuito 118 TPM.
Primero, una aplicación 200 que necesita acceso al almacenamiento de memoria segura transmite 300 una contraseña de usuario al modo 104 de ejecución abierto del circuito de control. La contraseña puede haber sido recibida del usuario a través de la interfaz 116.
El modo 104 de ejecución abierto del circuito de control está configurado para leer 302 el blob encriptado del sistema de archivos del aparato.
El modo 104 de ejecución abierto del circuito de control está configurado para enviar 304 el blob encriptado al modo 106 de ejecución del Entorno de Ejecución de Confianza (TEE) del circuito de control para el desencriptado.
El modo 106 de ejecución del Entorno de Ejecución de Confianza del circuito de control está configurado para desencriptar 306 el blob. Una clave simétrica está vinculada a la clave de hardware SHK y la contraseña de usuario. El blob se envía 308 de vuelta al modo 104 de ejecución abierto.
A continuación, el modo 104 de ejecución abierto del circuito de control se configura para enviar 310 el blob al circuito 118 TPM para un segundo desencriptado.
El circuito 118 TPM desencripta 312 el blob. Si la contraseña del usuario es incorrecta, la verificación de TPM falla porque el resultado del primer desencriptado de TEE es incorrecto. De lo contrario, el resultado del desencriptado, la clave de derivación, se transmite 314 del blob desencriptado de vuelta al modo 104 de ejecución abierto. En una realización, el tamaño de la clave de derivación es 32 bytes.
La clave de derivación de 32 bytes se mantiene 316 en la memoria mientras el almacenamiento esté abierto.
El modo 104 de ejecución abierto del circuito de control está configurado para informar a la aplicación 200 que el almacenamiento está abierto y puede usarse.
Si el desencriptado no es exitoso, por ejemplo, debido a una contraseña incorrecta, el modo 104 de ejecución abierto del circuito de control se configura para aumentar el valor de un contador de fallos. En tal caso, el valor del contador de fallos puede compararse con un valor umbral dado y el contenido del almacenamiento de memoria puede eliminarse si el valor del contador de fallos es mayor que el valor umbral dado.
Cuando se recibe una contraseña de usuario correcta, se puede restablecer el contador de fallos.
Los pasos y las funciones relacionadas descritas en las figuras anteriores y adjuntas no están en orden cronológico absoluto, y algunos de los pasos pueden realizarse simultáneamente o en un orden diferente al dado. También se pueden ejecutar otras funciones entre los pasos o dentro de los pasos. Algunos de los pasos también se pueden omitir o reemplazar con un paso correspondiente.
Los aparatos o controladores capaces de realizar los pasos descritos anteriormente pueden implementarse como un ordenador digital electrónico o un circuito que puede comprender una memoria de trabajo (RAM), una unidad central de procesamiento (CPU) y un reloj del sistema. La CPU puede comprender un conjunto de registros, una unidad aritmética lógica y un controlador. El controlador o el circuito se controlan mediante una secuencia de instrucciones
de programa transferidas a la CPU desde la RAM. El controlador puede contener una serie de microinstrucciones para operaciones básicas. La implementación de microinstrucciones puede variar según el diseño de la CPU. Las instrucciones del programa pueden estar codificadas por un lenguaje de programación, que puede ser un lenguaje de programación de alto nivel, como C, Java, etc., o un lenguaje de programación de bajo nivel, como un lenguaje de máquina o un ensamblador. El ordenador digital electrónico también puede tener un sistema operativo, que puede proporcionar servicios de sistema a un programa de ordenador escrito con las instrucciones del programa.
Tal como se utiliza en esta solicitud, el término “circuito” se refiere a todo lo siguiente: (a) implementaciones de circuitos solo de hardware, como implementaciones en circuitos únicamente analógicos y/o digitales, y (b) combinaciones de circuitos y software (y/o firmware), como (según corresponda): (i) una combinación de procesador(es) o (ii) partes de procesador(es)/software que incluye procesador(es) de señales digitales, software y memoria(s) que trabajan juntos para hacer que un aparato realice varias funciones, y (c) circuitos, como un microprocesador(es) o una parte de un microprocesador(es), que requieren software o firmware para su funcionamiento, incluso si el software o firmware no está físicamente presente.
Esta definición de “circuito” se aplica a todos los usos de este término en esta solicitud. Como ejemplo adicional, como se usa en esta solicitud, el término “circuito” también cubriría una implementación de simplemente un procesador (o múltiples procesadores) o una parte de un procesador y su (o sus) software y/o firmware que lo acompañan. El término “circuito” también cubriría, por ejemplo, y si fuera aplicable al elemento en particular, un circuito integrado de banda base o un circuito integrado de procesador de aplicaciones para un teléfono móvil o un circuito integrado similar en un servidor, un dispositivo de red celular u otro dispositivo de red.
Una realización proporciona un programa informático incorporado en un medio de distribución, que comprende instrucciones de programa que, cuando se cargan en un aparato electrónico, se configuran para controlar el aparato para ejecutar las realizaciones descritas anteriormente.
El programa informático puede estar en forma de código fuente, en forma de código objeto o en alguna forma intermedia, y puede almacenarse en algún tipo de soporte, que puede ser cualquier entidad o dispositivo capaz de llevar el programa. Dichos soportes incluyen un medio de grabación, memoria de ordenador, memoria de solo lectura y un paquete de distribución de software, por ejemplo. Dependiendo de la potencia de procesamiento necesaria, el programa informático puede ejecutarse en un solo ordenador digital electrónico o puede distribuirse entre varios ordenadores.
Será obvio para una persona experta en la técnica que, a medida que avanza la tecnología, el concepto inventivo se puede implementar de varias formas. La invención y sus realizaciones no se limitan a los ejemplos descritos anteriormente, pero pueden variar dentro del alcance de las reivindicaciones.
Claims (11)
1. Un método para asegurar un almacenamiento de memoria en un aparato, comprendiendo el método:
recibir (202) una contraseña de usuario;
leer (206) un número aleatorio de un Módulo de Plataforma de Confianza, TPM, del aparato;
recibir (210) valores de uno o más Registros de Configuración de Plataforma del Módulo de Plataforma de Confianza;
crear (212) un blob mediante el uso del número aleatorio y los valores de uno o más registros y la contraseña de usuario;
encriptar (216) el blob en el Módulo de Plataforma de Confianza;
volver a encriptar (222) el blob encriptado en un modo de ejecución de Entorno de Ejecución de Confianza, TEE, del aparato mediante el uso de una clave específica de hardware y la contraseña de usuario; y almacenar (226) el blob reencriptado, comprendiendo el reencriptado además:
generar una sal a partir de la contraseña del usuario;
aplicar un Algoritmo de Hash Seguro, SHA, a la sal;
generar una clave Estándar de Encriptado Avanzado mediante el uso de la sal y la clave específica de hardware; y
encriptar la clave del Estándar de Encriptado Avanzado mediante el uso del Encadenamiento de Bloques de Cifrado Estándar de Encriptación Avanzado, AES-CBC.
2. El método de la reivindicación 1, que comprende además: realizar un reencriptado mediante el uso de un modo de operación de cifrado en bloque.
3. El método de cualquier reivindicación anterior, que comprende además:
recibir una contraseña de usuario;
leer el blob reencriptado almacenado;
desencriptar el blob en el modo de ejecución de Entorno de Ejecución de Confianza del aparato; desencriptar el blob en Módulo de Plataforma de Confianza; y si el desencriptado no tiene éxito aumentar el valor de un contador de fallos; de otra manera
obtener y almacenar el número aleatorio como resultado del desencriptado y almacenamiento de memoria abierta para su uso y restablecer el contador de fallos.
4. El método de la reivindicación 3, que comprende además:
si el valor del contador de fallos aumenta comparar el valor del contador de fallos con un valor umbral dado; y
eliminar el contenido del almacenamiento de memoria si el valor del contador de fallos es mayor que el valor de umbral dado.
5. El método de cualquier reivindicación anterior, en donde el número aleatorio comprende 32 bytes.
6. El método de cualquier reivindicación anterior, que comprende además: recibir una contraseña de usuario de un usuario del aparato a través de una interfaz de usuario.
7. Un aparato que comprende:
un Módulo de Plataforma de Confianza, TPM (118),
un procesador (102) que comprende un modo (104) de ejecución abierto y un modo (106) de ejecución de Entorno de Ejecución de Confianza, TEE, y
un almacenamiento (108) de memoria; en donde
el procesador (102) está en el modo de ejecución abierto configurado para
recibir (202) una contraseña de usuario;
solicitar (204) un número aleatorio del Módulo de Plataforma de Confianza, TPM;
recibir (210) valores de uno o más Registros de Configuración de Plataforma del Módulo de Plataforma de Confianza;
crear (212) un blob mediante el uso del número aleatorio y los valores de uno o más registros y la contraseña de usuario;
solicitar (214) el Módulo de Plataforma de Confianza para encriptar el blob;
solicitar (220) el modo de ejecución del Entorno de Ejecución de Confianza del procesador para volver a encriptar el blob encriptado mediante el uso de una clave específica de hardware y la contraseña de usuario; y
almacenar (226) el blob reencriptado, en donde el procesador está en el modo de ejecución de privilegios restringidos configurado para
generar una sal a partir de la contraseña de usuario;
aplicar un Algoritmo de Hash Seguro, SHA, a la sal;
generar una clave Estándar de Encriptado Avanzado mediante el uso de la sal y la clave específica de hardware; y
encriptar la clave Estándar de Encriptado Avanzado mediante el uso del Encadenamiento de Bloques de Cifrado Estándar de Encriptación Avanzado, AES-CBC.
8. El aparato de la reivindicación 7, en donde el procesador está en el modo de ejecución del Entorno de Ejecución de Confianza configurado para realizar el reencriptado mediante el uso de un modo de operación de cifrado en bloque.
9. El aparato de cualquier reivindicación anterior 7 a 8, en donde el procesador está en el modo de ejecución abierta configurado además para
recibir una contraseña de usuario;
leer el blob reencriptado almacenado;
solicitar el modo de ejecución Entorno de Ejecución de Confianza del procesador para desencriptar el blob; solicitar al Módulo de Plataforma de Confianza que desencripte el blob; y si el desencriptado no tiene éxito aumentar el valor de un contador de fallos; de otra manera
obtener y almacenar el número aleatorio como resultado del desencriptado y almacenamiento de memoria abierta para su uso y restablecer el contador de fallos.
10. El aparato de la reivindicación 9, en donde el procesador está en el modo de ejecución abierta, si el valor del contador de fallos aumenta, configurado además para
comparar el valor del contador de fallos con un valor umbral dado; y
eliminar contenido del almacenamiento de memoria si el valor del contador de fallos es mayor que el valor de umbral dado.
11. Un programa informático incorporado en un medio de distribución, que comprende instrucciones de programa que, cuando se cargan en un aparato electrónico, están configuradas para controlar el aparato para ejecutar los pasos de cualquier reivindicación anterior 1 a 6.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP16151422.9A EP3193274B1 (en) | 2016-01-15 | 2016-01-15 | Secure memory storage |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2853574T3 true ES2853574T3 (es) | 2021-09-16 |
Family
ID=55221280
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES16151422T Active ES2853574T3 (es) | 2016-01-15 | 2016-01-15 | Almacenamiento de memoria seguro |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP3193274B1 (es) |
| ES (1) | ES2853574T3 (es) |
| PL (1) | PL3193274T3 (es) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12452222B2 (en) | 2022-10-12 | 2025-10-21 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for protection for device data transfers |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8468361B2 (en) * | 2005-09-21 | 2013-06-18 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
| CN101983375A (zh) * | 2008-04-02 | 2011-03-02 | 惠普开发有限公司 | 将密码模块绑定到平台 |
| US9690941B2 (en) * | 2011-05-17 | 2017-06-27 | Microsoft Technology Licensing, Llc | Policy bound key creation and re-wrap service |
-
2016
- 2016-01-15 EP EP16151422.9A patent/EP3193274B1/en active Active
- 2016-01-15 PL PL16151422T patent/PL3193274T3/pl unknown
- 2016-01-15 ES ES16151422T patent/ES2853574T3/es active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3193274B1 (en) | 2021-01-06 |
| EP3193274A1 (en) | 2017-07-19 |
| PL3193274T3 (pl) | 2021-05-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10341091B2 (en) | Secure memory storage | |
| EP2974120B1 (en) | Trusted data processing in the public cloud | |
| ES2917183T3 (es) | Dispositivo móvil que tiene un entorno de ejecución seguro | |
| ES2904501T3 (es) | Implementación de un almacenamiento seguro con protección de integridad | |
| Eguro et al. | FPGAs for trusted cloud computing | |
| US7428306B2 (en) | Encryption apparatus and method for providing an encrypted file system | |
| US9032192B2 (en) | Method and system for policy based authentication | |
| US9448949B2 (en) | Mobile data vault | |
| US8379846B2 (en) | Encryption apparatus and method therefor | |
| US20150244522A1 (en) | Method and system for providing data security | |
| US20040117318A1 (en) | Portable token controlling trusted environment launch | |
| TW200817968A (en) | Bi-processor architecture for secure systems | |
| CN102347834A (zh) | 受信移动平台体系结构 | |
| CN111008094B (zh) | 一种数据恢复方法、设备和系统 | |
| TWI631462B (zh) | 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體 | |
| Teufl et al. | Android encryption systems | |
| JP7256862B2 (ja) | 保護されたコンテナ間のセキュア通信方法およびそのシステム | |
| US11019098B2 (en) | Replay protection for memory based on key refresh | |
| US9729319B2 (en) | Key management for on-the-fly hardware decryption within integrated circuits | |
| CN107609410A (zh) | 基于HOOK的Android系统数据保护方法、终端设备及存储介质 | |
| US10452565B2 (en) | Secure electronic device | |
| ES2853574T3 (es) | Almacenamiento de memoria seguro | |
| WO2018236351A1 (en) | Symmetrically encrypt a master passphrase key | |
| US9270649B1 (en) | Secure software authenticator data transfer between processing devices | |
| Kim et al. | An integrity-based mechanism for accessing keys in a mobile trusted module |