Gestores de Contraseñas y Encriptación: Tu Guía para una Seguridad Digital Sólida

En un mundo tan digitalizado como en el que vivimos, la necesidad de proteger nuestra información de terceros ha aumentado en gran tamaño. Prácticamente realizamos todos los días pequeñas acciones como revisar el correo, comprobar las cuentas, acceder a servicios… acciones que hacemos desde nuestra casa, posiblemente sentados o incluso tumbados en la cama. La comodidad que nos ofrece la vida en línea es algo indiscutible, sin embargo, esta viene con un costo potencial: la exposición a ciberataques y la vulnerabilidad de nuestros datos personales.

En este contexto, proteger nuestra vida digital es algo fundamental. Para ello, hoy os hablaré de dos utilidades esenciales para aumentar nuestra seguridad digital: los gestores de contraseña y algunas herramientas criptográficas.

Gestores de contraseña.

Hoy en día tenemos una cantidad ingente de cuentas abiertas en diversos servicios, desde correo electrónico hasta la del supermercado del pueblo para aquel día que hacían un descuento… ya me entendéis. Desde aquí quiero suponer que conocéis todos los servicios dónde habéis dado de alta vuestros datos, que habéis usado diferentes correos dependiendo del servicio, que habéis habilitado el 2FA donde era posible, que habéis usado contraseñas diferentes como esta “hx7g!HDXA*Yu” para cada cuenta y que las soléis cambiarlas periódicamente. ¿Verdad?

Si ahora mismo estás pensando “¿cómo se supone que voy a acordarme de esa contraseña?”, no te preocupes, no tienes que sacar ninguna libreta, o bloc de notas, o excel para apuntarte cada contraseña. Existe un espacio más seguro y mejor accesible para recordar nuestras contraseñas, los gestores de contraseña.

Un gestor de contraseñas al final es una aplicación que se encarga de almacenar las contraseñas por nosotros junto con el servicio y correo vinculado a ellas. Por su puesto, a diferencia del bloc de notas, los gestores encriptan todos tus datos con una clave maestra. Por tanto, con una sola contraseña puedes acceder a todas las demás. Aquí es muy recomendable que sea una contraseña sólida.

Existen diversas aplicaciones que funcionan como gestores de contraseña, entre ellas tenemos las que funcionan en la nube y las que funcionan en local.

  • Local: Las credenciales se almacenan en tu disco local y sólo son accesibles desde tu ordenador.
  • Nube: Las credenciales se almacenan en la nube, por lo que puedes acceder a ellas desde cualquier dispositivo.

Yo te recomiendo hacer uso de un gestor en la nube, ya que es más práctico y más seguro a nivel de no perder el acceso a tus credenciales.
Aquí te dejo una lista con diferentes servicios:

  • Bitwarden: Actualmente me encuentro usando este y estoy más que satisfecho con su servicio. Es gratuito y fácil de configurar. Más información.
  • NordPass: Si tienes alguna suscripción con la empresa Nord, esta puede ser tu opción. A diferencia de Bitwarden, NordPass es una opción de pago. Más información.
  • 1Password: Esta también es una opción popular, sobre todo a nivel empresarial. Además de ofrecer un gestor de contraseñas, te da acceso a muchas otras utilidades. Como es de esperar, 1Password se obtiene con una suscripción mensual. Más información.
  • LastPass: Esta es otra opción presente para guardar tus contraseñas, sin embargo yo te diría que estuvieras atento porque la reputación de la empresa está manchada con varias filtraciones importantes. LastPass es un servicio gratuito. Más información.

Herramientas criptográficas.

Bien, tenemos cubierta la parte de seguridad de nuestras cuentas, ahora los ciberdelincuentes lo tendrán verdaderamente difícil acceder a nuestras cuentas y a nuestra información. Sin embargo, si queremos ofuscar, codificar… un texto, ¿qué opciones tenemos?

Aquí entran en juego algunas herramientas criptográficas, pero ¿qué es la criptografía?

“La criptografía se ha definido, tradicionalmente, como el ámbito de la criptología que se ocupa de las técnicas de cifrado o codificado destinadas a alterar las representaciones lingüísticas de ciertos mensajes con el fin de hacerlos ininteligibles a receptores no autorizados.” – Wikipedia

En otras palabras, la criptografía es el proceso por el cuál convertimos texto plano, es decir, todo aquel texto legible como este, a un conjunto de caracteres que a simple vista no tienen sentido alguno para nosotros. Esta conversión es llevada a cabo por algoritmos matemáticos, unos más complicados que otros para deshacer.

