¿Cómo le daría una clave de cifrado a una sola persona?

3

Digamos que tengo un mensaje cifrado. Quiero hacerlo para que alguien pueda descifrarlo. La única forma de dárselos es en línea. Para los fines de esta pregunta, no puedo llamar, enviar por correo o reunirme con ellos en persona.

Quiero asegurarme de que solo ellos puedan descifrarlo. Sé que el método de comunicación (lo que usted quiera que sea) no se monitorea todavía , pero el mensaje se puede leer en cualquier momento. ¿Cómo haría esto?

    
pregunta Jon 23.12.2013 - 08:57
fuente

7 respuestas

9

La respuesta a su situación, presentada tal como es, es que es imposible a menos que haga ciertas suposiciones.

Tienes dos problemas que debes resolver para que esto funcione. Para este ejemplo, usaré a Alice y Bob como ejemplos.

  1. Necesitas que Alice y Bob intercambien las claves de manera segura. Este es el problema fácil . Cualquier método de intercambio de claves como Diffie-Hellman o RSA funcionará.

  2. Alice necesita para saber que está realizando el intercambio de claves con Bob. Este es el problema difícil que es imposible de lograr en su escenario sin hacer algunas suposiciones. Vamos a explorar algunas de las opciones que tenemos.

    • Bob publica una clave pública que Alice utilizará para cifrar la clave de cifrado. Sin embargo, ¿cómo sabría Alice que esta clave pública pertenece a Bob? Históricamente, hay dos formas de lograr esto.

      1. certificados X.509 . El estándar X.590 es un modelo de confianza centralizado en el que debe confiar en una Autoridad de certificación para verificar la identidad de Bob. Alice tiene que confiar en la Autoridad de certificación de que esta clave pública en particular pertenece a Bob y no a un atacante malicioso. Este es el modelo utilizado en TLS / SSL .

      2. PGP / GnuPU . PGP utiliza un modelo de confianza descentralizado comúnmente denominado Web of Trust. Esto funciona al hacer que muchos usuarios diferentes firmen la clave pública de Bob, esencialmente respaldando que la clave pública particular pertenece a Bob. En este modelo, Alice tiene que confiar en que solo el real Bob puede obtener suficientes avales de los usuarios.

    • Sé que su pregunta asume que no hay un medio fuera de banda para que Alice verifique la identidad de Bob. Sin embargo, con la esperanza de que esta respuesta sea más completa, también cubriré esta situación un poco. Si Alice puede encontrarse con Bob una vez, la situación se vuelve mucho más fácil. Alice y Bob pueden simplemente intercambiar claves públicas a través de un medio como unidades USB y usar las claves públicas para encriptar más comunicaciones.

Básicamente, lo que estás preguntando es una Infraestructura de clave pública . Como de costumbre, no reinvente la rueda fuera de los propósitos académicos. Use TLS / SSL o PGP / GnuPG en la práctica.

    
respondido por el Ayrx 23.12.2013 - 11:52
fuente
2

Puedes usar cualquier protocolo de intercambio de claves. Lo más probable es que intercambio de claves Diffie-Hellman se utiliza para intercambiar claves a través de Internet.

    
respondido por el Rohit 23.12.2013 - 09:24
fuente
2

Para saber que le está dando la clave de cifrado a la persona correcta, deberá elaborar algún tipo de autenticación que le indique que el receptor es quien cree que es.

Esto se puede hacer a menudo con PKI: el receptor puede registrarse con un proveedor de certificados, verificar sus credenciales, obtener un certificado firmado y enviarle su certificado. El certificado incluirá una clave pública, que (si está configurada correctamente) se puede utilizar como una clave de cifrado asimétrica. Cifre la clave de cifrado simétrica con la clave pública del receptor y envíesela. Luego puede usar su clave privada para descifrarla. Como la única persona que posee esta clave privada, él es la única persona que puede obtener la clave de cifrado para su mensaje.

La limitación aquí es que su punto de confianza (el proveedor de certificados PKI) es tan bueno como el mecanismo de autenticación. Si su colega vive en un iglú en el Polo Norte y no puede tener ningún contacto con humanos, sus medios de autenticación se limitarán a las cosas que tiene con él en el iglú, probablemente su conexión a Internet y su billetera. Es posible que pueda enviar un escaneo de una licencia de conducir o pasaporte, o una copia física de su firma. Él puede saber alguna información sobre sí mismo que solo él podría conocer. Eso lo calificará para una PKI de bajo nivel (creo que, por ejemplo, puede obtener un certificado de GoDaddy en estas condiciones). Es posible que otras formas de aprovisionamiento de certificados requieran comparecer en persona ante un agente calificado que verificará que se parece a su pasaporte y que se aprueban otros medios de verificación. Eso funciona bien para una situación normal en la que usted y su colega no puedan hablar fuera de banda, pero su colega no está necesariamente en un iglú.

