Sicurezza in E-Commerce - cs.unibo.itmargara/page2/page6/page25/assets/e-commerce.pdf · E-Commerce...

Post on 16-Feb-2019

222 views 0 download

Transcript of Sicurezza in E-Commerce - cs.unibo.itmargara/page2/page6/page25/assets/e-commerce.pdf · E-Commerce...

Sicurezza in E-Commerce

Corso di Laurea Magistrale Scienze e Tecnologie Informatiche

Sicurezza dei Sistemi Informatici

A. A. 2008/2009

Luca Assirelli - Mirco Gamberini

Gruppo 6

E-Commerce

L’E-Commerce è l'insieme delle transazioni per lacommercializzazione di beni e servizi tra produttore(offerta) e consumatore (domanda), realizzate tramiteInternet.

In Italia si diffuse verso la fine degli anni ’90.

Oggi una delle realtà più significativa di E-Commerce èEbay.

Internet, ha trasformato il commercio elettronico da semplice scambio didati tra imprese in una vera attività commerciale in cui i siti Webfunzionano come negozi virtuali annullando la distanza tra l’aziendaproduttrice ed il consumatore finale.

Vantaggi del E-Commerce

Comodità: non bisogna muoversi da casa per fare acquisti.

Convenienza: ci sono vari sconti e promozioni sui prodotti.

Informazione: vagliare gli acquisti con calma.

Cortesia: i commessi virtuali trattano con dovuta premura i propri clienti nell'intento di fidelizzarli

Flessibilità: è facile pianificare le vendite.

Visibilità: grande quantità di visite e contatti ricevuti nella piazza di Internet.

Economicità: non richiede grossi investimenti.

Chi acquista:

Chi vende:

Dati sull’E-Commerce in Italia

Fonte: Experian 28/11/2008

43% 43%50%

41%

26%

13%7% 6%

0%

10%

20%

30%

40%

50%

60%

Penetrazione dell'ecommerce in alcuni paesi europei

Ha

eff

ett

ua

to a

cqu

isti

in

Re

te n

eg

li u

ltim

i 3

me

si

Problemi sull’E-Commerce

Mancanza del contatto diretto

Impossibilità del possesso immediato

Assenza di dimostrazioni pratiche

Difetti di comprensione del comportamento della clientela

Incapacità di prevedere le reazioni nell'ambiente in cui opera l'impresa

Sottovalutazione dei tempi richiesti per il raggiungimento degli obiettivi aziendali.

Chi acquista:

Chi vende:

Sicurezza in e-commerce

Riguarda sicurezza sulle modalità di pagamento.

Dubbi riguardo la sicurezza. Molte persone non usanola carta di credito in Internet per timore di furti e frodi.

Inizialmente, trasferimento di informazioni avvenivain chiaro.

Transazioni sicure

Riservatezza

I Protocolli per la sicurezza delle transazioni

Transport Layer Security (TLS): è il successore di SSL. È unprotocollo crittografico che permette comunicazioni sicure e integritàdei dati su reti TCP/IP. Ad oggi è sicuramente il sistema più usato.Opera a livello di trasporto (Transport Layer);

Secure Electronic Transaction (SET): protocollo standard perrendere sicure le transazioni con carta di credito su reti insicure e, inparticolare, su Internet.

Due sono i protocolli più diffusi per garantire la sicurezza delle transazioni:

SSL Si tratta di un protocollo a livello utente che permette di proteggere la

segretezza, l'integrità e l'autenticità dei dati trasmessi tra due entità distinte suuna rete di computer.

L'abbinamento di questo protocollo al normale HTTP permette di ottenere unnuovo protocollo: l'HTTPS.

Principali obiettivi:

Sicurezza crittografica: deve garantire segretezza, autenticazione eintegrità;

Interoperabilità: diverse implementazioni dello stesso standard possonodialogare;

Estendibilità: possibili aggiunta di nuovi sistemi di cifratura;

