No artigo anterior, vimos que os tokens OTP que utilizam o padrão OATH geram as senhas dinâmicas com base em uma função que utiliza um segredo compartilhado (entre o token hardware ou mobile e o servidor de autenticação), e um valor arbitrário de acordo com a equação abaixo:
OTPGen(secret,x)=otp
O algoritmo OATH é publico e o valor arbitrário x varia a cada autenticação. Desta forma segurança do processo está no valor secret, que deve ser protegido dentro do token e no servidor. Conhecendo o valor de secret é possível obter-se qualquer valor de OTP. Por outro lado, conhecendo-se apenas a função OTPGen e o valor de x, não possível deduzir o valor da OTP e tampouco do secret.
Dado que o segredo compartilhado é fixo, é a variação do valor arbitrário x é o que efetivamente determina o modo de operação do token.
Os modos básicos de operação dos tokens são:
- OTP por evento: o valor de é determinado por um contador incrementado a cada autenticação;
- OTP por tempo: o valor de é determinado por uma função que envolve tempo. Neste modo, os relógios de servidor e do token devem estar sincronizados;
- OTP por desafio/resposta: O servidor determina um desafio arbitrário que deve ser inserido no token para que este possa calcular a resposta;
É possível definir outros modos de operação com base em outros geradores ou até mesmo trabalhar com modos combinados como faz o OCRA que pode combinar o desafio/resposta com tempo e/ou evento.
Um método bastante interessante é o Transaction Signing, em e o valor de x é uma combinação de dados referentes a uma trasação bancária como: valor, moeda, conta de origem, conta de destino de forma que a OTP resultante equivale a assinatura da transação efetuada.
O m-Trusted, a aplicação mobile token da OpenCS possui todos os métodos básicos de OTP e o Transaction Signing.