Los protocolos como TLS también pueden funcionar (es un apretón de manos con un intercambio de claves que permite la comunicación segura entre dos puntos). El único desafío es saber con certeza que ha establecido una conexión TLS con el destinatario y no un hombre en el medio. .

    
respondido por el bethlakshmi 23.12.2013 - 17:16
fuente
1

Parece que podría usar el protocolo de Seguridad de la capa de transporte (TLS) que es resistente a cualquier persona que escucha el canal. . Simplemente haga que la otra parte le envíe su certificado y deje que TLS se encargue del resto.

Usar la autenticación unilateral con la otra parte (digamos, Bob) actuando como servidor debería ser suficiente para su escenario. Si la otra parte no tiene acceso a la clave privada correspondiente del certificado, entonces no podrá descifrar la clave pre-maestra (enviada por usted, cifrada con la clave pública del certificado) y el protocolo de enlace TLS fallará. Si elige utilizar Diffie-Hellman (DH) en el protocolo de enlace TLS, entonces ofrece un perfecto secreto hacia adelante: sus comunicaciones anteriores aún son seguras incluso si alguien descubrió la clave privada de Bob.

Sin embargo, todavía necesitas algún tipo de mecanismo de autenticación para asegurarte de que el certificado pertenece al Bob y no a alguien más. Por lo tanto, Bob no puede utilizar un certificado autofirmado. Deberá registrar su certificado ante una autoridad de certificación que idealmente verificará su identidad para usted.

    
respondido por el jingyang 23.12.2013 - 10:26
fuente
0

La capacidad de hacer esto depende de poder verificar la identidad del sujeto a través de las comunicaciones que realice. Es posible usar un protocolo de intercambio de claves para garantizar que cada punto final de una comunicación sea el único que tenga una clave compartida; sin embargo, necesita una forma de verificar que no haya un hombre en el medio que tenga una conexión. Abierto tanto a Adam como a Bob.

En teoría, podría combinar la respuesta al desafío con la clave de sesión acordada entre las dos partes y hacer un hash de eso. Intercambiar el hash verificaría teóricamente que la conexión es correcta siempre que el intercambio de claves derive de la clave compartida en función de la información determinada por ambas partes (es decir, el atacante no puede obligar a las sesiones A y Bs a usar la misma clave) y la El hash no se puede revertir fácilmente. El atacante nunca sabría la respuesta real para responder al desafío, por lo que no podrían crear el hash para la segunda parte de la comunicación.

Tenga en cuenta que puede haber otras debilidades criptográficas aquí y que hay muchos problemas potenciales que podrían surgir, sin embargo, esa es la única manera en la que puedo pensar incluso para abordar su problema como se indica. Si no tienes ninguna respuesta precompartida que pueda autenticar la identidad de la persona, entonces estás fuera de suerte.

    
respondido por el AJ Henderson 23.12.2013 - 17:51
fuente
0

Yo usaría los certificados de correo electrónico gratuitos disponibles de, por ejemplo, comodo.com. Ambas partes deben obtener e instalar el certificado en su cliente de correo electrónico. Luego puede cifrar el correo electrónico al remitente específico una vez que él / ella le haya enviado un correo electrónico firmado digitalmente. Eso autentica a la dirección de correo electrónico. Si no puede confiar en la dirección de correo electrónico, tiene algunos de los problemas descritos en las otras soluciones y no puedo ayudarle. El mensaje cifrado podría enviarse como un archivo adjunto o colocarse en otro lugar de la web que sea accesible para ambas partes. Como se describe en otras soluciones, esto utiliza PKI construida alrededor de la autenticación de direcciones de correo electrónico. Confía en el cliente de correo electrónico y en el generador de certificados para autenticar a la otra parte, ya que autentican la dirección de correo electrónico mediante el envío de un correo electrónico que requiere una respuesta.

    
respondido por el kgwilson 23.12.2013 - 19:25
fuente
0

Dice que quiere asegurarse de que su amigo sea la única persona que reciba la clave, pero no proporcionó ninguna forma de determinar quién es . Usted dice que no puede llamar o reunirse en persona, pero su identidad en persona es la única forma en que lo conoce. Solo quiere comunicarse con él en línea, pero no sabe quién está en línea.

Si tiene un protocolo de enlace secreto compartido, un toque secreto, una contraseña secreta u otra característica de identificación preestablecida, entonces se puede aprovechar en línea para llevar a la identificación. Pero tal como está, tu amigo se distingue de cualquier otra persona. De hecho, ¿cómo sabría él que lo estás contactando si no puedes coordinar con él?

Todo este prospecto no es titular.

    
respondido por el tylerl 23.12.2013 - 19:33
fuente

Lea otras preguntas en las etiquetas