Gerador de TOTP (senha de uso único)

Gera a mesma senha de uso único de 6 dígitos (RFC 6238) usada pelo Google Authenticator e aplicativos semelhantes, a partir de um segredo TOTP em Base32, totalmente no seu navegador. Seu segredo nunca é transmitido.

Esta ferramenta nunca envia seu segredo para nenhum servidor. A decodificação Base32 e o cálculo HMAC ocorrem inteiramente dentro do seu navegador (Web Crypto API), permitindo que você insira credenciais de autenticação com segurança.

Sobre o algoritmo TOTP

TOTP (senha de uso único baseada em tempo) é um algoritmo definido na RFC 6238 para gerar senhas de uso único com base no tempo. Ele converte um segredo compartilhado e a hora atual em um contador que avança em intervalos fixos e, em seguida, deriva um código numérico usando o mesmo algoritmo de truncamento dinâmico do HOTP (RFC 4226).

Algoritmo HMAC Escolha entre SHA-1 (padrão), SHA-256 ou SHA-512
Número de dígitos do código 6 dígitos (o mesmo padrão usado pelo Google Authenticator e pela maioria dos principais aplicativos de 2FA)
Intervalo de atualização Um novo código é gerado a cada 30 segundos

Dicas

  • O segredo é a string de "chave de configuração" exibida abaixo do código QR no primeiro registro da autenticação de dois fatores (2FA). Se você já o registrou em um aplicativo autenticador no celular, insira o mesmo segredo aqui para conferir se o código coincide.
  • Alguns serviços usam um algoritmo de hash diferente do SHA-1 (SHA-256 ou SHA-512). Se o código gerado não coincidir com o do seu aplicativo, tente alternar o algoritmo.
  • O código é atualizado automaticamente a cada 30 segundos, com uma barra de progresso mostrando o tempo restante. Tenha cuidado ao copiar um código pouco antes de ele expirar, pois ele pode se tornar inválido antes de chegar ao serviço em que você está se autenticando.
  • Ao fechar esta guia do navegador, o segredo é descartado permanentemente e nunca é salvo em lugar nenhum. Se quiser mantê-lo como backup, guarde o segredo em si em um local seguro, como um gerenciador de senhas.

Perguntas frequentes

Sim. A decodificação Base32 e o cálculo HMAC são executados inteiramente no seu navegador via Web Crypto API e nunca são enviados a nenhum servidor. Você mesmo pode confirmar isso inspecionando o tráfego de rede: o segredo inserido nunca é transmitido.

Isso geralmente é causado por um algoritmo de hash diferente (a maioria dos serviços usa SHA-1, mas alguns usam SHA-256 ou SHA-512) ou por um relógio dessincronizado. Primeiro, tente alternar o algoritmo; se ainda não coincidir, verifique se o relógio do seu dispositivo está configurado para sincronizar automaticamente.

Em geral, o TOTP é considerado mais seguro. Mensagens SMS podem ser interceptadas por meio de sequestro do número de telefone (fraude de troca de SIM), enquanto o TOTP é calculado inteiramente no dispositivo e não é vulnerável a esse tipo de ataque.

A maioria dos serviços emite "códigos de recuperação" na primeira configuração da 2FA. Se você perdeu o segredo em si, será necessário passar pelo processo de recuperação de conta do serviço (verificação de identidade) para registrar novamente a autenticação de dois fatores.
ツールくん

Curiosidade — Por que a autenticação de dois fatores se firmou em 6 dígitos

A OATH (Iniciativa para Autenticação Aberta), que redigiu a especificação do TOTP (RFC 6238), simplesmente reaproveitou o algoritmo de truncamento dinâmico do HOTP (RFC 4226) e deixou o número de dígitos do código a critério de cada implementação. Seis dígitos se tornaram o padrão de fato da indústria principalmente porque o Google Authenticator adotou esse tamanho em sua implementação original de 2010, e muitos outros serviços e bibliotecas seguiram o exemplo.

Seis dígitos também são um ponto de equilíbrio perfeito. Com um milhão de combinações possíveis (10^6) e uma janela de validade de apenas 30 segundos, forçar um código por força bruta se torna praticamente impossível, enquanto um número maior de dígitos tornaria impraticável memorizar e digitar manualmente. Não é coincidência que a maioria dos códigos SMS também tenha 6 dígitos: a indústria convergiu para esse tamanho em qualquer "código numérico descartável de curta duração".

O HOTP (RFC 4226, 2005), predecessor do TOTP, usava um contador que precisava ser incrementado em um a cada uso do código. Na prática, isso causava problemas frequentes de sincronização, com usuários que esqueciam de apertar um botão, ou o contador do dispositivo e do servidor ficando dessincronizados. O TOTP, padronizado em 2011, substituiu o contador pela hora atual, um valor de referência que qualquer pessoa pode consultar, simplificando bastante a operação.