Português (Brasil)
  • OTP
  • TOTP
  • MFA
  • HOTP
  • one-time password

O que é senha ú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 por que é mais preferido do que senhas estáticas.

Simeng
Simeng
Developer

OTP significa Senha Única, também conhecida como pin único, código de acesso único ou senha dinâmica. É uma senha temporária exclusiva, 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 usadas e expiram após um curto período de tempo. Isso as torna um método de autenticação altamente seguro, pois são muito mais difíceis para os invasores roubarem e reutilizarem.

As OTPs são amplamente adotadas em várias aplicações de segurança, incluindo bancos online, e-commerce e proteção ao acesso a dados ou sistemas sensíveis. Também são comumente usadas como um segundo fator na autenticação multifatorial (MFA) para fornecer uma camada adicional de segurança. Ao combinar algo que o usuário sabe (por exemplo, uma senha) com algo que ele possui (por exemplo, um dispositivo móvel), as OTPs se tornaram uma ferramenta essencial dos sistemas modernos de autenticação.

Como funciona o OTP?

Existem vários tipos de OTPs, cada um gerado e entregue de forma diferente para diferentes casos de uso. Alguns métodos comuns de OTPs incluem:

OTP por SMS / OTP por Email

OTP por SMS ou por Email é uma das formas mais simples de OTPs, onde um código de acesso único é gerado por um servidor e entregue de forma segura ao usuário via SMS ou email. O usuário então insere esse código de acesso para se autenticar.

Como funciona:

  • O usuário solicita uma OTP do servidor.
  • O servidor gera um código numérico ou alfanumérico aleatório e o envia ao usuário via SMS ou email.
  • O usuário recupera a OTP de seu SMS ou caixa de entrada de email e a insere no aplicativo.
  • O servidor verifica o código em relação aos seus registros e concede acesso se o código for válido.

Medidas de segurança:

  • A OTP é válida apenas por um curto período de tempo (por exemplo, 5 minutos) para minimizar o risco de interceptação e ataques de repetição.
  • O canal de entrega por SMS depende de redes celulares, tornando-o suscetível à interceptação por 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 usuário. Se a conta de email for comprometida, a OTP pode ser interceptada.

Casos de uso:

OTPs por SMS e Email são comumente usadas em aplicativos voltados para o consumidor, como bancos online, e-commerce e plataformas de mídia social. Não só são mais seguras do que senhas estáticas, mas também fornecem uma maneira conveniente para os usuários se autenticarem sem memorizar senhas complexas e perguntas de segurança.

Dado que a maioria dos usuários tem acesso constante a um telefone móvel ou conta de email em todos os momentos, OTPs por SMS e Email se tornaram uma escolha preferida para autenticação de usuário, verificação de propriedade de endereço de email ou número de telefone e recuperação de senha.

OTP baseada em HMAC (HOTP)

A OTP baseada em HMAC, definida no RFC 4226, é um algoritmo de OTP sincronizado por tempo que gera uma sequência de códigos de acesso únicos com base em uma chave secreta e um valor de contador. Cada OTP é derivada ao aplicar o hash da chave secreta e do valor do contador usando uma função de hash criptográfica (por exemplo, SHA-1, SHA-256).

Como funciona:

  1. Segredo: HOTP requer uma chave secreta compartilhada entre o servidor e o cliente.

  2. Contador: O servidor e o cliente mantêm um valor de contador que é incrementado a cada geração de OTP.

  3. O cliente calcula o hash HMAC-SHA1 (ou outras funções de hash) do valor do contador (C) usando a chave secreta compartilhada (K).

    • H = HMAC-SHA1(K, C)
  4. O valor do 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
  5. O servidor acompanha o valor do contador e verifica a OTP recebida ao calcular o valor do hash usando o mesmo valor de contador e chave secreta. (Se houver uma pequena desfasagem, o servidor pode permitir uma pequena janela de valores de contador, por exemplo, um ou dois incrementos, para cobrir problemas de sincronização)

Medidas de segurança:

  • HOTP garante que cada senha seja única e válida até ser usada, visto que o contador é incrementado após cada autenticação bem-sucedida.
  • A chave secreta compartilhada nunca é transmitida pela rede, reduzindo o risco de interceptaçã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 antigos onde as restrições de tempo podem ser difíceis de implementar. Para aplicações modernas, o TOTP é mais popular devido à sua natureza baseada no tempo e facilidade de implementação.

