Comunidad de diseño web y desarrollo en internet online

Cómo robar contraseñas y evitar robo de claves en internet

En el primer artículo de esta serie mostramos las opciones que tiene un atacante al intentar hacerse con nuestros datos, bien sea en nuestro PC, interceptándolos en la red, o en el propio servidor donde los enviamos. En el segundo analizamos más detalladamente los opciones de ataque en las redes, sobre todo las inalámbricas.

En este tercer y último artículo veremos qué datos son más susceptibles de ser robados.

Qué pueden robarnos


Las webs que visitamos, las imágenes que vemos en el navegador, las cookies, conversaciones de chat, cuentas de FTP, usuarios y contraseñas...

Ettercap, una vez que está interfiriendo en el tráfico, muestra muchos de estos datos sin hacer nada, pero también pero es posible obtener datos más concretos filtrando el tráfico que capturamos:



Un ataque Mitm no solo permite escuchar todos esos datos, sino también modificarlos. De modo que es posible hacer que en una conversación de chat, cada vez que alguien escriba "hola", el interlocutor lea "adiós"... y ejemplos menos inocentes.

Solamente se salvan los sitios HTTPS.

Qué es HTTPS y por qué es seguro


HTTPS es un protocolo que combina el protocolo de hipertexto (HTTP) con protocolos criptográficos (SSL/TLS) que tratan de asegurar que el mensaje resulte encriptado de extremo a extremo, de manera que alguien que lo interceptase no pudiese entenderlo.

Simplificándolo mucho, se basa en que tanto usuario como servidor tienen una clave pública y privada. Un mensaje del usuario al servidor se codifica usando la clave privada del usuario y la clave pública del servidor, y el servidor lo lee usando su clave privada y la clave pública del usuario. Y lo mismo en el otro sentido. El usuario sabe que la clave publica del servidor es la que dice mediante el uso de certificados digitales, que se integran con el navegador:



Alguien que se colocara en medio, podría enviar un certificado falso para tratar de observar la información. El navegador es el encargado de mostrar una alerta de seguridad cuando esto suceda, a no ser que, aprovechando alguna vulnerabilidad suya, se haga pasar el certificado falso por bueno. Mientras que en Firefox ocupa toda la pantalla, y pide confirmación expresa para seguir, en IE6 es una de esas alertas a las que uno dice OK sin pensar.



Las contraseñas y las funciones hash


Una función hash es una que tiene una sola entrada (los datos a encriptar) y como salida produce datos a partir de los cuales, en teoría no se puede deducir los originales, pero cada entrada produce una salida única. Algunos sitios (que no funcionan con HTTPS) como Tuenti o Facebook encriptan las contraseñas, mediante Javascript, con el algoritmo MD5 antes de que sean enviadas al servidor. De manera que si la contraseña era mono, el servidor recibe algo como 654db8a14a5f633b9ba85ec92dc51f7c. Pensando un momento, se puede deducir que esto no sirve para nada, una vez que se ha capturado el hash.

Basta con generar una petición al servidor, en la que en vez de la contraseña se envíe el hash de la contraseña, y el resto de los datos (nombre de usuario, fecha, zona horaria...) queden igual.



Sin embargo, hay situaciones en las que el uso de los hashes es útil, como para guardar archivos de contraseñas, o las contraseñas en bases de datos. Claro que hay diferentes formas de romper estas funciones. Por ejemplo, si se hace una búsqueda del hash MD5 de "mono" en Google, se obtendrán varias entradas aparte de ésta en las que se relaciona con su palabra original. También se han encontrado vulnerabilidades en muchos de estos algoritmos (también en MD5, a pesar de lo cual sigue siendo empleado), que permiten calcular la solución utilizando tablas precomputadas, (rainbow tables), que reducen el tiempo necesario para resolver el problema, a costa de ocupar memoria. Una contraseña es más resistente a este tipo de ataques cuanto más complicada es. Para maximizar el tiempo y los recursos que hacen falta para descifrarlas, conviene usar una gran cantidad de letras y números, y sobre todo, de caracteres especiales (que hacen que el problema tenga una complejidad mucho mayor).

Por ejemplo, en objectif-securite.ch hay una utilidad gratuita para romper hashes de Windows (que se pueden obtener con Backtrack), siempre que sean solamente alfanuméricos:



¿Suficientemente paranoico?


Lo cierto es que además de los canales directos que hemos descrito, hay multitud de formas indirectas de obtener información de una computadora. Se han obtenido datos (con información significativa) de las ondas que emiten los teclados y los monitores, del ruido de las impresoras, o de un telescopio astronómico que observa un monitor... reflejado en el ojo del usuario.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate