Logo Logo
GitHub Designed by Logto

O que é TOTP?

Uma Palavra-Passe Única Baseada no Tempo (TOTP) é um código temporário e único gerado por um algoritmo que usa o tempo atual como um fator chave. Semelhante a um Palavra-passe única (OTP) genérico, um TOTP é usado apenas uma vez, mas tem uma duração fixa, geralmente variando de 30 a 60 segundos. Após a expiração, um novo código é gerado automaticamente.

O padrão TOTP é definido pela Internet Engineering Task Force (IETF) sob o RFC 6238 , e é amplamente adotado em vários sistemas de autenticação de dois fatores (2FA) e autenticação multifator (MFA). Como os TOTPs dependem de tempo sincronizado entre o cliente (dispositivo do usuário) e o servidor, eles oferecem um alto nível de segurança e são difíceis de prever ou reutilizar.

Como funciona o TOTP

A geração de um TOTP envolve os seguintes passos:

  1. Segredo compartilhado: Durante a configuração inicial, uma chave secreta compartilhada é gerada e armazenada de forma segura tanto no cliente quanto no servidor. Esta chave é tipicamente codificada como um código QR que os usuários escaneiam usando um aplicativo de autenticação.
  2. Intervalos de tempo: O tempo atual é dividido em intervalos fixos, geralmente de 30 segundos.
  3. Aplicação do algoritmo: A chave secreta compartilhada e o carimbo de data/hora atual são inseridos em um algoritmo baseado em hash (frequentemente HMAC-SHA1) para produzir um código numérico único.
  4. Sincronização: Tanto o cliente quanto o servidor geram o código de forma independente usando a mesma chave secreta compartilhada e o carimbo de data/hora atual. Os códigos coincidem apenas se ambos estiverem sincronizados.
  5. Verificação: Quando o usuário faz login ou realiza uma transação crítica, ele insere o TOTP exibido em seu aplicativo de autenticação. O servidor então o compara com seu TOTP gerado internamente para validação.

Quando usar TOTP

Na maioria dos casos, um OTP normal é recomendado, mas nos casos em que não é possível “acionar” um novo código de acesso, então o TOTP é recomendado.

  • Exemplo de TOTP: Aplicativo Autenticador
  • Exemplo de OTP: Email, SMS

Quais são as diferenças entre OTP e TOTP?

A principal diferença é que o TOTP é baseado no tempo, por isso é adequado quando o dispositivo não está conectado ao servidor. O servidor pode facilmente enviar um novo código de acesso para um endereço de email ou número de telefone, mas isso requer que o email ou telefone esteja online. No entanto, o Aplicativo Autenticador pode permanecer offline e usar o “tempo” para verificar o código de acesso.

Veja também