¿Por qué usaría MAC sobre la firma digital?

5

Hasta donde he leído, no hay ningún beneficio de un MAC sobre una firma digital, excepto el hecho de que es más rápido de generar y procesar.

¿Es esto cierto? Las firmas digitales (encriptación asimétrica) parecen haberse hecho lo suficientemente rápidas como para que casi todos los sitios web las usen. Así que no puede ser un inconveniente tan grande hoy en día.

¿Me estoy perdiendo algo importante?

    
pregunta Wolfgang 24.08.2017 - 10:01
fuente

3 respuestas

6

El rendimiento solo es una razón para usar MAC.

Considera una conexión TLS. Para cada paquete, la parte receptora debe verificar que el paquete no fue modificado en tránsito por un atacante de hombre en el medio. Por lo tanto, para cada paquete, el remitente debe calcular una firma / MAC y el receptor debe verificarlo. Si quiere, digamos, una velocidad de transferencia de 10MB / s y un promedio de 10kB / paquete, eso significa que solo tiene una fracción de 1 ms para calcular o verificar la firma. Eso es demasiado lento para una firma digital.

La cantidad de tiempo que se tarda en crear y verificar una firma asimétrica es lo suficientemente pequeña como para no ser un problema si lo hace una vez que se establece una conexión, asumiendo que tiene un hardware de gama alta como una PC, un servidor o teléfono inteligente (puede ser un problema en dispositivos integrados). Pero no funciona si necesita hacerlo una vez por paquete.

Una firma digital tiene la ventaja de que puede ser verificada por una parte que no puede generar una firma falsa. Esto no es útil en un caso como una conexión TLS. Para TLS, las dos partes configuran una clave de sesión, que es una clave simétrica que se genera aleatoriamente al inicio de la conexión. Después de eso, las dos únicas partes que conocen la clave son el cliente y el servidor. Si el cliente ve un MAC válido (que no se generó a sí mismo), solo puede haber sido producido por el servidor, y viceversa. De manera similar, una vez que se ha generado la clave de sesión, se utiliza (y no la criptografía asimétrica) para el cifrado.

(Hablando correctamente, la misma clave no debería usarse para diferentes propósitos como MAC y cifrado, incluso si tiene el formato correcto. Simplifiqué las cosas un poco más arriba. La "clave de sesión" es en realidad un secreto material del que se derivan una clave de cifrado y una clave MAC, o, en algunos conjuntos de cifrados, se deriva una única clave de cifrado autenticada, aunque el algoritmo AE deriva internamente dos claves.)

    
respondido por el Gilles 23.09.2017 - 15:10
fuente
1

Tanto HMAC como la firma se pueden usar para verificar la integridad de los datos y la autenticación de los mensajes. Sin embargo, las firmas también proporcionan la propiedad de no repudio: dado un mensaje y su firma, usted puede probar que el remitente ha escrito el mensaje.

Es posible que no desee esta propiedad. Por ejemplo, es posible que desee intercambiar mensajes en privado con alguien en quien no confíe. Si sus mensajes están firmados, la otra parte podrá divulgar un mensaje comprometedor y demostrar que lo escribió. Al usar HMAC, puede estar seguro de la privacidad de la conversación, pero la otra parte no podrá probar que escribió este mensaje de compromiso porque también podrían haberlo escrito.

    
respondido por el A. Hersean 24.08.2017 - 11:22
fuente
0

Creo que podría haber pensado una posible respuesta.

Con una firma, el receptor (aplicación cliente) puede estar seguro de que el mensaje provino del remitente (aplicación de servidor). Pero si la aplicación del cliente ahora envía algo de vuelta al servidor (otra solicitud HTTP que publica algunos datos), el servidor no puede estar seguro de que el mensaje provenga realmente de la misma aplicación del cliente: cualquier posible cliente podría usar la clave pública del servidor para crear dicho mensaje. .

Por otra parte, si comparten un secreto (como en HMAC), hay al menos cierta medida de certeza de que el mensaje se originó en la aplicación del cliente esperado.

El problema con esto parece ser que una sal secreta para la creación de MAC realmente no vale mucho para los clientes no confiables (javascript o aplicaciones móviles), ya que siempre se pueden violar.

    
respondido por el Wolfgang 24.08.2017 - 11:32
fuente

Lea otras preguntas en las etiquetas