Crittografia e sicurezza delle retialberto/didattica/IPSEC.pdfHandshake Protocol - Fase 1 Si...

Preview:

Citation preview

Crittografia e sicurezzadelle reti

• IPSEC• Scambio di chiavi (Diffie Hellman)• SSL/TLS• SET

Architettura di sicurezza

IP

TCP

SSL/TLS

Applicaz. (SHTTP)

IPSEC

applicazioni sicure(ad es. PGP, SHTTP,SFTP, ecc.)

oppure

si introduconoprotocolli sicuri alivelli più bassi(SSL, IPSEC)

Protezione a livello di link?• Proteggere ogni hop• Vantaggi

– si codifica tutto il traffico - inclusi header IP• Svantaggi:

– richiede cooperazione fra i router– grande sovraccarico (codifica/decodifica ad ogni

hop)– fornisce attaccante informazioni su codifiche di

pacchetti simili (stesso pacchetto, header diverso)

IPSEC - IP Security• Lo studio di applicazioni sicure soddisfa

l’utente (es. S/MIME, PGP, Kerberos,SSL/HTTPS)

• E’ opportuno disporre di un meccanismo pergarantire la sicurezza a tutte le applicazioni:si trattano problemi di sicurezza checoinvolgono diversi livelli protocollari

• IPSEC non è un singolo protocollo ma uninsieme di protocolli include lo schema diinterazione per stabilire collegamento sicuro

IPSec• Fornisce

– autenticazione– riservatezza– gestione delle chiavi

• Meccanismo generale: applicabile in LANs,WAN sia pubbliche che private, Internet

• La specifica completa è molto complessa (vediRFC 2401/2402/2406/2408...)

• Obbligatorio in IPv6, opzionale in IPv4

IPSec

Benefici di IPSec• Un firewall fornisce sicurezza a tutto il

traffico che attraversa il perimetro della rete• Sotto lo strato di trasporto - quindi è

trasparente alle applicazioni• Può essere reso trasparente agli utenti finali• Fornisce sicurezza a singoli utenti o a tutta la

LAN• Permette di realizzare VPN

IPSec - Servizi

• Controllo degli Accessi• Integrità delle Connessioni• Autenticazione dell’origine del dato• Rifiuto di pacchetti replicati• Riservatezza crittografica dei messaggi• Limitata segretezza del flusso di

traffico

IPSec Schema

Security Associations• Una relazione one-way tra mittente e

ricevente che fornisce sicurezza del flusso didati

• Definita da tre parametri principali– Security Parameters Index (SPI)– IP Indirizzo di Destinazione– Identificatore del Protocollo di Sicurezza– altri parametri: n. di seq.- finestra anti-replay,

info. sugli algoritmi usati, tempo di vita ecc.• Si mantiene un database delle Security

Associations

Authentication Header (AH)• Fornisce supporto per l’integrità dei dati e

l’autenticazione dei pacchetti IP– end system/router can authenticate user/app– utilizzano numeri di sequenza per prevenire

attacchi che usano spoofing di indirizzi• Utilizza un MAC (message Authentication

Code)– HMAC-MD5-96 o HMAC-SHA-1-96

• Gli utenti devono condividere una chiavesegreta

Authentication Header

Autenticazione end-to-end vs.Autenticazione end-to-intermediate

Modalità di Trasporto(autenticazione AH)

Perchè non si autentica tutto l’header?

Modalità di Tunnel(autenticazione AH)

Encapsulating Security Payload (ESP)

• Fornisce riservatezza dei messaggi & limitatasegretezza del flusso di traffico

• Può fornire gli stessi servizi di autenticazionedi AH (opzionale)

• Ampia scelta di codici (chiave segreta) emodalità di funzionamento– DES, Triple-DES, RC5, IDEA, CAST ecc.– CBC più usato

Encapsulating Security Payload

ESP - Modalità Trasporto vsModalità Tunnel

• Modalità trasporto si usa per crittografare e(opzionalm.) per autenticare i pacchetti IP– i dati sono protetti ma header è in chiaro– utile in connessioni host to host

• Modalità tunnel codifica tutto il pacchetto– si aggiunge un nuovo header– adatto per Virtual Private Networks (sicurezza da

gateway a gateway)

ESP - Codifica e autenticazioneModalità Trasporto

ESP - Codifica e autenticazioneModalità Tunnel

Utilizzo di più Security Associations

• Una SA può realizzare o AH o ESP• Per implementarle entrambe si usano più

SA

Utilizzo di più SA -1

Utilizzo di più SA -2

Utilizzo di più SA -3

Utilizzo di più SA -4

