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

  • Un día aburrido

    Hoy si está de la patada el internet 😛 No he visto ninguna noticia interesante, el SDK no ha sido liberado y ya pasó lel 14 de febrero !, todo indica que de cualquier manera no va a ser “fácil” distribuir aplicaciones a menos que la “mac” te considere amigable. En fin, ni Britney ha…

  • 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…

  • Va otra (de kde)

    En vista de que no me doy el tiempo para instalar gentoo (a que bonito es gentoo), por lo menos voy a instalar la ultima version beta de KDE “a mano” con konstruct (por primera vez) en Debian. La cosa parece sencilla, se baja el paquete para la version que deseas (de la pagina oficial…

  • temas diversos de interés nacional

    Como muchos por acá, paso varios ratos casi todos los días pensando o platicando con alguien sobre lo que pasa en el país, y como muchos también, me gustaría poder hacer algo para mejorar la situación, pero ninguna alternativa suena razonablemente eficaz, y sobre todo, ninguna de ellas tiene grandes posibilidades de tener éxito sin…

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 *