aut2fa/ blog

Autenticação de dois fatores (2FA): guia completo para desenvolvedores

O que é autenticação de dois fatores, quais tipos existem, onde aplicar no seu produto e como implementar 2FA por código no backend sem complicar a vida do usuário.

Ilustração de um cadeado com dois fatores: senha e código no celular

Senha vaza. Seja por reutilização, phishing ou vazamento de outro site, cedo ou tarde alguma senha dos seus usuários vai parar na mão errada. A autenticação de dois fatores (2FA) existe para que isso não seja suficiente para invadir uma conta.

Neste guia você vai entender os tipos de 2FA, onde vale a pena aplicar e como implementar no seu backend.

O que é autenticação de dois fatores

2FA é exigir duas provas diferentes de identidade para liberar o acesso. As provas costumam ser de três categorias:

  • Algo que você sabe – senha, PIN.
  • Algo que você tem – celular, chave de segurança, app autenticador.
  • Algo que você é – biometria.

O ponto é combinar categorias diferentes. Senha + pergunta secreta não é 2FA de verdade, porque as duas são "algo que você sabe".

Tipos de 2FA mais usados

Código por mensagem (WhatsApp, SMS, e-mail)

O servidor envia um código OTP para o telefone ou e-mail da pessoa.

  • Prós: nada para instalar, todo mundo entende, serve também para verificar o telefone no cadastro.
  • Contras: depende da entrega da mensagem; SMS tem riscos como SIM swap.

App autenticador (TOTP)

Códigos que mudam a cada 30 segundos, gerados no celular.

  • Prós: funciona offline, não tem custo por código.
  • Contras: exige instalar app e fazer pareamento; quem troca de celular sem backup perde o acesso.

Chaves de segurança e passkeys

Baseadas em criptografia de chave pública (FIDO2/WebAuthn).

  • Prós: muito resistentes a phishing.
  • Contras: adoção ainda menor e implementação mais complexa.

Para a maioria dos produtos B2C no Brasil, o código por WhatsApp é o melhor equilíbrio entre segurança e adesão. Usuários que querem mais proteção podem ativar um app autenticador ou passkey como opção extra.

Onde aplicar 2FA no seu produto

Pedir código em toda ação irrita o usuário. Aplique 2FA nos momentos de risco:

  1. Login em dispositivo novo ou de localização incomum.
  2. Troca de e-mail, telefone ou senha.
  3. Operações financeiras: saque, pagamento, alteração de chave Pix ou dados bancários.
  4. Ações destrutivas: excluir conta, revogar acessos, exportar dados.
  5. Cadastro: verificar que o telefone informado é mesmo da pessoa.

Como implementar 2FA por código no backend

O fluxo tem três etapas e cabe em poucas linhas com uma API de OTP.

1. Depois que a senha estiver correta, envie o código:

curl https://api.aut2fa.com/v1/send \
  -H "Authorization: Bearer ak_live_…" \
  -H "Content-Type: application/json" \
  -d '{"to": "+5531999999999", "locale": "pt-BR"}'

Guarde o id do envio numa sessão parcial, que ainda não dá acesso ao sistema.

2. Mostre a tela para digitar o código. (Veja as boas práticas de UX para essa tela.)

3. Verifique o código e só então crie a sessão completa:

curl https://api.aut2fa.com/v1/send/snd_8Kq2wR7tXz/verify \
  -H "Authorization: Bearer ak_live_…" \
  -H "Content-Type: application/json" \
  -d '{"code": "482913"}'

Se a resposta tiver valid: true, libere o acesso. Se não, mostre as tentativas restantes (attempts_left).

Erros comuns ao implementar 2FA

  • Liberar a sessão antes de verificar o código. A sessão parcial não pode acessar nada.
  • Não limitar tentativas. Um código de 6 dígitos tem 1 milhão de combinações; sem limite, força bruta resolve. Na aut2fa o envio é bloqueado depois de 5 erros.
  • Código que não expira. Use prazos curtos (a aut2fa expira em 10 minutos).
  • Reenvio sem limite. Abre espaço para abuso e SMS pumping.
  • Guardar o código em texto puro. Na aut2fa o código fica criptografado até o envio e, depois, só um hash é mantido.
  • Não ter caminho de recuperação. Pense no usuário que perdeu o celular.

Conclusão

2FA é uma das medidas de segurança com melhor custo-benefício que existem. Comece pelos momentos de maior risco, use um canal que o seu público já usa e cuide dos limites.

Com a aut2fa você implementa 2FA por WhatsApp com duas chamadas HTTP. Crie sua conta grátis e teste com a chave ak_test_.

Continue lendo