Gestione delle chiavi

• IPSEC permette di generare edistribuire le chiavi

• Si usano due coppie di chiavi– una per ciascuna direzione per AH & ESP

• Gestione delle chiavi– manuale - amministratore di sistema– automatica - gestione di chiavi su richiesta

usa Oakley & ISAKMP

Oakley• Protocollo di creazione di chiavi

– Utilizza metodo di scambio delle chiavi proposto daDiffie-Hellman

• Aggiunge altre caratteristiche migliorative– cookies, definizione di gruppi (per codifica),

nonces, scambio di chiavi con autenticazione– diverse implementazioni (aritmetica dei campi finiti

è la proposta originaria di DH)• Fornisce metodi di autenticazione:

– Firma, chiave pubblica, chiave segreta

ISAKMPInternet Security Association and Key

Management Protocol• Fornisce gli strumenti per la gestione delle

chiavi• Definisce procedure e formati dei pacchetti

per– stabilire, negoziare, modificare, e cancellare SA

• E’ indipendente dai protocolli di scambio dellechiavi, di codifica e di autenticazione

ISAKMP

Scambio pubblico di chiaviDiffie Hellman• Alice e Bob non condividono informazioni

segrete e vogliono eseguire un protocollo perstabilire una chiave da condividere

• Trudy ascolta ma non riesce ad ottenereinformazioni sulla chiave (a meno che abbiatempo e risorse di calcolo illimitate)

Logaritmo Discreto

• Sia G un gruppo e g un generatore di G.• Sia y=gx e x il più piccolo intero che

soddisfa l’equazione.• x è il logaritmo discreto di y in base g.

Es.: y=gx mod p, p primo nel gruppomoltiplicativo di Zp

Dis. Log. e One Way Function

Sia y=gx mod p nel gruppo moltiplicativo di Zp

Esponenziazione è polinomiale (veloce) O(log3p)Il logaritmo discreto è considerato un problema

computazionalmente difficile• x gx è facile (computazionalmente veloce).• gx x si crede sia difficile (computionally non

possibile).• x gx è un esempio di one way function.

Scambio di chiavi di Diffie-HellmanParametri pubblici: un primo p, e un elemento g

(possibilmente un generatore del gruppomoltiplicativo Zp* )

• Alice sceglie a caso a in [1..p-2] e manda ga modp a Bob.

• Bob sceglie a caso b in [1..p-2] e manda gb mod pa Alice.

• Alice e Bob calcolano gab mod p : Bob ha b, calcola (ga)b= gab. Alice ha a, calcola (gb)a= gab.

DH - Requisiti di Sicurezza• Requisito di sicurezza: la chiave segreta è una

funzione one way dell’informazione pubblica e dellainformazione trasmessa.

• Meccanismo “costruttivo”: la chiave segreta deveutilizzare sia informazioni pubbliche che segrete inmodo opportuno.

• DH è almeno tanto difficile quanto il DL in Zp.L’equivalenza formale non è nota anche se ci sonoindicazioni parziali.

• Veloce anche con p di 512-1024 bit O(log3p).• Per avere chiave DES uso primi 56 bit della chiave

DH - Requisiti di Sicurezza• Dopo 25 anni di attacchi è ancora considerato

sicuro.• Lo scambio di chiavi di DH Key è effettivo

solo in presenza di un attaccante passivo.L’attacco Man-in-the-middle è letale.Risposta: autentica dei messaggi

Station To Station ProtocolSi autenticano i messaggi con chiave pubblica (si

assume che siano note con certezza); A e B simettono d’accordo su primo p e generatore g diZp* (pubblico)

• Alice sceglie a e manda ga mod p a Bob.• Bob sceglie a caso b; applica DH e calcola

chiave k usando ga e b; firma (ga,gb), codifica lafirma con k e invia il tutto a Alice insieme a gb

• Alice calcola k; decodifica con k e verifica lafirma di Bob; firma (ga,gb) e codifica la firmacon k.

Altri metodiL’idea può essere applicata a qualunque gruppo algebrico

non solo a Zp

• Limitazione: si devono usare gruppi in cui il Log.discreto è computazionalmente difficile

Esempio: gruppo additivo di Zp

Utilizzati in pratica: gruppomoltiplicativo e sistemi dicurve ellittiche

Sicurezza nel Web

• Secure Socket Layer (SSL) e TransportLayer Security (TLS)– SSL proposto da Netscape– TLS working group nato in IETF– La prima versione di TLS può essere

considerata come SSLv3.1

• Secure Electronic Transaction (SET)

SSL - Architettura

SSL - Servizi

