Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso;...

39
Corso di Sistemi DistribuitiProf. Sebastiano Pizzutilo Dipartimento di Informatica CdS Magistrale in INFORMATICA Anno Accademico 2015-16 Cenni sulla sicurezza nei Sistemi Distribuiti

Transcript of Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso;...

Page 1: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Corso di “Sistemi Distribuiti”

Prof. Sebastiano Pizzutilo Dipartimento di Informatica

CdS Magistrale in INFORMATICA

Anno Accademico 2015-16

Cenni sulla sicurezza nei Sistemi Distribuiti

Page 2: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

La SICUREZZA nelle comunicazioni tra host remoti

In un contesto di sistemi collegati in rete si parla di sicurezza per indicare l’insieme di procedure, pratiche e tecnologie per proteggere le risorse, gli utenti e le organizzazioni che operano in rete. Elementi fondamentali:

ü  Evento Indesiderato (attacco alla sicurezza). Ogni evento che compromette la sicurezza del sistema di calcolo (hardware, software, dati) ( virus, hacking, …).

ü  Servizio di sicurezza. Ogni servizio che migliora la sicurezza del sistema e delle informazioni in transito (antivirus, directory service..).

ü  Meccanismo di sicurezza. Ogni soluzione progettata per scoprire, prevenire e recuperare un attacco alla sicurezza (crittografia, backup,…).

Page 3: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

La sicurezza della comunicazione è centrale nei sistemi distribuiti costituiti da diversi host/risorse che appartengono a differenti organizzazioni commerciali e/o scientifiche (VO). Le misure protettive tradizionali possono confliggere con la necessità di una utilizzazione efficiente delle risorse distribuite da parte degli utenti (e processi) o di gruppi di utenti e di processi che concorrono per la utilizzazione di risorse distribuite.

La SICUREZZA nei sistemi distribuiti

La sicurezza nei sistemi distribuiti è basata sulla definizione e sull’uso di un “canale sicuro” (trusted) tra gli agenti della comunicazione, realizzato in base a politiche di sicurezza implementate mediante opportuni meccanismi di sicurezza.

Page 4: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

La protezione

a)  Protezione contro operazioni errate (necessario backup)

b)  Protezione contro operazioni non autorizzate (necessaria “autorizzazione)

c)  Protezione contro utenti non autorizzati (necessaria l’autenticazione)

Page 5: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Cifratura nella comunicazione

Page 6: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Mia cara, bla, bla, bla….

Cgdhgczjxckkkdsajghjsvvsvdv3234y3 38759……

Cgdhgczjxckkkdsajghjsvvsvdv3234y3 38759……

Mia cara, bla, bla, bla….

F F-1

K K

METAFORA: CASSAFORTE Chiunque vuole aprirla, per mettere o togliere valori, deve conoscerne la combinazione Ø  A e B concordano F( ) e F’( ) Ø  La chiave K è un segreto condiviso tra A e B Ø  La chiave K definisce un canale sicuro tra A e B

La cifratura SIMMETRICA

Page 7: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

La cifratura SIMMETRICA

La chiave K non può essere trasmessa in rete perché la rete è insicura. Possibili soluzioni: – A e B si accordano sulla chiave in un incontro faccia a faccia, – A spedisce la chiave a B tramite un corriere, – A suddivide la chiave in tanti pezzetti ed invia ciascun pezzetto a B attraverso un

diverso canale di comunicazione (telefono, email, piccione viaggiatore,…). E’ necessaria una chiave per ogni coppia di utenti. Con n utenti sono necessarie circa n(n-1)/2 chiavi . Scarsa scalabilità

PRINCIPALI ALGORITMI ALGORITMO CHIAVE (bit) q  CAST 128 q  Blowfish 128 q  IDEA 128 q  Triple-DES 112 q  DES (1977) 56 (K=testo in blocchi di 64 bit permutato più volte, con

scambio di bit ed infine permutazione inversa per produrre un blocco di testo cifrato a 64 bit)

Page 8: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Un esempio: DES

Chiave a 56 bit 1100………………..1101

1011………………..0011 L1 R1

F (L1,R1,K1) 48 bit K1

1100………………..1010 R2 L2

Input a 64 bit

0101………………..1001

F (L2,R2,K2) 48 bit K2

