Pentesting RFID

Support HackTricks

Introduction

Radio Frequency Identification (RFID) je najpopularnije rešenje za kratke radio udaljenosti. Obično se koristi za skladištenje i prenos informacija koje identifikuju entitet.

RFID oznaka može se oslanjati na svoj izvor napajanja (aktivna), kao što je ugrađena baterija, ili primati napajanje od antene za čitanje koristeći trenutnu indukovanu iz primljenih radio talasa (pasivna).

Classes

EPCglobal deli RFID oznake u šest kategorija. Oznaka u svakoj kategoriji ima sve mogućnosti navedene u prethodnoj kategoriji, čineći je unazad kompatibilnom.

  • Klasa 0 oznake su pasivne oznake koje rade u UHF opsegu. Dobavljač ih preprogramira u fabrici. Kao rezultat, ne možete promeniti informacije pohranjene u njihovoj memoriji.

  • Klasa 1 oznake takođe mogu raditi u HF opsegu. Pored toga, mogu se pisati samo jednom nakon proizvodnje. Mnoge Klasa 1 oznake takođe mogu obraditi ciklične redundancije (CRC) komandi koje primaju. CRC su nekoliko dodatnih bajtova na kraju komandi za otkrivanje grešaka.

  • Klasa 2 oznake mogu se pisati više puta.

  • Klasa 3 oznake mogu sadržati ugrađene senzore koji mogu snimati parametre okruženja, kao što su trenutna temperatura ili kretanje oznake. Ove oznake su polu-pasivne, jer iako imaju ugrađeni izvor napajanja, kao što je integrisana baterija, ne mogu inicirati bežičnu komunikaciju sa drugim oznakama ili čitačima.

  • Klasa 4 oznake mogu inicirati komunikaciju sa drugim oznakama iste klase, čineći ih aktivnim oznakama.

  • Klasa 5 oznake mogu pružiti napajanje drugim oznakama i komunicirati sa svim prethodnim klasama oznaka. Klasa 5 oznake mogu delovati kao RFID čitači.

Information Stored in RFID Tags

Memorija RFID oznake obično skladišti četiri vrste podataka: identifikacione podatke, koji identifikuju entitet na koji je oznaka pričvršćena (ovi podaci uključuju korisnički definisane oblasti, kao što su bankovni računi); dodatne podatke, koji pružaju dodatne detalje o entitetu; kontrolne podatke, korišćene za internu konfiguraciju oznake; i proizvođačke podatke oznake, koji sadrže jedinstveni identifikator oznake (UID) i detalje o proizvodnji, vrsti i dobavljaču oznake. Prve dve vrste podataka ćete pronaći u svim komercijalnim oznakama; poslednje dve mogu se razlikovati u zavisnosti od dobavljača oznake.

ISO standard definiše vrednost Identifikatora aplikacione porodice (AFI), kod koji označava vrstu objekta kojem oznaka pripada. Još jedan važan registar, takođe definisan od strane ISO, je Identifikator formata skladištenja podataka (DSFID), koji definiše logičku organizaciju korisničkih podataka.

Većina bezbednosnih kontrola RFID-a ima mehanizme koji ograničavaju čitanje ili pisanje operacija na svakoj korisničkoj memorijskoj jedinici i na posebnim registrima koji sadrže AFI i DSFID vrednosti. Ovi mehanizmi zaključavanja koriste podatke pohranjene u kontrolnoj memoriji i imaju podrazumevane lozinke koje je prekonfigurisao dobavljač, ali omogućavaju vlasnicima oznaka da konfigurišu prilagođene lozinke.

Low & High frequency tags comparison

Low-Frequency RFID Tags (125kHz)

Oznake niske frekvencije se često koriste u sistemima koji ne zahtevaju visoku bezbednost: pristup zgradama, interkom ključevi, članstva u teretanama, itd. Zbog svog većeg dometa, pogodne su za korišćenje za plaćeno parkiranje: vozač ne mora da dovede karticu blizu čitača, jer se aktivira iz daljine. U isto vreme, oznake niske frekvencije su vrlo primitivne, imaju nisku brzinu prenosa podataka. Iz tog razloga, nemoguće je implementirati složen dvostrani prenos podataka za stvari kao što su održavanje stanja i kriptografija. Oznake niske frekvencije samo prenose svoj kratki ID bez ikakvih sredstava za autentifikaciju.

Ovi uređaji se oslanjaju na pasivnu RFID tehnologiju i rade u opsegu od 30 kHz do 300 kHz, iako je uobičajenije koristiti 125 kHz do 134 kHz:

  • Dugi domet — niža frekvencija se prevodi u veći domet. Postoje neki EM-Marin i HID čitači, koji rade na udaljenosti do jednog metra. Ovi se često koriste u parkiranju automobila.

  • Primitivni protokol — zbog niske brzine prenosa podataka, ove oznake mogu samo prenositi svoj kratki ID. U većini slučajeva, podaci nisu autentifikovani i nisu zaštićeni na bilo koji način. Čim je kartica u dometu čitača, jednostavno počinje da prenosi svoj ID.

  • Niska bezbednost — Ove kartice se lako mogu kopirati, ili čak pročitati iz tuđeg džepa zbog primitivnosti protokola.

