Skip to content

Glossary

OTP

Senha de Uso Único

By Published Updated

OTP (One-Time Password, Senha de Uso Único) é um código de autenticação de uso único, geralmente de 6 dígitos, válido por uma janela curta. Combinado com uma senha comum, forma a autenticação de dois fatores (2FA).

Três canais de entrega comuns:

  • OTP por SMS — código enviado por texto para o telefone do usuário. O mais comum, também o menos seguro (ataques de troca de SIM).
  • TOTP (baseado em tempo, RFC 6238) — gerado por um aplicativo autenticador a partir de um segredo compartilhado + hora atual. Sem necessidade de rede. Comum no Google Authenticator, Authy, 1Password.
  • HOTP (baseado em contador, RFC 4226) — incrementa um contador a cada uso. Agora raro, exceto para tokens de hardware como o modo OTP do YubiKey.

OTPs neutralizam ataques de reutilização de senhas (a senha roubada por si só é inútil), mas não neutralizam phishing moderno — um atacante que captura o OTP pode reproduzi-lo dentro da janela de validade. A autenticação baseada em chave de hardware (FIDO2 / WebAuthn) neutraliza o phishing porque a chave prova que está no site legítimo.

O problema do rebaixamento do OTP por SMS: a revisão da SP 800-63B do NIST de 2017 considerou o SMS obsoleto como autenticador fora de banda por causa de três padrões de ataque documentados — fraude de troca de SIM (o atacante convence uma operadora de telefonia a portar o número da vítima para um novo SIM), exploits do protocolo SS7 (a rede global de sinalização de telecomunicações tem autenticação fraca e pode ser consultada para redirecionar textos) e fraude de portabilidade numérica de área física. Bancos e exchanges que fazem fallback para SMS como método de recuperação reduzem efetivamente a segurança da conta ao que o script de atendimento ao cliente da operadora de telefonia aplica. Aplicativos que permitem optar por não usar SMS em favor de apenas TOTP ou apenas WebAuthn são significativamente mais seguros.

Mecânica do TOTP — por que a janela de 30 segundos: TOTP é HMAC-SHA1 de (segredo compartilhado, timestamp de 30 segundos atual), truncado para 6 dígitos. A granularidade de 30 segundos é um compromisso: curto o suficiente para limitar janelas de reprodução, longo o suficiente para perdoar pequenas diferenças de relógio entre servidor e cliente. A maioria dos verificadores de TOTP aceita os valores do passo de tempo anterior, atual e seguinte para lidar com ±30s de desvio, razão pela qual o código que acabou de expirar em seu autenticador frequentemente ainda funciona por alguns segundos. O provisionamento é feito via código QR que codifica otpauth://totp/Issuer:user?secret=...&period=30&digits=6. Relacionado: TOTP, JWT. Referência: RFC 6238 — TOTP.

Exemplo prático

Você se cadastra no TOTP. O servidor gera um segredo de 160 bits (por exemplo, JBSWY3DPEHPK3PXP em base32), mostra um código QR e seu aplicativo autenticador armazena o segredo. Para gerar um código no tempo Unix atual 1716393600: calcule o passo de tempo T = floor(1716393600 / 30) = 57213120, então HMAC-SHA1(segredo, T) produz um hash de 20 bytes. Truncamento dinâmico conforme RFC 4226: pegue o último nibble do hash como deslocamento, extraia 4 bytes nesse deslocamento, mascare o bit mais significativo e calcule o módulo 10⁶ para obter um código de 6 dígitos — digamos 492039. O servidor faz o mesmo cálculo; se os códigos corresponderem (permitindo um passo em cada direção para desvio de relógio), a autenticação é bem-sucedida. Todo o protocolo é determinístico e offline uma vez que o segredo é provisionado.

Quando e por que isso importa

OTP é a diferença entre “o dump de credenciais na dark web compromete sua conta” e “o dump de credenciais é inútil sem seu telefone.” Empiricamente, o estudo de 2019 do Google com NYU e UCSD mostrou que adicionar qualquer segundo fator bloqueou 99% dos ataques de preenchimento em massa de credenciais; OTP por SMS sozinho bloqueou 96% do phishing direcionado e prompts no dispositivo bloquearam 99%. A lacuna restante — kits de phishing que fazem proxy de OTPs em tempo real (Evilginx, Modlishka) — é fechada apenas por fatores resistentes a phishing (WebAuthn/passkeys, chaves de hardware FIDO2). A escada pragmática para qualquer conta: apenas senhas → OTP por SMS → aplicativo autenticador TOTP → chave de segurança de hardware. Cada degrau acima eleva materialmente o custo do atacante. Referência: NIST SP 800-63B — Digital Identity Guidelines.

Frequently asked questions

O que é um OTP?
Um OTP (One-Time Password, Senha de Uso Único) é um código de uso único, geralmente de 6 dígitos, que expira após um uso ou dentro de uma janela de tempo curta. Ele fornece um segundo fator de autenticação além de uma senha estática.
Como um OTP difere de uma senha comum?
Uma senha comum é estática e reutilizável; um OTP é válido por apenas uma tentativa de autenticação ou por uma breve janela (30 segundos para TOTP). Capturar um OTP não dá ao atacante acesso contínuo se ele já foi usado ou expirou.
Qual é a diferença entre OTP por SMS e OTP por aplicativo autenticador?
OTPs por SMS são enviados pela rede telefônica e são vulneráveis a ataques de troca de SIM e interceptação SS7. OTPs por aplicativo autenticador (TOTP) são gerados localmente a partir de um segredo compartilhado e não são transmitidos até serem inseridos, tornando-os significativamente mais seguros.

Related

Published May 15, 2026 · Last reviewed May 31, 2026