¿Hay alguna forma de negociar un secreto entre 2 partes sin conocimiento previo?

8

¿Hay alguna forma para que 2 partes negocien un secreto compartido (por ejemplo, una clave de sesión) sin tener un conocimiento compartido previamente?

SSL hace esto mediante el uso de cifrado asimétrico. ¿Hay alguna otra manera de lograr esto sin usar PKI?

    
pregunta paan 30.04.2011 - 08:47
fuente

2 respuestas

8

Hay Diffie-Hellman (que también puede usar SSL), pero esto solo es seguro si un atacante no puede realizar ataques activos o las partes pueden autenticarse mutuamente.

    
respondido por el frankodwyer 30.04.2011 - 08:53
fuente
6

Hay una serie de protocolos de acuerdo clave que se utilizan para establecer un secreto compartido, por ejemplo. Diffie-Hellman. El verdadero problema es: un secreto compartido, sí, ¿pero con quién?

En el mundo informático, la identidad es conocimiento. Quieres compartir un secreto con Bob pero no con nadie que se haga pasar por Bob: por lo tanto, Bob debe poder "hacer algo" que Charlie no puede; De lo contrario, no los distinguirá de forma fiable. Todos tienen las mismas computadoras, por lo que "poder hacer algo" equivale a "conocer información confidencial".

Con SSL, se utilizan certificados, lo que significa que hay criptografía asimétrica. Bob es distinto de Charlie (desde su punto de vista) porque Bob conoce la clave privada correspondiente a la clave pública que se encuentra en el certificado (y Charlie no no conoce esa clave secreta).

Para resumir: si usted y Bob conocen un secreto compartido, pueden usarlo para autenticarse mutuamente. De lo contrario, si Bob conoce un secreto no compartido, entonces este secreto es una clave privada en un par de claves pública / privada; entonces el problema se convierte en: ¿cómo sabes que la clave pública que estás a punto de usar es la de Bob? PKI es una forma de hacerlo, con la ayuda de una "autoridad" que realiza el enlace entre la identidad de Bob (que no es parte del mundo informático) y la clave pública de Bob (que está en el mundo informático).

"PKI" es un término amplio y cubre una situación degenerada, en la que usted es su propia PKI. Es decir, te encuentras con Bob una vez, y él te da su clave pública (o un hash de la misma); después, utiliza ese conocimiento para asegurarse de que está utilizando la clave de Bob "correcta". Así es como funciona SSH .

    
respondido por el Thomas Pornin 30.04.2011 - 20:02
fuente

Lea otras preguntas en las etiquetas