Tus contraseñas serán más seguras si sigues estos consejos

Las contraseñas hoy en día son totalmente necesarias para autenticarnos, ya sea para iniciar sesión en servicios online, o también para autenticarnos en nuestro ordenador o en un servidor local. Teniendo en cuenta que las contraseñas son fundamentales tanto en local como en Internet, es importantísimo saber cómo crear una contraseña segura, para que sea muy difícil de adivinar o crackear por diferentes programas que existen hoy en día.

¿Qué hace que una contraseña sea segura?

Una contraseña se considera segura cuando nadie la puede adivinar, y cuando los diferentes programas para crackear contraseñas que existen actualmente, no pueden «adivinarla», o si lo hacen, deberían tardar muchísimo tiempo (años) en llegar a dar con la contraseña correcta. Hoy en día todas las contraseñas que utilizamos, se almacenan localmente hasheadas, esto significa que, si nosotros utilizamos la contraseña «password», jamás se almacenará en texto plano esta contraseña, sino el hash de «password».

Un hash es una función criptográfica en una sola dirección, de tal forma que tendremos una «entrada» que normalmente es la contraseña, y tiene una única salida. Esta función hash representa de manera unívoca a una contraseña, pero también a un documento o un conjunto de datos. Hay funciones hash que siempre tienen una salida de la misma longitud, pero otras, tienen una longitud dinámica ya que depende de la propia entrada. El contenido es ilegible, y, de hecho, teniendo el hash de una clave, no es posible realizar una función matemática para conseguir la «entrada». Es posible que existan hashes iguales para entradas diferentes, porque una función hash, en el caso del SHA-1 tiene 160 bits, y los posibles objetos a «resumir» no tienen un tamaño límite. Esta característica se denomina «colisión», y una función hash se considera que no es segura cuando se conocen este tipo de colisiones.

Las funciones hash tienen una serie de requisitos fundamentales:

  • Imposibilidad de obtener el texto original a partir del hash.
  • Imposibilidad de encontrar un conjunto de datos diferentes que tengan la misma huella digital (aunque como hemos visto anteriormente, es posible que este requisito no se cumpla). Resistencia fuerte ante posibles colisiones (dos entradas diferentes podrían tener la misma salida).
  • Posibilidad de poder transformar un texto de longitud variable en una huella de tamaño fijo (como el SHA-1 que es de 160bits), aunque existen nuevas funciones hash que la salida no tiene tamaño fijo.
  • Facilidad de empleo e implementación.
  • La longitud de salida debe ser pequeña, debe ser eficiente (fácil de calcular en un sentido), e imposible conseguir el «original».

Algunos hashes muy utilizados para almacenar contraseñas, con SHA2-256, SHA2-384, SHA2-512, y también hashes que están específicamente diseñados para usarse con contraseñas, como por ejemplo scrypt, bcrypt, argon2 y PBKDF2.

Las contraseñas se almacenan siempre hasheadas por seguridad, de tal forma que, si alguien es capaz de entrar en nuestros sistemas, no obtengan las contraseñas de todos y cada uno de los usuarios, sino que obtengan el «hash» de dicha clave, el cual tendrán que crackear por dos métodos principalmente:

  • Diccionario: Este método consiste en tener un diccionario con millones de palabras para ir probando una a una. Las funciones hash solamente se pueden obtener en una dirección, el objetivo de este diccionario es tener millones de palabras, calcular el hash y compararlo con el hash que hemos obtenido anteriormente en un hackeo.
  • Fuerza Bruta: Este método consiste en probar todas las claves posibles una a una, hasta dar con el hash de la contraseña de la base de datos robada, y por tanto, obtener la contraseña real.

Uno de los mejores programas para crackear los hashes de contraseñas es Hashcat, ya que utiliza tanto la potencia de la CPU de los ordenadores, como también de las GPU. Esto hará que crackear una contraseña de poca longitud lleve muy poco tiempo. Este programa incorpora una grandísima cantidad de hashes diferentes, utilizados por los principales servicios de red.

Consejos para crear una buena clave

Para crear una buena clave para un servicio, debemos tener en cuenta cómo diseñarla para que los dos tipos de ataques a contraseñas no le afecten, o al menos, le afecten lo mínimo posible. Debido a estos dos ataques diferentes (diccionario y por fuerza bruta), es fundamental que una contraseña cumpla unos requisitos:

  • Usar una clave que no se encuentre en ningún diccionario.
  • No usar una contraseña con una o dos palabras, ya que es posible que el diccionario también incorpore palabras típicas unidas.
  • Usar contraseñas largas (de más de 12 caracteres), para que sea muy complicado que por fuerza bruta consigan crackear la contraseña en un tiempo corto.
  • No utilizar claves que relacione nuestra vida personal, como la fecha de nacimiento, nuestro DNI y otros datos personales.

Combinación de números, letras y símbolos

También sería recomendable utilizar una combinación de números, letras mayúsculas, letras minúsculas y símbolos. Esta conjunción de caracteres es recomendable para ponérselo muy difícil a los programas por fuerza bruta, ya que deberán probar todas las combinaciones posibles teniéndolos en cuenta. Por ejemplo, si queremos crear una contraseña segura y fácil de recordar, podemos elegir una frase que nos guste especialmente, y seleccionar la primera letra de cada palabra, y ponerla en mayúscula, y a continuación, poner el número de caracteres que tiene la frase elegida.

Generadores de contraseñas

