ČESKÉ%VYSOKÉ%UČENÍ%TECHNICKÉ'V'PRAZE! FAKULTA&INFORMAČNÍCH&TECHNOLOGIÍ! ! ! ZADANÍ!DIPLOMOVÉ!PRÁCE! Název:
Analýza zabezpečení bezkontaktních čipových karet
Student:
Tomáš Fornůsek
Vedoucí:
Ing. Jiří Buček
Studijní program:
Informatika
Studijní obor:
Počítačová bezpečnost (magisterský)
Katedra:
Katedra počítačových systémů
Platnost zadání:
do konce letního semestru 2013/14
Pokyny pro vypracovaní Seznamte se s principy bezkontaktních čipových karet a jejich zabezpečení. Zaměřte se na bezkontaktní čipové karty podle normy ISO/IEC 14443 a bezkontaktní platební karty. Prostudujte již realizované elektronické útoky na bezkontaktní čipové a platební karty. Implementujte vybraný typ útoku a navrhněte možná protiopatření. Zhodnoťte proveditelnost útoku v praxi a účinnost navržených protiopatřeních.
Seznam odborné literatury Dodá vedoucí práce
!
!
!
!
ČESKÉ%VYSOKÉ%UČENÍ%TECHNICKÉ'V'PRAZE! FAKULTA&INFORMAČNÍCH&TECHNOLOGIÍ! KATEDRA&POČÍTAČOVÝCH+SYSTÉMŮ! !!
Diplomová práce
Analýza zabezpečení bezkontaktních čipových karet Bc. Tomáš Fornůsek
Vedoucí práce: Ing. Jiří Buček 10. prosinec 2012
Poděkování Chtěl bych poděkovat svému vedoucímu práce Ing. Jiřímu Bučkovi za cenné připomínky a rady a dále bych chtěl poděkovat svým rodičům za podporu při psaní této práce.
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací.
Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č.121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona.
V Praze dne 25.5.2010
…………………………………………………………
!
!
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
České!vysoké!učení!technické!v!Praze! Fakulta!informačních!technologií! ©!2012!Tomáš!Fornůsek.!Všechna!práva!vyhrazena.!! Tato%práce%vznikla%jako%školní%dílo%na%Českém%vysokém%učení%technickém%v%Praze,% Fakultě%informačních%technologií.%Práce%je%chráněna%právními%předpisy%a% mezinárodními%úmluvami%o%právu%autorském%a%právech%souvisejících%s%právem% autorským.%K%jejímu%užití,%s%výjimkou%bezúplatných%zákonných%licencí,%je%nezbytný% souhlas%autora.! Odkaz na tuto práci Tomáš!Fornůsek.!Analýza%zabezpečení%bezkontaktních%čipových%karet:%Diplomová% práce.!Praha:!ČVUT!v!Praze, Fakulta informačních technologií, 2012.
Abstrakt Tato diplomová práce se zabývá problematikou bezpečnosti u bezkontaktních RFID systémů podle normy ISO/IEC 14443. Práce mapuje hrozby a realizované útoky na tyto RFID systémy a doporučuje případná protiopatření. Její součástí je i implementace přepojovacího (relay) útoku, pomocí kterého je možné prodloužit komunikaci mezi čtečkou a kartou až na 300 metrů a dle zjištěných poznatků byl doporučen postup protiopatření. V poslední části se práce zabývá analýzou bezkontaktní platební karty VISA PayWave.
Klíčová slova RFID, přepojovací útok, distance-bounding protokol, MIFARE Classic, MIFARE DESFire, Java Card, klasifikace RFID útoků
Abstract This thesis deals with issues of security of contactless RFID systems, according to ISO/IEC 14443 standard. The threats and existing attacks against these RFID systems are described and possible countermeasures are introduced. Relay attack, which enables to extend the communication between card and reader up to 300 meters, is implemented and countermeasures are suggested according to the findings. Finally, the contactless payment card VISA Paywave is analyzed.
Key words RFID, relay attack, distance-bounding protocol, MIFARE Classic, MIFARE DESFire, Java Card, classification of RFID attacks
xi
!
Obsah! 1! Úvod&............................................................................................................................&1! 2! Systém&RFID&.............................................................................................................&3! 2.1! Bezkontaktní&čipové&karty&......................................................................................&5!
3! Norma&ISO/IEC&14443&...........................................................................................&7! 3.1! Část&1:&fyzikální&charakteristiky&...........................................................................&7! 3.2! Část&2:&radiofrekvenční&výkonové&rozhraní&a&signálové&rozhraní&............&7! 3.2.1! Signálové!rozhraní!typu!A!..............................................................................................!8! 3.2.2! Signálové!rozhraní!typu!B!..............................................................................................!9! 3.3! Část&3:&Inicializace&a&antikolize&...........................................................................&10! 3.3.1! Inicializace!a!antikolize!u!typu!A!...............................................................................!10! 3.3.2! Inicializace!typ!B!...............................................................................................................!13! 3.4! Část&4:&Protokol&přenosu&.......................................................................................&15! 3.4.1! Aktivační!postup!u!typu!A!............................................................................................!15! 3.4.2! Aktivační!postup!u!typu!B!............................................................................................!17! 3.4.3! Přenos!dat!............................................................................................................................!17! 3.4.4! Zabezpečený!přenos!dat!...............................................................................................!18!
4! RFID&systémy&mimo&normu&ISO/IEC&14443&...............................................&21! 5! Transpondéry&dle&normy&ISO/IEC&14443,&typ&A&.......................................&21! 5.1! MIFARE&........................................................................................................................&21! 5.1.1! MIFARE!Ultralight!............................................................................................................!21! 5.1.2! MIFARE!Classic!..................................................................................................................!22! 5.1.3! MIFARE!Plus!.......................................................................................................................!24! 5.1.4! MIFARE!DESFire!...............................................................................................................!25! 5.2! SmartMX&......................................................................................................................&25! 5.3! Java&Card&.....................................................................................................................&26! 5.4! VISA&PayWave&...........................................................................................................&27!
6! Klasifikace&RFID&útoků&......................................................................................&29! 6.1! Fyzická&vrstva&............................................................................................................&31! 6.1.1! Dočasné!a!trvalé!zničení!transpondéru!..................................................................!31! 6.1.2! Přepojovací!(relay)!útok!...............................................................................................!31!
xiii
6.2! Protiopatření&proti&útokům&na&fyzické&vrstvě&...............................................&32! 6.3! Síťová&vrstva&..............................................................................................................&32! 6.3.1! Útoky!na!transpondér!....................................................................................................!32! 6.3.2! Útok!na!terminál!...............................................................................................................!33! 6.4! Protiopatření&proti&útokům&na&síťové&vrstvě&.................................................&33! 6.5! Aplikační&vrstva&........................................................................................................&34! 6.5.1! Neoprávněné!čtení!...........................................................................................................!34! 6.5.2! Neoprávněná!modifikace!..............................................................................................!34! 6.5.3! Middleware!attack!...........................................................................................................!34! 6.6! Protiopatření&proti&útokům&na&aplikační&vrstvě&...........................................&35! 6.7! Strategická&vrstva&....................................................................................................&35! 6.7.1! Průmyslová!špionáž!........................................................................................................!35! 6.7.2! Sociální!inženýrství!.........................................................................................................!36! 6.7.3! Zisk!osobních!informací!................................................................................................!36! 6.7.4! Cílené!bezpečnostní!hrozby!.........................................................................................!36! 6.8! Protiopatření&proti&útokům&na&strategickou&vrstvu&....................................&36! 6.9! Víceúrovňové&útoky&................................................................................................&37! 6.9.1! Překryv!kanálů!..................................................................................................................!37! 6.9.2! Denial!of!Service!...............................................................................................................!37! 6.9.3! Analýza!komunikace!.......................................................................................................!38! 6.9.4! Kryptografické!útoky!......................................................................................................!38! 6.9.5! Útok!na!postranní!kanály!..............................................................................................!38! 6.9.6! Opakovaní!komunikace!.................................................................................................!40! 6.10! Protiopatření&před&víceúrovňovými&útoky&..................................................&40!
7! Příklady&známých&realizovaných&útoků&......................................................&43! 7.1! Útoky&na&CRYPTOf1&.................................................................................................&43! 7.2! Útoky&na&MIFARE&DESFire&.....................................................................................&45! 7.3! Útoky&na&Google&Wallet&..........................................................................................&46! 7.4! Útoky&na&VISA&PayWave&.........................................................................................&46!
8! Analýza&a&návrh&přepojovacího&útoku&.........................................................&49! 8.1! RFID&rozhraní&............................................................................................................&49! 8.1.1! Modul!pro!bezkontaktní!komunikaci!h!PN532!....................................................!50! 8.2! Řídící&logika&...............................................................................................................&52!
xiv
8.2.1! Mikrořadič!ATmega1280!..............................................................................................!52! 8.2.2! Mikrořadič!AT32UC3A3256!........................................................................................!53! 8.3! Bezdrátové&komunikační&rozhraní&....................................................................&54! 8.3.1! Bluetooth!modul!OBS410i!............................................................................................!54!
9! Realizace&přepojovacího&útoku&......................................................................&57! 9.1! RFID&bluetooth&relay&device&.................................................................................&57! 9.2! Advanced&RFID&bluetooth&relay&device&.............................................................&58!
10! Testování&a&měření&..........................................................................................&61! 10.1! Čtení&dat&z&transpondéru&....................................................................................&61! 10.2! Zápis&dat&do&transpondéru&.................................................................................&63!
11! Protiopatření&f&DistancefBounding&protocol&..........................................&65! 12! Analýza&VISA&PayWave&České&spořitelny&.................................................&69! 13! Závěr&.....................................................................................................................&71! Literatura&......................................................................................................................&73! Seznam&zkratek&..........................................................................................................&79! Příloha&A&........................................................................................................................&81! Příloha&B&........................................................................................................................&85! Příloha&C&........................................................................................................................&87! Obsah&přiloženého&CD&..............................................................................................&89! !
xv
!
Seznam obrázků Obrázek 2.1: Schematické znázornění RFID systému [1] ........................................ 4! Obrázek 2.2: Indukční přenos energie ze čtečky do transpondéru a signálu pro zátěžovou modulaci [1] ....................................................................................... 4! Obrázek 2.3: Schématické znázornění norem pro čipové karty ................................ 5! Obrázek 2.4: Rozdělení bezkontaktních čipových karet dle funkcionality a velikosti uživatelské paměti [1] .......................................................................... 6! Obrázek 3.1: Modulace komunikace mezi terminálem a transpondérem dle ........... 8! Obrázek 3.2: Modulace komunikace mezi terminálem a transpondérem dle ........... 9! Obrázek 3.3: Antikolizní smyčka [4] ...................................................................... 11! Obrázek 3.4: Přechod mezi stavy dle normy ISO/IEC 14443-3 pro typ A [4] ....... 12! Obrázek 3.5: Přechod mezi stavy dle normy ISO/IEC 14443-3 pro typ B [4] ....... 14! Obrázek 3.6: Aktivační procedura typu A [5] ......................................................... 15! Obrázek 3.7: OSI model [5] .................................................................................... 17! Obrázek 3.8: Postup zabezpečení APDU před neoprávněnou manipulací [7]........ 19! Obrázek 3.9: Postup zabezpečení obsahu APDU před neoprávněným čtením [7] . 19! Obrázek 5.1: Organizace paměti MIFARE Classic [12] ......................................... 23! Obrázek 5.2: Schematické znázornění šifry Crypto-1 [13] ..................................... 24! Obrázek 6.1: Upravený vrstevnatý OSI model [22]................................................ 29! Obrázek 6.2: Klasifikace útoků. [22] ...................................................................... 30! Obrázek 6.3: Schématické znázornění přepojovacího útoku [23] .......................... 32! Obrázek 6.4: Differential power analysis [26] ........................................................ 39! Obrázek 6.5: Schématické znázornění SPA útoku na RSA [27] ............................ 40! Obrázek 7.1: Fyzická realizace CMOS hradel [29] ................................................ 44! Obrázek 9.1: RFID bluetooth relay device ............................................................. 58!
xvii
Obrázek 9.2: Advanced RFID bluetooth relay device .............................................59! Obrázek 11.1: Distance bounding protocol [39]......................................................65! Obrázek 11.2: Realizace D-Bp dle Gerhard P. Hancke, Markus G. Kuhn [40] ......67!
xviii
1 Úvod V dnešní moderní době se každým dnem setkáváme s aplikacemi, které využívají RFID (Radio-Frequency Identification) technologie, ta může v nejjednodušší podobě sloužit jako elektronické zabezpečení zboží, které známe ze supermarketů, přes bezkontaktní platební karty, až po mikrořadiče schopné vykonávat Java instrukce. Díky bezkontaktnímu rozhraní je možné realizovat veškerou komunikaci pomocí radiových vln na různé vzdálenosti. To má oproti konvenčnímu kontaktnímu rozhraní dvě hlavní výhody. První výhodou je, že komunikační rozhraní nevyžaduje vnější metalické kontakty, a tak může být celé komunikační rozhraní chráněno před vnějšími vlivy. Napájení je možné realizovat pomocí magnetické indukce nebo pomocí interních baterií. Druhá hlavní výhoda je možnost komunikace na dálku, tím odpadá nutnost vkládat kartu přesně do čtečky, což usnadňuje například automatizované (strojové) čtení. Tato druhá technologická výhoda ovšem představuje nové bezpečnostní riziko v aplikací a používaní. Bohužel většina uživatelů si neuvědomuje nově vzniklá rizika, která jsou spojena s využíváním moderních technologii, kam patří i bezkontaktní čipové karty. Například je možné z platebních bezkontaktních karet bez vědomí uživatele přečíst číslo karty nebo jméno vlastníka. Tato rizika si ovšem často neuvědomují ani architekti systému, kteří například často využívají zastaralé technologie nebo je nevhodně používají. Tato práce se proto zabývá bezpečnostní analýzou bezkontaktních čipových karet a má za cíl zmapovat dosavadní útoky na nejrozšířenější technologie a realizaci přepojovacího útoku s návrhem protiopatření.
Analýza zabezpečení bezkontaktních čipových karet | 1
2 Systém RFID RFID systémy byly původně vyvinuty, jak název vypovídá, pro identifikaci zboží a přepravních kontejnerů jako náhrada čárových kódů (viz tabulka 1). Následně se systém prosadil i v jiných oblastech a RFID technologie začala postupně nahrazovat kontaktní technologie. Tabulka 1: porovnání technologií [1] Technologie/! vlastnosti! Množství!dat! (byte)! Strojová! čitelnost! Čitelnost!lidmi! Vliv!nečistot!a! vlhkosti! Vliv!polohy!a! směru! Neoprávněné! kopírování!a! modifikace! Maximální! vzdálenost!!
Čárový!kód!
OCR!
Čipová!karta!
RFID!systém!
1!h!100!
1!h!100!
16!h!64K!
16!h!64K!
Dobrá!
Dobrá!
Dobrá!
vynikající!
limitovaná! Velmi!vysoká!
jednoduché! Velmi!vysoká!
nízká!
nízká!
nemožné! Nemožné! Možný!vliv! Bez!vlivu! (kontakty)! nesměrovatelné! Bez!vlivu!
jednoduché!
Jednoduché!
komplikované! až!nemožné!
komplikované! až!nemožné!
0!h!50!cm!
<1!cm! (scanner)!
Přímý!kontakt!
0!h!5!m! (mikrovlnná)!
Na obrázku 2.1 je znázorněno schématické zapojení dvou hlavních komponent: -
Transpondér RFID systému, podobně jako v kontaktních systémech, představuje tu část, která je nosičem informace, a může tak sloužit například k prokazování
povolení
vstupu
nebo
k výpočtu
digitálního
podpisu.
Transpondéry mají nejčastěji podobu karet, ale mohou byt realizovány i jako podkožní implantáty nebo přívěsky na klíče. -
Terminál (čtečka) se stará o komunikaci s transpondérem, který v závislosti na konstrukci umožňuje číst nebo i zapisovat data. Terminál může být také v některých případech zdrojem napájení nebo hodinového signálu.
Analýza zabezpečení bezkontaktních čipových karet | 3
Obrázek 2.1: Schematické znázornění RFID systému [1]
Napájení transpondérů lze realizovat dvěma hlavními metodami. První možnost je realizovat napájení pomocí interních baterií - tzv. aktivní transpondéry. Druhá možnost napájení je pomocí indukční vazby, tento typ pasivního transpondéru tak nepotřebuje interní zdroj energie, tu čerpá z elektromagnetického pole čtečky. Nevýhoda pasivních transpondérů oproti aktivním je kratší dosah komunikace a nižší výpočetní výkon. Obrázek 2.2 znázorňuje přenos energie ze čtečky do transpondéru.
Magnetické pole
Transpondér Signal pro kódování komunikace z transpondéru
te ka
Obrázek 2.2: Indukční přenos energie ze čtečky do transpondéru a signálu pro zátěžovou modulaci [1]
Je patrné, že kontaktní a bezkontaktní systémy se mimo způsob komunikace od sebe téměř neodlišují. To dokazuje i obrázek 2.3, kde jsou znázorněny normy, které definují jak způsob komunikace, příkazy, tak i další parametry. Z obrázku vyplývá, že některé normy jsou společné pro kontaktní i bezkontaktní způsob komunikace.
4 | Analýza zabezpečení bezkontaktních čipových karet
V práci se budeme dále zabývat převážně podmnožinou RFID systémů – bezkontaktními čipovými kartami, konkrétně normou ISO/IEC14443 variantou A, která patří k nejpoužívanějším v oblasti bezkontaktních čipových karet. ID-1 karty ISO 7810
ipové karty ISO 7818
Bezkontaktní ipové karty
karty (PICC) s blízkou vazbou ISO 14443
karty (CICC) s t snou vazbou ISO 10536
Pam ové karty
Procesorové karty
Procesorové karty
Pam ové karty 13.56 MHz
Kontaktní rozhraní
Procesorové karty 13.56 MHz
karty se (VICC) vzdálenou vazbou ISO 15693
karty s (RICC) vazbou na dálku ISO ???
Pam ové karty 13.56 MHz
Pam ové karty (baterieové) 2.4/5.8 GHz
Bezkontaktní rozhraní
Transpondery s kontaktním i bezkontatkním rozhraním
Obrázek 2.3: Schématické znázornění norem pro čipové karty (kontaktní i bezkontaktní) [1]
2.1 Bezkontaktní čipové karty V předchozí kapitole byly popsány RFID systémy jako celek. Mohou mít podobu jednoduchých 1 bitových EAS1 systémů, nebo systémů pro identifikaci zvířat (jehož transpondéry jsou tak malé, že mohou být umístěny pod kůži zvířete), nebo složitých systémů, které používají transpondéry s podporou kryptografických operací, jako jsou právě bezkontaktní čipové karty. Na obrázku 2.4 je znázorněna klasifikace od jednoduchých systémů až po high-end modely. Z obrázku 2.4 je také patrné, že nejvyspělejší karty a současně i karty s největší kapacitou jsou karty dle normy
1
Electronic article surveillance – ochrana zboží před krádeží
Analýza zabezpečení bezkontaktních čipových karet | 5
ISO/IEC14443,
která
patří
také
v oblasti
bezkontaktních
čipových
karet
k nejpoužívanějším.
ipové karty s OS, kryptografickým koprocesorem
ISO 14443 s kontaktním i bezkontaktním rozhraním
Funkce
ipové karty s OS
Autentizace, šifrování (stavový automat)
Pasivní transpondéry 135 kHz, 13.56 MHz 868/915 Mhz, 2.45 GHz ISO 15693, ISO 18000 ISO 14223
Antikolize
ISO 14443 bezkontaktní ipové karty 13.56 MHz
aktivní transpondéry 868/915 MHz, 2.45 GHz, ISO 18000 tení - zápis
Pouze ke tení
EAS
Fixn kodované transpondéry
1 1
4
16
64
512
2k
8k
32 k
128 k
Velikost pam ti (bytech)
Obrázek 2.4: Rozdělení bezkontaktních čipových karet dle funkcionality a velikosti uživatelské paměti [1]
6 | Analýza zabezpečení bezkontaktních čipových karet
3 Norma ISO/IEC 14443 ISO/IEC 14443 je jednou z řady mezinárodních norem, které popisují parametry identifikačních karet, uvedených v ISO/IEC 7810 [2]. Celkem se skládá ze 4 částí a od druhé části je norma rozdělena na dvě části, pro typ A a typ B. Jednotlivé části pokrývají: •
Část 1: fyzikální charakteristiky
•
Část 2: radiofrekvenční výkonové rozhraní a signálové rozhraní
•
Část 3: Inicializace a antikolize
•
Část 4: Protokol přenosu
Text kapitoly 3 vychází z norem [2, 3, 4, 5] [2] [3] [4] [5]
3.1 Část 1: fyzikální charakteristiky První část přesně definuje fyzikální vlastnosti a podobu transpondéru. Některé základní vlastnosti, jako jsou rozměry a všeobecné fyzikální vlastnosti přebírá z normy ISO/IEC 7810. Navíc tato část definuje požadavky na odolnost vůči různým vnějším vlivům, jako je například působení rentgenového a ultrafialového záření, magnetického a elektrického pole. [2]
3.2 Část 2: radiofrekvenční výkonové rozhraní a signálové rozhraní Druhá část definuje frekvenci pracovního radiofrekvenčního pole fc na 13,56 MHz a rozsah intenzity pracovního magnetického pole v rozmezí 1,5-7,5 A/m. Dále také definuje charakteristiky signálového rozhraní. Signálové rozhraní definuje bitovou reprezentaci přenášených dat a rychlost přenosu. Tato část normy definuje dva typy signálového rozhraní: typ A a typ B 1. [3]
1
Pro specifikaci daného typu komunikačního rozhraní lze normy rozdělit na
ISO/IEC 14443-A respektive ISO/IEC 14443-B.
Analýza zabezpečení bezkontaktních čipových karet | 7
3.2.1 Signálové.rozhraní.typu.A. Při komunikaci z terminálu do transpondéru se používá 100% modulace amplitudovým klíčováním s bitovým kódováním modifikované Millerovy metody. Při komunikaci z transpondéru do terminálu se používá zátěžová modulace OOK používající pomocnou nosnou fc/16 (~847KHz) s bitovým kódováním Manchester. Princip je znázorněn na obrázku 3.1. [3] Počáteční rychlost komunikace je dle normy stanovena na 106 Kb/s. Následně se může komunikační rychlost dle použité technologie měnit. V praxi se používají rychlosti 106 Kb/s, 212 Kb/s a 424 Kb/s. [3]
ASK 100 % Modifikovaná Millerova metoda, 106 kbit/s
Modulace zát že pomocná nosná fc/ 16 OOK Metoda Manchester, 106 kbit/s
Obrázek 3.1: Modulace komunikace mezi terminálem a transpondérem dle ISO/IEC 14443-A [3]
8 | Analýza zabezpečení bezkontaktních čipových karet
3.2.2 Signálové.rozhraní.typu.B. Transpondér typu B používá pro komunikaci s terminálem zátěžovou modulaci BPSK s pomocnou nosnou fc/16 (~847 KHz) s kódováním NRZ a NRZI. V opačném směru se používá 10% modulace amplitudovým klíčováním s bitovým kódováním NRZ. Princip komunikace je znázorněn na obrázku 3.2. Počáteční přenosová rychlost je stejná jako u typu A – 106 Kb/s. [3]
ASK 10% NRZ, 106 kbit/s
Modulace zát že pomocná nosná fc / 16 BPSK NRZ-L, 106 kbit/s
Obrázek 3.2: Modulace komunikace mezi terminálem a transpondérem dle ISO/IEC 14443-B [3]
Analýza zabezpečení bezkontaktních čipových karet | 9
3.3 Část 3: Inicializace a antikolize Předposlední část normy ISO/IEC 14443 definuje způsob navázání komunikace transpondéru s terminálem a případné řešení kolizí v případě, že se v dosahu terminálu nalézá více transpondérů současně. Inicializace je proces, při kterém se dostane transpondér do pracovního pole terminálu. Po dokončení inicializace se transpondér uvede do pohotovostního režimu. V pohotovostním režimu transpondér vyčkává na specifickou výzvu od terminálu, která obsahuje jednoznačný identifikátor tzv. UID. Pokud se v pracovním poli terminálu nachází větší počet transpondérů, může si terminál vybrat transpondér, se kterým bude komunikovat. [4] Druhá část normy ISO/IEC 14443 definuje dva typy transpondérů, které ke komunikaci používají i různé bitové reprezentace, proto třetí část definuje i inicializaci a antikolizi pro typ A a typ B. [4] 3.3.1 Inicializace.a.antikolize.u.typu.A. V počátečním stavu se transpondér nachází ve stavu POWER OFF. Do nadcházejícího stavu IDLE se transpondér dostane po detekci pole terminálu. Ve stavu IDLE transpondér vyčkává na příkaz REQA (REQUEST, typ A) nebo WUPA (WAKE-UP, typ A) z terminálu. Transpondér následně odpoví ATQA (ANSWER TO REQUEST, typ A) a přejde do stavu READY. Pokud transpondér detekuje odpověď ATQA, následuje proces antikolize. [4] Při procesu antikolize se detekují všechny transpondéry v pracovním poli terminálu. K určení transpondérů se používá UID transpondéru, které by mělo být jednoznačné. Délka UID může být dle normy 4,7 nebo 10 bytová. K detekci všech transpondérů se používá tzv. antikolizní smyčka. [4] Antikolizní smyčka začíná odesláním příkazu SELECT s parametrem NVB (Number of Valid Bits) s hodnotou 0x20. Hodnota 0x20 informuje transpondéry, že mají odpovědět plným UID. Uvažujme, že premisa, že UID je jedinečné a v pracovním poli terminálu se nachází více než jeden transpondér ve stavu READY, pak je terminál schopný detekovat kolizi v odpovědi, která je synchronní (všechny
10 | Analýza zabezpečení bezkontaktních čipových karet
transpondéry odpovídají najednou v přesně stanovený čas). Terminál určí první bit odpovědi, ve kterém se UID liší, a vyšle příkaz SELECT s NVB 0x20 a k této hodnotě přičte pozici první kolize, navíc příkaz obsahuje část platného UID rozšířeného o jeden bit. Tento bit odliší dvojici transpondéry, u kterých vznikla kolize. Na tento příkaz odpoví pouze transpondéry s UID shodným v příkazu. Pokud terminál detekuje opět kolizi, tzn. v pracovním poli terminálu se nacházejí více než 2 transpondéry, postupuje se dle předchozích kroků. Jakmile terminál detekuje platné UID, znamená to, že nedošlo ke kolizi. Terminál následně pošle příkaz SELECT, NVB s hodnotou 0x70, 40bit UID a 2B CRC_A. Na tento příkaz odpoví zprávou SAK (SELECT ACKNOWLEDGE) pouze transpondér, u kterého se shoduje UID. Protože norma umožňuje, aby UID byla delší než 40 bitů, tak pole SAK obsahuje informaci, zda UID je úplné nebo ne. Pokud je UID delší než 40 bitů, spouští se další kolo antikolize, tzv. kaskády. Kaskády mohou být celkem 3 (jedna pro 4 Byte UID, druhá pro 7 Byte UID a třetí pro 10 Byte UID). Postup jedné antikolizní smyčky je znázorněn na obrázku 3.3. [4]
Obrázek 3.3: Antikolizní smyčka [4]
Analýza zabezpečení bezkontaktních čipových karet | 11
Po ukončení antikolize je jeden konkrétní transpondér vybrán a přechází do stavu ACTIVE. S transpondérem ve stavu ACTIVE probíhá další komunikace, dokud transpondér neobdrží příkaz HLTA (HALT, typ A). Příkaz HLTA způsobí, že transpondér přejde do stavu HALT. Transpondér ve stavu HALT neodpovídá na žádné příkazy mimo platný příkaz WUPA (WAKE UP, typ A), po kterém přechází transpondér do stavu READY. Celý proces přechodů mezi stavy, dle třetí části normy ISO/IEC 14443, se nachází na obrázku 3.4. [4]
Obrázek 3.4: Přechod mezi stavy dle normy ISO/IEC 14443-3 pro typ A [4]
12 | Analýza zabezpečení bezkontaktních čipových karet
3.3.2 Inicializace.typ.B. První dva stavy, konkrétně POWER OFF a IDLE, jsou totožné se stavy POWER OFF a IDLE inicializace typu A. Ve stavu IDLE transpondéry sledují pouze rámce WUPB nebo REQB. Oproti typu A obsahují u typu B rámce WUPB a REQB další parametry, které slouží k optimalizaci antikolize. Konkrétně se jedná o parametry AFI (Application Family Identifier), který definuje rodinu transpondérů; může se jednat například o finanční, přepravní, identifikační, nebo telekomunikační. Druhý parametr PARAM obsahuje počet antikolizních slotů N. Pokud je transpondér ve stejné rodině, která je uvedena v poli AFI nebo je hodnota AFI rovna 0x00, přechází transpondér do stavu READYREQUESTED. V READY-REQUESTED stavu transpondér vyhodnotí hodnotu N. Pokud je hodnota v poli N rovna 1, pošle ATQB zprávu a transpondér přechází do stavu READY-DECLARED. V případě, že hodnota N je větší než jedna, vygeneruje transpondér náhodnou hodnotu R v rozsahu 1 až N. Pokud hodnota R je rovna jedné, odešle transpondér zprávu ATQB a přejde do stavu READY-DECLARED. Pokud hodnota R je větší než 1 a transpondér používá pravděpodobnostní přístup, vrací se do stavu IDLE. Pokud transpondér používá přístup značek úseků, musí transpondér před vysláním zprávy ATQB a přechodem do stavu READY-DECLARED počkat, dokud neobdrží příkaz Slot-MARKER se shodnou hodnotou R. [4] Ve stavu READY-DECLARED karta sleduje pouze rámce WUPB, REQB, ATTRIB a HLTB. Jestliže transpondér obdrží příkazy WUPB nebo REQB, platí stejné podmínky, jako by byl ve stavu IDLE. Pokud ale transpondér obdrží příkaz ATTRIB, který obsahuje pole PUPI (Pseudo-Unique PICC Identifier), a to se shoduje s hodnotou v transpondéru, přechází transpondér do stavu ACTIVE. V případě, že transpondér obdrží ve stavu READY-DECLARED příkaz HLTB, přechází do stavu HALT, ze kterého se po obdržení příkazu WUPB, vrací do stavu IDLE. [4] Stav ACTIVE je pro typ A i typ B shodný, což znamená, že transpondér komunikuje s terminálem, tato komunikace je definovaná v poslední časti ISO/IEC 14443 popřípadě v ISO/IEC 7816. Do stavu IDLE se transpondér vrací po
Analýza zabezpečení bezkontaktních čipových karet | 13
obdržení příkazu DESELECT. Obrázek 3.5 znázorňuje přechody mezi jednotlivými stavy dle normy ISO/IEC 14443-3 pro typ B. [4]
Obrázek 3.5: Přechod mezi stavy dle normy ISO/IEC 14443-3 pro typ B [4]
.
14 | Analýza zabezpečení bezkontaktních čipových karet
3.4 Část 4: Protokol přenosu Část 4 definuje podmínky polo-duplexního přenosu po blocích, které respektují speciální potřeby bezkontaktních systémů a stanovuje aktivační a deaktivační posloupnosti protokolu. Způsob aktivace a deaktivace je u typu A a B opět odlišný. 3.4.1 Aktivační.postup.u.typu.A. Aktivační postup je zobrazen na obrázku 3.6, ten znázorňuje povinné procedury od zapnutí až po výměnu uživatelských dat.
Obrázek 3.6: Aktivační procedura typu A [5]
Analýza zabezpečení bezkontaktních čipových karet | 15
Horní část obrázku představuje inicializaci dle části 3. Dolní část popisuje ISO/IEC 14443-4. Transpondér, který je po dokončení antikolize ve stavu ACTIVE, obdrží příkaz RATS (REQUEST FOR ANSWER TO SELECT), který obsahuje parametry FSDI a CID. Parametr FSID (Frame Size for proximity coupling Device Integer) definuje maximální velikost bloku dat ve směru z transpondéru do terminálu. Přípustné specifické hodnoty jsou v rozmezí 32-256 Bytů. CID (Card identifier) specifikuje zjednodušený identifikátor transpondéru přiřazený terminálem. Card identfier terminál používá k adresaci transpondérů v případě, že by se v pracovním poli terminálu nacházelo více transpondérů ve stavu ACTIVE. Transpondér na výzvu RATS pošle odpověď ATS (ANSWER TO SELECT). [5] Rámec ATS může specifikovat další důležité parametry po následnou výměnu dat. Povinným polem v ATS je FSCI (Frame Size for proximity Card Integer). FSCI podobně jako FSDI specifikuje maximální velikost bloku dat, tentokrát ve směru z terminálu do transpondéru. Dalšími volitelnými parametry jsou [5]: •
Maximální dovolená přenosová rychlost v obou směrech.
•
Ochranný časový interval, který transpondér potřebuje před příjmem dalšího rámce.
•
Historické bity, které jsou specifikovány v normě ISO/IEC 7816-4.
Rámec ATS je v kontaktních čipových kartách označován jako ATR. V případě, že terminál chce změnit parametry přenosu, vyšle žádost PPS (Protocol and parameter selection request), která v současné době obsahuje pouze žádost o změnu komunikační rychlosti. Ostatní bity jsou označeny jako RFU (Reserved for Future Use). Následně transpondér odpoví odezvou na PPS. Po tomto kroku, nebo v případě, že terminál nepožaduje změnu v přenosovém protokolu (nevyšle příkaz PPS), následuje výměna uživatelských dat. [5]
16 | Analýza zabezpečení bezkontaktních čipových karet
3.4.2 Aktivační.postup.u.typu.B. Tato část normy nespecifikuje pro typ B žádné další povinné operace pro aktivaci přenosu zpráv. Díky tomu je přenos uživatelských dat možný po krocích, které jsou uvedeny v části tři. [5] 3.4.3 Přenos.dat. Čtvrtá část normy ISO/IEC 14443 specifikuje čtyřvrstvý OSI model pro poloduplexní přenos. Na obrázku 3.7 je znázorněn OSI model. Aplikační vrstva není v normě definovaná striktně. Transpondér může použít pro další komunikaci normu ISO/IEC 7816-4, eventuálně může použít proprietární aplikační vrstvu. [5] aplika ní vrstva - ISO 7816-4+ sí ová vrstva - ISO 14443-4 datová vrstva - ISO 14443-3 fyzická vrstva - ISO 14443-2 Obrázek 3.7: OSI model [5]
Jeden z nejpoužívanějších přenosových protokolů se nazývá T=CL a je založen na přenosovém protokolu T=1 definovaném pro kontaktní karty v normě ISO/IEC 7816-3. Protokol T=CL definuje datovou jednotku transportní vrstvy – TPDU (transmission protocol data unit) a datovou jednotku aplikační vrstvy APDU (application protocol data unit). [5, 6, 7] [5] [6] [7] TPDU se používá na třetí vrstvě OSI modelu a skládá se z dvou povinných polí: PCB a CRC a tří nepovinných polí: CID, NAD a APDU. Pole PCB specifikuje jeden ze tří typů rámce. Kromě informačních rámců (information block, I block), jejichž posláním je přenos APDU, totiž existují ještě další dva typy - rámce opravné (recovery block, R block) a kontrolní (supervisory block, S block). Pole NAD bylo zavedeno pouze pro zpětnou kompatibilitu s normou ISO/IEC 7816-3. [5, 6, 7]
Analýza zabezpečení bezkontaktních čipových karet | 17
Dalším nepovinným údajem v TPDU je APDU. APDU jsou rozděleny na CAPDU, ty obsahují příkazy od terminálů a R-APDU, které obsahují odpovědi transpondéru na C-APDU. [5, 6, 7] C-APDU se skládá z hlavičky a nepovinného těla. Hlavička má velikost 4 Bytů a skládá se z Třídy (CLA), Instrukce (INS), Parametru 1 (P1) a Parametru 2 (P2). Pole CLA označuje použitou kategorii povelů. Instrukční byte definuje aktuální příkaz, který dále specifikují dva parametry P1 a P2. Tělo C-APDU obsahuje 3 nepovinné pole. První – Lc (Length command) – udává délku následující datové části (druhý prvek) a třetí – Le (Length expected) specifikuje požadovanou délku dat v odpovědi karty. [5, 6, 7]. R-APDU se skládá z nepovinného těla a povinného dodatku SW1, SW2. Tělo obsahuje odpověď na C-APDU a je specifikované délkou Le. SW1 a SW2 informují, zda byl výsledek operace C-APDU úspěšně proveden či nikoli. [5, 6, 7]
3.4.4 Zabezpečený.přenos.dat. Zabezpečený přenos dat se provádí dle normy ISO/IEC 14443-4 v aplikační vrstvě OSI modelu, proto ho sama norma nijak nespecifikuje. Zabezpečení přenosu dat může být proto proprietární nebo dle T=CL protokolu respektive T=1. Zabezpečení dat dle T=CL je popsáno v normě ISO/IEC 7816-4. Zpráva může být zabezpečena proti manipulaci přidáním MAC. Důvěrnost zprávy může být realizovaná zašifrováním časti těla APDU. Norma ISO/IEC 7816-8 navíc specifikuje možnost digitálního podpisu. Postup zabezpečení před neoprávněnou manipulací je znázorněn na obrázku 3.8. [6, 7, 8, 9] [6] [7] [8] [9]
18 | Analýza zabezpečení bezkontaktních čipových karet
Obrázek 3.8: Postup zabezpečení APDU před neoprávněnou manipulací [7]
Obrázek 3.9 znázorňuje zašifrování samostatného obsahu APDU – tělo se rozdělí na 8bytové bloky a zašifruje.
Obrázek 3.9: Postup zabezpečení obsahu APDU před neoprávněným čtením [7]
Analýza zabezpečení bezkontaktních čipových karet | 19
!
4 RFID systémy mimo normu ISO/IEC 14443 Kromě normy ISO/IEC 14443 existují i další typy RFID systémů. Ty mohou být postaveny například na standardu ISO/IEC 15693, který specifikuje bezkontaktní čipové karty s vazbou na dálku. Dalším příkladem použití je rádio-frekvenční identifikace zvířat podle norem ISO/IEC 11784, ISO/IEC 11785 a ISO/IEC 14223. Mimo těchto standardů existují i proprietární RFID systémy. Příkladem může být systém od společnosti Sony – FeliCa, který byl navrhován do normy ISO/IEC 14443 jako typ C, ale byl odmítnut. FeliCa byla ovšem později zahrnuta do normy ISO/IEC 18092 - Near Field Communication - Interface and Protocol (NFCIP-1).
5 Transpondéry dle normy ISO/IEC 14443, typ A V současné době existuje velké množství transpondérů postavených na normě ISO/IEC 14443-A. Tato kapitola se bude detailněji zabývat paměťovými transpondéry rodiny MIFARE, programovatelnými transpondéry Java Card a SmartMX, které umožnují běh vlastních aplikací a dále bezkontaktní platební kartou VISA PayWave.
5.1 MIFARE Rodina MIFARE pochází od společnosti NXP (dříve Philips) a patří mezi nejrozšířenější
ISO/IEC
14443A
kompatibilní
transpondéry
s proprietárním
přenosovým protokolem. Celá rodina MIFARE se skládá ze čtyř typů transpondérů Classic, Ultralight, Plus, DESFire. Nejpoužívanější aplikace jsou v elektronických jízdenkách pro veřejnou dopravu a v elektronických letenkách, výběr mýtného nebo řízení přístupu. [10] 5.1.1 MIFARE.Ultralight.. Jedná se o nejednoduší a nejlevnější verzi MIFARE s 7 bytovým UID, která je
Analýza zabezpečení bezkontaktních čipových karet | 21
kompatibilní s normou ISO/IEC 14443A do části 3. MIFARE Ultralight je schopná v základní variantě uchovat 64 bytů organizované v 16 stránkách po 4 bytech. Uživatelsky přístupné jsou pouze stránky 4-15. Stránky 0 a 1 obsahují UID. Stránka 2 obsahuje v prvních dvou bytech interní informace, druhé dva LOCK byty umožnují zamknout jednotlivé stránky proti zápisu. Stránka 3 obsahuje 4bajty Capability Container, které jsou jako LOCK bajty OTP1. [11] Verze MIFARE Ultralight C má navíc paměť rozšířenou na 192 bajtů organizovanou ve 48 stránkách po 4bajtech a umožňuje autentizaci zápisu šifrou Triple-DES. [11] 5.1.2 MIFARE.Classic.. Verze Classic je nejrozšířenější variantou MIFARE s 4 nebo 7 bajtovým UID s podporou normy ISO/IEC 14443A do části 3, její návrh vznikl v roce 1994 společností NXP. Velikost paměti je 1 KB nebo 4 KB. Data jsou reprezentována u 1 KB varianty v 16 sektorech po 64 bytech, u varianty 4 KB jsou data organizována v 32 sektorech po 64 bytech a 8 sektorech po 256 bytech. Každý sektor je navíc rozdělen do bloků po 4 bajtech. Jednotlivé bloky (mimo prvního bloku v nultém sektoru) jsou chráněny proprietární proudovou šifrou CRYPTO-1. Každý sektor má programovatelné klíče A a B (volitelné). Jednotlivé sektory umožňují řízení přístupu pro jednotlivé bloky na základě znalosti klíče A nebo klíče B. Klíče a řízení přístupu jsou uloženy v každém sektoru v jeho třetím bloku označovaném jako Sector Trailer. Možné kombinace přístupu pro operace čtení, zápis, inkrementace a dekrementace jsou uvedeny v příloze A v tabulce A.1. Obrázek 5.1 znázorňuje organizaci dat ve variantě s 1KB pamětí. [12]
1
OTP – One Time Programmable – v těchto bajtech lze měnit jednotlivé bity
pouze z hodnoty 0 na 1.
22 | Analýza zabezpečení bezkontaktních čipových karet
íslo bytu v bloku Sektor
Blok
15
3
0
1
2
3
Klí A
4
5
6
7
8
9
P istupové bity
10 11 12 13 14 15
Popis
Klí B
Sector Trailer 15
2
Data
1
Data Data
0 14
1
3
Klí A
P istupové bity
Klí B
Sector Trailer 14
2
Data
1
Data
0
Data
2
Sector Trailer 1 Data
1
Data
3
Klí A
P istupové bity
Klí B
Data
0 0
3
Klí A
P istupové bity
Klí B
Sector Trailer 0
2
Data
1
Data
0
Data od výrobce
Block od výrobce
Obrázek 5.1: Organizace paměti MIFARE Classic [12]
Pro autentizaci stran komunikace používá MIFARE Classic třístupňový handshake. [12] Crypto1( Crypto1 je proprietární proudová šifra s 48 bitovým klíčem. Je složena ze dvou LSFR registrů a ze dvou vrstev nelineární kompresní funkce 20-to-1. Schématické zapojení je znázorněné na obrázku 5.2. Tato šifra byla několikrát prolomena a v dnešní době nepředstavuje garanci bezpečí. Často je proto hanlivě označována jako plýtvání křemíku. Jednotlivé útoky budou rozebrány v další kapitole. [13]
Analýza zabezpečení bezkontaktních čipových karet | 23
Obrázek 5.2: Schematické znázornění šifry Crypto-1 [13]
5.1.3 MIFARE.Plus.. Transpondér MIFARE Plus je oproti předchozím plně kompatibilní s normou ISO/IEC 14443A a obsahuje UID o délce 4 B nebo 7 B. Na trhu jsou varianty s 2 KB a 4 KB pamětí. Organizace paměti je ve verzi 2 KB – 32 sektorů po 4 blocích. 4KB verze má stejnou organizaci paměti jako MIFARE Classic 4 KB. MIFARE Plus obsahuje podporu šifry AES a umožňuje oproti verzi Classic 3 stupňovou úroveň zabezpečení [14]: •
Security level 0 je výchozí úroveň, kdy je možné s obsahem paměti transpondéru libovolně manipulovat (zápis dat, klíčů pro CRYPTO1 a AES)
•
Security level 1 je úroveň pro zpětnou kompatibilitu se systémy postavenými na MIFARE Classic. AES autentizace je na této úrovni volitelná.
•
Security level 3 je nejvyšší úroveň pracující dle ISO/IEC 14443A s povinnou AES autentizací.
24 | Analýza zabezpečení bezkontaktních čipových karet
5.1.4 MIFARE.DESFire.. Transpondér v této verzi podporuje kryptografické operace postavené na šifrách DES, TripleDES a AES (ve verzi EV1). Oproti předchozím verzím není organizace pevně rozdělena na sektory a bloky, ale obsahuje DESFire Operating System, který umožňuje základní adresářové a souborové operace. Operační systém umožňuje nahrávání uživatelských aplikací1. Vlastník aplikace může definovat oprávnění přístupu. DESFire je plně kompatibilní s normou ISO/IEC 14443A. [15] Původní verze MF3IC40 byla po útoku [16] na postranní kanály realizovaném na Ruhr Universität Bochum nahrazena verzí EV1, která byla navíc rozšířena o podporu šifry AES.
Tabulka 2 obsahuje rekapitulaci nejdůležitějších parametrů rodiny MIFARE (rozšířená tabulka s dalšími informacemi se nachází v příloze A). Tabulka 2: parametry rodiny MIFARE [14, 15] Verze/!Vlastnosti! Velikost!paměti! Baudrate![Kbps]! ISO/IEC!14443A! UID![Byte]! Crypto1! DES!&!3DES! AES!128!
Ultralight! 64!B,!192B! 106! do!části!3! 7! h! Autentizace! ve!verzi!C! h!
Classic! 1!KB,!4!KB! 106! do!části!3! 4,!7! ANO!
Plus! 2!KB,!4!KB! 106...848! ANO! 4,7! ANO!
DESFire! 2KB,!4KB,!8KB! 106....848! ANO! 7! h!
!
!
MAC,!šifrovaní!
h!
MAC,!šifrovaní!
MAC,!šifrovaní!
5.2 SmartMX SmartMX je kontrolér umožňující komunikaci přes kontaktní i bezkontaktní rozhraní pro rychlé a bezpečné transakce od společnosti NXP. Pro své vlastnosti je používán v kritických systémech jako je eGovernment - ID card (občanské průkazy), elektronické pasy, řidičské a zdravotní průkazy. [17]
1
Ačkoliv společnost NXP používá pojmenování aplikace, stále se jedná o
paměťovou kartu, která podporuje pouze přesně dané příkazy.
Analýza zabezpečení bezkontaktních čipových karet | 25
Podporuje normy ISO/IEC 14443 a ISO/IEC 7816 (kontaktní verze podporuje T=0 a T=1 přes bezkontaktní rozhraní T=CL). Podporované kryptografické operace jsou PKI (RSA, ECC), AES, 3DES, SHA a PRNG. Oproti rodině MIFARE není SmartMX pouze paměťová karta, ale umožňuje běh aplikací v jazyce Java nebo C. Velikost paměti je až 144 KB a s až 7,5 KB RAM. Transpondér je navržen pro zvýšenou odolnost proti útokům na postranní kanály - SPA1, DPA2 a DFA3. Navíc je certifikován dle CC EAL 5+ a je schválen pro použití EMV – standard pro platební karty Europay, MasterCard a VISA. [17] SmartMX2 je vylepšenou verzí, která oproti předchozí generaci obsahuje procesor podporující běh 8bitových a 32bitových aplikací. SmartMX2 je certifikovaný dle CC EAL 6+. [18]
5.3 Java Card Java Card je mikro-řadičový transpondér pracující plně podle normy ISO/IEC 7816, který umožňuje běh vlastních aplikací. Java Card byl vyvinut společností Sun Microsystems. Transpondéry mohou být vybaveny kontaktním nebo bezkontaktním rozhraním. V případě bezkontaktní komunikace se Java Card řídí dle normy ISO/IEC 14443A a následně ISO/IEC 7816. Uživatelská data jsou zapouzdřena v jednotlivých aplikacích. Tyto Java Card aplikace jsou spouštěny v izolovaném
prostředí
(Java
Card
Virtual
Machine),
oddělené
od
základního operačního systému. Aplikace jsou od sebe odděleny firewallem, který umožňuje sdílení dat mezi aplikacemi. Java Card umožňuje standardně používat bezpečnostní operace postavené na AES, DES, TDES, RSA, ECC. [19]
1
Simple power analysis
2
Differential power analysis
3
Differential fault analysis
26 | Analýza zabezpečení bezkontaktních čipových karet
5.4 VISA PayWave PayWave je čipová platební karta s kontaktním a bezkontaktním rozhraním od společnosti VISA. VISA PayWave se řídí standardem EMV, který specifikuje komunikaci platební karty s platebním terminálem a bankomatem. EMV je založen na ISO/IEC 7816 pro kontaktní karty a ISO/IEC 14443 pro bezkontaktní karty. Seznam příkazů podle normy EMV se nachází v příloze B. Dle normy ISO/IEC 7816 se jednotlivé aplikace specifikují identifikátorem aplikace AID (application identifier), ten slouží pro výběr aplikace, se kterou bude terminál komunikovat pomocí APDU. AID se skládá z pěti bytového RID (registered application provider identifier) vydaného dle normy ISO/IEC 7816-5 registrační autoritou a parametrem PIX (proprietary application identifier extension ), který slouží k odlišení různých aplikací od stejného poskytovatele. VISA PayWave má AID A0000000031010. To odpovídá dle RID výrobci VISA a PIX odpovídá kreditní nebo debetní platební kartě. Hodnota AID se nachází na všech účtenkách vytištěných platebním terminálem. Seznam AID největších poskytovatelů platebních karet se nachází v příloze B. [20, 21] [20] [21] Platební karta pro komunikaci s terminálem používá podpisové schéma postavené na RSA, které je použito také pro šifrovaní. Pro symetrické šifrovaní a MAC je možné použít šifry DES/TDES a AES. Vypočet Hash funkce se provádí na základě SHA-1 schématu. [20, 21] Dle možností karty a terminálu se provádí verifikace oprávněného držitele na základě [20, 21]: •
podpisu
•
offline autentizace PINem - nešifrovaný přenos
•
offline autentizace PINem - šifrovaný přenos
•
kombinace podpis a offline autentizace PINem (ne)šifrovaný přenos
•
online autentizace PINem
•
bez verifikace
Analýza zabezpečení bezkontaktních čipových karet | 27
!
6 Klasifikace RFID útoků Bezpečnost bezkontaktních systémů je oproti systémům postavených na kontaktním rozhraní mnohem více závislá na použité technologii u transpondérů a návrhu systému. Příkladem špatného výběru a návrhu RFID systému může být Plzeňská karta nebo karta ČVUT. U Plzeňské karty byl problém v používaní zastaralého typu karet, který bylo možné duplikovat do 5min. Karta ČVUT naproti tomu představuje špatný návrh systému jako celku. V tomto systému jsou k autentizaci použity pouze veřejné informace (UID). Veškeré informace tak lze přečíst libovolnou bezkontaktní čtečkou a následně je využít k duplikaci celého transpondéru. Oproti
kontaktním
transpondérům
umožňují
bezkontaktní
transpondéry
komunikaci až do vzdálenosti 10 cm přes většinu nekovových materiálů. Riziko neoprávněné komunikace bez vědomí vlastníka je tak u bezkontaktních systémů oproti kontaktním systémům mnohem větší. Jak bylo ukázáno, bezpečnost systému je závislá jak na použitém transpondéru, tak na návrhu systému jako celku. Pro klasifikací útoků použijeme upravený OSI model specifikovaný normou ISO/IEC 14443 (obrázek 3.7), který rozšíříme o strategickou vrstvu. Strategická vrstva obsahuje firemní a podnikové rozhodování. Obrázek 6.1 znázorňuje upravený model. Tato klasifikace včetně popisu hrozeb a jejich protiopatření vychází z práce [22] od Aikaterini Mitrokotsa, Melanie R. Rieback and Andrew S. Tanenbaum. Kompromis logistické faktory cena vs. funkce EPCIS / ONS ISO 15693 / 14443 RF
Oracle / SAP EPC 800 Gen-2 te ka HW
Omezení z realného sv ta
Obchodní / enterprise middleware Proprietární RFID protokol
RFID transpondér
Strategická vrstva Aplika ní vrstva Si ová-transportní vrstva Fyzická vrstva
Obrázek 6.1: Upravený vrstevnatý OSI model [22]
Analýza zabezpečení bezkontaktních čipových karet | 29
Útoky na fyzickou vrstvu zahrnují útoky s vlivem na EM pole, čtečky a transpondéry z pohledu fyzických zařízení. V síťové vrstvě jsou zařazeny útoky na protokol. Aplikační vrstva obsahuje útoky využívající zranitelnosti middlewarů. Ve strategické vrstvě jsou útoky zaměřeny na získání informací o společnosti (průmyslová špionáž). [22] Poslední kategorií jsou útoky využívající slabin ve více vrstvách. Rozdělení jednotlivých útoků podle vrstev je znázorněno na obrázku 6.2. RFID útoky
Fyzická vrstva Trvalá deaktivace transpondéru
Sí ová-Transportní vrstva Útok na transpondér
Odstran ní transpondéru
Klonování
Zni ení transpondéru
spoofing
P íkaz KILL
Aplika ní vrstva Neoprávn né tení
Pr myslová špionáž
Neoprávn ná modifikace
Sociální inženýrství
Útok na middleware
Útok na te ku
Strategická vrstva
Zisk osobních informací
Buffer overflows
Do asná deaktivace transpondéru
P edstírání identity Injekce škodlivého kódu
Odposlech Pasivní rušení
Aktivní rušení
Relay útok
Viceúrov ové útoky
P ekryv kanál
Denial of Service
Analýza komunikace
Kryptografické útoky
Útok na postranní kanály
Opakování komunikace
Obrázek 6.2: Klasifikace útoků. [22]
30 | Analýza zabezpečení bezkontaktních čipových karet
Cílené bezpe nostní hrozby
6.1 Fyzická vrstva Útoky zařazeny do této vrstvy využívají fyzikální charakteristiky RFID komunikace a nedostatečné fyzické zabezpečení RFID transpondérů a terminálů.
6.1.1 Dočasné.a.trvalé.zničení.transpondéru. Tento druh útoků slouží k dočasné deaktivaci nebo k trvalému zničení transpondéru. Tyto útoky jsou často využívány zloději v obchodech, které využívají EAS. [22] Trvalé zničení může byt způsobenou fyzickou silou nebo statickou elektřinou. Další možnost je využití příkazu KILL. Příkaz KILL byl implementován do některých systémů a dovoluje na základě znalosti hesla zničení RFID transpondéru. [22] Dočasnou deaktivaci lze realizovat pasivně - Faradayovou klecí, která znemožní komunikaci mezi transpondérem a terminálem. Komunikaci lze dočasně narušit také aktivním rušením. Například pokud se do pracovního pole jedné čtečky dostane druhá čtečka, může dojít k interakci, která znemožní komunikaci. [22]
6.1.2 Přepojovací.(relay).útok. Přepojovací útok je útok typu man-in-the-middle, kde je mezi legitimní transpondér a terminál vloženo zařízení, které má za cíl prodloužit komunikace, například z několika centimetrů u ISO/IEC 14443 na několik metrů nebo kilometrů. Obrázek 6.3 představuje schématické zapojení přepojovací útoku. Výhoda tohoto útoku je, že probíhá na fyzické vrstvě, tím nemusí obcházet nebo prolamovat případné použité šifrovaní. Nevýhodou útoku je nutnost přístupu k terminálu a transpondéru ve stejnou dobu.
Analýza zabezpečení bezkontaktních čipových karet | 31
Obrázek 6.3: Schématické znázornění přepojovacího útoku [23]
6.2 Protiopatření proti útokům na fyzické vrstvě Zabezpečení proti útokům na fyzické vrstvě je velmi problematické, jelikož se zaměřuje na fyzikální a fyzické vlastnosti RFID systému. Proto se jako protiopatření používají další doplňkové systémy, jako jsou kamerové systémy, fyzická ochrana nebo stínění proti EM rušení. Proti relay útokům lze použít dodatečnou autentizaci PINem nebo distance-bounding protocol. Relay útok včetně protiopatření bude rozebrán v dalších kapitolách.
6.3 Síťová vrstva Tato vrstva obsahuje všechny útoky, které jsou založeny na způsobu výměny dat mezi jednotlivými RFID prvky (transpondér, terminál). Útoky na síťovou vrstvu zahrnují útoky jak na transpondér tak i na terminál. [22] 6.3.1 Útoky.na.transpondér... Klonování – Jedná se o nejnebezpečnější útok na transpondér, při kterém je útočník schopen duplikovat celý transpondér včetně UID a dalších dat od výrobce – vytvoření fyzické kopie. Tento útok tak vyžaduje přístup ke všem informacím uloženým na kartě, včetně těch zabezpečených například šifrováním. [22]
32 | Analýza zabezpečení bezkontaktních čipových karet
Spoofing – je varianta klonovaní, při kterém se nevytváří fyzická kopie transpondéru. Zkopírují se pouze uživatelská data získána z originálního transpondéru. [22] 6.3.2 Útok.na.terminál. Předstíraní identity (Impersonation) – Vhledem k tomu, že některé RFID systémy nevyžadují autentizaci, nebo lze některé informace přečíst bez autentizace, útočník tak může podvrhnout falešnou čtečku a přečíst informace z transpondéru. K tomuto útoku není potřeba speciální vybavení, útok je možné realizovat obyčejnou čtečkou. [22] Odposlech (Eavesdropping) – Bezdrátová povaha RFID komunikace dovoluje odposlech komunikace mezi terminálem a transpondérem. Komunikaci je možné odposlechnout oběma směry například pomocí zařízení Proxmark3, které dovoluje odposlech komunikace (pouze za předpokladu že se nachází v pracovním poli terminálu). Pomocí speciálního vybavení je ovšem možné odposlechnout komunikaci z terminálu i na delší vzdálenost. [22]
6.4 Protiopatření proti útokům na síťové vrstvě Mezi hlavní opatření proti všem útokům zařazeným v síťové vrstvě je silná autentizace a šifrovaný přenos. Pro autentizaci je vhodné používat alespoň 3-way autentizační handshake: 1. terminál pošle výzvu s náhodnou hodnotou 2. transpondér zašifruje náhodnou hodnotu z transpondéru a přidá vlastní náhodnou hodnotu 3. terminál ověří zašifrovanou hodnotu a zašifruje náhodnou hodnotu ztranspondéru, tu odešle zpět do transpondéru, který ji následně ověří Šifrování by mělo být postaveno na ověřených standardech jako jsou DES/TDES, AES některé systémy dovolují použít i ultralight šifry Piccolo či PRESENT.
Analýza zabezpečení bezkontaktních čipových karet | 33
Systémy postaveny na proprietárních šifrách často vedly pouze k security by obscurity a po zveřejnění šifry byly nalezeny slabiny, které následně umožnily kryptografické útoky.
6.5 Aplikační vrstva Tato vrstva zahrnuje všechny útoky, které se zaměřují na vztah mezi transpondérem a uživatelem. Tyto útoky využívají neoprávněné čtení, modifikaci dat a útoky na aplikační middleware. [22] 6.5.1 Neoprávněné.čtení. Vzhledem k tomu, že ne všechny RFID transpondéry podporují autentizační protokol, může tak útočník snadno číst citlivé informace bez vědomí uživatele a zanechání stop. Oproti útoku na síťové vrstvě se komunikace děje bez vědomí uživatele. [22] 6.5.2 Neoprávněná.modifikace. S ohledem na to, že většina RFID transpondérů v dnešní době používá uživatelsky zapisovatelnou paměť, je možné pomocí běžné čtečky modifikovat data obsažené
na
transpondéru.
Pokud
transpondér
neobsahuje
ochranu
před
neoprávněným zápisem, může útočník jednoduše modifikovat uložená data. [22] 6.5.3 Middleware.attack. Buffer Overflow tvoří jednu z největších bezpečnostních hrozeb pro software. Útočník může pomocí RFID transpondéru vyvolat přetečení paměti na back-end RFID middlewaru. Pro úspěšnou realizaci útoků je vyžadován transpondér, který je schopen odeslat dostatečné množství dat nebo emulátor - zařízení, které je schopné se tvářit jako transpondér. Injekce škodlivého kódu může být realizovaná pomocí RFID transpondéru, který ve své paměti obsahuje škodlivý kód. Tento kód může infikovat další komponenty RFID systému. Middlewary často používají různé skriptovací jazyky (Javascript, XML, PHP), které mohou zapříčinit spuštění škodlivého kódu nahraného
34 | Analýza zabezpečení bezkontaktních čipových karet
přes RFID transpondér. V laboratorním experimentu [24] byla předvedena možná realizaci tohoto útoku. [22]
6.6 Protiopatření proti útokům na aplikační vrstvě Transpondéry je možné zabezpečit před neoprávněným čtením a modifikací pomocí speciálních pouzder blokujících jakoukoliv komunikaci. Nevýhoda těchto pouzder je, že před oprávněným použitím je nutné transpondér z pouzdra vyjmout, čímž odpadá jedna z výhod bezkontaktního rozhraní oproti kontaktnímu. Jako v předchozích případech je také doporučováno použití autentizace a šifrování komunikace. Proti útokům na middleware je nutné jako u většiny programů používat metody bezpečného programování, jako jsou běh aplikace s minimálním oprávněním, správná validace vstupů a vypnutí nepotřebných komponent. Dále je možná izolace RFID middlewaru od důležitých komponentů v síti.
6.7 Strategická vrstva Tato vrstva obsahuje útoky, které se zaměřují na organizaci a podnikové aplikace, přičemž se využívá nedbalého designu infrastruktury a aplikací. Konkrétně jsou v této vrstvě zahrnuty průmyslové špionáže, sociální inženýrství či zisk osobních údajů. [22] 6.7.1 Průmyslová.špionáž. Útočníci v tomto případě cílí na obchodní nebo průmyslové konkurenty. Pomocí sledovaní a odposlechu nebo neoprávněného čtení mohou shromažďovat důvěrné informace konkurence. Ty je možné pak využít k sabotáži nebo k získání informací o harmonogramu výroby, schémat a postupů. Tyto útoky jsou realizovány na základě odposlechů komunikace nebo neoprávněného přístupu k databázi. Tyto útoky mohou cílit převážně na průmysl, kde se využívají RFID systémy ke sledovaní zboží (přepravní kontejnery) nebo k záznamu charakteristických dat o konkrétních produktech – některé výrobní linky používají RFID transpondéry pro čtení informací o výrobku a upravují pak jednotlivé kroky. [22]
Analýza zabezpečení bezkontaktních čipových karet | 35
Například automobilový průmysl může RFID transpondér použít pro záznam o barvě nebo výbavě, které mohou být následně v jednotlivých krocích čteny automatizovanou výrobní linkou, která upraví výrobní postupy podle informací z transpondéru. [1] 6.7.2 Sociální.inženýrství.. Protivník může využít i dovednosti v sociálním inženýrství k ohrožení RFID systému a získat tak neoprávněný přístup do vyhrazených prostor nebo získat důvěrné informace. Útočník místo složitých technik představených výše může využívat techniky sociálního inženýrství, jako je například manipulace nebo zneužití laskavosti a získat tak požadované informace nebo přístup do omezených prostor. Například útočník může poprosit o zapůjčení transpondéru nebo poprosit o podržení dveří. Útočník tak může vstoupit do prostor s omezeným přístupem i bez platného průkazu. [22] 6.7.3 Zisk.osobních.informací. V tomto útoku protivník cílí na sběr osobních informacích z RFID systémů. Útočník může potenciálně shromažďovat osobní informace od nakupujících návyků až po informace o zdraví držitele. Tyto informace mohou být následně zneužity například pro potřeby dalšího sociálního inženýrství nebo krádeže identity. [22] 6.7.4 Cílené.bezpečnostní.hrozby. Útočník může využít získané informace z RFID systémů k vyvolání nebezpečných událostí jako jsou fyzické nebo elektronické útoky. Příkladem útoku může být zisk informací z RFID transpondéru a následně cílená krádež cenného zboží. [22]
6.8 Protiopatření proti útokům na strategickou vrstvu Základem protiopatření před útokem na této vrstvě je použití již zmíněných protiopatření, jako je autentizace a šifrovaní komunikace. Navíc je důležité proti útokům na strategické vrstvě stanovit firemní bezpečnostní politiku. Součástí
36 | Analýza zabezpečení bezkontaktních čipových karet
bezpečnostní politiky by měly být i havarijní plány, pro případy, kdy by došlo k výpadku systému nebo by byl systém kompromitován.
6.9 Víceúrovňové útoky Jedná se o poslední kategorii, která kombinuje slabiny v jednotlivých vrstvách pro realizaci úspěšného útoku. Tato kategorie zahrnuje útoky typu překryv kanálu, denial of service, analýza přenosu, krypto útoky a útoky postranními kanály. [22] 6.9.1 Překryv.kanálů.. Útočník může zneužít nevyužitou paměť v RFID transpondéru k přenosu vlastních informací. Pro přenos informací může útočník využít RFID transpondéry, které člověk běžně přenáší (ISIC, In-karta, Opencard a další). Držitel transpondéru tak může být bez vlastního vědomí využit k přenosu nezákonných nebo důvěrných informací. [22] 6.9.2 Denial.of.Service. Tento typ útoku má za úkol znemožnit komunikaci mezi transpondérem a terminálem. K tomuto typu útoku je možné využít zařízení původně určené k ochraně před nežádoucí komunikací. Konkrétně se může jednat o blocker tags nebo RFID guardian. [22] Další možností je využít některých vestavěných ochranných prvků v RFID transpondérech. Například LOCK příkaz, který umožňuje zablokovat zápis do paměti. Tento příkaz většinou označí část nebo celou paměť jako read-only bez možnosti opětovného povolení zápisu. [22] Druhým příkladem zneužití ochranných prvků může být zablokování platební bezkontaktní karty úmyslným zasláním třech špatných PIN kódů z útočníkovy čtečky. Útočník může k vyvolání útoku Denial of Service použít middleware napojený na RFID systém. Pokud se útočníkovi podaří odstavit middleware, může tak dojít i k nefunkčnosti RFID systému. [22]
Analýza zabezpečení bezkontaktních čipových karet | 37
6.9.3 Analýza.komunikace. Během tohoto útoku se útočník snaží zachytit co nejvíce komunikace mezi RFID transpondérem a čtečkou, ze které může útočník pomocí následné analýzy získat potřebné informace. Tento útok může být realizován i v případě, že je přenos informací zabezpečen šifrováním a autentizací. V případě zabezpečené komunikace musí útočník ovšem zachytit mnohem větší množství dat, aby následná analýza byla úspěšná. [22] 6.9.4 Kryptografické.útoky. Pokud jsou kritická data na transpondéru chráněna šifrováním a technikami pro zachování integrity a důvěryhodnosti dat, může útočník použít kryptografické útoky pro prolomení ochran. Příkladem kryptografického útoku může byt útok hrubou silou, při kterém se zkouší všechny možné kombinace klíčů nebo sofistikovanější útoky s použitím rainbow tables nebo kryptoanalýzy. Útok hrubou silou byl úspěšně realizován v [25] na holandském pasu, který je možné prolomit na běžném počítači do dvou hodin. [22] 6.9.5 Útok.na.postranní.kanály. Útoky na postranní kanály (SCA1) využívají útok na fyzickou realizaci kryptografického algoritmu. Díky přístupu ke kryptografickému zařízení je možné na základě pozorování získat další informace. Při SCA se měří alespoň jeden z parametrů: •
čas – měření času lze použít v případě, že doba běhu algoritmu je závislá na tajné hodnotě a otevřeném textu, například u podmíněných skoků.
•
spotřeba - ve většině případů je spotřeba závislá na právě prováděné operaci.
•
EM pole – charakteristika elektromagnetického pole může být díky použité technologii pro jednotlivé výpočetní operace různá.
1
Side Channel Analysis/Attack
38 | Analýza zabezpečení bezkontaktních čipových karet
Na základě získaných informací z měření je možné rozdělit stavový prostor klíčů na menší, které je možné prohledat hrubou silou tzv. DPA, případně CPA, nebo je možné z několika málo průběhů získat klíč na základě vizuálního pozorování - SPA. Obrázek 6.4 znázorňuje obecné postupy při DPA – Differential Power Analysis.
Obrázek 6.4: Differential power analysis [26]
Oproti tomu obrázek 6.5 zachycuje část měření spotřeby kryptografického přípravku, který realizuje RSA. Útočník může prostým pohledem na průběh určit, kdy se provádí pouze mocnění a kdy se realizuje mocnění a násobení. Na základě
Analýza zabezpečení bezkontaktních čipových karet | 39
této znalosti může útočník přesně determinovat RSA klíč. Tento typ útoku na postranní kanály se nazývá SPA – Simple Power Analysis
Operace: Privátní klí :
Obrázek 6.5: Schématické znázornění SPA útoku na RSA [27]
6.9.6 Opakovaní.komunikace. Jedná se o dvoufázový typ útoku, kdy v první fázi útočník zachytí komunikaci z transpondéru do terminálu. Ve druhé fázi útočník přehraje nahranou komunikaci terminálu. Tímto způsobem je možné zaútočit na autentizaci, kdy si útočník uloží výzvu odeslanou z transpondéru a pak ji jako falešný transpondér zopakuje. Proces autentizace může být útočníkem vyvolán úmyslně a v případě, že autentizace je špatně navržena, podaří se útočníkovi provést autentizaci bez znalosti klíče.
6.10 Protiopatření před víceúrovňovými útoky V případě překryvu kanálů je případné zneužití těžce detekovatelné, a proto je vhodné, aby i nepoužívaná místa v paměti byla chráněna tajným klíčem. To může zabránit neoprávněnému zápisu a přenosu dat. V případě, že by i přesto mohlo dojít k zneužití, je vhodné nevyužitou paměť pravidelně mazat.
40 | Analýza zabezpečení bezkontaktních čipových karet
Vážnou hrozbou ve všech typech sítí jsou útoky Denial of Services a analýza komunikace. Zatímco teoreticky proti těmto typům útoků mohou být zaváděna různá protiopatření, kvůli limitovaným prostředkům vynaloženým na RFID čipy je jejich obrana problematická a zůstává otevřenou výzkumnou záležitostí. Ochranu před kryptografickými útoky je možné realizovat použitím silných a ověřených kryptografických standardů s dostatečnou délkou klíče, například použitím TripleDES a AES. Ochranu proti útokům na postranní kanály je nutné realizovat během návrhu transpondéru nebo při programovaní algoritmu. Všeobecná opatření proti útokům na postranní kanály je maskování (masking) nebo skrývání (hiding). Ta mohou být realizována na úrovni hardwaru nebo softwaru. Skrývání se snaží skrýt závislost mezi prováděnými operacemi a měřeným parametrem – například přidáním šumu či vložením dummy operací. Maskování se snaží skrýt závislost na tajném klíči a vstupu. Maskování často vede k přepracování celého algoritmu, jelikož tajný klíč je před každým šifrováním sloučen operací xor s náhodnou hodnotou. Další možnou ochranou před postranními kanály je stínění kryptografického čipu nebo použití speciální bezpečné logiky (WDDL, (D)RSL, (i)MDPL). Útoku postavenému na opakování komunikace je možné zabránit použitím časových razítek, jednorázových hesel a kryptograficky kvalitních autentizací. Dále je možné používat stínění.
Analýza zabezpečení bezkontaktních čipových karet | 41
!
7 Příklady známých realizovaných útoků Nejpopulárnější útoky cílí na zisk dat a informací z transpondérů a využívají technické bezpečnostní nedostatky transpondérů. Cílem útoků je získat veškeré užitečné informace z transpondéru a následně je použít například ke kopii transpondéru sloužícího pro prokazovaní přístupu do restriktivních oblastí. Nebo data z transpondéru modifikovat například zvýšením zůstatku u systémů, které ukládají informace o dostupné částce na transpondér. Společným znakem těchto útoků je často nutnost prolomení bezpečnostních opatření transpondérů. Příkladem úspěšného útoku může být prolomení šifry CRYPTO1 používané u stále velmi rozšířených karet MIFARE Classic nebo využití nedokonalostí v implementaci u první verze MIFARE DESFire – MF3ICD40.
7.1 Útoky na CRYPTO-1 Šifra CRYPTO-1 byla představena v kapitole o MIFARE Classic. Schéma šifry znázorňuje obrázek 5.2. Vznikla jako proprietární šifra a její popis byl společností NXP Semiconductors utajován. Koncem roku 2007 byla publikována práce Karsten Nohl, Jan Krissler (Starbug) a Henryk Plötz z University of Virginia, která rekonstruovala schéma šifrovaní z čipu MIFARE Classic. Práce použila hardwarového reverzního inženýrství. Tento postup, používá postupného obrušovaní čipu ASIC s pořizováním fotografií jednotlivých vrstev a následné rekonstrukce zapojení jednotlivých logických obvodů. Tímto postupem bylo zjištěno, že čip MIFARE Classic je složen z 10 000 logických hradel. Tým okolo doktora Nohla se zaměřil na hradla XOR, které se nejčastěji používají pro realizaci kryptografických algoritmů. Následně tak byly identifikovány LSFR registry a poté bylo též identifkováno zapojení celé šifry. Identifikací šifry CRYPTO-1 tak začal konec bezpečnosti karet MIFARE Classic, bohužel ne konec karty jako takové. [28] Obrázek 7.1 znázorňuje příklad hardwarové realizace jednotlivých hradel technologií CMOS.
Analýza zabezpečení bezkontaktních čipových karet | 43
MUX
XOR
FLIP-FLOP
Obrázek 7.1: Fyzická realizace CMOS hradel [29]
Kryptoanalýza šifry CRYPTO-1 ukázala několik slabých míst, například šifra neobsahuje nelineární komponentu ve zpětné vazbě, a tím šifra neumožňuje perfect forward secrecy. Dalším slabým místem je, že výstupní bity jsou definovány pevně danou podmnožinou bitů. Tyto slabiny umožnily realizovat útok, který byl rychlejší než útok hrubou silou. První varianta útoku tak umožnila realizovat útok s náklady 100 USD za 1 týden. [28] Následně byly zjištěny další slabiny v implementaci CRYPTO-1 - Parity Weaknesses a Nested Authentications. [30] Parity Weaknesses představuje závažnou chybu při použití CRYPTO-1 v kartách MIFARE Classic. Tato chyba je způsobena tím, že dle normy ISO/IEC 14443 následuje po každém odeslaném bytu jeden bit parity, ten by měl byt počítán z šifrového textu, ale návrh společnosti NXP používá k výpočtu parity otevřený text. [30] Nested Authentications umožňuje útočníkovi při znalosti klíče k jednomu sektoru realizaci rychlého útoku vedoucího k prolomení všech ostatních sektorů. Jakmile čtečka komunikuje šifrovaně s transpondérem, je možné odeslat příkaz k autentizaci pro jiný sektor, který je odeslán šifrovaně. Po odeslání žádosti o přístup k dalšímu sektoru jsou vnitřní stavy šifry nastaveny pro další klíč a následně začne nový handshake. V tomto případě je ovšem výzva od transpondéru šifrovaná, délka výzvy je 2 byte, což představuje pouze 216 možností, které může útočník jednoduše
44 | Analýza zabezpečení bezkontaktních čipových karet
vyzkoušet a obnovit tak 32 bitů keystreamu. Při využití Parity Weaknesses je počet kombinací snížen na 213 možností. [30] V roce 2009 byl prezentován asi nejrychlejší útok, který vyžaduje komunikaci pouze s transpondérem (nikoliv s terminálem, který zná klíč jako některé útoky). Tento útok (popsán ve [16]) vyžaduje v průměru pouze 300 dotazů a při HW realizaci je možné první klíč prolomit za 10 sekund a následně použít Nested Authentications pro zjištění ostatních klíčů. Celkový počet výpočtů pro tento útok je přibližně 222.
7.2 Útoky na MIFARE DESFire V roce 2002 vydala společnost NXP první verzi transpondéru MIFARE DESFire, která oproti verzi Classic používá blokovou šifru Triple-DES, která se skládá ze tří průběhů blokové šifry DES, první a poslední průběh v módu šifrovaní, druhý průběh v módu dešifrovaní. Triple-DES s délkou klíče 112 bit nebo 168 bit v dnešní době představuje oproti jednoduchému DES stále kvalitní zabezpečení proti útoku hrubou silou. Navíc je DES/Triple-DES ověřeným standardem, který netrpí tak vážnými nedostatky jako CRYPTO-1. [15] Po rozšíření RFID systémů a prolomení nejrozšířenějšího transpondéru MIFARE Classic byl v roce 2011 realizován úspěšný útok na MIFARE DESFire univerzitě Ruhr-Universität Bochum týmem okolo profesora Paara (Timo Kasper, David Oswald a Christof Paar). K realizaci útoku na MIFARE DESFire, v práci [16], byla použita technika postranních kanálů. K útoku bylo použito měření EM pole. Pro úspěšný útok bylo nutné naměřit přes 10 000 průběhů, které byly následně analyzovány pomocí CPA – Correlation Power Analysis. CPA je varianta Differential Power Analysis, která jako statistickou analýzu používá korelační koeficient. Útok byl realizován na MIFARE DESFire ve variantě MF3ICD40. Společnost NXP zareagovala ukončením prodeje varianty MF3ICD40 a doporučila přechod na variantu známou jako MIFARE DESFIRE EV1, která byla uvedena na trh 2008. Varianta EV1 byla také certifikována na Common Criteria EAL 4+. [15]
Analýza zabezpečení bezkontaktních čipových karet | 45
Ačkoliv varianta MF3ICD40 byla prolomena, lze systémy postaveny na této variantě považovat do jisté míry za stále bezpečné, jelikož útok vyžaduje dlouhodobý přístup ke kartě a je k němu potřeba speciální a drahé vybavení. [15]
7.3 Útoky na Google Wallet Jedná se o systém od společnosti Google, který umožňuje využívat telefony s OS Android a NFC technologií jako bezkontaktní platební kartu. Systém dovoluje čerpat finanční prostředky přes informace z klasické platební karty (jméno držitele, číslo karty, exspirace a CVV kódu), nebo je možné předem dobít účet u Google. Přistup k aplikaci je chráněn čtyřmístným PINem. Veškeré informace o kontaktních platebních kartách by měly být uloženy na zabezpečené paměti mimo standardní systém. Nicméně analýza od společnosti viaForensics zjistila, že lze získat některé důvěrné informace, jako je jméno držitele, konec platnosti, poslední čtyři čísla karty a emailovou adresu. Takto získaná data není možno použít například přímo k platbě, ale je možné je využít k sociálnímu inženýrství pro získání dalších dat. [31, 32] [31] [32] Dále jsou známy útoky, které při získání telefonu umožňovaly obejít ochranu PINem nebo útok, který využíval chybu v původní podpoře od společnosti Google, kdy po první aktivaci uživatel obdržel na účet 10 USD. Chyba v implementaci ale umožnila útočníkovi získat 10 USD vícenásobně. [31, 32]
7.4 Útoky na VISA PayWave U karty VISA PayWave bylo objeveno několik bezpečnostních nedostatků. Jedním z potencionálních rizik je, že karta nevyžaduje žádnou autentizaci terminálu pro přenos informací o kartě. Z karty lze tak vyčíst běžnou čtečkou bez znalosti uživatele číslo karty, jméno vlastníka a datum platnosti. Další komunikace již vyžaduje šifrování. Posledním parametrem, který je tak potřebný k provedení online platby je CVV kód, který ovšem není uložen nikde v digitální podobě na kartě. CVV kód představuje poslední úroveň ochrany před zneužitím. K nalezení platného CVV kódu
46 | Analýza zabezpečení bezkontaktních čipových karet
stačí vyzkoušet při útoku hrubou silou jen 1000 kombinací, takovému postupu ale zamezují další ochranné mechanismy banky. Ze získaných informací je ale možné vyrobit plastovou kopii karty, která by byla akceptována v obchodech vybavených pouze imprinterem.
Analýza zabezpečení bezkontaktních čipových karet | 47
!
8 Analýza a návrh přepojovacího útoku Přepojovací útok, který byl popsán v kapitole o klasifikaci útoků a schematicky znázorněn na obrázku 6.3, byl vybrán k realizaci pro svou nebezpečnost v možnosti použití na libovolný transpondér. Z popisu útoku je patrné, že je nutné vybrat zařízení, které bude fungovat jako čtečka bezkontaktních karet a druhé zařízení, které umožní emulaci bezkontaktních karet. Následně je nutné vybrat vhodné komunikační rozhraní k propojení těchto dvou zařízení. Přepojovací útok byl klasifikován jako útok na fyzické vrstvě. Realizace na této úrovni by ovšem byla velice komplikovaná, a protože útok je cílen na transpondéry dle normy ISO/IEC 14443A, je možné realizovat útok na druhé vrstvě dle klasifikace útoků. Díky tomuto kroku není nutné vyvíjet veškeré komponenty, ale je možné použít již některá hotová zařízení. To vede k ušetření času a nákladů, které by bylo nutné při vývoji útoku na fyzické vrstvě investovat a to bez výrazného omezení funkčnosti.
8.1 RFID rozhraní Díky přechodu na vyšší vrstvu je možné jako podvodnou čtečku vybrat libovolnou čtečku na trhu, která podporuje normu ISO/IEC 14443A. Vybrat zařízení vhodné pro emulaci transpondéru je ovšem složitější. Existují dvě základní skupiny zařízení umožňujících emulaci, speciálně vytvořené zařízení pro emulaci transpondéru nebo čtečky, které je možné použít i jako emulátor. Speciální zařízení pro emulaci umožňují většinou kompletní emulaci více typů RFID systémů, příkladem může být zařízení Proxmark31 vytvořen komunitou jako OpenSource projekt nebo zařízení určené pro profesionální bezpečnostní analýzu
1!!http://proxmark3.com/!
Analýza zabezpečení bezkontaktních čipových karet | 49
RFID systémů, například zařízení ProxiSpy1, které se používá především pro analýzu protokolu. Nevýhodou těchto speciálních zařízení je cena a složitá manipulace. Oproti tomu čtečky umožňující emulaci jsou mnohem dostupnější (ceny jsou více než desetinové) a pro potřeby realizace útoku na RFID systémy podle ISO/IEC 14443A jsou často dostačující a nezpůsobují výrazná omezení. Proto byla zvolena tato skupina. Tato volba navíc dovolila pro realizaci útoku vybrat stejné zařízení pro potřeby čtečky a emulátoru. Přehled vlastností zvažovaných RFID rozhraní se nachází v tabulce 3. Tabulka 3: vlastnosti RFID rozhraních !
cena!
PN532!Breakout! Board! TRF7970!EVM! Proxmark!3! ProxiSPY!
50!USD!
mód! čtečky! ANO!
99!USD! 229!USD! ???!USD!
ANO! ANO! ANO!
mód!emulace! Omezená!(UART/SPI/I2C);! úplná!přes!S2C! Omezená! ANO!–!pouze!106!Kb/s! ANO!
odposlech! komunikace! Pouze!z! terminálu! NE! ANO! ANO!
Jako čtečka/emulátor byl na základě analýzy vybrán čip od společnosti NXP, která stojí za nejpoužívanější rodinou transpondérů - MIFARE. Konkrétně se jednalo o čip PN532, který umožňuje fungovat v režimu čtečky i transpondéru. Nevýhodou tohoto čipu je, že vyžaduje další logiku, která se bude starat o konfiguraci čipu a přeposílání dat mezi čtečkou a emulátorem. 8.1.1 Modul.pro.bezkontaktní.komunikaci.b.PN532.. PN532 je integrovaný modul používaný ke komunikaci s bezkontaktními transpondéry na frekvenci 13,56 MHz. PN532 je postaven na řadiči 80C51 a umožnuje pracovat v 6 režimech: •
ISO/IEC 14443A / MIFARE čtečka s podporou zápisu
•
FeliCa čtečka s podporou zápisu
•
ISO/IEC 14443B čtečka s podporou zápisu
1!!http://www.raisonance.com/~proxispy__smarth
cards__product~product__T017:4cc6848h7ij1.html!
50 | Analýza zabezpečení bezkontaktních čipových karet
•
ISO/IEC 14443A / MIFARE Classic emulátor
•
FeliCa emulátor
•
ISO/IEC 18092, ECMA 340 Peer-to-Peer
Jako komunikační rozhraní je možné zvolit jednu ze tří sběrnic: SPI, I2C a UART. Volba rozhraní se provádí hardwarově a je nutné ji zvolit před připojením k napájení. Přes tato rozhraní se komunikuje řadičem 80C51 pomocí příkazů popsaných v [33, 34]. [33] [34] Čip navíc obsahuje proprietární rozhraní S2C. S2C oproti SPI, I2C a UART nekomunikuje s interním řadičem 80C51, ale komunikuje přímo s Contactless Interface Unit. S2C sběrnice se standardně používá k připojení bezpečnostního modulu. Bezpečnostní moduly se používají ke zvýšení zabezpečení RFID systému. Tyto moduly vznikly pro použití v kritických aplikacích, kde byly pasivní RFID transpondéry nedostačující. Pokud je modul připojen k PN532 čipu vznikne aktivní transpondér, který díky napájení může umožňovat silnější zabezpečení, jako je RSA šifrovaní s velkým modulem. S2C rozhraní je tak jednou ze dvou možností, jak realizovat emulaci transpondéru. Bohužel použití tohoto rozhraní pro potřeby emulace je velice komplikované, jelikož je nutné například řídit antikolizi, která vyžaduje přesné časovaní. [33] Další způsob realizace emulace je přes standardní komunikační rozhraní konfigurací interního řadiče. Při správném nastavení interní logika čipu PN53 řídí komunikaci dle normy ISO/IEC 14443A a to až do části 4. Nevýhodou použití interní logiky jsou omezení stanovená firmwarem řadiče čipu. Mezi hlavní omezení patří podpora pouze 4 Bytového UID, který musí začínat 0x08, dalším fixním parametrem je ATS, které je nastaveno na 75 33 92 03 a jedinou uživatelsky nastavitelnou částí jsou tak historické bajty. Dle normy tak emulátor podle ATS podporuje příjem zpráv s maximální délkou 64 Bytů. Podporuje přenosovou rychlost 106 Kb/s, 212 Kb/s a 424 Kb/s oběma směry. Dále dle ATS garantuje emulátor terminálu odpovědět po přijetí příkazu do 154 ms. [33] Pro útok byla zvolena vývojová deska s PN532 Breakout Board, která mimo zmíněný čip PN532 obsahuje anténu a další potřebné komponenty.
Analýza zabezpečení bezkontaktních čipových karet | 51
8.2 Řídící logika Díky výběru PN532 čipu, který neobsahuje žádnou programovatelnou řídící logiku oproti Proxmarku3 je nutné použít pro potřeby útoku externí řídící logiku. Tu je možné realizovat například pomocí počítače s nainstalovanou libnfc1 knihovnou. Libnfc knihovna umožňuje komunikovat s PN532 přes UART rozhraní. Součástí knihovny je také program pro relay útok, ale spojení je extrémně pomalé a díky tomu i velmi nestabilní. Realizace útoku pomocí počítače je navíc velmi neefektivní a běh útoku je také energeticky náročný. Další možností je použít jednoúčelový mikrořadič, kterých na dnešním trhu existuje velké množství. Po prvotní analýze se zdálo, že pro potřeby realizace útoku nejsou nutné žádné specifické vlastnosti a funkce řadiče, proto byl řadič vybírán s ohledem na rychlý a snadný vývoj. Díky předchozím zkušenostem s vývojem aplikací pro řadiče od společnosti Atmel a kvalitní podpoře byl zvolen řadič Atmega1280 se zavaděčem podporujícím vývoj pod Arduino SDK. Po implementaci první varianty útoku se ale ukázalo, že pro další vývoj je řadič nedostačující, zvláště kvůli nedostatečné rychlosti a absenci PLL nebo pokročilejšího baudrate generátoru, který by umožnil zrychlit komunikaci s čipem PN532. Jako náhrada byl zvolen mikrořadič AT32UC3A3256, který obsahuje jak PLL, tak fractional baudrate generátor, které umožňují zrychlení komunikace mezi jednotlivými komponentami. 8.2.1 Mikrořadič.ATmega1280. ATmega1280 je 8 bitový mikroprocesor s 32 registry postavený na RISC architektuře dosahující při maximálním taktu 16 MHz propustnost 16 MIPS. Je vybaven 128 KB programovou pamětí, 4 KB EEPROM a 8 KB SRAM. Maximální spotřeba čipu se při operační frekvenci 16 MHz s napájecím napětím 5 V pohybuje okolo 20 mA (100 mW). Mikroprocesor obsahuje velké množství periferií, například [35]:
1
http://www.libnfc.org
52 | Analýza zabezpečení bezkontaktních čipových karet
•
čtyři programovatelné sériové linky
•
master/slave SPI
•
I2C bytově orientované
•
watchdog
Arduino SDK dovoluje snadnou konfiguraci a použití všech periferií, a je proto rozšířené u široké odborné i laické veřejnosti, jelikož dovoluje vývoj aplikací v jazyce C a nevyžaduje detailní znalosti datasheetu řadiče. Detailnější informace o mikroprocesoru je možné nalézt v [35], popis knihovny Arduino a vývojového prostředí je možné nalézt na internetových stránkách arduino.cc Pro první variantu útoku byla zvolena vývojová deska Seeeduino Mega1. 8.2.2 Mikrořadič.AT32UC3A3256.. Podobně jako předchozí mikroprocesor pochází čip UC3 též od společnosti Atmel. Oproti modelu ATmega1280 se jedná o mnohem pokročilejší 32 bitový RISC mikroprocesor se 3 stupňovým pipeline (prefetch, decode, execute). Procesor obsahuje jednu ALU, MUL a load-store jednotku. Mikroprocesor umožňuje běh až na taktu 66 MHz s propustností téměř 100 DMIPS. Obsahuje 4 kanálový DMA řadič a 8 kanálový periferní DMA (PDCA) řadič, který umožňuje rychlý přenos mezi pamětí a například sériovou linkou. Periferie jsou s CPU spojeny přes High Speed Bus Matrix (HSB Matrix). HSB Matrix je implementována jako vícevrstvá sběrnice, která dovoluje až 16 paralelních master-slave spojení. Navíc oproti čipu ATmega1280 obsahuje dvojici PLL s násobičkou a děličkou frekvence v rozsahu hodnot 0-15. Také obsahuje fractional baudrate generátor pro sériovou linku, který je méně závislý na taktu procesoru a umožňuje tak přesnější nastavení rychlosti. [36] Pro vývoj optimalizované varianty útoku byly zvoleny vývojové desky přímo od společnosti Atmel, konkrétně se jednalo o dvojici UC3-A3 Xplained.
1
http://www.seeedstudio.com/wiki/index.php?title=Seeeduino_Mega
Analýza zabezpečení bezkontaktních čipových karet | 53
8.3 Bezdrátové komunikační rozhraní Posledním prvkem pro realizaci relay útoku je bezdrátové komunikační rozhraní, které bude přenášet data mezi čtečkou a emulátorem, popřípadě mezi jejich řídící logikou. Výběr komunikační technologie ovlivní dosah útoku, ten tak podle vybrané technologie může mít dosah v jednotkách metrů až po několik set kilometrů. Další parametr, který je klíčový pro výběr vhodné komunikační technologie, je latence. Tabulka 4 porovnává technologie dle dosahu, latence, propustnosti a rychlosti. Jednotlivé parametry v tabulce mohou být závislé na dalších parametrech (prostředí, vzdálenost, antény zvláště u WiFi a WiMAX, frekvence). Tabulka 4: přehled parametrů komunikačních technologii Technologie! GSM! WiFi! WiMAX! Bluetooth! ZigBee!
Dosah![m]! ~!celosvětové! 30h100!(~1!km)! 50!000! 150h1000! 10h75!
Latence![ms]! 20!h!200! 10!–!25! 25!–!40! 4!–!20! 15!–!150!
Rychlost![Kbps]! 60! 300!000! 100!000! 24!000! 250!
I přes možnost komunikace na extrémní vzdálenosti nebyla použita GSM technologie z důvodu vysoké latence a malé přenosové rychlosti a také velké prodlevy v navázání spojení, které se pohybuje v jednotkách vteřin. WiMAX technologie nebyla použita z důvodu cen jednotlivých modulů. Po vyloučení dvou nevhodných technologií bylo nutné zvolit mezi WiFi, bluetooth a ZigBee. Technologie ZigBee oproti WiFi a bluetooth nepřináší žádné výhody, proto nakonec jako kompromis mezi vzdáleností, rychlostí a latencí byla zvolena technologie bluetooth. Konkrétně byl zvolen modul OBS410 od společnosti Connectblue pro svoji nízkou latenci, která je v rozmezí 4-7ms. 8.3.1 Bluetooth.modul.OBS410i. OBS410i je bluetooth modul pracující dle verze 2.1 a připraven pro verzi 3.0. Modul má dosah až 150 metrů (Class 1). Podporuje SPP1, DUN2 profily. Je vybaven
1!Serial!Port!Profile!–!profil!pro!emulaci!sériové!linky! 2!Dialhup!Networking!Profile!
54 | Analýza zabezpečení bezkontaktních čipových karet
UART rozhraním (včetně HW řízení toku) pracujícím s rychlostí až 460,8 Kbps. Změřená latence ve vzdálenosti 15 m dosahovala 4-7 ms. [37, 38] [37] [38] Pro realizaci pokročilejší varianty útoku byl modul OBS410i nahrazen modulem OBS421i, který dovoluje komunikaci až na vzdálenost 300 metrů o rychlosti 1,36 Mb/s. Navíc je tento modul připraven na standard bluetooth verze 4.0. [37, 38]
Analýza zabezpečení bezkontaktních čipových karet | 55
!
9 Realizace přepojovacího útoku Pro potřeby práce byly realizovány dvě varianty přepojovacího útoku. Obě varianty útoku byly provedeny pomocí dvojice PN532 Breakout Board a dvou bluetooth
modulů.
První
varianta
útoku
byla
realizována
pomocí řadiče
ATmega1280. Přestože tato implementace byla funkční, byly identifikovány slabá místa, která měla velký vliv na zpoždění přenosu. Tyto nedostatky byly odstraněny ve druhé pokročilejší variantě útoku využívající dvojici UC3 řadičů.
9.1 RFID bluetooth relay device1 První varianta útoku byla realizována s dvojicí PN532 Breakout Board, dvěma moduly bluetooth OSB410i a jako řadič byla použita deska Seeeduino Mega s čipem ATmega1280. Výběr těchto součástek byl navržen jako kompromis mezi rychlým vývojem a nízkými pořizovacími náklady. Pořizovací náklady včetně dvojice napájecích modulů a akumulátorů jsou přibližně 4500Kč. Na obrázku 9.1 je znázorněno schématické zapojení relay útoku včetně přenosových rychlostí. Rychlost byla nastavena podle výchozí komunikační rychlosti čipu PN532 z důvodu problematické rekonfigurace BT modulů. Pro testovaní byla použita Java Card s aplikací od Jiřího Bučka, která přes dvojicí APDU příkazů umožňovala zápis a čtení z paměti RAM. Tato aplikace byla navržena tak, aby minimalizovala zpoždění v rámci karty, které je jedním z klíčových parametrů pro implementaci protiopatření - distance bounding protocol. Zpoždění komunikace oproti komunikaci bez útoku se pohybovalo v závislosti na velikosti zprávy v rozmezí 36 ms a 214 ms v závislosti na délce přenášené zprávy. Sekvence příkazů pro provedení relay útoku se nachází v příloze C.
1https://bitbucket.org/fornusek/relay_sgs11/wiki/RFIDBluetoothRelayDevice!
Analýza zabezpečení bezkontaktních čipových karet | 57
Obrázek 9.1: RFID bluetooth relay device
9.2 Advanced RFID bluetooth relay device1 Po ověření funkčnosti útoku bylo u první varianty zjištěno několik slabých míst, která způsobovala nárůst zpoždění. Hlavním zdrojem zpoždění bylo použití pouze jednoho řadiče. Absence řadiče zapříčinila nutnost posílání celých příkazů přes bluetooth a nemožnost zvýšit přenosovou rychlost komunikace. Proto byl realizován vylepšený návrh, který byl doplněn o další řadič, navíc byly použity výkonnější a pokročilejší UC3 čipy. Obě strany útoku tak měly svůj vlastní řadič, to dovolovalo rychlejší inicializaci útoku a díky výkonnějším čipům bylo možné použít i vyšší přenosové rychlosti. U komunikace mezi řadičem a čipem PN532 bylo možné použít rychlost až 1, 288 Mb/s (místo 115,2 Kb/s) a bezdrátový přenos díky výměně bluetooth modulů za rychlejší OBS421i dovoloval přenos na rychlosti 1,36 Mb/s při zachováním stejného zpoždění (cca 4-7 ms) na vzdálenost až 300 metrů. Přítomnost řadičů na obou stranách umožnila komprimovat přenášené zprávy mezi bluetooth moduly. Na obrázku 9.2 je znázorněno zapojení celého útoku. Průměrně tak zpoždění oproti přímé komunikaci bylo u 16 bytových zpráv 23 ms a u 240 bytových zpráv 124 ms. To představuje snížení zpoždění oproti první realizaci relay útoku až o 50%. Sekvence příkazů pro realizaci relay útoku se nachází v příloze C.
1https://bitbucket.org/fornusek/relay_sgs11/wiki/AdvancedRFIDBluetoothRelayDevice!!
58 | Analýza zabezpečení bezkontaktních čipových karet
Obrázek 9.2: Advanced RFID bluetooth relay device
Analýza zabezpečení bezkontaktních čipových karet | 59
!
10 Testování a měření Dvojice přípravku byla testována s Java Card a Visa PayWave, u kterých bylo možné realizovat libovolnou komunikaci a u Java Card včetně správy aplikací, která probíhá šifrovaně. U rodiny MIFARE se nepovedlo realizovat všechny typy komunikace z důvodu přísných požadavku na časování, které není možné přes přepojovací útok dodržet. Všechny příkazy se povedlo přepojit pouze u nejjednoduššího typu MIFARE Ultralight. Jak bylo řečeno, klíčovým parametrem pro realizaci protiopatření proti relay útoku je doba odezvy mezi příkazem a jeho odpovědí. Pro měření odezvy byla použita JavaCard s aplikací od Jiřího Bučka umožňující zápis a čtení z paměti RAM, čímž se minimalizovalo zpoždění vzniklé transpondérem. Celkem byly použity dva mechanismy měření zpoždění, zápis do paměti RAM (velké množství dat z terminálu a v opačném směru pouze potvrzení o úspěšném zápisu) a čtení z paměti RAM (relativně krátká žádost o data z terminálu a velké množství dat v opačném směru).
10.1 Čtení dat z transpondéru Čtení dat z RAM transpondéru bylo měřeno v rozmezí velikosti zpráv od 16 bytů do 240 bytů s krokem 32 bytů. Délka žádosti o data z terminálu byla o konstantní délce 7 bytů. Celkem proběhlo 4000x měření, to představuje pro každou délka 500 opakování. Graf 1 znázorňuje závislost průměru zpoždění na délce zprávy. Celkem bylo měřeno 5 realizací útoku: •
RFID bluetooth relay device (RBRD + BT)
•
RFID bluetooth relay device, bluetooth nahrazeno pevným metalickým spojem (RBRD)
•
Advanced RFID bluetooth relay device (ARBRD + BT)
•
Advanced RFID bluetooth relay device, bluetooth nahrazeno pevným metalickým spojem (ARBRD)
•
Pasivní útok, pomocí metalického spojení
Analýza zabezpečení bezkontaktních čipových karet | 61
Poslední varianta implementace útoku byla realizována za použití 10 metrového USB kabelu, na jehož konci byly umístěny antény ze síťového UTP kabelu ve tvaru transpondéru. Celý přípravek je pasivní a bez jakékoliv elektroniky, jedná se tak o implementaci relay útoku na fyzické úrovni. Měření útoků bez bluetooth technologie bylo realizováno, aby se ověřila závislost zpoždění na použité bezdrátové technologii. Navíc v případě požadavku na změnu bezdrátové technologie je možno zjistit průměrné zpoždění bez nutnosti opakování celého měření (přičtením průměrného zpoždění na bezdrátové lince ke zpoždění u útoku bez bluetooth modulů). K měření byla použita upravená aplikace pn53x-tamashell z knihovny libnfc.org, která byla rozšířena o měření času.
Graf 1: měření čtení
Jak je z grafu 1 patrné, u realizace pomocí aktivních útoků by čtečka mohla detekovat probíhající útok na základě měření času mezi výzvou a odezvou. Zpoždění je například u realizace prvního útoku (RBRD + BT) až trojnásobné oproti přímé komunikaci bez útoku. Přestože se pomocí vylepšené varianty útoku (ARBED + BT) povedlo zpoždění snížit pouze na 1.5 násobek oproti přímé komunikaci, bylo by i tak možné na základě měření zpoždění tento útok detekovat.
62 | Analýza zabezpečení bezkontaktních čipových karet
Pasivní přípravek zde ukazuje svoji obrovskou výhodu - téměř nulové a nedetekovatelné zpoždění.
10.2 Zápis dat do transpondéru Měření zápisu bylo realizováno podobně jako měření čtení s tím rozdílem, že zápis byl realizován pouze pro délky 16 bytů a 22 bytů. Takto omezený rozsah byl zapříčiněn tím, že v případě, že emulátor přijal přes RFID rozhraní větší množství dat v těle zprávy než 22 bytů, obdržel řadič emulátoru návratovou hodnotu signalizující přetečení vyrovnávací paměti. Tento problém se nepovedlo odstranit, i když by čip PN532 měl dle ATS být v režimu emulace schopen přenášet zprávy o velikosti 64 bytů. Graf 2 znázorňuje závislost průměrného zpoždění na velikosti
[ms]&
zprávy. 70! Bez!útoku!
60!
Pasivní!přípravek! RBRD!+!BT!
čas&
50!
ARBRD!+!BT!
40!
ARBRD!
30!
RBRD!
20! 10! 0! 16!
22! velikost&[B]&
Graf 2: měření zápisu
Graf 2 je velmi podobný grafu 1 - čtení. I zde je nejpomalejší a s největším zpožděním první varianta realizovaného útoku – RBRD s BT. Podobně jako u čtení by bylo možné obě varianty aktivních útoků detekovat na základě měření zpoždění. Navíc u obou variant aktivních útoků selhala komunikace při zápisu většího množství dat než 22 Bytů.
Analýza zabezpečení bezkontaktních čipových karet | 63
!
11 Protiopatření - Distance-Bounding protocol Distance-Bounding
protocol
(D-Bp)
je
základním
a
nejpoužívanějším
protiopatřením proti realy útoku. Distance-Bounding protocol využívá konečné rychlosti světla. D-Bp tak měří čas odezvy mezi transpondérem a terminálem, implementace tohoto protiopatření je možná jak na straně transpondéru tak terminálu, popřípadě na obou stranách. Pokud je v praxi nasazen, je nejčastěji realizován na straně terminálu. Schématické znázornění principu D-Bp je na obrázku 11.1. Transpondér
Úto ník
te ka
Identifika ní fáze
Odpov
as útoku
Výzva
as p enosu T
Fáze m ení D-Bp
Obrázek 11.1: Distance bounding protocol [39]
V případě, že by zpoždění ΔT bylo mezi výzvou a odpovědí větší než povolená doba zpoždění, byla by komunikace zamítnuta. V opačném případě by se pokračovalo v komunikaci. Jediným neznámým parametrem je tedy velikost hodnoty ΔT, která musí být nastavena dle použitého typu transpondéru. Nalezení správní hodnoty ΔT je ale u velkých systému problematické. V případě, že systém obsahuje více typů transpondérů (což je u velkých systémů pravděpodobné), je nutné, aby velikost ΔT
Analýza zabezpečení bezkontaktních čipových karet | 65
umožnila komunikaci i nejpomalejšímu typu transpondéru, ale zároveň aby útočník nemohl realizovat útok na nejrychlejší variantu transpondéru. Gerhard P. Hancke, Markus G. Kuhn v roce 2005 navrhli D-Bp pro RFID systémy (protokol vychází z konceptu od Stefan Brands a David Chaum z roku 1993) [39, 40]. Protokol je rozdělen na dvě fáze tzv. pomalou a rychlou. Protokol vychází z toho, že transpondér i terminál mají společný tajný klíč K a oba mají stejnou pseudonáhodnou kryptografickou funkci f (např. Hash) V pomále fázi terminál odešle sadu náhodných bytů Nv do transpondéru a oba nezávisle spočítají f (Nv||K), výsledek pak rozdělí na dva stejné bloky R0 a R1 a uloží do posuvných registrů. Navíc si terminál vygeneruje sekvenci náhodných bitů C0.....Cx. Po pevně daných M taktech začne rychlá fáze. V této fázi postupně posílá terminál sekvenci náhodných bitů C a měří odezvu mezi výzvou a odpovědí. Na každý přijatý bit tak transpondér odpovídá dle hodnoty Cj bitu. V případě, že Cj = 0, tak se jako odpověď odešle bit z bloku R0 a oba registry se posunou o jeden bit. V případě, že Cj = 1, odešle se jako odpověď bit z bloku R1 a opět se oba registry posunou o jeden bit. Po odeslání celé náhodné sekvence C0.....Cx se provede kontrola, a pokud jsou všechny hodnoty korektní a všechny odpovědi se vešly do předepsaného času, který by měl být díky absenci výpočtu totožný pro všechny typy karet, pokračuje se v další komunikaci. Pro znázornění je celý postup zobrazen na obrázku 11.2.
66 | Analýza zabezpečení bezkontaktních čipových karet
Ov ovatel (RFID reader)
Ov ovatný (RFID transpondér)
Tajný klí K Náhodná funkce h
Tajný klí K Náhodná funkce h
generování náhodné hodnoty Nv
Nv
Výpo et h(K || Nv) rozd lení výsledku na p l do posuvných registr R0 a R1
generování nahodných bit C1,…,Ck C1 = 0 =1 C2 = 1 =1
10011011
R0
01110110
R1
0011011 1110110
Výpo et h(K || Nv) a 0 1 rozd lení do R || R
Cn = 0
porovnání s =1
1 0
Obrázek 11.2: Realizace D-Bp dle Gerhard P. Hancke, Markus G. Kuhn [40]
Tato implementace protokolu se hodí převážně do systému, kde se používají RFID transpondéry umožňující běh vlastní aplikace. Pokud systém používá paměťové transpondéry, je nutné realizovat D-Bp protokol bez spolupráce transpondéru, tzn. nalézt transakci, která u většiny typů transpondéru trvá podobnou dobu a současně nelze její hodnotu odpovědi určit předem. Další možností ochrany před relay útokem je, že někteří výrobci používají pro proprietární transakce extrémně přísné nároky na časování, a proto pak danou transakci není možné přeposlat. Příkladem může být rodina MIFARE, která při autentizaci vyžaduje odpověď do 1 ms. Takto přísné časování je ale možno dodržet pouze za předpokladu, že čtečka je schopna daný typ transakcí realizovat bez nutnosti komunikace s dalšími prvky v RFID síti, např. externím řadičem čtečky nebo middlewarem. Z měření z předchozí kapitoly vyplývá, že všechny aktivní varianty útoků jsou několikanásobně pomalejší než přímá komunikace. Díky naměřeným časům a za podmínky, že by RFID systém používal podobný typ transpondéru, by bylo možné stanovit ΔT, při jehož překročení by se detekoval útok. Další možností by bylo díky
Analýza zabezpečení bezkontaktních čipových karet | 67
programovatelné JavaCard realizovat D-Bp dle Gerhard P. Hancke a Markus G. Kuhn. Použití D-Bp jako protiopatření ale selhává proti pasivní variantě útoku, kde detekovat zpoždění čtečkou je téměř nemožné, to je na metalickém vedení téměř nulové. Provedení útoku je díky fyzickým parametrům velice nápadné, a tak nepředstavuje tak velkou hrozbu pro RFID systémy jako bezdrátová realizace. Proti pasivnímu útoku je tak vhodné použít jako protiopatření doplňkové techniky ochrany, např. autentizace PINem nebo kamerový systém.
68 | Analýza zabezpečení bezkontaktních čipových karet
12 Analýza VISA PayWave České spořitelny K analýze byla použita bezkontaktní debetní karta vydaná Českou spořitelnou a.s. Karta byla čtena jak přes kontaktní rozhraní tak i s použitím bezkontaktního rozhraní. Veškeré příkazy přes bezkontaktní rozhraní bylo možné úspěšně realizovat přes relay zařízení. Relay útok ale nebyl realizován na skutečnou platební transakci z důvodu možných právních následků. Z karty bylo možné bez znalosti PINu bezkontaktně přečíst1: •
jméno a příjmení držitele karty
•
datum platnosti
•
číslo karty
•
PIN counter
•
veřejné parametry RSA a digitální podpisy
•
metody pro ověření držitele karty
Podporované metody ověření držitele karty: •
online autentizace PINem
•
offline autentizace PINem šifrovaný přenos
•
offline autentizace PINem nešifrovaný přenos
Přes kontaktní rozhraní se povedla verifikace držitele karty pomocí offline autentizace PINem přes nešifrovaný přenos. Dále se povedlo získat výzvu od karty, která je bezpodmínečně nutná pro offline autentizaci PINem přes šifrovaný přenos. Ovšem při komunikaci přes bezkontaktní rozhraní se při pokusu o offline autentizaci PINem nešifrovaným přenosem vrátila návratová hodnota 0x6985, což znamená, že podmínky pro použití nebyly splněny. Stejná návratová hodnota byla vrácena při žádosti o výzvu používané pro šifrovaný přenosu PINu. Díky tomuto omezení není možné přes bezkontaktní rozhraní realizovat útok Denial-of-Services jako při komunikaci přes kontaktní rozhraní.
1
Použité příkazy pro získání informací se nacházejí v příloze B
Analýza zabezpečení bezkontaktních čipových karet | 69
Přesto zde zůstává riziko neoprávněné komunikace a zisku citlivých údajů. Aby se zamezilo případné neoprávněné komunikaci, je vhodné použit pouzdra blokující jakoukoliv komunikaci s kartou.
70 | Analýza zabezpečení bezkontaktních čipových karet
13 Závěr Používání bezkontaktních systémů přináší oproti kontaktním transpondérům mnoho výhod, ale současně s sebou nese nová rizika, která je nutné zahrnout při výběru komponent a návrhu systému. Byl představen nejpoužívanější standard pro RFID systémy ISO/IEC 14443 a také nejpoužívanější transpondéry pracující dle této normy. Jednotlivé transpondéry byly detailně popsány a u nejrozšířenějšího transpondéru MIFARE Classic byl navíc nastíněn postup, který vedl k odtajnění proprietární šifry CRYPTO-1. U pokročilejšího transpondéru MIFARE DESFire byl rozebrán útok na implementaci šifry TDES, který úspěšně vedl k zisku celého tajného šifrového klíče. Dále byla v kapitole klasifikace RFID útoků rozebrána většina typů možných hrozeb, které jsou spojeny s použitím bezkontaktní technologie a jejich protiopatření. K nejzávažnějším hrozbám pro dnešní bezkontaktní systémy patří možnost vytváření klonů transpondérů, zisk dat a možnost neoprávněné modifikace informací na transpondéru. Jako nejúčinnější ochranou před těmito hrozbami bylo doporučeno široké spektrum protiopatření, mezi ta nejzásadnější protiopatření patří použití transpondéru s podporou kvalitní autentizace a šifrovaní. Dále bylo doporučeno vytvoření bezpečnostních postupů v době nefunkčnosti systému nebo pro případ, že by došlo ke kompromitování systému. Výrazným prvkem pro zvýšení bezpečnosti RFID systémům patří i školení uživatelů a varovaní před sociálním inženýrstvím. Hlavní část práce představovala implementaci relay útoku, který byl implementován ve dvou variantách. Oba přípravky jsou evidovány jako funkční vzorky v rejstříku informací o výsledcích1,2. Pomocí těchto přípravků se povedlo prodloužit komunikaci u transpondéru typu JavaCard a Visa PayPawave na desítky metrů. U platební karty se povedlo přenést veškeré testované příkazy a u transpondéru JavaCard se povedlo realizovat libovolnou komunikaci včetně
1
RIV/68407700:21240/11:00188412 - RFID bluetooth relay device
2
RIV/68407700:21240/11:00188421 - Advanced RFID bluetooth relay device
Analýza zabezpečení bezkontaktních čipových karet | 71
manipulace s aplikacemi uloženými na transpondéru, která probíhá šifrovaně. Jediným nalezeným omezením bylo omezení velikosti bloků dat u přenosu do transpondéru při použití testovací aplikace. Komunikace při přenosu více než 22 bytů v těle zprávy směrem do transpondéru skončila neznámou chybou. Testovací aplikace, která umožňovala čtení a zápis z paměti RAM, byla použita pro měření odezvy transpondéru. Z měření bylo zjištěno, že komunikace skrz relay útok trvá přibližně 2x – 4x déle v závislosti na délce zprávy a použitém zařízení, než při přímé komunikaci. Jako možnost obrany před relay útokem byla znázorněna varianta D-Bp pro RFID systémy od Gerhard P. Hancke a Markus G. Kuhn, která je rozdělena na dvě fáze - pomalou a rychlou. V pomalé výpočetní fázi se provedou veškeré komplikované výpočty a výsledky těchto operací se v druhé fázi pouze přenesou. Tato technika umožňuje detekovat relay útok nezávisle na typu a rychlosti karty (za předpokladu, že přenos dat z transpondéru je přibližně stejně rychlý). Pro stanovení parametrů D-Bp u systému používajícího Java Card lze využít naměřené zpoždění vzniklé během přímé komunikace. Další možnost představuje použití proprietární autentizace, které bude vyžadovat extrémně malou odezvu. V poslední časti práce byla zkoumána platební karta VISA PayWave, u které bylo zjištěno, že při neopatrném používání může útočník bez vědomí uživatele a znalosti PINu přečíst z platební karty některé důvěrné informace, zejména se jedná o jméno a příjmení držitele, číslo karty a datum exspirace. Jako ochrana před nevyžádanou komunikací bylo doporučeno použití ochranného pouzdra blokujícího komunikaci.
72 | Analýza zabezpečení bezkontaktních čipových karet
Literatura [1]
FINKENZELLER, K. RFID Handbook: Fundamentals and Applications in Contactless Smart Cards and Identification. Second Edition. Munich: WILEY, 2003. ISBN: 0470844027.
[2]
INTERNATIONAL STANDARD. ISO/IEC 14443-1: Physical characteristics. First Edition. 2000.
[3]
INTERNATIONAL STANDARD. ISO/IEC 14443-2: Radio frequency power and signal interface. First Edition. 2001.
[4]
INTERNATIONAL STANDARD. ISO/IEC 14443-3: Initialization and anticollision. First Edition. 2001.
[5]
INTERNATIONAL STANDARD. ISO/IEC 14443-4: Transmission protocol. First Edition. 2001.
[6]
ALTMAN, T. Analýza čipových karet pomocí přípravku Proxmark III. Praha: ČVUT, 2012.
[7]
VOMÁČKA, J. Autentizační systémy na bázi bezkontaktních čipových karet. Brno: Masarykova universita, 2008.
[8]
INTERNATIONAL STANDARD. ISO/IEC 7816-4: Organization, security and commands for interchange. Second Edition. 2005.
[9]
INTERNATIONAL STANDARD. ISO/IEC 7816-8: Commands for security operations. Second Edition. 2005.
[10]
NXP SEMICONDUCTORS. Mifare Smart Card ICs - Overview. [online]. [cit. 2012-12-06]. Dostupné z: http://www.nxp.com/products/ identification_and_security/smart_card_ics/mifare_smart_card_ics/#overview
[11]
NXP SEMICONDUCTORS. MIFARE Ultralight as Type 2 Tag. [online].
Analýza zabezpečení bezkontaktních čipových karet | 73
[cit. 2012-12-06]. Dostupné z: http://www.nxp.com/documents/ application_note/AN1303.pdf [12]
NXP SEMICONDUCTORS. MIFARE Classic 1K - Mainstream contactless smart card IC for fast and easy solution development. [online]. 2011 [cit. 2012-12-06]. revision 3.0. Dostupné z: http://www.nxp.com/ documents/data_sheet/MF1S50YYX.pdf
[13]
WIKIPEDIA. Crypto-1 [online]. 2012 [cit. 2012-12-21]. Dostupné z: http:// en.wikipedia.org/wiki/Crypto-1
[14]
NXP SEMICONDUCTORS. Mainstream contactless smart card IC for fast and easy solution development. [online]. 2011, verze 3.2 [cit. 2012-12-06]. Dostupné z: http://www.nxp.com/documents/short_data_sheet/ MF1SPLUSX0Y1_SDS.pdf
[15]
NXP SEMICONDUCTORS. MIFARE DESFire EV1 contactless multiapplication IC. [online]. 2010, verze 3.1 [cit. 2012-12-06]. Dostupné z: http:// www.nxp.com/documents/short_data_sheet/MF3ICDX21_41_81_SDS.pdf
[16]
KASPER, T., D. OSWALD a C. PAAR. Side-Channel Analysis of Cryptographic RFIDs with Analog Demodulation. [online]. 2011 [cit. 2012-1206]. Dostupné z: http://www.emsec.rub.de/media/crypto/veroeffentlichungen/ 2011/10/10/sca_demod_2011.pdf
[17]
NXP SEMICONDUCTORS. P5CD012 - Secure dual interface and contact PKI smart card controller. [online]. [cit. 2012-12-06]. Dostupné z: http:// www.nxp.com/products/identification_and_security/smart_card_ics/ smartmx_dual_interface_controllers/series/P5CD012.html
[18]
NXP SEMICONDUCTORS. SmartMX2 - Secure high-performance contact, dual interface and contactless smart card controller …. [online]. [cit. 2012-12-06]. Dostupné z: http://www.nxp.com/products/ identification_and_security/smart_card_ics/smartmx2/
74 | Analýza zabezpečení bezkontaktních čipových karet
[19]
Java Card [online]. [cit. 2012-12-06]. Dostupné z: http://cs.wikipedia.org/ wiki/Java_Card
[20]
EMV standard [online]. [cit. 2012-12-06]. Dostupné z: http:// en.wikipedia.org/wiki/EMV
[21]
EMVCO. Integrated Circuit Card Specifications for Payment Systems, Book 3: Application Specification. [online]. 2011, verze 4.3 [cit. 2012-12-06]. Dostupné z: http://www.emvco.com/specifications.aspx?id=223
[22]
MITROKOTSA, A. M., R. RIEBACK a S. TANENBAUM. Classification of RFID Attacks. [online]. 2008 [cit. 2012-12-06]. Dostupné z: http:// www.cs.vu.nl/~ast/publications/iwrt-2008.pdf
[23]
RCONTY. homepage - libnfc [online]. [cit. 2012-12-06]. Dostupné z: http:/ /www.libnfc.org
[24]
RIEBACK, M. R., B. CRISPO a A. S. TANENBAUM. Is Your Cat Infected with a Computer Virus? In: 4th IEEE Interantional Conference on Pervasive Computing and Communications. 2006, s. 169-79.
[25]
RISCURE. Privacy Issues with New Digital Passport. [online]. 2005. Dostupné také z: http://www.riscure.com/news-events
[26]
MANGARD, S., E. OSWALD a T. POPP. Power Analysis Attacks: Revealing the Secrets of Smart Cards. Second Edition. Springer, 2010. Dostupné také z: http://www.iacr.org/books/ 2010_sp_MangardOswaldPopp_DPA.pdf
[27]
PAAR, C., J. PELZL a B. PRENEEL. Understanding Cryptography - A Textbook for Students and Practitioners. 2nd Printing edition. Springer, 2010. ISBN 3642041000.
[28]
NOHL, K., STARBUG a H. PLÖTZ. Mifare Security. [online]. 2007 [cit. 2012-12-10]. Dostupné z: http://events.ccc.de/congress/2007/Fahrplan/
Analýza zabezpečení bezkontaktních čipových karet | 75
attachments/1049_CCC-07-Mifare-v2.pdf [29]
KRISSLER, J. (. In: Chip inspection on gate level [online]. 2012. Dostupné také z: https://wiki.crypto.rub.de/summerschool/slides/2_starbug.pdf
[30]
GARCIA, F. D. et al. Wirelessly Pickpocketing a Mifare Classic Card. [online]. [cit. 2012-12-06]. Dostupné z: http://www.cs.ru.nl/~flaviog/ publications/Pickpocketing.Mifare.pdf
[31]
Google wallet [online]. [cit. 2012-12-06]. Dostupné z: http:// www.google.com/wallet/
[32]
FORENSIC SECURITY ANALYSIS OF GOOGLE WALLET [online]. 2011 [cit. 2012-12-06]. Dostupné z: https://viaforensics.com/mobile-securitycategory/forensics-security-analysis-google-wallet.htm
[33]
PN532 [online]. [cit. 2012-12-06]. Dostupné z: http://www.nxp.com/ products/identification_and_security/reader_ics/nfc_devices/series/PN532.html
[34]
NXP SEMICONDUCTORS. PN532 User Manual. [online]. 2007, verze 2 [cit. 2012-12-06]. Dostupné z: http://www.nxp.com/documents/user_manual/ 141520.pdf
[35]
ATMEL. ATmega1280 - User Guide. [online]. 2012 [cit. 2012-12-06]. 2549P–AVR–10/2012. Dostupné z: http://www.atmel.com/Images/ doc2549.pdf
[36]
ATMEL. AT32UC3A3256 - User Guide [online]. Dostupné také z: http:// www.atmel.com/Images/doc32072.pdf
[37]
SPEZIAL. connectblue - bluetooth modul [online]. [cit. 2012-12-06]. Dostupné z: http://www.spezial.cz/connectblue/bluetooth-2-1-edr-uart-spi-i2cgpio-modul.html
[38]
CONNECTBLUE. OEM Bluetooth Serial Port Module OBS410 [online].
76 | Analýza zabezpečení bezkontaktních čipových karet
[cit. 2012-12-06]. Dostupné z: http://www.connectblue.com/products/classicbluetooth-products/classic-bluetooth-modules/bluetooth-serial-port-moduleobs410 [39]
WIKIPEDIA. Distance-bounding protocol. [online]. [cit. 2012-12-06]. Dostupné z: http://fr.wikipedia.org/wiki/Distance-bounding_protocol
[40]
HANCKE, G. P. a M. G. KUHN. An RFID Distance Bounding Protocol. [online]. [cit. 2012-12-06]. Dostupné z: http://www.cl.cam.ac.uk/~mgk25/ sc2005-distance.pdf
[41]
COURTOIS, N. T. Card-Only Attacks on MiFare Classic. [online]. 2009 [cit. 2012-12-06]. Dostupné z: http://www.nicolascourtois.com/papers/ mifare_all.pdf
Analýza zabezpečení bezkontaktních čipových karet | 77
!
Seznam zkratek (D)RSL (i)MDPL AFI AID APDU ATQA ATQB ATR ATS BPSK CID CID CLA CRC_A CVV D-Bp DFA DPA DUN EAS FSCI FSDI HLTA I2C INS LSFR MAC NAD NRZ NRZI NVB OCR OOK PCB PICC PIX PLL PPS PUPI RATS REQA REQB RFID
(Dual-rail) Random Switching Logic (improved) Masked Dual-rail Precharge Logic Application Family Identifier Application IDentifier Application Protocol Data Unit Answer To Request, typ A Answer To Request, typ B Answer To Request Answer To Select Binary-Phase Shift Keying Card IDentifier Card IDentifier Class Byte Cyclic Redundancy Check, typ A Card Verification Value Distance-Bounding protocol Differential Fault Analysis Differential Power Analysis Dial-Up Networking Electronic Article Surveillance Frame Size for proximity Card Integer Frame Size for proximity coupling Device Integer Halt, typ A Inter-Integrated Circuit Instruction byte Linear Shift Feedback Register Message Authentication Code Node Address Non Return to Zero Non Return to Zero, Inverted Number of Valid Bits Optical Character Recognition On-Off Keying Protocol Control Byte Proximity Integrated Circuit Card Proprietary application Identifier eXtension Phase-Locked Loop Protocol and Parameter Selection request Pseudo-Unique PICC Identifier Request for Answer To Select Request, typ A Request, typ B Radio-Frequency IDentification
Analýza zabezpečení bezkontaktních čipových karet | 79
RFU RID SAK SPA SPI SPP TPDU UART UID WDDL WUPA WUPB
Reserved for Future Use Registered application provider IDentifier Select Acknowledge Simple Power Analysis Serial Peripheral Interface Serial Port Profile Transmission Protocol Data Unit Universal Asynchronous Receiver/Transmitter Unique IDentification Wave Dynamic Differential Logic Wake UP, typ A Wake Up, typ B
80 | Analýza zabezpečení bezkontaktních čipových karet
Příloha A Tabulka A.1: Přístupové podmínky bloku v MIFARE Classic1 Přístupové bity
Podmínky přístupu
C1
C2
C3
čtení
zápis
inkrementace
Dekrementace
0
0
0
klíč A|B
klíč A|B
klíč A|B
Klíč A|B
počáteční konfigurace
0
1
0
klíč A|B
nikdy
nikdy
nikdy
čtení/zápis bloku
1
0
0
klíč A|B
klíč B
nikdy
nikdy
čtení/zápis bloku
1
1
0
klíč A|B
klíč B
klíč B
klíč A|B
Hodnota bloku
0
0
1
klíč A|B
nikdy
nikdy
klíč A|B
Hodnota bloku
0
1
1
klíč B
klíč B
nikdy
nikdy
čtení/zápis bloku
1
0
1
klíč B
nikdy
nikdy
nikdy
čtení/zápis bloku
1
1
1
nikdy
nikdy
nikdy
nikdy
čtení/zápis bloku
1
použití
Zdroj: http://www.nxp.com/documents/data_sheet/MF1S50YYX.pdf
Analýza zabezpečení bezkontaktních čipových karet | 81
16!sektorů! po!64!B!
32!sektorů! po!64!B,!8! sektorů!po! 256!B!
10!
ANO!
7!Byte!
4B!nebo!7B! s!náhodnou! hodnotou! ANO!
4B!nebo!7B! s!náhodnou! hodnotou! ANO!
48!stránek! po!4!B!
!16! stránek! po!4!B!
10!
100!000!
7!Byte!
5!
5!
100!000!
4096!
Classic!4K! MF1!S70!
ANO!–!do!3! části! 106!
10!000!
10!000!
1024!
Classic!1K! MF1!S50!
ANO!–!do! ANO!–!do!3! ANO!do!3! 3!části! části! části! 106! 106! 106!
192!
64!
Ultralight! UltralightC! MF0!IC! MF0!IC! U1X! U2X!
Generátor! NE! náhodných! čísel!
RF]rozhraní! ISO/IEC! 14443A! Přenosová! rychlost! [kbit/s]! bezpečnost! UID![byte]!
Paměť! EEPROM! [byte]! Počet! přepisů! Uchování! data! [roky]! organizace!
!
Tabulka A.2: Vlastnosti rodiny MIFARE1
4B!nebo!7B! s!náhodnou! hodnotou! ANO!
106...848!
106...848!
4B!nebo!7B! s!náhodnou! hodnotou! ANO!
ANO!
32!sektorů! po!64!B,!8! sektorů!po! 256!B!
10!
200!000!
4096!
Plus!S!4K! MF1!SPlus! 80!
ANO!
32!sektorů! po!64!B!
10!
200!000!
2048!
Plus!S!2K! MF1!SPlus! 60!
4B!nebo!7B! s!náhodnou! hodnotou! ANO!
106...848!
ANO!
32!sektorů! po!64!B,!8! sektorů!po! 256!B!
10!
200!000!
2048!
Plus!X!2K! MF1!Plus! 60!
10!
500!000!
4096!
DESFire! EV1!4K! MF3!IC! D41!
10!
500!000!
8192!
DESFire!EV1! 8K! MF3!IC!D81!
106...848!
ANO!
ANO!
7!Byte!
106...848!
ANO!
ANO!
7!Byte!
106...848!
ANO!
Flexibilní! Flexibilní! Flexibilní! souborový! souborový! souborový! systém! systém! systém!
10!
500!000!
2048!
DESFIRE! EV1!2K! MF3!IC! D21!
4B!nebo!7B! 7!Byte! s!náhodnou! hodnotou! ANO! ANO!
106...848!
ANO!
32!sektorů! po!64!B,!8! sektorů!po! 256!B!
10!
200!000!
4096!
Plus!X!4K! MF1!Plus! 80!
DES!&! DES3! AES!128!
Crypto!1!
1
]!
]!
]!
]!
ANO!
CMAC!
ANO! (úroveň!1!a! 2)! ]!
2!na!sektor! 2!CRYPTO! 1!nebo!AES! na!sektor! Po!sektoru! Po!sektoru!
CMAC!
ANO! (úroveň!1!a! 2)! ]!
2!CRYPTO! 1!nebo!AES! na!sektor! Po!sektoru!
CMAC,! šifrování!
ANO! (úroveň!1!a! 2)! ]!
2!CRYPTO! 1!nebo!AES! na!sektor! Po!sektoru!
Zdroj: http://www.nxp.com/documents/line_card/MIFARE_ICs_939775017001_v9_HR.pdf
]!
autentizace! ]!
ANO!
Po!sektoru!
2!na!sektor!
]!
NE!
Po!stránce!
přístup!
Po! stránce! NE!
1!
Přístupové! 0! klíče!
14!klíčů! na! aplikaci! Po! souboru! NE!
ANO! (úroveň!1!a! 2)! ]! CMAC,! šifrování! CMAC,! CMAC,! šifrování! šifrování!
2!CRYPTO! 1!nebo!AES! na!sektor! Po!sektoru!
CMAC,! šifrování! CMAC,! šifrování!
14!klíčů! na! aplikaci! Po! souboru! NE!
CMAC,! šifrování! CMAC,! šifrování!
NE!
Po!souboru!
14!klíčů!na! aplikaci!
!
Příloha B Tabulka B.1: Seznam příkazů dle standardu EMV1
CLA
INS
Instrukce
‘8x‘
‘1E‘
Application block
‘8x‘
‘18‘
Application unblock
‘8x‘
‘16‘
Card block
‘0x‘
‘82‘
External authenticate
‘8x‘
‘AE‘
Generate application cryptogram
‘0x‘
‘84‘
Get challenge
‘8x‘
‘CA‘
Get data
‘8x‘
‘A8‘
Get processing options
‘0x‘
‘88‘
Internal authenticate
‘8x‘
‘24‘
Personal identification (PIN) number change/unblock
‘0x‘
‘B2‘
Read record
‘0x‘
‘A4‘
Select
‘0x‘
‘20‘
Verifz
‘8x‘
‘Dx‘
RFU for the payment systems
‘8x‘
‘Ex‘
RFU for the payment systems
‘9x‘
‘xx‘
RFU for manufacturers for proprietary INS coding
‘Ex‘
‘xx‘
RFU for issuers for proprietary INS coding
1
Zdroj: EMV Integrated Circuit Card Specifications for Payment Systems book 3
Analýza zabezpečení bezkontaktních čipových karet | 85
Tabulka B.2: Přehled AID nejrozšířenějších výrobců1
Výrobce karet
VISA
MasterCard
RID
A000000003
A000000004
Produkt
PIX
AID
Visa kreditní / debetní karta
1010
A0000000031010
Visa Electron
2010
A0000000032010
V PAY
2020
A0000000032020
Plus
8010
A0000000032020
MasterCard kreditní / debetní karta
1010
A0000000041010
MasterCard
9999
A0000000049999
Maestro
3060
A0000000043060
Cirrus
6000
A0000000046000
American Express
A000000025
American Express
01
A00000002501
Interac (Canada)
A000000277
Debit card
1010
A0000002771010
RuPay (India)
A000000524
RuPay
1010
A0000005241010
1
Zdroj: http://en.wikipedia.org/wiki/EMV
86 | Analýza zabezpečení bezkontaktních čipových karet
Příloha C
Obrázek C.1: Sekvence příkazů pro přípravek RFID bluetooth relay device
Analýza zabezpečení bezkontaktních čipových karet | 87
Obrázek C.2: Sekvence příkazů pro přípravek Advanced RFID bluetooth relay device
88 | Analýza zabezpečení bezkontaktních čipových karet
Obsah přiloženého CD
!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!! !!!! !
!měření! !práce! !src! !ARBRD! !!! !Emulator! !!! !!! !Emulator! !!! !!!!!!! !Debug! !!! !!!!!!! !Release! !!! !!!!!!! !src! !!! !Reader! !!!!!!! !Reader! !!!!!!!!!!! !Debug! !!!!!!!!!!! !Release! !!!!!!!!!!! !src! !RBRD! !zachycení!komunikace! !ARBRD! !RBRD!
Analýza zabezpečení bezkontaktních čipových karet | 89