6. ESEMPIO: UN GENERICO SISTEMA DI PAGAMENTO
Europay, MasterCard e Visa hanno lavorato congiuntamente durante il corso degli ultimi anni per sviluppare specifiche che definiscano un insieme di requisiti per assicurare interoperabilità tra smartcards e terminali, indipendentemente dal costruttore della card, da dove essa venga usata e dall'istituto di credito. Le ultime specifiche descrivono i requisiti minimi richiesti ad un ICC e un terminale per poter operare correttamente e in tutta sicurezza. Per un maggiore approfondimento è possibile consultare le specifiche in copia locale o al sito http://www.emvco.com/.
I principi guida per realizzare un tale sistema di pagamento basato su smartcards sono:
![]() |
Autenticazione statica dei dati |
![]() |
Autenticazione dinamica dei dati |
![]() |
Ciclo di vita per la certificazione di una chiave pubblica del CA |
![]() |
Gestione dei certificati |
6.1 Autenticazione statica dei dati
L'autenticazione statica dei dati viene effettuata da un terminale che
usa uno schema di firme basato su tecniche di chiave pubblica per confermare la
legittimità dei dati statici residenti nella smartcard.
L'autenticazione
richiede l'esistenza di un'Autorità di Certificazione (CA), un ente che offre un
servizio di verifica dei dati critici di una smartcard. Ogni terminale
conforme a queste specifiche contiene un certificato di autenticazione per ogni
chiave pubblica associata all'applicazione utilizzata. Nella seguente figura
viene mostrato la relazione tra i dati e le chiavi crittografate.
Figura 6.1
Ogni card contiene diversi elementi, tra i quali distinguiamo fondamentali:
Certification Authority Public Key Index: è un elemento a singolo byte che indica per ogni applicazione quale CA e chiave pubblica con relativo algoritmo associato residente in memoria vengono usati dalla smartcard.
Issuer Public Key Certificate: è un certificato a lunghezza variabile fornito dal CA a ciascuna card del distributore. Quando il terminale legge questo valore identifica la chiave pubblica del distributore più altri dati addizionali.
Signed Static Application Data: è un elemento a lunghezza variabile generato dal distributore della card usando la chiave privata.
L'autenticazione statica dei dati utilizza l'algoritmo asimmetrico RSA. La chiave pubblica del distributore (PI) viene certificata con la chiave privata del CA (SCA). Quindi il terminale utilizza la chiave pubblica del CA (PCA) per verificare la validità del certificato rilasciato e la stessa PI per verificare la firma digitale della card.
Per supportare
questo tipo di autenticazione, ogni terminale deve essere capace di
memorizzare più chiavi pubbliche del CA e associare a
ciascuna di essi delle informazioni sulle stesse chiavi in modo tale che il terminale
possa, in futuro, supportare algoritmi multipli e permettere semplici passaggi
da un algoritmo all'altro.
Ogni terminale deve essere capace di localizzare
ogni chiave con relative informazioni grazie a un identificativo RID (Registered
Application Provider Identifier) che viene applicato sull'Indice delle chiavi pubbliche del CA.
6.2 Autenticazione dinamica dei dati
L'autenticazione dinamica dei dati viene effettuata da un terminale che
usa uno schema di firme basato su tecniche di chiave pubblica per confermare la
legittimità dei dati dinamici residenti nella card e garantire i dati ricevuti
dal terminale. Questo esclude la falsificazione di qualsiasi cards.
Anche l'autenticazione dinamica richiede l'esistenza di un CA. Ogni terminale conforme a queste specifiche contiene un
certificato di autenticazione per ciascuna chiave pubblica associata a ogni
applicazione utilizzata. Nella seguente figura viene mostrato la relazione tra i
dati e le chiavi crittografate.
Figura 6.2
Ogni card contiene diversi elementi, tra i quali distinguiamo fondamentali:
Certification Authority Public Key Index: è un elemento a singolo byte che indica per ogni applicazione quale CA e chiave pubblica con relativo algoritmo associato residente in memoria vengono usati dalla smartcard.
Issuer Public Key Certificate: è un certificato a lunghezza variabile fornito dal CA a ciascuna card del distributore. Quando il terminale legge questo valore identifica la chiave pubblica del distributore più altri dati addizionali.
ICC Public Key Certificate: è un elemento a lunghezza variabile fornito dal distributore della card. Quando il terminale verifica questo dato identifica la chiave pubblica della card più altri dati addizionali.
ICC Private Key: è un elemento a lunghezza variabile interna alla ICC utilizzata per generare la firma della card.
La chiave pubblica della card (PIC) viene certificata con la chiave privata del distributore (SI) e la chiave pubblica della distributore (PI) viene certificata con la chiave privata del CA (SCA). Quindi, durante la comunicazione, il terminale usa:
PCA per verificare che PI sia stata certificata dal CA;
PI per verificare che PIC sia stata certificata dal distributore;
PIC per verificare la firma digitale della card.
Per supportare l'autenticazione dinamica, ogni ICC deve possedere la propria coppia di chiavi che consistono di una chiave privata per la firma e di una chiave pubblica per la verifica. La chiave pubblica viene conservata sulla ICC in un apposito certificato; più precisamente viene utilizzato uno schema di certificazione a tre strati. Ciascuna chiave pubblica della ICC viene certificata dal suo distributore e la CA certifica l'autenticità della chiave pubblica del distributore. Questo implica che per la verifica della firma di una ICC il terminale deve verificare l'autenticità di due certificati prima di recuperare e autenticare la chiave pubblica dell'ICC che a sua volta è utilizzata per verificare la firma dinamica della stessa ICC.
Affinché sia possibile implementare l'autenticazione dinamica, bisogna che il terminale sia in grado di memorizzare la chiave pubblica del CA per ciascuna applicazione che l'ICC può richiedere e deve poter associare a ciascuna chiave le informazioni indispensabili al suo utilizzo. In questo modo è possibile in futuro supportare più algoritmi e permettere una transizione da un algoritmo all'altro senza compromettere la tecnologia. Dato il RID e la chiave pubblica del CA il terminale deve essere in grado di individuare la chiave e le informazioni corrispondenti.
6.3 Ciclo di vita per la certificazione di una chiave pubblica del CA
Questa sezione definisce principi e politiche che un sistema di pagamento deve utilizzare per poter gestire le Certification Authority Public Keys usate per l'autenticazione statica e dinamica dei dati. Quindi ogni sistema dovrebbe fare riferimento a tali linee guida nell-implementare il proprio set di procedure.
La fase di progettazione richiede una continua revisione e progettazione delle chiavi. La durata, le date di terminazione e le nuove chiavi sono stabilite per scongiurare i rischi dovuti ad attacchi crittoanalitici. Il ciclo di vita della certificazione di una chiave pubblica autorizzata in normali circostanze può essere divisa nelle seguenti fasi:
|
Progettazione |
|
Generazione |
|
Distribuzione |
|
Impiego |
|
Revoca |
Durante la fase di progettazione, il sistema di pagamento investiga sui requisiti per una nuova certificazione di chiave pubblica autorizzata. Questi requisiti sono legati al numero di chiavi richieste ed ai parametri di queste chiavi. Una parte importante della fase di progettazione è rivedere la sicurezza dell'RSA per determinare un tempo approssimativo del ciclo di vita delle nuove chiavi create. Rivedere la sicurezza equivale a selezionare la lunghezza e la scadenza delle date per le nuove chiavi e le potenziali modifiche di queste date.
Se il risultato della fase di progettazione richiede l'introduzione di nuove coppie di chiavi di autorizzazione, queste dovranno essere generate dal sistema di pagamento. Più precisamente la certificazione di chiavi di autorizzazione dovrebbe essere generata in modo sicuro utilizzando l'RSA. In conseguenza alla generazione delle chiavi, devono essere mantenute sia la segretezza e l'integrità delle stesse che l'integrità della chiave pubblica e privata.
Nella fase di distribuzione la CA provvede a distribuire le chiavi ai distributori delle cards e agli acquirenti:
a
a
Per prevenire l'introduzione di Certification Authority Public Keys fasulle, le interfacce tra la CA, i distributori e gli acquirenti devono garantire l'integrità della distribuzione delle chiavi.
3.4 UtilizzoLa Certification Authority Public Key è utilizzata nei terminali per garantire l'autenticazione statica e dinamica dei dati. La Certification Authority Public Key è utilizzata dal CA per generare
gli Issuer Public Key Certificates. Più precisamente avremo il seguente schema:Figura 6.3
I distributori generano la propria chiave pubblica (Issuer Public Key) e la mandano al CA.
La CA
Con il Certification Authority Public Key il distributore verifica la correttezza del certificato. Se è esatto il distributore può includere la coppia di chiavi come un dato personale per una card.
Per prevenire eventuali chiavi fasulle, l'interfaccia tra il distributore e la CA deve garantire l'integrità della trasmissione delle chiavi utilizzate per la certificazione.
Quando una coppia di chiavi ha raggiunto la data di scadenza programmata durante la fase di progetto deve essere rimossa dal servizio. Praticamente avremo:
Gli Issuer Public Key Certificates generati con le Certification Authority Private Key non devono essere più validi. I distributori devono assicurarsi che le cards personalizzate con certificati scaduti non proseguano il servizio oltre la data di scadenza del certificato.
Prima delle scadenze delle date, la CA dovrà interrompere la certificazione delle chiavi fornite dal distributore.
Prima delle scadenze delle date gli acquirenti devono rimuovere le chiavi pubbliche autorizzate dai loro terminali.
Nel caso in cui si verifica una compromissione di una chiave è necessario accelerare il processo di revoca per quanto riguarda l'autorizzazione delle chiavi. In questo caso abbiamo le seguenti fasi:
|
Scoperta |
|
Valutazione |
|
Decisione |
|
Revoca |
Un compromesso per una coppia di chiavi pubbliche certificate può essere:
Sospettato: il sistema di monitoraggio o un utente che effettua monitoraggio indica che sta avvenendo una transazione fraudolenta che può essere dovuta alla compromissione di una chiave, ma questo non è confermato.
Potenziale: le tecniche di crittoanalisi, per esempio la fattorizzazione, possono aver sviluppato nuove tecniche di attacco che potrebbero compromettere chiavi di una data lunghezza, ma non ci sono certezze che questo può realizzarsi.
La scoperta di una chiave varia dalla consapevolezza di una interruzione fisica del sistema a causa della transazione fraudolenta di un intruso che può mettere a rischio l'intero sistema e i suoi membri oppure dallo sviluppo scientifico di nuove tecniche crittografiche.
4.2 ValutazioneLa valutazione di una coppia di chiavi compromesse può includere le tecniche, i rischi, le frodi e i più importanti attacchi per il sistema e per i suoi membri. I risultati di una valutazione includeranno la conferma della compromissione, la determinazione delle possibili strade di azione contro i costi e rischi di compromissioni; i risultati della valutazione dovranno condurre a una precisa decisione.
Basato sui risultati della fase di valutazione, la CA deciderà se la coppia di chiavi sono state compromesse. Nel peggiore dei casi, questa decisione consisterà nella revoca della coppia di chiavi prima delle scadenze delle date. La decisione di revocare una chiave pubblica porterà i membri del sistema a stabilire nuove date di terminazione delle chiavi.