Hoy en día existen una gran cantidad de programas gestores de contraseñas, los más conocidos con LastPass y KeePass, estos gestores de claves no solo nos permitirán almacenar todas las contraseñas en un lugar seguro, sino que tienen generadores de claves incorporados que podremos utilizar para proteger nuestros servicios. Sería ideal que, por ejemplo, utilizásemos una clave aleatoria de 15 caracteres de longitud, y formados por mayúsculas, minúsculas, números y símbolos. Un detalle importante, es que si vas a usar símbolos en tu clave WPA2 del router Wi-Fi, debes saber que hay algunos símbolos que no están soportados, por tanto, utiliza símbolos típicos y no símbolos raros.

Con este tipo de programas, tan solo tendremos que recordar una única contraseña, para tener acceso al resto de contraseñas que hemos ido almacenando de manera segura con el programa.

Nunca utilizar la misma clave en varios servicios

Nunca deberías reutilizar la misma contraseña en varios servicios, sobre todo si son online, porque si uno de estos servicios es hackeado y consiguen crackear la contraseña, podrían utilizar tus credenciales en otros servicios, y afectar de manera colateral a los demás. Ya ha habido una gran cantidad de casos de «hackeos» grandes, como a Dropbox, Sony, Adobe y muchas otras empresas. Por tanto, es fundamental usar diferentes claves para diferentes servicios.

Un pequeño «truco» que podrías hacer (aunque no es muy recomendable, porque podrían ser capaces de adivinar el patrón y atacar únicamente la parte «diferente»), es usar el mismo «inicio» de clave para todos los servicios, y «finalizar» con una cadena de caracteres diferentes.

Errores habituales a la hora de crear contraseñas

Hay muchos errores habituales a la hora de crear claves robustas, y hay que evitarlo siempre:

  • Usar la misma clave para todos los servicios
  • Contraseñas con datos personales, como fecha de nacimiento, fecha de boda, y otros.
  • Apuntarla en un post-it y pegarla en el monitor
  • Llevar la contraseña apuntada en un papel con nosotros
  • Guardar en texto plano en el escritorio de nuestro PC las contraseñas utilizadas.

¿Cómo comprobar si una contraseña es segura?

Una forma muy fácil de saber si una contraseña es segura, es pensar como alguien que quiere crackearla, si la respuesta es NO a todas estas preguntas, significa que tendrás una contraseña segura:

  • ¿Estará esta contraseña en un diccionario de palabras?
  • ¿Esta contraseña tiene datos personales como nombre de mi madre o una fecha de cumpleaños?
  • ¿Esta contraseña es corta y puede ser fácilmente crackeada por programas de fuerza bruta?
  • ¿Esta contraseña tiene es muy sencilla (sin símbolos, sin números y sin mayúsculas/minúsculas)?

También puedes utilizar servicios online para comprobar la «fuerza» de tu contraseña, pero por favor, nunca pongas tu contraseña real que utilizas en un determinado servicio, sino una contraseña similar poniendo diferentes mayúsculas, minúsculas, números y símbolos. Jamás pongas en un servicio online para comprobar la fuerza de tu clave, la contraseña real, porque podrían estar recopilando todas las claves de los usuarios sin que tú te enteres.

¿Solamente con una contraseña segura es suficiente?

Actualmente las contraseñas por sí solas pueden no ser suficientemente seguras, de hecho, es recomendable siempre utilizar un segundo factor de autenticación. Los mecanismos de autenticación que tenemos actualmente son los siguientes:

  • Algo que tenemos: tarjetas magnéticas, tarjetas inteligentes, e incluso nuestro propio smartphone/tablet.
  • Algo que sabemos: las contraseñas
  • Algo que somos: biometría

Una de las combinaciones más seguras, es entrar a un sistema a través de la combinación de dos de estos tres factores que os hemos explicado. Por ejemplo, para acceder a un servicio podríamos configurar la contraseña (algo que sabemos) y, además, algo que tenemos (nuestro smartphone con una aplicación autenticadora). Las ventajas de esta combinación, es que aumenta el nivel de seguridad y la dificultad de que un usuario malintencionado acceda a un servicio, ya que deberá cumplir con los dos requisitos y no solamente la contraseña. El inconveniente es que el tiempo para autenticarnos aumentará, ya que deberemos introducir la contraseña y el código generado por nuestro smartphone. Otro inconveniente sería el no tener disponible el segundo factor.

¿Cómo comprobar si mis credenciales se han filtrado a Internet?

Actualmente existen varios servicios que nos permitirán conocer si nuestras contraseñas o nuestras credenciales digitales se han filtrado a Internet. El primer servicio es haveibeenpwned, con tan solo introducir tu correo electrónico te dirá si estás afectado por algún robo de base de datos, donde ahí aparece el correo electrónico que has introducido, es un servicio completamente gratuito y nos permitirá saberlo de manera muy rápida ya que tiene una gran base de datos de filtraciones que consultar.

El segundo servicio es Firefox Monitor, un servicio muy similar al anterior, y en algunas filtraciones de datos se basa en el servicio anterior. La principal diferencia es que nos enviará un email si en el futuro se ha descubierto que nuestro correo electrónico forma parte de una filtración, algo ideal para poder tomar las medidas oportunas (cambiar contraseñas).

Por último, el propio Google nos permite realizar una comprobación de todas las contraseñas que tenemos recordadas y sincronizadas en Google Chrome. De esta forma, nos avisará si ha habido alguna filtración de datos donde se ha visto expuesta, y también nos dirá si estamos repitiendo la misma clave en diferentes servicios (un error muy común), e incluso también nos indicará si la contraseña es o no robusta.

Tal y como habéis visto, para crear unas contraseñas seguras es fundamental seguir una serie de pasos, y si es posible, activar siempre la verificación en dos pasos de los diferentes servicios que lo soporten.