¿Podemos confiar un momento en secreto?

1

Alicia: necesito el archivo

Bob: Claro, y quiero cifrarlo primero. Ponga la clave simétrica PGP con el método de copiar y pegar en enlace y envíeme el enlace.

Alicia. Hecho, la URL es xxxxxxxx

Bob: Muy gracioso, el enlace está vacío.

Alice: Lo sé, solo fue una prueba si puedo confiar en ti ... Aquí está la correcta, xxxxxxxx

Bob: muchas gracias. ¿Has visto en el último episodio de Big Brother UK, la escena con el corte de pelo?

Alice: ¿Tengo qué?

Bob: Malika ha usado un clipper de una manera cómoda ...

Alicia: Hmm.

Bob: Olvídalo, aquí el archivo adjunto de correo electrónico, fuertemente encriptado con el algoritmo AES128. Diviértete.

Alice: gracias, también. De nada. Adios

Alice y Bob han usado un servicio entre ellos para intercambiar una contraseña. La primera mirada es, que han hecho todo bien. Pero tienen que confiar en el sitio web en ocasiones seguras. Si el atacante posee el sitio web, también conoce la clave simétrica de PGP. ¿Cuál es la mejor alternativa para intercambiar una clave?

    
pregunta Manuel Rodriguez 27.04.2018 - 06:34
fuente

4 respuestas

3

El intercambio de claves se realiza de forma rutinaria sin utilizar servicios externos, mediante el uso de criptografía. El algoritmo de intercambio de claves más popular es Diffie-Hellman .

Citando Wikipedia:

  

El método de intercambio de claves Diffie-Hellman permite a dos partes que no se conocen entre sí establecer conjuntamente una clave secreta compartida a través de un canal inseguro .

Si usa Diffie-Hellman, no use la versión anónima, sino DH fija o efímera. Consulte esta respuesta .

Claramente, no haga rodar su propia criptografía para nada real (es decir, fuera del autoestudio). Usa algo como OpenSSL para eso.

    
respondido por el A. Darwin 27.04.2018 - 07:49
fuente
1
  

¿Cuál es la mejor alternativa para intercambiar una clave?

¿Mejor de qué manera? ¿Seguridad? ¿Simplicidad?

En el caso de la seguridad, tenga múltiples métodos de transmisión de claves.

Por ejemplo, proporcione 10 caracteres a través del teléfono, 10 caracteres a través del texto, algunos más a través de onetimesecret, otros más a través del sitio web otro (por ejemplo, enlace ).

De esta manera, incluso si uno de los sitios web / método de transmisión no es confiable, no tienen la clave completa, pero solo una pequeña parte de ella.

Por supuesto, en lugar de texto simple, también puede cifrarlo primero con la clave pública de Alice. Si lo desea, también puede proporcionar información de inútil (o no suficiente) para que Alice encuentre fácilmente la clave correcta.

Por ejemplo, indique a Alice "ABC", "123", "! @ #" y "XYZ" a través de diferentes métodos de transmisión cuando la clave completa sea "XYZ123ABC" ("! @ #" no se usa).

Es decir, que Alice permute todas las piezas dadas.

    
respondido por el jvkbzowtb 27.04.2018 - 07:24
fuente
1

No confiaría en un tercero para almacenar secretos, sin embargo, me gusta la conveniencia de poder compartir a través de un enlace URL.

Para intentar obtener lo mejor de ambos mundos, escribí self-destruct-o ( enlace ).

Es un concepto similar al de un momento a otro pero con algunas ventajas:

  • Es trivial ejecutar su propia instancia, código e instrucciones aquí: enlace
  • No se requieren servidores! (aunque necesitará una cuenta de Amazon AWS). ¡El backend puede ejecutarse en el nivel gratuito!
  • Al proporcionar una frase de contraseña para el secreto, deriva una clave de cifrado de la frase de contraseña y luego cifra el valor utilizando AES-256 en el modo CBC en su navegador antes de enviarlo al servicio backend.

Puede enviar el enlace por correo electrónico y compartir la contraseña a través de un segundo canal (por ejemplo: teléfono, sms) y puede estar seguro de que nadie puede interceptar el secreto.

Más detalles aquí: enlace

    
respondido por el Mark Steele 26.09.2018 - 04:08
fuente
0

Hay muchas maneras, cómo compartir las claves correctamente. Por ejemplo, si logró verificar una clave pública de PGP, puede usarla para cifrar. Sin embargo, esto siempre requeriría cierta cantidad de verificación en persona para estar perfectamente seguro.

Sin embargo, si desea una solución que sea lo más parecida a su ejemplo y "lo suficientemente segura", hay un buen servicio llamado privatebin . Es de código abierto y usted puede hospedarlo usted mismo. Lo más importante es que el pegado está cifrado en su navegador usando una clave simétrica, que es parte del enlace. Se descifra en el navegador de destinatarios. Por lo tanto, el propietario del sitio de Privatebin no puede leer tu pegado sin poder ver tu conversación y obtener el enlace.

Otra opción es la criptografía social, por ejemplo, utilizando Deamonsaw . La forma en que funciona la criptografía social es que utiliza el conocimiento compartido para crear capas de contraseñas. Entonces, por ejemplo, le pide a la otra persona que use el lugar que se reunió por primera vez como contraseña para la primera capa. Luego, les pregunta algo más para el segundo, y así sucesivamente, hasta que confíe en que solo la persona correcta podría conocer todas las respuestas.

    
respondido por el Peter Harmann 27.04.2018 - 10:43
fuente

Lea otras preguntas en las etiquetas