Autenticação multifator no ASP.NET Core

Concluído

Na unidade anterior, você personalizou e estendeu a Identidade do ASP.NET Core. Nesta unidade, você conhecerá a autenticação multifator e verá como ela é implementada no Identity.

Autenticação multifator

A MFA (autenticação multifator) é um processo no qual um usuário é solicitado para formas adicionais de identificação durante a entrada. 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 necessária 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 uma varredura facial.

Grande parte da eficácia da MFA vem do uso de diferentes tipos de autenticação. Um adversário pode conseguir acesso a várias coisas que você conhece (como sua senha e seu apelido de infância), mas é muito mais difícil comprometer algo que você sabee algo que você tem ou é.

Senhas Avulsas por Tempo Limitado

TOTP (Senhas Avulsas por Tempo Limitado) é um algoritmo bem conhecido que gera códigos numéricos exclusivos que expiram após 30 segundos. O algoritmo usa duas entradas, a hora atual e uma chave exclusiva.

Ao se registrar, o usuário insere a chave em um aplicativo em conformidade com TOTP. Esses aplicativos incluem:

  • Microsoft Authenticator
  • Google Authenticator
  • LastPass Authenticator

Inserir a chave no aplicativo pode ser simplificado 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 terá êxito. O algoritmo foi projetado para aceitar pequenas diferenças entre os relógios em seu dispositivo e no servidor.

Como uma forma de MFA, o usuário normalmente é solicitado a obter um código TOTP combinado a uma senha. A senha é algo que você sabe e o código é a prova de algo que você tem. Isso ocorre porque 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 o Identity incluem o suporte à autenticação multifator para aplicativos autenticadores TOTP. O formulário Configurar aplicativo autenticador do modelo do Razor Pages exibe uma chave de registro de 32 caracteres para propagar o valor do token. No entanto, o modelo não gera um código QR por padrão.

Observação

Códigos enviados por mensagens de texto SMS são uma alternativa comum a TOTP. Afinal, o telefone que recebe a mensagem SMS é algo que você tem. No entanto, é relativamente fácil um adversário contornar SMS como MFA. Assim, os códigos SMS não são mais considerados um modo seguro de MFA.

Resumo

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