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]
 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)