Utilizamos chips NXP NTAG 424 DNA en nuestras etiquetas. Cada lectura incrementa un contador monótono y genera un código de autenticación AES-CMAC con la clave secreta del chip. Nuestro servicio de validación comprueba el código y el contador. Rechaza los códigos ya validados. Un enlace copiado no puede generar un código válido nuevo sin la clave. Una lectura válida autentica la etiqueta. No demuestra que el artículo al que está adherida sea auténtico.
Cómo evita la clonación el contador monótono
Las etiquetas NFC que solo almacenan datos, como NTAG 216, proporcionan información, pero no seguridad. Guardan información estática que cualquier lector puede copiar. Cada vez que se lee una etiqueta NFC, un contador interno aumenta en una unidad. Ese valor se combina con los datos únicos de la etiqueta y una clave secreta para generar una firma criptográfica mediante AES-CMAC, un código de autenticación de mensajes basado en un cifrado de bloques. Como el contador cambia con cada lectura, la firma es distinta cada vez, incluso para la misma etiqueta.
La ecuación de autenticación es la siguiente.
CMAC = AES-CMAC(K, UID || Counter || Data)
Donde K es la clave secreta, UID es el identificador único de la etiqueta, Counter aumenta con cada lectura y Data es la carga útil de la etiqueta. Una etiqueta falsificada no puede predecir los valores futuros del contador ni generar firmas válidas sin conocer la clave secreta, lo que hace que la clonación sea matemáticamente inviable.
Un módulo de seguridad de hardware conserva la clave maestra y deriva de ella y del UID de cada etiqueta una clave única para esa etiqueta. Escribimos esa clave una sola vez en su chip NTAG 424 DNA. No se puede extraer del chip mediante lectura. Una clave extraída de una etiqueta no puede generar códigos válidos para otra.
Etiquetas NFC estáticas frente a nuestras etiquetas NTAG 424 DNA
| Función | Etiquetas NFC estáticas | Nuestras etiquetas NTAG 424 DNA |
|---|---|---|
| Número de serie estático | Fácil de copiar | No se utiliza por sí solo |
| Contador creciente | Sin firma, si lo hay | Aumenta con cada lectura |
| Validación AES-CMAC | Sin protección | Verificación AES-CMAC |
| Detección de clones | No disponible | Divergencia entre contadores |
| Verificación del chip | Ninguna | ECC secp224r1 |
| Detección física de manipulación | No disponible | Hilo de detección TagTamper |