¿Qué es lo que detiene a alguien de solo MITMing una suma de comprobación?

9

Muchos sitios ofrecen sumas de MD5 o SHA para verificar la validez de su descarga, pero ¿por qué algunas cosas dependen casi completamente de esto?

¿Hay algo en su lugar para evitar que las personas simplemente reemplacen la suma de comprobación con la suma de comprobación del binario malicioso?

    
pregunta Jaydn Cunningham 28.02.2015 - 09:49
fuente

4 respuestas

7

Su problema es un problema común en seguridad conocido como autenticación.

La suma de comprobación resuelve el problema de integridad, usted sabe que lo que acaba de descargar es correcto, pero no sabe de quién proviene.

Si alguien está operando un ataque MitM, obviamente intentará reemplazar la suma de comprobación de cualquier descarga que requiera con la suma de comprobación del binario que desea que tenga.

Si desea evaluar la autenticidad (compruebe que el binario ha sido emitido por alguien de confianza), debe utilizar un método de autenticación como la firma digital.

El proceso típico es el siguiente:

  • el propietario original emite una clave pública que compartirá con fines de autenticación (ver sistemas criptográficos asimétricos)
  • el propietario original calcula el hash del documento que quiere firmar
  • el propietario firma el hash con su clave privada, para que cualquiera pueda verificarlo
  • el cliente obtiene el documento
  • el cliente obtiene la clave pública del propietario original y la valida a través de la cadena de protocolos de confianza (consulte la documentación ad-hoc)
  • el cliente verifica que la firma del hash sea correcta
  • el cliente verifica que la suma de comprobación del programa sea la misma

Si sigues este proceso, no puedes estar sujeto a un ataque MitM. El punto clave del protocolo aquí es obviamente la verificación de la clave pública. Si no evalúa que la clave pública pertenece al propietario, puede ser engañado.

    
respondido por el M'vy 28.02.2015 - 10:04
fuente
5

En el caso más simple e inseguro, tanto el archivo como la suma de comprobación se sirven a través de un protocolo de texto plano como HTTP o FTP. En este caso, no, no hay nada que impida la modificación de Man-in-the-Middle del archivo y la suma de comprobación.

Sin embargo, su primera pregunta fue: "¿Por qué algunos procesos se basan en las sumas de comprobación publicadas?" La respuesta es que, si se autentican correctamente, las sumas de comprobación proporcionan protección de integridad. Es decir, si puedo garantizar la integridad y autenticidad de la suma de comprobación, puedo verificar la integridad del archivo descargado.

Esto puede parecer redundante, ya que si tengo algún método para verificar la autenticidad y la integridad de una suma de comprobación, ¿por qué el mismo método no protege el archivo en sí? La respuesta es que la suma de comprobación no está destinada principalmente a tratar la manipulación maliciosa , sino que está destinada a detectar daños en los datos. Si tiene una conexión de red, una unidad de disco o un módulo de RAM que introduce errores a una velocidad de 1 bit en cada 10 MB, entonces es muy probable que tenga un error en una descarga de 50 MB. Pero las probabilidades son bastante bajas de que la suma de comprobación de 20 bytes tenga un error de bit.

Todo esto está muy bien, pero ¿cómo podemos protegernos contra la manipulación maliciosa? Aquí hay algunas soluciones:

  1. Proporcione la suma de comprobación en un canal autenticado y protegido por integridad. La solución más común aquí es HTTPS, en la que TLS proporciona autenticación, integridad y cifrado. El proveedor de datos puede (y debe) doblar y proporcionar el archivo a través de este canal también.

  2. Proporcione una firma criptográfica del archivo. En lugar de simplemente brindar protección de integridad, este método también proporciona autenticidad, pero requiere un poco más de trabajo por parte del descargador, quien debe: obtener u obtener de forma segura la clave pública del proveedor para verificar la firma. El mismo principio subyacente se usa para proporcionar protección de integridad dentro de TLS, pero una firma separada para el archivo se basa en un canal de distribución de claves diferente que puede o no ser más difícil de corromper para el atacante.

Estos métodos pueden y deben combinarse, ya que habrá algunos usuarios que desconfían de las protecciones de TLS y otros que no pueden molestarse en verificar una firma criptográfica, pero por varias razones solo pueden admitir la suma de comprobación básica.

Por supuesto, todo esto plantea la cuestión de si el archivo se puede corromper de tal manera que la suma de comprobación sea válida. Esto se denomina ataque de preimagen , y se ha demostrado que MD5 es teóricamente vulnerable. Siempre debe usar la función hash más segura disponible: SHA-2 y SHA-3 son buenas opciones; MD5 y SHA-1 son más riesgosos.

    
respondido por el bonsaiviking 28.02.2015 - 14:12
fuente
1

Los archivos se pueden descargar y pasar. En algún momento, se pueden modificar maliciosamente.

Al publicar la suma de comprobación en un sitio, proporciona un segundo vector de verificación. Para que un mal actor tenga éxito, también tendrán que ser capaces de hackear el sitio web del proveedor y modificar el hash (suma de comprobación).

    
respondido por el schroeder 28.02.2015 - 09:59
fuente
1

No.

Las sumas de comprobación solo están allí para verificar su descarga, a fin de evitar errores de transferencia.

Por supuesto, un hombre en el centro podría presentar un directorio falso, con archivos binarios infectados y corregir las listas de sumas de verificación recreadas.

La forma de evitar esto es firmar sus sumas de comprobación con PGP o S / Mime.

De lo contrario, podría sumar su lista de comprobación y enviar el resultado de forma segura (correo en papel real, teléfono u otra forma encriptada y / o sin conexión a Internet).

    
respondido por el F. Hauri 28.02.2015 - 11:01
fuente

Lea otras preguntas en las etiquetas