ES2937007T3 - Método para asegurar un sistema automatizado - Google Patents
Método para asegurar un sistema automatizado Download PDFInfo
- Publication number
- ES2937007T3 ES2937007T3 ES19736842T ES19736842T ES2937007T3 ES 2937007 T3 ES2937007 T3 ES 2937007T3 ES 19736842 T ES19736842 T ES 19736842T ES 19736842 T ES19736842 T ES 19736842T ES 2937007 T3 ES2937007 T3 ES 2937007T3
- Authority
- ES
- Spain
- Prior art keywords
- secret
- subset
- components
- gatekeeper
- value
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Telephonic Communication Services (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
Un método para asegurar un sistema que incluye un subsistema de configuración y un subsistema de producción. El subsistema de configuración está separado del subsistema de producción que comprende una pluralidad de componentes, un controlador de acceso y una entidad asegurada con un primer valor secreto. Un generador alojado en el subsistema de configuración selecciona un esquema de uso compartido de secretos y genera, a partir de un parámetro de entrada diferente del primer valor secreto, un conjunto de recursos compartidos de secretos utilizando el esquema de uso compartido de secretos. El generador asigna de forma única y envía de forma segura un recurso compartido secreto extraído del conjunto a cada uno de los componentes. El guardián obtiene un subconjunto de los secretos compartidos de los componentes y construye un segundo valor secreto a partir del subconjunto usando el esquema de secreto compartido. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Método para asegurar un sistema automatizado
(Campo de la invención)
La presente invención se refiere a métodos para asegurar sistemas automatizados. Se refiere particularmente a métodos para asegurar un sistema automatizado que incluye una entidad asegurada con un valor secreto.
(Antecedentes de la invención)
Los productos y servicios que tratan con datos sensibles siempre tienen el llamado 'último secreto'. Por ejemplo, el secreto podría ser el PIN para acceder a un Hardware Security Module (Módulo de Seguridad de Hardware - HSM) que protege las claves criptográficas. También podría ser la contraseña o la frase de paso que se usa para proteger u obtener otras claves para los almacenes de claves. Tradicionalmente, este último secreto se mantiene y presenta por una o más personas autorizadas. Este modelo no funciona en el mundo de la automatización de todas las cosas, donde los humanos normalmente no están involucrados en la operación, por ejemplo, iniciar una nueva instancia de un componente, una vez que se despliega el sistema. Como resultado, el PIN o la contraseña del HSM a menudo terminan desprotegidos en un archivo de configuración de texto sin cifrar, o incluso quedan deshabilitados. Una práctica de este tipo pone en peligro todo el sistema y la información sensible. Existe una necesidad para mitigar tales riesgos de seguridad.
El documento US2017/093564A1 describe un método para compartir secretos basándose en la distribución tanto de partes no cifradas como de partes cifradas de un nuevo secreto.
El documento titulado “Cómo compartir secretos” de Adi Shamir del MIT (fechado en noviembre de 1979) describe mecanismos de esquema umbral.
(Sumario de la invención)
La invención tiene como objetivo resolver el problema técnico mencionado anteriormente. La invención está definida por las reivindicaciones independientes adjuntas 1 y 8.
Un objeto de la presente invención es un sistema automatizado que incluye un subsistema de configuración y un subsistema de producción. El subsistema de configuración está separado del subsistema de producción que comprende una pluralidad de componentes, un controlador de acceso y una entidad asegurada con un primer valor secreto. El subsistema de configuración comprende un generador que incluye instrucciones que, cuando son ejecutadas mediante un primer procesador, hacen que dicho generador seleccione un esquema de compartición de secretos, para generar, a partir de un parámetro de entrada diferente de dicho primer valor secreto, un conjunto de partes de secreto usando el esquema de compartición de secretos y para asignar de forma única y enviar de forma segura una parte de secreto extraída del conjunto a cada uno de dichos componentes. El controlador de acceso incluye instrucciones que, cuando son ejecutadas mediante un segundo procesador, hacen que dicho controlador de acceso obtenga un subconjunto de las partes de secreto de dichos componentes, construya un segundo valor secreto a partir de dicho subconjunto usando el esquema de compartición de secretos, calcule el primer valor secreto aplicando una función preestablecida al segundo valor secreto y desbloquee el acceso a la entidad usando el primer valor secreto.
De forma ventajosa, el controlador de acceso puede configurarse para obtener el subconjunto solo cuando el acceso a la entidad está a punto de realizarse y para borrar dicho primer valor secreto de su memoria tan pronto como se desbloquee el acceso a la entidad.
De forma ventajosa, el parámetro de entrada puede incluir el segundo valor secreto.
De forma ventajosa, el controlador de acceso puede configurarse para obtener el subconjunto seleccionando componentes aleatoriamente, para elegir componentes de forma rotatoria entre el conjunto o para solicitar a todos los componentes del conjunto y tomar las primeras M respuestas.
De forma ventajosa, el controlador de acceso puede configurarse para recuperar un segundo subconjunto de las partes de secreto de dichos componentes, para crear un tercer valor secreto a partir de dicho segundo subconjunto usando el esquema de compartición de secretos, para comparar dichos segundo y tercer valores secretos y para calcular el primer valor secreto solo si dicho segundo y tercer valores secretos son iguales.
De forma ventajosa, el generador puede configurarse para escalar automáticamente el tamaño del conjunto de partes de secreto cuando se retira un componente o se crea un nuevo componente en el subsistema de producción.
De forma ventajosa, el generador puede configurarse para generar un nuevo conjunto de nuevas partes de secreto y para asignar de forma única y enviar de forma segura una nueva parte de secreto extraída de dicho nuevo conjunto a cada uno de dichos componentes que reemplaza su parte de secreto anterior con la nueva parte de secreto. De forma ventajosa, la función preestablecida puede basarse en una función criptográfica.
Otro objeto de la invención es un método implementado por ordenador para asegurar un sistema automatizado que incluye un subsistema de configuración y un subsistema de producción. El subsistema de configuración está separado del subsistema de producción que comprende una pluralidad de componentes, un controlador de acceso y una entidad asegurada con un primer valor secreto. El método comprende las etapas sucesivas:
- un generador alojado en el subsistema de configuración selecciona un esquema de compartición de secretos y genera, a partir de un parámetro de entrada diferente de dicho primer valor secreto, un conjunto de partes de secreto usando el esquema de compartición de secretos,
- el generador asigna de manera única y envía de manera segura una parte de secreto extraída del conjunto a cada uno de dichos componentes,
- el controlador de acceso obtiene un subconjunto de las partes de secreto de dichos componentes y construye un segundo valor secreto a partir de dicho subconjunto usando el esquema de compartición de secretos, - el controlador de acceso calcula el primer valor secreto aplicando una función preestablecida al segundo valor secreto, a continuación
- el controlador de acceso desbloquea el acceso a la entidad usando el primer valor secreto.
De forma ventajosa, el controlador de acceso puede obtener el subconjunto solo cuando se necesita acceso a la entidad y borrar dicho primer valor secreto de su memoria tan pronto como se desbloquee el acceso a la entidad. De forma ventajosa, el controlador de acceso puede obtener el subconjunto seleccionando componentes aleatoriamente, eligiendo componentes de forma rotatoria entre el conjunto o solicitando a todos los componentes del conjunto y tomando las primeras M respuestas.
De forma ventajosa, el controlador de acceso puede recuperar un segundo subconjunto de las partes de secreto de dichos componentes, crear un tercer valor secreto a partir de dicho segundo subconjunto usando el esquema de compartición de secretos, comparar dichos segundo y tercer valores secretos y calcular el primer valor secreto solo si dicho segundo y tercer valores secretos son iguales.
De forma ventajosa, el generador puede escalar automáticamente el tamaño del conjunto de partes de secreto cuando se retira un componente o se crea un nuevo componente en el subsistema de producción.
De forma ventajosa, el generador puede generar un nuevo conjunto de nuevas partes de secreto y, a continuación, asignar de forma única y enviar de forma segura una nueva parte de secreto extraída de dicho nuevo conjunto a cada uno de dichos componentes que reemplaza su parte de secreto anterior con la nueva parte de secreto.
De forma ventajosa, la función preestablecida puede basarse en una función criptográfica.
(Breve descripción de los dibujos)
Otras características y ventajas de la presente invención surgirán más claramente a partir de una lectura de la siguiente descripción de una serie de realizaciones preferidas de la invención con referencia a los dibujos adjuntos correspondientes, en los que:
- La Figura 1 es un ejemplo de arquitectura de un sistema automatizado según la invención; y
- La Figura 2 representa un diagrama de flujo para asegurar el sistema según un ejemplo de la invención. (Descripción detallada de las realizaciones preferidas)
La invención puede aplicarse a cualquier tipo de sistema automatizado que comprenda un entorno de configuración y un entorno de producción. Es adecuado para sistemas que incluyen una pluralidad de componentes (como servicios o microservicios) distribuidos en cualquier número de ordenadores.
La Figura 1 muestra un ejemplo de arquitectura de un sistema automatizado según la invención.
En este ejemplo, el sistema automatizado 10 se despliega en un entorno en la nube.
El sistema automatizado 10 comprende un subsistema 20 de configuración y un subsistema 30 de producción. El subsistema 30 de producción comprende tres servicios 31-33, un controlador 40 de acceso y una entidad 50 asegurada con un valor secreto S (el 'último secreto' o valor secreto final). En esta realización, la entidad 50 es un HSM cuyo acceso está protegido por el valor secreto S. Alternativamente, la entidad 50 puede ser cualquier entidad asegurada implementada como un dispositivo de hardware o un dispositivo de software.
El controlador 40 de acceso y los servicios 31-33 son componentes de software ejecutados en una pluralidad de ordenadores. El controlador 40 de acceso está diseñado para comunicarse con cada uno de los servicios 31-33 y con la entidad 50.
Preferiblemente, el controlador 40 de acceso está configurado para intercambiar datos de forma segura con los servicios 31-33 y la entidad 50 usando uno o varios protocolos de comunicación que proporcionan confidencialidad. El subsistema 20 de configuración comprende un generador 22 que está adaptado para seleccionar un esquema de compartición de secretos. Por ejemplo, el generador 22 puede configurarse con un esquema de compartición de secretos predeterminado o puede seleccionar aleatoriamente un esquema de compartición de secretos entre varios. En otra realización, el generador puede elegir un esquema de compartición de secretos según uno datos proporcionados por una entidad externa como un usuario o un ordenador.
El esquema de compartición de secretos (también llamado esquema de división de secretos) se refiere al método para distribuir un secreto inicial o la información sobre el secreto inicial entre varias unidades. Cada unidad recibe una parte y el secreto inicial puede reconstruirse solo si se reúne una cantidad suficiente de partes. Preferiblemente, el esquema de compartición de secretos usado por el generador 22 es el esquema de compartición de secretos de Shamir.
El generador 22 está configurado para obtener al menos un parámetro de entrada (que se supone que es diferente del valor secreto final S) y para generar, a partir de este parámetro de entrada, un conjunto de partes de secreto usando el esquema de compartición de secretos seleccionado. Más precisamente, el generador 22 usa el método de generación del esquema de compartición de secretos seleccionado para crear las partes de secreto.
El generador 22 está configurado tanto para asignar de forma única una parte de secreto extraída del conjunto a cada uno de los servicios del subsistema 30 de producción como para enviar de forma segura cada parte de secreto compartida a su servicio correspondiente.
En el ejemplo de la Figura 1, el generador 22 crea tres partes de secreto SC1, SC2 y SC3. A continuación, envía SC1 al servicio 31, SC2 al servicio 32 y SC3 al servicio 33. El subsistema 20 de configuración está adaptado para configurar el subsistema 30 de producción y conoce los componentes (servicios) del subsistema de producción. Por lo tanto, el generador puede tener acceso a la identidad/existencia de los servicios que pertenecen al subsistema de producción.
El envío de la parte de secreto desde el generador a los servicios se puede realizar a través de cualquiera de los siguientes métodos: escribir en la configuración de un componente, inyectar en la variable de entorno del componente o escribir como secreto en el sistema de orquestación.
Se supone que el número de servicios disponibles es lo suficientemente grande considerando el número de partes de secreto que se almacenarán.
El parámetro de entrada puede comprender unos datos que tienen un valor aleatorio y/o datos de configuración que permiten configurar el comportamiento del esquema de compartición de secretos. El parámetro de entrada también puede comprender el valor de un secreto objetivo S0 de modo que las partes de secreto se creen para permitir reconstruir el valor del secreto objetivo S0.
Para soportar la automatización, el generador 22 puede enviar partes de secreto a la configuración de cada componente de producción (por ejemplo, la configuración de cada servicio). Por ejemplo, el generador 22 puede escribir en el archivo de configuración o inyectar a través de una variable de entorno de cada servicio. Cada componente obtiene su parte del secreto de su configuración o variables de entorno.
En la realización de la Figura 1, el generador 22 es un software. Alternativamente, el generador 22 puede implementarse como una unidad de hardware (que puede incluir una parte de firmware).
El controlador 40 de acceso está adaptado para obtener un subconjunto de las partes de secreto de los servicios 31 33 y para reconstruir un valor secreto reconstruido S0 a partir de dicho subconjunto usando el esquema de compartición de secretos. Más precisamente, el controlador 40 de acceso usa el método de construcción del esquema de compartición de secretos seleccionado para crear el valor secreto reconstruido S0.
El generador puede enviar el esquema (por ejemplo, un identificador de esquema y un parámetro requerido, tal como k en el esquema de Shamir, pero no S0) al controlador de acceso usando un método similar o diferente al del generador que envía partes a servicios. Alternativamente, el propio identificador de esquema puede codificar el parámetro.
El controlador 40 de acceso también está adaptado para calcular un valor secreto final S aplicando una función preestablecida F al valor secreto reconstruido S0. La función preestablecida F puede ser una función criptográfica o estar basada en funciones matemáticas básicas, por ejemplo.
El controlador 40 de acceso está configurado para desbloquear el acceso a la entidad 50 usando el valor secreto final S.
En una realización, el valor secreto final S puede ser el valor que se presentará a la entidad 50 para desbloquear su acceso (p. ej., el PIN o el valor de la frase de paso). En otra realización, el controlador 40 de acceso puede usar el valor secreto final S para recuperar el valor secreto que se presentará a la entidad 50 para desbloquear su acceso. Por ejemplo, el controlador 40 de acceso puede desencriptar unos datos almacenados con el valor secreto final S para obtener el valor secreto que permite conceder acceso a la entidad 50. En otro ejemplo, el controlador 40 de acceso puede usar el valor secreto final S como una semilla para derivar una clave y usar esa clave para desencriptar el valor secreto que permite conceder acceso a la entidad 50.
Preferiblemente, el controlador 40 de acceso está configurado para recuperar el subconjunto de partes de secreto solo cuando el acceso a la entidad 50 está a punto de realizarse y borrar el valor secreto final de su memoria tan pronto como se desbloquee el acceso a la entidad 50. Por lo tanto, el valor secreto final se almacena en la memoria durante un tiempo muy breve, lo que reduce el riesgo de fuga debido a un ataque.
El controlador 40 de acceso está configurado para identificar el esquema de compartición de secretos usado por el generador 22 para crear las partes de secreto. En una realización, el esquema de compartición de secretos puede declararse de manera predeterminada en el controlador de acceso. Alternativamente, el controlador 40 de acceso puede recuperar un identificador del esquema de compartición de secretos del generador 22 a través de un mensaje específico.
El subsistema 30 de producción está separado del subsistema 20 de configuración. En otras palabras, hay una separación de funciones. El subsistema 20 de configuración no tiene conocimiento de la función preestablecida F y no puede encontrar el valor secreto final S. Por el contrario, el subsistema 30 de producción no tiene conocimiento del parámetro o parámetros de entrada usados por el generador 22.
Además, cabe señalar que cada uno de los servicios (del subsistema 30 de producción) solo conoce su propia parte de secreto y no conoce el esquema de compartición de secretos usado, ni el número total de partes, ni el número mínimo de partes necesarias para reconstruir el valor secreto S0.
En una realización, el controlador de acceso puede estar diseñado para recuperar dos subconjuntos de partes de secreto de los servicios, para crear dos valores secretos a partir de estos subconjuntos usando el esquema de compartición de secretos relevante, para comparar los dos valores secretos y, solo si los dos valores secretos son iguales, para calcular el valor secreto final.
En una realización, el sistema según la invención puede soportar un mecanismo de rotación de claves.
Para la rotación de claves, el generador 22 puede generar nuevas partes de secreto. Las envía a la configuración de cada uno de los componentes/servicios de producción o las inyecta a través de variables de entorno. Cabe señalar que, una operación de actualización mediante inyección no requiere que los servicios se reinicien porque no usan las partes de secreto en sí mismas. Las nuevas instancias de servicios usarán la nueva información.
Alternativamente, un componente (es decir, un servicio) puede solicitar la rotación de claves en el generador 22. Un componente puede autenticarse en el generador 22 y usar su parte de secreto actual para obtener uno nuevo. El generador 22 genera una nueva parte de secreto y la envía a la configuración del componente.
El controlador 40 de acceso puede registrarse en el generador 20 para escuchar el evento de rotación de claves. Cuando ocurre el evento, el controlador de acceso puede reconstruir el secreto según sea necesario.
De forma ventajosa, el esquema de compartición de secretos es un esquema de compartición de secretos de umbral (criptografía) como el esquema de Shamir, el esquema de Blakey o el esquema de Asmuth-Bloom. En un caso de este tipo, el generador crea N partes de secreto y cualquier subconjunto de M partes es suficiente para reconstruir el valor secreto; donde M es menor o igual a N.
Cuando el controlador 40 de acceso necesita el valor secreto final, obtiene M partes de secreto de M servicios. Por ejemplo, el controlador 40 de acceso puede elegir M servicios de los N servicios aleatoriamente. En otro ejemplo, el controlador 40 de acceso puede elegir M servicios de forma rotatoria entre los N servicios. En otro ejemplo, el controlador 40 de acceso puede solicitar todos los N servicios y tomar las primeras M respuestas.
En cuanto a la implementación, un servicio tiene una API para obtener su parte de secreto solo por el controlador de acceso o el controlador de acceso tiene una API para que los servicios envíen las partes de secreto. De cualquier manera, el controlador de acceso y los servicios están adaptados para autenticarse entre sí.
La Figura 2 muestra un diagrama de flujo para asegurar un sistema automatizado según un ejemplo de la invención. En la etapa S10, el generador 22 del subsistema 20 de configuración selecciona un esquema de compartición de secretos G y genera, a partir de un parámetro de entrada, un conjunto de N partes de secreto {P1, P2,..., Pn} usando el esquema de compartición de secretos G.
En la etapa S20, el generador 22 asigna de forma única una parte de secreto compartida extraída del conjunto de N partes a cada uno de una serie de componentes (servicios) alojados en un subsistema 30 de producción y a continuación inyecta de forma segura la parte de secreto asignada en su componente asignado.
En la etapa S30, en el subsistema de producción, el controlador 40 de acceso obtiene un subconjunto de M partes de secreto de los componentes, donde M < N. En una realización, el controlador de acceso puede establecer un canal seguro con cada uno de los servicios para obtener las M partes. Por ejemplo, cada servicio mantiene un certificado de clave pública del controlador de acceso para la encriptación de datos, y el servicio encripta su parte usando la clave pública del controlador de acceso y envía los datos encriptados. Para otro ejemplo, el controlador de acceso y un servicio pueden usar un esquema de acuerdo claves tal como DH o ECDH para establecer un canal seguro para transmitir la parte de secreto.
En la etapa S40, el controlador 40 de acceso reconstruye un valor secreto S0 a partir del subconjunto usando el esquema de compartición de secretos G.
En una realización, el controlador 40 de acceso puede realizar tanto la etapa S30 como la S40 más de una vez eligiendo diferentes subconjuntos de servicios y, por lo tanto, diferentes subconjuntos de partes de secreto. Por tanto, el controlador 40 de acceso puede comprobar que la pluralidad de valores secretos calculados S0 tiene el mismo valor. Si no es así, el controlador de acceso puede deducir que ocurrió un ataque o que ocurrió un fallo. En otra realización, el controlador 40 de acceso puede usar el esquema de Shamir que se basa en un polinomio. Puede obtener al menos M+1 partes de secreto de al menos M+1 servicios. (Siendo M el umbral mínimo de secreto compartido necesario). El controlador de acceso puede usar M partes de secreto para calcular la curva y, por lo tanto, el valor secreto S0. Puede usar la parte adicional para comprobar que el punto correspondiente está realmente en la curva del polinomio. Esta comprobación adicional permite verificar que las M+1 partes de secreto recuperadas son consistentes.
En otra realización, el controlador 40 de acceso puede comprobar la unicidad de las partes de secreto recuperadas para detectar posibles componentes falsos o maliciosos que se hagan pasar por uno legítimo.
En la etapa S50, el controlador 40 de acceso calcula el valor secreto final S aplicando una función preestablecida F al valor secreto S0.
Por ejemplo, la función preestablecida F puede ser una función de troceo criptográfica, tal como SHA256 o una función de derivación de clave, tal como PBKDF2. En otra realización, la función preestablecida F puede ser una función de identidad I, lo que significa que I(S0)=S0.
En la etapa S60, usando el valor secreto S, el controlador de acceso desbloquea el acceso a la entidad segura 50 alojada en el subsistema de producción.
El sistema de la invención es muy adecuado para componentes ampliamente distribuidos.
Preferiblemente, el generador escala automáticamente el tamaño del conjunto de partes de secreto cuando se retira un componente o se crea un nuevo componente en el subsistema de producción. Cuando se añade un nuevo servicio en el subsistema de producción, el sistema puede configurarse para generar o seleccionar una parte de secreto y asignarla de forma única al nuevo servicio. Si se retira un servicio del subsistema de producción, su parte de secreto correspondiente se puede descartar o reasignar a otro servicio adicional.
Una parte de secreto está alojada por un servicio (es decir, un componente) que ofrece sus características iniciales sin usar la parte de secreto. Cabe señalar que, varias partes de secreto pertenecientes al mismo conjunto no pueden
asignarse a un único servicio. Sin embargo, varias partes de secreto pertenecientes a diferentes conjuntos pueden asignarse a un único servicio.
Cuando se inicia una nueva instancia de un servicio existente, puede tener la misma parte de secreto que la asignada a otra instancia o instancias del mismo servicio.
Se puede ejecutar una nueva instancia de controlador de acceso (adicional) sin requerir que la instancia de controlador de acceso existente exporte o comparta el valor secreto. La nueva instancia de controlador de acceso puede calcular el secreto como se ha descrito anteriormente.
Debe entenderse, dentro del alcance de la invención, que las realizaciones descritas anteriormente se proporcionan como ejemplos no limitativos. En particular, las características descritas en las realizaciones y ejemplos presentados pueden combinarse.
Un solo generador puede abordar una pluralidad de subsistemas de producción o controladores de acceso.
La invención permite reducir el riesgo de que el valor secreto se filtre o se descargue de la memoria debido a vulnerabilidades en el anfitrión, incluyendo las de la CPU, la plataforma, el hipervisor o las aplicaciones.
Las arquitecturas del subsistema de configuración y el subsistema de producción mostradas en la Figura 1 se proporcionan solo como ejemplos. Estas arquitecturas pueden ser diferentes. Por ejemplo, el controlador de acceso puede controlar el acceso a varias entidades aseguradas.
Aunque se describe en el marco de un equipo de HSM, la invención también se aplica a cualquier tipo de entidades aseguradas.
Claims (13)
- REIVINDICACIONESi. Un sistema automatizado (10) que incluye un subsistema (20) de configuración y un subsistema (30) de producción,estando separado el subsistema de configuración del subsistema de producción que comprende una pluralidad de componentes (31-33), un controlador (40) de acceso y una entidad (50) asegurada con un primer valor secreto,comprendiendo el subsistema de configuración un generador (22) que incluye instrucciones que, cuando son ejecutadas mediante un primer procesador, hacen que dicho generador seleccione un esquema de compartición de secretos, para generar, a partir de un parámetro de entrada diferente de dicho primer valor secreto, un conjunto de partes de secreto usando el esquema de compartición de secretos y para asignar de forma única y enviar de forma segura una parte de secreto extraída del conjunto a cada uno de dichos componentes,incluyendo el controlador de acceso instrucciones que, cuando son ejecutadas mediante un segundo procesador, hacen que dicho controlador de acceso obtenga un primer subconjunto de las partes de secreto de dichos componentes, para construir un segundo valor secreto a partir de dicho primer subconjunto usando el esquema de compartición de secretos, para calcular el primer valor secreto aplicando una función preestablecida al segundo valor secreto y para desbloquear el acceso a la entidad usando el primer valor secreto,caracterizado por queel controlador de acceso está configurado para recuperar un segundo subconjunto de las partes de secreto de dichos componentes, para crear un tercer valor secreto a partir de dicho segundo subconjunto usando el esquema de compartición de secretos, para comparar dichos segundo y tercer valores secretos y para calcular el primer valor secreto solo si dichos segundo y tercer valores secretos son iguales; siendo dicho segundo subconjunto diferente de dicho primer subconjunto.
- 2. El sistema según la reivindicación 1, en donde dicho controlador de acceso está configurado para obtener el primer subconjunto solo cuando el acceso a la entidad está a punto de realizarse y para borrar dicho primer valor secreto de su memoria tan pronto como se desbloquee el acceso a la entidad.
- 3. El sistema según la reivindicación 1, en donde dicho parámetro de entrada incluye dicho segundo valor secreto.
- 4. El sistema según la reivindicación 1, en donde dicho controlador de acceso está configurado para obtener el primer subconjunto seleccionando componentes aleatoriamente, para elegir componentes de forma rotatoria entre el conjunto o para solicitar a todos los componentes del conjunto y tomar las primeras M respuestas.
- 5. El sistema según la reivindicación 1, en donde el generador está configurado para escalar automáticamente el tamaño del conjunto de partes de secreto cuando se retira un componente o se crea un nuevo componente en el subsistema de producción.
- 6. El sistema según la reivindicación 1, en donde el generador está configurado para generar un nuevo conjunto de nuevas partes de secreto y para asignar de forma única y enviar de forma segura una nueva parte de secreto extraída de dicho nuevo conjunto a cada uno de dichos componentes que reemplaza su parte de secreto anterior con la nueva parte de secreto.
- 7. El sistema según la reivindicación 1, en donde dicha función preestablecida está basada en una función criptográfica.
- 8. Un método implementado por ordenador para asegurar un sistema automatizado (10) que incluye un subsistema (20) de configuración y un subsistema (30) de producción,estando separado el subsistema de configuración de dicho subsistema de producción que comprende una pluralidad de componentes (31-33), un controlador (40) de acceso y una entidad (50) asegurada con un primer valor secreto,comprendiendo el método las etapas sucesivas:- un generador (22) alojado en el subsistema de configuración selecciona un esquema de compartición de secretos y genera, a partir de un parámetro de entrada diferente de dicho primer valor secreto, un conjunto de partes de secreto usando el esquema de compartición de secretos,- el generador asigna de manera única y envía de manera segura una parte de secreto extraída del conjunto a cada uno de dichos componentes,- el controlador de acceso obtiene un primer subconjunto de las partes de secreto de dichos componentes y construye un segundo valor secreto a partir de dicho primer subconjunto usando el esquema de compartición de secretos,- el controlador de acceso calcula el primer valor secreto aplicando una función preestablecida al segundo valor secreto, a continuación- el controlador de acceso desbloquea el acceso a la entidad usando el primer valor secreto caracterizado por que el controlador de acceso recupera un segundo subconjunto de las partes de secreto de dichos componentes, crea un tercer valor secreto a partir de dicho segundo subconjunto usando el esquema de compartición de secretos, compara dichos segundo y tercer valores secretos y calcula el primer valor secreto solo si dichos segundo y tercer valores secretos son iguales, siendo dicho segundo subconjunto diferente de dicho primer subconjunto.
- 9. El método según la reivindicación 8, en donde dicho controlador de acceso obtiene el primer subconjunto solo cuando se necesita acceso a la entidad y borra dicho primer valor secreto de su memoria tan pronto como se desbloquea el acceso a la entidad.
- 10. El método según la reivindicación 8, en donde el controlador de acceso obtiene el primer subconjunto seleccionando componentes aleatoriamente, elige componentes de forma rotatoria entre el conjunto o solicita a todos los componentes del conjunto y toma las primeras M respuestas.
- 11. El método según la reivindicación 8, en donde el generador escala automáticamente el tamaño del conjunto de partes de secreto cuando se retira un componente o se crea un nuevo componente en el subsistema de producción.
- 12. El método según la reivindicación 8, en donde el generador genera un nuevo conjunto de nuevas partes de secreto y, a continuación, asigna de forma única y envía de forma segura una nueva parte de secreto extraída de dicho nuevo conjunto a cada uno de dichos componentes que reemplaza su parte de secreto anterior con la nueva parte de secreto.
- 13. El método según la reivindicación 8, en donde dicha función preestablecida está basada en una función criptográfica.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/983,233 US10805079B2 (en) | 2018-05-18 | 2018-05-18 | Method for securing an automated system |
| PCT/US2019/032668 WO2019222501A1 (en) | 2018-05-18 | 2019-05-16 | Method for securing an automated system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2937007T3 true ES2937007T3 (es) | 2023-03-23 |
Family
ID=67185693
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19736842T Active ES2937007T3 (es) | 2018-05-18 | 2019-05-16 | Método para asegurar un sistema automatizado |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10805079B2 (es) |
| EP (1) | EP3794482B1 (es) |
| ES (1) | ES2937007T3 (es) |
| WO (1) | WO2019222501A1 (es) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10880072B2 (en) * | 2018-06-20 | 2020-12-29 | Verizon Patent And Licensing Inc. | Systems and methods for controlled random endorsement in a blockchain network |
| US20220271933A1 (en) * | 2021-02-19 | 2022-08-25 | Samsung Electronics Co., Ltd. | System and method for device to device secret backup and recovery |
| CN113079008B (zh) * | 2021-04-26 | 2021-11-16 | 北京玻色量子科技有限公司 | 数据通信方法、装置以及系统 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4771942B2 (ja) * | 2004-04-23 | 2011-09-14 | パナソニック株式会社 | 個人情報管理装置、分散鍵記憶装置、個人情報管理システム、個人情報管理方法、コンピュータプログラム、記録媒体及び集積回路 |
| US9768953B2 (en) * | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
-
2018
- 2018-05-18 US US15/983,233 patent/US10805079B2/en active Active
-
2019
- 2019-05-16 EP EP19736842.6A patent/EP3794482B1/en active Active
- 2019-05-16 WO PCT/US2019/032668 patent/WO2019222501A1/en not_active Ceased
- 2019-05-16 ES ES19736842T patent/ES2937007T3/es active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3794482B1 (en) | 2022-12-07 |
| WO2019222501A1 (en) | 2019-11-21 |
| EP3794482A1 (en) | 2021-03-24 |
| US10805079B2 (en) | 2020-10-13 |
| US20190356487A1 (en) | 2019-11-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7015904B2 (ja) | セキュア実行プラットフォームのクラスタ | |
| TWI740409B (zh) | 使用密鑰之身份驗證 | |
| EP3066610B1 (en) | Data protection in a storage system using external secrets | |
| US9317708B2 (en) | Hardware trust anchors in SP-enabled processors | |
| CN119312348A (zh) | 外围设备 | |
| US20190238323A1 (en) | Key managers for distributed computing systems using key sharing techniques | |
| TWI729462B (zh) | 基於fpga硬體的安全計算方法和裝置 | |
| US10567362B2 (en) | Method and system for an efficient shared-derived secret provisioning mechanism | |
| EP3694142A1 (en) | Management and distribution of keys in distributed environments (ie cloud) | |
| US10650169B2 (en) | Secure memory systems | |
| ES2937007T3 (es) | Método para asegurar un sistema automatizado | |
| CN111191217A (zh) | 一种密码管理方法及相关装置 | |
| KR20210021284A (ko) | 보호된 컨테이너 간의 보안 통신 방법 및 그러한 시스템 | |
| WO2020078804A1 (en) | Puf based securing of device update | |
| Assiri et al. | Homomorphic password manager using multiple-hash with PUF | |
| CN109891823A (zh) | 凭证加密 | |
| Sharma et al. | Survey paper on cloud storage security | |
| KR102803138B1 (ko) | 키 관리 서비스 제공방법 및 이를 위한 시스템 | |
| Rana | CephVault: A Secure Key Management System (KMS) for Ceph | |
| da Costa Silva | LWSEE: Lightweight Secured Software-Based Execution Environment | |
| Ferreira | LWSEE: Lightweight Secured Software-Based Execution Environment | |
| Dinca et al. | A framework for user-centric key sharing in personal sensor networks | |
| Khedia et al. | A review on hybrid techniques of security in cloud computing | |
| Yang | Design of Data Secure Storage for Cloud Compute ring | |
| BR112019013584A2 (pt) | Endereçamento de um ambiente de execução confiável usando a chave de assinatura |