• No results found

Typick´ y pˇr´ıpad pouˇzit´ı RFID

K zamezen´ı prost´eho odposlouch´av´an´ı komunikace ´utoˇcn´ıkem je standard Mi-fare Classic vybaven proudovou ˇsifrou Crypto-1. Veˇsker´a komunikace mezi trans-pond´erem a legitimn´ı ˇcteˇckou je ˇsifrovan´a a ´utoˇcn´ık ji bez znalosti kl´ıˇce nedok´aˇze deˇsifrovat. Tato forma obrany vˇsak nen´ı ´uˇcinn´a, pokud v dan´e aplikaci je uˇzivatel rozpozn´av´an pouze na z´akladˇe identifik´atoru karty, kter´y je pˇren´aˇsen v ˇcist´em textu.

Pˇri prov´adˇen´ı opakovac´ıho ´utoku (replay attack) ´utoˇcn´ık pˇrehr´av´a komunikaci, kterou dˇr´ıve z´ıskal odposlechem komunikace mezi transpond´erem a legitimn´ıˇcteˇckou.

Utoˇcn´ık dokonce ani nemus´ı b´´ yt schopen z´ıskat obsah komunikace, ponˇevadˇz mu staˇc´ı zn´at pouze v´yznam. Obrana je zde ˇreˇsena pomoc´ı autentizace bloku ˇc´ıslem z gener´atoru pseudon´ahodn´ych ˇc´ısel. ˇSifrovan´a komunikace pak vypad´a pokaˇzd´e ji-nak3.

Ponˇevadˇz by obrana proti z´amˇern´emu ruˇsen´ı komunikace byla obt´ıˇzn´a, a tedy i n´akladn´a, tak tak´e nijak nen´ı ˇreˇsena. Proti DOS ´utok˚um, jako je napˇr´ıklad pouˇzit´ı velk´eho upraven´ych mnoˇzstv´ı karet, je moˇzn´e se br´anit na ´urovni konkr´etn´ı aplikace.

Proti neopr´avnˇen´emu ˇcten´ı (identifikace osob) ˇci zmˇenˇe (zv´yˇsen´ı z˚ustatku, sn´ıˇzen´ı ceny zboˇz´ı) je technologie Mifare Classic chr´anˇena v´yˇse zm´ınˇen´ym ˇsifrov´an´ım. Bez znalosti kl´ıˇce by nemˇelo j´ıt s pamˇet´ı jakkoliv manipulovat.

Na trhu se objevuj´ı r˚uzn´e implementace transpond´er˚u tohoto standardu, kter´e maj´ı r˚uznou ´uroveˇn zranitelnosti. Tato pr´ace se zab´yv´a anal´yzou bezpeˇcnostn´ıch nedostatk˚u a n´avrhem n´astroje, kter´y by umoˇzˇnoval v r´amci moˇznost´ı technologie bezpeˇcnost testovat.

3aleˇz´ı na rozsahu gener´atoru

2 Mifare Classic

Mifare Classic je aplikaˇcn´ı protokol postaven´y nad transportn´ı vrstvou realizova-nou RFID standardem ISO 14443. Mifare Classic popisuje organizaci pamˇeti trans-pond´eru, komunikaˇcn´ı protokol na aplikaˇcn´ı vrstvˇe a ˇsifrov´an´ı pˇrenosu.

2.1 Antikolizn´ı protokol

Antikolizn´ı protokol slouˇz´ı k v´ybˇeru jednoho z transpond´er˚u, kter´e jsou v dosahu vys´ılaˇce.

Po vloˇzen´ı transpond´eru do elektromagnetick´eho pole vys´ılaˇce transpond´er ˇcek´a na v´yzvu k zah´ajen´ı sv´eho ohl´aˇsen´ı ˇcteˇcce. D´ıky tomuto pˇr´ıstupu se nem˚uˇze st´at, ˇze zaˇr´ızen´ı vys´ılala souˇcasnˇe.

Cteˇcka v pravideln´ˇ ych intervalech odes´ıl´a 7bitov´y pˇr´ıkaz pro identifikaci REQA1. Po pˇr´ıjmu vˇsechny transpond´ery v dosahu najednou odeˇslou odpovˇed’ ATQA2 a pˇrestanou vys´ılat aˇz do n´asleduj´ıc´ıho vyzv´an´ı.

T´ım zaˇc´ın´a antikolizn´ı smyˇcka, jej´ıˇz smyslem je z´ıskat identifik´atory UID3 vˇsech dostupn´ych zaˇr´ızen´ı. Kroky antikolizn´ı smyˇcky jsou n´asleduj´ıc´ı:

1. ˇCteˇcka odeˇsle pˇr´ıkaz SEL (Anti-collision CL1) 2. Vˇsechny dostupn´e transpond´ery odeˇslou sv´e UID 3. ˇCteˇcka odeˇsle pˇr´ıkaz SEL UID (Select CL1)

