tag

autenticación

7 artículos con esta etiqueta

2026-09-05

Fallos de diseño en el restablecimiento de contraseña: 5 formas de perder una cuenta pese a un login fuerte, y cómo corregirlas

Un flujo de restablecimiento es un mecanismo para que alguien que no conoce la contraseña pueda fijar una nueva, lo que lo convierte en una vía de autenticación por derecho propio. Refuerza el login todo lo que quieras: si el restablecimiento es débil, esa es tu verdadera fuerza de autenticación. Cinco formas de fallo: tokens adivinables, tokens que nunca caducan, enlaces que siguen vivos en un buzón, enlaces cuyo destino se puede fijar desde fuera (cabecera Host) y respuestas que revelan si una cuenta existe. El paso clave al implementarlo es separar lo que la guía exige de las cifras que deja en tus manos.

2026-09-05

Límite de peticiones y control de abusos: cómo diseñar límites que frenen la fuerza bruta y los costes desbocados

El límite de peticiones suele fallar no porque el límite fuera demasiado laxo, sino porque se hizo la pregunta equivocada. Tres preguntas: a quién cuentas (la IP se puede falsificar y la comparten usuarios reales, así que la identidad va primero), qué cuentas (contar solo peticiones no ve operaciones caras aisladas: coste, tamaño, número de registros) y qué pasa al llegar al tope (un bloqueo tosco es una denegación de servicio contra usuarios legítimos). NIST fija en 100 el máximo de fallos consecutivos y pide retrasos y CAPTCHA en lugar de dejar fuera a la gente; OWASP incluye los límites de gasto con terceros, el último control contra el daño económico.

2026-06-30

Autenticación frente a autorización: un inicio de sesión por sí solo no protege los datos de otros usuarios

Autenticación = verificar quién es alguien; autorización = decidir qué puede hacer. Son cosas distintas, y añadir un inicio de sesión no es autorización. Sin acotar los datos al propietario (user_id), 'con sesión iniciada = ve todos los datos' — el Broken Access Control número uno de OWASP. Añade encima un scaffold con el registro abierto y un desconocido puede darse de alta y entrar. Defensas: acota cada consulta al propietario, cierra el registro que no necesites, defensa en profundidad, registros de auditoría/acceso antes de un incidente, detecta nuevas altas.

2026-06-28

¿Qué es una passkey? Clave pública, resistencia al phishing y sincronización

Una passkey autentica mediante una firma de clave privada; el servicio conserva la clave pública. Las passkeys sincronizadas pueden transferir credenciales cifradas entre dispositivos; las vinculadas a un dispositivo no se sincronizan. La MFA depende de la verificación del usuario exigida, y siguen importando el dispositivo, la cuenta de sincronización y la recuperación.

2026-06-27

¿Qué es el hashing de contraseñas? Almacenar contraseñas con seguridad mediante una transformación de un solo sentido

El hashing de contraseñas consiste en almacenar una contraseña como una transformación de un solo sentido e irreversible. Nunca guardes texto plano. A diferencia del cifrado, no puedes descifrarla de vuelta: ese es el objetivo. Pero MD5/SHA-256 a secas caen ante tablas arcoíris y fuerza bruta. La solución: una sal por usuario más un hash deliberadamente lento (bcrypt/Argon2/scrypt). No lo programes tú mismo; usa la función estándar.

2026-06-27

Cómo guardar contraseñas con seguridad: la forma correcta de aplicar hash y salt

Una guía práctica para guardar contraseñas con seguridad en el servidor. Entiende por qué el texto plano, el cifrado y los hashes simples fallan todos, y luego converge en una respuesta: un salt por usuario más un hash deliberadamente lento (Argon2id recomendado, bcrypt/scrypt como alternativas). No lo inventes tú — usa la función estándar, sube el coste con el tiempo y migra los hashes débiles re-hasheando al iniciar sesión.

2026-06-12

¿Qué es un JWT (JSON Web Token)? Cómo funcionan los tokens firmados y cómo usarlos de forma segura

Un JWT es un token que un servidor firma y emite para que la manipulación pueda detectarse. Tiene tres partes —encabezado.carga útil.firma— y el servidor verifica la firma para confirmar su autenticidad. Cuidado con: (1) verifica siempre la firma y fija el alg esperado (rechaza alg:none); (2) cualquiera puede leer el contenido, así que no pongas secretos en él; (3) mantén la expiración corta y ten una estrategia de revocación. Decodificar (leer) y verificar (comprobar la autenticidad) son cosas distintas.