Para introducirnos en la criptografía y en diversas herramientas, vamos a empezar por el primer algoritmo de cifrado registrado utilizado por el ser humano, el cifrado César.
Efectivamente sí, tiene que ver con el ex dictador romano Julio César. El proceso que sigue este algoritmo es desplazar n veces una letra. Veámoslo en mayor profundidad:

Cifrado César.

En este sistema, cada letra es un número, siendo A el 0 y la Z el 26 (en el alfabeto inglés). Por tanto, si ciframos el texto “Hello World” con la clave 3, nos quedaría algo así: Khoor Zruog. Lo que hemos hecho es desplazar cada letra 3 posiciones a la derecha. Este proceso os puede sonar mucho al algoritmo ROT13, que en vez de mover 3 posiciones una letra, la mueve 13 veces. Matemáticamente se podría representar de la siguiente manera:

Siendo x la letra a cifrar, k la clave a usar y n el número de letras del alfabeto usado. (26 en caso del alfabeto inglés).

Ahora bien, puede que este cifrado en su momento fuese sólido y difícil de romper, pero hoy en día es muy sencillo de vulnerar.

Base64.

Base64 es un esquema de codificación que se utiliza para representar datos binarios en texto legible. Básicamente Base64 convierte datos binarios en una cadena de caracteres ASCII.

Como bien dice el nombre “64”, significa que utiliza un conjunto de 64 caracteres diferentes para representar los valores binarios. Estos 64 caracteres incluyen las letras (A-Z), (a-z), los dígitos (0-9) y 2 caracteres especiales ‘+’ y ‘/’. También es posible que nos encontremos con este otro caracter ‘=’, que se agrega al final para que la cadena codificada tenga una longitud que sea múltiplo de 4.

Sabiendo esto, procedemos dividiendo los datos binarios en grupos de 3 bytes (24 bits). Recuerdo que 1 byte = 8 bits. Ahora dividimos este número en cuatro números de 6 bits. Convertimos cada uno de estos números de 6 bits en un carácter correspondiente en la tabla Base64:

Ahora concatenamos estos cuatro caracteres para formar un bloque de texto Base64. En este punto, tendríamos que repetir el mismo proceso por cada 3 bytes en los datos binarios.
En el caso de que la longitud de la cadena no sea múltiplo de 4, simplemente añadiremos el ‘=’ al final de esta.

Es probable que pienses que base64 sea complicado de codificar, por tanto difícil de decodificar, pero no, es realmente sencillo. Sólo tienes que aplicar el proceso inverso.

Aquí te dejo una utilidad para poder ver de manera más sencilla este y muchos otros algoritmos de cifrado: CyberChef

Hexadecimal.

El sistema hexadecimal (hex) es un sistema numérico que utiliza base 16, a diferencia del sistema decimal que usa base 10.
En este sistema, los números se representan utilizando 16 símbolos diferentes, que son los números del 09 y las letras A, B, C, D, E y F (que cubren las posiciones que faltan). Cada símbolo en el sistema hexadecimal representa un valor específico, y los números en hexadecimal se construyen combinando estos símbolos.

Hay que tener en cuenta, que las letras A, B, C… corresponde con números desde el 10 al 15, respectivamente.
Vale, pues ahora al igual que en el sistema decimal, en el sistema hexadecimal, cada dígito tiene un valor según su posición. El dígito más a la derecha tiene un valor de 16^1, el siguiente tiene un valor de 16^2 (256), el siguiente 16^3… y así sucesivamente.

Sólo nos faltaría convertir estos números decimales a hexadecimales, para ello dividimos el número decimal por 16 hasta que el cociente sea 0. Luego, los símbolos hexadecimales se leen de derecha a izquierda para obtener el valor en hexadecimal.
En caso de querer convertir un hexadecimal a decimal, se multiplican los valores de posición de cada dígito y se suman los valores.

Por ejemplo, el número 255 sería FF en hexadecimal:

AES.

AES (Advanced Encryption Standard) es un algoritmo de cifrado simétrico que es utilizado comunmente para proteger datos. Este algoritmo tiene una buena reputación por su seguridad, eficiencia y velocidad.

Como he dicho, AES es un cifrado simétrico, por tanto necesitaremos establecer una clave para llevar a cabo el cifrado.
AES admite claves de 128, 192 y 256 bits, lo que significa que la longitud de la clave determina el nivel de seguridad. Cuanto más larga sea la clave, más difícil será romperla.

