Ir al contenido principal

El problema de las contraseñas y por qué es buena idea el doble factor de autenticación

Allá por la década de los 60, Fernando José Corbató, científico de computación del MIT, tuvo la idea de emplear contraseñas para proteger el acceso a archivos en ordenadores compartidos. Por aquel momento, el uso de ordenadores estaba bastante poco extendido y las primeras redes eran más bien parcelas independientes que conectaban unos cuantos equipos dentro de alguna que otra universidad. Nada que ver con Internet, cuya existencia, dimensión y alcance eran, por aquel momento, inimaginables para la mayoría. En el diseño de aquellos sistemas la seguridad no fue una prioridad. La mayoría de los ataques informáticos comenzaron a surgir varias décadas más tarde cuando los primeros PCs empezaron a estar al alcance de todo el mundo e Internet empezó a tomar forma. No se rompieron mucho la cabeza para pensar en diseñar sistemas seguros contra amenazas que aún no habían sido inventadas. Esos cimientos que se contruyeron con la seguridad como última prioridad son los mismos sobre los que se asienta el Internet con el que convivimos a día de hoy. Dicho esto, aquel primer uso de las contraseñas en los años 60 tenía el simple objetivo de restringir el acceso a ficheros entre compañeros de la misma red universitaria y, para eso, sirvieron bastante bien. Resulta sorprendente ver cómo la llave que hoy protege todas nuestras cuentas online, repletas de información confidencial, no ha evolucionado lo más mínimo desde hace 60 años.

En el mundo de la informática, la seguridad se encuentra en un duelo constante con la usabilidad. Haz un sistema más seguro y, casi con total seguridad, lo habrás hecho más incómodo. Esto realiadad no sólo es cierta para Internet y los ordenadores. Seguro que resulta del agrado de muy pocos atravesar los controles de seguridad de los aeropuertos pero, se considera lo suficientemente importante evitar la presencia de explosivos a bordo. En el mundo digital, las amenazas suelen (más bien solían) tener efectos potenciales bastante menos desastrosos y, por ello, el usuario general tiende a preferir un sistema cómodo y eficaz frente a uno seguro y restrictivo. Este es uno de los motivos por los que las contraseñas no han sido sustituidas hace ya tiempo como mecanismo de control de acceso. Estamos bastante familiarizados con ellas, son simples de implementar y no requieren de ningun dispositivo externo como sí sucedería con un control biométrico (lector de huellas o escáner de retina por ejemplo). El problema de la autenticación es uno de los más complejos en ciberseguridad y ningún otro mecanismo ha conseguido jubilar a las contraseñas como método de control de acceso generalizado.

No obstante, las contraseñas presentan numerosas debilidades y, por sí solas, se pueden quedar bastante cortas a la hora de garantizar la seguridad del control de acceso en el contexto actual. Las funciones hash ya cifran las contraseñas para evitar que una filtración desde la base de datos que las almacena se las muestre en claro a cualquier interesado pero, la filtración o la interceptación no son los únicos mecasimos de ataque para robar contraseñas. Las contraseñas son susceptibles de ser adivinadas. Si se logra obtener el hash de una contraseña, es posible adivinarla mediante ataques por diccionario o fuerza bruta.

El ataque por diccionario consiste en emplear una lista de contraseñas posibles para calcular su hash y compararlo con el hash interceptado. Es decir, se trata de ir probando una lista de contraseñas probables hasta que alguna coincide con el hash que se ha logrado obtener. Este ataque es realmente sencillo y eficaz contra la inmesa mayoría de contraseñas, que se basan en palabras sencillas y conocidas, fáciles de adivinar y de probar una detrás de otra. El diccionario RockYou, de libre acceso, contiene una enorme lista de contraseñas que se filtraron en un ataque al plugin RockYou de Myspace. Es un muy buen punto de comienzo para adivinar cualquier contraseña que, si emplea secuencias de caracteres comunes, como palabras específicas, con gran probabilidad aparecerá ahí.

El ataque por fuerza bruta también se basa en intentos sucesivos para adivinar una contraseña pero en este caso, se trata de probar todas las combinaciones de caracteres posibles. Este puede ser más lento que el ataque por diccionario pero, dado que se prueban todas las combinaciones de caracteres, tarde o temprano aparece la buena. Por esta razón, una contraseña es más segura cuanto más larga y más variedad de caracteres contenga. Este post en reddit no tiene por qué ser exacto pero es una buena referencia para hacerse a la idea de lo poco o mucho que se tardaría en romper una contraseña por fuerza bruta en función de sus características: 

En definitiva, una contraseña relativamente segura frente a ataques por diccionario no puede contener palabras conocidas o patrones predecibles, es decir, debería ser una secuencia de caracteres aleatoria y uniformemente distribuida y, para además ser segura contra ataques por fuerza bruta, tendría que rondar los 12 caracteres de longitud y combinar toda la variedad posible (minúsculas, mayúsculas, números y símbolos). Además, para evitar que una única contraseña otorgue acceso a todas tus cuentas, deberías usar una distinta en cada sitio. Dicho esto, si alguien es capaz de recordar una contraseña distinta para cada una de sus cuentas, cumpliendo con todos los requisitos mencionados, que me lo haga saber. Hasta que conozca a esa persona, sostendré mi creencia de que es inviable. Y no valen los gestores de contraseñas, basados en el paradigma de "una contraseña para dominarlas a todas". En definitiva, es cómodo usar contraseñas pero no tan cómo hacerlas seguras.

