• auth
  • contraseña
  • oauth
  • oidc
  • identidad

La contraseña no está muriendo

El año pasado, hubo artículos de noticias circulando en internet que afirmaban que las grandes empresas de tecnología se estaban uniendo para eliminar contraseñas. Algunas startups incluso declararon que las contraseñas eran obsoletas y anticuadas.

Gao
Gao
Founder

Introducción

El año pasado, hubo artículos de noticias circulando en internet que afirmaban que grandes empresas de tecnología como Apple, Google y Microsoft se estaban uniendo para eliminar las contraseñas. Algunas startups incluso declararon que las contraseñas eran obsoletas y anticuadas. Después de adentrarme en el ámbito de la gestión de identidades durante meses, comencé a cuestionar la validez y la practicidad de estas afirmaciones.

¿Para qué sirve una contraseña?

A primera vista, la respuesta parece obvia: las contraseñas se utilizan para iniciar sesión y verificar identidades. Sin embargo, tengo una opinión diferente si consideramos el hecho de que las contraseñas no pueden verificar realmente quién eres:

  • Cuando un usuario inicia sesión en un sitio web con un correo electrónico y una contraseña, el sitio web no tiene forma de confirmar la persona real detrás de esas credenciales. Podría ser un humano o incluso un gato.
  • Cualquiera puede desbloquear un iPhone con el PIN correcto.

En realidad, el propósito de una contraseña es demostrar anónimamente la propiedad de algo: una cuenta de usuario, un dispositivo o el acceso a una puerta.

Los actuales "asesinos de contraseñas"

Las empresas mencionadas anteriormente han propuesto varios "asesinos de contraseñas". Muchos afirman ser alternativas más seguras que eliminan la necesidad de que los usuarios recuerden contraseñas complejas y estáticas durante la autenticación. Sin embargo, la mayoría de estas alternativas no son prácticas para eliminar completamente las contraseñas.

Autenticación FIDO

La autenticación FIDO (Fast Identity Online), como se explica en la documentación oficial, utiliza técnicas de criptografía de clave pública para el registro y el inicio de sesión (vale la pena mencionar que WebAuthn es un componente central de las especificaciones FIDO2). A primera vista, el proceso parece atractivo:

¿Simple, verdad? Desafortunadamente, hay un obstáculo significativo en el camino: la compatibilidad. En comparación con la combinación tradicional de "identificador y contraseña", la autenticación FIDO requiere:

  • Que los sitios web o las aplicaciones admitan FIDO.
  • Que los navegadores y/o sistemas operativos admitan FIDO.
  • Que los dispositivos del usuario tengan un mecanismo de verificación fácil de usar.

El incumplimiento de cualquiera de estos requisitos hace que la autenticación FIDO no esté disponible, obligando a recurrir a otros métodos.

Además, incluso si se cumplen todas las condiciones, ¿qué califica como un "mecanismo de verificación amigable para el usuario" en un dispositivo? Actualmente, puede implicar métodos biométricos como reconocimiento de huellas dactilares o faciales, acompañados de una opción alternativa como un código PIN, o sea, una contraseña. Al final, volvemos al punto de partida.

Técnicamente, no es un "asesino de contraseñas", sino más bien un proceso de autenticación o verificación más seguro y fácil de usar protegido por contraseñas.

Contraseña de un solo uso

Aunque el nombre incluye el término “contraseña”, las contraseñas de un solo uso (OTP) no son contraseñas tradicionales porque son dinámicas. Existen dos tipos populares de OTPs:

  • Contraseña de un solo uso basada en el tiempo (TOTP): generada algorítmicamente utilizando el tiempo actual como fuente de singularidad. Comúnmente se utiliza en la autenticación de varios factores (MFA) o 2FA.
  • Contraseña de un solo uso SMS/correo electrónico: generada en el servidor con algoritmos aleatorios. En algunos países, ha sido ampliamente adoptada como método de inicio de sesión primario.

