Secure Dynamic Messaging — NTAG 424 DNA
Every NFC tap generates a unique, cryptographically authenticated URL. This server decrypts the PICC data, derives per-tap session keys, decrypts the payload, and validates the short AES-CMAC — making replay attacks and card cloning detectable.
Tag Configuration
| NDEF File | No. 02 |
| SDM Feature | Enabled |
| PICC Data Enc. | Enabled · Key 3 (SDM Meta Read Key) · AES-128-CBC · zero IV |
| File Data Enc. | Enabled · Key 4 (SDM File Read Key, diversified per card) · AES-128-CBC |
| CMAC | Short 8-byte · odd bytes of full AES-CMAC · Key 4 |
| UID Mirror | Enabled — inside PICC Data block |
| Counter Mirror | Enabled — 3 bytes little-endian, inside PICC Data |
| UID Length | 7 bytes (standard NTAG424) |
| Payload Padding | ISO/IEC 9797-1 Method 2 · or NXP zero-fill for full blocks |
NDEF URL Template
https://groupster.eu/tag
?data=[PICC_DATA · 32 hex]
&enc=[ENC_FILE_DATA · n×32 hex]
&cmac=[CMAC · 16 hex]
?data=[PICC_DATA · 32 hex]
&enc=[ENC_FILE_DATA · n×32 hex]
&cmac=[CMAC · 16 hex]
■ PICC_DATA — fixed 16 bytes
■ ENC — multiples of 16 bytes
■ CMAC — 8 bytes truncated
Key Structure
| Key 3 on the card |
SDM Meta Read Key — programmed on the card. The card firmware uses Key 3 to encrypt the PICC data block (UID + read counter) inside every SDM URL. The server decrypts this block with Key 3 to extract the UID and counter. |
| Master Key server only |
Diversification Master —
kept only on the server, never stored on the card.
Used to derive a unique Key 4 for each card via:
AES-CMAC(Master Key, AID, UID, SYSID)
|
| Key 4 on the card |
SDM File Read Key — the per-card diversified key, written to the card during personalisation. The server re-derives it per tap to decrypt the ENC payload and verify the CMAC. |
| SesEncKey per tap |
Session encryption key derived per tap: AES-CMAC(Key4, SV_ENC) |
| SesMACKey per tap |
Session MAC key derived per tap: AES-CMAC(Key4, SV_MAC) |
Advertisement 300×250
Advertisement 300×250