OTP baseada no tempo (TOTP)

A OTP baseada no tempo, definida no RFC 6238, é um algoritmo que gera uma sequência de códigos de acesso únicos com base no tempo atual e uma chave secreta compartilhada. O 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. Ele dá uma validade baseada no tempo às OTPs, tornando-as mais seguras que o HOTP.

Como funciona:

  1. Segredo: Assim como o HOTP, o TOTP requer uma chave secreta compartilhada entre o servidor e o cliente.

  2. Etapa de tempo: A diferença chave entre HOTP e TOTP é que o TOTP usa um valor de etapa baseado no tempo (tipicamente 30 segundos) em vez de um valor de contador.

  3. O cliente calcula o hash HMAC-SHA1 do tempo atual dividido pelo passo de tempo usando a chave secreta compartilhada.

    • H(Time) = HMAC-SHA1(K, Time/TimeStep)
  4. O valor do hash é truncado para um código de 6 ou 8 dígitos para gerar a OTP.

    • OTP(Time) = Truncate(H(Time))mod 10^d
  5. OTP dinâmica: Como a geração de OTP é baseada no tempo, a OTP muda a cada 30 segundos, proporcionando um alto nível de segurança.

  6. O servidor verifica a OTP recebida ao calcular o valor do hash usando o tempo atual e a chave secreta. Contanto que a OTP esteja 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 garante que uma OTP seja válida apenas por um breve período, reduzindo o risco de interceptação ou reutilização.
  • A natureza baseada no tempo do TOTP o torna mais seguro que o HOTP, pois é menos suscetível a ataques de repetição. Mesmo que um invasor obtenha uma OTP usada anteriormente, ela se torna inválida assim que a janela de tempo expira.
  • Assim como o HOTP, a chave secreta compartilhada nunca é transmitida através da rede, reduzindo o risco de interceptação.

Casos de uso:

O TOTP é amplamente utilizado em aplicativos autenticadores baseados em software, como Google Authenticator, Authy e Microsoft Authenticator. Esses aplicativos geram OTPs baseadas no tempo para usuários se autenticarem com vários serviços online, incluindo plataformas de mídia social, serviços em nuvem e instituições financeiras.

Os aplicativos autenticadores TOTP se tornaram a forma mais popular de OTP para MFA, pois oferecem um equilíbrio entre segurança e usabilidade. Os usuários podem gerar OTPs em seus dispositivos móveis sem depender de entrega por SMS ou email, tornando-a um método mais seguro e conveniente de autenticação.

Vantagens do OTP

  1. 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 que invasores as interceptem e reutilizem.
    • Sua natureza de uso único torna-a mais segura do que senhas estáticas, pois cada OTP é única e não pode ser reutilizada.
  2. Facilidade de uso

    • As OTPs são fáceis de gerar e usar, exigindo interação mínima do usuário.
    • Amplamente suportadas por várias plataformas e serviços, como TOTP, exigindo configuração mínima e podendo aproveitar uma ampla gama de aplicativos autenticadores existentes.
  3. Flexibilidade

    • As OTPs podem ser entregues por meio de múltiplos canais, incluindo SMS, email e aplicativos autenticadores, fornecendo flexibilidade para os usuários escolherem seu método preferido.
  4. Conformidade com regulamentos

    • As OTPs estão de acordo com padrões e regulamentos da indústria, como PCI DSS, GDPR e HIPAA, que exigem mecanismos de autenticação fortes para proteger dados sensíveis.

Por que OTP é preferido em vez de senhas estáticas?

OTP é um método de autenticação seguro e conveniente que se tornou uma ferramenta essencial nas práticas de segurança modernas. Ao fornecer um código de acesso exclusivo e sensível ao tempo para cada sessão de autenticação, as OTPs oferecem um nível mais alto de segurança do que senhas estáticas tradicionais. Sejam entregues via SMS, email ou aplicativos autenticadores, as OTPs são amplamente adotadas em várias aplicações para proteger dados sensíveis e proteger 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 usuários e na prevenção de acesso não autorizado a informações pessoais e corporativas.