L3 R3 48 bit K16

1111………………..0001 F (L16,R16,K16)

1000………………..1111 Ouput a 64 bit

Permutazione di 32 bit

Permutazione a 32 bit

Page 9: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

LA CIFRATURA ASIMMETRICA

Diffie ed Helmann nel ‘75 ebbero l’idea della cifratura asimmetrica.

METAFORA: L’utente A chiude il suo messaggio in una cassetta con un proprio lucchetto e spedisce la cassetta a B conservando la sua chiave. B riceve la cassetta ed appone un secondo lucchetto conservando la sua chiave. B trasmette la cassetta con due lucchetti ad A. A toglie il suo lucchetto e rispedisce a B la cassetta con il solo lucchetto di B. B finalmente può aprire con la sua chiave il lucchetto e leggere il messaggio.

La crittografia a chiave pubblica è un metodo asimmetrico basato sull'esistenza di due diverse chiavi, una chiave pubblica utilizzata per criptare ed una chiave privata utilizzata per de-criptare.

Page 10: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

CIFRATURA ASIMMETRICA

Ogni utente ha una coppia di chiavi (K1, K2), una la mantiene segreta, l’altra la rende pubblica

Ad esempio: PUBA : chiave pubblica di A PRIVA : chiave privata di A

SEGRETEZZA : A vuole inviare un messaggio segreto M a B 1. A si procura PUBB, la chiave pubblica di B 2. A calcola C = E(PUBB , M) 3. A invia C a B 4. B calcola M = D(PRIVB , C) METAFORA: CASSETTA POSTALE Chiunque può inserire un messaggio nella cassetta ma solo chi ha la chiave

(privata) può aprire la cassetta e prelevare il messaggio

Page 11: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Cifratura asimmetrica o a chiave pubblica

Mia cara, bla, bla, bla….

Cgdhgczjxckkkdsajghjsvvsvdv323……

Cgdhgczjxckkkdsajghjsvvsvdv323……

Mia cara, bla, bla, bla….

E

D

Aldo Brenda

Chiave pubblica di Brenda

Chiave privata di Brenda

Algoritmo di cifratura → E( ) Testo cifrato C = E(K1, M) Alg.di decifr. → D( ) Testo in chiaro M = D(K2, C) = D( K2, E (K1, M)) con (K2 ≠ K1)

PROPRIETÀ di E( ) e D( ) I. Dato C, deve essere difficile ricavare M se non si conosce K2. II. Dati M e C, deve essere difficile ricavare K1, a meno che K1 non sia utilizzata una sola volta. III. Anche se si conosce K1 deve essere difficile ricavare K2 e viceversa.

Page 12: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

CIFRATURA ASIMMETRICA

ALGORITMI PIÙ DIFFUSI Ø RSA(1978) – probabilmente il più diffuso; basato sulla

scomposizione in fattori primi di un numero intero, (RSA dal nome dei suoi creatori Rivest, Shamir e Adleman dell’MIT) . La sua sicurezza non è stata provata.

• Knapsack (1978) – violato più volte, non è considerato sicuro • Rabin(1979) • ElGamal (1985) • Schnorr(1991)

Page 13: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Il principio di Diffie-Hellman per lo scambio della chiave pubblica

Consente a due entità di stabilire una chiave condivisa e segreta utilizzando un canale di comunicazione insicuro (pubblico).

Si consideri inizialmente un numero g, generatore del gruppo moltiplicativo degli interi modulo n, con n = numero primo.

•  Uno dei due interlocutori A sceglie un numero casuale x, calcola il valore g x mod n e lo invia attraverso il canale pubblico a B, assieme ai valori g, n.

•  B da parte sua sceglie un numero casuale y, calcola g y mod n e lo invia ad A.

•  A calcola KA = (g y mod n)x mod n, mentre B calcola KB = (g x mod n)y mod p. Questo metodo non

risolve completamente il problema di un potenziale eavesdropper che intercetta le comunicazioni tra A e B e si interpone tra i due spacciandosi per A o per B Chiave simmetrica

Page 14: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Sistema di crittografia a chiave pubblica: RSA

