TOTP
siglasegurançacriptografia
Significa: Time-based One-Time Password
Um código de uso único que muda a cada 30 segundos, usado para autenticação de dois fatores.
Senha de Uso Único Baseada em Tempo (do inglês Time-based One-Time Password, RFC 6238) deriva um código curto de um segredo compartilhado e do horário atual usando HMAC, para que apps autenticadores e servidores calculem o mesmo valor de forma independente. É a base da maioria dos 2FA baseados em app.
O TOTP são os seis dígitos do aplicativo autenticador, e o mecanismo é mais simples do que a maioria imagina. Servidor e dispositivo compartilham um segredo estabelecido uma vez no cadastro, ambos sabem a hora atual, e ambos calculam o mesmo HMAC sobre a janela de tempo corrente. Nada trafega entre eles, e é por isso que funciona num celular em modo avião.
A janela de tempo explica todas as esquisitices. Os códigos costumam durar trinta segundos, os servidores em geral aceitam a janela adjacente para tolerar desvio de relógio e digitação lenta, e um dispositivo com relógio muito desviado produz códigos corretos para um instante em que ninguém mais está. Desvio de relógio é a primeira coisa a conferir quando um usuário jura que o aplicativo está quebrado.
O limite importante é o que o TOTP não defende. Ele elimina a reutilização de senhas e o credential stuffing, porque uma senha roubada deixa de completar um login. Ele não impede phishing em tempo real: um proxy que repassa o código enquanto o usuário digita está dentro da janela e o código continua válido. Essa é a lacuna que as chaves em hardware fecham ao verificar a origem do site, e é por isso que o TOTP é uma grande melhoria, e não uma resposta final.
Também conhecido como: totp