• Riservatezza: il protocollo di handshakedefinisce una chiave segreta con cuicodificare i dati del pacchetti SSL

• Integrità dei Messaggi: il protocollo dihandshake definisce una chiave segretausata per l’autentica dei messaggi (MAC)

SSL - Record Protocol

Calcolo MACHash(MAC_secret_key || pad2

||hash(MAC_secret_key || pad1 || seqNum ||SSLcompressed.type ||SSLcompressed.length ||SSLcompressed.fragment))

– pad1=0x36 ripetuto 48 volte (MD5); 40 volteSHA-1– pad2=0x5C ripetuto …– SSLcompressed.type = il protocollo di alto livello

usato per processare il frammento– Simile a HMAC (SSL usa concatenazione invece di

EXOR)

Metodi di codifica• Frammenti 214 = 16384 bytes• Non esiste metodo di compressione

specificato in SSLv3:– Compressione deve essere senza perdita e non

deve incrementare la lungh. più di 1024– default: nessuna compressione

• Metodi di codifica a blocchi– IDEA (128) RC2-40, DES-40, DES (56), 3DES

(168),– Stream Cipher: RC4-40, RC4-128– Smart card: Fortezza

SSL - Formato record

SSL - Payload

Protocolli Change Cipher Spec e Alert

Protocollo Change Cipher Specun messaggio di un byte (1); aggiorna lo stato

Protocollo Alertcomunica situazioni di allarme; 2 byteLivello allarme 1=warning, 2=fatalTipo allarme

Unexpected messageBad-record_macDecompression failureHandshake failureIllegal_parameter…

Protocollo di HandshakeLa parte più complessa di SSL. Permette a client

e server di• Autenticarsi reciprocamente• Negoziare metodi di codifica, alg. MAC e

chiavi crittografiche• Usato prima di scambiare dati.• Ogni Messaggio ha tre campi

– Tipo (8)– Lunghezza (24)– Contenuto (>= 1 byte) parametri associati (diversi a

seconda del tipo di messaggio)

Protocollo di HandshakeFasi1. Hello: determina funzionalità sicurezza2. Server invia il certificato, richiede

certificato e propone scambio chiave disessione

3. Client invia il certificato e continua scambiodi chiavi

4. Cambia il pacchetto di cifratura e finisce ilprotocollo di handshakeNB: alcune richieste sono opzionali

Handshake Prot. -Tipi di MessaggiMessage type Parametri1. Hello-request null2. Client-hello version,nonce(32B),sessionID,

cipher suite, metodo compress.3. Server_hello <come sopra>4. Certificate catena di certificati X.509v35. Server_key_exchange parametri, firma6. Certificate_request tipo, autorità7. Server_done null8. Certificate_verify firma9. Client_key_exchange parametri, firma10.Finished valore hash

HandshakeProtocol -Fasi

Handshake Protocol - Fase 1Si attivano le funzionalitàClient_hello Ë

– Versione = + alta vers. SSL utilizzabile dal client– 32 bit time stamp + 28 bytes casuali (si usa un generatore

pseudo casuale sicuro)– sessionID: 0Ë stabilisce nuova connessione, non zero

aggiorna parametri sessione esistente– Metodi di codifica: sequenza di algoritmi in ordine

decrescente di preferenza– Metodi di compressione: lista di metodi proposti

Server_hello Á torna indietro– conferma tutto quanto sopra richiesto

Handshake Protocol - Fase 1Metodi per lo scambio di chiavi

1. RSA : si codifica la chiave con la chiave pubblica deldestinatario

2. Diffie-Hellman (diverse versioni)1. Fisso2. Effimero Ephemeral Diffie Hellman3. Anonimo

3. FortezzaMetodi per la codifica crittografica

1. Algoritmo di cifratura2. Algortimo MAC3. Tipodi cifratura (blocco o stream)4. Dimensione Hash (byte): 0, 16 - MD5, 20 - SHA-15. Key material – sequenza di byte usati per generare ke chiavi

di scrittura6. dimensioni del vettore inizializzazine per CBC

Handshake Protocol - Fase 2Autenticazione Server e scambio di chiaviServer invia

1. Certificato: catena certificati X.509 (nonrichiesto con Diffie-Hellman anonimo)

2. Server_key_exchange (non usato con DH fisso)• Hash(Client_hello.random||ServerHello.random||ServerP

arms)

3. Certificate_request: richiesta di certif. (eautorità)

4. Server_hello_done: “Ho finito e aspetto lerisposte”

Handshake Protocol - Fase 3Autentica Client e scambio di chiavi• Client verifica il certificato del server e i

