Telemat Lab's home page


Copyrigtht © 1986 Universita' di Firenze. All rights reserved.

Free license available.

Sicurezza nei sistemi di pagamento elettronico

di: Alessandro Lippi


Il protocollo SET

home pageIndicePrec.Succ.



Introduzione

VISA e Mastercard hanno sviluppato congiuntamente il protocollo SET (Secure Electronic Transaction) come metodo per il pagamento sicuro su reti aperte.
SET è stato pubblicato come specifiche aperte per l'industria. Tali specifiche sono disponibili per essere applicate a qualsiasi servizio di pagamento e possono essere usate dai venditori di software per sviluppare applicazioni.

Assistenza nello sviluppo di queste specifiche è stata fornita da GTE, IBM, Microsoft, Netscape, SAIC, Terisa e Verisign.

Motivazioni e obiettivi

I principali motivi per cui società di carte di credito forniscono specifiche per pagamenti sicuri sono:

Gli obiettivi che SET si prefigge riguardo la sicurezza sono:

Gli obiettivi che SET si prefigge riguardo l'interoperabilità sono:

Gli obiettivi che SET si prefigge riguardo l'accettazione di mercato sono:


Caratteristiche

Per quanto riguarda le tecniche (analizzate poi in dettaglio) con cui SET si propone di raggiungere i propri obiettivi, si ha che:

Il complesso processo di codifica e certificazione che caratterizza il protocollo SET sfrutta i due metodi primari di codifica: crittografia simmetrica e crittografia asimmetrica. Vediamo come.

1) La riservatezza è assicurata sfruttando la codifica del messaggio

SET si affida alla crittografia per garantire la riservatezza del messaggio.
In SET i dati del messaggio sono inizialmente codificati usando una chiave simmetrica generata casualmente. Tale chiave, a sua volta, è codificata usando la chiave pubblica del destinatario del messaggio. Si ottiene la cosiddetta busta elettronica, spedita al destinatario insieme al messaggio codificato. Una volta ricevuta tale busta, il destinatario la decodifica usando la propria chiave privata: ottiene così la chiave simmetrica (generata casualmente) che usa per decodificare il messaggio originale.

2) Integrità e autenticazione sono assicurate dall'uso di firme digitali

Quando combinata con un digest di messaggio, la codifica tramite chiave privata consente all'utente di firmare digitalmente un messaggio.
Un digest di messaggio è un valore generato relativamente ad un messaggio, e rimane unico per quel messaggio. Tale valore si ottiene passando il messaggio attraverso una funzione di crittografia che non può essere invertita.

L'algoritmo usato da SET genera un digest di messaggio di 160 bit. Tale algoritmo è tale che cambiare un solo bit nel messaggio comporta il cambiamento, in media, della metà dei bit del digest. Si pensi che 2 messaggi con lo stesso digest possono al massimo differire di 1 bit ogni 1048 bit. È dunque computazionalmente impossibile generare due messaggi diversi con lo stesso digest.

Quando il digest di un messaggio è codificato usando la chiave privata del mittente, ed è aggiunto al messaggio originale, il risultato è conosciuto come firma digitale del messaggio.

Il destinatario della firma digitale può essere sicuro che il messaggio proviene realmente dal mittente (solo la chiave pubblica del mittente può decodificare il messaggio). Inoltre, grazie al digest di messaggio, il destinatario può verificare che il messaggio non è stato alterato dopo la generazione del digest.

Per esempio, Alice calcola il digest del messaggio che deve mandare a Bob, e lo codifica con la propria chiave privata: firma cioè digitalmente tale messaggio. Invia quindi a Bob sia il messaggio che la firma digitale. Quando Bob riceve il messaggio, ne calcola il digest e decodifica la firma digitale usando la chiave pubblica di Alice. Se i due valori coincidono, Bob sa che il messaggio è stato firmato usando la chiave privata di Alice e che non è stato alterato dal momento in cui è stato firmato.

Due coppie di chiavi

SET utilizza una coppia di chiavi pubblica/privata esclusivamente per creare la firma digitale. Quindi, ogni partecipante a SET possiede due coppie di chiavi asimmetriche: la cosiddetta coppia di chiavi di scambio, usata nei processi di codifica e decodifica, e una coppia di chiavi di firma, per la creazione e la verifica di firme digitali.
È da notare che il ruolo delle chiavi pubbliche e private è invertito nei processi di firma dove la chiave privata è usata per codificare (firmare), e quella pubblica è usata per decodificare (verificare la firma).


3) L'autenticazione è ulteriormente rafforzata dall'uso dei certificati

Prima che due parti usino la crittografia a chiave pubblica per concludere affari, ognuna desidera esser sicura che l'altra parte sia stata autenticata.
Prima che Bob accetti un messaggio con la firma digitale di Alice, Bob vuole essere sicuro che la chiave pubblica appartenga ad Alice e non a qualcuno che in rete dice di essere Alice.

Un modo potrebbe essere quello di farsi mandare da Alice la sua chiave pubblica su un canale sicuro. Spesso però questa via non è praticabile. Un'alternativa è sfruttare una terza parte di fiducia che garantisca che quella chiave pubblica appartiene ad Alice. Tale parte è nota con il nome di Autorità di Certificazione (AC).

Tale autorità può emettere certificati che forniscono assicurazioni sull'identità di una persona. Una volta che Alice ha provato la propria identità (con passaporto, patente o altro), l'AC crea un messaggio che contiene il nome di Alice e la sua chiave pubblica. Tale messaggio, noto come certificato, è firmato digitalmente dall'AC. Esso contiene dunque informazioni sull'identità del proprietario così come una copia di una delle chiavi pubbliche del proprietario (di scambio o di firma). Per ottenere i maggiori benefici, la chiave pubblica dell'AC dovrebbe essere conosciuta dal più grande numero di persone possibile.

Poiché chi sfrutta SET ha due coppie di chiavi, ognuno dei partecipanti avrà due certificati. Entrambi i certificati sono creati e firmati nello stesso momento dall'AC.

Il processo

I passi seguenti forniscono una descrizione del processo di codifica che interviene quando Alice desidera firmare alcuni dati relativi ad un bene e spedirli a Bob in un messaggio codificato.

Codifica

  1. Alice calcola il digest del messaggio contenente la descrizione dei beni. Esso è una specie di impronta digitale che sarà usata più tardi per testare l'integrità del messaggio.
  2. Alice codifica il digest di messaggio con la propria chiave di firma privata per produrre la firma digitale.
  3. Alice genera una chiave simmetrica casuale, e la usa per codificare la descrizione dei beni, la propria firma e una copia del proprio certificato, che contiene una copia della sua chiave di firma pubblica.
    Per decodificare la descrizione dei beni, Bob necessita di una copia sicura di tale chiave simmetrica.
  4. Il certificato di Bob, che Alice deve essersi procurata prima di avviare una transazione con lui, contiene una copia della chiave di scambio pubblica di Bob. Per assicurare una trasmissione sicura della chiave simmetrica, Alice la codifica usando proprio la chiave di scambio pubblica di Bob. La chiave codificata, alla quale ci si riferisce col nome di busta digitale, è spedita a Bob insieme al messaggio codificato stesso.
  5. Finalmente, Alice spedisce a Bob un messaggio che contiene: la descrizione dei beni codificata con chiave simmetrica, la firma, il certificato, la chiave simmetrica codificata in modo asimmetrico (busta digitale).

Decodifica

  1. Bob riceve il messaggio da Alice e decodifica la busta digitale con la propria chiave di scambio privata per ottenere la chiave simmetrica.
  2. Bob usa la chiave simmetrica per decodificare la descrizione dei beni, la firma di Alice e il certificato di Alice.
  3. Bob decodifica la firma di Alice con la chiave di firma pubblica di Alice, che Bob ottiene dal certificato di Alice. È così recuperato il digest di messaggio della descrizione dei beni.
  4. Bob calcola il digest della descrizione dei beni con lo stesso algoritmo usato da Alice e produce un nuovo digest.
  5. Finalmente, Bob confronta il proprio digest con quello contenuto nella firma digitale di Alice. Se questi coincidono, Bob conferma che il contenuto del messaggio non è stato alterato durante la trasmissione e che è stato firmato usando la chiave di firma privata di Alice.
    In caso contrario, Bob intraprende azioni appropriate come la notifica ad Alice o il rifiuto del messaggio.


La doppia firma

SET introduce una nuova applicazione di firma digitale: la doppia firma.

Per capirne l'utilità, consideriamo la seguente situazione: Bob vuole spedire ad Alice un'offerta per acquistare la parte di una proprietà e contemporaneamente vuole inviare un'autorizzazione alla propria banca per il trasferimento di denaro sul conto di Alice, nel caso questa accetti l'offerta; tuttavia Bob non vuole né che la banca conosca i termini dell'offerta, né che Alice abbia alcuna informazione sul conto di Bob. Inoltre Bob vuole collegare l'offerta al trasferimento, in modo che i soldi si muovano solo nel caso in cui Alice accetti.

Bob può ottenere tutto questo firmando digitalmente entrambi i messaggi con una singola operazione di firma che creerà una doppia firma.

La doppia firma è generata calcolando il digest di entrambi i messaggi, concatenando i due digest insieme, calcolando il digest del risultato e codificando tale digest con la chiave di firma privata di chi firma.

Il firmatario deve includere il digest dell'altro messaggio, per consentire al destinatario di verificare la doppia firma. Entrambi i destinatari dei messaggi (cioè Alice e la banca di Bob) possono controllarne l'autenticità generando il digest della propria copia del messaggio, concatenandola con il digest dell'altro messaggio (digest, quest'ultimo, fornito dal mittente), e calcolando il digest del risultato. Se tale digest coincide con la doppia firma decodificata, il destinatario può confidare nell'autenticità del messaggio.

Vediamo un esempio: se Alice accetta l'offerta di Bob, spedisce alla banca un messaggio dove indica il proprio consenso e include il digest di messaggio dell'offerta. La banca verifica l'autenticità dell'autorizzazione al trasferimento di denaro fornita da Bob e si assicurara che il consenso di Alice si riferisca alla stessa offerta usando, per convalidare la doppia firma, il proprio digest dell'autorizzazione e il digest relativo all'offerta, presentato da Alice.

Attraverso la doppia firma la banca può dunque verificare l'autenticità dell'offerta ma non sarà in grado di conoscerne i termini.

In SET, la doppia firma è usata per collegare un messaggio, contenente un ordine, spedito ad un mercante, con le istruzioni di pagamento, contenenti informazioni sul conto, spedite all'acquirente.

Quando il venditore spedisce una richiesta di autorizzazione all'acquirente, include le istruzioni di pagamento mandategli dal compratore, e il digest del messaggio contenente le informazioni sull'ordine. L'acquirente usa il digest inviatogli dal venditore e calcola il digest delle istruzioni di pagamento per verificare la doppia firma.

*****

Questo documento non pretende assolutamente di essere una trattazione esaustiva delle possibilità offerte dal protocollo SET. La documentazione sull'argomento è abbondantissima e tale elaborato, nato come esercitazione, fornisce solo una panoramica e qualche esempio delle possibilità offerte da SET. La documentazione è disponibile in linea per qualsiasi approfondimento.


Telemat Lab's home page

home pageIndicePrec.Succ.


Explore the TELEMAT Site !!!