• No results found

Pˇred´av´an´ı hodnot z pracovn´ıch vl´aken pomoc´ı ud´alost´ı

1 def OnFinished(self, evt):

2 ’’’

3 Handles results from working threads

4 ’’’

5 message = None

6 icon = None

7

8 if evt._data:

9 message = "Transponder is vulnerable!"

10 icon = wx.ICON_WARNING

11

12 if evt.GetValue() == self.EVT_TEST_KEYS:

13 message = message + " Sector key = {}".format(evt._data)

14 else:

15 message = "Transponder is not vulnerable."

16 icon = wx.ICON_INFORMATION

17

18 # Show result in Alertbox

19 wx.MessageBox(message, "Test {} is finished".format(evt._value ), wx.OK | icon)

25 EVT_WORK = wx.PyEventBinder(myEVT_WORK, 1)

26

27 # Bind event to OnFinished method

28 self.Bind(EVT_WORK, self.OnFinished)

29 ...

4.7.2 Okno pro testov´ an´ı entropie PRNG

Uˇzivatel m˚uˇze prov´adˇet testy entropie PRNG z okna pˇredstavovan´eho tˇr´ıdou Prng-TestFrame.

V lev´e ˇc´asti tohoto okna se nach´az´ı graf vykreslen´y pomoc´ı knihovny matplotlib.

V prav´e ˇc´asti okna se nach´az´ı textov´e pole, do kter´eho je zad´an poˇcet sb´ıran´ych hodnot z gener´atoru pseudon´ahodn´ych ˇc´ısel (resp. poˇcet odes´ılan´ych poˇzadavk˚u).

Po dokonˇcen´ı bˇehu testu jsou z´ıskan´e hodnoty vykresleny do grafu (Obr´azek 4.4).

Obr´azek 4.4: Okno pro testov´an´ı entropie PRNG

4.7.3 Dialogy

Aplikace vyuˇz´ıv´a k z´ısk´av´an´ı hodnot mod´aln´ı dialogy, do kter´ych uˇzivatel vyplˇnuje potˇrebn´y ´udaj.

Tˇr´ıdy jednotliv´ych dialog˚u dˇed´ı od tˇr´ıdy wx.Dialog a jsou vol´any pomoc´ı me-tody dlg.ShowModal(). Po odesl´an´ı dialogu je do hlavn´ıho okna vr´acena n´avratov´a hodnota, kter´a je wx.ID OK v pˇr´ıpadˇe, ˇze byl formul´aˇr odesl´an. Dalˇs´ı informac´ı jsou samotn´a data, kter´a jsou z´ısk´ana pˇr´ımo z instance dialogu.

Tˇr´ıda DefaultKeyDialog slouˇz´ı k z´ısk´an´ı ˇc´ısla bloku, kter´e m´a b´yt pouˇzito pro spuˇstˇen´ı testu z DefaultKeysTest.

K z´ısk´an´ı hodnoty v´yzvy a spuˇstˇen´ı testu slab´ych implementac´ı slouˇz´ı dialog NackDialog.

5 Doporuˇ cen´ı pro zabezpeˇ cen´ı

Bohuˇzel z d˚uvodu kompatibility je prakticky t´emˇeˇr nemoˇzn´e odstranit vˇsechny ne-dostatky vedouc´ı ke zranitelnosti, ponˇevadˇz by bylo nutn´e vymˇenit vˇsechna zaˇr´ızen´ı nebo zav´est m´od kompatibility se starˇs´ımi transpond´ery a probl´em by tak pˇretrv´aval.

Teoreticky byly vˇsak zmˇeny ˇsifrovac´ıho sch´ematu pops´any v ˇc´asti 3.4.

Existuj´ı vˇsak urˇcit´e segmenty trhu, ve kter´ych je rozhoduj´ıc´ı pˇredevˇs´ım cena a bezpeˇcnost je aˇz na druh´em m´ıstˇe. Pro tento pˇr´ıpad zde byla seps´ana metodika, kter´a minimalizuje rizika spojen´a s nasazen´ım takto slabˇe zabezpeˇcen´e technologie.

Doporuˇcen´ı pro pouˇzit´ı technologie Mifare Classic jsou:

1. Pouˇzit´ı pro nekritick´e aplikace

