O que é um código rotativo numa tag?
Um valor que o chip produz de novo a cada leitura, de modo que um valor capturado uma vez já foi gasto quando alguém tenta usá-lo. Ele vence a reprodução, que é o ataque em que uma troca é capturada e repetida. Não faz nada contra quem está com a tag na mão.
O que ele faz
Cada vez que a tag é lida, o chip produz um valor que ainda não tinha aparecido. O leitor não precisa pedir nada de especial; o valor simplesmente é outro.
Em geral o valor vem combinado com um contador, para que o lado que recebe saiba não só que esta leitura é nova, mas aproximadamente quantas leituras já aconteceram.
A consequência é que um valor observado uma vez não vale nada depois, porque apresentá-lo de novo é apresentar algo já visto.
Do que o outro lado precisa
De algo que se lembre. Um valor rotativo só significa alguma coisa para um verificador que sabe quais valores já apareceram, ou que consegue calcular qual deve ser o próximo valor legítimo.
Isso é um serviço que guarda um segredo e um registro, o que é a mesma exigência de infraestrutura que todo esquema de autenticação tem e a mesma que toda avaliação subestima.
Um valor rotativo lido por algo sem memória é um número que muda, e um número que muda não é uma propriedade de segurança.
O que ele impede e o que não impede
Ele impede a reprodução: capturar uma troca e repeti-la mais tarde, o que de outro modo seria o ataque mais barato contra uma tag que diz sempre a mesma coisa.
Ele não impede quem tem a posse física, porque essa pessoa pode simplesmente ler a tag de novo e obter um valor novo.
Ele não prova nada sobre o item em que a tag está presa, pelo mesmo motivo que nenhum mecanismo do chip prova.
E ele não ajuda se o verificador aceitar um valor antigo mesmo assim, o que é uma questão de configuração, e não do chip.
O modo de falha a prever
Os contadores saem de sincronia. Uma tag lida várias vezes longe do verificador avança além do que o verificador espera, e um verificador estrito passa então a rejeitar uma tag autêntica.
Toda instalação encontra isso, em geral por uma tag testada durante a instalação ou lida por curiosidade antes de entrar em operação.
Então o verificador precisa de uma janela de tolerância e de um jeito definido de ressincronizar, decididos antes da instalação e não durante o primeiro incidente.
Um esquema sem resposta para uma tag legítima que falha vai ser desligado na semana em que começar a rejeitar clientes.
Perguntas frequentes
Um código rotativo impede a clonagem?
Ele impede que uma troca capturada seja reproduzida. Não impede que alguém com a tag na mão a leia de novo.
Preciso de um serviço para usar um código rotativo?
Sim. O valor só significa alguma coisa para um verificador que se lembra do que já viu ou que consegue calcular o que vem depois.
O que acontece se o contador se adiantar?
Um verificador estrito rejeita uma tag autêntica. Planeje uma janela de tolerância e um jeito de ressincronizar antes da instalação.
Um código rotativo é a mesma coisa que autenticação?
É uma das famílias dela. A outra envia um desafio que o chip tem de responder, o que não exige acompanhar contadores.