4. Vybran´y transpond´er odeˇsle identifik´ator standardu.

V pˇr´ıpadˇe, ˇze bylo v dosahu v´ıce zaˇr´ızen´ı, tak mohlo v bodˇe 2 doj´ıt ke kolizi.

Kolize je detekov´ana jako vysok´a ´uroveˇn po celou dobu hodinov´eho taktu. ˇCteˇcka zvol´ı hodnotu prvn´ıho bitu – prefix UID a odeˇsle znovu poˇzadavek na identifikaci,

1Request Command, Type A

2Answer To Request

3Unique IDentifier

nav´ıc pˇripoj´ı prefix. Ted’ vˇsak odpov´ıdaj´ı jiˇz jen zaˇr´ızen´ı s dan´ym prefixem. Tento postup opakuje, dokud ˇcteˇcka nez´ısk´a UID vˇsech zaˇr´ızen´ı v dosahu.

Vytv´aˇren´ı modulace sign´alu a probl´em s kolizemi ˇreˇs´ı automaticky ovladaˇc v j´adru a pouˇzit´y integrovan´y obvod PN532.

V´ıce detail˚u ohlednˇe modulace, k´odov´an´ı a ˇreˇsen´ı koliz´ı lze nal´ezt v normˇe (ISO 14443-3) a dokumentaci k Mifare Classic od NXP Semiconductors (NXP Semicon-ductors, 2014).

Ve vytvoˇren´e aplikaci je moˇzn´e vyuˇz´ıt antikolizn´ı protokol ˇr´ızen´y samotn´ym ovladaˇcem a knihovnou Libnfc, nebo vyuˇz´ıt ˇcip PN532 pouze pro generov´an´ı modu-lace a samotn´y antikolizn´ı protokol prov´est ruˇcnˇe. To m˚uˇze b´yt vhodn´e napˇr´ıklad, pokud je nutn´e pr˚ubˇeh ˇr´ıdit manu´alnˇe nebo je potˇreba m´ıt detailn´ı v´ypisy (pˇri au-tomatick´em pr˚ubˇehu pomoci hardwaru nen´ı moˇzn´e detaily z´ıskat).

V´ystup pˇri softwarov´em ˇr´ızen´ı antikolizn´ıho protokolu je uveden v tabulce 2.1.

Tabulka 2.1: Pr˚ubˇeh antikolizn´ıho protokolu

Akce Hex V´yznam

Sent bits: 26 (7 bits) Request type A

Received bits: 04 00 Response type A

Sent bytes: 93 20 Select All

Received bytes: 7d e7 c1 78 23 UID

Sent bytes: 93 70 7d e7 c1 78 23 6b 2e Select UID

Received bytes: 08 b6 dd Mifare Classic 1k

2.2 Organizace pamˇ eti

Datov´a pamˇet’ je u karet technologie Mifare Classic realizov´ana pamˇet´ı typu EEPROM4 o velikosti 1 kB. Pamˇet’ (Obr´azek 2.1) je rozdˇelena do ˇsestn´acti ˇctyˇrblokov´ych sektor˚u. Kaˇzd´y sektor se skl´ad´a ze ˇctyˇr blok˚u, do kter´ych lze uloˇzit aˇz 16 bajt˚u aplikaˇcn´ıch dat.

Prvn´ı sektor prvn´ıho bloku je rezervov´an v´yrobcem pro uloˇzen´ı provozn´ıch in-formac´ı.

2.2.1 Blok v´ yrobce

V sektoru 0 se v bloku 0 nach´az´ı prvn´ı datov´y blok. Tento blok je rezervov´an v´yrobcem pro uloˇzen´ı informac´ı o kartˇe, z nichˇz nejd˚uleˇzitˇejˇs´ı informac´ı je ˇc´ıslo

4Electrically Erasable Programmable Read-Only Memory

UID, BCC, Manufacturer data Data block Data block Key A, Access conditions, Key B

Data block Data block Data block Key A, Access conditions, Key B

Data block Key A, Access conditions, Key B

Sector trailer

NUID5 uloˇzen´e na prvn´ıch ˇctyˇrech bajtech.

Tento identifik´ator je pouˇzit pro rozliˇsen´ı jednotliv´ych zaˇr´ızen´ı pˇri prov´adˇen´ı antikolizn´ıho protokolu. Podle dokumentace (NXP Semiconductors, 2011) nemus´ı b´yt tento identifik´ator nutnˇe unik´atn´ı.

V´yrobce pˇri produkˇcn´ım testu tento blok naprogramoval a jiˇz nen´ı moˇzn´e jeho obsah mˇenit nehledˇe na nastaven´ı pˇr´ıstupov´ych bit˚u (NXP Semiconductors, 2011).

2.2.2 Datov´ y blok

