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 USA- ban 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ágTerminal 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