L’utente A vuole spedire un messaggio K a B in segretezza: 1.  B sceglie due numeri primi molto grandi M ed N (ad es. da 300 cifre) e calcola P=N*M. B calcola il prodotto f(p)=(N-1)*(M-1). 2.  B sceglie un numero E (esponente pubblico) co-primo più piccolo di f(p) e calcola F

(esponente privato) tale che il prodotto F*E sia congruo 1 modulo f(p) ovvero che E*F ≅ 1 (mod f(p)) (chiave privata).

3.  B invia la sua chiave pubblica (P, E) ad A. Chiunque può vedere questo numero. 4.  A usa questo numero per cifrare il messaggio K1 = (K)(P,E) mod(f(p)). 5.  A manda il messaggio cifrato a B, chiunque può vederlo ma non decifrarlo. 6.  B riceve il messaggio e, utilizzando la chiave privata (P, F) (che solo lui conosce), lo

decifra K = (K1)(P,F) mod(f(p)). A e B hanno impiegato alcuni secondi per cifrare e decifrare, ma chiunque dovesse intercettare le loro comunicazioni impiegherebbe troppo tempo per scoprire i due fattori primi con cui decifrare il messaggio.

In realtà questo sistema non è così semplice e per trasmettere grandi quantità di dati occorre tanto tempo. La soluzione è che A e B si scambino con questo sistema solo la chiave segreta (che non occupa molto spazio), che poi useranno per comunicare tra loro usando un sistema a crittografia simmetrica, più semplice e veloce.

Page 15: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

CIFRATURA ASIMMETRICA per assicurare l’ autenticità

AUTENTICITÀ A vuole inviare un messaggio non segreto M a B ma vuole

fornirgli una prova di autenticità 1. A calcola C = E(PRIVA, M) 2. A invia (M, C) a B 3. B calcola M ′= D(PUBA, C) e verifica che M ≡ M′ METAFORA: LA FIRMA Solo chi ha la chiave privata può firmare un documento. Tutti gli

altri possono verificare la firma con la chiave pubblica.

Page 16: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

CIFRATURA ASIMMETRICA

SEGRETEZZA + AUTENTICITÀ A vuole inviare un messaggio segreto M a B, fornendogli anche

una prova di autenticità

1. A calcola Z = E(PRIVA, M) 2. A si procura PUBB, la chiave pubblica di B 3. A calcola C = E(PUBB, Z) 4. A invia C a B 5. B calcola Z = D(PRIVB, C) 6. B si procura PUBA, la chiave pubblica di A 7. B calcola M ′= D(PUBA, C) e verifica che M≡M′

Page 17: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

CENTRO DISTRIBUZIONE CHIAVI (CDC)

L’ALGORITMO ASIMMETRICO NON RICHIEDE SEGRETI CONDIVISI; QUANDO NECESSARIO BASTA SOLO (!!) PROCURARSI LA CHIAVE PUBBLICA DEL PARTNER… …MA DOVE SI VA A PRENDERLA?

IL CENTRO DISTRIBUZIONE CHIAVI (CDC ) È UNA TERZA ENTITÀ FIDATA CHE ASSICURA IL COLLEGAMENTO Utente↔PUBU

DISTRIBUZIONE DELLE CHIAVI

A vuole conoscere la chiave pubblica ( PUBB ) di B: 1. A -> CDC: B A chiede a CDC la chiave pubblica di B 2. CDC -> A: B, PUBB CDC invia ad A la chiave pubblica di B

A ritiene che PUBB sia la chiave pubblica di B. 3. A -> B: E(PUBB, M) A invia un messaggio segreto M a B Sembra tutto a posto ma…?

…. Chi mi garantisce che il messaggio ricevuto sia realmente del CDC ?

Page 18: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Centro Distribuzione Chiavi Certificate

Mia cara, bla, bla, bla….

Hgdhgczjxckkkdsajghjsvvsvdv3234y3 38759……

Hgdhgczjxckkkdsajghjsvvsvdv3234y3 38759……

Mia cara, bla, bla, bla….

CDC

Chiave privata di Aldo

Aldo Chiave pubblica di Aldo

Brenda

Certification Authority

Page 19: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

ü  Chi garantisce che una chiave pubblica appartenga veramente a qualcuno?

La Certification Authority rilascia una coppia di chiavi dopo aver

verificato oltre ogni dubbio l’identita’ del richiedente