Pro uloˇzen´ı aplikaˇcn´ıch dat je moˇzn´e vyuˇz´ıvat datov´e bloky. V kaˇzd´em boku je k dispozici 16 bajt˚u, kter´e jsou ve v´ychoz´ı konfiguraci vyuˇziteln´e vˇsechny.

Datov´y blok m˚uˇze b´yt nakonfigurov´an do ˇctyˇrbajtov´eho reˇzimu naz´yvan´eho

” va-lue block“, pro tuto pr´aci vˇsak nen´ı tato vlastnost pˇr´ıliˇs d˚uleˇzit´a. V´ıce informac´ı lze nal´ezt v (NXP Semiconductors, 2011, s. 9).

5Non-Unique IDentifier

2.2.3 Konfiguraˇ cn´ı blok

Kaˇzd´y ze ˇsestn´acti sektor˚u obsahuje jeden konfiguraˇcn´ı blok naz´yvan´y sector trailer.

V tomto bloku jsou uloˇzeny ˇsifrovac´ı kl´ıˇce (Key A a Key B) a pˇr´ıstupov´a pr´ava k jednotliv´ym blok˚um dan´eho sektoru. Konfiguraˇcn´ı blok je zobrazen na obr´azku 2.2.

Pokud aplikace nevyuˇz´ıv´a kl´ıˇc B, tak je moˇzn´e na pˇr´ısluˇsn´e pamˇet’ov´e m´ısto po spr´avn´em nastaven´ı pˇr´ıstupov´ych pr´av uloˇzit aplikaˇcn´ı data. Data mohou b´yt uloˇzena tak´e na dev´at´em bajtu a podle (NXP Semiconductors, 2011) pro nˇe plat´ı stejn´a opr´avnˇen´ı jako pro bajty ˇc´ıslo 6, 7 a 8. Je nutn´e, aby byl vˇzdy dodrˇzen form´at konfiguraˇcn´ıch bit˚u pro nastaven´ı pˇr´ıstupov´ych pr´av.

2.3 Ochrana pamˇ eti

ˇSifrovac´ı kl´ıˇce A a B slouˇz´ı pouze k ˇsifrov´an´ı pˇrenosu, samotn´a data jsou v pamˇeti uloˇzena v podobˇe ˇcist´eho textu. Standard Mifare Classic umoˇzˇnuje pomoc´ı tˇr´ı bit˚u nastavit n´asleduj´ıc´ı opr´avnˇen´ı:

Na obr´azku 2.3 jsou zn´azornˇeny jednotliv´e bity konfiguraˇcn´ıho registru. Pro kaˇzd´y bit Ci,j plat´ı, ˇze i je pozice konfiguraˇcn´ıho bitu a j znaˇc´ı pˇr´ısluˇsnost k bloku.

Jednotliv´e bity jsou zde uloˇzeny v norm´aln´ı podobˇe jako Ci,j a v invertovan´e podobˇe Ci,j. Podle citeMF1S503x, 11 pˇri kaˇzd´em pˇr´ıstupu do pamˇeti intern´ı logika ovˇeˇruje strukturu. Pokud detekuje poruˇsen´ı form´atu, tak nevratnˇe zablokuje cel´y sektor.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Key A Access Bits Key B (optional)

C23 C22 C21 C20 C13 C12 C11 C10

2.4 Pˇr´ıkazy aplikaˇ cn´ıho protokolu

Pˇr´ıkazy (uveden´e v tabulce 2.2) aplikaˇcn´ıho protokolu byly z´ısk´any pomoc´ı re-verzn´ıho inˇzen´yrstv´ı a publikov´any v pr´aci (Nohl et al., 2008). V souˇcasn´e dobˇe je moˇzn´e z´ıskat detaln´ı popis vˇsech pˇr´ıkaz˚u i s pouˇzit´ym ˇcasov´an´ım z ofici´aln´ı do-kumentace (NXP Semiconductors, 2011).

Tabulka 2.2: Pˇr´ıkazy Mifare Classic Pˇr´ıkaz Hex Popis

AUTH A 60 xx CRC Autentizace bloku xx kl´ıˇcem B AUTH B 61 xx CRC Autentizace bloku xx kl´ıˇcem B READ 30 xx CRC Cten´ı bloku xxˇ

WRITE A0 xx CRC Z´apis bloku dat do bloku xx HALT 50 00 CRC Vypnut´ı transpond´eru

ACK A Potvrzeno

NACK 4 Zam´ıtnuto

NACK 5 Zam´ıtnuto (chyba pˇrenosu)

2.5 Zabezpeˇ cen´ı pˇrenosu

Norma ISO 14443A pˇredepisuje, ˇze za kaˇzd´ym datov´ym bajtem mus´ı n´asledovat jeden bit lich´e parity. Pokud komunikace jiˇz prob´ıh´a ˇsifrovanˇe, tak je paritn´ı bit zaˇsifrov´an stejn´ym bitem proudu kl´ıˇce jako n´asleduj´ıc´ı datov´y bit. V tomto form´atu