Usamos chips NXP NTAG 424 DNA em nossas tags. Cada leitura avança um contador monotônico e gera um código de autenticação AES-CMAC com a chave secreta do chip. Nosso serviço de validação verifica o código e o contador. Ele rejeita códigos já validados. Um link copiado não consegue gerar um novo código válido sem a chave. Uma leitura válida autentica a tag. Ela não prova que o item ao qual a tag está presa é autêntico.
Como o contador monotônico impede a clonagem
Etiquetas NFC destinadas apenas a dados, como a NTAG 216, oferecem informação, não segurança. Elas armazenam informações estáticas que qualquer leitor pode copiar. Toda vez que uma etiqueta NFC é lida, um contador interno aumenta em uma unidade. Esse valor é combinado com os dados únicos da etiqueta e uma chave secreta para gerar uma assinatura criptográfica usando AES-CMAC, um código de autenticação de mensagem baseado em cifra de blocos. Como o contador muda a cada leitura, a assinatura é diferente a cada vez, mesmo para a mesma etiqueta.
A equação de autenticação é a seguinte.
CMAC = AES-CMAC(K, UID || Counter || Data)
Nela, K é a chave secreta, UID é o identificador único da etiqueta, Counter aumenta a cada leitura e Data é a carga útil da etiqueta. Uma etiqueta falsificada não consegue prever os valores futuros do contador nem gerar assinaturas válidas sem conhecer a chave secreta, tornando a clonagem matematicamente inviável.
Um módulo de segurança de hardware guarda a chave mestra e, a partir dela e do UID de cada tag, deriva uma chave exclusiva para aquela tag. Gravamos essa chave uma única vez no chip NTAG 424 DNA da tag. O chip não permite a leitura dessa chave. Uma chave extraída de uma tag não consegue gerar códigos válidos para outra.
Tags NFC estáticas e nossas tags NTAG 424 DNA
| Recurso | Tags NFC estáticas | Nossas tags NTAG 424 DNA |
|---|---|---|
| Número de série estático | Fácil de copiar | Não é usado sozinho |
| Contador crescente | Sem assinatura, quando disponível | Aumenta a cada leitura |
| Validação AES-CMAC | Sem proteção | Verificado por AES-CMAC |
| Detecção de clones | Não disponível | Divergência de contadores |
| Verificação do chip | Nenhuma | ECC secp224r1 |
| Detecção física de violação | Não disponível | Fio de detecção TagTamper |