Autenticação multifator no ASP.NET Core

Concluído

Na unidade anterior, você personalizou e estendeu ASP.NET Identidade Principal. Nesta unidade, você aprenderá sobre a autenticação multifator e como ela é implementada na Identidade.

Autenticação multifator

A autenticação multifator (MFA) é um processo no qual um usuário é solicitado a fornecer formas adicionais de identificação ao entrar. Esse prompt pode ser para um código de um aplicativo, um valor de token de hardware ou uma verificação biométrica. Quando você precisa de um segundo tipo de autenticação, a segurança é aprimorada.

A prova exigida para autenticação é categorizada em três tipos:

  • Algo que você sabe, como uma senha ou pergunta de segurança.
  • Algo que você tem, como um token de hardware ou um aplicativo em seu telefone.
  • Algo que você é, como uma impressão digital ou escaneamento facial.

Grande parte da eficácia do MFA vem do uso de diferentes tipos de autenticação. Um adversário pode ter acesso a várias coisas que você sabe, como sua senha e seu apelido de infância. No entanto, é mais difícil comprometer tanto algo que você sabe quanto algo que você tem ou é.

Palavra-passe única baseada no tempo

A senha única baseada no tempo (TOTP) é um algoritmo bem conhecido que gera códigos numéricos exclusivos que expiram após 30 segundos. O algoritmo leva duas entradas, a hora atual e uma chave exclusiva.

O usuário insere a chave em um aplicativo compatível com TOTP ao se registrar. Essas aplicações incluem:

  • Autenticador da Microsoft.
  • Autenticador do Google.
  • Muitos outros!

A introdução da chave na aplicação pode ser simplificada com um código QR. O aplicativo usa a chave e a hora atual para gerar e exibir códigos exclusivos a cada 30 segundos. Se o código gerado pelo aplicativo corresponder ao que o servidor espera, a autenticação será bem-sucedida. O algoritmo é projetado para perdoar pequenas diferenças entre os relógios do seu dispositivo e do servidor.

Como uma forma de MFA, o usuário normalmente é solicitado a fornecer um código TOTP em combinação com uma senha. A senha é algo que você sabe, e o código é a prova de algo que você tem. Esta é a única maneira de gerar o código com a chave armazenada no aplicativo.

Por padrão, os modelos de projeto ASP.NET Core que usam Identity incluem suporte à autenticação multifator para aplicativos autenticadores TOTP. O formulário Configurar aplicativo autenticador do modelo Razor Pages exibe uma chave de registro de 32 caracteres para semear o valor do token. No entanto, o modelo não gera um código QR por padrão.

Nota

Os códigos enviados por mensagens de texto SMS são uma alternativa comum ao TOTP. Afinal, o telefone que recebe a mensagem SMS é algo que você tem. No entanto, SMS como MFA é relativamente fácil para um adversário derrotar. Consequentemente, os códigos SMS deixaram de ser considerados uma forma segura de AMF.

Resumo

Nesta unidade, você aprendeu o que é a autenticação multifator e como ela é implementada no ASP.NET Core Identity por padrão. Na próxima unidade, você pode personalizar o formulário existente do aplicativo Configurar autenticador para fornecer um código QR contendo a chave de registro.