¿Los hashes son un método confiable para asegurar que un archivo no haya sido manipulado?

0

Supongamos que tengo un archivo y que quiero confirmar que este archivo es el mismo que el original (IE: no se ha alterado de ninguna manera) utilizando el hashing.

Si tuviera que usar una función hash que no tenga colisiones conocidas (como SHA-256 o SHA-512, de acuerdo con esta publicación: enlace ) y confirmé que la suma de comprobación publicada por el autor era legítima, lo haría ¿Sería razonable suponer que el archivo es auténtico si su suma de comprobación coincide con la publicada por el autor? ¿O podría haber una manera de eludir esta protección?

    
pregunta beepboop 18.11.2018 - 00:44
fuente

3 respuestas

3

¡Sí! Este es absolutamente un método válido para garantizar que los archivos no hayan sido manipulados.

Para algunos antecedentes, la criptografía como campo proporciona un puñado de servicios útiles cuando se aplica. Los detalles de bajo nivel de cuáles son estos cambios dependen de a quién le preguntes, pero todos se centran en 4 cosas clave:

  • Confidencialidad (para que solo las partes correctas puedan ver los datos)
  • Autenticación (para saber quiénes son las partes correctas)
  • No repudio (por lo que las partes correctas no pueden decir que no lo hicieron)
  • Integridad (para que las partes correctas obtengan los datos correctos)

Algunas veces, la disponibilidad (lo que hace que se pueda acceder a los datos cuando sea necesario) también se incluye allí. ( Aquí hay una referencia de Microsoft sobre servicios criptográficos para los curiosos).

Los diferentes tipos de criptografía proporcionan diferentes niveles de servicio. La criptografía de clave asimétrica los proporciona a todos: mediante la criptografía de clave asimétrica (segura), solo las partes correctas conocidas pueden obtener los datos correctos y no pueden decir que no crearon los datos. Si no tiene la clave, no puede obtener los datos y no puede obtener la clave a menos que sea la persona correcta.

Hashing es un caso interesante, donde es extremadamente valioso como concepto y práctica, pero está muy limitado en lo que puede hacer. De los 4 servicios criptográficos, el hash solo proporciona integridad. No proporciona nada por medio de la confidencialidad, la autenticación o el no repudio, pero el hash criptográficamente seguro es una manera fantástica de garantizar que todo lo relacionado con 2 piezas de contenido sea exactamente idéntico. De hecho, de alguna manera eso es lo que el hash solo puede hacer.

    
respondido por el securityOrange 19.11.2018 - 04:44
fuente
2

Sí, este es un uso de hashes. Aún mejor si verifica múltiples hashes diferentes, ya que una colisión en uno de ellos no conducirá automáticamente a una colisión en otros.

Considder lo siguiente, por ejemplo:

curl https://www.mscs.dal.ca/~selinger/md5collision/erase | md5sum
curl https://www.mscs.dal.ca/~selinger/md5collision/hello | md5sum
curl https://www.mscs.dal.ca/~selinger/md5collision/erase | sha256sum
curl https://www.mscs.dal.ca/~selinger/md5collision/hello | sha256sum

Esto mostrará md5sums idénticos, pero con sha256-sums separados.

Si el algoritmo de hash se considera seguro, puede confiar más o menos en él. Tenga en cuenta que también debe verificar el canal a través del cual obtiene el número de hash. Un atacante que puede reemplazar el archivo en el servidor web del que lo está buscando probablemente puede alterar la suma de comprobación que se muestra junto al enlace de descarga ...

Si la descarga de la suma de comprobación se realiza en http sin formato, un atacante puede reemplazar la suma de verificación en tránsito.

    
respondido por el vidarlo 18.11.2018 - 01:12
fuente
-1

respuesta corta: sí, puedes usar de forma segura una buena función hash (sha256, sha512) para esto. Es casi imposible crear 2 archivos con el mismo hash.

respuesta larga: en primer lugar, investigue y elija con prudencia. sha256 parece estar bien por ahora, pero sha-1 fue hackeado. Mira las publicaciones. No confíes en un tipo aleatorio de stackoverflow. También echaría un vistazo a la firma digital (gpg y así sucesivamente). Como atacante, comenzaría con el intento de falsificar el hash en este escenario. y solo entonces enviándole un archivo incorrecto.

    
respondido por el Dmitry Lavochkin 18.11.2018 - 09:31
fuente

Lea otras preguntas en las etiquetas