
|
Sistemi di autenticazione - STORIA DELLA CRITTOGRAFIA
L'Universal Serial Bus (USB) fornisce agli utenti di computer un modo
semplice per connettere velocemente periferiche, quali tastiere, mouse,
joystick e macchine fotografiche digitali ai propri PC, migliorandone velocità,
prestazioni e facilità d'uso. |
Garantire che una certa informazione sia accessibile solo da persone autorizzate è un'esigenza che ha caratterizzato la storia dell'uomo fin dai tempi dei romani. Giulio Cesare usava un sistema per comunicare con i propri eserciti per ridurre il rischio che il messaggio potesse giungere in mani sbagliate.
Successivamente molti altri grandi hanno fatto uso di sistemi crittografici per proteggere messaggi e informazioni.
In questo articolo cercheremo dapprima di capire cosa effettivamente significhi crittografare un messaggio e successivamente vedremo i possibili impieghi delle tecniche di crittografia nella vita dell'uomo.
CONTROLLARE L'ACCESSO ALL'INFORMAZIONE
I segreti sono parte della vita umana, così come nascondere le informazioni e i messaggi in modo che solo le persone autorizzate possono accedere.
Sono molti i motivi che possono portare ad un controllo dell'accesso all'informazione: informazioni riservate che consentono di fare qualcosa che non è noto a tutti (si pensi, ad esempio alla formula della coca cola…);informazioni che servono a coordinare l'azione di più individui e la cui conoscenza da parte di altri potrebbe comprometterne l'attività coordinata (ad esempio se la polizia scopre il piano di una banda per una rapina). L'esigenza di proteggere informazioni è emersa prima di tutto in ambito militare: un generale coordinava le proprie truppe sul campo di battaglia utilizzando messaggi e messaggeri. |
Ovviamente se il messaggio cadeva in mani sbagliate l'intera strategia di un esercito poteva risultare compromessa e portare ad una sconfitta. Al giorno di oggi ci sono altre informazioni altrettanto importanti che vanno assolutamente protette da parziali ascoltatori non autorizzati: si pensi ad esempio a cosa accadrebbe se fosse possibile, in modo semplice, accedere alla linea rossa tra la Casa Bianca e il Cremlino in modo da ascoltare il contenuto di telefonate che hanno spesso condizionato la storia recente.
Potremo continuare per tutto il resto dell'articolo ad elencare situazioni in cui è importante proteggere il contenuto di un messaggio ma dovrebbe essere già chiaro a quale tipo di situazioni ci riferiamo. |

|
Per cercare di difendersi dagli ascoltatori inopportuni l'uomo ha sviluppato varie tecniche nel tentativo di garantire che solo le persone autorizzate potessero accedere a certe informazioni.
Nell'esercito, ad esempio, tutte le informazioni sono etichettate come pubbliche o riservate (con differenti gradi di riservatezza) e il grado dei soldati determina chi ha diritto di accedere ad una certa informazione. Tutti i giorni sentiamo poi parlare del segreto di stato, un altro modo per restringere l'accesso a informazioni che si ritengono in qualche modo pericolose.
Un sistema quindi per proteggere l'informazione è quello di metterla sotto chiave, ma non è l'unico. Questo perché spesso l'informazione, per essere utile, deve essere trasferita e acceduta da differenti persone, mentre se la si mette sotto chiave si risolve solo il problema di custodirla.
L'uomo ha in generale seguito due strade differenti per difendere le proprie informazioni: - Utilizzare degli speciali codici per scrivere il messaggio conosciuti solo da chi può accedere all'informazione;
E' possibile rendere incomprensibile un messaggio a chi non è autorizzato a leggerlo utilizzando tecniche di crittografia. L'arte di nascondere l'informazione all'interno di altra informazione è oggetto di studio della steganografia.
Nel resto dell'articolo considereremo solo la crittografia.
LA SDC
Il problema della crittografia è quindi quello di trasformare un messaggio in modo tale che sia incomprensibile a tutti tranne che al destinatario. Le prime notizie di un sistema di crittografia si trovano negli scritti di Plutarco che descrive un metodo di scrittura nascosta adottato al tempo di Lisandro (400 a.C.) dagli spartani. Il metodo consisteva nell'arrotolare una striscia di cuoio attorno ad un bastone detto scitala e caratterizzato da un certo diametro; il messaggio veniva quindi scritto sul cuoio per colonne in modo che, una volta srotolata la striscia di cuoio risultasse incomprensibile poiché le lettere tutte mischiate.
Per leggere il messaggio quindi il destinatario disponeva di un bastone dello stesso diametro attorno al quale arrotolava nuovamente la striscia di cuoio per riottenere il messaggio inviato.
Sempre nell'antica Grecia, si usava il disco di Enea il Tattico, un disco con 24 fori, uno per ogni lettera dell'alfabeto. La codifica del messaggio avveniva passando un filo attraverso i buchi corrispondenti alle differenti lettere. Srotolando il filo avveniva la lettura al contrario del messaggio.
Il primo sistema di cifratura vero e proprio appare con Giulio Cesare che usava comunicare con i propri generali scrivendo messaggi in cui le lettere dell'alfabeto erano spostate di tre posizioni: al posto della lettera A si usava la lettera C, al posto della lettera B si usava la lettera D, e così via. Quando si arrivava alla lettera Z si ricominciava con la lettera A.
Con le conoscenze odierne sembra quasi banale ma per l'epoca si dimostrò più che sufficiente. Al giorno d'oggi gli orologi che usavano i bambini per costruire cifrari utilizzano meccanismi più sofisticati di quello utilizzato da Giulio Cesare!
Il sistema di cifratura utilizzato da Cesare è noto come cifrario monoalfabetico, è inoltre degenere in quanto associava sempre la lettera C alla lettera A invece di cambiare le corrispondenze esponendosi al rischio che una volta scoperto il trucco, fossero decifrati tutti i messaggi. |

