Tuesday, March 24, 2009

Cuando el tamaño importa



Microsoft tiene una herramienta que nos permite validar que tan segura son nuestras passwords, llamada PasswordChecker.

Segun la pagina donde se encuentra el javascript , el sistema no almacena ni transmite ninguna password y explica que la seguridad de la contraseña ingresada es similar a la utilizada al ingresar a Windows.

Para tener mejores passwords nos envia a una pagina con tips sobre como tener contraseñas mas seguras.

Basicamente los mismos requerimientos que encontramos en las politicas de password de las empresas y sitios comerciales. Caracteres en Mayusculas,minusculas,numeros y caracteres especiales.

Create a strong, memorable password in 6 steps

Use these steps to develop a strong password:

1. Think of a sentence that you can remember.
2. Check if the computer or online system supports the pass phrase directly.
3. If the computer or online system does not support pass phrases, convert it to a password.
4. Add complexity
5. Finally, substitute some special characters.

Como ejemplo nos da :

Using these tricks, we create a pass phrase of "MySoN 8N i$ 3 yeeR$ old" or a password (using the first letter of each word) "M$8ni3y0".

Y nos invita probar esto con su herramienta : "
6. Test your new password with Password Checker"



Pero segun Microsoft en lineamientos anteriores :

The fewer types of characters in your password, the longer it must be. A 15-character password composed only of random letters and numbers is about 33,000 times stronger than an 8-character password composed of characters from the entire keyboard. If you cannot create a password that contains symbols, you need to make it considerably longer to get the same degree of protection. An ideal password combines both length and different types of symbols.

Mientras menos caracteres usemos, mas larga debe ser la password. Y nos indica que una password de 15 caracteres ingresados al azar es 33000 veces mas fuerte que una password de 8 caracteres que utilize el teclado entero.

Esto por supuesto que es logico, pero lo sera para la herramienta de Microsoft Password Checker ?

Veamos

Password : M$8ni3y0


Entonces, con una password de 8 caracteres, con minusculas, mayusculas, numeros y caracteres especiales podemos tener una "password fuerte".

Probemos con algo no tan complejo :

Password : abc123ABC




Ahora veamos como reaciona el programa, a una password de 30 caracteres en minuscula.


Password : estaeslacasaquetodosvisitamoss


Ummmm debe ser que no elegimos letras al azar ?

Probemos nuevamente :

Password : wmrntdytcikhfganxuskdpkjfdvczo ( inrrecordable )


Parece que para el Password Checker de Microsoft , las cosas no funcionan como recomienda...Microsoft.

El numero de combinaciones posibles de passwords a probar durante un brute force se puede calcular usando la siguiente formula :

KS = L^(m) + L^(m+1) + L^(m+2) + ........ + L^(M)

donde
L = La cantidad de caracteres utilizados
m = largo minimo de la password
M = largo maximo de la password

Utilizando Cain podemos ver esto :

Para una password de un minimo de 15 y un maximo 30 caracteres de minusculas

L = 26
m = 15
M = 30

El numero de claves es aproximadamente = 26^15 = 1677259342285725925376 o ~1.7e21


Una password utilizando el otro criterio , minimo 7 y maximo 8 caracteres ( utiizando todos los caracteres del teclado )

L = 52 caracteres alfabeticos + 10 numeros + 12signos
m = 7
M = 8

El numero de claves es aproximadamente = 74^9 = 66540410775079424 o ~6.7e16


Entonces 74^9 < 26^15

Como podemos entender esto ? Esta Microsoft confundiendo a los usuarios ?

Sobre el tema de Largo vs Complejidad pueden leer la siguiente entrada en el blog de McAfee del cual tome el ejemplo de Cain.
Otro post interesante sobre el tema : Password size does matter

No comments: