MAC's y falsificación

3

¡Estoy tomando un curso de seguridad de la información y tengo muchas preguntas sin responder!

Aprendí que el cifrado no garantiza la autenticación, lo que tiene sentido para mí, pero todos los ejemplos de la conferencia y los que he encontrado en Google me parecen muy artificiales o teóricos. Por ejemplo, un ejemplo fue que el atacante podría modificar algunos bits en el texto cifrado para aumentar o disminuir la cantidad de dinero que se necesita transferir. Pero, ¿cómo debería alguien saber la posición exacta de los bits que representan esta cantidad? ¿Podría alguien proporcionar un ejemplo más realista o explicar por qué esto es realista?

Una segunda pregunta es acerca de la autenticación con funciones hash. Por ejemplo, cuando descargo linux mint, lo verifico con md5 (¿por qué la gente todavía usa md5, aunque se considera completamente rota?). Entonces, si alguien hace un ataque MITM y me envía una distribución maliciosa, lo notaría. Pero supongamos que el adversario podría encontrar una colisión en cualquiera de esas funciones hash seguras. Entonces no le ayuda, porque quiere modificar la distribución de una manera especial, no solo para encontrar otra imagen iso que tenga el mismo valor de hash que la proporcionada, ¿verdad?

Sé que ya hay muchas preguntas sobre este tema, pero no he encontrado un enlace que me satisfaga :-)

    
pregunta ph0t3k 09.08.2016 - 15:08
fuente

3 respuestas

1
  

Pero, ¿cómo debería alguien saber la posición exacta de los bits que representan esta cantidad?

Debemos asumir que lo hacen. Es decir, el sistema debe ser seguro incluso si conocen el formato.

Para protocolos comunes, como HTTP, es fácil ver que todos saben qué es dónde. Los datos específicos del sitio pueden cambiar, pero si el atacante puede crear una cuenta por sí mismos, pueden ver el tráfico legítimo. Incluso para los protocolos menos comunes, generalmente no podemos proteger completamente la especificación del protocolo de un atacante. Por razones de interoperabilidad, en realidad puede ser público o disponible por dinero. O algún experto podría filtrarlo, etc. Cualquier persona que trabaje con el protocolo o los sistemas que lo usan podría averiguar cuál es el formato.

En lugar de mantener todo el protocolo en secreto, es más fácil si la seguridad se basa únicamente en la seguridad de las claves.

  

Entonces, si alguien hiciera un ataque MITM y enviara un malicioso   Distribución a mí, lo notaría.

Bueno, tal vez. A menos que tengas el hash del mismo servidor que la imagen de instalación, el atacante podría, por supuesto, modificar ambos. Un hash puro no es mucho de autenticación, ya que cualquiera puede calcular un hash válido para un archivo modificado. Debe usar un sistema de firma (clave pública) para verificar las descargas de software. (O más bien, para verificar los hashes).

En cuanto a las colisiones, crear una colisión puede ser difícil si sabes que los datos de origen son dos líneas en el pentámetro iambic, pero como dice @zlk, es probable que un archivo ISO tenga mucho espacio extra para trabajar para crear la colisión. Es decir, si el instalador base se puede modificar sin que se dé cuenta, no importa mucho si se destruyen algunos paquetes opcionales de la imagen para lograrlo.

    
respondido por el ilkkachu 09.08.2016 - 16:49
fuente
0

Encriptación: El motivo por el que la encriptación no es la autenticación es porque cada parte no tiene una manera de determinar con quién está hablando sin autenticación. Según el ejemplo, el atacante podría hacerse pasar por una parte y transferir el dinero a una cuenta diferente por completo.

Funciones de hash: md5 está dañado, pero aún es difícil crear un archivo falsificado que se pueda usar en lugar del original. Dicho esto, una ISO es uno de los formatos de archivo más fáciles de falsificar porque el atacante puede agregar datos arbitrarios para generar el hash en colisión sin romper el formato del archivo.

Además, muchos lugares publican hashes sha1 y sha2. Use esos en su lugar, preferiblemente los hashes sha2.

    
respondido por el ztk 09.08.2016 - 16:13
fuente
0

Primero, la propiedad de la que está hablando en ambos casos no es de hecho la autenticación, sino la integridad. Un MAC proporciona tanto la autenticación como la verificación de integridad, pero en las instancias específicas que ha citado, lo que está en juego es la integridad.

Para el ejemplo de uso de un MAC para cifrado autenticado, el ejemplo que cita es verdadero ... Cuando los datos cifrados tienen una estructura bien conocida (como suele ocurrir) y el texto en claro se conoce, los bits de texto cifrado (o El IV) puede ser ajustado para cambiar el mensaje descifrado. Sin embargo, un ataque mucho más común contra el cifrado no autenticado es un ataque de oráculo de relleno contra cifrados en modo bloque. lo que puede llevar a la pérdida completa de la confidencialidad. La protección adecuada de la integridad del texto cifrado con un MAC en una construcción de cifrado y luego MAC puede eliminar completamente la posibilidad de estos ataques.

Para el segundo ejemplo de MD5, la razón por la que se sigue utilizando MD5 es principalmente la inercia. Se ha implementado en muchos lugares, se ha utilizado durante décadas y es difícil motivar el cambio, aunque SHA-2 es ciertamente mejor. Dicho esto, no hay ataque práctico aquí. El MD5 está roto con respecto a los ataques de colisión, pero lo que necesita para este ataque en particular no es una colisión, sino una segunda imagen previa. Esto es mucho más difícil, porque mientras que con una colisión solo te importa encontrar dos entradas, dos entradas cualquiera, que produzcan una salida única, con un segundo ataque de pre-imagen tanto la primera entrada (el archivo legítimo) como la salida (el hash de ese archivo) son fijos, y solo la segunda entrada (el archivo malicioso) puede ser manipulada. El mejor ataque conocido de imagen previa contra MD5 en este momento tiene un costo de algo similar a 2 123 ... Mucho más de lo que es técnicamente posible. Por lo tanto, no importa lo difícil que pueda intentar un atacante, nunca podrán producir un archivo con una firma que coincida con la firma existente de un archivo existente.

    
respondido por el Xander 09.08.2016 - 17:01
fuente

Lea otras preguntas en las etiquetas