6. Digital cash

 

Il denaro contante è un problema. Gli assegni e le carte di credito ne hanno ridotto la quantità fisicamente circolante, ma la sua completa eliminazione è ancora lontana. D’altra parte, assegni e carte di credito, permettono di invadere a fondo la privacy delle persone. Oltre a queste ragioni e alla comodità di poter effettuare acquisti stando seduti in casa, è la sempre maggiore sicurezza con cui avvengono i pagamenti il motivo fondamentale per cui l’e-commerce si sta diffondendo così tanto. Infatti tali pagamenti avvengono mediante dei moderni sistemi che gestiscono elettronicamente la moneta (Sistemi Digital Cash).
Ciò è reso possibile con l’introduzione di protocolli che consentono di effettuare transazioni.

Tra le proprietà desiderabili per un sistema Digital Cash abbiamo :

 

1. SICUREZZA: si cerca di trovare un modo per evitare la falsificazione della moneta elettronica che, essendo rappresentata da stringhe di bit, risulta facilmente duplicabile. Infatti la copia ed il riutilizzo di moneta elettronica è computazionalmente impossibile;

 

2. ANONIMATO: è importante per chi utilizza moneta elettronica proteggere la propria privacy, in particolare evitare tracce sul percorso della moneta che facciano risalire a chi l’ha usata. I protocolli che vengono utilizzati garantiscono diversi livelli di anonimato, in genere tutti ragionevolmente buoni;

 

3. SCALABILITA: un sistema è scalabile se gestisce l’aumento degli utenti e delle risorse senza perdita di prestazioni. In genere l’uso di un server centrale, attraverso il quale avvengono le transazioni, limita la scalabilità del sistema, così pure come l’uso di meccanismi per individuare il riutilizzo della moneta (in quanto bisogna memorizzare per ogni utente molte informazioni relative alla moneta con un conseguente aumento della dimensione del database);

 

4. ACCETTABILITA’: è importante che la moneta elettronica emessa da una banca sia accettata dalle altre banche; quando tra le banche si effettua un scambio di valuta, la loro riconciliazione avviene in modo automatico;

 

5. TRASFERIBILITA’: è desiderabile che la moneta elettronica sia accettata da terzi, senza prima contattare la banca. In questo modo, viene valorizzata la proprietà di anonimato, anche se ciò complica il meccanismo che garantisce la sicurezza;

 

6. INDIPENDENZA DELL’HARDWARE: per il riutilizzo delle monete durante le operazioni off-line, alcuni protocolli sfruttano dell’hardware particolare che protegge da possibili intrusioni/manomissioni;

 

7. TIPOLOGIE DI PAGAMENTO: le modalità di pagamento sono diverse, come l'utilizzo di moneta elettronica opportunamente "coniata", assegni elettronici, smart card e carte di credito;

 

8. COSTI DI GESTIONE: i costi di gestione variano fondamentalmente in funzione del grado di sicurezza che il sistema offre;

Le differenti problematiche da affrontare per gestire l'e-commerce hanno portato alla creazione di diversi protocolli, ciascuno dei quali, in analisi dettagliata, si mostra più o meno efficace nel soddisfare determinate funzionalità. Questa efficacia porta a classificare i protocolli in diverse categorie.

 

Analizziamo quattro protocolli generici per un sistema digital cash. L'obiettivo è mostrare come avviene una transazione economica tra due parti generiche che chiameremo A e B. In tutti e quattro i protocolli esiste una banca che funge da mediatrice, il cui obiettivo consiste nel generare e convalidare la moneta che A invia a B. La denominazione progressiva dei protocolli è dovuta al fatto che ogni singolo protocollo risolve i problemi esistenti nel protocollo precedente. In questo modo si arriva all'ultimo protocollo, il quarto, che rappresenta la soluzione ottimale. Inoltre all'interno della sezione analizzeremo anche un attacco "ideale" a questi protocolli noto come “crimine perfetto”.Nei confronti di questo attacco i protocolli non hanno difesa e sono quindi vulnerabili.

 

 

6.1 Protocollo digital cash 1

 

Questo protocollo ha delle analogie con alcuni protocolli crittografici. Risulta essere una semplificazione dell'assegno del portatore.

E' espletato nei seguenti passi :

 

Con questo protocollo viene mantenuto l’anonimato di A in quanto la banca  firma l’assegno senza vederlo e si tutela sull’effettivo importo dell’assegno grazie alle 99 verifiche che precedono la firma. Risulta chiaro che A ha solo l’1% di probabilità di frodare la banca, ma resta comunque il fatto che A può copiare la moneta e spenderla più volte.

 

6.2 Protocollo digital cash 2

 

Il protocollo precedente impedisce ad A di farsi firmare dalla banca un assegno con un importo superiore. Il seguente protocollo risolve il problema riguardante la possibilità che A possa copiare la moneta e spenderla più volte, dando ad ogni assegno un unico identificatore (Stringa).

I suoi passi sono:

 