Nasazen´ı ovˇeˇrov´an´ı uˇzivatel˚u pomoc´ı technologie Mifare Classic je nevhodn´e pro kritick´e aplikace – kl´ıˇcov´e objekty jako jsou napˇr´ıklad elektr´arny. Avˇsak pˇri vyuˇz´ıt´ı v m´enˇe kritick´ych aplikac´ıch, jako je napˇr´ıklad mˇestsk´a hromadn´a doprava, nemus´ı b´yt vyˇsˇs´ı m´ıra zranitelnosti takov´ym probl´emem.

V pˇr´ıpadˇe mˇestsk´e hromadn´e dopravy nen´ı finanˇcn´ı ztr´ata zp˚usoben´a tech-nicky vybaven´ym ˇcern´ym pasaˇz´erem ani zdaleka tak vysok´a, jako jsou n´aklady spojen´e se zmˇenou vyuˇz´ıvan´e technologie. Nav´ıc je nutn´e poˇc´ıtat s vyˇsˇs´ı cenou bezpeˇcnˇejˇs´ı technologie.

2. Nastaven´ı opr´avnˇen´ı

Minimalizovat riziko pr˚uniku do syst´emu lze spr´avn´ym nastaven´ım uˇzivatelsk´ych opr´avnˇen´ı.

Nejjednoduˇsˇs´ı a z´aroveˇn nejv´ıce n´achyln´y pˇr´ıstup je nastavit do pamˇeti karty jeden identifik´ator (pˇr´ıpadnˇe identifik´ator opr´avnˇen´ı), kter´ym se uˇzivatel´e bu-dou prokazovat. Bohuˇzel pokud ´utoˇcn´ık z´ısk´a tento identifik´ator z jedn´e karty, tak dojde ke kompromitaci cel´eho syst´emu, ˇci jeho ˇc´asti dan´e opr´avnˇen´ım–

napˇr´ıklad bude m´ıt neomezen´y pˇr´ıstup po cel´em objektu.

Na kartu je pak vhodn´e uloˇzit pouze identifik´ator uˇzivatele, kter´y je pˇred´an ˇcteˇckou vyˇsˇs´ı vrstvˇe. Tato vrstva se postar´a d´ale o autentizaci uˇzivatele, napˇr´ıklad

oproti datab´azov´emu serveru, a pˇr´ıpadnˇe d´ale pˇriˇrad´ı urˇcit´a opr´avnˇen´ı. N´aslednˇe je provedena akce na z´akladˇe pˇriˇrazen´ych opr´avnˇen´ı a typu zaˇr´ızen´ı. Tento pˇr´ıstup je zn´azornˇen na obr´azku 5.1.

Autentizace s ID

Databáze

Transpondér ID

Oprávnění Čtečka

Aplikační logika Obsluha hw

ID akce

Obr´azek 5.1: Autorizace uˇzivatele pomoc´ı RFID karty

3. Filtrov´an´ı vstup˚u

Je nutn´e uplatˇnovat stejn´e filtrov´an´ı vstup˚u do datab´aze, jak z webov´e apli-kace, tak z RFID ˇcteˇcek. Pokud ´utoˇcn´ık m˚uˇze manipulovat s pamˇet´ı karty, tak m˚uˇze b´yt schopen pˇridat do jej´ı pamˇeti nebezpeˇcn´y k´od.

4. Omezen´ı dosahu

R´adiov´e ˇcteˇcky je vhodn´e nastavit tak, aby byl omezen jejich vys´ılac´ı dosah a to nastaven´ım nejmenˇs´ıho moˇzn´eho vys´ılac´ıho v´ykonu, pˇr´ıpadnˇe vhodn´ym um´ıstˇen´ım ant´en. Takto lze ´utoˇcn´ıkovi zt´ıˇzit moˇznosti odposlechu a pˇr´ıpadn´e dalˇs´ı ´utoky.

5. Uloˇzen´ı dat

Je nutn´e peˇclivˇe zv´aˇzit kolik dat ukl´adat v pamˇeti karty. Typicky by se mˇelo jednat o nejmenˇs´ı moˇzn´e mnoˇzstv´ı informace, ponˇevadˇz v pˇr´ıpadˇe zraniteln´e technologie lze tyto informace povaˇzovat za dostupn´e ´utoˇcn´ıkovi.

Dalˇs´ı informace je pak vhodn´e v pˇr´ıpadˇe nutnosti naˇc´ıtat z datab´aze, nebo jin´eho vzd´alen´eho a zabezpeˇcen´eho uloˇziˇstˇe.

6. St´ınˇen´ı

Ve vˇsech ´utoc´ıch na samotn´y transpond´er mus´ı m´ıt ´utoˇcn´ık minim´alnˇe ˇcasovˇe omezen´y pˇr´ıstup k transpond´eru. Pokud nen´ı schopen nasb´ırat urˇcit´e mnoˇzstv´ı dat z komunikace s ˇcipem karty, tak ´utok nem˚uˇze prov´est.

Z tohoto d˚uvodu je velice ´uˇcinnou obranou prost´e elektromagnetick´e st´ınˇen´ı karty. S rozˇs´ıˇren´ım pas˚u s RFID ˇcipem nen´ı probl´em poˇr´ıdit takto st´ınˇen´e pouzdro na karty.

7. Zmˇena technologie

Pˇrechod na bezpeˇcnˇejˇs´ı technologii je logick´ym krokem k odstranˇen´ı zranitel-nosti.

Na stranˇe ˇcteˇcky a aplikaˇcn´ı logiky m˚uˇze b´yt pˇrechod pomˇernˇe bezbolestn´y, ponevadˇz existuj´ı ˇcteˇcky operuj´ıc´ı na v´ıce standardech a ve st´avaj´ıc´ı aplikaci je pak nutn´e pouze pˇridat obsluhu tˇechto poˇzadavk˚u.

Postupnˇe je pak moˇzn´e vymˇeˇnovat transpond´ery a migrovat kompletnˇe smˇerem k bezpeˇcnˇejˇs´ı technologii.

8. Zmˇena implicitn´ıch nastaven´ı

Nen´ı vhodn´e spol´ehat na implicitn´ı nastaven´ı od v´yrobce zaˇr´ızen´ı, protoˇze tato konfigurace m˚uˇze b´yt dostupn´a i ´utoˇcn´ıkovi (Thornton – Sanghera, 2011).

Nejlepˇs´ım ˇreˇsen´ım je zmˇenit veˇskerou konfiguraci pˇresnˇe na m´ıru dan´e aplikaci.

6 Z´ avˇ er

V t´eto pr´aci byly prozkoum´any dosud publikovan´e ´utoky na technologii Mifare Clas-sic a to zejm´ena ty c´ılen´e na samotn´y transpond´er.

Po proveden´ı anal´yzy byly pops´any hlavn´ı nedostatky v n´avrhu vedouc´ı ke zra-nitelnosti, bylo naznaˇceno moˇzn´e zneuˇzit´ı a na z´akladˇe z´ıskan´ych informac´ı byla navrˇzena metodika pro testov´an´ı transpond´er˚u.

V praktick´e ˇc´asti byl navrˇzen a vytvoˇren v jazyce Python s pouˇzit´ım knihovny Libnfc n´astroj pro testov´an´ı transpond´eru na dan´e nedostatky. Tato aplikace byla vyv´ıjena pro zaˇr´ızen´ı PN532 NFC/RFID controller breakout board, ale mˇelo by b´yt moˇzn´e jej pouˇz´ıt s libovolnou ˇcteˇckou, kter´a je kompatibiln´ı s knihovnou Libnfc.

Z d˚uvodu obt´ıˇzn´eho dodrˇzov´an´ı ˇcasov´ych interval˚u v bˇeˇzn´em operaˇcn´ım syst´emu by bylo vhodn´e nam´ısto knihovny Libnfc zaˇradit mezi osobn´ı poˇc´ıtaˇc a ˇcteˇcku jeˇstˇe mikrokontrol´er, kter´y by prov´adˇel ˇcasovˇe kritick´e operace. V souˇcasn´em stavu je napˇr´ıklad moˇzn´e dos´ahnout konstatn´ı hodnoty v´yzvy pˇrinejlepˇs´ım v 35 % pˇr´ıpad˚u a to m˚uˇze v´est k delˇs´ımu bˇehu testu, ponˇevadˇz mus´ı b´yt odesl´ano mnohem v´ıce poˇzadavk˚u.

V r´amci v´yvoje n´astroje byly implementov´any funkce pro bˇeˇznou komunikaci s transpond´erem (v´ybˇer, autentizace, ˇcten´ı a z´apis) a funkce pro samotn´e testov´an´ı zranitelnosti transpond´eru (entropie PRNG, implicitn´ı kl´ıˇce, vadn´e implementace).

Vˇsechny tyto funkce je moˇzn´e pouˇz´ıvat z grafick´eho uˇzivatelsk´eho rozhran´ı n´astroje.

Byly navrˇzeny metody pro odstranˇen´ı zranitelnosti, ale lze je jen obt´ıˇznˇe apliko-vat kv˚uli obt´ıˇzn´emu zachov´an´ı zpˇetn´e kompatibility a nezanedbateln´ym finanˇcn´ım n´aklad˚um (plat´ı zejm´ena pro nedostatky v samotn´e ˇsifrovac´ı funkci).

Z tohoto d˚uvodu byly nav´ıc doporuˇceny obecn´e z´asady pro pouˇzit´ı t´eto techno-logie tak, aby byla pˇr´ıpadn´a bezpeˇcnostn´ı rizika minimalizov´ana.

Literatura

Courtois, N. T. THE DARK SIDE OF SECURITY BY OBSCURITY

and Cloning MiFare Classic Rail and Building Passes, Anywhere, Anytime.

Insticc-Inst Syst Technologies Information Control & Communication, 2009.

WOS:000282088500052. ISBN 978-989-674-005-4.

Garcia, F. D. et al. Dismantling MIFARE Classic. In Jajodia, S. – Lopez, J.

(Ed.) Computer Security - Esoric 2008, Proceedings, 5283. Springer-Verlag Berlin, 2008. s. 97–114. ISBN 978-3-540-88312-8, WOS:000262462900007.

Garcia, F. D. et al. Wirelessly Pickpocketing a Mifare Classic Card. In Proceedings of the 2009 30th Ieee Symposium on Security and Privacy. Los Alamitos: Ieee Computer Soc, 2009. s. 3–15. ISBN 978-0-7695-3633-0, WOS:000273336900001.

ISO 14443-3. Identification cards – Contactless integrated circuit(s) cards – Proxi-mity cards - Part 3: Initialization and anticollision. ˇC. ISO 14443. ISO, Geneva, Switzerland, 2011.

Koning Gans, G. – Hoepman, J.-H. – Garcia, F. D. A Practical Attack on the MIFARE Classic. In Proceedings of the 8th IFIP WG 8.8/11.2 International Conference on Smart Card Research and Advanced Applications, CARDIS ’08, s.

267–282, Berlin, Heidelberg, 2008. Springer-Verlag. ISBN 978-3-540-85892-8.

Nohl, K. Cryptanalysis of crypto-1. Computer Science Department University of Virginia, White Paper. 2008.

Nohl, K. et al. Reverse-engineering a Cryptographic RFID Tag. In Proceedings of the 17th Conference on Security Symposium, SS’08, s. 185–193, Berkeley, CA, USA, 2008. USENIX Association.

NXP Semiconductors. MF1S503x: MIFARE Classic 1K - Mainstream contact-less smart card IC for fast and easy solution development. NXP Semiconductors, 3.1 edition, February 2011.

NXP Semiconductors. AN10833: MIFARE Type Identification Procedure. NXP Semiconductors, 3.5 edition, March 2014.

NXP Semiconductors. AN10927: MIFARE and handling of UIDs. NXP Semi-conductors, 3.1 edition, October .

Thornton, F. – Lanthem, C. RFID Security. Syngress, May 2006. ISBN 9780080489650.

Thornton, F. – Sanghera, P. How to Cheat at Deploying and Securing RFID.

Syngress, April 2011. ISBN 9780080556895.

A Obsah pˇriloˇzen´ eho CD

Na pˇriloˇzen´em CD je uloˇzen text pr´ace ve form´atu PDF. D´ale jsou v adres´aˇr´ıch obsaˇzeny:

• dist – pˇreloˇzen´a aktu´aln´ı verze ˇc´asti aplikace naps´an´e v jazyce C

• src c – zdrojov´e k´ody ˇc´asti aplikace naps´an´e v jazyce C

• src python – zdrojov´e k´ody ˇc´asti aplikace naps´an´e v jazyce Python

• libs – pouˇzit´e knihovny, kter´e nejsou dostupn´e z bal´ıˇckovac´ıho syst´emu (Libnfc 1.7.0, crapto)

B Postup pˇreloˇzen´ı Libnfc

Pro pˇreloˇzen´ı knihovny Libnfc je nutn´e prov´est n´asleduj´ıc´ı kroky:

1. Rozbalen´ı zdrojov´ych k´od˚u knihovny tar -xvzf libnfc-1.7.0.tar.gz

cd libnfc-1.7.0

2. Konfigurace Libnfc pro PN532 a UART

./configure –with-drivers=pn532 uart –enable-serial-autoprobe 3. Pˇreklad a instalace

make clean make

make install

Po proveden´ı pˇredchoz´ıch krok˚u lze funkˇcnost ovˇeˇrit pomoc´ı pˇr´ıkazu nfc-poll s opr´avnˇen´ımi superuˇzivatele (root).