La contraseña es la primera línea de defensa de todo sistema de información, y en función del sistema en el que nos encontremos, puede ser, incluso, la única defensa de acceso al sistema, pero, ¿sabes cómo hacer que tu contraseña sea segura?
En este artículo abordaremos la respuesta a esa pregunta desde el punto de vista de la contraseña como único factor de protección, pronto os hablaremos en un nuevo artículo sobre los denominados «dobles factores de autenticación» y su importancia para nuestra seguridad.
Principios de seguridad en contraseñas
Que levante la mano quién no se haya olvidado del código para abrir un candado de combinación de una maleta o mochila. Estos candados, que suelen tener tres ruedas dentadas con números del cero al nueve y que, en muchas ocasiones, vienen por defecto con el código 0-0-0. ¿Qué habéis hecho cuando os ha pasado esto? Me atrevo a decir que en líneas generales si el candado estaba cerrado, pero no impedía el acceso a la maleta, ese candado habrá acabado en un cajón olvidado, pero, si el candado estaba cerrando las dos cremalleras y la cizalla se nos había quedado lejos, seguro que hemos ido probando las 999 posibilidades hasta dar con la combinación ganadora.
Pues bien, las contraseñas no son más que estos candados con ruedas de mayor tamaño (números, letras mayúsculas y minúsculas y a veces símbolos). Por lo que podemos decir, que la seguridad de una contraseña se mide en el tiempo que tenemos que dedicar delante de la maleta o aplicación en girar todas las posibles combinaciones de estas grandes ruedas.
A título esquemático, y teniendo en consideración el tiempo que tarda un ordenador en hacer una comprobación (un giro en una rueda) tendríamos una seguridad ligada al tiempo que se tarda en comprobar todas las posibilidades tal que así:
Fuente: Hive Sistems
Pero ¡ojo!, estos tiempos son valores máximos, esto quiere decir que se tardaría mucho menos en descifrar la nuestra contraseña que el tiempo indicado en la tabla. O lo que es lo mismo, y, siguiendo con el símil del candado, si mi contraseña fuera 999 y el programa estuviera comprobando del 000 en adelante, tardaría mucho más que si mi contraseña fuera 111.
En la siguiente sección abordaremos esta problemática en la que se establecerá una estrategia para la generación de contraseñas y se tratará de maximizar los tiempos que requeriría un malo en comprometer nuestras contraseñas sin conocer muy bien qué mecanismos de prueba empleará este ciberdelincuente.
Requisitos de complejidad de contraseñas
Anteriormente hemos visto que la seguridad de una contraseña se puede medir en el tiempo que tardaría un ciberdelincuente en comprometer la contraseña mediante pruebas aleatorias. Con base en esto, nuestra forma de defendernos debe corresponderse con: cambiar la contraseña con cierta periodicidad y establecer contraseñas suficientemente seguras o raras para que en las pruebas de combinaciones que realice el ciberdelincuente nuestra contraseña sea la última.
Cambiar la contraseña nos puede resultar claro cómo hacerlo, pero ¿tenemos claro cómo generar contraseñas seguras? En líneas generales una contraseña segura es aquella que:
- Intercala letras mayúsculas minúsculas, números y símbolos (por ejemplo: 4pl!CaC!ón).
- No es una palabra de un diccionario (independientemente del idioma).
- No nos identifica (DNI, cumpleaños, aniversario, etc.).
- No es utilizada del mismo modo en varias plataformas por el mismo usuario.
Estrategia para el robo de contraseñas
Antes de abordar cómo generar contraseñas, debemos conocer de qué manera los ciberdelincuentes fuerzan el sistema para comprometer el acceso. Si conocemos cómo lo hacen, podremos establecer mecanismos eficaces para su protección. Los principales mecanismos de compromiso de credenciales son:
- Ataques de fuerza bruta, en los que los ciberdelincuentes prueban la totalidad de contraseñas posibles teniendo en cuenta los requisitos que nos pide la aplicación en cuestión.
- Ataques de fuerza bruta (por diccionario), en los que los ciberdelincuentes prueban un subconjunto de contraseñas posibles obtenidas de lo que se conoce como «Diccionario».
- Ingeniería social sobre el usuario o malware, en este caso, los ciberdelincuentes consiguen directamente del usuario bien por malware o bien por ingeniería social, que este comparta con ellos sus credenciales.
Visto lo anterior, entendemos que, sobre la ingeniería social o malware, la dificultad de la contraseña no es un factor que tener en cuenta, pues somos nosotros, los usuarios, los que facilitamos las credenciales al delincuente, pero ¿cómo nos afecta un ataque de diccionario?
Los ataques de diccionario se basan en que el ciberdelincuente tiene en su poder un listado de contraseñas que puede probar, estas contraseñas suelen provenir de brechas de seguridad de grandes compañías, donde millones de usuarios estuvieron registrados y cuya base de datos fue comprometida. Los ataques de diccionario son muy eficientes por dos factores: por un lado, los usuarios suelen utilizar la misma contraseña para todos sus registros, y de vulnerarse uno, serían vulnerables el resto. Por otro lado, la capacidad inventiva de muchos usuarios es limitada, en el caso de contraseñas como “Abril21” o “Contraseña”, podríamos apostar a que esas contraseñas han sido empleadas antes por otros usuarios.
De hecho, la empresa NordPass en 2020 realizó un estudio sobre las contraseñas más comunes de las que destacan: 123456, password, iloveyou, qwerty o pokemon entre un amplio catálogo.
Generación de contraseñas seguras
Una buena práctica para poder dar cumplimiento a los requisitos de seguridad y no emplear la misma contraseña para todo exponiéndonos así a los ataques de diccionarios, se correspondería con disponer de un sistema de «semillas» en el que existe una parte común en todas nuestras contraseñas (semilla) y una parte variable para cada aplicación.
Para generar una buena semilla, escoge entre cuatro y ocho caracteres variados sobre los que generar tu semilla. Debes intentar que sea fácil de recordar solo por ti, por ejemplo, si mi gata se llama Anya, una buena semilla podría ser “aNY4^^” donde utilizo una palabra que no se encuentra en el diccionario, mayúsculas cambiadas, números y dos símbolos que me recuerdan a un gato.
Una vez tenemos una semilla, solo tenemos que utilizarla en cada registro añadiendo una parte variable, por ejemplo, la semilla anterior si la usaramos para el registro en Facebook podría ser “aNY4^^FaceBOOK”, Instagram “aNY4^^Fot0s” o Twitter “aNY4^^TwEEt”.
Existen muchas otras alternativas, como tomar una palabra poco común y modificarla hasta dar con una contraseña que solo tú sepas. Una buena práctica es modificar letras por caracteres de símbolos (*^¨¿”?·$...) y, en su defecto, por letras, por ejemplo “Aplicación” puede convertirse en “4pl!CaC!ón” con unos cuantos cambios.
Para terminar, y reforzar lo aprendido, recuerda, la contraseña es la primera línea de defensa de tu privacidad. Cambia tu contraseña a menudo, crea contraseñas que sean fáciles de recordar por ti, pero que tengan al menos letras, números y símbolos. Siempre es recomendable usar una semilla, no obstante, evita que la parte variable sea muy evidente y si crees que tu contraseña ha sido vulnerada procede con su cambio.
La seguridad de tus contraseñas depende de ti.