Etiquetamd5

Cómo agregar una capa más de seguridad a un login

Un sistema de inicio de sesión tradicional funciona simplemente enviando, en texto plano, los datos de usuario y password al sistema en php o el lenguaje que sea, el sistema lo recibe, lo encripta y lo compara con la información de la base de datos para saber si es correcto o no. Lo que no está mal, pero deja abierta la posibilida de que alguien este sniffeando la red y capture los datos en bruto (raw) o texto plano.
Como podemos ver en el siguiente esquema:

secure-js1

Una forma que se me ocurrió para que los datos del formulario, especialmente la password, no viajarán en texto plano, fue encriptarla mediante javascript al momento de hacer el submit. De esta forma, cuando el atacante logre capturar los datos lo que verá es una cadena en md5, como aparece en el siguiente gráfico:

secure-js2

Seguir leyendo

Descifrando password encriptadas con shadow (md5 + salt)

En Linux las password o claves de los usuarios (incluyendo root) se almacenan en el fichero /etc/shadow, encriptadas y con un salt, que nos complica el descifrado. En pocas palabras una shadow password es un hash del password mas un salt (hashed and salted password).
Un ejemplo de una clave shadow es root:$1$xOqq7NEt$vDOA0jbLcaiRbGsj3ddz30:13911::::::, si la analizamos podemos darnos cuenta de lo siguiente:

  • Lo que nos interesa es solamente root:$1$xOqq7NEt$vDOA0jbLcaiRbGsj3ddz30.
  • Lo que esta antes de “:” corresponde al usuario: root; y lo que sigue es la password.
  • Si descomponemos la password podemos obtener:
  • $1$: Nos indica que corresponde a una encriptacion md5.
  • xOqq7NEt: Es el SALT que se usa para generar el hash del password
  • vDOA0jbLcaiRbGsj3ddz30.: Es el hash salteado de nuestra password.

Si analizamos todos estos datos podemos darnos cuenta que teniendo el salt podemos encriptar una palabra o frase y generar un hash similar al que estaba en el fichero /etc/shadow, por lo que solo nos queda crear un script y tener un diccionario de palabras a mano para empezar a crackear o descifrar las password en shadow.

El comando mkpasswd nos permite generar un password segun un salt especificado.
Ejemplo:

machine:~$ mkpasswd -H md5 miPassword -S DSfdsdaA
$1$DSfdsdaA$kOxgZsSAshG4W.dgGp28Y/

He creado un script para hacer mas eficiente y automatiza un poco el proceso.

Seguir leyendo