2FA (Autenticação de dois fatores)
Autenticação de Dois Fatores (2FA) é um processo de segurança que exige que os usuários forneçam duas formas distintas de identificação para verificar sua identidade antes de acessar uma conta ou sistema.
Autenticação de Dois Fatores (2FA) é um método de autenticação multifator (MFA) que aumenta a segurança ao exigir dois fatores de autenticação distintos para verificar a identidade de um usuário. Esses fatores são tipicamente categorizados em três tipos: algo que o usuário sabe (por exemplo, senha, PIN), algo que o usuário tem (por exemplo, um token físico, smartphone, smart card) e algo que o usuário é (por exemplo, impressão digital, escaneamento facial). Uma implementação comum envolve uma senha (fator de conhecimento) combinada com uma senha de uso único (OTP) gerada por um aplicativo autenticador ou enviada via SMS (fator de posse). O processo começa com o usuário inserindo sua credencial primária, geralmente uma senha. Após a validação bem-sucedida do primeiro fator, o sistema solicita o segundo fator. A validade do segundo fator é então verificada em relação a um valor pré-registrado ou um algoritmo baseado em tempo. Se ambos os fatores forem autenticados com sucesso, o acesso é concedido. O principal benefício da 2FA é sua resiliência contra vetores de ataque comuns, como phishing, credential stuffing e ataques de força bruta, pois comprometer um único fator é insuficiente para obter acesso não autorizado. No entanto, as desvantagens incluem aumento da fricção do usuário, potencial de perda ou roubo do segundo fator e dependência da segurança do mecanismo de entrega do segundo fator (por exemplo, interceptação de SMS). Implementações avançadas podem envolver autenticação baseada em risco, onde o sistema ajusta dinamicamente o número ou tipo de fatores necessários com base no contexto, como localização, dispositivo ou hora do dia.
graph LR
Center["2FA (Autenticação de dois fatores)"]:::main
Rel_asymmetric_encryption["asymmetric-encryption"]:::related -.-> Center
click Rel_asymmetric_encryption "/terms/asymmetric-encryption"
Rel_mfa_multi_factor_authentication["mfa-multi-factor-authentication"]:::related -.-> Center
click Rel_mfa_multi_factor_authentication "/terms/mfa-multi-factor-authentication"
Rel_multi_factor_authentication_mfa["multi-factor-authentication-mfa"]:::related -.-> Center
click Rel_multi_factor_authentication_mfa "/terms/multi-factor-authentication-mfa"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Teste de conhecimento
🧒 Explique como se eu tivesse 5 anos
É como precisar de duas chaves para abrir um baú de tesouro especial: uma chave que você conhece (como um código secreto) e outra chave que você tem (como um brinquedo especial).
🤓 Expert Deep Dive
A Autenticação de Dois Fatores (2FA) fundamentalmente aumenta a segurança ao adicionar um mecanismo de verificação adicional sobre a credencial primária (tipicamente uma senha ou passphrase). Este processo adere ao princípio da autenticação multifator (MFA), exigindo especificamente dois fatores distintos das seguintes categorias:
- Algo que você sabe: Senhas, PINs, respostas a perguntas de segurança.
- Algo que você tem: Tokens físicos (por exemplo, YubiKey, RSA SecurID), smartphones executando aplicativos autenticadores (por exemplo, Google Authenticator, Authy) ou cartões SIM para OTPs baseados em SMS.
- Algo que você é: Dados biométricos como impressões digitais, escaneamentos faciais ou padrões de íris.
Uma implementação comum envolve Senhas de Uso Único Baseadas em Tempo (TOTP), padronizadas pela RFC 6238. Algoritmos TOTP geram um novo código a cada 30-60 segundos com base em uma chave secreta compartilhada (provisionada durante a configuração inicial) e na hora atual, frequentemente sincronizada via NTP. A validação no lado do servidor envolve o recálculo das OTPs esperadas para uma determinada janela de tempo e sua comparação com o código fornecido pelo usuário.
Outro método prevalente é o de Senhas de Uso Único Baseadas em HMAC (HOTP), definido na RFC 4226, que gera códigos com base em um contador que incrementa a cada uso. O servidor e o cliente devem manter contadores sincronizados.
Implementações mais avançadas utilizam Universal 2nd Factor (U2F) e seu sucessor, FIDO2, que aproveitam a criptografia de chave pública. Durante o registro, um par único de chave privada/pública é gerado na chave de segurança, e a chave pública é registrada com o serviço. A autenticação envolve o servidor enviando um desafio que o dispositivo FIDO assina com sua chave privada, que o servidor então verifica usando a chave pública registrada, fornecendo forte resistência contra ataques de phishing, pois a chave nunca sai do dispositivo e está vinculada à origem específica (domínio) do site.