| Data de elaboração | 14/04/2024 |
|---|---|
| Responsável pelo estudo | Matheus da Silva Cruz |
| Equipe do estudo | Liderança Técnica |
| Alvo | Sauron |
| Origem | Solicitação do gabinete junto com a COSEGI Melhoria: melhoria na segurança através de login com MFA |
| Objetivo | Melhorar a segurança através de login com MFA |
Nos últimos anos, a segurança da informação tem se tornado uma prioridade cada vez maior para organizações em todo o mundo. Com a crescente ameaça de violações de dados e ataques cibernéticos, é imperativo que as empresas adotem medidas proativas para proteger suas informações e sistemas.
O presente documento surge como resultado de uma iniciativa conjunta entre o Gabinete, COSEGI e CODE da SETIC em resposta às crescentes preocupações com a segurança e à necessidade de fortalecer a autenticação dos usuários, foi decidido a possibilidade de implementar a Autenticação de Dois Fatores (2FA) em nosso SSO Sauron.
Após uma solicitação do Gabinete para reforçar a autenticação dos usuários em nosso SSO, a equipe de desenvolvimento e a equipe de segurança realizaram uma reunião conjunta para discutir os benefícios e desafios da implementação do 2FA. Durante essa reunião, ficou evidente que o 2FA não apenas fortaleceria a segurança dos dados e sistemas do governo, mas também proporcionaria uma camada adicional de proteção para os usuários, garantindo que suas contas fossem mais seguras contra acessos não autorizados.
Além disso, à medida que a tecnologia continua a evoluir, tornou-se claro que a implementação do 2FA não apenas se alinha com as melhores práticas de segurança cibernética, mas também representa uma abordagem proativa para mitigar os riscos associados à autenticação de usuários.
O objetivo deste estudo é fornecer orientações detalhadas sobre a implementação bem-sucedida da 2FA em nosso SSO. Ao longo deste documento, abordaremos os princípios básicos da 2FA, os benefícios que ela oferece, os requisitos necessários para sua implementação e os passos práticos para configurá-la em nosso ambiente de SSO.
Esperamos que esta documentação sirva como um recurso abrangente para toda a equipe de desenvolvimento e administradores de sistemas envolvidos no processo de implementação do 2FA. Juntos, podemos fortalecer significativamente a segurança de nossos sistemas e proteger os dados confidenciais de nossa organização contra ameaças cibernéticas em constante evolução.
O IdentityServer4 não possui uma funcionalidade específica para autenticação de dois fatores integrada nativamente. No entanto, podemos usar o IdentityServer4 junto com o ASP.NET Core Identity para implementar a autenticação de dois fatores.
O primeiro passo é configurar o ASP.NET Core Identity para usar a autenticação de dois fatores. Isso envolve adicionar o suporte ao Authenticator App (como o Google Authenticator) e/ou o envio de códigos por e-mail ou SMS. Isso pode ser feito no método IdentityConfiguration da Sauron.Auth.Extensions.IdentityExtension:
services.AddIdentity<UsuarioIdentity, IdentityRole>(options =>
{
...
})
...
.AddDefaultTokenProviders()
.AddTokenProvider<EmailTokenProvider<UsuarioIdentity>>(TokenOptions.DefaultEmailProvider);
O segundo passo é implementar a lógica para gerar, enviar e verificar códigos de verificação por e-mail. Isso pode ser feito usando o serviço do Hermes e armazenamento de token do ASP.NET Core Identity.
Será necessário usar o UserManager para gerar e-mails de confirmação e códigos de verificação:
var code = await this.userManager.GenerateTwoFactorTokenAsync(user, TokenOptions.DefaultEmailProvider);
Para verificar o código de verificação, pode ser usado o método VerifyTwoFactorTokenAsync também do UserManager:
var result = await this.userManager.VerifyTwoFactorTokenAsync(user, TokenOptions.DefaultEmailProvider, verificationCode);
if (result)
{
// Código de verificação válido
}
A implementação da 2FA em nosso SSO representa um marco significativo em nossos esforços contínuos para fortalecer a segurança da informação em nossa organização. Ao adotar esta medida proativa, estamos demonstrando nosso compromisso em proteger os dados confidenciais de nossa empresa, bem como os interesses e a privacidade de nossos usuários.