Por esta razón, se está haciendo un importante esfuerzo para consolidar la autenticación mediante dos factores. Si bien la autenticación mediante contraseña se basa en algo que conoces, también puedes ser identificado por algo que posees, como tu smartphone, o algo que eres, como tu huella dactilar o tu retina. De este modo, se trata de autenticar a una persona no sólo mediante su contraseña sino añadiendo un método adicional. Probablemente, el que resulta más familiar es el que emplea Google, mandando una notificación a nuestro teléfono cuando tratamos de iniciar sesión. Ya no basta con conocer la contraseña sino que quien quiera iniciar sesión en una cuenta, necesita también acceso al smartphone del dueño. Por decirlo de otra forma, el sistema pone a prueba al usuario pidiéndole una evidencia extra de que es quien dice ser. No es un mecanismo a prueba de todo pero, desde luego, es bastante más seguro que el uso único y exclusivo de una clave y no añade mucha complejidad al inicio de sesión. 

Espero que haya sido interesante y haber dado algún argumento convincente para activar el segundo factor de autenticación en los sitios que lo permitan. Muchos ya lo usan por defecto. Hasta aquí por ahora. Nos vemos en la próxima publicación.

Comentarios

Entradas populares de este blog

AMD Ryzen 4000 a principios de 2020.

Hace menos de una semana que la directora ejecutiva de AMD, Lisa Su, ha comunicado que la cuarta generación de los procesadores Ryzen llegará a principios de 2020. Concretamente, los primeros en llegar serán para portátiles y posteriormente para equipos de sobremesa. De este modo, AMD estrenaría la arquitectura Zen3 de 7nm este próximo año. Eso sí, como hemos comentado antes, los primeros en llegar, en el mes de enero, serían para ordenadores portátiles con arquitectura Zen2 de 7nm, que según lo que se sabe se presentarán en el CES de Las Vegas. Los Ryzen 4000 para ordenadores de sobremensa, con la nueva arquitectura Zen3 de 7nm, llegarán posteriormente, según se especula, para mediados de año. Cabe destacar también que se espera que la nueva arquitectura Zen3 sea compatible con los sockets actuales de AMD por lo que debería ser soportada por la mayoría de las placas base actuales para Ryzen (socket AM4). Como es lógico, con la arquitectura Zen3 se esperan aumentos e

PC Gaming por piezas por 500 euros. [2019]

Este ordenador por piezas de preseupuesto medio-bajo será capaz de correr con buena calidad gráfica y tasas de frames más que aceptables casi cualquier videojuego actual. Saldrá por menos de 500 euros (al menos en España), y podrá ser incluso más barato aprovechando ofertas de Black Friday.  Enlace a la configuración en pccomponentes: https://www.pccomponentes.com/configurador/398cA0522 Importante tener en cuenta que en la lista no incluyo el sistema operativo. Asumo que cada uno puede elegir el que prefiera. Eso sí, para quien esté interesado en adquirir Windows 10, se puede encontrar a precio muy asequible en Instant Gaming. Estos son los componentes (añado enlaces a la página española pccomponentes para más detalles y compra): Procesador:  Intel Core i3-9100F 3.6GHz. Cuatro núcleos y frecuencia de 3.6GHz llegando a 4.20GHz en overclock. https://www.pccomponentes.com/intel-core-i3-9100f-36ghz Placa base:  MSI B360M PRO-VDH. Cuenta con todas las funcionalidade

Funciones hash: el invento que protege tus contraseñas de los hackers y te permite minar criptomonedas.

La criptografía es casi tan antigua como la necesidad de ocultar la información escrita. Son muy diversas las técnicas que se han empleado desde siglos atrás para transformar un texto en claro en uno cifrado, ilegible para quien no lo pueda descifrar. Uno de los ejemplos clásicos y más sencillos es el cifrado César, utilizado por Julio César para comunicarse con sus tropas durante la guerra contra los galos. Este mecanismo de cifrado se basa en sustituir cada letra del mensaje por aquella que se encuentra desplazada n posiciones en el alfabeto. Por ejemplo, si n = 2 , la sustitución alfabética sería la siguiente: Alfabeto en claro:  ABCDEFG HIJKLMNÑOPQRSTUVWXYZ   Alfabeto cifrado:  CDEFGHIJKLMNÑOPQRSTUVWXYZAB Y si cifrasemos la palabra HOLA  con n = 2  obtendríamos el siguiente resultado:  H -> J, O -> Q, L ->N, A -> C:  JQNC Lo que llamaríamos la clave de cifrado es, en este caso  n = 2 . Como es lógico, cualquiera que conozca la clave, podrá revertir el cifrado desplazan