Efficienza relativa: SSL fornisce alcuni metodi per limitare il caricocomputazionale e l’utilizzo di banda.

Storia di SSL

SSL v1 non è mai stato rilasciato;

SSL v2 (Secure Socket Layer) è stato proposto da Netscape nel 1995come elemento del suo browser: Netscape Navigator 1.1;

Microsoft migliorò tale protocollo (aggiustando alcuni problemi disicurezza) e rilasciando un suo protocollo incompatibile: PCT (PrivateCommunications Technology);

SSL v3 fu rilasciato nel 1996 da Netscape come revisione del precedenteprotocollo;

Nel gennaio 1999, IETF produce il successore di SSL che prende il nomedi TLS.

Funzionamento di SSLv3

Altri protocolli del SSL

Alert Protocol: si occupa della gestione delle eventuali situazioni dierrore, segnalandolo attraverso l’invio di un messaggio che può essere:

Fatal

Warning

ChangeCipherSpec Protocol: permette di passare dalla fase dinegoziazione alla fase di trasmissione vera e propria. Da questomomento in poi, tutti i messaggi saranno criptati.

Oltre ai protocolli principali Handshake Protocol e Record Protocol, ci sono altri due importanti protocolli utilizzati in SSL:

Tipi di attacchi (1/2)

Man-In-The-Middle: se il server usa certificati correttamente firmatidalle CA ciò non è possibile; possibile con l’Anonymous DH;

Replay attack e riordino dei pacchetti: non è possibile grazie ai numeridi sequenza;

CipherSuite list manipulation: in SSL v2 l’avversario potevamodificare la lista delle ciphersuite (magari eliminando quelle piùsicure) ed inducendo le parti coinvolte a concordare una suite piùdebole del necessario; in SSL v3 questo è stato sistemato inviando (inmodo protetto) l’hash di tutti i messaggi scambiati (rilevando così deimessaggi alterati);

Tipi di attacchi (2/2) Version manipulation: l’avversario potrebbe manipolare il numero di versione

supportato per indurre le parti ad usare una versione più debole di SSL (magari lav2); in SSL v3 ciò si può evitare poiché:

Alla fine c’è il doppio scambio di hash sui messaggi scambiati;

Le implementazioni SSL v3 che supportano la v2 inseriscono una modificanota all’interno dell’encryption RSA per riconoscere un client v3 anche se sispaccia per un v2.

Rilevazione di dati semantici sul plaintext: analizzando il traffico cifratol’avversario potrebbe riuscire a rilevare delle informazioni sulla semantica dei datiin chiaro trasmessi, ad esempio:

Invio multiplo di blocchi uguali: grazie agli stream cipher e ai modi diapplicazione (tipo CBC) dei block cipher con i vettori di inizializzazione èpossibile spezzare questi legami tra blocchi;

Rilevazione della lunghezza dei dati inviati.

Debolezze di SSL (1/2)

