Gerador de códigos TOTP e HOTP
Gera códigos 2FA TOTP e HOTP a partir de um segredo Base32 ou de um URI otpauth://, com SHA-1, SHA-256 ou SHA-512, contagem decrescente e código QR.
Um segredo 2FA é tão sensível como uma palavra-passe. Tudo aqui corre localmente no teu navegador: o segredo, os códigos e o código QR nunca são enviados para lado nenhum.
- Código anterior
- —
- Código atual
- —
- Código seguinte
- —
Os códigos TOTP dependem do relógio do teu dispositivo. Se não coincidirem, confirma que o relógio está a ser acertado automaticamente.
Configurar uma aplicação de autenticação
Acrescenta um emissor e um nome de conta e depois lê o código QR ou copia a ligação otpauth:// para a tua aplicação de autenticação.
Como gerar códigos TOTP
- Cola um segredo Base32 (por exemplo
JBSWY3DPEHPK3PXP) ou uma ligaçãootpauth://completa em Segredo (Base32) ou URI otpauth://. São aceites espaços, hífenes, letras minúsculas e a falta do enchimento=. - Os códigos aparecem enquanto escreves, ou quando clicas em Mostrar códigos. Um URI colado preenche por ti os campos Tipo, Algoritmo, Algarismos, Período (segundos), Emissor e Conta.
- Lê o Código atual ao centro, com o Código anterior e o Código seguinte de cada lado. A barra por baixo faz a contagem decrescente dos segundos até o código mudar, e Copiar código copia-o sem o espaço.
- Para códigos baseados num contador, escolhe HOTP (baseado num contador), define o Contador e usa Contador seguinte para avançar.
- Para criar um novo segredo 2FA, clica em Novo segredo aleatório. Preenche Emissor e Conta e depois lê o código QR com uma aplicação de autenticação, usa Copiar URI ou Transferir código QR (PNG).
Como funcionam o TOTP e o HOTP
O HOTP (RFC 4226) calcula um HMAC de um contador de 8 bytes com o segredo partilhado e aplica depois a truncagem dinâmica: os últimos quatro bits do HMAC escolhem um deslocamento, lêem-se quatro bytes a partir daí, limpa-se o bit mais alto e reduz-se o número módulo 10^algarismos. O resultado é um código de 6 a 8 algarismos.
O TOTP (RFC 6238) é um HOTP em que o contador é o intervalo de tempo atual: T = floor(Unix time / period), com um período de 30 segundos por omissão. O teu telemóvel e o servidor calculam o mesmo código de forma independente, porque partilham o segredo e (aproximadamente) o mesmo relógio. É por isso que aparecem o Código anterior e o Código seguinte: os servidores aceitam normalmente um intervalo antes ou depois para tolerar desvios de relógio.
O HMAC corre na API Web Crypto do teu navegador com SHA-1, SHA-256 ou SHA-512. SHA-1 com 6 algarismos e 30 segundos é o que quase todos os serviços usam; SHA-256 e SHA-512 são permitidos pelo RFC 6238, mas algumas aplicações ignoram-nos, por isso só alteres as predefinições se o serviço o pedir.
O URI otpauth:// e o código QR
As aplicações de autenticação são configuradas com um URI como otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, normalmente apresentado como código QR. Esta ferramenta lê esses URIs (incluindo etiquetas com percent-encoding, como ACME%20Co) e constrói novos. O código QR é desenhado localmente a partir do URI mostrado em URI otpauth://.
Um novo segredo aleatório tem 20 bytes (160 bits), o comprimento recomendado pelo RFC 4226, obtidos de crypto.getRandomValues.
Conselhos de segurança
- O segredo é o próprio segundo fator: quem o tiver consegue gerar os teus códigos. Não coles os segredos de contas importantes em computadores partilhados e nunca partilhes capturas de ecrã do código QR.
- Tudo é calculado localmente; nada é enviado pela rede. Fecha o separador quando terminares.
- Guarda os códigos de recuperação do serviço: um segredo perdido não pode ser recuperado.
Perguntas frequentes
Porque é que o meu código não coincide com o da minha aplicação?
Verifica primeiro o relógio do teu dispositivo: os códigos TOTP mudam a cada período, por isso um relógio desacertado em mais de cerca de 30 segundos dá códigos diferentes. Depois confirma que o algoritmo, o número de algarismos e o período correspondem aos que o serviço usou.
Esta ferramenta é compatível com o Google Authenticator e aplicações semelhantes?
Sim. Segue o RFC 6238 e o formato de URI otpauth que essas aplicações usam. Lê o código QR ou escreve o segredo Base32 na aplicação, e ambos devem mostrar o mesmo Código atual.
Qual é a diferença entre TOTP e HOTP?
O TOTP avança com o tempo, por isso um código expira no fim do período. O HOTP avança com um contador que aumenta sempre que um código é usado, por isso um código continua válido até ser usado ou substituído.
Posso usar esta ferramenta como autenticador no dia a dia?
Foi pensada para testes, desenvolvimento e recuperação. Uma aplicação no telemóvel ou uma chave física é mais segura para o uso diário, porque o segredo não tem de ser colado numa página web de cada vez.
Os cálculos foram verificados com as normas?
Sim. A ferramenta é testada com os valores HOTP do anexo D do RFC 4226 e com os valores TOTP do anexo B do RFC 6238 para SHA-1, SHA-256 e SHA-512.
Ferramentas relacionadas
- Gerador de HMAC Calcula um HMAC-SHA1, SHA-256, SHA-384 ou SHA-512 com chave em texto, hex ou Base64, obtém hex e Base64 e verifica a assinatura de um webhook.
- Gerador de palavras-passe Gerador de palavras-passe grátis que cria palavras-passe aleatórias fortes de 4 a 128 caracteres no teu navegador. Nada é guardado nem enviado.
- Gerador de códigos QR Cria códigos QR grátis para ligações, texto, Wi-Fi, contactos, e-mail e SMS. Acrescenta cores e um logótipo e transfere em PNG ou SVG. Tudo no teu dispositivo.
- Partilha de segredo de Shamir Divide uma palavra-passe ou frase de recuperação em N partes, de modo que quaisquer M a reconstroem, com o esquema de Shamir em GF(256), no navegador.