Las funciones hash pueden tener colisiones. Es casi trivial calcular los datos que tienen un hash MD5 correspondiente al original. Considere los datos críticos que no deben alterarse durante el tránsito y suponga que solo los datos, y no la suma de comprobación, pueden modificarse. También asuma que cualquiera puede acceder a los datos.
¿Cuál de estos sería una buena manera de crear una suma de comprobación de los datos (o si hay una mejor manera, también sería genial)?
- Usar múltiples funciones hash en los datos y concatenarlos. ¿Seguramente tener múltiples hash dificultaría a un atacante generar datos que causen una colisión en todas las funciones de hash?
- Use HMAC con SHA512 (mitigación de ataques de longitud de clave) y comparta el secreto junto con el hash generado. Este secreto no cambiará para este archivo, por lo que el secreto será el mismo para todos los que lo obtengan.
Gracias