Tipos de One-Time Password

A tecnologia One-Time Password (OTP), também chamada de senhas dinâmicas, é utilizada com o propósito de autenticar usuários e sistemas. O propósito é utilizar de uma forma de autenticação em que as senhas não sejam predefinidas, mas dinâmicas e únicas dado certo momento. Ou seja, uma senha apenas é válida em determinado momento e não poderá ser reutilizada. Geralmente o uso de OTP é requisito para ambientes que possuam dados sensíveis, como acesso a sistemas bancários ou infraestruturas críticas.

O OTP geralmente é implementado através de Tokens físicos (pequenos dispositivos com telas LCD e eventualmente com um keypad), aplicativos de smartphones (soft Token – instalados como aplicativos nos celulares) ou através de mensagens enviadas via SMS a um celular previamente cadastrado. Ambos possuem o mesmo propósito, que é permitir a autenticação através de senhas dinâmicas.

OTP possui duas variações de implementação: síncrono e assíncrono. Ambas as variações de implementação serão melhor descritas a seguir.

Token Síncrono

Nesse tipo de OTP existe a necessidade de sincronismo, seja por mesma data ou por um valor de contador. Se o sincronismo for baseado em tempo, tanto o token quanto o serviço de autenticação deverão possuir exatamente o mesmo horário. A partir do valor do horário e senha compartilhada é gerado um hash ou cifrado com o uso da chave compartilhada. Esse valor deverá ser utilizado pelo usuário para realizar a autenticação no serviço, que possuirá o mesmo horário e senha compartilhada para realizar o processo reverso ou comparar se é o valor esperado.

Se o sincronismo for baseado em um contador (counter-based ou event-based), o mesmo procedimento será realizado utilizando de valor que será gerado diante um estímulo do usuário, como o pressionar de um botão dispositivo físico ou em um soft-token em um smartphone. Esse valor deverá ser o mesmo esperado pelo serviço de autenticação para depois realizar o processo inverso de criptografia ou realizar a comparação com o valor esperado.

Uma implementação de mercado desse sistema é o SecurID da RSA. Implementa o uso de token síncrono baseado em tempo.

Token Assíncrono

No método de tokens síncronos é necessário com que algum valor, além da senha, seja compartilhada entre o cliente e o serviço de autenticação. No método assíncrono, o serviço de autenticação realiza um processo de desafio/resposta para autenticar os usuários. O serviço de autenticação envia inicialmente ao cliente o desafio (um valor), chamado de nonce, e esse valor deve será inserido no token. O token realiza a criptografia do valor e retorna com outro resultado. Esse resultado é enviado ao serviço de autenticação que, se conseguir realizar o processo inverso, autenticará o usuário.

Autenticação com o uso de token assíncrono
Fonte: CISSP All-in-One Exam Guide

Nesse modelo ainda é necessário o compartilhamento de uma senha, que será utilizado pelo cliente para criptografar o nonce e permitir com que o serviço de autenticação, utilizando da mesma senha, faça o processo reverso e valide o token.

Por fim…

O uso de OTP é muito comum como segundo método de autenticação (2FA – Two-Factor Authentication), associado com o uso de outro sistema, como usuário e senha. Uma forma de tornar ainda mais seguro o ambiente é também implementar o uso de senha (PIN) para acesso ao Token, seja físico ou lógico.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *