Autenticação multifator no ASP.NET Core
Na unidade anterior, você personalizou e estendeu a Identidade do ASP.NET Core. Nesta unidade, você aprenderá sobre a autenticação multifator e como ela é implementada no Identity.
Autenticação multifator
A autenticação multifator (MFA) é um processo no qual um usuário é solicitado a fornecer formas adicionais de identificação ao conectar. 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 ter acesso a várias coisas que você sabe, como sua senha e seu apelido de infância. No entanto, é mais difícil comprometer algo que você sabe e 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.
O usuário insere a chave em um aplicativo compatível com TOTP ao se registrar. Esses aplicativos incluem:
- Microsoft Authenticator.
- Google Authenticator.
- Muitos outros!
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. Essa é 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 no ASP.NET Core Identity 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.