parametri del server• Client invia

1. Certificato: (se richiesto)2. Messaggio per lo scambio di chiavi

(Client_key_exchange)3. Informazioni per verificare il suo certificato

(Certificate_verify message)

Handshake Protocol Phase 4Fine: si passa alla fase successi cipher_spec1. Client invia

1. messaggio Change_cipher_spec2. Finished message under new algorithms, keys

(new cipher_spec)2. Server sends back

1. messaggio Change_cipher_spec2. Finished message under new algorithms, keys

(new cipher_spec)

Transport Layer Security -TLSSimile a SSLv3• Standard definito in RFC 2246.• Differenze:

– version number– message authentication code– pseudorandom function– alert codes– cipher suites– client certificate types– certificate_verify and finished message– cryptographic computations– padding

SSL - Generazione chiaviIn fase iniziale si determina Master Key• si genera pre-master PMK, 48 byte

– RSA (chiave generata dal client e inviata crittata al server)– Dif.-Hell.

• master key: concatenazione di 3 hash (Cl_N e S_Nsono i nonce scambiati in handshake)– MD5(PMK,SHA(‘A’,PMK,Cl_N,S_N))– MD5(PMK,SHA(‘BB’),PMK, Cl_N,S_N))– MD5(PMK,SHA(‘CCC’),PMK, Cl_N,S_N))

SSL - Generazione chiaviLe chiavi di sessione sono generate a partire dalla

Master Key - MK- con un metodo simile• concatenazione di hash fino a quando si generano byte

a sufficienza

– MD5(MK,SHA(‘A’,MK,Cl_N,S_N))– MD5(MK,SHA(‘BB’),MK, Cl_N,S_N))– MD5(MK,SHA(‘CCC’),MK, Cl_N,S_N))– .....

TLS Generazione di chiaviSi parte da un seme S e da un valore segreto MK iniziali

K(S,MK) = HMAC_MK(A(1),S)HMAC_MK(A(2),S)HMAC_MK(A(3),S) ....

A(0) = SA(i) = HMAC(K,A(i-1))

Pagamenti con SSLSi usa SSL per trasferire il numero di carta di credito

(decisione del negoziante)• semplice• non richiede software specialistico• non richiede modifiche del sistema di pagamento delle

carte di credito• il metodo più usato oggi

Pagamenti con SSL -2Problemi• negozianti fraudolenti hanno informazioni su clienti• clienti possono rifiutare i pagamenti (in assenza di

firma)• percentuale molto alta (20%- 60%!) di dispute• pertanto il sistema è molto costoso per il negoziante

Pagamenti con SSL - 3Esperienza mostra che la gran parte delle

contestazioni è dovuta a pochi cattivicommercianti

Quindi si fa pagare caro le dispute (perespellere i cattivi commercianti)

Però• Si penalizzano i commercianti onesti• I commercianti possono scomparire• Non si elimina il problema delle frodi dei clienti

Secure Electronic Transactions -SET

Protezione transazioni carte di credito in Internet.• Società coinvolte:

– MasterCard, Visa, IBM, Microsoft, Netscape, RSA,Terisa and Verisign

• Non è un sistema di pagamento.• Include diversi protocolli e formati

– Fornisce un canale di comnicazione sicuro in unatransazione

– Fornisce autentica con uso dei certificati X.509v3– Garanatisce la privatezza

SET

Aspetti essenziali di SET:– Riservatezza informazioni– Integrità dei dati– Autenticazione possessore carta di credito– Autenticazione negoziante

SET - Scenario

SET - Transazione1. Il cliente apre un conto2. Il cliente riceve un certificato3. Negoziante ha il proprio certificato4. Il cliente fa un ordine5. Il negoziante viene verificato6. Il cliente invia l’ordine di pagamento7. Il negoziante richiede l’autorizzazione al pagamento8. Il negoziante conferma l’ordine al cliente9. Il negoziante fornisce quanto richiesto e chiede il

pagamento

Istruzioni di acquisto e dipagamento

OI: informazioni sull’acquisto– privato da non comunicare alla banca– firmato dal negoziante

PI: istruzioni di pagamento– prezzo, conto corrente, info su carta di credito– da non rivelare al negoziante

Come far firmare al cliente l’ordine e leistruzioni di pagamento?

Firma duale

• Soluzione• Cliente firma hash di ordine acquisto e

ordine di pagamento

Firma Duale: Sig_C(H(H(PI),H(OI))

Esecuzione pagamentoAcquirente invia ordine acquisto

Esecuzione pagamentoNegoziante verifica l’ordine del cliente

Recommended