ü  Come si prova che la chiave pubblica appartenga realmente a qualcuno? •  La CA firma la chiave pubblica dell’utente utilizzando la propria

chiave privata •  Una chiave pubblica firmata da una CA e’ un certificato •  I certificati delle CA sono autofirmati

ü  Cos’accade se un certificato viene compromesso? •  La CA revoca il certificato (non sarà più valido) •  Viene incluso in una lista di certificati revocati (CRL: Certificate

Revocation List) che viene regolarmente aggiornata

Certification Authority (CA)

Page 20: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

I CERTIFICATI

Il problema nasce dal fatto che A ha attribuito il messaggio a CDC ma non c’è nessuna prova che quel messaggio sia effettivamente del CDC.

È un problema di autenticità e non di segretezza: il messaggio non trasporta alcuna informazione segreta

Un problema analogo può nascere quando A vuole la chiave pubblica di B

per verificare una firma digitale che si presume di B SOLUZIONE: Il CDC deve rilasciare un CERTIFICATO: cioè un documento firmato dal

CDC che stabilisce il collegamento utente-chiave. CDC viene detto CERTIFICATION AUTHORITY (Autorità di Certificazione)

Page 21: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Il certificato X.509

Chiave Pubblica del proprietario

Subject: /C=IT/O=INFN/OU=Personal Certificate/L=Bari/CN=pinco pallino/CN=proxy

Issuer: /C=IT/O=uniba/CN=uniACA

Expiration date: Feb 23 13:52:02 2010 GMT

Serial number: FD:4E:A4:A2:FF:51:21:AC:5B:85:1E:7F:25:8B:4A:E1:B1:FC:7D:BC

Firma digitale CA

Struttura certificato X.509

Page 22: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

DISTRIBUZIONE CHIAVI CON CERTIFICATO

DISTRIBUZIONE CHIAVI CON CERTIFICATO A vuole sapere la chiave pubblica PUBB di B 1. A -> CDC : A chiede a CA la chiave pubblica di B 2. CDC ->A: E(PRIVCA, PUBB) CA trasmette ad A la chiave PUBB,

certificata con la sua firma privata . A si convince che PUBB è la chiave pubblica di B (non si può falsificare la firma di CA).

3. A -> B: E(PUBB, M) A invia un messaggio segreto M a B utilizzando la chiave pubblica di B.

PROBLEMA : CHI CERTIFICA UNA CA? Dopo il msg 2, A deve verificare la firma di CA. Ma come fa A ad essere sicura che PUBCA è proprio la chiave pubblica di CA ? SOLUZIONE: Ø  CA pubblica PUBCA sui quotidiani più importanti; Ø  La chiave di CA è certificata da un’altra CA , un’altra chiave pubblica, un altro

certificato e così via…_ (CERTIFICATION HIERARCHY). ESEMPI: X.509, AIPA

Page 23: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Un Protocollo di autenticazione mediante KDC (protocollo di Needham-Schroeder)

Il protocollo challenge-response di Needham-Schroeder : 1.  A invia un messaggio al KDC, comunicandogli di voler parlare con B. 2.  Il KDC restituisce un messaggio contenente una chiave condivisa segreta (KA,B) . 3.  Il messaggio è codificato con la chiave segreta che A condivide con il KDC (KA,KDC). 4.  il KDC delega A a contattare il ricevente B, inviandoli un ticket (KB,KDC). Il ricevente sarà

l’unico che può fare uso del ticket, dato che è l’unico oltre al KDC che sa come decodificare l’informazione che contiene.

Page 24: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Protocolli di autenticazione Variante del protocollo di Needham-Schroeder

Nell’esempio, A chiede a B un nonce RB1 codificato con la chiave condivisa da B con il KDC. A incorpora tale nonce nella sua richiesta al KDC che a questo punto emetterà i ticket inserendo tali nonce e consentendo così ad A e B di verificare che la chiave di sessione per la comunicazione è legata alla richiesta originale di A per parlare con B. Tale meccanismo permette quindi di evitare il riuso doloso di vecchie chiavi di sessione.

