3 de marzo de 2009

87686d9c04d52cdb7c5278564a1204b1

Es imposible que alguien haya abierto mi maleta, calculé su hash antes de salir.

Respuesta: Habremos tenido alguna colisión…

¡jarrrrrrrrr! Digo Hash! Es la palabrita inglesa que hace referencia a la función o algoritmo que convierte lo que le pongas, texto, ficheros, etc. en otra cosita de un tamaño predeterminado. ¿Y esto para qué vale? Bueno pues las funciones Hash sirven para preservar la integridad de un objeto. Por ejemplo, si el sujeto A quiere mandar un correo electrónico al sujeto B, una buena idea sería anexar el hash del correo original, de tal forma que cuando B reciba el e-mail recalcule el hash, si coinciden tendemos que el correo no ha sido “alterado” por nadie, ojo, esto no quiere decir que alguien no lo haya visto, o que su confidencialidad no ha sido puesta en entredicho.

¿Pero qué otras utilidades podemos buscar a los hash? Los diseñadores de Sistemas Operativos pensaron que era una buena idea utilizarlos para albergar las contraseñas de los usuarios, miento, para albergar su “hash”. ¿Por qué? Por que los hash son funciones matemáticas de un solo sentido, esto es, no se puede sacar el original a partir del resultado. O al menos eso dice la teoría, por que hay muchísimas páginas web que se dedican a mostrar “colisiones”, que no son más que dos objetos distintos que muestran el mismo hash. 

La explicación a esto es muy sencilla, el espectro de objetos distintos es… ¿infinito? Pongámosle casi-infinito, sin embargo el espectro resultante de un hash tiene un tamaño predefinido, luego por narices tiene que haber colisiones, solo hay que encontrarlas. Volviendo a nuestros sistemas operativos, ahora que sabemos que las contraseñas son almacenadas en muchos casos mediante su hash (hay otros que las cifran), podríamos probar suerte a ver si extrayendo el mismo sacamos la password, ¿y si la clave fuera Administrador? (que ingeniosa):

Existen librerías para casi todos los lenguajes de programación que permiten calcular el hash, luego incorporarlo a nuestras aplicaciones es trivial, ahora bien, ¿y si quiero incorporarlo al sistema operativo para que cada vez que quiera calcule el hash de un archivo? Esto es algo muy útil para asegurar que nos descargamos correctamente lo que se supone que nos queremos bajar. Esta utilidad es muy cómoda y se integra perfectamente en Windows.


Y esto es todo por hoy, como nota adicional decir que lo cool ahora es tatuarse el hash de tu chica, y si no probad probad ;-)

Salu2!

PD: Como siempre, os dejo trabajito, ¿hay alguna colisión para el título de esta entrada?

0 comentarios: