En pleno 2022, mientras las contraseñas desaparecen.
Retos y aprendizajes de
Twitter: @OriolEgea - Github: @oegea - Web: www.oriol.im
Soy FE en el equipo de profesionales de coches.net
Reinvento la rueda en mi tiempo libre
Por qué construir un gestor de contraseñas en 2022
Qué inconvenientes existían en el pasado, y por qué ahora es más emocionante que nunca
Laura
Su hermano
Mantenimiento frecuente
Actualizar el navegador implica disponer de un entorno seguro
1. Web Crypto API es ahora una API madura y documentada.
2. Web APIs + Web Assembly = Ningún requisito es imposible :D
3. A día de hoy, aún solventa una necesidad. ¿Por qué no empezar?
1. Web Crypto API es ahora una API madura y documentada.
2. Web APIs + Web Assembly = Ningún requisito es imposible :D
3. A día de hoy, aún solventa una necesidad. ¿Por qué no empezar?
¡Manos al código!
Disclaimer:
2. Se simplifican y obvian conceptos.
1. No soy un experto matemático. Intento utilizar algoritmos seguros y ser cauteloso utilizando buenas prácticas.
1. Práctica y estudio de técnicas para securizar información.
2. Permite cifrar mensajes, garantizar la integridad de éstos (checksum), asegurar el no-repudio de un emisor (firma digital), entre otros.
3. En lo relativo al cifrado de datos, se utilizan claves secretas para cifrar y descifrar datos.
1. Operación de cifrado/descifrado se realiza por el emisor/receptor desde su propio dispositivo.
2. Sólo emisor y receptor disponen de claves de cifrado. ISP, proveedor de servicio, u otros, no pueden acceder al mensaje.
Resumen: Los datos los cifra/descifra "frontend". El servidor no realiza operaciones criptográficas ni accede a las claves de cifrado.
Hasta 2016 Whatsapp no implementó un diseño incorporando cifrado e2e.
👉🏾 https://shorturl.at/mDIWY
1. Utilizamos la misma clave para cifrar y descifrar.
2. Emisor y receptor deben conocer esta clave.
3. Si existen varios participantes, compartir de forma segura la clave de cifrado es un reto.
1. Organizar la información (i.e. vaults, directorios)
2. Almacenar información sensible (contraseñas, tarjetas de crédito)
3. Aplicar medidas de seguridad en almacenaje, transporte, etcétera.
1. Completa login.
2. Crea y gestiona directorios y contraseñas.
1. Actúa como almacén de datos.
2. Identifica al cliente (login).
3. Envía a FE sólo sus datos.
holamundo123
Texto plano
- Proveedor de servicio puede visualizar contraseñas.
- Leak de datos interno (error humano).
- Acceso no autorizado (vulnerabilidad).
nfgfeg4r4tgrfdfdsfsdfsdf==
Datos cifrados
master-password
Contraseña maestra.
(No se comparte, no se almacena)
Derivamos clave de cifrado de la contraseña
PBKDF2
123456
holamundo
holamundo123
123456789
admin
root
admin123
toor
PBKDF2
AES GCM
(Fuente: 1Password, Enero 2023 - https://support.1password.com/pbkdf2/)
Un sistema es seguro dependiendo de los recursos que cueste comprometerlo. Los que hoy en día es seguro, puede dejar de serlo "mañana".
Además de cifrar los datos con la clave derivada de la contraseña maestra, los ciframos con una clave aleatoria.
La clave aleatoria solo la solicitamos la primera vez, y la almacenamos en el dispositivo (i.e. local storage).
Pros:
1. Es mucho más difícil para un adversario conseguir la clave aleatoria y además la contraseña maestra.
Cons:
1. Configurar un nuevo dispositivo es ahora más difícil (impacto en UX).
2. Perder la clave aleatoria comporta perder el acceso.
1. No hay recetas mágicas: Siempre es buena idea añadir capas de seguridad adicionales intentando no deteriorar la UX.
3. Leer y documentarse sobre qué algoritmos son seguros (a día de hoy) y qué buenas prácticas debemos cumplir es vital.
2. Los algoritmos de cifrado asimétrico abren un abanico de posibilidades. (¡Compartir contraseñas, por ejemplo!)
Avatars by getavataaars.com. Some images by rawpixel.com, storyset and jcomp on Freepik.
(También de hacer preguntas, si ha quedado tiempo =D)
¡Puedes descargar las slides aquí!
(Además he dejado algunas notas post-presentación)