|
Augusto introdusse un sistema di cifratura più complesso di quello di Cesare: scriveva il messaggio utilizzando il testo scritto di un libro, ad es. l'Odissea.
Il sistema consisteva nel cambiare sistema di cifratura per ogni lettera del messaggio: se nel cifrario di Cesare si usava la corrispondenza A-C per il cifrario monoalfabetico, Augusto utilizzava la corrispondenza A-X, se X, era l'i-esimo carattere del libro che usava e il carattere da codificare era l'i-esimo del messaggio.
In questo caso quindi si usava un cosiddetto cifrario polialfabetico, ovvero un sistema di cifratura in cui per ogni carattere si usa un cifrario monoalfabetico.
|
Per tutto il medioevo e i secoli a seguire si utilizzarono sistemi sempre più complessi per costruire le corrispondenze tra i caratteri del messaggio in chiaro e quelli del messaggio cifrato. Le vere novità nel mondo della crittografia arrivarono verso la fine dell'ottocento quando comparvero le prime macchine in grado di cifrare e decifrare automaticamente i messaggi.
La prima macchina di cui si ha notizia è il disco di Wheatstone: manovrando una delle due lancette disponibili si provoca lo spostamento dell'altra: la lettera puntata dalla lancetta mossa manualmente corrisponde alla lettera in chiaro mentre l'altra lancetta si muove automaticamente fornendo la lettera corrispondente per il messaggio crittografico.
Durante la seconda guerra mondiale i tedeschi utilizzavano una macchina per cifrare chiamata Enigma. Questa macchina era composta da vari dischi che ruotavano alla pressione di ogni tasto. Il codice prodotto dalla macchina era considerato inattaccabile dai tedeschi ma gli inglesi costruirono una macchina chiamata Colossus che riuscì a decifrare i messaggi prodotti da Enigma. Questo contribuì sicuramente alla sconfitta dei tedeschi nella seconda guerra mondiale.
Nel gruppo che sviluppò Colossus c'era anche il matematico inglese Alan Turing, uno dei padri dell'informatica.
LA CRITTOGRAFIA OGGI
Abbiamo già accennato al significato della crittografia ripercorrendone la storia, cerchiamo ora però di considerare il problema della crittografia da un punto di vista un po' più astratto.
Si pensi al problema generico di trasferire dell'informazione da un mittente ad un destinatario. Questo problema può essere modellato attraverso il seguente esempio: il mittente A invia un messaggio al destinatario B ed un ascoltatore non autorizzato M cerca di ascoltare il messaggio che passa nel canale. Tradizionalmente A è Alice, B è Bob e M è il Mallet che vuole capire il messaggio segreto che si scambiano Alice e Bob.
Alice confida il messaggio utilizzando un sistema crittografico conosciuto anche da Bob. Il sistema crittografico è composto da due componenti: l'algoritmo e la chiave. Dato lo stesso algoritmo si può variare il codice segreto variando la chiave. Nel caso del cifrario utilizzato da Cesare, ad esempio, una volta compreso l'algoritmo, si potevano decifrare tutti i messaggi. Se Cesare invece di usare sempre la rotazione dell'alfabeto di tre posizioni, avesse variato, il rischio sarebbe stato minore. Nel cifrario monoalfabetico la rotazione rappresenta la chiave del sistema. Nel caso della scitala era il diametro del bastone la chiave del sistema.
Poiché la chiave è a sua volta un'informazione, si fa l'ipotesi che esista un canale "sicuro" che consenta a Bob di inviare la chiave ad Alice, in modo tale che Alice possa poi codificare ed inviare i dati nel canale. Questa ipotesi è ragionevole: la chiave 'è solitamente una informazione piccola rispetto ai messaggi scambiati e non è necessario che sia trasmessa ad ogni comunicazione. Chi studia la crittografia normalmente si occupa anche di studiare la crittanalisi, ovvero le tecniche che consentono di risalire al messaggio in chiaro dato il messaggio cifrato. Sono state elaborate numerose tecniche per rompere un messaggio cifrato (ovvero riottenere la versione non crittografica) e dipendono dall'algoritmo utilizzato. Una tecnica è però sempre applicabile ed è nota con il metodo della forza bruta. Con questo metodo si provano tutte le possibili chiavi cercando quella che funziona. Il metodo della forza bruta mostra come nessun cifrario sia inattaccabile, anche se provare tutte le chiavi richiede un certo tempo. Spesso si valuta quindi la durata temporale per cui l'informazione deve essere riservata e si dimensiona la chiave in modo da garantire che la forza bruta richieda più tempo di quello che rende preziosa l'informazione. Il crescere della potenza di calcolo dei computer sta portando ad una crescita delle chiavi utilizzate: si pensi ad es. al cifrario DES (Data Encription Standard) definito alla fine degli anni 70 .Questo algoritmo prevede una chiave di 64 bit (bisogna quindi provare 264 chiavi per romperlo!) che sembrava enorme quando fu definito, ma al giorno d'oggi è stato rotto in meno di 24 ore.
ARRIVA LA CHIAVE PUBBLICA
Gli esempi di sistemi di cifratura riportati finora sono tali che esiste una sola chiave che viene usata per cifrare e decifrare il messaggio. Verso la metà degli anni 70 fu proposto un sistema di cifratura che prevedeva due chiavi distinte: una per cifrare e l'altra per decifrare: Inoltre, data una delle due chiavi, l'altra non è facilmente ottenibile, ovvero sono richieste enormi risorse di calcolo per derivare una dall'altra. |
Questo tipo di algoritmi sono noti con il nome di Algoritmi a chiave pubblica o asimmetrici in cui si ha una sola chiave. Gli algoritmi a chiave pubblica furono accolti con diffidenza dalla comunità che si occupava di crittogarafia ma si rivelarono determinanti per il futuro della crittografia e dell'informatica. Il vantaggio di un algoritmo a chiave pubblica è che una delle due chiavi può essere distribuita pubblicamente. Se ad es. Alice vuole scrivere a Bob, prende la chiave pubblica di Bob, la usa per codificare il messaggio e lo invia a Bob. Poiché solo Bob possiede l'ìaltra chiave, quella privata, solo lui potrà decifrare il messaggio.
|

