La sicurezza nelle reti di calcolatoriLa sicurezza nelle La sicurezza nelle reti di calcolatorireti di calcolatori
Contenuti del corsoContenuti del corsoLa progettazione delle retiLa progettazione delle reti
Il routing nelle reti IPIl routing nelle reti IP
Il collegamento agli Internet Service Provider e problematiche di sicurezza
Il collegamento agli Internet Service Provider e problematiche di sicurezza
Analisi di traffico e dei protocolli applicativiAnalisi di traffico e dei protocolli applicativi
Multimedialità in reteMultimedialità in rete
Tecnologie per le reti futureTecnologie per le reti future
Contenuti del corsoContenuti del corsoLa progettazione delle retiLa progettazione delle reti
Il routing nelle reti IPIl routing nelle reti IP
Il collegamento agli Internet Service Provider e problematiche di sicurezza
Il collegamento agli Internet Service Provider e problematiche di sicurezza
Analisi di traffico e dei protocolli applicativiAnalisi di traffico e dei protocolli applicativi
Multimedialità in reteMultimedialità in rete
Tecnologie per le reti futureTecnologie per le reti future
Argomenti della lezioneArgomenti della lezione
Proprietà necessarie alla sicurezza della comunicazioneProprietà necessarie alla sicurezza della comunicazione
Elementi di crittografiaElementi di crittografia
Sicurezza della comunicazioneSicurezza della comunicazione
Proprietà desiderabiliProprietà desiderabiliProprietà desiderabili
SegretezzaSegretezzaSegretezza
AutenticazioneAutenticazioneAutenticazione
Integrità del messaggioIntegrità del messaggioIntegrità del messaggio
SegretezzaSegretezza
Può anche essere desiderabilela segretezza del fatto stesso che sia avvenuta una comunicazionetra due persone (proprietà menoovvia)
Può anche essere desiderabilela segretezza del fatto stesso che sia avvenuta una comunicazionetra due persone (proprietà menoovvia)
Il contenuto del messaggiopuò essere letto soltanto dal destinatario (proprietà banale)
Il contenuto del messaggiopuò essere letto soltanto dal destinatario (proprietà banale)
AutenticazioneAutenticazione
Come faccio ad essere certodell’identità della persona
con cui comunico?
Come faccio ad essere certodell’identità della persona
con cui comunico?
Autenticazione del mittente
Autenticazione del destinatario
Autenticazione del mittente
Autenticazione del destinatario
Servono:Servono:
Integrità del messaggioIntegrità del messaggio
Come posso garantire che il messaggio ricevuto sia esattamente quello
inviato (e non sia stato modificatoda qualcuno?)
Come posso garantire che il messaggio ricevuto sia esattamente quello
inviato (e non sia stato modificatoda qualcuno?)
ti amoti amoBobBob
BobBob
AliceAlice
Integrità del messaggioIntegrità del messaggio
Come posso garantire che il messaggio ricevuto sia esattamente quello
inviato (e non sia stato modificatoda qualcuno?)
Come posso garantire che il messaggio ricevuto sia esattamente quello
inviato (e non sia stato modificatoda qualcuno?)
AliceAlice
TrudyTrudy
BobBob
ti amoti amoBobBob
ti ti odioodioBobBob
Sicurezza per chi?Sicurezza per chi?
Apparati dell’infrastruttura di rete (es. server DNS, router, ecc.)Apparati dell’infrastruttura di rete (es. server DNS, router, ecc.)
Utenti (persone)Utenti (persone)
Falle nella sicurezza dell’infrastruttura possono essere veicolo di attacchi alle attività degli utenti
Falle nella sicurezza dell’infrastruttura possono essere veicolo di attacchi alle attività degli utenti
Vulnerabilità della reteVulnerabilità della rete
Violazione della segretezza mediante snifferViolazione della segretezza mediante sniffer
Broadcast di livello 2Broadcast di livello 2
Incertezza del mittente (IP spoofing)Incertezza del mittente (IP spoofing)
Indirizzi IP non autenticatiIndirizzi IP non autenticati
Vulnerabilità della reteVulnerabilità della rete
Possibile alterazione dei messaggiPossibile alterazione dei messaggi
Informazioni trasmesse in chiaroInformazioni trasmesse in chiaro
Vulnerabilità della reteVulnerabilità della rete
DoS: Denial of ServiceDoSDoS: : DenialDenial of Serviceof Service
Attacchi orientati ad impedire il normale
funzionamento dei sistemi
Attacchi orientati ad Attacchi orientati ad impedire il normale impedire il normale
funzionamento dei sistemifunzionamento dei sistemi
Esempi: SYN flooding (apertura connessioni TCP), smurf (ICMP echo
con falsi IP sorgenti)
Esempi: SYN Esempi: SYN floodingflooding (apertura (apertura connessioni TCP), connessioni TCP), smurfsmurf (ICMP (ICMP echoecho
con falsi IP sorgenti)con falsi IP sorgenti)
Principi di crittografiaPrincipi di crittografia
Permette di ottenere:Permette di ottenere:Permette di ottenere:
SegretezzaSegretezzaSegretezza
AutenticazioneAutenticazioneAutenticazione
Integrità del messaggioIntegrità del messaggioIntegrità del messaggio
DefinizioniDefinizioni
ABCD
testo inchiaro
testo inchiaro
algoritmo di cifratura
algoritmo di cifratura
#^$&testo cifratotesto
cifrato
DefinizioniDefinizioni
algoritmo di cifratura
algoritmo di cifratura
ABCD
testo inchiaro
testo inchiaro
#^$&testo cifratotesto
cifrato
Algoritmo segretoAlgoritmo segreto
“Scambia ogni lettera inposizione i con quella inposizione (i3+3) mod m”
“Scambia ogni lettera inposizione i con quella inposizione (i3+3) mod m”
Esempio:Esempio:
void crypto (char s[]){
int i, m = strlen (s);
for (i = 0; i < m; i++){
char t; int j;
j = (i*i*i + 3) % m;t = s[i];s[i] = s[j];s[j] = t;
}
return;}
void crypto (char s[])void crypto (char s[]){{
intint i, m =i, m = strlenstrlen (s);(s);
for (i = 0; i < m; i++)for (i = 0; i < m; i++){{
char t;char t; intint j;j;
j = (i*i*i + 3) % m;j = (i*i*i + 3) % m;t = s[i];t = s[i];s[i] = s[j];s[i] = s[j];s[j] = t;s[j] = t;
}}
return;return;}}
CifraturaCifratura
void decrypto (char s[]){
int i, m = strlen (s);
for (i = m-1; i >= 0; i--){
char t; int j;
j = (i*i*i + 3) % m;t = s[i];s[i] = s[j];s[j] = t;
}
return;}
void decrypto (char s[]){
int i, m = strlen (s);
for (i = m-1; i >= 0; i--){
char t; int j;
j = (i*i*i + 3) % m;t = s[i];s[i] = s[j];s[j] = t;
}
return;}
DecifraturaDecifratura
Esempio:Esempio:
"Cara Alice, credo"Cara Alice, credo cheche TrudyTrudy ci stia spiandoci stia spiando""
""arT sausA eie aioCnodcrdaarT sausA eie aioCnodcrda y cc,ey cc,e trlidchiptrlidchip""
NO: è necessario permetterelo sviluppo del software
necessario
NO: è necessario permetterelo sviluppo del software
necessario
Algoritmo segreto per Internet?Algoritmo segreto per Internet?
algoritmi pubblici+ CHIAVI
algoritmi pubblici+ CHIAVI
DefinizioniDefinizioni
ABCD
testo inchiaro
testo inchiaro
algoritmo di cifraturaalgoritmo
di cifratura
#^$&testo cifratotesto
cifrato
chiaveKA
chiaveKA
AliceAlice
DefinizioniDefinizioni
algoritmo di decifratura
algoritmo di decifratura
ABCD
testo inchiaro
testo inchiaro
%&*#testo cifratotesto
cifrato
chiaveKB
chiaveKB
BobBob
DefinizioniDefinizioni
KH#4
testo incomprensibile
testo incomprensibile
algoritmo di decifratura
algoritmo di decifratura
%&*#testo cifratotesto
cifrato
???
TrudyTrudy
Chiavi simmetricheChiavi simmetriche
Stessa chiaveper crittografiae decrittografia
Stessa chiaveper crittografiae decrittografia
Chiavi simmetricheChiavi simmetriche
len (chiave) > len (messaggio)chiavi sempre diverse
len (chiave) > len (messaggio)chiavi sempre diverse
Massima sicurezza:Massima sicurezza:
Come scambiarsi le chiavi?Come scambiarsi le chiavi?
Problema:Problema:
Algoritmi per chiavi simmetricheAlgoritmi per chiavi simmetriche
Schema di sostituzione fissa di ogni lettera con un’altraSchema di sostituzione fissa di ogni lettera con un’altra
Cifrature monoalfabetiche(cifrario di Cesare)Cifrature monoalfabetiche(cifrario di Cesare)
Forzatura tramite analisi statistica delle ricorrenzeForzatura tramite analisi statistica delle ricorrenze
a b c d e f g h i j k l m n o ...f g e s j y z k r q p i t a v ...a b c d e f g h i j k l m n o ...f g e s j y z k r q p i t a v ...
“ciao”“ciao” “erfv”“erfv”
Esempio: cifrario di CesareEsempio: cifrario di Cesare
Algoritmi per chiavi simmetricheAlgoritmi per chiavi simmetriche
n cifrari di Cesare usati ciclicamente
n cifrari di Cesare usati ciclicamente
Cifrature polialfabetiche(cifrari di Vigenere)
Cifrature polialfabetiche(cifrari di Vigenere)
chiave: “key”chiave: “key”
Esempio: cifrario di VigenereEsempio: cifrario di Vigenere
ciaociaocc mm
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ......
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ......
ccmm
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ......
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ...... chiave: “key”chiave: “key”
Esempio: cifrario di VigenereEsempio: cifrario di Vigenere
mmciaociaoii
ii
mm
mm
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ......
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ...... chiave: “key”chiave: “key”
Esempio: cifrario di VigenereEsempio: cifrario di Vigenere
mmciaociaoaa
aa
yy
mmyy
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ......
a b c d e f g h i j k l m n o ...k l m n o p q r s t u v w x y ...e f g h i j k l m n o p q r s ...y z a b c d e f g h i j k l m ...k l m n o p q r s t u v w x y ...e f g ...... chiave: “key”chiave: “key”
Esempio: cifrario di VigenereEsempio: cifrario di Vigenere
mmciaociaooo
oo
yy
mmyyyy
Tipologie di attaccoTipologie di attacco
Forza bruta (tutte le possibili chiavi)Forza bruta (tutte le possibili chiavi)
Analisi statistica (ricorrenze delle lettere, delle sillabe, ecc.)Analisi statistica (ricorrenze delle lettere, delle sillabe, ecc.)
Analisi del crittogramma di cui ènota una parte del testo(es. intestazione standard)
Analisi del crittogramma di cui ènota una parte del testo(es. intestazione standard)
Analisi con testo in chiaro sceltoAnalisi con testo in chiaro scelto
Algoritmi per chiavi simmetricheAlgoritmi per chiavi simmetriche
Chiave a 56 bitChiave a 56 bit
16 fasi di manipolazione ed EXOR con i bit della chiave16 fasi di manipolazione ed EXOR con i bit della chiave
DES: Data Encryption StandardDES: Data Encryption Standard
Due fasi di permutazioneDue fasi di permutazione
Algoritmi per chiavi simmetricheAlgoritmi per chiavi simmetriche
Forzato nel 1997Forzato nel 1997
Evoluzione: DES triplo (3DES)Evoluzione: DES triplo (3DES)
Chiavi pubblicheChiavi pubbliche
Due chiaviDue chiavi
Chiave pubblicaChiave pubblica
Chiave privata (segreta)Chiave privata (segreta)
Chiavi pubblicheChiavi pubbliche
dB (eB (m)) = m = eB (dB (m))dB (eB (m)) = m = eB (dB (m))
Chiavi e algoritmo di cifraturadevono soddisfare la proprietà:Chiavi e algoritmo di cifratura
devono soddisfare la proprietà:
Chiavi pubblicheChiavi pubbliche
Dove:Dove:Dove:
dB chiave privata di Bob, usata per la decifraturadB chiave privata di Bob, usata per la decifratura
eB chiave pubblica di Bob, usata per la cifraturaeB chiave pubblica di Bob, usata per la cifratura
m messaggiom messaggio
dB (eB (m)) = m = eB (dB (m))dB (eB (m)) = m = eB (dB (m))
Crittografia a chiave pubblicaCrittografia a chiave pubblica
%&*#
testo cifratoeB(m)
testo cifratoeB(m)
chiavepubblicadi Bob
eB
chiavepubblicadi Bob
eBAliceAlice
ABCD
testo inchiaro
testo inchiaro
algoritmo di cifraturaalgoritmo
di cifratura
Crittografia a chiave pubblicaCrittografia a chiave pubblica
%&*#testo cifrato
eB(m)testo cifrato
eB(m)
chiaveprivatadi Bob
eB
chiaveprivatadi Bob
eBBobBob
ABCD
testo in chiarodB(eB(m))=mtesto in chiarodB(eB(m))=m
algoritmo di decifratura
algoritmo di decifratura
Algoritmo RSA percifratura a chiave pubblicaAlgoritmo RSA percifratura a chiave pubblica
RSA (Ron Rivest, Adi Shamir, Leonard Adleman)
RSA (Ron Rivest, Adi Shamir, Leonard Adleman)
Chiavi generate a partire da due numeri primi p e q molto grandi: p ·q dell’ordine di 1024 bit(difficile scomposizione in fattori)
Chiavi generate a partire da due numeri primi p e q molto grandi: p ·q dell’ordine di 1024 bit(difficile scomposizione in fattori)
Descrizione dell’algoritmo a pag. 570 e seguenti del libro di testo
Descrizione dell’algoritmo a pag. 570 e seguenti del libro di testo
Algoritmo RSA percifratura a chiave pubblicaAlgoritmo RSA percifratura a chiave pubblica
richiede calcolo di elevamento apotenza con numeri molto grandirichiede calcolo di elevamento apotenza con numeri molto grandi
Lungo tempo di elaborazioneLungo tempo di elaborazione
Problema:Problema:
Algoritmo RSA percifratura a chiave pubblicaAlgoritmo RSA percifratura a chiave pubblica
scambio di chiavi simmetriche di sessionescambio di chiavi simmetriche di sessione
Possibile impiego:Possibile impiego:
RSA → chiavi di sessioneDES → contenuto dei messaggiRSA → chiavi di sessioneDES → contenuto dei messaggi
La sicurezza nelle reti di calcolatoriLa sicurezza nelle La sicurezza nelle reti di calcolatorireti di calcolatori
AutenticazioneAutenticazione
Esempi di possibili attacchi:Esempi di possibili attacchi:IP spoofingIP spoofing
AliceAlice
IP di Trudy:158.110.253.254IP di Trudy:158.110.253.254
IP di Bob:158.110.254.1IP di Bob:158.110.254.1
IP mittente:158.110.254.1
HELLO,BOB
AutenticazioneAutenticazione
Esempi di possibili attacchi:Esempi di possibili attacchi:Lettura delle password in chiaroLettura delle password in chiaro
PWD:5XY7ZW
HELLO,BOB
AliceAlice
BobBob
TrudyTrudy
AutenticazioneAutenticazione
Esempi di possibili attacchi:Esempi di possibili attacchi:Lettura delle password in chiaroLettura delle password in chiaro
PWD:5XY7ZW
HELLO,BOB
AliceAlice
BobBob
TrudyTrudy
AutenticazioneAutenticazione
Lettura e riutilizzo di passwordcifrate (attacco di replica)Lettura e riutilizzo di passwordcifrate (attacco di replica)
PWD:lovealice
??
PWD:%&$#*@
Esempi di possibili attacchi:Esempi di possibili attacchi:
AliceAlice
BobBob
TrudyTrudy
HELLO,BOB
AutenticazioneAutenticazione
AliceAlice
BobBob
PWD:%&$#*@
HELLO,BOB
TrudyTrudy
Lettura e riutilizzo di passwordcifrate (attacco di replica)Lettura e riutilizzo di passwordcifrate (attacco di replica)
Esempi di possibili attacchi:Esempi di possibili attacchi:
Protocollo di autenticazionea chiave simmetrica basato
su nonce
Protocollo di autenticazionea chiave simmetrica basato
su nonce
BobAlice
sono Alice!sono Alice!
KAB (R)KAB (R)
RR
Protocollo di autenticazionea chiave pubblica
Protocollo di autenticazionea chiave pubblica
sono Alice!sono Alice!
dA (R)dA (R)
RR
chiave pub
blica?
chiave pub
blica?
eAeABobAlice
Protocollo di autenticazionea chiave pubblica (fallimento)Protocollo di autenticazione
a chiave pubblica (fallimento)
Trudy Bob
dT (R)dT (R)
RR
chiave pub
blica?
chiave pub
blica?
eTeT
sono Alice!sono Alice!
Man in the middleMan in the middle
BobBob
dT (R)dT (R)RR
chiave pub
blica?
chiave pub
blica?
eTeT
TrudyTrudy
AliceAlice
sono Alice!sono Alice! sono Alice!sono Alice!
dA (R)dA (R)RR
chiave pub
blica?
chiave pub
blica?
eAeA
Man in the middleMan in the middle
BobBobTrudyTrudyAliceAlice
dati cifrati con eTdati cifrati con eTdati cifrati con eAdati cifrati con eA
Trudy riceve e decifra tuttii dati trasmessi
Trudy riceve e decifra tuttii dati trasmessi
Alice e Bob non si accorgono di nulla!
Alice e Bob non si accorgono di nulla!
Autenticazione basata su crittografiaAutenticazione basata su crittografia
Richiede distribuzione sicura delle chiaviRichiede distribuzione sicura Richiede distribuzione sicura delle chiavidelle chiavi
Crittografia a chiavi simmetriche: serve intermediario di fiducia (KDC, Key Distribution Center)
Crittografia a chiavi simmetriche: Crittografia a chiavi simmetriche: serve intermediario di fiducia serve intermediario di fiducia (KDC, (KDC, Key DistributionKey Distribution CenterCenter))
Crittografia a chiave pubblica:CA (Certification Authority)Crittografia a chiave pubblica:Crittografia a chiave pubblica:CA (CA (Certification AuthorityCertification Authority))
Key Distribution CenterKey Distribution Center
Chiave simmetrica condivisa tra ogni utente registrato e il KDCChiave simmetrica condivisa tra ogni utente registrato e il KDC
Il KDC genera ed invia una chiave simmetrica per singola sessioneIl KDC genera ed invia una chiave simmetrica per singola sessione
Key Distribution CenterKey Distribution Center
Il KDC invia anche ad Alice la chiave di sessione el’identificativo di Alice cifrati con la chiave di Bob, che serviranno ad Alice per farsi autenticare da Bob e per trasmettergli la chiave di sessione
Il KDC invia anche ad Alice la chiave di sessione el’identificativo di Alice cifrati con la chiave di Bob, che serviranno ad Alice per farsi autenticare da Bob e per trasmettergli la chiave di sessione
Key Distribution CenterKey Distribution Center
KB-KDC(“Alice”, R1)KB-KDC(“Alice”, R1)
Dati cifrati con R1Dati cifrati con R1
KA-KDC (“Alice”, “Bob”)KA-KDC (“Alice”, “Bob”)KDCKDC
BobBob
AliceAlice
KA-KDC (R1), KB-KDC(“Alice”, R1)KA-KDC (R1), KB-KDC(“Alice”, R1)
Certification AuthorityCertification Authority
Garantisce la corrispondenza entità - chiave pubblicaGarantisce la corrispondenza entità - chiave pubblica
Crea un certificato per ogni entità registrata (standard X.509 e RFC 1422)
Crea un certificato per ogni entità registrata (standard X.509 e RFC 1422)
Pubblica i certificati in siti noti senza possibilità di contraffazione
Pubblica i certificati in siti noti senza possibilità di contraffazione
IntegritàIntegrità
Cifratura del messaggio con chiave pubblica del destinatario
Cifratura del messaggio con chiave pubblica del destinatario
ABCD
testo inchiaro
testo inchiaro
%&*#
testo cifratotesto
cifratochiavepubblica di Bob
chiavepubblica di Bob
BobBobAliceAlice
tempi di cifratura/decifraturatroppo lunghitempi di cifratura/decifraturatroppo lunghi
Cifratura del solo digest (riassunto)Cifratura del solo digest (riassunto)
Problema:Problema:
IntegritàIntegrità
Cifratura del messaggio con chiave pubblica del destinatario
Cifratura del messaggio con chiave pubblica del destinatario
Digest del messaggioDigest del messaggio
Stringa di lunghezza fissaStringa di lunghezza fissa
Generata con funzione di hash H(m)Generata con funzione di hash H(m)
Proprietà:Proprietà:
Non si può trovare y tale che H(y)=xNon si può trovare y tale che H(y)=x
Non si possono trovare duemessaggi x e y tali che H(x)=H(y)Non si possono trovare duemessaggi x e y tali che H(x)=H(y)
Algoritmo MD5Algoritmo MD5
Attualmente molto usatoAttualmente molto usato
RFC 1321RFC 1321
Produce un digest di 128 bitProduce un digest di 128 bit
Processo a 4 fasiProcesso a 4 fasi
Digest del messaggioDigest del messaggio
messaggiomessaggiodigest
in chiarodigest
in chiaro
chiaveprivata delmittente
chiaveprivata delmittente
digestcifratodigestcifratospedizionespedizione
Digest del messaggioDigest del messaggio
chiavepubblica del
mittente
chiavepubblica del
mittentedigestcifratodigestcifrato
digestin chiarodigest
in chiaro
messaggiomessaggiodigest
in chiarodigest
in chiaro
con
fron
toco
nfro
nto
Può essere usatocome firma digitalePuò essere usato
come firma digitale
La sicurezza nelle reti di calcolatoriLa sicurezza nelle La sicurezza nelle reti di calcolatorireti di calcolatori
Top Related