Por otra parte, AES utiliza rondas de cifrado, que dependen de la longitud de la clave.

  • 128 bits: 10 rondas.
  • 192 bits: 12 rondas.
  • 256 bits: 14 rondas.

A su vez, AES opera en bloques de datos de 128 bits (16 bytes). Cada bloque de datos se organiza en una matriz de 4×4 bytes, y el cifrado se realiza en la propia matriz.

Antes he estado hablando de las rondas, y es aquí cuando entran en juego. En cada ronda de cifrado, se realizan 4 operaciones principales en la matriz. No voy a explicar las cuarto operaciones pero sí deciros que entran en juego operaciones lógicas como XOR.

Antes de cada ronda, se generan unas subclaves a partir de la clave principal utilizando una serie de operaciones. Luego estas claves se usan en la última operación de la matriz.

El proceso de cifrado AES se repite para cada bloque de datos. Y como siempre, para desencriptar se realizaría el proceso contrario. Pero a excepción de otros algoritmos, es realmente difícil realizar el proceso contrario para romper la encriptación de AES.

MD5.

El algoritmo MD5 (Message Digest Algorithm 5) es una herramienta fundamental utilizada para generar un hash a partir de una entrada. ¿Pero qué es exactamente un hash? En esencia, un hash es un algoritmo que toma una entrada o mensaje y produce una cadena de caracteres finita como resultado, generalmente en formato hexadecimal o una combinación de números y letras.

La principal utilidad del MD5 radica en la verificación de la integridad de los datos. Imagina que tienes un archivo llamado “lista.txt” que deseas compartir con un amigo a través de un medio que podría ser poco confiable, lo que implica la posibilidad de pérdida o alteración de datos en el proceso. Para garantizar que el archivo no haya sido modificado durante la transmisión, puedes generar un hash antes de enviarlo y otro después de que tu amigo lo reciba. Si los valores hash resultantes no coinciden, esto indicaría que ha ocurrido algún cambio en el archivo durante su transferencia.

Este concepto también se aplica al descargar archivos binarios desde internet. Algunas páginas web proporcionan un hash del archivo junto con la descarga, lo que te permite verificar si el archivo que has descargado corresponde exactamente al archivo original. Piensa en el hash como el equivalente a un código de barras del archivo, que te garantiza su autenticidad.

En sistemas UNIX, puedes generar hashes MD5 utilizando la herramienta “md5sum”. Es tan sencillo como ejecutar el comando “md5sum nombre_del_archivo” en la terminal, lo que te proporcionará el valor hash del archivo. Esto te permite verificar la integridad de los archivos de una manera rápida y confiable.

`

SHA-256.

SHA-256 (Secure Hash Algorithm 256 bits) es una función de hash criptográfico que forma parte de la familia de algoritmos SHA-3.
SHA-256 se usa principalmente para generar valores hash de 256 bits a partir de una entrada de datos.

A través de una serie de operaciones matemáticas, el valor hash resultante es único para un conjunto de datos y es extremadamente improbable que dos entradas diferentes produzcan la misma salida. A día de hoy todavía no se ha dado ninguna coincidencia. Y rehacer las operaciones para romper su seguridad es realmente difícil, por tanto lo hace bastante seguro.

Algunas de sus aplicaciones son la verificación de la integridad de archivos (como MD5), la generación de firmas digitales, la autenticación de contraseñas y la seguridad en la blockchain de Bitcoin. Se podría decir que es un algoritmo sólido y confiable para garantizar la seguridad de los datos.

Conclusión.

En este artículo hemos estado viendo lo que son los gestores de contraseñas y varios tipos de cifrados como ROT13, base64, hexadecimal, AES, MD5 y SHA-256. No hace falta que mencione que existen muchos otros más y que un futuro tendremos nuevos avances en algoritmos de cifrado haciéndolos más rápidos y seguros.
Para terminar, te quiero retar a romper una serie de hashes y cadenas para obtener el mensaje original en texto plano.

A continuación te dejo una serie de herramientas que necesitarás para resolver los siguientes retos:

¡Te leo en los comentarios!

Reto I. Introducción

rj mfx jshtsywfit -> ????

Reto II. Fácil

KGErYileMj1hXjIrMmFiK2JeMg== -> ????

Reto III. Medio

73:6f:73:70:65:64:69:61:2e:6e:65:74 -> ????

Reto IV. Difícil

eca8e05d94c236e78c389e15e1cad71ff9326bdfa5e1d79d92766f38414e66e5 -> ????

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.