Non protegge da attacchi agli host Tripwire: software chegarantisce l’integrit{ dei dati, ovvero permette di modificare glistessi solo alle persone autorizzate.

Alcuni dati spediti nel Client hello potrebbero essere spediti inun secondo momento, crittografati.

Un errato MAC potrebbe far terminare la connessione,provocando nuovi attacchi, per esempio di tipo DoS, in cui sicerca di portare il funzionamento di un sistema informatico chefornisce un servizio al limite delle prestazioni.

Debolezze di SSL (2/2) Uno dei punti deboli di SSL sta proprio nel certificato del server; Se il certificato non viene controllato a dovere la sicurezza del sistema

crolla vertiginosamente; E’ necessario anche controllare l’URL e i dati del certificato.

TLS

Il protocollo consente di comunicare attraverso una rete inmodo tale da prevenire la manomissione dei dati, lafalsificazione e l’intercettazione.

Definito da Internet Engineering Task Force (IETF)

Giunto alla versione 1.2

Successore di SSL

Funzionamento simile a SSL

Differenze con SSL

Aggiunti più alert ad Alert Protocol

HMAC (Hash MAC)

Generazione della chiave con PRF

CertificateVerify

TLS-PSK o SRP

HMAC (1/3)

La differenza sostanziale tra SSL e il suo successore TLS risiede nella fase diautenticazione dei messaggi.

Infatti, in SSL l’autenticazione è garantita dall’utilizzo di una funzione pseudo-random, mentre in TLS l’autenticazione del messaggio è garantita da un algoritmodi hash mediante l’utilizzo di HMAC.

HMAC (keyed-Hash Message Authentication Code) è una tipologia di MACbasata su funzione hash, utilizzata in diverse applicazioni legate alla sicurezzainformatica.

Peculiarità di HMAC è il non essere legata a nessuna funzione di hash particolare,questo per rendere possibile una sostituzione della funzione nel caso fossescoperta la sua debolezza. Nonostante ciò le funzioni più utilizzate sono MD5 eSHA-1.Utilizzato anche da IPSec.

HMAC (2/3)Chiave

Ipad: Inner pad, byte 0x36 ripetuti 64 volte

Messaggio da scambiare

Funzione hash

MAC del messaggio

Opad: Outer pad, byte 0x5c ripetuti 64 volte.

HMAC (3/3)La funzione è definita nel seguente modo:

Combinando chiave e funzioni hash in questo modo si evitano attacchi che vengonoeffettuati su combinazioni più semplici del tipo:

MAC = H(key ++ message)

La funzione hash più esterna maschera il risultato di quella interna.Ipad e Opad permettono elevata distanza di Hamming.

SICUREZZA• Dipende dalla lunghezza della chiave.• Non è affetto da collisioni.• IMPORTANTE: la sicurezza di HMAC è basata sulle esistenti funzioni hash crittografiche.

Intermediate pseudo-random Output

A partire dall’H-MAC standard, TLS definisce una procedura attraverso laquale utilizzare H-MAC per generare un risultato pseudo-random.

Questa procedura prende il input un segreto e un seme.

La procedura generatanti risultati pseudo-random quanti sononecessari.

PRF (Pseudo Random Function)Allo scopo di un ulterioremiglioramento, TLS utilizza laprocedura per generare dei risultatipseudo-random vista in precedenza percreare una funzione pseudo-randomdetta PRF.

Essa combina due separate istanze dellaprocedura di generazione dei risultatipseudo-random: in una viene utilizzatol’algoritmo hash MD5, mentre nell’altraviene utilizzato l’algoritmo hash SHA.

Key material generationTLS utilizza la PRF per generare contemporaneamente sia il master secret che la chiave.

Assenza di certificati

Nel TLS l’autenticazione è unilaterale: solo il server è autenticato ma nonviceversa.

Il protocollo però permette anche un’autenticazione bilaterale attraverso loscambio dei relativi certificati tra il server e il client.

In caso di assenza di certificati?

Si possono utilizzare due protocolli distinti:

Pre Shared Key (TLS-PSK);

Secure Remote Password (SRP)

TLS-PSK (TLS Pre-Shared Key)TLS-PSK è un insieme di protocolli crittografici che garantiscono la comunicazione

sicura attraverso l’utilizzo di chiavi pre-condivise.

Può essere utilizzato per la sola autenticazione delle parti, per autenticare lo

scambio di chiavi Diffie-Helmann, o per combinare l’autenticazione del server

tramite certificato con l’autenticazione del client con chiave pre-condivisa.

Diffie-Hellman: un protocollo per scambio di chiavi

Un protocollo per generare un segreto S condiviso tra due utenti

E’ legato al problema del logaritmo discreto

Calcolare z = g^w mod p è facile

es: z = 2^4 mod 11 z = 5

Il problema inverso, ovvero trovare w dati z,g e p è difficile

es: 3 = 2^w mod 11 w = ??

Uno dei modi per ottenere il logaritmo discreto è quello di provare tutte lepotenze di w finchè non si trova l’esponente giusto, ma con numeri grandiquesto richiede molte risorse di calcolo

Diffie-Hellman: funzionamento1. Inizio: determinare un numero primo grande n, ed un generatore g, 1<g<n

Possono essere valori pubblici!

2. Alice: sceglie a, spedisce A = ga mod n a Bob, dove a è segreto

3. Bob: sceglie b, spedisce B = gb mod n ad Alice, dove b è segreto

4. Entrambi calcolano S = g(a*b) mod n

Alice: S = Ba mod n; Bob: S = Ab mod n;

Si ha che:

(ga mod n)b mod n =

(gb mod n)a mod n

DHE_PSK & RSA_PSK

Esistono diverse chypersuite per il TLS-PSK che sono: il PSK, ilDHE_PSK e l’RSA_PSK. Tutti utilizzano la stessa struttura per il pre-master secret che viene generato includendo la chiave pre-condivisa ealtri segreti.

DHE_PSK: utilizza PSK per autenticare lo scambio di chiavi DiffieHellman. In questo caso, il ServerKeyExchange e il ClientKeyExchangeincludono i parametri Diffie Hellman;

RSA_PSK: utilizza RSA e un certificato per autenticare il server enello stesso tempo raggiunge anche l’autenticazione reciproca tramitel’utilizzo della chiave pre-condivisa.

SRP (Secure Remote Password)È un protocollo di autenticazione pensato per lo scambio sicuro ed autenticato di chiave di sessione, progettato per resistere ad attacchi attivi e passivi.

Il meccanismo è analogo a quello del protocollo di Diffie-Hellman di cui SRP è un estensione.

Eredita i vantaggi del protocolloDH, risolvendone la maggiorparte delle vulnerabilità.

S corrisponde al pre-mastersecret utilizzato da TLS perricavare il master secret attraversola chiave K cosi generata.

Software liberi

OpenSSL:

è un'implementazione open source dei protocolli SSL e TLS. Le librerie dibase (scritte in linguaggio C) eseguono le funzioni crittografiche principali.Nei diversi linguaggi di programmazione sono disponibili procedure chepermettono di accedere alle funzioni della libreria OpenSSL.

GnuTLS:

è un'implementazione libera dei protocolli SSL e TLS. Il suo scopo è di offrire un'interfaccia di programmazione (API) per aprire un canale di comunicazione sicura attraverso la rete. GnuTLS è rilasciato tramite la licenza GNU

SET (Secure Electronic Transaction)

Il SET è un protocollo standard per rendere sicure le transazioni con carta dicredito su reti insicure quali Internet. È stato sviluppato da Visa e Mastercarded alcune altre grandi aziende quali la Microsoft, IBM e Netscape a partire dal1996.

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 e indipendentemente dalle dueparti.

ArchitetturaIl SET opera sul livello applicativo (digital wallet) indipendentemente dal livello ditrasporto, una proprietà che lo distingue da SSL.Si focalizza solo sul pagamento ed esclude la ricerca e la selezione dei beni. Essointroduce tre novità:

la certification authority che certifica i partecipanti;

il payment gateway, che fa da filtro fra Internet e la rete bancaria; la dual signature, la doppia firma.

Vi sono sei partecipanti: il cardholder, la cui carta è conforme alle specifiche SET; il commerciante; il payment gateway; l’Issuing Istitution, che emette la carta di credito; la Certification Authority (CA); l’Acquiring istitution, che è la banca del commerciante.

Funzionamento (1/2) Il SET essendo una forma di pagamento viene selezionata dal cliente sulla paginaWeb una volta che questi ha preparato l’ordine.

A questo punto il browser lancia automaticamente un software denominato digitalwallet (borsello elettronico) cui si accede inserendo il proprio codice diidentificazione e password.

In questo modo si può avviare la procedura di pagamento: al venditore vieneinviato un messaggio con le informazioni riguardo al pagamento e l’ordine effettuatodal cliente, insieme all’ordine destinato l’Acquiring istitution .

A questo punto il venditore richiederà all’Acquiring Istitution di verificare la validitàdella carta di credito utilizzata dal cliente.

Se la carta di credito è valida, l’Acquiring Istitution invia al venditore il documentofirmato e certificato per autorizzare l’acquisto, e se confermato effettuerà ilpagamento tramite la rete interbancaria

Funzionamento (2/2)

Crittografia nel SET

Il SET combina la crittografia a chiave pubblica con algoritmi di crittografia a chiavesimmetrica: anche le chiavi segrete vengono distribuite con algoritmi a chiavepubblica.

Si ottiene la cosiddetta busta digitale: la chiave simmetrica viene inviata utilizzando

la chiave pubblica del destinatario per mezzo dell’RSA e inviata insieme al

messaggio cifrato.

Combina la crittografia a chiave pubblica con l’uso dei message digest.

Il SET fa uso di due tipologie di funzioni hash:

SHA-1

HMAC

Dual SignatureLa doppia firma si ottiene nel modo seguente:

A calcola il message digest di M1 (h(M1)) e di M2 (h(M2));

A concatena i due digest ottenuti e firma con la sua chiave privata disignature (eA) il risultato della concatenazione ottenendoeA(h(M1)||h(M2));

A invia a B1 il messaggio <M1, h(M2), eA(h(M1)||h(M2))> ed a B2 ilmessaggio <h(M1),M2, eA(h(M1)||h(M2))>.

Per verificare la firma di A, si estrae il message digest della doppia firma diA, si calcola il message digest di M1 e lo si concatena a quello di M2, quindisi computa il message digest del risultato e lo si confronta con quelloestratto dalla doppia firma di A.

Se coincidono allora A ha firmato il messaggio M=M1||M2.

Confronto tra SET e SSL

SET protegge l’identit{ delle parti, SSL no;

il SET è un protocollo da utente a utente,

mentre l’SSL è point-to-point, cioè tra client e server;

nel SET non solo i dati vengono trasferiti dal consumatore alcommerciante, ma il SET garantisce che quegli stessi dati venganotrasferiti alla banca del commerciante;

l’SSL non garantisce la non ripudiabilit{ di una transazione.

Concludendo

SET fu ampiamente pubblicizzato alla fine degli anni novanta come lostandard approvato dalle carte di credito ma non riuscì a conquistarequote di mercato.

Tra le cause di ciò, vanno citati:

la necessità di installare un software client (digital wallet) da partedell’utente;

il costo e la complessità per gli imprenditori di offrire supporto tecnicoagli utenti;

la difficoltà logistica di distribuzione dei certificati sul lato client;

tempi di risposta inadeguati.

Bibliografia• http://it.wikipedia.org/wiki/Commercio_elettronico;

• http://economiaefinanza.blogosfere.it/2008/11/ecommerce-gli-italiani-non-credono-alla-sicurezza-degli-acquisti-online.html;

•http://www.ippari.unict.it/infapp/didattica/appunti/Laboratorio%20di%20Amministrazione%20di%20Sistema/LdS-SSL.pdf;

• SSL and TLS essentials. Securing the Web – Stephen Thomas – John Wiley & Sons;

• http://www.ietf.org/html.charters/tls-charter.html;

• http://en.wikipedia.org/wiki/Hmac;

• http://en.wikipedia.org/wiki/Transport_Layer_Security;

• Andrea Manganaro, Mingyur Koblensky, Michele Loreti, “Analisi del protocollo SRP (Secure Remote Password)”, 2007;

•http://www.henrymuccini.com/SECURITY/LectureNote/10_Commercio%20Elettronico%20Sicuro.pdf.