quaderni di usabilità TILS: Scuola Superiore Guglielmo Reiss Romoli

appuntamenti, strumenti di lavoro, personaggi, la rassegna stampa strumenti per approfondire gli argomenti scambia le tue idee ricerche bibliografiche, commenti e suggerimenti, libro degli ospiti consulta i quaderni

vai all'indice del quaderno n° 1

Architettura ed Evoluzione del World Wide Web
Le Intranet e la sicurezza delle applicazioni Web

Il commercio elettronico: Secure Electronic Transaction (SET)

Man mano che Internet si trasforma in infrastruttura di comunicazione per applicazioni anche di natura commerciale, è evidente che, oltre che proteggere la propria rete da tentativi di intrusione e proteggere l'informazione scambiata, ci si debba interessare della security delle transazioni commerciali che avvengono in rete. In particolare, lasciando ai sistemi per Web sicuro precedentemente esposti (es.: SSL) la protezione delle comunicazioni, è necessario garantire il non ripudio delle transazioni relativamente alle tecniche di pagamento.

I sistemi attualmente utilizzati possono essere raggruppati in due classi principali, che sono:

sistemi di pagamento tramite carta di credito;
sistemi di moneta elettronica.

In entrambi i sistemi gli aspetti di sicurezza sono relativi alla tutela della riservatezza ed alla prevenzione delle frodi.

Lo standard più significativo per il pagamento tramite carta di credito di acquisti in rete è il Secure Electronic Transaction (SET), realizzato da parte di VISA, MasterCard, Microsoft, IBM, Netscape, GTE e CyberCash. Le fasi previste dallo standard sono:

  1. registrazione del possessore della carta di credito
  2. registrazione del commerciante
  3. sottomissione di un ordine
  4. autorizzazione del pagamento

Le prime due fasi sono eseguite una volta sola ed indipendentemente dalle due parti. Esse hanno il fine di ottenere un certificato da un'autorità di certificazione, che tipicamente è una sede dell'organizzazione che emette la carta di credito, che sostituisca la carta stessa nelle operazioni commerciali. Il certificato dell'utente contiene

un codice hash ottenuto dal numero di carta di credito e dalla sua data di scadenza
delle chiavi pubbliche, da riutilizzare per le operazioni di autenticazione e cifratura
la firma elettronica dell'autorità che rilascia il certificato, per garantire che tali informazioni sono corrette

Per richiedere un certificato, l'utente contatta (telematicamente) l'autorità di certificazione facendosi inviare un certificato contenente la chiave pubblica dell'autorità, firmato da un'autorità di livello superiore. Il software dell'utente può risalire l'albero gerarchico per controllare la validità del certificato ricevuto. A questo punto l'utente può generare due coppie di chiavi di cifratura di un algoritmo asimmetrico (RSA), una delle quali da utilizzare per lo scambio di chiavi e l'altra per operazioni di firma elettronica. Inoltre riempie un modulo contenente le informazioni necessarie per la registrazione (es.: nome, indirizzo, numero di carta, data di scadenza, ecc.). Dalle chiavi pubbliche ed dai dati d'utente viene quindi generato un codice hash (SHA) per garantirne l'integrità. Per poter ritornare tali informazioni all'autorità di certificazione è necessario innanzi tutto proteggerle, per cui viene generata una chiave random per un algoritmo di cifratura simmetrico (DES), con il quale cifrare il modulo di richiesta, le chiavi pubbliche ed il codice hash. Il messaggio cifrato, insieme alla chiave DES e al numero di carta dell'utente vengono infine composti in un nuovo messaggio che viene cifrato con la chiave pubblica dell'autorità di certificazione ed inviato alla stessa.

Una volta che l'autorità di certificazione riceve la richiesta, la decifra, verifica che i dati sono corretti e quindi prepara due certificati (uno contenente la chiave per la firma e l'altro per la cifratura durante lo scambio chiavi) che trasmette protetti generando una chiave DES con la quale cifra i due certificati. Questa informazione viene, infine, ritrasmessa insieme al crittogramma cifrandola con la chiave pubblica dell'utente.

Tralasciando la richiesta di certificazione da parte del commerciante, sostanzialmente analoga a quella dell'utente con l'unica complicazione aggiuntiva di prevedere l'interfacciamento con il sistema bancario, passiamo ad analizzare come si esegue un ordine. Innanzi tutto il commerciante deve rendere disponibile all'utente il suo certificato per lo scambio chiavi (es.: tramite una pagina WWW, posta elettronica, catalogo su CD-ROM, ecc.). Ottenuto il certificato, l'utente può riempire un modulo d'ordine (di formato qualsiasi) con l'elenco delle cose che intende acquistare ed i relativi costi. Inoltre, crea un modulo separato con le istruzioni per il pagamento (numero di conto, ecc.). Tali moduli vengono trattati dal software che controlla la transazione SET, che ne ricava un numero identificativo univoco. Tale numero viene incluso nei due distinti messaggi, uno relativo all'ordine e l'altro al pagamento, che vengono confezionati. Nel primo vengono anche inclusi i certificati per la firma e lo scambio chiavi, mentre nel secondo si include solo quello per la firma. Di entrambi i messaggi viene generato un codice hash che vengono poi concatenati per produrre un unico codice, utilizzato per la firma elettronica da includere, insieme ad entrambi i codici, in ciascuno dei due messaggi.

A questo punto è possibile inviare il tutto al commerciante. Si generano due distinte chiavi DES per cifrare separatamente i due messaggi per l'ordine ed il pagamento. Il messaggio per l'ordine viene, infine cifrato insieme alla relativa chiave DES con la chiave pubblica del commerciante. Il messaggio relativo al pagamento, invece, viene cifrato insieme al numero di carta ed alla chiave DES, con la chiave pubblica dell'istituto bancario che dovrà effettuare il pagamento. Entrambi i messaggi cifrati sono spediti al commerciante.

Alla ricezione di un ordine, il commerciante decifra il messaggio relativo all'ordine per poterlo eseguire, dopo aver verificato l'autenticità della firma elettronica dell'utente, e quindi invia una conferma (firmata), all'utente. Inoltre inoltra all'istituto bancario il modulo relativo al pagamento, alla conferma del quale può inviare le merci.