Mostrando las entradas con la etiqueta password. Mostrar todas las entradas
Mostrando las entradas con la etiqueta password. Mostrar todas las entradas

28 junio 2012

Passwords y otras yerbas


Finalmente terminé las casi 500 páginas de informes para la acreditación de un postgrado, quieren acreditarlos todos pero no creo que valga la pena hacerlo por lo que me pagan. Mejor que lo haga otro, yo les dejé un 80% avanzado para otros programas. Cobré y me gasté la plata hace rato, ya estoy listo para mandar a imprimir y olvidarme del maldito asunto.

Algo que se me había olvidado contarles ¿recuerdan que hace unos días encontré un virus que casi me hace perder toda la información del disco duro? Bueno, resulta que Gmail me estuvo avisando desde un mes antes más o menos que mi equipo parecía estar comprometido, recomendaba que corriera el antivirus, cargara las últimas actualizaciones y sobre todo que activara la seguridad en dos pasos para el correo donde envían un código al teléfono celular.

Como no me preocupaba la confidencialidad de mis correos pensé que se trataba solo de un marketing de Google para recoger números de celular y no le hice caso, ahora me doy cuenta que habían notado que tenía un virus. ¿Como lo detectaron sin correr un antivirus? Parece que tienen acceso bastante libre a mi equipo, pero en fin, dudo que a algún gobierno o policía le interesen mis asuntos y de ser así lo único que obtendrían serían gigabytes de porno-material, así es que me da lo mismo.

A propósito de Google, curioseando en Internet me entero que la Agencia Nacional de Seguridad de USA (NSA) que se dedica a la informática, tiene un acuerdo con Google de investigación y desarrollo que el gobierno y la corte suprema de USA han decidido mantener en secreto. Ya me imagino la clase de investigación y de desarrollo que hacen, ojo con Google.

Y voy en mi tercera semana del curso de criptografía, después de 36 sesiones he aprendido montones de cosas que ni sospechaba. De las pruebas ni hablar, tomaré el curso nuevamente el otro año, pero antes debo pasar unos meses aprendiendo probabilidades discretas, eso es lo que me tiene bloqueado en las pruebas. En todo caso las cosas importantes las tengo claritas.

He aprendido cosas fundamentales y otras anecdóticas, todas muy interesantes. Entre las fundamentales está la dificultad con el azar: no existe manera de saber si una secuencia es realmente al azar o tiene patrones que se repiten, la definición de azar es muy difícil y es como definir el tiempo, todos tenemos una idea intuitiva de lo que es pero no es fácil definilo de manera precisa. Si se trabaja con bits el azar significa que la probabilidad de cada uno de los posibles eventos de un universo es exactamente igual a 0.5, cuando el universo se agranda demasiado como para contar todos los eventos esto se coloca muy difícil de determinar.

Con una clave al azar del mismo tamaño o mayor que el mensaje existe el secreto perfecto: es estadísticamente imposible descifrar un mensaje encriptado con esa clave cuando se usa una sola vez, lo malo es que tener claves tan grandes no sirve en la práctica. Para la implementación práctica se usan los generadores seudo aleatorios (PRG) que son funciones que alimentamos con una clave pequeña y esta se expande hasta tener un gran tamaño, sin embargo por grande que sea la clave es siempre un subconjunto muy pequeño de todas las claves posibles, por lo que el secreto perfecto ya no existe.

El secreto perfecto proporciona una seguridad máxima, los generadores seudo aleatorios una seguridad razonablemente buena que se llama "seguridad semántica". Hay otra seguridad todavía más débil que se llama impredectibilidad, ni siquiera es seudo aleatoria pero la cantidad de operaciones que hay que hacer para predecir una secuencia es tan grande que en la práctica permite encriptaciones muy seguras, ese es el tipo de seguridad que normalmente tienen casi todos los algoritmos actuales.

A propósito ¿han pensado cuan débil puede ser su password? Hay un ataque a los passwords al que ningún sistema es inmune: la fuerza bruta, que consiste en probar sistemáticamente con todas las posibles combinaciones. Como la sola fuerza bruta podría tomar demasiado tiempo, existen técnicas para hacerlo más rápido. En este sitio podemos encontrar una aplicación interesante que prueba con 12 diferentes ataques, 6 de ellos de diccionario y estima cuanto tiempo se necesita para averiguar un password de esta manera.

Algunas pruebas las pueden ver aquí, por ejemplo un password débil del tipo nanynany puede ser encontrado en menos de un día de ataque, un password similar al de mi correo en cambio tomaría 151.821 siglos en encontrarse y contiene 460 quintillones de posibles password. Y eso que no es muy fuerte. Si lo van a probar les recomiendo que no usen sus password reales sino uno parecido.