top of page
Foto do escritorDavi Albergaria

O que é o protocolo OTP e qual a diferença entre TOTP e HOTP?



O OTP (One-Time Password) é semelhante a uma senha, mas é de uso único. Ele é frequentemente usado em conjunto com uma senha tradicional, atuando como um mecanismo adicional de autenticação para fornecer segurança adicional. O OTP funciona por meio de geração de dinâmica de código, no qual este código pode ser utilizado apenas uma vez, consequentemente aumentando a segurança e dificultando o acesso não autorizado. O código gerado é utilizado por meio de 2 elementos: o elemento de valor fixo, semente (seed), e o fator de movimento (moving factor).

  • Seed: Uma chave secreta estática criada, preferencialmente randômica.

  • Moving Factor: Diferente do seed fixo, o mooving factor muda a cada nova instância OTP solicitada.


A primeira etapa do OTP é o registro, feito por meio do segredo compartilhado entre as partes, ou seja, entre o dispositivo do usuário que exibe o código OTP e a aplicação que possui a conta. Todos os OTPs gerados em futuras tentativas de login serão validados com base na mesma semente, ainda que o código seja diferente. No protocolo OTP, existe o TOTP e o HOTP.

  1. TOTP (Time-based One-Time Password): o código gerado expira baseado no tempo, visto que o moving factor é baseado no tempo. É amplamente usado em aplicativos de autenticação de dois fatores (2FA) e gera senhas que mudam a cada intervalo de tempo, que normalmente varia entre 30 e 90 segundos.

  2. HOTP (HMAC-based One-Time Password): o código gerado é enviado ao usuário, sendo válido até o primeiro acesso com aquele código. Após a sessão, ele se torna inválido e enquanto não for utilizado, permanecerá válido até ser usado, sem expiração. O moving factor é baseado em contador. Normalmente é utilizado no código enviado por e-mail ou SMS.



Em resumo, o TOTP usa o tempo como base para gerar códigos de uso único, enquanto o HOTP usa um contador como moving factor.


Conclusão - Qual escolher TOTP ou HOTP?

O TOTP oferece uma maior segurança visto que é baseado em tempo e por isso reduz a janela de oportunidade de utilização por um invasor, porém requer a sincronização de tempo. Essa sincronização pode tornar o desenvolvimento mais complexo e trazer problemas de uso caso os horários dos dispositivos envolvidos estejam dessincronizados. Porém a depender do cenário, o HOTP pode ser mais adequado, visto que é mais simples de ser implementado.


Referências


1 comentário

Posts recentes

Ver tudo

1 Comment


Wesley
Wesley
Nov 14

Obrigado por compartilhar este material incrível. 🎯

Like
bottom of page