Cómo asegurarse de que dos mensajes son de la misma persona

3

Necesito verificar que dos mensajes, que llegaron a distintos canales, provienen del mismo origen:

  • sin saber nada sobre el origen de antemano
  • los canales son de un solo sentido, solo se puede enviar un mensaje por cada uno
  • el remitente puede tener una clave pública para los destinatarios

El remitente tiene un número aleatorio que los identifica. Aparentemente puedo enviar la identificación cifrada con dos claves públicas diferentes, ¿una para cada canal? ¿Hay algún método más simple? Estaba pensando en algo así como dos funciones conmutativas, f y g para que f (g (x)) == g (f (x)) ? No necesito saber la identificación y sería un poco más seguro si no lo hiciera. Solo necesito saber que los mensajes son del mismo remitente.

    
pregunta Jan Hudec 21.06.2013 - 11:33
fuente

2 respuestas

3

El mecanismo más simple que se me ocurre:

  • El cliente elige un gran valor aleatorio como ID.
  • Encripta los datos, que contienen la ID, con las dos claves públicas separadas.
  • Envía cada mensaje a los dos canales diferentes.
  • El servidor verifica que ambas ID sean iguales y que ambas firmas estén bien.

Su seguridad aquí se basa en una combinación de la seguridad de su cifrado asimétrico (por ejemplo, RSA) y la dificultad para adivinar una identificación. Si utiliza un CSPRNG adecuado, las ID de 128 bits deberían ser suficientes.

    
respondido por el Polynomial 21.06.2013 - 12:52
fuente
2

El segundo mensaje puede contener un hash criptográfico del texto claro de (el hash criptográfico de) (cualquier información contenida en) el primer mensaje, que se envió encriptado con la clave pública del destinatario.

Para estar seguro, esto solo demuestra que el remitente B tuvo acceso al mensaje del remitente A, no de que son la misma persona. Si Eve obtiene acceso al mensaje después de que Bob lo haya recibido, puede falsificar un nuevo mensaje que dice ser de Alice.

Si el remitente puede preparar ambos mensajes de antemano, puede incluir en cada uno el hash del otro, por lo que el orden de llegada no es importante.

Otra posibilidad sería incluir en cada mensaje una clave privada o pública del mismo par de claves ad hoc . Esto puede demostrar que el remitente A y el remitente B comparten el mismo par de llaves, pero requiere que los mensajes se envíen cifrados; de lo contrario, Eva podría por ejemplo. manipular el primer mensaje, reemplazar la clave privada con uno de su propio dispositivo y falsificar un segundo mensaje con la clave pública correspondiente.

    
respondido por el LSerni 21.06.2013 - 12:54
fuente

Lea otras preguntas en las etiquetas