Il protocollo fa uso di nonce (RA1,RA2) ( un numero casuale inedito ed usato una sola volta il cui scopo è mettere in relazione due messaggi .

Page 25: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Wireless Client

Server RADIUS

1 Distribuzione Certificati

Wireless Access Point

2 Autenticazione

Client Autenticazione

Server

Reciproca Determinazione della Chiave

4

5 3

Distribuzione della Chiave

Autorizzazione WLAN Criptata

Network e Servizi

Autorità di Certificazione

6

Ad es.: autenticazione mediante CA nelle reti WIFI

Page 26: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Fingerprint

Per rendere più efficiente il meccanismo di trasmissione dei messaggi criptati si utilizza una funzione hash attraverso la quale si calcola una stringa identificativa del messaggio, detta fingerprint (impronta digitale) composta da un numero limitato di caratteri (solitamente 128 bit).

La funzione hash deve inoltre essere molto veloce da calcolare, in modo da rendere

significativamente vantaggioso creare il fingerprint del messaggio e criptare quello, piuttosto che criptare tutto il messaggio.

A questo punto è possibile autenticare il messaggio limitando l'uso dell'algoritmo di crittografia a chiave pubblica al solo fingerprint.

“Hash” è una funzione operante in un solo senso (che non può essere invertita), atta alla trasformazione di un testo di lunghezza arbitraria in una stringa di lunghezza fissa, relativamente limitata. Tale stringa rappresenta una sorta di "impronta digitale" del testo in chiaro, e viene detta valore di hash, checksum crittografico o message digest.(MD4, MD5,…)

Page 27: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

L'MD4 consiste di 48 operazioni, raggruppate in tre blocchi da 16 operazioni ciascuno. F è una funzione non lineare; una funzione F è usata in ogni passaggio. Mi indica un blocco da 32 bit del messaggio in input, Ki indica una costante a 32 bit, differente per ogni operazione.

denota l'addizione modulo 232

MD4

Page 28: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

SHA

Ø  La sigla SHA sta per Secure Hash Algorithm e indica una famiglia di cinque diverse funzioni crittografiche di hash sviluppate a partire dal 1993 dalla National Security Agency (NSA) degli USA.

Ø  Come ogni algoritmo di hash, l'SHA produce un message digest di lunghezza fissa partendo da un messaggio di lunghezza variabile.

Ø  La sicurezza di un algoritmo di hash risiede nel fatto che la funzione non sia reversibile (non sia cioè possibile risalire al messaggio originale conoscendo solo questo dato) e che 2 messaggi diversi non devono mai fornire lo stesso digest.

Ø  Gli algoritmi della famiglia sono denominati SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512: le ultime 4 varianti sono spesso indicate genericamente come SHA-2, per distinguerle dal primo. Quest'ultimo produce un digest del messaggio di soli 160 bit,

Page 29: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Stratificazione dei meccanismi di sicurezza

Le Reti Private Virtuali (VPN) consistono in un tunnel criptato che, attraverso Internet, connette il client esterno ad un server VPN interno alla rete locale. Dentro tale tunnel si instaura un collegamento sulle cui due estremità vengono assegnati indirizzi IP appartenenti all’organizzazione. Così facendo, il client remoto appare interno nei confronti del firewall e pertanto potrà dialogare con gli host della rete locale senza il rischio di essere filtrato. Tale tunnel cifrato viene costruito mediante una suite di protocolli di sicurezza detto IPSec (Internet Protocol Security)[ che consente di incapsulare i dati in modo tale da creare una VPN tra nodi di più reti di calcolatori. Virtual Private Network Consortium http://www.vpnc.org/vpn-standards.html

Salendo nello stack TCP/IP, un’altra soluzione consiste nell’implementare la sicurezza sopra il protocollo TCP. E’ questo il caso dell’approccio SSL (Secure Socket Layer) e TLS (Transport Layer Security). Infine, è possibile implementare servizi di sicurezza all’interno delle applicazioni permettendo una personalizzazione basata sulle specifiche esigenze.

Page 30: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

SSL (TLS) Ø Netscape nel 1994 ha inventato il protocollo Secure Socket

Layer (SSL) per promuovere l'applicazione e l'evoluzione del commercio elettronico sulla rete internet.

Ø  SSL fornisce un canale crittografato del tipo end-to-end tra il

client ed il server. Prima che venisse scoperto questo tipo di protocollo le transazioni avvenivano in chiaro e potevano tranquillamente essere intercettate (sniffate).

Ø  La standardizzazione del protocollo SSL ha preso il nome di

Transport Layer Security (TLS) e viene documentata nella RFC 2246

Ø  Il protocollo TLS non è legato al protocollo HTTP e può essere utilizzato con altre applicazioni come la posta elettronica

Page 31: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Il funzionamento del protocollo TLS può essere suddiviso in tre fasi principali: * Negoziazione fra le parti dell'algoritmo da utilizzare * Scambio delle chiavi e autenticazione * Cifratura simmetrica e autenticazione dei messaggi

SSL (TLS)

All'interno di una sessione tipicamente vengono utilizzati i seguenti protocolli: * Per lo scambio di chiavi: RSA, Diffie-Hellman, … * Per l'autenticazione: RSA, DSA, …. * Cifratura simmetrica: RC4, Triple DES, AES, ….. * Per le funzioni crittografiche di hash: in TLS sono utilizzati HMAC-MD5 o HMAC-SHA mentre in SSL MD5 e SHA.

Page 32: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

La sicurezza nei sistemi distribuiti

Il Gruppo di lavoro GGF (Global Grid Forum) OGSA (Open Grid Service Infrastructure) definisce 3 categorie di sicurezza:

•  Integration •  Interoperability •  Trust Relationship

•  Single sign-on: l’utente dovrebbe essere in grado di autentificarsi una sola volta per iniziare la computazione che acquisisce-usa-rilascia le risorse, senza nessun altra autenticazione dell’utente

•  Protection of credential: le credenziali dell’utente (password, chiavi private, ...) devono essere protette

•  Interoperability with local security solutions: l’accesso a risorse locali e’ determinato dalle politiche/meccanismi di sicurezza locali => soluzioni che prevedano un meccanismo di accesso interdominio e intradominio

•  Uniform credential/certification infrastructure: accesso interdominio richiede almeno una via comune per esprimere/verificare l’identita’ di un utente/risorsa.

Page 33: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Ad es: Grid Security Infrastructure

•  Infrastruttura di sicurezza che collega insieme le tre componenti (certificati X.509, PKI e GSS-API) e aggiunge capacita’ di delega delle credenziali (vedi piu’ avanti...)

•  Una Certification Authority(CA) rilascia i certificati. •  Ogni utente/servizio e’ identificato da un certificato codificato in formato X.509 che

contiene il subject name che identifica utente/servizio, la chiave pubblica, l’identita’ della CA che ha rilasciato il certificato assieme alla sua firma digitale.

•  Utenti raggruppati in Virtual Organizations -  raccolgono utenti che lavorano assieme con un fine comune (esempio:

i membri di uno stesso esperimento scientifico) -  i membri di una stessa VO condividono alcuni privilegi della VO

stessa (accesso alle risorse esclusive della VO) -  negoziazione fra gli utenti e i fornitori di risorse e’ normalmente fatta

al livello della VO

Page 34: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Grid Authentication

•  L’autenticazione su Grid e’ un’operazione fatta in comune (normalmente fra un utente ed un servizio) •  L’utente invia la sua chiave pubblica al servente •  Il servente verifica la firma della CA •  Il servente invia una frase random all’utente •  L’utente calcola l’hash della frase e la cripta con la

sua chiave privata •  L’hash criptata e’ inviata al servente •  Il servernte decripta l’hash con la chiave pubblica

del certificato dell’utente e la confronta con la propia hash della frase

B Certificato A

A

Verifica firma della CA

Frase Random

Firma con chiave privata A

Hash Criptata

Decripta con chiave pubblica A

Compare with original phrase

L’intero processo e’ trasparente: l’utente non si accorge di tutti i passaggi della comunicazione necessaria per l’autentifica

Page 35: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Certificati Proxy

n  Cosa sono?

n  Sono certificati temporanei con una durata corta e senza una password

n  Perche’ sono necessari?

n  Perche’ altrimenti ogni processo d’autenticazione richiederebbe la password della chiave privata dell’utente!

n  Cosa sono “in senso pratico”?

n  Sono dei file contenti sia il certificato che la chiave privata

n  Il certificato del proxy e’ firmato con il certificato dell’utente

n  Tipicamente hanno una durata corta (esempio: 12 ore)

n  Il file del proxy deve essere protetto dalla lettura

n  Delega di Proxy (Proxy Delegation)

n  Un proxy puo’ essere usato per firmare un altro proxy

il proxy di un utente e’ un processo a cui e’ dato il permesso di operare “a nome” dell’utente

Definizione:

Page 36: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

PROTOCOLLO KERBEROS

Tre funzioni:

1. A u t e n t i c a z i o n e 2. A u t o r i z z a z i o n e 3. C i f r a t u r a

componente fondamentale del sistema

KDC Principal Ticket

•  AS (Authentication Server) •  TGS (Ticket Granting Server) •  Database •  Servizi

•  Utenti •  Host •  Application Server •  Servizi su KDC

•  TGT (Ticket Granting Ticket) •  Ticket di Servizio

q  Responsabile dell’autenticazione

q  Distribuisce ticket per accesso ai servizi

q  Contenitori chiavi di sessione q  Validità temporalmente

limitata q  Ticket rinnovabile q  Immagazzinati nella cache

delle credenziali Nome[/Istanza]@REALM

pippo/admin@MYREALM

Tesi di Laurea di Adriano Rucci “AUTENTICAZIONE MEDIANTE KERBEROS IN RETI LAN” A.A.2010-11

Servizio sviluppato da MIT per gestire l’autenticazione nella comunicazione tra processi all’interno di un sistema distribuito.

Page 37: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

KERBEROS Si basa sul protocollo di Needham-Schroeder [Needham-Schroeder 1978] che prevede di utilizzare uno schema challenge-response in cui le entità A e B condividono una chiave segreta k. L’entità A manda un valore random r (detto challenge) all’entità B; B risponde ad A facendo ritornare e(r, k), dove il valore criptato di r con la chiave k è crittografato con una funzione di crittografia simmetrica e. Il valore ritornato viene decifrato con la chiave k dall’entità A. Se il risultato combacia con l’originale valore random r, A accetta e il protocollo termina con successo. La soluzione PKI (Public Key Infrastructure) proposta dagli sviluppatori di Kerberos [ Kerberos Policies ] consiste in un server di autenticazione centralizzato per autorizzare la comunicazione tra due agenti (software) utilizzando la crittografia simmetrica ed un sistema di mutua autenticazione basata su Ticket [RFC 1510] generati da un KDC (Key Distribution Center), a sua volta formato da due componenti : un Authentication Server (AS) che gestisce un data base delle identità autorizzate e delle loro chiavi segrete ed un Ticket Granting Server (TGS) per la gestione di ticket autorizzativi alla comunicazione tra due host .

Page 38: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Kerberos

L’architettura di Kerberos si basa su tre componenti logiche: •  processi lanciati dagli utenti •  server remoti che erogano servizi •  il KDC di Kerberos, composto a sua volta di un TGS (Ticket Granting Service)

e un AS (Authentication Server)

Page 39: Corso di Sistemi Distribuitidisys/sidys9sec15.pdf · " RSA(1978) – probabilmente il più diffuso; basato sulla scomposizione in fattori primi di un numero intero, (RSA dal nome

Kerberos

  Un client ottiene prima un ticket di lunga durata dall’AS, valido per l’intera sessione di comunicazione

  Successivamente, ottiene un ticket di breve durata dal TGS per richiedere il singolo servizio

  In un rapporto del 2006, CISCO ha segnalato una criticità in Kerberos: il meccanismo di delega.

Per delega s’intende la possibilità di assegnare i propri permessi ad un altro utente, detto proxy, che può operare con gli stessi privilegi di chi ha concesso la delega.   Il problema riscontrato è che quando l’utente deve concedere una delega, deve prima

autenticarsi, quindi esporre la propria identità in rete. In questo modo il proxy impersona l’utente e potrebbe svolgere anche attività illegittime a suo nome.

  Soluzione (proposta da Microsoft): la delega deve avvenire prima dell’autenticazione dell’utente. In tal modo è il proxy a doversi autenticare al sistema e a dichiarare la propria identità

Tesi di laurea:Sergio ANGELASTRO “MODELLAZIONE DEL PROTOCOLLO DI KERBEROS TRAMITE RETI DI PETRI “ A.A. 2012-13