© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 1
RETI DI CALCOLATORI II
Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI
Facoltà di Ingegneria Università degli Studi di Udine
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà degli autori prof. Pier Luca Montessoro e ing. Davide Pierattoni, Università degli Studi di Udine.
Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione.
Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori.
L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione).
In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slide.
In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali.
Nota di Copyright
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 3
Elementi di crittografia Elementi di Elementi di crittografia crittografia
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 4
Argomenti della lezione Argomenti della lezione
Î Proprietà necessarie alla sicurezza della comunicazione Î Proprietà necessarie alla
sicurezza della comunicazione Î Elementi di crittografia
Î Elementi di crittografia
Sicurezza della comunicazione Sicurezza della comunicazione
Autenticazione Autenticazione Autenticazione
Segretezza Segretezza Segretezza
Integrità del messaggio Integrit
Integritààdel messaggiodel messaggio
Proprietà desiderabili Propriet
Proprietàà
desiderabili
desiderabiliPuò anche essere desiderabile la segretezza del fatto stesso che sia avvenuta una comunicazione tra due persone (proprietà meno ovvia)
Può anche essere desiderabile la segretezza del fatto stesso che sia avvenuta una comunicazione tra due persone (proprietà meno ovvia)
Segretezza Segretezza
Il contenuto del messaggio può essere letto soltanto dal destinatario (proprietà banale) Il contenuto del messaggio può essere letto soltanto dal destinatario (proprietà banale)
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 7
Autenticazione Autenticazione
Come faccio ad essere certo dell’identità della persona
con cui comunico?
Come faccio ad essere certo dell’identità della persona
con cui comunico?
Î Autenticazione del mittente Î Autenticazione del destinatario ÎAutenticazione del mittente ÎAutenticazione del destinatario
Servono:
Servono:
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 8
Integrità del messaggio Integrità del messaggio
Come posso garantire che il messaggio ricevuto sia esattamente quello inviato (e non sia stato modificato
da qualcuno?)
Come posso garantire che il messaggio ricevuto sia esattamente quello inviato (e non sia stato modificato
da qualcuno?)
ti tiamoamo
BobBob BobBob
Alice Alice
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 9
Integrità del messaggio Integrità del messaggio
Come posso garantire che il messaggio ricevuto sia esattamente quello inviato (e non sia stato modificato
da qualcuno?)
Come posso garantire che il messaggio ricevuto sia esattamente quello inviato (e non sia stato modificato
da qualcuno?)
Alice Alice
Trudy Trudy BobBob
titiamoamo Bob Bob
ti odioti odioBobBob
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 10
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 rete Vulnerabilità della rete
Î Violazione della segretezza mediante sniffer
Î Violazione della segretezza mediante sniffer
Broadcast di livello 2 Broadcast di livello 2
Î Incertezza del mittente (IP spoofing)
Î Incertezza del mittente (IP spoofing)
Indirizzi IP non autenticati Indirizzi IP non autenticati
Vulnerabilità della rete Vulnerabilità della rete
Î Possibile alterazione dei messaggi Î Possibile alterazione dei messaggi Informazioni trasmesse in chiaro Informazioni trasmesse in chiaro
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 13
DoS: Denial of Service DoS:
DoS: DenialDenialof of ServiceService Attacchi orientati ad impedire il normale funzionamento dei sistemi
Attacchi orientati ad Attacchi orientati ad impedire il normale impedire il normale funzionamento dei sistemi funzionamento 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)
Vulnerabilità della rete Vulnerabilità della rete
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 14
Principi di crittografia Principi di crittografia
Permette di ottenere:
Permette di ottenere:
Permette di ottenere:
Autenticazione Autenticazione Autenticazione
Segretezza Segretezza Segretezza
Integrità del messaggio Integrit
Integritààdel messaggiodel messaggio
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 15
Definizioni Definizioni
ABCD
testo in chiaro testo in
chiaro
algoritmo di cifratura algoritmo di
cifratura
#^$&
testo cifratotesto cifrato
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 16
Definizioni Definizioni
algoritmo di cifratura algoritmo di
cifratura ABCD
testo in chiaro testo in
chiaro
#^$&
testo cifratotesto cifrato
“Scambia ogni lettera in posizione i con quella in posizione (i3+3) mod m”
“Scambia ogni lettera in posizione i con quella in posizione (i3+3) mod m”
Algoritmo segreto Algoritmo segreto Esempio:
Esempio:
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;
}}
Cifratura
Cifratura
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 19
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;
}
Decifratura Decifratura
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 20
Esempio:
Esempio:
"Cara Alice, credo
"Cara Alice, credo cheche Trudy ciTrudy ci stiastia spiandospiando""
"
"arTarT sausAsausA eieeie aioCnodcrdaaioCnodcrda y cc,e y cc,e trlidchiptrlidchip""
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 21
NO: è necessario permettere lo sviluppo del software
necessario
NO: è necessario permettere lo sviluppo del software
necessario
Algoritmo segreto per Internet?
Algoritmo segreto per Internet?
algoritmi pubblici + CHIAVI algoritmi pubblici
+ CHIAVI
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 22
Definizioni Definizioni
ABCD
testo in chiaro testo in
chiaro
algoritmo di cifraturaalgoritmo di cifratura
#^$&
testo cifratotesto cifrato chiave
KA chiave
KA Alice Alice
Definizioni Definizioni
algoritmo di decifratura algoritmo di
decifratura ABCD
testo in chiaro testo in
chiaro
%&*#
testo cifratotesto cifrato chiave
KB chiave
KB BobBob
Definizioni Definizioni
KH#4
testo incomprensibiletesto incomprensibile algoritmo di
decifratura algoritmo di
decifratura
%&*#
testo cifratotesto cifrato
?
? ?
Trudy Trudy
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 25
Chiavi simmetriche Chiavi simmetriche
Stessa chiave per crittografia e decrittografia Stessa chiave per crittografia e decrittografia
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 26
Come scambiarsi le chiavi?
Come scambiarsi le chiavi?
Problema:
Problema:
Chiavi simmetriche Chiavi simmetriche
len (chiave) > len (messaggio) chiavi sempre diverse len (chiave) > len (messaggio)
chiavi sempre diverse
Massima sicurezza:
Massima sicurezza:
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 27
Algoritmi per chiavi simmetriche
Algoritmi per chiavi simmetriche
Î Schema di sostituzione fissa di ogni lettera con un’altra
Î Schema di sostituzione fissa di ogni lettera con un’altra
Cifrature monoalfabetiche (cifrario di Cesare)
Cifrature monoalfabetiche (cifrario di Cesare)
Î Forzatura tramite analisi statistica delle ricorrenze Î Forzatura tramite analisi statistica delle ricorrenze
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 28
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 Cesare Esempio: cifrario di Cesare
Algoritmi per chiavi simmetriche
Algoritmi per chiavi simmetriche
n cifrari di Cesare usati ciclicamente ncifrari di Cesare usati
ciclicamente Cifrature polialfabetiche
(cifrari di Vigenere) Cifrature polialfabetiche
(cifrari di Vigenere)
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 Vigenere Esempio: cifrario di Vigenere
“ciao”
“ciao” “mmyy”“mmyy”
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 31
Tipologie di attacco Tipologie 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 con testo in chiaro scelto Î Analisi con testoin chiaro scelto Î Analisi del crittogramma di cui è
nota una parte del testo (es. intestazione standard)
Î Analisi del crittogrammadi cui è nota una parte del testo
(es. intestazione standard)
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 32
Algoritmi per chiavi simmetriche
Algoritmi per chiavi simmetriche
Î Chiave a 56 bit Î Chiave a 56 bit
Î 16 fasi di manipolazione ed EXOR con i bit della chiave
Î 16 fasi di manipolazione ed EXOR con i bit della chiave
DES: Data Encryption Standard DES: Data Encryption Standard Î Due fasi di permutazione
Î Due fasi di permutazione
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 33
Algoritmi per chiavi simmetriche
Algoritmi per chiavi simmetriche
Forzato nel 1997 Forzato nel 1997
Evoluzione: DES triplo (3DES) Evoluzione: DES triplo (3DES)
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 34
Chiavi pubbliche Chiavi pubbliche
Due chiavi Due chiavi
Chiave pubblica Chiave pubblica Chiave privata (segreta) Chiave privata (segreta)dB(eB (m)) = m = eB (dB (m)) dB(eB (m)) = m = eB (dB(m))
Chiavi pubbliche Chiavi pubbliche
Chiavi e algoritmo di cifratura devono soddisfare la proprietà:Chiavi e algoritmo di cifratura devono soddisfare la proprietà:
Chiavi pubbliche Chiavi pubbliche
Dove:
Dove:
Dove:
dBchiave privata di Bob, tipicamente usata per la
decifratura
dBchiave privata di Bob, tipicamente usata per la
decifratura
eBchiave pubblica di Bob, tipicamente usata per la
cifratura
eBchiave pubblica di Bob, tipicamente usata per la
cifratura
m messaggio mmessaggio
dB (eB(m)) = m = eB(dB(m)) dB (eB(m)) = m = eB(dB(m))
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 37
Crittografia a chiave pubblica Crittografia a chiave pubblica
%&*#
testo cifrato
eB(m) testo cifrato
eB(m) chiave
pubblica di Bob
eB chiave pubblica
di Bob eB Alice Alice ABCD
testo in chiaro testo in
chiaro
algoritmo di cifraturaalgoritmo di cifratura
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 38
Crittografia a chiave pubblica Crittografia a chiave pubblica
%&*# testo cifrato eB(m) testo cifrato
eB(m) chiave
privata di Bob
dB
chiave privata di Bob
dB BobBob
ABCD
testo in chiaro dB(eB(m))=m testo in chiaro
dB(eB(m))=m algoritmo di
decifratura algoritmo di
decifratura
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 39
Î 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. 603
e seguenti del libro di testo Descrizione dell’algoritmo a pag. 603
e seguenti del libro di testo
Algoritmo RSA per
cifratura a chiave pubblica Algoritmo RSA per
cifratura a chiave pubblica
© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 40
Algoritmo RSA per
cifratura a chiave pubblica Algoritmo RSA per
cifratura a chiave pubblica
richiede calcolo di elevamento a potenza con numeri molto grandi richiede calcolo di elevamento a potenza con numeri molto grandi
Lungo tempo di elaborazione
Lungo tempo di elaborazione Problema:Problema:
Algoritmo RSA per
cifratura a chiave pubblica Algoritmo RSA per
cifratura a chiave pubblica
scambio di chiavi simmetriche di sessione
scambio di chiavi simmetriche di sessione
RSA → chiavi di sessione
DES → contenuto dei messaggi
RSA → chiavi di sessioneDES → contenuto dei messaggi Possibile impiego:
Possibile impiego: