Claves planas, MD5, sha1

Este es un post de recomendacion 🙂

Creo que en todo tutorial de desarrollo de aplicaciones, sobre todo para web, en donde seguro va a haber multiples usaurios, recomienda que no se guarden las claves en texto plano, ya sea que se graben dentro del código (sucede), en un archivo de texto (también), o en una base de datos.

Bueno, por qué no es buena idea ?

Empecemos porque todos cometemos errores, y hay algunas personas que solo cometen errores, entonces, toda aplicación va a tener algún defecto, frecuentemente el defecto va a ser suficientemente grave como para que un usuario bien o mal intencionado pueda leer la lista de usuarios del sistema, y sus respectivas claves.

Entonces que problema tiene con que el usuario vea algo como:

root:827ccb0eea8a706c4c34a16891f84e7b

o incluso

root:8cb2237d0679ca88db6464eac60da96345513964

Pues simple, resulta ser que por ejemplo podemos buscar “827ccb0eea8a706c4c34a16891f84e7b” en alguna paginita como esta: http://gdataonline.com/seekhash.php

Y para el segundo caso qué ?, pues a lo mejor no va a ser tan rápido, sha1 es un método ligeramente más complejo, pero que tal si nos damos una vuelta por http://www.openwall.com/john/ y nos bajámos y compilamos (las distros normalmente tienen una version vieja) para luego darle una manoseadita al string pa que quede como:

root:8cb2237d0679ca88db6464eac60da96345513964:0:0:root:/root:/bin/bash/

Que es más o menos lo que le gusta leer a john, y corremos un sencillo

./john -format=raw-sha1 crackme.txt

Pos resulta que más rápido que inmediatamente nos va a decir que la clave es “12345”, y bueno, con el tiempo nos irá diciendo más claves, típicamente podemos esperar que claves sencillas salgan en cuestión de minutos u horas, y claves de mediana calidad van saliendo en días de proceso, y con suerte claves muy complejas van a requerir años, pero normalmente en una lista de 10 usuarios, al menos 3 o 4 usan claves bastante sencillas, esas claves van a ser “adivinadas” en tiempos suficientemente cortos como para que sea posible que nos hagan daño.

Y por si no lo sabían, john the ripper existe desde hace mucho años, según el repositorio del código al menos tiene 7 años, según recuerdo lo conozco desde hace más, pero desde hace 7 años es posible crackear claves “crypt” que es un algoritmo con “salt” y más complejo, así que POR FAVOR !!!! no uses claves planas, ni MD5 ni SHA1 !!! hazle un bien a tus cuates.

Similar Posts

  • Entrandole a la ociocidad de los tests, aqui va otro …..!|…h..|../[..| If I were a NetHack monster, I would be a dwarf. I enjoy using expensive, high-quality equipment, and I’m not afraid to work hard to get it. Which NetHack Monster Are You? Lo peor es que nunca he jugado nethack ;-P

  • Que pasa !!

    Vi en el blog de Gunnar esto y no puedo creer mis resultados, me parezco a él !! debe ser una buena señal !! Your results:You are Hulk Hulk 100% Spider-Man 80% Green Lantern 80% Superman 70% The Flash 70% Catwoman 60% Robin 55% Supergirl 40% Wonder Woman 40% Iron Man 40% Batman 0% You…

  • iOS 4 y backup eterno

    Ayer a primera hora empecé a intentar actualizar el firmware (FW) del aifon y pos me encontré con que no pude, intenté muchas veces, el problema que tuve fue que el respaldo obligatorio que intenta hacer el itunes antes de acutalizar nomas no funciona, nunca avanza (esperando más de 1 hora) y pues al parecer…

  • wordle

    Pues clásico, si no tienes nada que hacer, imita a los demás 😛 Viendo la página de Gunnar me encontré con esto que vió a su vez en la página de Cesar Espino. Pues aquí está el mio generado con el contenido de este blog hoy. Curiosamente no aparece linux, por lo que veo ultimamente…

5 Comments

  1. Changoos! casi siempre funcionan esas claves para usuarios normales, pero ya para algun hacker pues es facil como dices!, pero no se que tipo de encriptación recomiendas??, o de plano inventamos un algoritmo al estilo microsoft en donde nadie tenga el codigo fuente??…, por lo menos se tardan un rato en adivinar

  2. pues que sea crypt, no es infalible, pero es mas dificil que los hashes comunes, y claro, promover el uso de claves complicadas, aunque eso es lucha perdida casi siempre, así que al menos nos quedamos con la parte que controlamos del lado del código.

  3. Tomando en cuenta lo que dices: “así que POR FAVOR !!!! no uses claves planas, ni MD5 ni SHA1 !!! hazle un bien a tus cuates.”. Si no se usa MD5 ni SHA1, qué se debe usar ? (por lo menos para el htpasswd sólo existen esas dos opciones).

  4. Ravenman, del manual de htpasswd

    -d
    Use crypt() encryption for passwords. The default on all platforms but Windows, Netware and TPF. Though possibly supported by htpasswd on all platforms, it is not supported by the httpd server on Windows, Netware and TPF.

    Moraleja, no uses windows 🙂 al menos como servidor no.

Leave a Reply

Your email address will not be published. Required fields are marked *