Archivo de etiquetas bcrypt

PorLeón Ramos

Passwords ¿El tamaño importa?

¿El tamaño importa?

[Infosec] Los mejores passwords son los que tienen mayúsculas, minúsculas, números y caracteres especiales ¿cierto? Un password de 8 letras de longitud utilizando un universo de 94 caracteres ascii tiene un nivel de entropía alto. Pero se nos hace difícil de recordar y solemos perderlo una y otra vez.

De tal forma que es más sencillo hacer buenos passwords con 3 palabras que podamos recordar fácilmente, que quebrarnos la cabeza con símbolos especiales.

¿Cómo manejarlos?

Pues la memoria ayuda, puedo recordar varias ocasiones en las que saberme el password de memoria hizo la diferencia entre una buena experiencia y una muy mala experiencia. Pero seamos honestos, cada día que abrimos una nueva aplicación le agregamos un nuevo password a nuestra pobre cabecita. Así que la necesidad de organizarnos es importante.

Dashlane
1Password
LastPass

Además agregué Bitwarden porque es opensource y te permite que descargues el código de su servidor para que lo instales en un servidor físico o virtual a través de docker.

¿Cómo programar con passwords?

Este es un problema porque a quienes se dedican a desarrollar, seguramente el cliente les ha pedido ¿puedes mandarme mi password por correo de forma automática? La respuesta correcta debe de ser un NO rotundo.

Pues en este espacio hemos escuchado ya varias veces que tras una brecha de seguridad fueron comprometidos los datos de varios usuarios y que la base de datos se encuentra a la venta en Internet y, pero aún, tiene los passwords en texto plano. Cualquiera puede verlos como son.

Ese sería uno de los principales errores que cometemos al programar un sistema y utilizar passwords. Me tomé unos minutos para describir algunos errores que cometemos al programar cuando manejamos passwords.

Almacenar los passwords en texto plano. Pues nada, como lo mencioné, si se roban la base de datos tienen los passwords de todos los usuarios y pueden hacer lo que quieran con ellos. Además acuérdate que muchas personas usan su password en muchos lugares para evitar recordar varios. Por ello almacenar los passwords en texto plano puede comprometer no únicamente tu sistema sino los sistemas de terceros. Revisen HaveIbeenPawned.
Encripción con una llave única. La encripción también puede ser riesgosa porque el proceso de encripción es reversible si se cuenta con la llave correcta. Y, por lo general, somos bien descuidadotes y dejamos las llaves pegadas en la puerta. Además, si un atacante se hace de la base de datos, puede ir encontrando passwords similares y buscar las respuestas a las preguntas de recuperación para conocer el password original.
Usar un hash básico como md5sum o sha1sum. Aunque los hashes, a diferencia de la encripción, no son reversibles, se han generado diccionarios de hashes que tienen las cadenas que resultan de varias palabras o passwords para que puedas encontrar el password original. MD5SUM es una muy mala idea.

Las opciones que tenemos para almacenar los passwords son un poco más elegantes ahora y sólo compartiré 3. Queda en las manos del lector investigar más a profundidad adicionales.

Si se usa un algoritmo de hash, utilizar el password del usuario y sumarlo a una cadena de letras adicional para generar un hash único por usuario.
Mejorar el punto anterior, pero adicionalmente retroalimentar el algoritmo al agregar el concepto del costo, que sería como llamarlo varias veces antes de contar con la cadena final.
Separa las bases de datos, una para la lógica y otra para la autenticación.

Espero que les gusten estos tips sobre passwords en el marco de esta semana y mes de la ciberseguridad en nuestro Podcast de Creadores Digitales!

Acá la liga de la presentación por si la necesitan. [Presentación]

Photo by Matthew Brodeur on Unsplash

Nuestras Redes

@creadoresdigita CreadoresDigitales

Sigue a León, Hiram y Alina en Twitter

Hiram @hiramcoop
León @fulvous
Alina @alinapoulain

¡Escúchanos!

En Ivoox En Spotify
ApplePodcast En Youtube
Google podcast