Attacks on chip based banking cards
Tartalom Smart card mágnescsíkos kártyák EMV szabvány Yes-card I. Yes-card II. Relay attack Pre-play attack
Smart card Kis méretű plasztik kártya integrált áramkörrel Több funkciót elláthat: azonosítás, autentikálás, adattárolás, alkalmazások futtatátása, stb. Contact/contactless (hybrid) 8-pines chip: GND, VCC, RST, CLK, I/O(, VPP) Az élet minden területén (bank- és hitelkártyák, SIM kártyák, tokenek, stb.)
EMV Europay, Mastercard, Visa IC kártyákra, illetve azokat elfogadó terminálokra, ATM-ekre vonatkozó szabvány Európában kb. 10 évvel ezelőtt kezdett elterjedni, az USAban még mindig a mágnescsíkos kártyák uralkodnak Chip & PIN Fokozott biztonság mind online, mind offline tranzakciók lebonyolításakor Kriptográfiai algoritmusokkal támogatott (DES, 3DES, RSA, SHA) Liability shift: a bank átruházhatja a felelősséget a kártyatulajdonosra
EMV parancsok application block application unblock card block external authenticate (7816-4) generate application cryptogram get data (7816-4) get processing options internal authenticate (7816-4) PIN change / unblock read record (7816-4) select (7816-4) verify (7816-4)
Kártyahasználat I. 1. Application selection (AID gyártó-/alkalmazásspecifikus) 2. Initiate application processing (application interchange profile, application file locator) 3. Read application data (BER TLV formátumú rekordok) 4. Processing restrictions (verziószám, használati megkötések, érvényesság Terminal Verification Results) 5. Offline data authentication (aszimmetrikus kulcsú kriptográfia, statikus/dinamikus) 6. Cardholder verification (method (results))
Kártyahasználat II. 7. Terminal risk management (online/offline autentikáció) 8. Terminal action analysis (offline elfogadás, hitelesítésre küldés, offline elutasítás) 9. First card action analysis (a kártya a kapott tranzakcióra visszaad kriptogramot) 10. Online transaction authorisation (a kártya aláírja a tranzakciót, és ezt a bank ellenőrzi) 11. Second card action analysis 12. Issuer script processing
Online tranzakció use-case
Yes-card I. Az autentikálás során a kártya különböző adatokat küld a terminálnak, és ezeknek egy részhalmazára a bank generál egy aláírást Az aláírás előre kiszámolt, állandó: static data authentication Az aláírás lehallgatható, visszajátszható Készíthető egy klónkártya, ami minden beadott PIN kódra igennel válaszol Csak offline tranzakcióknál működik, ahol a bank nem ellenőrzi a tranzakcióra számolt MAC-et
Static Data Authentication
Védekezés I. Megoldás lenne az online kommunikációra váltás, de ez nem mindig kivitelezhető Az aláírás fejlesztése: legyen dinamikus (dynamic data authentication) A kártya rendelkezik egy publikus/privát kulcspárral
Dynamic Data Authentication
Wedge attack
Védekezés II.
Yes-card II. Az elsőt szokták yes-cardként emlegetni, de itt is a PIN ellenőrzés bukik el Online tranzakciókra is működő támadás Hasonlóan az előző wedge attackhez itt is elfogjuk a beütött (és random) PIN kódot A terminálnak PIN OK üzenetet küldünk Akkor működik, ha a kártya engedi a CVM választásnál a fallbacket Lopott kártya kell hozzá, a klón nem elég nem tud a tranzakcióra aláírást generálni
Wedge attack
Az EMV hibái
Ha nincs fallback Offline esetben előfordulhat, hogy a kártya nem enged meg más autentikálási módot, ezért vagy elutasítja a tranzakciót, vagy megpróbál online autentikálni Szerencsére a kriptogram üzenetekben a típus mező állítható A MAC nyilván elbukik, de offline esetben ez csak utólag derül ki
Demonstráció
Relay attack I. Az autentikálás során a terminál challenge-response üzenetekkel hitelesíti a kártyát (egy nonce, amit a kártya a privát kulcsával aláír) Egy A helyen lévő áldozat kártyájára át lehet irányítani egy B helyen lévő terminál kihívását, aztán a választ vissza és az egész kommunikációt Ehhez kell egy módosított terminál is, de a vevő nem tudja ellenőrizni, hogy: A jó összeget mutatja Titokban tartja a PIN kódot Milyen tranzakciót hajt végre igazából Jóformán semmit, a terminálban vakon megbízunk
Relay attack II.
Relay attack III. A támadás nem az adatok lehallgatásán, módosításán alapul, hanem az adatfolyamok elterelésén gyakorlatilag mindegy, hogy milyen módon autentikálja magát a kártya, vagy hogy offline/online a tranzakció Viszont precíz időzítést igényel a támadóktól Alice-nek előbb be kell helyeznie a kártyát, mint Carolnak Carolnak előbb tudnia kell a PIN kódot, mint hogy kérik tőle Alice nem szakíthatja meg idő előtt a tranzakciót
Védekezés Az egész nem működne, ha a terminálok tökéletesen védettek lennének és bár megkapják az igazolást, nem azok Az időzítés is felhasználható az emberi faktor miatt mindenképpen nagyobb késleltetés lép fel a normálisnál, ezért időzítési korlátokkal észlelhető a támadás Figyelni kell!
Pre-play attack A való életben vannak programozók, akik alulértékelik az RNG jelentőségét Nonce: EMV Unpredictable number (32 bit) A kártyában Application Transaction Counter folyamatosan növekszik, visszajátszás ellen véd Az ATC nem timestamp, frissességet nem biztosít
Kivitelezés Meg kell találni a gyenge ATM-eket Meg kell fejteni az RNG működését Egy módosított terminállal le kell generáltatni jövőbeli tranzakciókra vonatkozó (nonce, ARQC, TC) hármasokat Jó időzítés
PED vulnerabilities A kártya és a terminál közötti kommunikáció nem titkosított A kártya adatainak és a PIN kód elfogásával klónkártya hozható létre (mágnescsíkos) A terminált elvileg nem lehet módosítani Gyakorlatban az elvárások (elég egyet teljesíteni A módosítás legalább 25000$-t igényeljen Egy PIN lehallgató becsempészése Legalább 25000$-t igényelken Több, mint 10 óráig tartson Vagy alapból észrevehető legyen
Shim-in-the-middle
Védekezés Titkosított PIN kód A CVM listában jelzi a kártya, hogy képes erre, de a CVM lista is módosítható Aláírt CVM Szigorítani az engedélyeket
Mágneses kártyák A mágnescsík sok védelmet nem ad Egyszerűen olvasható és reprodukálható MagnePrint