Las TOTPs pueden no ser ampliamente reconocidas por su nombre. Por ejemplo, cuando un sitio web te pide que configures MFA y uses una aplicación como Google Authenticator o Duo para escanear un código QR, es probable que estés usando TOTP. También puedes haber notado que el sitio web a menudo muestra un largo "código de recuperación" y te aconseja guardarlo ya que solo se mostrará una vez. Algunos sitios web incluso alientan a los usuarios a imprimirlo en papel. En esencia, este código de recuperación funciona como una contraseña larga.

En cuanto a las OTP de SMS/correo electrónico, pueden ser costosas e inseguras:

  • Construir un remitente de SMS o correo electrónico desde cero requiere configuración.
  • Los remitentes de correo electrónico necesitan establecer una "reputación" positiva para mejorar la entregabilidad, de lo contrario, el remitente puede ser marcado como spam.
  • Cada país tiene sus propios operadores de redes móviles, lo que conduce a tiempos de entrega impredecibles y costos notables para enviar SMS, especialmente para las startups.

Biometría

El término "biometría" se refiere al uso exclusivo de métodos biométricos para la autenticación en línea. De hecho, hay una diferencia fundamental en comparación con otros métodos: la autenticación biométrica cambia la tarea original de "probar la propiedad de algo" a "probar quién eres". Debido a problemas de privacidad, los métodos biométricos se emplean principalmente para la autenticación local.

La contraseña no es perfecta, sin embargo

Como podemos ver, los "asesinos de contraseñas" esencialmente están ocultando contraseñas o usando contraseñas como opciones de reingreso. Aquí hay un resumen de las ventajas de las contraseñas basadas en nuestra discusión:

  • Accesibilidad y compatibilidad: Las contraseñas pueden usarse en varios sistemas y son accesibles para un amplio rango de usuarios.
  • Rentabilidad y versatilidad: Las autenticaciones basadas en contraseñas son generalmente más rentables que otros métodos y se adaptan a diferentes escenarios.
  • Anonimato y privacidad: Las contraseñas permiten el uso anónimo y protegen la privacidad del usuario.

Pero cada moneda tiene dos caras. Si bien las contraseñas tienen sus ventajas, depender únicamente de ellas para la autenticación presenta vulnerabilidades significativas. Pueden ser difíciles de administrar para los usuarios finales, y si los propietarios de sitios web no siguen las prácticas de seguridad adecuadas, las contraseñas se vuelven fáciles de comprometer. Las prácticas de seguridad peligrosas incluyen, pero no se limitan a:

  • Permitir contraseñas débiles o filtradas.
  • Falta de aplicación de HTTPS para conexiones.
  • Uso de algoritmos de hash inseguros.
  • Falta de adhesión estricta a estándares probados en batalla como OAuth u OpenID Connect (OIDC).
  • Exposición de la base de datos al público.

Conclusión

No pretendo menospreciar ninguno de los métodos de autenticación mencionados anteriormente. Por el contrario, mientras trabajo en la construcción de Logto, he desarrollado un gran respeto por estos métodos de autenticación notables y las personas detrás de ellos.

Sin embargo, lograr una seguridad del 100% es un objetivo inalcanzable. Lo que podemos aspirar es a reducir la posibilidad de ataques. Un enfoque eficaz es combinar la autenticación basada en contraseñas con contraseñas de un solo uso basadas en el dispositivo o entorno actual, lo que añade una capa extra de verificación y ha sido ampliamente adoptado. Al aprovechar las fortalezas de diferentes técnicas de autenticación, podemos crear un enfoque en capas que proporciona una protección más fuerte.

Para concluir, en lugar de centrarse en palabras de moda como "asesino de contraseñas" cuando las contraseñas no están realmente siendo eliminadas, sería más valioso concentrarse en encontrar un equilibrio entre la seguridad y la experiencia del usuario. Esto implica comprender las fortalezas y limitaciones de varios métodos de autenticación y implementarlos de una manera que garantice tanto la seguridad de los datos del usuario como una experiencia de usuario fluida.