Ataques informáticos contra contraseñas: fuerza bruta y diccionario.

Desde hace años las contraseñas protegen muchos de nuestros datos en la red: acceso a servicios económicos, tiendas en línea, redes sociales, correos… Por lo que para un ciberdelincuente las contraseñas son objetivos jugosos, pues le permiten acceder a información o funciones muy valiosas: acceder a nuestro dinero, acceder a nuestros correos, suplantar nuestra persona…

Existen muchas formas de hacerse con una contraseña, en el pasado ya hablamos de técnicas de ingeniería social como el smishing, de cómo se pueden servir de correos fraudulentos, incluso de métodos no informáticos como la coacción o la tortura (ataque de manguera de goma). Aquí vamos a ver dos formas de hacerlo sin tener que contactar con la persona atacada para engañarla, simplemente «forzando» la contraseña. Tenemos principalmente dos posibilidades: fuerza bruta pura y ataque con diccionario.

Código fuente de un script
Photo by luis gomes on Pexels.com

El ataque por fuerza bruta es bastante sencillo: consiste en bombardear nuestra contraseña con todas las opciones posibles. Prueba y error, así de sencillo. Dependiendo de la robustez de nuestra contraseña y de las medidas de seguridad del sitio al que intenten acceder tardará más o menos, pero con el tiempo suficiente cualquier contraseña acabaría por caer.

El ataque con diccionario es una versión sofisticada de la fuerza bruta: utiliza un software que prueba distintas combinaciones de caracteres más usuales o más probadas. Estos diccionarios suelen complementarse con listas de contraseñas ya utilizadas que se han sacado de alguna filtración. Como curiosidad, también se sirven de los requisitos de seguridad que nos imponen los servicios para crear una contraseña: por ejemplo, si creamos un diccionario para un sitio que exige como mínimo 6 caracteres, con un número y una mayúscula, ya no se probará ninguna contraseña que no coincida con ese patrón.

Ya que hablamos de filtraciones de contraseñas para los diccionarios debemos hablar de las tablas rainbow o arcoíris también. En su momento ya hablamos de las funciones de resumen o hash, que son muy utilizadas para almacenar contraseñas y también comentamos el problema de la colisión (dos contraseñas distintas pero que casualmente producen el mismo hash, lo que permite hace un ataque basado en la paradoja del cumpleaños). Muchas veces cuando hay una filtración de contraseñas estas no están en texto plano sino que se filtran estos hashes, las tablas arcoíris son una herramienta que nos permite buscar contraseñas que generen el mismo hash. Aunque en principio los ataques por fuerza o por diccionario suelen ser más sencillos y menos costosos computacionalmente, las tablas arcoíris han sido una solución muy usada para atacar contraseñas de mucha longitud.

¿Cómo podemos protegernos de estos ataques?

Bueno, a nivel desarrollador hay múltiples opciones, como añadir un «salt» (una cadena de texto aleatoria) a la contraseña durante el proceso de validación antes de generar el hash, de forma que dificulta el uso de tablas arcoiris, usar un captcha para evitar sistemas automatizados, ralentizar la respuesta de error un par de segundos para aumentar la espera en caso de ataque automatizado, bloquear temporalmente una cuenta en caso de recibir múltiples errores con un tiempo de bloqueo que crezca progresivamente, utilizar cookies para bloquear intentos recurrentes desde un mismo equipo… Eso en caso de portales web, para otras aplicaciones, como las de uso corporativo, incluso se puede limitar el rango de ip‘s para acceder y obligar a los usuarios a usar una VPN.

Como usuario es recomendable no usar contraseñas débiles, cortas y fáciles de recordar ni usar datos personales como nuestro nombre o fecha de nacimiento como contraseña. Tampoco se recomienda usar patrones muy sencillos, como la primera letra en mayúscula y acabada en un número, que son fáciles de recordar pero al ser tan populares ya muchos diccionarios los contemplan. La autenticación con varios factores (por ejemplo, que envíe una confirmación a nuestro teléfono) es una solución que debemos habilitar siempre que esté disponible, de hecho Google ha empezado a hacerla obligatoria. Además es muy recomendable usar un gestor de contraseñas, existen muchos tanto de pago, como totalmente gratis o con versiones limitadas gratis. Si no quieres pagar la opción libre KeePass aunque tenga una interfaz algo anticuada está en permanente actualización y es fiable y segura.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.