la sicurezza delle applicazioni di mobile payment_antonella marino
DESCRIPTION
TRANSCRIPT
La sicurezza delle applicazioni di Mobile Payment
Progettazione e implementazione di un protocollo di Mutua Autenticazione fra un
cellulare con tecnologia Near Field Communication e un terminale di
pagamento
Antonella Marino
OBIETTIVO:
Centro per le Applicazioni della Televisione e delle Tecniche di Istruzione a Distanza
Ideare e implementare un protocollo per la mutua autenticazione fra una smart card e un terminale di pagamento
CONTRIBUTO:
Evitare frodi da parte dei terminali di pagamento
Sistemi di Mobile Payment
DEFINIZIONE
• Con il termine Mobile Payment intendiamo ogni acquisto di servizi o beni, fisici o digitali, realizzato interamente attraverso il telefono cellulare.
CLASSIFICAZIONE
• Remoti (Mobile Remote Payment)
• Di prossimità (Mobile Proximity Payment)
EVOLUZIONE DELLE CARTE DI PAGAMENTO
Contact Contactless MSC NFC
Near Field Communication (NFC)
Connettività wireless: fino a 10 cm
Comunicazione: bidirezionale
Frequenza: 13,56 MHz
Velocità massima di trasmissione: 424 kbit/s
Reader / Writer
Card Emulation
Peer To Peer
Il cellulare emula una carta
contactless
Tre modalità operative
La sicurezza dei Mobile Payment con NFC
Comunicazione mediante onde radio che si diffondono
Contenuto potenzialmente intercettabile
Standard EMV
• Nato nel 1993 da Europay, Mastercard e Visa • Definisce tre tipi di autenticazione della smart
card verso il terminale di pagamento: – Static Data Authentication – Dynamic Data Authentication – Combined Data Authentication
• Stabilisce le regole che permettono alla carta
e al terminale di interagire
Mutua autenticazione fra dispositivi contactless
EMV considera il terminale di pagamento sicuro a priori
La carta si autentica attraverso un certificato digitale
Un terminale di pagamento malevolo può selezionare un applet sul chip NFC ed effettuare operazioni illecite
Certificati digitali per la mutua autenticazione
Un certificato tipicamente include:
• una chiave pubblica
• dei dati identificativi
• un periodo di validità
• l'URL della lista dei certificati revocati (CRL)
• Il tutto è firmato da una terza parte fidata
Questi campi non possono essere verificati da una carta!
Mutua autenticazione Card-Reader v.2
1. Richiesta di autenticazione
3. Richiesta di sessione
4. Ticket_T Ticket_C
5. Ticket_C Verifica
6. Conferma verifica
2. Conferma di richiesta
Contiene {RT,TS} KR
contro i attacchi di criptoanalisi
Authentication Service (AS) Terminale di pagamento (T) Cellulare NFC (C)
Il random ha la stessa funzione di un timestamp
Basato sul protocollo di Needham-Schroeder e sui ticket di Kerberos
Timestamp cifrato con la chiave segreta di T: solo T
oltre ad AS ha potuto produrre il messaggio ID in chiaro, valore random e Richiesta di autenticazione
cifrati con la chiave segreta di C: solo AS oltre a C può
decifrare il valore random
ID di T, ID di C, valore random e Richiesta di autenticazione cifrati con la chiave segreta di
C: AS capisce che T e C vogliono autenticarsi, decifra
il valore random, decifra e controlla il timestamp.
Ticket_T : chiave di sessione, timestamp, ID di C. Il ticket è cifrato con
la chiave segreta di T Ticket_C: chiave di sessione, valore
random, ID di T. Il ticket è cifrato con la chiave segreta di C
Numero casuale cifrato con la
chiave di sessione
Funzione del numero casuale cifrato con la
chiave di sessione, conferma che C conosce
la chiave di sessione
Cifratura
Non mettere i valori noti in blocchi iniziali
Non cifrare con EBC
Considerazioni
• Server potente, affidabile e incorruttibile
• Shared key per “firmare”
• Server e reader fortemente sincronizzati
• Il protocollo non permette a “entità” corrotte di effettuare delle false autenticazioni.
Attacco 1 con cellulare malevolo C1
Richiesta di autenticazione
IDC {RC1 Richiesta di autenticazione} KC1
Richiesta di sessione
Ticket_T Ticket_C
Ticket_C Verifica
Conferma verifica
C1 non può decifrare
questi dati! Questo valore
non sarà corretto!
Una cellulare NFC malevolo C1 ha spiato l’identificativo del cellulare C, e decide di fingersi C con il terminale di pagamento.
Authentication Service (AS) Terminale di pagamento (T) Cellulare NFC (C1)
Attacco 2 con cellulare malevolo C1
Richiesta di autenticazione
Conferma di richiesta vecchia
IDT , Conferma di richiesta vecchia
Il server si accorge che il timestamp è
vecchio
Ora C1 vuole replicare una vecchia conferma di richiesta avvenuta fra T e C, con l’intento di spacciarsi per C.
Authentication Service (AS) Terminale di pagamento (T) Cellulare NFC (C1)
Attacco 1 con terminale malevolo T1
Richiesta di autenticazione
Conferma di richiesta
IDT , Conferma di richiesta
Ticket_T Ticket_C
T1 non può ottenere la
chiave di sessione!
T1 cioè un terminale di pagamento malevolo vuole tentare di fingersi T con C, costruendo una richiesta di sessione, ma con l’ID di T, da mandare al server
Authentication Service (AS) Terminale di pagamento (T1) Cellulare NFC (C)
Attacco 2 con terminale malevolo T1
Richiesta di autenticazione vecchia
Conferma di richiesta
Richiesta di sessione vecchia Il timestamp non
corrisponde all’orario attuale.
T1 torna all’attacco, però questa volta prova replicare una conversazione spiata fra T e C per fingersi T
Authentication Service (AS) Terminale di pagamento (T1) Cellulare NFC (C)
Implementazione
Prototipo Sviluppato Terminale di pagamento (Reader) Cellulare NFC (SmartMX) Authentication ServIce
Polling SCardConnect Inserimento carta
SCardBeginTransaction
CLA INS P1 P2 Lc Data Le
0x00 0xa4 0x04 0x00 Len AID AID 0x00
Data sw1 sw2
NULL 0x90 0x00
0
APDU (ISO 7816)
command
response
CLA INS P1 P2 Lc Data Le
0xa0 0x01 0x00 0x00 0x10 Richiesta di autenticazione
0x20
Data sw1 sw2
Conferma di richiesta 0x90 0x00
CLA INS P1 P2 Lc Data Le
0xa0 0x02 0x00 0x00 0x20 Ticket_C Verifica 0x10
Data sw1 sw2
Conferma Verifica Risultato Operazione 0x00
Richiesta sessione Ticket_T Ticket_C
SCardFreeMemory SCardDisconnect SCardReleaseContext FreeMemory
Conclusioni
• Consente di avere un livello di sicurezza maggiore nei pagamenti rendendoli più sicuri
• Eseguendo il protocollo le entità condividono una chiave di sessione
• L’esecuzione totale del protocollo impiega 0,753 s
• È stato sviluppato per l’utilizzo nel contesto pagamenti NFC, ma può essere esteso ai pagamenti con carte a contatto e carte contactless, di cui il cellulare NFC è un’evoluzione.
• Gli ambiti d’utilizzo possono andare oltre i pagamenti
Grazie per l’attenzione