AES-protected NFC Technologies Philippe Teuwen · Nathan Nye Tiernan Messmer · Steven Mauch · Struan Clark · Zinong Li · Zachary Weiss · Lucifer Voeltner 30 May 2026 - Hardwear.io USA 1
Principal Hardware Security Organizing Hardware CTFs since 2017 MIFARE Classic: exposing the static encrypted nonce variant 2024 EEPROM: It Will All End in Tears 2021, w/ Iceman 2 Working on space vehicles since 2023 Ultra-Efficient MIFARE Classic Attacks and New Frontiers in Smartcard Security 2023
Principal Hardware Security Organizing Hardware CTFs since 2017 MIFARE Classic: exposing the static encrypted nonce variant 2024 EEPROM: It Will All End in Tears 2021, w/ Iceman 3 Working on space vehicles since 2023 Ultra-Efficient MIFARE Classic Attacks and New Frontiers in Smartcard Security 2023
AUTHENTICATE UNLOCKED UNLOCK ACK e k (RndA') 16 Proof-of-Concept: Two Flipper Zero devices over 433 MHz Sub-GHz link 🍿 https://youtu.be/ZXG-vxopeeE READER timeout e k (RndA || RndB') e k (RndB) AUTHENTICATE RELAY A RELAY B 🍿
Card can wait indefinitely AUTHENTICATE e k (RndA || RndB') e k (RndB) AUTHENTICATE UNLOCKED AUTHENTICATED UNLOCK ACK e k (RndA') CARD RELAY A 17 Proof-of-Concept: Two Proxmark3 RELAY B
RndB') READER e k (RndB) collect a pair offline brute-force d k' (... || …) = 6 DES ops d k' (...) = 3 DES ops 2 2 23 ≈55% cost reduction 2 cards: ≈21 days + $120 & 6h of GPU Page 44 Recovered from Card 1 Page 46 Recovered if 3rd card… Page 47 ZEROED 2/3 Cards: Page 45 Recovered from Card 2 Key 1 Key 2
TO HW ≤ 3 → only 3683 candidates! Page 44 ALMOST ERASED Page 45 ZEROED Page 46 ZEROED Page 47 ZEROED FAST BUT 2-3 "ONE-BITS" PER CARD → need about 56 cards for an average HW key ≈1 hour with 1 reader and ≈56 cards
Get most frequent nonce EMULATOR MODE Replay nonce Get reader response Auth with most frequent nonce AUTHENTICATED UNLOCKED UNLOCK CARD READER MODE 39 🍿 Proof-of-Concept: a Flipper Zero device and a Feiju FJ8010 🍿 https://youtu.be/Qc-m9IYFof0
LFSR validation Unlock PKO Works even if KDF is used CONNOR MILLIGAN: Hey, let's go GPU! → now 5 seconds to - test if card is vulnerable - perform PKO - brute-force (CUDA) - write back the key 🍿 41 Proof-of-Concept: a Proxmark3 RDV4 and a Feiju FJ8010 🍿 https://asciinema.org/a/1tYCGTewRe93SLf4
29% of sampled hotel cards 16-bit LFSR, fix seed no mitigation possible Cards based on USCUID-UL ICs 5% of sampled hotel cards 16-bit LFSR, fix seed no mitigation observed Cards based on Feiju FJ8010 1% of sampled hotel cards 16-bit LFSR, fix seed 35% of 74 sampled hospitality cards used non-genuine "ULC-compatible" ICs. All enable full key recovery from a single card in 5 seconds. 42
weak bits • "Revive" bits via distance and temperature • Late-erasing bit characterization 12.625 bits per page, incl. 0.875 errors 58 REVEALING MORE BITS FULL AES-128 KEY RECOVERY ≈2 hours with 1 reader and ≈20 cards
2 supporting Secure Unique NDEF with CMAC https://example.com/tag=04AA2BD2335780x000001xB188AC6F69140B92 64 UID counter CMAC unauthenticated oracle unlock if needed PKO + offline brute-force of 4*2³² ≈2.5 h even if diversified keys SINGLE-TAG FULL KEY RECOVERY
masked in EEPROM NTAG 223 DNA: only one key Collect CMACs online - Tear progressively from UUUU to MMMM - Write own key key = ZZZZ - Tear progressively from ZZZZ to MMMM 66
masked in EEPROM NTAG 223 DNA: only one key Collect CMACs online - Tear progressively from UUUU to MMMM - Write own key key = ZZZZ - Tear progressively from ZZZZ to MMMM Crack CMACs offline - Recover progressively the mask from ZZZZ to MMMM - Recover the unknown key from MMMM to UUUU 67
masked in EEPROM NTAG 223 DNA: only one key Collect CMACs online - Tear progressively from UUUU to MMMM - Write own key key=ZZZZ - Tear progressively from ZZZZ to MMMM Crack CMACs offline - Recover progressively the mask from ZZZZ to MMMM - Recover the unknown key from MMMM to UUUU 68 ≈38 seconds SINGLE-TAG FULL KEY RECOVERY 🍿 Proof-of-Concept: a Proxmark3 RDV4 and a NTAG 223 DNA 🍿 https://asciinema.org/a/W1AvmnTq9Wb4YzLq
= no PKO attack Prevent brute-force enable AUTH_LIMIT authentication attempt counter on UL AES / NTAG 224 Derive unique per-card keys use UID + site key via secure KDF (AN10922) Enable post-auth message integrity activate SEC_MSG_ACT on UL AES Detect non-NXP ICs use our non-auth fingerprinting techniques Migrate to DESFire EV3 get encrypted sessions by default 71