Con questo protocollo la banca si tutela nel caso A cercasse di spendere più volte l’assegno e nel caso in cui B cercasse di depositarlo più volte.

 

 

6.3 Protocollo digital cash 3

 

Il protocollo 2 tutela la banca dai possibili imbrogli ma non riesce comunque ad identificare un eventuale falsificatore (A oppure B). Il protocollo 3 risolve questo problema.

I suoi passi sono:

 - se sono uguali allora capisce che B è colpevole di aver copiato l’assegno;

- altrimenti se sono differenti la banca capisce che A ha copiato l’assegno.

Questo protocollo presuppone innanzitutto che B non possa variare la stringa scritta da A, a meno di un danneggiamento dell’assegno (per esempio l’assegno contiene dei quadrati da riempire con delle X ) e poi che A sia presente al momento in cui B verifica l’assegno con la banca.

 

 6.4 Protocollo digital cash 4

Con questo protocollo la banca può scoprire l’identità di A nel momento in cui questi tenta di imbrogliare, riesce quindi a fare ciò che il protocollo precedente non poteva. Per fare ciò è necessario utilizzare le nozioni di crittografia.
I passi sono:

- Ammontare : $1000;

- Stringa di riconoscimento assegno: X;

- Stringhe di identità: I1 (I1L , I1R),I2(I2L, I2R)..I100 ( I100L , I100R).

Come si può vedere ogni assegno oltre ad avere la stringa che lo identifica univocamente contiene anche 100 coppie In ognuna delle quali è generata come segue:

-         se sono uguali allora capisce che B è colpevole di aver copiato l’assegno;

-        altrimenti se sono differenti la banca capisce che A ha copiato l’assegno e siccome A ha riutilizzato la moneta con un altro commerciante C, quest’ultimo avrà dato ad A una stringa casuale di 100 bit differenti da quella datagli da B.

 

La banca ricerca proprio i bit in cui differiscono le due stringhe per rivelare l’identità di A. In particolare la probabilità che le due stringhe di 100 bit siano uguali è 1/2100 per cui la banca ricerca una coppia che, combinando i risultati delle due differenti aperture, abbia entrambe le metà svelate. Per esempio supponiamo che le due stringhe differiscano nell’ n-esimo bit allora le parti da mettere insieme (in xor) sono InL InR rivelando così l’identità di A.

E’ facile intuire che in questo protocollo viene mantenuto l’anonimato di A (a meno che non imbrogli) e soprattutto all’atto dell’acquisto (in particolare della verifica dell’assegno da parte di B) non è più necessaria la presenza di A per i motivi visti prima.

 

 

 

6.5 Crimine perfetto

 

Come abbiamo visto sino ad ora l’anonimato risulta essere fondamentale per le transazioni di moneta elettronica. Ma lo stesso anonimato può essere usato per scopi illeciti come mostrano i seguenti passi del protocollo noto come crimine perfetto:

-         una banca deve firmare tutti assegni;

-         pubblicare i risultati su di un giornale;

-         le autorità accettano;

 

Lo schema del crimine perfetto rappresenta l'unico modo per poter attaccare con successo il protocollo 4.

 

 

6.6 Firma Digitale

 

I nuovi sistemi di pagamento elettronico si basano su un estensione delle firme digitali dette blind signature. Uno schema di firma digitale è un protocollo per ottenere una firma da un firmatario in modo che egli non possa vedere ciò che firma, ad esso partecipano un mittente ed un firmatario. L’anonimato del mittente viene garantito, e ,per questo motivo tali schemi vengono utilizzati nei protocolli Digital Cash, ove assicurano, in particolare ,l’anonimato di chi usa moneta digitale. Sfortunatamente questo anonimato può essere usato da un malintenzionato per ottenere una firma che altrimenti non potrebbe avere. Descriveremo tali protocolli con l’aiuto di due partecipanti immaginari Alice(o semplicemente A) e Bob(o semplicemente B). Come accade usando del contante, Alice dovrà poter trasferire moneta digitale a Bob senza che una terza persona riesca a conoscere l’identità di Alice. Come conseguenza di ciò Bob potrà depositare la moneta elettronica sul suo conto bancario senza che la banca sappia chi sia Alice. Ma se Alice tentasse di dare a due persone lo stesso denaro elettronico con un programma che copia i bit,verrebbe individuata dalla banca,se Bob cercasse di depositare la stessa moneta digitale su due differenti conti,sarebbe individuato, ma Alice resterebbe anonima. La nozione di firma digitale fu inventata da D.Chaum che propose anche una prima implementazione. Lo schema usa l’algoritmo RSA.

Bob ha una chiave pubblica e,una privata d ed un valore pubblico n, Alice vuole che Bob firmi il messaggio m senza vederlo.

 1. Alice sceglie un valore casuale k compreso tra 1< k < n. Allora maschera m calcolando t = mke modn

 2. Bob firma t calcolando td = (mke)d mod n.

 3. Alice smaschera td calcolando s = td /k mod n.

 4. derivando allora la firma md mod n.

      poiché  s = td /k = (mke)d  / k = kmd / k = md

 

