miércoles, enero 30, 2013

La password en joomla 3.0

El gestor de contenidos joomla encripta la password para guardarla en base de datos. Para ello utiliza el algoritmo md5, pero no lo hace directamente sobre la clave. Para ello, lo primero que hace es generar un número pseudoaleatorio mediante un método denominado KDF.

El proceso es el siguiente:

- En primer lugar recoge la password introducida por el usuario.
- A continuación genera un número pseudoaleatorio con el algoritmo KDF, que se denomina salt.
- Concatena la password con el número pseudoaleatorio en una cadena (password + número pseudoaleatorio)
- Y al resultado de esa concatenación le pasa el algoritmo MD5 generando una password de 128 bits.
- Finalmente concatena esa cadena de texto con el número pseudoaleatorio, separando ambos con el caracter ":".

password= md5(password+salt):salt

Y el resultado lo guarda en la base de datos.

¿Y si nos olvidamos de nuestra password?

- Accedemos a la base de datos y extraemos el valor del "salt".
- Concatenamos ese valor con nuestra nueva password.
- Generamos la contraseña encriptada con el algoritmo md5.
- A continuación le añadimos el caracter ":" y el valor pseudoaleatorio.
-Y finalmente hacemos un update de la base de datos con el valor obtenido, y ya tenemos nuestra nueva password perfectamente encriptada.

No hay comentarios: