Generación de un nonce compartido que no se puede calcular previamente [cerrado]

1

¿Hay algún sistema actualmente disponible, que pueda generar un nonce, que todos los nodos en una red distribuida puedan acordar y calcular el mismo nonce al mismo tiempo, pero uno que un atacante no pueda calcular previamente, por ejemplo, una semana antes? , y solo tendría el nonce correcto al mismo tiempo que la red.

Si esto no es posible actualmente, ¿qué pasos son necesarios para crear dicho sistema?

    
pregunta Rich 10.02.2016 - 16:24
fuente

1 respuesta

1

[Nota: Esta pregunta se ha vuelto a publicar en crypto.SE .]

Analicemos el problema en dos partes:

El primer problema es que desea algo que parezca aleatorio para un atacante externo (es decir, es impredecible ), pero cualquiera puede calcularlo en el conocimiento .

Eso suena muy parecido a un generador de números pseudoaleatorios criptográficamente seguro (CPRNG) donde todos los nodos usan la misma semilla. Luego, cada hora (o cada minuto) puede tomar el siguiente número en la secuencia aleatoria, es decir, current_nonce = cprng.getSequence()[ numberOfHoursSinceLaunch() ]; .

El problema que debe resolverse es el problema de distribución de claves, o en este caso, el problema de distribución de semillas (ya que la semilla está actuando como secreto compartido ).

Puede consultar Protocolos de acuerdo clave :

  

En la criptografía, un protocolo de acuerdo de clave es un protocolo por el cual dos o más partes pueden acordar una clave de tal manera que ambas influyan en el resultado. ... Los protocolos que son útiles en la práctica tampoco revelan a ninguna de las partes que escuchan la clave acordada.

O puede ir a una tecnología más baja y hacer que un administrador coloque la semilla en cada nodo mediante algún método seguro (SSH, llave USB, etc.). O puede configurar una red TLS autenticada por el cliente en la que cada nodo tenga un certificado de cliente que pueda usar para solicitar la semilla. Hay muchas formas de despellejar a este gato en particular.

EDITAR en respuesta a re-publicar en crypto.se :

El segundo problema es que desea algún sistema donde incluso si un nodo tiene todo el material de las semillas, no puede calcular el secreto hasta un tiempo fijo en el futuro. Esta es en realidad una pregunta frecuente en Security.SE y Crypto.SE. El nombre genérico para esto es Criptografía de cápsula de tiempo, en un rompecabezas de bloqueo de tiempo. Aquí hay una publicación famosa sobre el tema . Hay soluciones para esto, pero todas tienen el sabor de "si ejecutas tu procesador en su totalidad, les tomará al menos X días calcular el secreto. No creo que eso sea lo que quieres".

Una solución práctica para este problema sería dar a cada nodo un certificado de cliente-SSL. Tenga un servidor maestro que genere los nonces, luego haga que los nodos inicien sesión en el maestro usando sus certificados para recuperar el nonce diario.

    
respondido por el Mike Ounsworth 10.02.2016 - 16:39
fuente

Lea otras preguntas en las etiquetas