6.7 Ecash

 

Ecash è un sistema di pagamenti sicuri per Internet elaborato da Digicash società fondata dal Dott. David Chaum del "Center for Mathematics and Computer Science" con sede ad Amsterdam, e reso operativo in collaborazione con la Mark Twain Bank di St. Louis. 

Non è un sistema basato su transazioni con carta di credito: Ecash usa un proprio denaro virtuale, rappresentato da monete fornite da banche associate. Tali banche sono responsabili della certificazione dell'autenticità delle monete virtuali di Ecash.

Per poter utilizzare Ecash è necessario aprire un conto con una delle banche partecipanti. Sarà poi possibile memorizzare sul proprio computer monete elettroniche; tali monete, al momento di un acquisto, verranno trasferite al venditore sfruttando tecniche di crittografia a chiave pubblica e di firma digitale.

 

Caratteristiche

 

Operare con Ecash è piuttosto semplice: è sufficiente procurarsi il software Ecash client e aprire un conto con una delle banche partecipanti.
Il client Ecash, reperibile gratuitamente in rete, è in grado di operare (o ricevere) pagamenti con qualsiasi altro utente Internet che stia anch'egli utilizzando tale client.

Ad utenti e negozi non è richiesto alcun hardware particolare. Le banche avranno uno speciale hardware di codifica che assicuri velocità e affidabilità delle operazioni.

Ecash è un sistema basato su moneta, il che significa che si è creato denaro digitale usando una firma elettronica: tale firma rappresenta una quantità fissa di denaro chiamata moneta.

Sfruttando il client, il compratore (sia Alice) ritira ecash (una particolare forma di denaro digitale) da una banca e lo memorizza sul proprio computer.

Alice preleva ecash

Il compratore è adesso in grado di spendere tale denaro presso qualsiasi negozio che accetti ecash (sia Bob il proprietario di uno di tali negozi), senza dover aprire un conto con tale negozio e senza dover trasmettere un numero di carta di credito..

Alice compra da Bob

Il negozio è rappresentato da un documento html contenente una serie di indirizzi (URL) indicanti le merci in vendita. Ecash consente anche di effettuare pagamenti da persona a persona.

 

Ecash lavora con tutte le maggiori piattaforme (MS Windows, Macintosh, UNIX). Esiste sia una versione con interfaccia grafica che una versione solo testuale.
Per la versione corrente di Ecash è necessaria una connessione, ma una versione che sfrutterà l'e-mail è annunciata per un prossimo futuro.

 

Sicurezza e riservatezza

 

Per garantire sicurezza e riservatezza Ecash sfrutta tecniche di firma digitale a chiave pubblica. I prelievi di ecash dal conto di ogni utente sono inoltre protetti da una password nota esclusivamente all'utente stesso.

Quando è utilizzato per la prima volta, il software Ecash genera automaticamente una coppia di chiavi per codifica RSA. Ogni persona che utilizza Ecash possiede un'unica coppia di chiavi. Con queste è possibile garantire la sicurezza di ogni transazione e messaggio.

Ecash garantisce l'anonimato solo di chi paga. Durante un pagamento, colui che lo effettua può rendere nota la propria identità, ma solo se decide di farlo.

Chi riceve il pagamento, invece, non gode di anonimato: durante la fase di compensazione il beneficiario di una transazione è identificato dalla banca.

Per quanto riguarda la riservatezza delle transazioni, Ecash sfrutta la tecnica della firma digitale.
Quando il compratore ha necessità di effettuare un pagamento, deve avere ecash sul proprio computer. Il prelievo dalla banca è in realtà, per ragioni di riservatezza, qualcosa di più complesso che un semplice trasferimento di ecash dalla banca al PC del compratore.
Il PC dell'utente (Alice) calcola quante monete sono necessarie per ottenere la somma richiesta. Successivamente è il computer di Alice stesso che crea monete assegnando ad ognuna di loro un numero di serie casuale. Quindi spedisce alla banca queste monete, una ad una inserite in una speciale busta: questa rappresenta il fattore "cecità".

Alice manda le monete alla banca

La banca codifica i numeri "ciechi" con la propria chiave segreta (firma digitale), grazie alla proprietà della firma cieca che consente di applicare tale firma attraverso la busta; allo stesso tempo, la banca addebita sul conto di Alice la stessa somma. Le monete autenticate sono restituite ad Alice, che potrà togliere loro il fattore di "cecità" introdotto in precedenza, senza alterare la firma della banca. I numeri di serie con le loro firme rappresentano adesso moneta digitale; il valore delle monete è garantito dalla banca.

Quando Alice spenderà tali monete, la banca le accetterà in quanto da lei firmate. Tuttavia, poiché non sarà in grado di riconoscere le monete (che erano nascoste nella busta al momento di essere firmate), la banca non potrà dire chi ha effettuato il pagamento.