Popularni 125 kHz protokoli:

  • EM-Marin — EM4100, EM4102. Najpopularniji protokol u CIS-u. Može se čitati sa udaljenosti od oko jednog metra zbog svoje jednostavnosti i stabilnosti.

  • HID Prox II — niskofrekventni protokol koji je uveo HID Global. Ovaj protokol je popularniji u zapadnim zemljama. Složeniji je i kartice i čitači za ovaj protokol su relativno skupi.

  • Indala — vrlo stari niskofrekventni protokol koji je uveo Motorola, a kasnije ga je kupio HID. Manje je verovatno da ćete ga sresti u prirodi u poređenju sa prethodna dva jer izlazi iz upotrebe.

U stvarnosti, postoji mnogo više niskofrekventnih protokola. Ali svi koriste istu modulaciju na fizičkom sloju i mogu se smatrati, na jedan ili drugi način, varijacijom onih navedenih iznad.

Attack

You can attack these Tags with the Flipper Zero:

FZ - 125kHz RFID

High-Frequency RFID Tags (13.56 MHz)

Oznake visoke frekvencije se koriste za složeniju interakciju između čitača i oznake kada su potrebni kriptografija, veliki dvostrani prenos podataka, autentifikacija, itd. Obično se nalaze u bankovnim karticama, javnom prevozu i drugim sigurnim propusnicama.

Oznake visoke frekvencije 13.56 MHz su skup standarda i protokola. Obično se nazivaju NFC, ali to nije uvek tačno. Osnovni skup protokola koji se koristi na fizičkom i logičkom nivou je ISO 14443. Visok nivo protokola, kao i alternativni standardi (kao što je ISO 19092), zasnivaju se na njemu. Mnogi ljudi ovu tehnologiju nazivaju Near Field Communication (NFC), termin za uređaje koji rade na frekvenciji od 13.56 MHz.

Da pojednostavimo, arhitektura NFC-a funkcioniše ovako: protokol prenosa bira kompanija koja pravi kartice i implementira se na osnovu niskonivnog ISO 14443. Na primer, NXP je izmislio svoj vlastiti visokonivni protokol prenosa pod nazivom Mifare. Ali na nižem nivou, Mifare kartice se zasnivaju na ISO 14443-A standardu.

Flipper može interagovati i sa niskonivnim ISO 14443 protokolom, kao i sa Mifare Ultralight protokolom prenosa podataka i EMV-om koji se koristi u bankovnim karticama. Radimo na dodavanju podrške za Mifare Classic i NFC NDEF. Temeljno razmatranje protokola i standarda koji čine NFC zaslužuje poseban članak koji planiramo da objavimo kasnije.

Sve visokonivene kartice zasnovane na ISO 14443-A standardu imaju jedinstveni ID čipa. On deluje kao serijski broj kartice, poput MAC adrese mrežne kartice. Obično, UID je dugačak 4 ili 7 bajtova, ali retko može ići do 10. UIDs nisu tajna i lako se čitaju, ponekad čak i odštampani na samoj kartici.

Postoji mnogo sistema kontrole pristupa koji se oslanjaju na UID za autentifikaciju i dodeljivanje pristupa. Ponekad se to dešava čak i kada RFID oznake podržavaju kriptografiju. Takva zloupotreba ih snižava na nivo glupih 125 kHz kartica u smislu bezbednosti. Virtuelne kartice (kao što je Apple Pay) koriste dinamički UID kako vlasnici telefona ne bi mogli otvarati vrata sa svojom aplikacijom za plaćanje.

  • Mali domet — visokonivne kartice su posebno dizajnirane tako da moraju biti postavljene blizu čitača. To takođe pomaže u zaštiti kartice od neovlašćenih interakcija. Maksimalni domet čitanja koji smo uspeli da postignemo bio je oko 15 cm, a to je bilo sa čitačima visokog dometa po narudžbini.

  • Napredni protokoli — brzine prenosa podataka do 424 kbps omogućavaju složene protokole sa punim dvostranim prenosom podataka. Što zauzvrat omogućava kriptografiju, prenos podataka, itd.

  • Visoka bezbednost — visokonivne beskontaktne kartice ni na koji način nisu inferiorne u odnosu na pametne kartice. Postoje kartice koje podržavaju kriptografski jake algoritme poput AES i implementiraju asimetričnu kriptografiju.

Attack

You can attack these Tags with the Flipper Zero:

FZ - NFC

Or using the proxmark:

Proxmark 3

References

Support HackTricks

Last updated