Autenticación multifactor en ASP.NET Core

Completado

En la unidad anterior, ha personalizado y ampliado Identity de ASP.NET Core. En esta unidad, obtiene información sobre la autenticación multifactor y cómo se implementa en Identity.

Multi-Factor Authentication

La autenticación multifactor (MFA) es un proceso por el que, durante el inicio de sesión, se solicitan a un usuario otras formas de identificación. Esta solicitud podría ser de un código de una aplicación, un valor de token de hardware o un examen biométrico. Cuando se exige un segundo tipo de autenticación, se mejora la seguridad.

La prueba necesaria para la autenticación se clasifica en tres tipos:

  • Algo que ya conoce, como una contraseña o una pregunta de seguridad.
  • Algo que ya tiene, como un token de hardware o una aplicación en el teléfono.
  • Algo que forma parte de usted, como una huella digital o el escaneo facial.

Gran parte de la eficacia de MFA proviene del uso de diferentes tipos de autenticación. Es posible que un adversario pueda obtener acceso a varias cosas que conoce, como la contraseña y el mote de la infancia, pero es mucho más difícil poner en peligro tanto algo que sabecomo algo que tiene o es.

Contraseña de un solo uso basada en tiempo

La contraseña de un solo uso basada en tiempo (TOTP) es un algoritmo conocido que genera códigos numéricos únicos que expiran después de 30 segundos. El algoritmo toma dos entradas, la hora actual y una clave única.

Al registrarse, el usuario escribe la clave en una aplicación compatible con TOTP. Estas aplicaciones incluyen las siguientes:

  • Microsoft Authenticator
  • Google Authenticator
  • LastPass Authenticator

Escribir la clave en la aplicación se puede simplificar con un código QR. La aplicación usa la clave y la hora actual para generar y mostrar códigos únicos cada 30 segundos. Si el código que genera la aplicación coincide con lo que espera el servidor, la autenticación se realiza correctamente. El algoritmo está diseñado para perdonar pequeñas diferencias entre los relojes del dispositivo y el servidor.

Como forma de MFA, normalmente se solicita al usuario un código TOTP en combinación con una contraseña. La contraseña es algo que sabe, y el código es una prueba de algo que tiene. Esto se debe a que la única manera de generar el código es con la clave almacenada en la aplicación.

De forma predeterminada, las plantillas de proyecto de ASP.NET Core que usan Identity incluyen compatibilidad con la autenticación multifactor para las aplicaciones de autenticación TOTP. El formulario Configurar la aplicación de autenticación de la plantilla de Razor Pages proporciona una clave de registro de 32 caracteres para inicializar el valor del token. Pero la plantilla no genera un código QR de forma predeterminada.

Nota

Los códigos enviados por mensajes de texto SMS son una alternativa común a TOTP. Después de todo, el teléfono en el que recibe el mensaje SMS es algo que tiene. Pero los SMS como MFA son relativamente fáciles de capturar para un adversario. Por tanto, los códigos SMS ya no se consideran una forma segura de MFA.

Resumen

En esta unidad, ha aprendido qué es la autenticación multifactor y cómo se implementa en Identity de ASP.NET Core de forma predeterminada. En la unidad siguiente, puede personalizar el formulario Configurar la aplicación de autenticación existente para proporcionar un código QR que contiene la clave de registro.