O que é uma palavra-passe única (OTP)?
O que é OTP? Qual é a diferença entre OTP e TOTP? Como funciona o OTP? Este artigo descompõe os conceitos básicos de OTP e explica por que é mais preferido do que senhas estáticas.
OTP significa Palavra-Passe Única, também conhecida como um código único ou senha dinâmica. É uma senha temporária única, gerada automaticamente, usada para uma única sessão de autenticação ou transação.
Ao contrário das senhas estáticas tradicionais, as OTPs mudam cada vez que são utilizadas e expiram após um curto período de tempo. Isso as torna um método de autenticação altamente seguro, uma vez que são muito mais difíceis de serem roubadas e reutilizadas por atacantes.
As OTPs são amplamente adotadas em várias aplicações de segurança, incluindo banca online, comércio eletrónico e proteção de acesso a dados ou sistemas sensíveis. Elas também são comumente usadas como um segundo fator em autenticação multifatorial (MFA) para fornecer uma camada adicional de segurança. Ao combinar algo que o utilizador sabe (por exemplo, uma senha) com algo que possuem (por exemplo, um dispositivo móvel), as OTPs tornaram-se uma ferramenta essencial dos sistemas modernos de autenticação.
Como funciona a OTP?
Existem vários tipos de OTPs, cada uma gerada e entregue de forma diferente para casos de uso distintos. Alguns métodos comuns de OTPs incluem:
SMS OTP / Email OTP
SMS OTP ou Email OTP é uma das formas mais simples de OTPs, onde um código único é gerado por um servidor e entregue de forma segura ao utilizador via SMS ou email. O utilizador então insere este código para se autenticar.
Como funciona:
- O utilizador solicita um OTP ao servidor.
- O servidor gera um código numérico ou alfanumérico aleatório e o envia para o utilizador via SMS ou email.
- O utilizador recupera a OTP da sua caixa de entrada de SMS ou email e a insere na aplicação.
- O servidor verifica o código em relação aos seus registos e concede acesso se o código for válido.
Medidas de segurança:
- O OTP é válido apenas por um curto período de tempo (por exemplo, 5 minutos) para minimizar o risco de intercepção e ataques de repetição.
- O canal de entrega via SMS depende de redes celulares, tornando-o suscetível a intercepção através de ataques de troca de SIM ou outras vulnerabilidades na infraestrutura de telecomunicações.
- As OTPs baseadas em email são tão seguras quanto a conta de email do utilizador. Se a conta de email estiver comprometida, a OTP pode ser interceptada.
Casos de uso:
As OTPs de SMS e Email são comumente usadas em aplicações voltadas para o consumidor, como bancos online, comércio eletrónico, e plataformas de redes sociais. Não só são mais seguras do que senhas estáticas, como também fornecem uma maneira conveniente para os utilizadores se autenticarem sem memorizar senhas e perguntas de segurança complexas.
Dado que a maioria dos utilizadores tem acesso constante a um telefone móvel ou conta de email a todo momento, as OTPs de SMS e Email tornaram-se uma escolha preferida para autenticação do utilizador, verificação de propriedade de endereço de email ou número de telefone, e recuperação de senhas.
OTP baseado em HMAC (HOTP)
OTP baseado em HMAC, definido na RFC 4226, é um algoritmo de OTP sincronizado por tempo que gera uma sequência de códigos únicos com base numa chave secreta e num valor de contador. Cada OTP é derivado ao hashear a chave secreta e o valor do contador utilizando uma função de hash criptográfica (por exemplo, SHA-1, SHA-256).
Como funciona:
-
Secreto: HOTP requer uma chave secreta partilhada entre o servidor e o cliente.
-
Contador: O servidor e o cliente mantêm um valor de contador que incrementa com cada geração de OTP.
-
O cliente calcula o hash HMAC-SHA1 (ou outras funções de hash) do valor do contador (C) utilizando a chave secreta partilhada (K)
H = HMAC-SHA1(K, C)
-
O hash é truncado para um código de 6 ou 8 dígitos (dependendo da implementação) para gerar a OTP.
OTP = Truncate(H)mod 10^d
-
O servidor mantém controle do valor do contador e verifica a OTP recebida calculando o valor do hash usando o mesmo valor de contador e chave secreta. (Se houver uma ligeira discrepância, o servidor pode permitir uma pequena janela de valores de contador, por exemplo, um ou dois incrementos, para contabilizar problemas de sincronização)
Medidas de segurança:
- HOTP assegura que cada senha é única e válida até que seja utilizada, uma vez que o contador é incrementado após cada autenticação bem-sucedida.
- A chave secreta partilhada nunca é transmitida em rede, reduzindo o risco de intercepção.
- O valor do contador é sincronizado entre o servidor e o cliente para prevenir ataques de repetição.
Casos de uso:
HOTP é comumente usado em tokens de hardware e sistemas legados onde restrições de tempo podem ser difíceis de implementar. Para aplicações modernas, TOTP é mais popular devido à sua natureza baseada em tempo e facilidade de implementação.
OTP baseado em tempo (TOTP)
OTP baseado em tempo, definido na RFC 6238, é um algoritmo que gera uma sequência de códigos únicos baseados no tempo atual e numa chave secreta partilhada. TOTP é uma extensão mais avançada do HOTP que usa um carimbo de tempo em vez de um valor de contador para gerar OTPs. Isso dá uma validade baseada em tempo às OTPs, tornando-as mais seguras do que HOTP.
Como funciona:
-
Secreto: Como HOTP, TOTP requer uma chave secreta partilhada entre o servidor e o cliente.
-
Passo de tempo: A diferença chave entre HOTP e TOTP é que TOTP utiliza um valor de passo baseado em tempo (tipicamente 30 segundos) em vez de um valor de contador.
-
O cliente calcula o hash HMAC-SHA1 do tempo atual dividido pelo passo de tempo usando a chave secreta partilhada.
H(Tempo) = HMAC-SHA1(K, Tempo/PassoTempo)
-
O valor do hash é truncado para um código de 6 ou 8 dígitos para gerar a OTP.
OTP(Tempo) = Truncate(H(Tempo))mod 10^d
-
OTP Dinâmico: Como a geração da OTP é baseada em tempo, a OTP muda a cada 30 segundos, proporcionando um nível de segurança mais alto.
-
O servidor verifica a OTP recebida calculando o valor do hash utilizando o tempo atual e a chave secreta. Enquanto a OTP estiver dentro da janela de tempo válida, o servidor aceita a autenticação.
Medidas de segurança:
- A dependência da sincronização do tempo assegura que uma OTP é válida apenas por um curto período, reduzindo o risco de intercepção ou reutilização.
- A natureza baseada em tempo de TOTP torna-o mais seguro do que HOTP, pois é menos suscetível a ataques de repetição. Mesmo que um atacante obtenha uma OTP previamente usada, ela torna-se inválida quando a janela de tempo expira.
- Tal como HOTP, a chave secreta partilhada nunca é transmitida em rede, reduzindo o risco de intercepção.
Casos de uso:
TOTP é amplamente usado em aplicações de autenticação com base em software, como Google Authenticator, Authy e Microsoft Authenticator. Estas aplicações geram OTPs baseados em tempo para que os utilizadores se autentiquem com vários serviços online, incluindo plataformas de redes sociais, serviços em nuvem e instituições financeiras.
As aplicações de autenticação TOTP tornaram-se a forma mais popular de OTP para MFA, pois oferecem um equilíbrio entre segurança e usabilidade. Os utilizadores podem gerar OTPs nos seus dispositivos móveis sem depender de entrega via SMS ou email, tornando-se um método de autenticação mais seguro e conveniente.
Vantagens do OTP
-
Segurança aprimorada
- As OTPs mitigam riscos associados a senhas roubadas ou comprometidas.
- As OTPs são sensíveis ao tempo e expiram rapidamente, reduzindo a janela de oportunidade para os atacantes interceptarem e reutilizarem.
- Sua natureza de uso único torna-as mais seguras do que senhas estáticas, pois cada OTP é única e não pode ser reutilizada.
-
Facilidade de uso
- As OTPs são fáceis de gerar e usar, exigindo mínima interação do utilizador.
- Amplamente suportadas por várias plataformas e serviços, como TOTP, exigindo configuração mínima e podendo recorrer a uma ampla gama de aplicações de autenticação existentes.
-
Flexibilidade
- As OTPs podem ser entregues por múltiplos canais, incluindo SMS, email e aplicações de autenticação, oferecendo flexibilidade para os utilizadores escolherem seu método preferido.
-
Conformidade com regulamentações
- As OTPs são compatíveis com padrões da indústria e regulamentações, como PCI DSS, GDPR e HIPAA, que exigem mecanismos de autenticação fortes para proteger dados sensíveis.
Por que o OTP é preferido em relação a senhas estáticas?
OTP é um método de autenticação seguro e conveniente que se tornou uma ferramenta essencial nas práticas modernas de segurança. Ao fornecer um código único e sensível ao tempo para cada sessão de autenticação, as OTPs oferecem um nível de segurança mais alto do que as senhas estáticas tradicionais. Seja entregues via SMS, email ou aplicações de autenticação, as OTPs são amplamente adotadas em várias aplicações para proteger dados sensíveis e assegurar o acesso a serviços online. À medida que o cenário de ameaças evolui, as OTPs continuam a desempenhar um papel crucial na proteção de contas de utilizador e evitando o acesso não autorizado a informações pessoais e corporativas.