Cuando se utiliza el cifrado de clave simétrica, ¿debemos firmar?

9

Supongamos que estamos utilizando una clave compartida entre dos partes, que se ha distribuido mediante cifrado de clave pública, ¿sigue siendo necesario firmar algún dato que esté cifrado mediante la clave compartida? ¿O es suficiente suponer que debido a que la clave compartida se distribuyó mediante una clave pública criptográfica, y esperamos solo conocida por las dos partes involucradas, no es necesario firmar el mensaje para autenticar al remitente?

Básicamente, ¿el cifrado de clave simétrica da alguna autenticidad, y posiblemente no repudio?

    
pregunta Kumalh 04.11.2012 - 05:04
fuente

2 respuestas

14

El cifrado con una clave simétrica secreta no prueba la autenticidad a menos que use un modo de operación de cifrado autenticado como GCM . Los algoritmos de cifrado autenticados generan un Código de autenticación de mensaje (MAC) además de cifrar el mensaje, y si la clave compartida está bien asegurada, esto puede usarse para probar la autenticidad e integridad del mensaje pero no el no repudio (esto es un gran "si", más adelante).

El cifrado de clave simétrica regular con una clave compartida no prueba la integridad ni la autenticidad del mensaje porque nada impide que un atacante genere un mensaje aleatorio que el receptor descifre y acepte. Aunque el atacante no sabe qué aspecto tendrá el mensaje descifrado, hay muchas situaciones en las que el que el receptor acepte un mensaje generado aleatoriamente puede ser ventajoso para un atacante.

Solo alguien con acceso a la clave simétrica puede generar un MAC de un mensaje, por lo tanto, usar el cifrado autenticado con una clave simétrica debidamente asegurada es suficiente para autenticar el mensaje. Los MAC no proporcionan el no repudio porque en la criptografía simétrica el receptor también tiene la misma clave secreta, por lo que no hay forma de que el receptor demuestre que el remitente y no el receptor firmaron el mensaje.

Como se destacó anteriormente, el uso de una clave compartida para la autenticación requiere que la clave compartida esté bien protegida. Específicamente, si el receptor genera la clave simétrica y la envía al remitente cifrada asimétricamente con la clave pública del receptor (que es la forma habitual de enviar claves de cifrado mediante PKI), esta clave simétrica no se puede utilizar para demostrar la autenticidad de los mensajes enviados por El remitente ya que nada en el proceso prueba la identidad del remitente. Cualquier persona con acceso a la clave pública del receptor (que después de todo es pública) puede generar una clave simétrica aleatoria y cifrarla con la clave pública del receptor.

Una clave simétrica se puede usar para autenticar un mensaje solo si el esquema para generar la clave simétrica compartida incluye autenticación bidireccional. Los esquemas que incluyen autenticación bidireccional para generar claves compartidas para firmar y cifrar mensajes se conocen comúnmente como un canal autenticado seguro o SAC.

    
respondido por el David Wachtfogel 04.11.2012 - 08:57
fuente
11

El cifrado no protege contra alteraciones maliciosas. Si encripta algunos datos con un cifrado de flujo como RC4 o AES-CTR, entonces un atacante puede decidir voltear cualquier bit que quiera en el texto cifrado, y, al descifrarlo, esto voltea el bit correspondiente en el texto plano. Esto permite modificaciones quirúrgicas. Con los cifrados de bloque en el modo CBC, las cosas son un poco menos quirúrgicas, pero aún lo suficientemente contenidas para permitir que el atacante haga muchas cosas ingeniosas (con CBC y un cifrado de bloque con bloques de 16 bytes, si el atacante invierte un bit, entonces esto codifica el bloque correspondiente y voltea el bit correspondiente en el siguiente bloque).

Por lo tanto, necesita integridad comprobada así como cifrado. Algunos modos de cifrado para cifrados de bloque, como EAX , combinan el cifrado y una verificación de integridad. De lo contrario, un MAC independiente puede hacer el truco (pero combinando el cifrado y un MAC correctamente no es una tarea totalmente obvia , por lo que le recomendamos que utilice modos en los que todos Se ha realizado el trabajo duro de especificación, es decir, EAX).

Algunas personas usan el término "firma" para un MAC; Es un uso inadecuado pero generalizado. Un MAC, y a fortiori mero cifrado no protegido, no proporcionan no repudio . El no repudio consiste en tener una prueba que se pueda utilizar contra el firmante; Posiblemente, algo que podría convencer a un tercero como un juez. Un cálculo que utiliza un secreto compartido entre el remitente y el receptor no puede ser una prueba convincente, ya que, por definición, tanto el remitente como el receptor lo saben (y la disputa es entre el remitente y el receptor). El no repudio es una noción compleja con ramificaciones legales, pero, como mínimo, la parte de la computadora debe usar la verdadera firmas digitales se calculan sobre los datos que no se deben repudiar (y no solo sobre una clave compartida).

Nota al margen: por las mismas razones, SSL no proporciona no repudio, incluso cuando se usa un certificado del lado del cliente. Si un servidor SSL registra todo acerca de una conexión SSL de un cliente y el cliente se autentica con un certificado, entonces el servidor puede tener una prueba de que un cliente determinado realmente llegó, pero el servidor no puede probar algo a un tercero sobre lo que el cliente envió en el túnel SSL. Esto es realmente un problema legalmente desafiante cuando se trata de banca en línea.

    
respondido por el Thomas Pornin 05.11.2012 - 03:13
fuente

Lea otras preguntas en las etiquetas