|
NUOVE FRONTIERE PER LA CRITTOGRAFIA
L a cifratura di informazioni è, come abbiamo visto, un'applicazione classica della crittografia. L'arrivo della chiave pubblica ha però introdotto un nuovo modo di usare la crittografia: per la firma elettronica. L'idea è quella di chiedere a chi firma una dimostrazione del fatto che lui possiede la chiave privata. Viene quindi cifrato un messaggio da chi firma utilizzando la chiave privata. Chiunque potrà verificare con la chiave pubblica che il messaggio può essere decifrato e che quindi non può essere stato codificato dal possessore della chiave privata. Questo tipo di utilizzo della crittografia sta invadendo la nostra vita: E' alla base del commercio elettronico ed è anche ammesso per legge per firmare documenti con valore legale. Questo non manda però in pensione la crittografia a chiave privata: è molto più efficiente e quindi da preferire per lo scambio di dati. Viene quindi impegnata in ambito militare e commerciale. Perfino la linea rossa tra il Cremlino e la Casa Bianca trasmette i dati cifrati usando un algoritmo a chiave privata.
CONCLUSIONI
In questo articolo abbiamo ripercorso la sdc cercando di capire cosa significhi effettivamente crittografare. Il mondo della crittografia è in continuo fermento ed è realmente complesso . La conoscenza però dei principi e delle idee di fondo aiutano a comprendere questo mondo e quali influenze esercita ed eserciterà sulla nostra vita.
BIBLIOGRAFIA
1) A. Sgarro, "Crittografia, Tecniche di protezione dei dati riservati", Muzzio, 1993, ISBN 88-7021-640-3
2) B. Leporini, "La Criptografia", Tesi di laurea in Scienza dell'informazione, Università di Pisa LEPORINI@DI .UNIP.IT
LA CRITTOGRAFIA , UN ESEMPIO PRATICO
Gli esempi proposti in questo articolo, benché didatticamente interessanti, non possono essere usati in casi reali perché offrono basso un livello di sicurezza, sarà però presentato anche un algoritmo estremamente sicuro (se alcune premesse sono rispettate) ma scomodo da utilizzare, conosciuto con il nome di one time pad.
CIFRARI A SOSTITUZIONE E A TRASPOSIZIONE
Prima dell'avvento dei computers gli algoritmi crittografici erano "orientati al carattere" e consistevano fondamentalmente di due tecniche di base (anche combinate tra loro): la sostituzione di un carattere con un altro e la sostituzione di un carattere alla posizione x con un carattere alla posizione y. La sicurezza di un algoritmo crittografico basato su queste tecniche era direttamente proporzionale alla complessità di tali sostituzioni e, al contrario di quelli che sono i presupposti della crittografia moderna, tali algoritmi crittografici erano sicuri fino a quando l'algoritmo stesso rimaneva segreto. Uno degli algoritmi più semplici di questa classe, ancora vivo tra i banchi di scuola, è il "cifrario monoalfabetico". Tale cifrario consiste nella sostituzione di ogni carattere con quello corrispondente in una tabella come la seguente
ABCDEFGHIJKLMNOPQRSTUVWXYZ
EYIZAFOTXCJMVHRQDGUBPKLSWN
Ad esempio la frase "CIAO A TUTTI I LETTORI" diventa "IXER E BPBBX XMABBRGX". Il Listato 1 è la semplice implementazione in C di questo cifrario ( se volete provarlo tenete conto che funziona solo con le lettere maiuscole). Ottenere da questo il programma per decifrare è semplice: basta scambiare ilo contenuto della stringa "orig_set" con quello della stringa "cifr_set". Un modo banale per rendere la vita più difficile a chi tenta di decifrare un testo così "cifrato" consiste nell'includere anche il carattere di spazio tra quelli sostituiti in modo da non dare all'attaccante informazioni sulla lunghezza delle parole. Gli algoritmi a trasposizione, come già accennato, si basano sulla modifica della posizione dei caratteri in base ad un qualche schema. Ad es: una possibile tecnica è quella di dividere il testo in porzioni di 8 caratteri e modificare la posizione di questi in relazione allo schema seguente:12345678->23851647. Ecco un esempio
CIAOATUTTIILETTORIDIDEV (testo in chiaro)
CIAOATUT / TIILETTO / RIDIDEVV (testo in blocchi da 8 caratteri
IATACTOU / IIOETTLT / IDVDREIV (testo processato per blocchi)
IATACTOUIIOETTLTIDVDREIV ( testo cifrato)
Il lettore attento avrà notato che dopo aver separato il testo in blocchi da 8 caratteri è stata aggiunta una V. finale: ciò è stato necessario perché la lunghezza del testo non era un multiplo di 8. Un altro semplice algoritmo di trasposizione è detto "Semplice cifrario a trasposizione colonnare", e si presta particolarmente ad essere utilizzato "a mano" con carta e penna. Il testo in chiaro viene scritto orizzontalmente in una matrice larga " n ". Il testo trasposto è ottenuto leggendo i caratteri verticalmente dall'alto verso il basso e da sinistra verso destra; ecco un esempio di questo cifrario ( una frase tratta dal libro Applied Cryptography di Bruce Schneier)
"ESISTONO DUE TIPI DI CRITTOGRAFIA A QUESTO MONDO: LA CRITTOGRAFIA CHE BLOCCA LA TUA SORELLINA DAL LEGGERE I TUOI FILES E LA CRITTOGRAFIA CHE BLOCCA I MAGGIORI GOVERNI DAL LEGGERE I TUOI FILE"
Il testo sulla matrice è
"E S I S T O N O D U E T I P I D I C R I T T O G R A F I A A Q U E S T O M O N D O : L A C R I T T O G R A F I A C H E B L O C C A L A T U A S O R E L L I N A D A L L E G G E R E I T U O I F I L E S E L A C R I T T O G R A F I A C H E B L O C C A I M A G G I O R I G O V E R N I D A L L E G G E R E I T U O I F I L E "
Testo trasposto risultante
EQLTCTSUOUCUIECOAOSSCIIITTAFMFOOLIAINMAEGLOOTLGEDNUSISUDAEOEOSLRT:OAIIL RCGPAEROICLIVDRLTEIIITRCTNONRTAGIIODRDTGAAATRLFLOALILGFEAERIGCGAAGHGFCE EEIHRBRAEELEABIOI
Per ottenere il testo in chiaro da quello risultante dalla trasposizione basta semplicemente riscriverla verticalmente sulla matrice carattere per carattere. Il Listato 2 è l'implementazione in C del cifrario a trasposizione colonnare. Potete variare la larghezza orizzontale della matrice ridefinendo COL_SIZE. La realizzazione del programma per ottenere il testo in chiaro dal testo trasposto è lasciata al lettore.
L0 XOR
Lo Xor, anche conosciuto come OR esclusivo, è una delle operazioni di base dei più moderni e sicuri algoritmi crittografici. Nonostante ciò possiede molte applicazioni semplici e costituisce il meccanismo fondamentale per implementare la "one time pad", metodo crittografico estremamente sicuro. In C l'operazione di Xor si indica il simbolo "^" mentre in matematica con un cerchietto che racchiude un "+". Lo Xor è un operatore logico bit per bit che segue questa tabella di verità
0 Xor 0=0
0 Xor 1=1
1 Xor 0=1
1 Xor 1=0
da ciò seguono queste proprietà di base:
a Xor a=0
a Xor b Xor b=a
nfine ecco un esempio di Xor tra due byte:
01101010 Xor
11100101 =
10001111
L'utilizzo più semplice di questo operatore è quello di effettuare lo Xor tra ogni lettera del testo in chiaro e un byte fisso. Ciò equivale perfettamente ad un cifrario monoalfabetico.
Un utilizzo un po' più complesso è quello di dividere in blocchi di n caratteri il testo in chiaro ed eseguire lo Xor di ogni blocco con una sequenza fissa di n byte ( la chiave del cifrario). Questo algoritmo equivale ad un cifrario polialfabetico, che non è altro che la somma di più cifrari monoalfabetici utilizzati in relazione alla posizione della lettera. Questa tecnica è estremamente imbarazzante nel mondo della crittografia poiché nonostante la sua banalità estrema e la sua sicurezza praticamente nulla viene utilizzata molto spesso in software per Microsoft Windows e per Macintosh.
ONE TIME PAD
Il semplice Xor, per quanto strano possa apparire, può essere utilizzato per mettere in piedi un cifrario perfetto, estremamente sicuro, non crackabile neppure disponendo di un tempo macchina infinito e di processori di velocità. Questo cifrario si chiama "one time pad", ed è stato inventato da Major Joseph Mauborgne e da Gilbert Vernam. Il funzionamento è semplice. Ammettiamo di voler cifrare un testo composto da 100 caratteri o un file da 100 byte. Si procede generando 100 byte "assolutamente" casuali, che non possono essere predetti: questo insieme di byte sono la "pad" che deve essere custodita poiché se diventasse pubblica il sistema perderebbe di validità. A questo punto si procede eseguendo lo Xor tra ogni carattere del testo con ogni byte della pad, il primo con il primo, il secondo con il secondo e così via. Quello che ne risulta è il testo cifrato. L'operazione per ottenere il testo in chiaro è identica a quella appena vista per la cifratura e può essere eseguita solo da chi possiede la pad. Tutto ciò sembra molto semplice, ma nasconde un'insidia non da poco per il fatto che generare delle sequenze di numeri realmente casuali è devvero molto complesso. Tutti gli attacchi possibili contro la one time pad sono attacchi contro il metodo di generazione della pad stessa. Se la pad è davvero casuale il testo cifrato non nasconde nessuna informazione che può permettere ad un attacker di risalire al testo in chiaro; tutti i testi in chiaro sono equamente possibili e, come affermato in precedenza, avere tantissima potenza di calcolo non cambia le cose. Un altro punto di estrema importanza è che ogni pad può essere utilizzata per cifrare un solo messaggio. Ciò che è fondamentale. Infatti, se si utilizza la stessa pad per cifrare più messaggi è possibile crittoanalizzare i testi cifrati per ottenere la pad e il testo in chiaro che contengono (il lettore attento trarrà le sue conclusioni dal fatto che, eseguendo lo Xor tra due testi cifrati con la stessa pad, si ottiene lo Xor tra i due testi in chiaro poiché la pad viene così rimossa).Nonostante questa difficoltà, è possibile utilizzare la one time pad con successo. Chi dispone di un sistema Linux, OpenBSD o FreeBSD può avvalersi di uno speciale "Char device" che implementa un generatore di byte pseudo casuali ma di sicurezza crittografica. Tali byte sono ottenuti "facendo passare" da un algoritmo di hashing di sicurezza crittografica, quale ad es. SHA1, dei byte con un grado di entropia (quali ad es. dei dati sul tempo di pressioni dei tasti da parte dell'utente, sulla latenza delle testine sul disco, sull'arrivo di pacchetti nelle interfacce di rete e così via). In particolare, Linux possiede due device di diverso grado di sicurezza: /dev/random e /dev/urandom. Per la generazione della one time pad, se la sicurezza richiesta è estremamente alta, è il caso di utilizzare /dev/random, altrimenti si può ripiegare /dev/urandom (con un grande atto di fiducia, probabilmente giustificato, alla sicurezza di SHA1.
CONCLUSIONI
A differenza di qualche anno fa, quando reperire libri ed informazioni sulla crittografia non era semplicissimo, oggi è possibile approfondire questa scienza da parte di chiunque ne fosse interessato. Ciò che serve è una infarinatura sulla teoria dei numeri ed una connessione ad Internet. Nella rete la documentazione disponibile è di una vastità impressionante. La crittografia è una scienza meravigliosa, la cui conoscenza può salvaguardare dei diritti di base della persona: conoscerla equivale ad essere più sicuri
BIBLIOGRAFIA
B. Schneier, "Applied Cryptography" second edition, Wiley, 1996 ISBN 0-471-11709-9
LA CRITTOGRAFIA IN INTERNET
Sebbene il problema della sicurezza all'interno delle reti di calcolatori sia sempre stato motivo di grande attenzione da parte degli addetti ai lavori, con la crescita esponenziale degli utenti di Internet e con il progressivo affermarsi di strumenti commerciali e finanziari basati sul Web, la crittografia e la sua applicazione nella ricerca di sistemi per l'implementazione di transazioni sicure sono al momento uno dei temi che richiedono più energie agli esperimenti di applicazioni nell'area IT. Come avrete capito dagli altri articoli di questo speciale, la protezione dei dati basata su meccanismi crittografici è una materia estremamente complicata; tutti quelli che si occupano di questi temi sanno bene che sarà difficile prevedere tutte le evenienze, specie all'interno di contesti complessi come quello di reti eterogenee come Internet. In questo caso infatti le insidie possono essere numerose e la sicurezza della transazione dipende almeno da tre fattori principali:
-Sistemi - la sicurezza fisica dei server è uno dei primi temi da affrontare: qualsiasi sia la piattaforma, sarà bene analizzare la tipologia di struttura che si occupa del routing verso il resto della rete sia dal punto di vista dei meccanismi passivi che attivi (gateway, router, firewall, proxy ecc.). Da questo punto di vista non bisogna dimenticare anche un'attenta analisi del sistema operativo: l'attività di analisi della configurazione del sistema prima di una sua connessione ad una rete potenzialmente insicura è un passo che non si può evitare;
-Software dedicati alla fornitura dei servizi- pensiamo, ad es, ad un web server: anche dalla configurazione di questo software può dipendere la sicurezza dei dati scambiati con l'esterno;
-Protocolli- il protocollo, sia esso a livello di rete che a livello applicativo, è un altro elemento dedicato alla sicurezza: introdurre meccanismi crittografici in questa area può essere molto efficace e in alcuni casi ( per es. transazioni commerciali sicure) indispensabile.
LA POLITICA DI SICUREZZA : NON SOLO INFRASTRUTTURA
Quando si parla di gestione del sistema di sicurezza, si intende sia la definizione delle politiche di sicurezza che la loro applicazione. In generale la politica di sicurezza stabilisce criteri che permettano di raggiungere giusti compromessi tra disponibilità delle informazioni (in qualche modo gli strumenti per la gestione della sicurezza introducono restrizioni a volte troppo costose sia per l'utente che per il sistema), e le necessità di riservatezza e segretezza. Di conseguenza l'obiettivo principale di una politica di sicurezza è proteggere le risorse senza trascurare l'effetto sulla produttività degli utenti. La definizione di una politica di questo tipo passa attraverso tre fasi principali:
-Definizione degli aspetti della politica;
-Realizzazione delle procedure e loro introduzione nell'ambiente da proteggere;
-Implementazione della politica: in questa ultima fase assumerà particolare importanza il feedback sia in termini di costi di attivazione e gestione che in termini di impatto sugli utenti del sistema.
Alla luce di quanto esposto a proposito dei fattori che influenzano la sicurezza delle transazioni, appare chiaro che la definizione della politica di sicurezza non è solo una questione infrastrutturale, anzi, in relazione alle reti pubbliche e alla sicurezza delle transazioni, dovrà affrontare: - L'analisi dei protocolli di sicurezza impiegabili - in tal senso si può prevedere anche l'introduzione di meccanismi a più livelli; - Il rapporto con le eventuali terze parti- pensiamo agli enti fornitori di servizi per la sicurezza delle transazioni (ad es. gli istituti bancari) o di chiavi e certificati digitali (che descriveremo più avanti).
La nostra analisi partirà dai protocolli con la presentazione di due diverse filosofie di approccio per la garanzia della sicurezza della trasmissione. Successivamente, affrontando i temi dell'e-commerce, vedremo chi sono gli interlocutori a disposizione di tutte le aziende che vogliano dare la gestione della sicurezza della transazione elettronica in out-sourcing.
LA SICUREZZA A LIVELLO IP NELLE VPN
Come noto, la comunicazione su cui si basa Internet è resa possibile (a livello di trasferimento delle informazioni) dal protocollo TCP/IP. Tale protocollo però non è in grado di garantire la privatezza di quanto è trasmesso; questo inconveniente diventa particolarmente grave nel caso di VPN (Virtual Private Network) ovvero di reti private che basano parte della loro architettura sul trasporto attraverso una rete pubblica: pensate ad es. a un' azienda con molti uffici in luoghi geograficamente distribuiti che vuole impiegare Internet per trasferire dati tra le diverse sedi in modo economico e sicuro. In questo caso l'unica soluzione è nell'impiego di un protocollo IP sicuro. Un protocollo di questo tipo deve garantire che: - Le identità degli interlocutori siano mutuamente accertate e valide;- L'origine di ogni pacchetto trasferito sia verificata e valida;- Il contenuto dei messaggi non venga alterato durante la trasmissione; - I mittenti siano certi e non possano negare l'origine del pacchetto inviato; - Sia possibile implementarlo senza inficiare in modo pesante le presentazioni della trasmissione (la gestione degli algoritmi crittografici ha un costo, e l'applicazione a tutte le informazioni scambiate tra due interlocutori non può pesare troppo sulle velocità trasmissive), - Sia possibile effettuare un controllo di accesso alle risorse distribuite nella rete. |

|
L'intervento di questo tipo di protocolli nello stack ISO-OSI è a livello di rete; ciò che avviene, quindi, è la trasmissione di pacchetti IP modificati secondo le specifiche di sicurezza. Un es. di protocollo IP sicuro di uso generale è IPSEC. Si tratta di un protocollo pubblico sviluppato con il controllo dell' Internet Engineerig Task Force (IETF) che si basa sulla modifica dei pacchetti IP: ogni pacchetto subisce una modifica nell'intestazione che oltre al normale IP Header conterrà un' intestazione di autenticazione IPSEC contenente i dati per autenticare l'origine seguita dai dati criptati; solo il destinatario avrà modo di effettuare le operazione di traduzione per il corretto trasferimento ai livelli OSI superiori. Dovrebbe essere chiaro che con questo meccanismo tutte le comunicazioni a livello applicativo impiegheranno il sistema di sicurezza in modo assolutamente trasparente e tutti gli utenti di una VPN basata su un protocollo di questo tipo non avvertiranno nessuna differenza rispetto ad analoghi servizi all'interno di una rete locale (come già accennato le uniche differenze sarebbero riconducibili ad aspetti di performance). Se questo tipo di strumenti è particolarmente indicato per le VPN, per altri tipi di servizi (tipicamente le transazioni commerciali su rete pubblica) può essere più idoneo l'uso di protocolli di più alto livello. Nel paragrafo seguente scaleremo quindi la sicurezza a livello di applicazione con Secure Socket Layer (SSL).
|
Tutti gli utenti di Internet conosceranno SSL. La causa ed assieme l'effetto della sua diffusione è il suo pieno supporto nei browser più diffusi e l'adozione da parte di moltissimi sistemi transazionali sicuri basati su Web SSL è un protocollo che permette di far comunicare due interlocutori in modo sicuro con meccanismi crittografici. Cerchiamo di spiegare semplicemente il funzionamento; alla base del meccanismo c'è sempre l'impiego di chiavi: il cliente riceve gli strumenti per criptare le informazioni (in pratica una chiave pubblica) e il fornitore del servizio (dotato della chiave privata) è l'unico in grado di tradurre correttamente le informazioni inviate. La garanzia che la chiave pubblica ricevuta dal client sia una chiave legale è data dal certificato digitale. Chiariremo questo concetto più avanti; per ora ci basterà dire che si tratta di uno strumento rilasciato da un'organizzazione riconosciuta che da al client garanzie sulla paternità della chiave pubblica ricevuta. E' chiaro che in questo caso il protocollo impiegato per il trasporto può anche non essere sicuro: il meccanismo crittografico agisce a livello applicativo e solo limitante al traffico di rete generato nella sezione basata su SSL .
I PAGAMENTI SICURI DI UN SISTEMA DI E-COMMERCE
Uno degli aspetti più delicati da considerare nell'attività di commercio elettronico e in rete è senza alcun dubbio quello relativo ai pagamenti. Tralasciando forme di pagamento più tradizionali quali il pagamento in contrassegno (ancora da alcuni utilizzato) e che ovviamente non interessano, ci concentreremo sullo strumento di pagamento più diffuso su Internet: la carta di credito.
Il successo di questo strumento è certamente dovuto alla semplicità d'uso che ben si adatta alla spesa virtuale in un sito Internet di e-commerce. Basta infatti inviare il proprio numero di carta per perfezionare la transazione. Il maggior fattore di rischio associato alle transazioni on-line è relativo alle caratteristiche stesse della rete. Il numero di carta infatti nel suo viaggio tocca molti nodi e potrebbe quindi essere intercettato. Un altro problema da considerare è quello dell'oggettiva difficoltà che esiste nell'accettare l'effettiva identità dei soggetti della transazione. |
Un falso venditore potrebbe furbescamente fare incetta di numeri di carta per poi utilizzarli dolosamente. Anche la non certificata identità del compratore può causare problemi: questi potrebbe infatti ricusare l'addebito. Per aumentare la sicurezza occorre quindi adottare opportune tecniche di crittografia. SSL (Secure Socket Layer) è sicuramente il protocollo basato su crittografia più utilizzato su Internet e deve la sua fortuna alle buone prestazioni in termini di sicurezza e alla sua natura non proprietaria. Posto come punto fermo che i dati riservati della transazione dovranno viaggiare in forma criptata (grazie a SSL), per organizzare un negozio virtuale saranno possibili due scelte: - Gestire direttamente i pagamenti: si utilizza un server sicuro per il negozio virtuale e si memorizzano i dati del pagamento per poi reclamare l'accredito dell'importo. - Si utilizzano i servizi di appositi provider (generalmente istituti bancari) per la gestione dei pagamenti. Il primo punto, senz'altro da sconsigliare, presenta vari problemi. Occorre infatti in questo caso assumersi gli oneri di un sistema sicuro, non solo per quanto riguarda il passaggio dei dati, ma anche per la conservazione degli stessi in maniera assolutamente protetta. Inoltre ed in ogni caso l'impossibilità di accertare in tempo utile la validità e solvibilità di una carta espone il venditore ad un rischio notevole. Anche il consumatore è meno garantito (non è troppo corretto che il venditore mantenga traccia dei dati delle carte di credito dei propri clienti). E' quindi conveniente affidarsi ad una struttura specializzata che rappresenterà anche una ulteriore garanzia per chi acquista on-line. Ovviamente il futuro porterà diverse novità, tra le più immediate sembra interessante un utilizzo maggiore delle smartcard sia come supporti per garantire alcune forme di autenticazione, sia come strumenti per la gestione del denaro elettronico e dell'esecuzione delle transazioni.
LE GARANZIE DELLA PROVENIENZA CON CERTIFICATI E FIRME DIGITALI
Tutti i temi legati alla garanzia di autenticità dei dati trasmessi in forma digitale sono riconducibili alle firme e ai certificati digitali. Una firma digitale non è altro che un'informazione integrata in un documento informatico con lo scopo di garantirne integrità e provenienza. A questo proposito è opportuno far chiarezza sulla differenza tra firma elettronica e firma digitale: mentre la prima può essere costituita da un qualsiasi mezzo elettronico di identificazione, la seconda indica un sistema basato su crittografia a chiavi simmetriche. La firma digitale quindi interviene direttamente sul documento che contiene non solo informazioni ma anche l'implicita garanzia sulla provenienza. L'incertezza però può ancora sussistere: chi fornisce garanzie sulla certezza dell'associazione tra una firma e il suo proprietario? Per risolvere questi problemi interviene il certificato digitale. Si tratta di una struttura dati idonea a associare in modo sicuro una chiave pubblica (parte della firma digitale) a un soggetto. A questo punto intervengono gli enti certificatori ovvero autorità che hanno le caratteristiche (anche giuridiche) per garantire l'associazione tra un soggetto e la sua chiave pubblica tramite l'emissione di un certificato digitale. Dove reperire un certificato? La risposta è sicuramente in uno degli enti di riferimento in questo campo: VeriSign (http://www.versign.com), sul sito troverete tutte le informazioni per la richiesta e l'assegnazione di un certificato digitale.
CONCLUSIONI
L'argomento è vastissimo, l'obiettivo che dovremmo aver raggiunto è aver identificato le aree di intervento della crittografia in Internet e aver fornito un quadro delle filosofie applicabili. Immaginiamo che molti di voi stiano affrontando queste problematiche in relazione al commercio elettronico; a questo proposito concludiamo raccomandandovi di svolgere l'analisi dei protocolli transazionali sicuri all'interno di una più ampia e attenta riflessione legata alla definizione di una politica di sicurezza che affronti il problema anche dal punto di vista del server, e dell'infrastruttura che ruota attorno ai dispositivi che erogheranno i servizi.
APPENDICE A
I problemi che possono mettere in seria difficoltà il mercante virtuale e/o lo sviluppatore non sono solo di natura tecnica e non tutti legati alla necessità di rendere le transazioni sicure. Insidie forse anche maggiori si annidano nei vuoti lasciati dal legislatore che solo recentemente ha colto la necessità di produrre un complesso di iniziative volte ad una più precisa e sicura regolamentazione delle attività commerciali in rete. Il quadro è poi ulteriormente complicato dalla natura estremamente dinamica della rete e dall'abbattimento delle barriere nazionali (e quindi dalla possibilità di avviare transazioni commerciali con paesi che sia dal punto di vista legislativo che fiscale possono differire molto dalla realtà italiana). Anche a costo di discostarci un poco dal tema dello speciale ci sentiamo in dovere di fornire alcuni spunti di approfondimento su questi aspetti del commercio elettronico. E' importante a questo punto una premessa necessaria al corretto inquadramento del significato delle indicazioni che seguiranno. Non è interesse di chi scrive infatti proporre una trattazione legale di alto livello sulle problematiche dell'argomento. Si vuole piuttosto focalizzare l'attenzione su alcuni aspetti importanti e non troppo evidenti ma la cui conoscenza è assolutamente necessaria per chi intenda cimentarsi nella costruzione di un sito per il commercio elettronico. E' evidente che la soluzione migliore sarebbe quella di potersi avvalere della consulenza di un legale esperto di questo genere di attività ma ciò non sempre è possibile, soprattutto se l'operazione commerciale è di livello tale da non giustificare un impegno economico specifico in tal senso. Una possibile e più economica alternativa è documentarsi considerando anche che gli aspetti tecnico-legali dell'e-commerce (assieme al marketing) sono quelli più spesso indagati e su cui è disponibile la maggior quantità di materiale, sia in rete che in libreria. Quello che cercheremo quindi di darvi è una serie di spunti di indagine nati dall'esperienza del tecnico informatico che, entrando in contatto con questo nuovo sviluppo della rete Internet, è costretto ad interessarsi anche a problematiche di natura non strettamente tecnica ma la cui conoscenza è assolutamente essenziale per avviare burocraticamente l'e-commerce. Gli aspetti da approfondire sono:
- La regolamentazione delle attività commerciali operata dalla legislazione italiana. Probabilmente questo aspetto non interessa chi ha già una sua attività di vendita e vede la rete solo come una possibile espansione del proprio mercato. E' importante invece che chi vuole iniziare a vendere su Web partendo da zero si preoccupi prima di adempiere a tutte le incombenze che la legge prevede per le attività commerciali in genere. Occorre anche informarsi se il tipo di attività che si vuole esercitare è consentita in rete (la possibilità di mettere in piedi concorsi a premi o aste, ad es. , va studiata nel dettaglio).
- Norme che regolano la stesura dei contratti. Questo campo già di per sé molto articolato è ulteriormente complicato dall'uso del nuovo mezzo. Le garanzie di un accordo contrattuale stipulato on-line non sono al momento assolute (l'uso della firma digitale dovrebbe risolvere questo problema). Al momento per tutelarsi il più possibile occorre studiare attentamente la sequenza dei passi dell'operazione di acquisto facendo particolare attenzione a quali informazioni occorre presentare obbligatoriamente all'acquirente ed in che ordine temporale (condizioni di vendita, prezzi, dati riepilogativi della transazione ecc.)
- Documentazione da produrre. Il problema riguarda soprattutto gli aspetti fiscali della vendita. Si pensi, ad esempio, all'emissione di una fattura.
- Legislazione del paese dell'acquirente. Il problema va studiato a fondo se si vogliono sfruttare appieno le caratteristiche di globalità del mercato su Internet. Occorre indagare se si è sottoposti ad obblighi magari non previsti dalla legislazione italiana ma vincolanti nel tipo di transazione internazionale che si sta effettuando.
- Problematiche relative al pagamento. La non sempre certa identificabilità di chi è all'altro capo del filo può causare dei problemi. Il fornitore dei servizi che avete scelto per la gestione dei pagamenti on-line è certamente il vostro primo consulente. Vi consigliamo a questo proposito di contattare alcuni tra gli enti che da più tempo sono attivi in quest'area: Banca Sella (http://www.bancasella.it), Monte Paschi Siena (con un sistema Telepay http://www.mps.it) e SSB (http://www.ssb.net).
- Aspetti legati alla privacy. E' importante documentarsi a riguardo dal momento che una non corretta gestione dei dati acquisiti nel quadro della vendita può far incorrere in problemi anche seri. Esistono infatti regole molto restrittive circa la raccolta e la manipolazione dei dati personali.
Certi dell'utilità di questa breve digressione, proponiamo un piccolo elenco (certamente non esaustivo di siti che possono aiutare ad approfondire parte dei temi proposti:
http://www.interlex.it
http://www.jei.it
http://www.notariato.it
http://www.minindustria.it/osservatorio/index
http://www.aipa.it
|
E-COMMERCE: APPLICAZIONE CLIENT/SERVER PER LA TRANSAZIONE SICURA D'INFORMAZIONI
Il commercio elettronico è ormai una realtà diffusa e sta trasformando il mondo telematico in un gigantesco mercato. Si moltiplicano le transazioni on-line tra potenziali clienti e potenziali venditori. Vediamo in questo articolo quali tecniche crittografiche e protocolli sono alla base della sicurezza di queste transazioni, implementando la struttura di un semplice sistema client/server utile per trasferire in modo sicuro informazioni riservate. L'algoritmo utilizzato fa toccare con mano l'affidabilità e la sicurezza di tali transazioni.
Grazie allo sviluppo di nuove tecnologie è oggi possibile utilizzare Internet non solo per acquisire informazioni e per curiosare, ma anche per l'acquisto diretto di beni e servizi. La rete si sta affermando come un vero e proprio mercato globale prestandosi alle più svariate compravendite. Siamo giunti nell'era del commercio elettronico (E-Commerce) nel quale per avere successo sono necessari diversi ingredienti. Fra questi ci sono un buon sistema di risorse software ed hardware dedicate, una gestione oculata del sito, ed un'attenzione molto elevata agli aspetti della sicurezza. Quello della sicurezza è un punto fondamentale ed è un passaggio obbligato per chiunque voglia mettere in servizio un sito di E-Commerce, in quanto occorre comprendere e superare tutte le preoccupazioni dei potenziali clienti riguardo alla sicurezza delle transazioni. Grazie ai protocolli di crittografia attualmente utilizzati queste operazioni sono sicure, almeno quanto la maggior parte delle operazioni di pagamento effettuate utilizzando la carta di credito nei ristoranti, nei negozi o al telefono. E' importante far conoscere la sicurezza di questi nuovi sistemi di pagamento poiché molte persone che hanno timore ad effettuare acquisti via Web non esiterebbero a leggere il numero di carta di credito su un telefono cordless che chiunque nelle vicinanze potrebbe intercettare. In questo articolo andiamo quindi ad analizzare i sistemi di pagamento utilizzati, i criteri di sicurezza richiesti ed i protocolli implementati per supplire alle esigenze di questo nuovo mercato. Viene riportato un esempio molto usato, che tra l'altro sta alla base di molti protocolli di comunicazione sicura utilizzati realmente su Internet.
SISTEMI DI PAGAMENTO
Nel commercio elettronico il venditore ed il compratore non sono gli unici attori della transazione; viene infatti coinvolta una terza parte (per es. un'istituzione bancaria) che ha lo scopo di legare i bit del denaro, cioè la moneta virtuale a quella reale. Diversi approcci vengono utilizzati per pagare un bene o un servizio acquistato mediante commercio elettronico. I più semplici sono quelli tradizionali quali bonifico bancario, assegno e contrassegno. In questo caso le transazioni hanno origine su Internet, dove avvengono le operazioni di scelta e di ordine, ma il pagamento si conclude comunque fuori dal sistema telematico. Il sistema maggiormente utilizzato rimane tuttavia la carta di credito. Con questa le operazioni di comunicazione dei dati può avvenire secondo tre diverse modalità:
- Posticipata: una volta scelto ed ordinato il prodotto via rete, l'utente comunica i dati della propria carta di credito via fax o telefono.
- In chiaro: una volta scelto il prodotto, il compratore comunica il numero della propria carta di credito utilizzando un apposito form presente sul sito del venditore in maniera congiunta all'ordine.
- Cifrata: una volta scelto il prodotto l'acquirente comunica alla controparte il numero della carta di credito per via telematica attraverso sistemi di cifratura.
PRINCIPALI REQUISITI DI SICUREZZA
Le transazioni di commercio elettronico devono rispondere a specifici criteri di sicurezza:
Riservatezza Disponibilità Integrità e autenticazione
Soltanto le parti coinvolte nella transazione devono conoscere le loro rispettive identità e l'ammontare della transazione, si richiede quindi che vengano rispettati requisiti di anonimato e di non tracciabilità delle operazioni. Le parti coinvolte devono inoltre avere la sicurezza di effettuare e di ricevere i pagamenti senza rimanere nello stato di indeterminatezza. Tutto il software e l'hardware coinvolto nella transazione deve essere estremamente affidabile poiché nessuno vuole rischiare di perdere denaro a causa di un guasto ad un server oppure un'interruzione della rete telematica. Gli attori della transazione richiedono inoltre garanzie di integrità dei messaggi; nessuna delle parti vuole infatti esporsi finanziariamente prima che un pagamento od un ordine sia stato effettivamente autorizzato.
LA VULNERABILITA' DEL SISTEMA
Una tipica struttura di commercio elettronico vede coinvolte le seguenti parti:
Il sito del mercante
Il sistema dell'acquirente
La connessine tra mercante ed acquirente
Un gestore del sistema di pagamento
La protezione del sito del mercante può essere ottenuta con tecniche e strumenti ormai consolidati. Una delle tecniche più utilizzate divide il sistema in due parti di cui una ha lo scopo di proporre i servizi informativi (es. cataloghi, prodotto, data sheet, ecc.) e l'altra è invece specializzata nella gestione delle transazioni economiche. Quest'ultima diventa particolarmente sicura se gestita da terze parti specializzate nei sistemi di pagamento. E' importante separare queste due parti e renderle indipendenti affinché la compromissione dell'una non influisca sulla seconda.
|

|
La maggior parte degli attacchi al sito del mercante sono generalmente rivolti ad impedire l'uso del servizio; il mercante non controlla la rete e quindi gli attacchi condotti contro strutture fuori dal suo controllo possono isolarlo; gli attacchi possono essere condotti anche con false richieste di servizio che, anche se scartate, possono sovraccaricare il server. Il sistema dell'acquirente è comunque molto più vulnerabile poiché progettato per un uso generico e quindi meno sicuro di quanto possa richiedere il commercio elettronico; l'utente è inoltre poco preparato e spesso non ha le capacità o le conoscenze sufficienti per adottare le strategie più sicure. La connessione tra mercante e acquirente è potenzialmente molto vulnerabile poiché completamente fuori dal controllo delle parti che conducono la transazione. Tuttavia il traffico relativo alle transazioni di commercio elettronico risulta ormai quasi universalmente cifrato ed i protocolli utilizzati sono adeguati per rispondere alle esigenze di sicurezza.
|
PROTOCOLLI DELLA SICUREZZA
Le tecniche di crittografia sia classiche sia moderne trovano interessanti applicazioni nei protocolli di comunicazione attualmente utilizzati nell' ambito dell'E-Commerce. Tuttavia la semplice conoscenza di questi algoritmi non è sufficiente per garantire la sicurezza di una transazione; tali algoritmi vanno infatti inseriti all'interno di sistemi e protocolli piùgenerali, finalizzati a standardizzare tutte le operazioni di transazione e verificare che queste avvengano complessivamente in modo sicuro. A tale fine sono stati sviluppati numerosi protocolli dei quali possiamo citare i più diffusi: SSL, S-HTTP, PCT,SET, ecc.
SSL - SECURE SOCKET LAYER
SSL è stato sviluppato da Netscape Communications e costituisce attualmente il protocollo maggiormente implementato come opzione in numerosi software client e server di larga diffusione commerciale. E' un sistema di cifratura basato su diversi algoritmi di crittografia i cui obiettivi primari sono:
- Sicurezza crittografica: consente alle parti di stabilire una comunicazione riservata ed affidabile.
- Interoperabilità: permette agli sviluppatori l'inserimento del protocollo SSL senza conoscerne la sua dettagliata modalità operativa.
- Estensibilità: consente la possibilità di inserire nuovi algoritmi di cifratura senza dover ridisegnare la procedura.
- Efficienza: non richiede l'utilizzo di potenti risorse hardware, quindi può essere implementato su vasta gamma di prodotti senza avere eccessivi tempi di attesa.
S-HTTP
Questo protocollo è stato sviluppato dalla Enterprise Integration Technologies e viene costantemente implementato dalla Terisa System Inc. Nella sua implementazione più diffusa non presenta sostanziali differenze rispetto a SSL, tuttavia supporta altri tre meccanismi di scambio delle chiavi; il primo prevede l'utilizzo di un canale differente rispetto ad Internet, il secondo prevede l'uso di una sessione di comunicazione diversa, mentre il terzo ne prevede l'ottenimento da un server Kerberos. La differenza maggiore è comunque legata al livello in cui opera l' S-HTTP; esso agisce, infatti, a livello applicazione mentre l'SSL opera invece a livello trasporto. Questo nasce dal desiderio di integrarlo il più possibile con l'HTTP e di diventarne una estensione. Esso rimane tuttavia confinato alle applicazioni Web, mentre l' SSL, che è svincolato dall'applicazione, può essere utilizzato anche in altri servizi come ETP, TELNET, ecc.
PCT-PERSONAL COMMUNICATION TECHNOLOGY
Questo protocollo è stato sviluppato dalla Microsoft attraverso un insieme di studi ed alleanze condotte con le maggiori società fornitrici di servizi Internet. Per ottenere un protocollo che, giunto in ritardo sul mercato, fosse compatibile con quanto già esistente, il PCT è stato reso molto simile a SSL ed utilizzabile con i browser sviluppati per quest'ultimo. Le sue caratteristiche più interessanti possono essere elencate come segue:
- riduzione dello scambio di messaggi tra client e server
- maggiore possibilità di scelte per quanto concerne gli algoritmi da utilizzare
- uso di chiavi diverse per crittografare dei dati e per l'autenticazione dei messaggi
Nonostante queste differenze, il PCT non introduce niente di particolarmente innovativo; inoltre è rimasto imbrigliato dalla compatibilità verso applicazioni Internet già esistenti.
SET-SECURE ELECTRONIC TRANSACTION
Il protocollo SET nasce per rispondere all'esigenza dei pagamenti in rete mediante l'uso della carta di credito. Nasce da una eccezionale cooperazione di grandi società quali IBM, Microsoft, Netscape e naturalmente Visa e Mastercard. Il protocollo non è orientato unicamente alla trasmissione del numero della carta di credito, ma copre l'intera transazione on-line, comprese la registrazione del pagamento da parte della società che gestisce le carte di credito ed il successivo accredito dell'importo al fornitore. In questo ambito gli attori coinvolti sono più numerosi rispetto al caso precedente, in quanto occorre che partecipino alla transazione i seguenti soggetti:
Autorità di certificazione
Un fornitore
Un possessore di carta di credito
Un servizio di supporto per il fornitore e per il cliente (acquirer).
Tramite la sua posizione centrale l'acquirer verifica l'esistenza della carta di credito e dell'effettivo proprietario e autorizza quindi il venditore ad effettuare la transazione. Al termine di questa operazione comunica all'istituto gestore delle carte di credito l'importo da prelevare al cliente e da accreditare al fornitore. Naturalmente anche l'acquirer deve disporre di un proprio certificato di autentificazione, visto il ruolo chiave in questo processo.
L'ALGORITMO DI DIFFIE-HELLMAN
L'algoritmo di Diffie-Hellman permette a due soggetti (detti A e B) di mettersi d'accordo su una chiave segreta ed utilizzare questa per codificare informazioni attraverso un sistema di crittografia simmetrico. In pratica sono necessari due passi: il primo permette ad A e B di trovare una chiave comune (senza renderla nota a terzi); il secondo permette ad A e B di usare tale chiave (nota solo ad A e B) per codificare le informazioni e spedirsele attraverso la rete (usando un algoritmo di codifica simmetrico). L'algoritmo di Diffie-Hellman permette di risolvere il primo passo, che è quello più delicato, cioè di trovare una chiave comune tra A e B, comunicando sempre via rete, e non renderla disponibile ad eventuali osservatori. La sicurezza di questo metodo sta nel fatto che è molto semplice calcolare delle potenze nell'aritmetica modulare (che usa la funzione modulo), ma è molto difficile calcolare il logaritmo (che è l'operazione inversa della potenza) per estrarre i numeri cercati e quindi trovare la chiave. Questo vale tanto più grandi sono i numeri utilizzati per codificare le informazioni.
SICUREZZA DELLE TRANSAZIONI
Questo sistema è veramente sicuro? Diciamo che potrebbe essere un primo passo, ma non sicuramente quello più affidabile in assoluto. Sicuramente le garanzie di riservatezza possono essere date anche da questo metodo, almeno utilizzando numeri molto elevati. Non sono però salvaguardate le garanzie inerenti l' autenticazione dei due soggetti in gioco e l'integrità dei messaggi spediti da entrambi. Volendo essere paradossali, con tale metodo chiunque potrebbe costruire un sito di commercio elettronico fantasma, offrendo beni e servizi, prendere i numeri di carta di credito di tanti clienti inconsapevoli e, in modo non tanto figurato, scappare con i soldi! Che cosa può fare uno sviluppatore che desiderasse avviare un servizio di commercio elettronico affidabile e sicuro? Sicuramente appoggiarsi ad uno dei protocolli predisposti per le comunicazioni sicure e che garantiscono tutti gli aspetti di sicurezza necessari (riservatezza, autenticazione ed integrità). Esistono per questi scopi servizi specializzati nel pagamento elettronico, nei quali il venditore delega a terzi (ad es. istituzioni bancarie) la gestione economica dell'operazione commerciale. In tal contesto l'acquirente visita il sito del negozio virtuale e, se decide l'acquisto, dovrà compilare l'apposito form che il venditore ha predisposto per l'accettazione dell'ordine. Completata la gestione del form la pagina prevederà il reindirizzamento dell'acquirente verso l'istituto gestore del pagamento nel quale, attraverso adeguati sistemi di sicurezza, provvederà a comunicare i dati della propria carta di credito. Anche il sistema SSL già introdotto offre buone garanzie di sicurezza. La sua struttura è abbastanza semplice ed usa proprio una variazione del sistema di Diffie-Hellman per la generazione di una chiave comune. Ormai numerosi server e client WEB utilizzano SSL come protocollo di sicurezza per la trasmissione di informazioni riservate. Le comunicazioni codificate mediante SSL sono comunque più lente e quindi è buona norma usare questo protocollo solo nei direttori virtuali contenenti informazioni confidenziali, quali ad es. il numero della carta di credito. L'attivazione della protezione SSL su un server Web richiede i seguenti passaggi: 1. Generare un file relativo alla coppia di chiavi e un file di richiesta. 2. Richiedere un certificato a un'autorità di certificazione. 3. Installare il certificato sul server. 4. Attivare la protezione SSL nei direttori dedicati alle informazioni riservate.
Negli URL che indicano documenti WWW per i quali è abilitato SSL è necessario utilizzare "https://" anziché "http://". Tutti i collegamenti che utilizzano "http://" nell'URL non funzioneranno nei direttori protetti dal protocollo SSL. Una volta conclusa correttamente la configurazione, solo i client abilitati SSL saranno in grado di comunicare con i direttori e/o file abilitati per questo protocollo.
CONCLUSIONI
La sicurezza di un sistema è sempre proporzionale alla sicurezza garantita dall'anello più debole della catena di cui è composta. Bisogna ricordare che va curato ogni singolo aspetto di un sistema di E-Commerce, dall'inserimento dei dati del cliente sul suo PC attraverso il browser, alle comunicazioni con il server, all'utilizzo dei dati da parte del venditore, fino alla conservazione di informazioni riservate come il numero di carta di credito in luoghi sicuri e protetti. L'esempio proposto in questo articolo (basato sull'algoritmo di Diffie-Hellman) copre soltanto un'aspetto, cioè quello di fornire due soggetti di una chiave sicura da condividere. Perciò un buon sistema di E-Commerce deve garantire lo stesso livello di sicurezza a tutte le operazioni che vengono eseguite. Senza comunque dimenticare che il commercio elettronico non è meno sicuro delle normali transazioni che vengono effettuate quotidianamente con i metodi di pagamento classici.
BIBLIOGRAFIA
[1] R. Palumbo, "Commercio Elettronico: la nuova frontiera del business", Computer Programming n. 76, Gennaio 1999.
[2] W. Ford, M.S. Baum "Secure Electronic Commerce", Prentice Hall PTR,1997.
[3] AA.VV., Numero speciale sulla Crittografia, Computer Programming n.67, Marzo 1998.
[4] B. Scheneier, "APPLIED Cryptography", 2nd edition, Wiley, 1995.
[5] J. Orlin Grabbe, "Cryptography and Number Theory for Digital Cash", http://www.aci.net/. |