logo ← Manuais de Utilização / Processo de Autenticação e Segurança

Processo de Autenticação e Segurança

Este documento descreve as políticas de segurança aplicadas ao processo de login, incluindo bloqueios automáticos e o funcionamento do segundo fator de autenticação (MFA).

#1. Regras de Bloqueio e Proteção (reCAPTCHA)

Para garantir a segurança das contas e evitar acessos indevidos, o sistema monitora o comportamento de tentativas de acesso:

  • Exigência de reCAPTCHA: Após 5 tentativas de login inválidas, o sistema passará a exigir obrigatoriamente a validação via reCAPTCHA no formulário de acesso.

  • Bloqueio Temporário: Caso ocorram mais 10 tentativas incorretas após o reCAPTCHA (totalizando 15 tentativas inválidas), o usuário será bloqueado e impedido de realizar novos acessos por um período de 60 minutos.


#2. Segundo Fator de Autenticação (MFA)

O Multi-Fator de Autenticação (MFA) é uma camada de proteção adicional. O sistema utiliza o protocolo TOTP (Time-based One-Time Password), garantindo que o código seja dinâmico e exclusivo para aquele instante de tempo.

#2.1 Engenharia e Segurança do Código

O processo de geração do código de 6 dígitos segue padrões rigorosos de segurança criptográfica:

  • Geração da Seed (Segredo): Para cada usuário, o sistema gera uma chave única (Seed) de 20 caracteres. Esta chave é a base para todos os códigos futuros.

  • Proteção da Chave (Criptografia em Repouso): A Seed não é armazenada em texto aberto. Ela é criptografada utilizando o serviço AWS KMS (Key Management Service) antes de ser salva no banco de dados, garantindo que apenas o serviço de autenticação consiga lê-la.

  • Algoritmo de Hash: Utilizamos o HMAC-SHA1. O sistema combina a Seed descriptografada com o timestamp atual (janela de tempo) para criar um hash seguro.

  • Truncamento Dinâmico: Do hash gerado, o algoritmo extrai um subconjunto de bytes, converte para um valor inteiro e aplica uma operação matemática (módulo) para resultar no código final de 6 dígitos.

#2.2 Ciclo de Vida e Expiração

  • Janela de Tempo: Cada código é vinculado a um intervalo de 30 segundos.

  • Sincronização: Como o código depende do tempo (Timestamp), é essencial que o dispositivo do usuário esteja com o horário sincronizado com os servidores mundiais para que o código gerado no aplicativo coincida com o esperado pelo servidor.

  • Uso Único: Uma vez validado ou expirado o tempo, o código perde sua validade, exigindo uma nova geração.

#2.3 Canal de Autenticação Suportado

A autenticação de segundo fator é realizada exclusivamente via Aplicativo Autenticador:

  • Compatibilidade: Suporta qualquer aplicativo que siga o padrão RFC 6238 (ex: Google Authenticator, Authy, Microsoft Authenticator).

  • Vínculo via QR Code: O sistema fornece um QR Code contendo a Seed codificada em Base32. Ao escanear, o aplicativo configura automaticamente o algoritmo, o tempo de expiração e o emissor.


#3. Resumo do Fluxo de Login

  1. Verificação de Status: O sistema valida se a conta está ativa ou em período de bloqueio.

  2. Validação de Bot: Caso o limite de 5 erros tenha sido atingido, o reCAPTCHA deve ser resolvido.

  3. Credenciais: Verificação de nome de usuário e senha.

  4. Segundo Fator: Se o usuário possuir o MFA habilitado, o sistema solicitará o código de 6 dígitos do aplicativo autenticador.

  5. Acesso Concluído: Após todas as validações, o acesso é liberado e o histórico de erros é zerado.