AICA
Corso IT Administrator: modulo 5
EUCIP IT Administrator
Modulo 5 - Sicurezza Informatica
2 - Crittografia
AICA © 2005
1
AICA
Corso IT Administrator: modulo 5
Trasmissione sul canale in chiaro
010101
11010
010101
AICA © 2005
11010
2
AICA
Corso IT Administrator: modulo 5
Crittografia
AICA © 2005
3
AICA
Corso IT Administrator: modulo 5
Generalità sulla Crittografia
• Sicurezza Attiva: protezione dei dati
• Difficile ideare nuovi algoritmi
• Crittoanalisi: arte del decifrare, metodo principale è l'analisi
delle sequenze ripetute
• Numeri Casuali e numeri Primi (divisibili solo per 1 e per sé
stessi) sono elementi fondamentali
• Difficile generare numeri casuali, su computer solo numeri
Pseudocasuali (se si è fortunati!)
• Testo + Chiave C

Messaggio Cifrato
• Messaggio Cifrato + Chiave D 
Testo
AICA © 2005
4
AICA
Corso IT Administrator: modulo 5
Obiettivi di sicurezza
• Integrità
Determinare se un documento è rimasto integro durante la trasmissione
• Autenticità
Determinare la sorgente di un documento
• Confidenzialità
Protezione della comunicazione tra due soggetti nei confronti di un terzo
• Non ripudio
Insieme di meccanismi che rendono una transazione informatica non
ripudiabile
• Privacy
Salvaguardia dei dati privati
AICA © 2005
5
AICA
Corso IT Administrator: modulo 5
La Funzione EX-OR (XOR)
• operatore di “confusione” ideale
• se l’input è casuale (probabilità 0 : 1 = 50 : 50%) allora
anche l’output sarà casuale allo stesso modo
•
disponibile su tutte le CPU
•
tavola di verità: z = x  y
y
x
z
AICA © 2005
6
AICA
Corso IT Administrator: modulo 5
OnTimePad
• Assolutamente Sicuro
• Chiave = Numero Casuale (!!) lungo quanto il messaggio
• Testo XOR Chiave = Messaggio Cifrato
• Messaggio Cifrato XOR Chiave = Testo
AICA © 2005
7
AICA
Corso IT Administrator: modulo 5
OnTimePad
• Esempio Binario
Testo:
Chiave:
Messaggio Cifrato:
1011010001 
0110100011
1101110010
• Se la Chiave è veramente Casuale, anche il Messaggio
Cifrato è veramente Casuale, solo chi possiede la Chiave
può ottenere il Testo originale
AICA © 2005
8
AICA
Corso IT Administrator: modulo 5
OnTimePad
• Problema: Generare le Chiavi casuali lunghe a sufficienza
• Problema: Distribuire le Chiavi (una per ogni messaggio!) a chi
deve ricevere il messaggio
– Il problema della distribuzione delle Chiavi è comune a tutti gli
algoritmi simmetrici, algoritmi che usano una sola chiave per
cifrare e decifrare, o due chiavi semplicemente derivabili una dall'
altra
AICA © 2005
9
AICA
Corso IT Administrator: modulo 5
Algoritmi Crittografici
• Per cifrare un messaggio si usa
– Un Algoritmo crittografico (pubblico !)
– Una Chiave segreta (casuale)
• La sicurezza risiede nella bontà dell'algoritmo (verifica
pubblica) e nella casualità della chiave
AICA © 2005
10
AICA
Corso IT Administrator: modulo 5
OnTimePad
• Algoritmo crittografico : XOR
• Chiave segreta : stringa casuale di 0/1 lunga quanto il
messaggio
AICA © 2005
11
AICA
Corso IT Administrator: modulo 5
Cifrario di Cesare
• Algoritmo crittografico: sostituisci una lettera con la N-esima
lettera successiva nell'alfabeto modulo 26
• Chiave Segreta C: N e Chiave Segreta D: N
• Esempio: N=3 A => D, B => E, ..., Z => C
• Crittoanalisi: dato un messaggio cifrato non breve, conta la
frequenza di apparizione di ogni lettera e paragona con la
frequenza nota in Italiano
AICA © 2005
12
AICA
Corso IT Administrator: modulo 5
Tipi di Algoritmi
• Algoritmi Simmetrici: stessa o (semplicemente deducibile una
dall'altra) chiave C e D
• Algoritmi Asimmetrici o a Chiave Pubblica: è in pratica
impossibile ottenere la chiave C dalla chiave D in un tempo
ragionevole
• Algortimi di Hash o Digest: data una stringa di lunghezza
arbitraria generano una stringa unica di lunghezza fissa
• Notazioni: EK(M)=C DK(C)=M
AICA © 2005
13
AICA
Corso IT Administrator: modulo 5
Algoritmi Simmetrici
• Il testo cifrato deve dipendere da tutti i bit della chiave e del
testo originale
• Cambiando 1 bit nel testo o nella chiave, ogni bit del testo
cifrato può cambiare con la stessa probabilità
• Cambiando 1 bit nel testo cifrato, ogni bit del testo decifrato può
cambiare con la stessa probabilità
• Tipi:
– Blocchi ECB (Electronic CodeBook), CBC (Cipher.Block Chaining)
– Caratteri (Stream)
AICA © 2005
14
AICA
Corso IT Administrator: modulo 5
Algoritmi Simmetrici
• BLOCCHI: il testo è diviso in blocchi di lunghezza fissa (spesso
pari alla lunghezza della chiave) e produce blocchi della stessa
lunghezza
– ECB (Electornic Code Book): ogni blocco è cifrato in modo
indipendente
– CBC (Cipher Block Chaining): ogni blocco ha un riporto dal blocco
precedente, il primo blocco ha un IV (Initial Value) noto
AICA © 2005
15
AICA
Corso IT Administrator: modulo 5
Algoritmi Simmetrici
• ECB: Errori
• CBC: Errori
Ripetizioni
Ripetizioni
• Caratteri (Stream): ogni carattere è trasformato singolarmente
(più veloce)
AICA © 2005
16
AICA
Corso IT Administrator: modulo 5
Algoritmi Simmetrici
• Più noti: DES, 3 DES, AES, IDEA, RC4, ...
• DES (Data Encryption System): blocco di 64bit, chiave di 56bit
(non più sicuro) meglio in hardware
• 3DES: applicazione ad ogni blocco di DES per 3 volte con 3
chiavi diverse (la seconda volta in decifrazione)
– blocco 64bit, chiave 168 o 112 bit
– sicuro (non tutte le chiavi sono buone)
• AES (Advanced Encryption Standard): blocco 128 bit, chiave di
128, 192 o 256 bit
AICA © 2005
17
AICA
Corso IT Administrator: modulo 5
Algoritmi Simmetrici
• IDEA (International Data Encryption Algorithm): blocco 64bit,
chiave 128bit – molto sicuro ma Proprietario
• RC4: Stream, 10 volte più veloce di DES, chiave di almeno 40bit
(in pratica molto di più) Proprietario
AICA © 2005
18
AICA
Corso IT Administrator: modulo 5
Lunghezza delle chiavi segrete
• Sotto le seguenti ipotesi:
– l’algoritmo di crittografia è stato ben progettato
– le chiavi - lunghe N bit - sono tenute segrete
• Allora l’unico attacco possibile è:
– Attacco esaustivo (o brute force) che richiede un numero di
tentativi pari a
2N
AICA © 2005
19
AICA
Corso IT Administrator: modulo 5
Lunghezza delle chiavi segrete
AICA © 2005
20
AICA
Corso IT Administrator: modulo 5
Sfide DES
• 256 = 72.057.594 miliardi di chiavi possibili
• DES challenge I
– inizio=18-feb-1997, fine=17-giu-1997
– 17.731.000 miliardi di chiavi provate (25%)
– circa 15.000 computer in rete
• DES challenge II
– inizio=13-gen-98, fine=23-feb-98
– 63.686.000 miliardi di chiavi provate (87%)
– circa 20.000 computer in rete
AICA © 2005
21
AICA
Corso IT Administrator: modulo 5
Sfide DES
• DES challenge III
–
–
–
–
inizio=13-lug-98, fine=15-lug-98
17.903.000 miliardi di chiavi provate (25%)
sistema special-purpose (DEEP CRACK)
sviluppato dalla EFF col costo di 250.000 $
• E’ quindi possibile costruire una macchina che decifri un
generico messaggio DES, ma:
– bisogna conoscere il tipo di dati (es. ASCII)
– La macchina non riesce a decifrare messaggi 3DES
– il DES non è intrinsecamente debole, ha solo una chiave corta!
AICA © 2005
22
AICA
Corso IT Administrator: modulo 5
Sfide DES
• DES challenge IV
– inizio=18-gen-1999, fine=dopo 22h 15m
– 16.017.000 miliardi di chiavi provate (22%)
– 1 sistema di elaborazione special-purpose
• sviluppato dalla EFF (costo=250.000 $) più alcune migliaia di
workstation di vario genere
– potenza di picco: 250 Gkey/s
– potenza media: 199 Gkey/s
AICA © 2005
23
AICA
Corso IT Administrator: modulo 5
Dopo il DES
• IETF cambia tutti gli RFC sconsigliando l’uso del DES e
suggerendo l’uso del triplo DES
• banca tedesca condannata per una truffa fatta tramite un
sistema basato su DES
• il 15-gen-1999 il FIPS ha ritirato il DES (46/2) e l’ha
rimpiazzato col 3DES (46/3)
• il governo USA ha iniziato la procedura di selezione per un
nuovo algoritmo simmetrico:
– AES (Advanced Encryption Standard)
• chiave da almeno 256 bit
• blocchi da almeno 128 bit
AICA © 2005
24
AICA
Corso IT Administrator: modulo 5
Algoritmi Simmetrici
• USO: Poiché sono veloci si usano per cifrare i dati e le
comunicazioni, possono anche essere usati come Hash o per
autenticazione
• PROBLEMI: La distribuzione delle Chiavi, che va ripetuta
spesso poiché ogni chiave può essere usata solo per cifrare una
quantità massima di dati
AICA © 2005
25
AICA
Corso IT Administrator: modulo 5
Algoritmi Asimmetrici
• Si basano su difficili problemi matematici:
– Fattorizzazione in numeri Primi, Logaritmi Discreti
• Esempio: dato un numero grande che è il prodotto di due
numeri Primi grandi, è computazionalmente difficile trovare i due
numeri Primi (fattori)
• RSA (Rivest, Shamir, Adleman):
– Scegli due numeri primi molto grandi p e q
– Scegli un numero (casuale) e relativamente primo a
(p-1)(q-1)
• Sia n=pq
AICA © 2005
26
AICA
Corso IT Administrator: modulo 5
Algoritmi Asimmetrici
• Data la Chiave Pubblica ed il messaggio m posso de/cifrare con
la formula c = me mod n
• Data la Chiave Privata ed il messaggio c posso de/cifrare con la
formula m = cd mod n
• ATTENZIONE: un messaggio cifrato con una delle due chiavi
viene decifrato con l'altra chiave! L'uso delle chiavi è
simmetrico, ma una chiave è Privata, l'altra è Pubblica
AICA © 2005
27
AICA
Corso IT Administrator: modulo 5
Algoritmi Asimmetrici
• La Chiave Pubblica D è la coppia (e,n)
• La Chiave Privata C è: (e,p,q) o (d,n) ove
d = e-1 mod (p-1)(q-1)
• Dalla Chiave Pubblica è impossibile in pratica ottenere quella
privata poiché non si conoscono p e q (se questi sono
sufficientemente grandi)
AICA © 2005
28
AICA
Corso IT Administrator: modulo 5
Algoritmi Asimmetrici
• RSA è circa 1000 volte più lento di DES in HW e circa 100
volte in SW
• Chiavi sicure oggi sono di 1024, 2048 o 4096 bit!
• ElGamal, DSA (solo per Firme Digitali) usano i Logaritmi Discreti
• USO: Poiché sono lenti si usano per lo più per autenticazione e
scambio di Chiavi Simmetriche (cifratura di dati “piccoli”)
AICA © 2005
29
AICA
Corso IT Administrator: modulo 5
Lunghezza delle chiavi pubbliche
• 256 bit sono attaccabili in alcune settimane
• 512 bit sono attaccabili in alcuni mesi
• 1024 bit offrono una sicurezza ragionevole per vari secoli
• Esempio di sfide risolte:
– 10-apr-1996, risolta sfida RSA-130 con 1000 MIPS-years
– 2-feb-1999, risolta sfida RSA-140 (circa 465 bit) con 2000 MIPSyears
– Con nuove tecniche sarebbero risolvibili in 500 e 1500 MIPS-years
AICA © 2005
30
AICA
Corso IT Administrator: modulo 5
Distribuzione delle chiavi
per crittografia asimmetrica
• Chiave privata mai divulgata!
• Chiave pubblica distribuita il più ampiamente possibile
• Problema: chi garantisce la corrispondenza tra chiave
pubblica ed identità della persona?
• Scambio di chiavi out-of-band
• Distribuzione della chiave pubblica all’interno di un
certificato a chiave pubblica (= certificato d’identità digitale)
– formato del certificato?
– fiducia nell’emettitore del certificato?
AICA © 2005
31
AICA
Corso IT Administrator: modulo 5
Diffie-Hellman
• Primo algoritmo a chiave pubblica inventato
• Solitamente usato per concordare su una chiave segreta (
key agreement )
• Brevettato negli USA ma il brevetto è scaduto il 29 aprile
1997
• Se l’attaccante può manipolare i dati allora è possibile un
attacco man-in-the-middle; in questo caso richiede preautenticazione
AICA © 2005
32
AICA
Corso IT Administrator: modulo 5
Diffie-Hellman
• Alice e Bob scelgono due interi grandi n e g tali che 1 < g <
n
• Alice, scelto un numero a caso x, calcola:
X = gx mod n
• Bob, scelto un numero a caso y, calcola:
Y = gy mod n
• Alice e Bob si scambiano (pubblicano) X e Y
• Alice calcola k = yx mod n
• Bob calcola k’ = xy mod n
k = k’ = gxy mod n
AICA © 2005
33
AICA
Corso IT Administrator: modulo 5
Algoritmi di Hash
• Trasforma una stringa di lunghezza arbitraria in una di
lunghezza fissa detta Impronta (Hash o Digest)
• Data un'Impronta non è possibile ricostruire la stringa o
documento originario
• E' statisticamente impossibile che due documenti (di lunghezza
sufficiente) generino la stessa Impronta
• Una piccola modifica di un documento genera una grande
modifica dell'Impronta
AICA © 2005
34
AICA
Corso IT Administrator: modulo 5
Algoritmi di Hash
• Algoritmi più comuni:
– MD5, SHA1, RIPEMD160
• Operano su blocchi di 64Byte
• Generano un'Impronta di 128bit (MD5) e 160bit (SHA1 e
RIPEMD160)
AICA © 2005
35
AICA
Corso IT Administrator: modulo 5
MAC
• Message Authentication Code (MAC): in generale è un codice
che permette di stabilire l'autenticità di un documento
• H-MAC: MAC basati sull'uso di un HASH insieme ad una chiave
segreta (RFC2104)
• Caso più semplice: concatenare una chiave segreta al
documento e poi calcolarne la Impronta, solo chi conosce la
chiave segreta può verificarla e solo chi ha la chiave segreta
può averla fatta
AICA © 2005
36
AICA
Corso IT Administrator: modulo 5
Cifrare Messaggi con Algoritmi Simmetrici
1. Scegliere 1 Chiave Simmetrica per ogni messaggio da cifrare di
lunghezza opportuna
2. Ricordarsi a Memoria, o tenere in luogo sicuro, tutte le chiavi
(NON su di un computer)
3. PROBLEMA: creazione e gestione di tutte le chiavi
•
Garantisce: Confidenzialità
AICA © 2005
37
AICA
Corso IT Administrator: modulo 5
Scambiare Messaggi con Algoritmi Simmetrici
1. Scegliere 1 Chiave Simmetrica per ogni messaggio da cifrare e
per ogni corrispondente di lunghezza opportuna
2. Inviare la Chiave in modo sicuro al proprio corrispondente!
3. Ricordarsi a Memoria, o tenere in luogo sicuro, tutte le chiavi
(NON su di un computer)
PROBLEMA: creazione e distribuzione di tutte le chiavi
AICA © 2005
38
AICA
Corso IT Administrator: modulo 5
Scambiare Messaggi con Algoritmi Simmetrici
• Garantisce: Confidenzialità ed Autenticità
– (se la chiave segreta è nota solo ai due corrispondenti, un
messaggio decifrato con quella chiave è stato cifrato dall'altro
corrispondente ed è sicuro poiché è cifrato)
AICA © 2005
39
AICA
Corso IT Administrator: modulo 5
Scambiare Messaggi con Algoritmi Simmetrici
• Se al messaggio concateniamo anche il suo Hash prima della
cifratura, otteniamo anche l'integrità
• Garantisce: Confidenzialità, Autenticità ed Integrità
– se sono in grado di provare che quella chiave apparteneva al mio
corrispondente, allora posso ottenere anche il Non Ripudio
AICA © 2005
40
AICA
Corso IT Administrator: modulo 5
Scambiare Messaggi con Algoritmi Asimmetrici
1. A(lice) vuole inviare un messaggio cifrato a B(ob)
2. A si procura la chiave Pubblica di B
3. A cifra il messaggio con la chiave Pubblica di B (solo B ha la
corrispondente chiave Privata perciò solo B può decifrare il
messaggio)
4. A invia il messaggio cifrato a B
5. B decifra il messaggio con la sua chiave Privata
AICA © 2005
41
AICA
Corso IT Administrator: modulo 5
Scambiare Messaggi con Algoritmi Asimmetrici
• Si Cifra con la Chiave Pubblica del destinatario (Bob)
• Garantisce: solo Confidenzialità
– autenticità mittente manca del tutto, chiunque può inviare il
messaggio usando la chiave Pubblica di B
AICA © 2005
42
AICA
Corso IT Administrator: modulo 5
Cifrare Messaggi con Algoritmi Asimmetrici
1. A cifra il documento con la propria chiave Pubblica
2. A mantiene la propria chiave Privata in un posto molto sicuro
(Smart Card ???)
3. Per decifrare il documento è necessaria la chiave Privata di A,
che A deve quindi proteggere bene!
AICA © 2005
43
AICA
Corso IT Administrator: modulo 5
Confronto
• Chiave Simmetrica: molto veloce, immediato ottenere
Autenticità oltre Confidenzialità, facile Integrità (non Ripudio ?)
Problema: Distribuzione Chiavi
• Chiave Asimmetrica: facile distribuire chiavi, nella modalità di
base solo Confidenzialità (vedremo come ottenere il resto)
Problema: Lentissimo !!!
AICA © 2005
44
AICA
Corso IT Administrator: modulo 5
Firma Digitale
•
•
•
•
•
•
Autenticità con Algoritmi Asimmetrici
1. A genera un'Impronta del documento che vuole inviare a B
2. A cifra l' Impronta con la propria chiave Privata (solo A può
fare questo)
3. A invia il messaggio e l'Impronta cifrata a B
4. B si procura la chiave Pubblica di A
AICA © 2005
45
AICA
Corso IT Administrator: modulo 5
Firma Digitale
5. B decifra l'Impronta inviata da A con la chiave Pubblica di A
6. B calcola indipendentemente l'Impronta del messaggio ricevuto
da A e la confronta con quella ricevuta da A
•
Se le due Impronte coincidono si ha Autenticità ed Integrità
AICA © 2005
46
AICA
Corso IT Administrator: modulo 5
Firma Digitale
• Per la Firma Digitale bisogna cifrare (l'Impronta) con la Chiave
Privata del Mittente
AICA © 2005
47
AICA
Corso IT Administrator: modulo 5
Firma Digitale
AICA © 2005
48
AICA
Corso IT Administrator: modulo 5
Solo Autenticazione
Chi sei?
Ciao Bob
Non ci credo
Alice
Bob
Alice
AICA © 2005
49
AICA
Corso IT Administrator: modulo 5
Solo Autenticazione
1. A si connette a B
2. B ha la chiave Pubblica di A, B vuole essere sicuro di parlare
con A
3. B invia ad A un numero casuale in chiaro (nonce)
4. A cifra il numero casuale con la propria chiave Privata
AICA © 2005
50
AICA
Corso IT Administrator: modulo 5
Solo Autenticazione
5. A invia il numero casuale cifrato a B
6. B decifra il numero con la chiave Pubblica di A, se il numero è
uguale a quello inviato, B è sicuro di parlare con A
(in alternativa, B cifra il numero casuale con la Chiave
Pubblica di A; A lo decifra con la sua Chiave Privata ed invia
a B un'impronta del numero; B verifica che le impronte
corrispondano.)
AICA © 2005
51
AICA
Corso IT Administrator: modulo 5
Mettiamo tutto insieme !!!
1. A vuole inviare un lungo messaggio a B
2. A si procura la chiave Pubblica di B ed ha pronta la propria
chiave Privata
3. A appone una Firma Digitale al documento con la propria
chiave Privata
4. A sceglie un Algoritmo Simmetrico e genera una Chiave
simmetrica detta Di Sessione (casuale)
AICA © 2005
52
AICA
Corso IT Administrator: modulo 5
Mettiamo tutto insieme !!!
5. A cifra il messaggio per B con l'Algoritmo Simmetrico e la
Chiave simmetrica scelta
6. A cifra la Chiave Simmetrica con la Chiave Pubblica di B (solo B
può decifrare!)
7. A concatena al messaggio cifrato con la chiave Simmetrica, la
chiave Simmetrica stessa cifrata con la chiave Pubblica di B
8. A invia il tutto a B
AICA © 2005
53
AICA
Corso IT Administrator: modulo 5
Mettiamo tutto insieme !!!
• Struttura del messaggio cifrato:
AICA © 2005
54
AICA
Corso IT Administrator: modulo 5
Mettiamo tutto insieme !!!
9. B riceve il messaggio
10. B con la propria Chiave Privata decifra la chiave Simmetrica (di
sessione)
11. B con la Chiave Simmetrica decifra il messaggio e la Firma
Digitale
12. B calcola l'impronta del messaggio
13. B usa la chiave Pubblica di A per decifrare la Firma Digitale
14. B confronta le due impronte, se sono uguali ha ottenuto
Confidenzialità, Autenticità e Integrità
AICA © 2005
55
AICA
Corso IT Administrator: modulo 5
Applicazioni
• Troppe ... alcuni esempi:
• Siti Web Siti Web: SSL/TSL con Certificati Digitali per
autenticare il sito stesso, + Firma Digitale per non ripudio degli
ordini EBanking
• SSH: connettività remota e trasferimento documenti (rimpiazzo
di telnet, ftp ecc.)
• PGP: confidenzialità, autenticità e integrità posta elettronica
AICA © 2005
56
AICA
Corso IT Administrator: modulo 5
Applicazioni
• Ma anche:
• IPSEC: tunnel sicuri per connettere sedi remote o elaboratori
remoti via Internet (o rete non sicura) su IPv4 o IPv6
• S/MIME: altro protocollo per la posta elettronica sicura
• ...
AICA © 2005
57
AICA
Corso IT Administrator: modulo 5
Considerazioni
• La crittografia si basa
– Robustezza dell’algoritmo di crittografia
– Lunghezza delle chiavi
• GLI ALGORITMI SONO NOTI
• Il software open source può essere analizzato (DIFFICILE) per
verificare la corretta implementazione dell’algoritmo
AICA © 2005
58
AICA
Corso IT Administrator: modulo 5
Esempi di progetti open source
•
•
•
•
•
•
•
OpenSSL
OpenCA
Open Source PKI Mozilla
Open LDAP
MUSCLE
GnuPG
....
AICA © 2005
59
AICA
Corso IT Administrator: modulo 5
Protocollo SSH
• Due attori
– Client : attiva la richiesta di collegamento
– Server : cui è indirizzata la richiesta
• Esistono due versioni del protocollo tra loro non interoperabili
(ver 1, ver 2)
– Ver 1: meno recente, supportata da tutti i prodotti
– Ver 2: nuovo, non supportata da tutti i prodotti
AICA © 2005
60
AICA
Corso IT Administrator: modulo 5
Schema SSH
1. Il client stabilisce una connessione col server, il server risponde
con una stringa del tipo
SSH-1.99-OpenSSH_2.3.0
AICA © 2005
61
AICA
Corso IT Administrator: modulo 5
Schema SSH
2. Il server genera un numero casuale di 64 bit (cookie), cui
concatena
– Dimensione e dati della chiave pubblica del server
•
Rigenerata ogni ora
– chiave pubblica dell’host (fissa dall’installazione)
•
Identifica univocamente quell’host
3. Il client verifica che la chiave pubblica dell’host coincida con
quanto memorizzato in precedenza, se no interrompe la
comunicazione
4. Il client genera due oggetti:
– MD5 a 128 bit di : chiave host + chiave server + cookie
– Chiave di sessione : numero casuale a 256 bit
AICA © 2005
62
AICA
Corso IT Administrator: modulo 5
Schema SSH
– Viene eseguito l’XOR tra identificativo sessione e i primi 128 bit
della chiave di sessione prima generata
– Viene cifrata con la chiave pubblica del server e poi con quella
pubblica dell’host
– Si invia il tutto al server
5. Il server decifra i dati ricevuti, estrae la chiave di sessione che
verrà usata per lo scambio di dati (algoritmo simmetrico)
•
Stabilita la connessione inizia la fase di autenticazione
– User e password nel caso più semplice
•
Poco sicura (password semplici)
AICA © 2005
63
AICA
Corso IT Administrator: modulo 5
Schema SSH
– Autenticazione RSA o DSA
•
Più sicura
1. Il client indica al server qual è la chiave che vorrà utilizzare
2. Il server genera un challenge (casuale) di 256 bit, lo cifra con la
chiave pubblica dell’utente e invia il tutto al client
3. Il client usa la chiave privata per decifrare il challenge
– Viene di solito chiesta la password all’utente che non viene
trasmessa, ma usata per la decrittazione della chiave privata
dell’utente (viene salvata cifrata)
– Calcola un digest MD5 del challenge
– Lo invia al server
AICA © 2005
64
AICA
Corso IT Administrator: modulo 5
Schema SSH
4. Il server confronta il digest ricevuto con quello calcolato, se
corrispondono considera autenticato l’utente
AICA © 2005
65
AICA
Corso IT Administrator: modulo 5
Problemi con SSH
• Utilizzo di una crittografia simmetrica debole
• Mai usare autenticazione basata su nome e password
• Aggiornare sempre i programmi (preferibile la versione 2)
AICA © 2005
66
AICA
Corso IT Administrator: modulo 5
Tool SSH
• Linux, Windows, MacOSX
– OpenSSH
• ssh, ssh-keygen, sshd
• Google ......
AICA © 2005
67
AICA
Corso IT Administrator: modulo 5
Creare una chiave con OpenSSH
• Autenticazione tramite crittografia asimmetrica (RSA)
• Ogni utente deve avere una copia di chiavi (pubblica e privata) e
deve fornire la chiave pubblica al server
• Generazione tramite OpenSSH
AICA © 2005
68
AICA
Corso IT Administrator: modulo 5
Connessione
AICA © 2005
69
AICA
Corso IT Administrator: modulo 5
PGP
• Pretty Goog Privacy : ideato nel 1991 da Phil Zimmerman
– Servizi offerti per la posta elettronica
•
•
•
•
Firma elettronica
Confidenzialità
Compressione
Conversione in base 64
• GnuPG : versione open source
– www.gnupg.org
AICA © 2005
70
AICA
Corso IT Administrator: modulo 5
PGP
1.
2.
3.
4.
5.
6.
7.
8.
9.
Il mittente scrive un messaggio
Il mittente crea un hash del messaggio
Il mittente cifra l’hash con la sua chiave privata
Il mittente inserisci l’hash cifrato prima del messaggio e
trasmette entrambi
Il destinatario riceve la posta
Il destinatario decifra l’hash con la chiave pubblica del mittente
Il destinatario rigenera l’hash
Il destinatario confronta l’hash calcolato con quello ricevuto
Se i due hash coincidono il messaggio non è stato modificato
AICA © 2005
71
AICA
Corso IT Administrator: modulo 5
PGP e confidenzialità
1. Il mittente scrive un messaggio
2. Il prog. di trasmissione crea un numero casuale usato per
cifrare quel singolo messaggio (chiave di sessione)
3. Il prog. di trasmissione cifra il messaggio con un alg.
Simmetrico usando la chiave di sessione
4. La chiave di sessione viene cifrata con la chiave pubblica del
destinatario e premessa al messaggio
5. Il messaggio cifrato è inviato al destinatario
6. Il destinatario decifra la chiave di sessione usando al sua
chiave privata (solo lui puo farlo)
7. Il destinatario decifra il messaggio
AICA © 2005
72
AICA
Corso IT Administrator: modulo 5
PGP firma digitale
1. Il mittente scrive un messaggio
2. Il mittente lo firma con il procedimento visto in precedenza
•
Hash + messaggio
3. Il mittente cifra tutto il messaggio con il metodo della
confidenzialità
4. Invio al destinatario
5. Il destinatario decifra il messaggio e verifica l’impronta
AICA © 2005
73
AICA
Corso IT Administrator: modulo 5
GnuPG
• Tool openSource che implementa quanto visto su PGP
• Diverse versioni
• Software a linea di comando
AICA © 2005
74
AICA
Corso IT Administrator: modulo 5
Generare una nuova coppia di chiavi
AICA © 2005
75
AICA
Corso IT Administrator: modulo 5
Generare una nuova coppia di chiavi
• GnuPG è in grado di creare diversi tipi di coppie di chiavi,
– L'opzione 1 crea in realtà due coppie di chiavi: una coppia di chiavi
di tipo DSA che rappresenta la coppia di chiavi primaria ed è
utilizzabile solo per firmare; una coppia di chiavi subordinata di tipo
ElGamal, usata per criptare.
– L'opzione 2 è simile alla precedente ma crea solo una coppia di
chiavi DSA.
– L'opzione 4[1]crea una singola coppia di chiavi ElGamal utilizzabile
sia per firmare che per criptare. In tutti i casi è possibile in un
secondo momento creare sotto-chiavi addizionali per cifrature e
firme.
AICA © 2005
76
AICA
Corso IT Administrator: modulo 5
Generare una nuova coppia di chiavi
• È necessario anche scegliere la dimensione della chiave.
– La dimensione di una chiave DSA deve essere compresa fra 512 e
1024 bit
– La chiave ElGamal può essere di qualsiasi dimensione.
• GnuPG richiede che le chiavi non siano più piccole di 768 bit.
AICA © 2005
77
AICA
Corso IT Administrator: modulo 5
Generare una nuova coppia di chiavi
AICA © 2005
78
AICA
Corso IT Administrator: modulo 5
Scambiarsi le chiavi
AICA © 2005
79
AICA
Corso IT Administrator: modulo 5
Esportare una chiave pubblica
• Per spedire una chiave pubblica ad un corrispondente è
necessario prima esportarla.
• Si usa l'opzione a linea di comando --export.
• Essa necessita di un ulteriore argomento che identifichi la
chiave pubblica da esportare.
• Così come con l'opzione --gen-revoke, sia l'ID della chiave che
ogni altra parte dello User ID possono servire per identificare la
chiave da esportare.
AICA © 2005
80
AICA
Corso IT Administrator: modulo 5
Esportare una chiave pubblica
• La chieve è esportata in un formato binario
– sconveniente quando la chiave viene spedita per posta elettronica
o pubblicata in una pagina web.
• l'opzione a linea di comando --armor[1]
– forza l'output ad essere generato in un formato protetto da
un'armatura ASCII
AICA © 2005
81
AICA
Corso IT Administrator: modulo 5
Importare una chiave pubblica
AICA © 2005
82
AICA
Corso IT Administrator: modulo 5
Cifrare e decifrare documenti
• Opzione --encrypt.
• È necessario possedere le chiavi pubbliche dei destinatari a cui
si intende spedire il messaggio.
• Il programma si aspetta il nome del documento da cifrare come
ingresso
– se omesso, legge lo standard input.
• Il risultato cifrato è stampato sullo standard output oppure dove
specificato con l'opzione --output.
• Il documento, oltre ad essere criptato, viene compresso per
ragioni di maggior sicurezza.
AICA © 2005
83
AICA
Corso IT Administrator: modulo 5
Cifrare e decifrare documenti
• L'opzione --recipient viene utilizzata una sola volta per ogni
destinatario e richiede un argomento extra che specifichi con
quale chiave pubblica debba essere criptato il documento.
• Tale documento può essere decriptato solo da qualcuno in
possesso di una chiave privata che complementi una delle
chiave pubbliche dei destinatari.
• In particolare non è possibile decifrare un documento criptato da
voi stessi, a meno che non abbiate incluso la vostra chiave
pubblica nella lista dei destinatari.
AICA © 2005
84
AICA
Corso IT Administrator: modulo 5
Cifrare e decifrare documenti
• Per decriptare un messaggio si usa l'opzione --decrypt.
• È necessario possedere la chiave privata con la quale era stato
cifrato il messaggio.
• Analogamente al processo di cifratura, il documento da
decifrare è l'ingresso e quello decifrato è l'uscita.
AICA © 2005
85
AICA
Corso IT Administrator: modulo 5
Add-on
• Enigmail è un "plugin" del client di posta di Mozilla
– Permette di automatizzare le operazioni per cifrare, decifrare,
firmare la posta
– Si appoggia ad una versione command line di GnuPG o PGP.
• Il plugin è distrubuito sotto licenza GPL ed è liberamente
scaricabile all'indirizzo enigmail.mozdev.org.
AICA © 2005
86
AICA
Corso IT Administrator: modulo 5
Enigmail
AICA © 2005
87
AICA
Corso IT Administrator: modulo 5
Enigmail
•
Qui potrete configurare l'indirizzo di posta da usare come mittente di default e
selezionare la modalità di invio standard delle mail.
Potete optare tra:
•
–
non utilizzare Enigmail come default (la posta sarà in chiaro e non firmata)
–
firmare tutti i messaggi in uscita
–
firmare tutti i messaggi e cifrarli se la chiave pubblica del destinatario è disponibile.
La configurazione che sceglierete tra queste verrà utilizzata per decidere cosa fare di
default all'invio di ogni singolo messaggio.
Potrete inoltre decidere se e per quanto tempo la passphrase che avete inserito
per sbloccare la vostra chiave segreta debba essere memorizzata dal sistema:
sarebbe opportuno settare questo valore a 0 in modo che la passphrase non
venga memorizzata in alcun modo (soprattutto se il computer e' in rete). Questo
però costringe potenzialmente a dover inserire la passphrase ogni volta che
viene spedita una mail e questo può diventare fastidioso.
Da questa finestra è anche possibile disinstallare il programma oppure
aggiornarlo automaticamente.
AICA © 2005
88
AICA
Corso IT Administrator: modulo 5
AICA © 2005
89
AICA
Corso IT Administrator: modulo 5
Enigmail
• Inserire il percorso per raggiungere l'eseguibile del vostro
programma di cifratura.
• Cambiare la configurazione del keyserver indicando
"keyserver.autistici.org" invece del valore di default
(www.keyserver.org), questo vi permetterà di interfacciare
direttamente Enigmail con il keyserver di autistici.org.
AICA © 2005
90
AICA
Corso IT Administrator: modulo 5
Generare Le Chiavi
•
•
menù di enigmail e selezionate "genenate key".
Vi sarà presentata una finestra che vi permette di scegliere l'account
per cui generare le chiavi (dovete aver quindi già configurato
correttamente il vostro client di posta) e inserire la passphrase (è anche
possibile non inserirla, ma, a meno che non siate tassativamente ed
assolutamente certi che nessuno possa accedere in alcun modo al
vostro computer, il consiglio è non abilitare mai questa possibilità che e'
altamente insicura e deprecata.).
•
Una volta terminato l'inserimento dei dati la chiave verrà creata e
automaticamente inserita nel vostro keyring.
E' comunque consigliabile creare la chiave utilizzando il software di
cifratura su cui avete scelto di basarvi, avrete più controllo sul tipo di
chiave che andrete a creare e sulla sua dimensione.
•
AICA © 2005
91
AICA
Corso IT Administrator: modulo 5
Utilizzo
• Integrato nell'interfaccia del client di posta di Mozilla.
• Il menù contestuale alla finestra di lettura delle e-mail presenta
le seguenti voci relative alla gestione della posta (da qui è
possibile inoltre accedere ai menu di configurazione e all'help):
AICA © 2005
92
AICA
Corso IT Administrator: modulo 5
Utilizzo
• Decrypt/Verify: permette di decifrare o verificare la firma di un
messaggio ricevuto;
Import Public Key: permette di importare una chiave pubblica
contenuta in un messaggio ricevuto (in formato Armored PGP);
Save decrypted Message: decifra e salva un messaggio
cifrato;
--------------------Automatically Decrypt/Verify: se abilitata questa funzione fa
si' che i messaggi vengano decifrati e verificati in maniera
automatica non appena vengono aperti, richiedendo, se
necessario, la passphrase per sbloccare la chiave privata;
--------------------Clear saved passphrase: serve a cancellare dalla cache di
sistema la passphrase appena inserita.
AICA © 2005
93
AICA
Corso IT Administrator: modulo 5
S/MIME
•
S/MIME (Secure/Multipurpose Internet Mail Extensions) è una proposta di standard per la
crittografazione e firma dei messaggi di posta elettronica. Utilizza RSA, RC2 e MD5 per la
crittografazione e firma e certificati digitali nel formato X.509. La versione 2 è descritta in
due documenti:
–
–
RFC 2311: S/MIME Version 2 Message Specification.
RFC 2312: S/MIME Version 2 Certificate Handling.
•
Le implementazioni reperibili, dovendo sottostare alle restrizioni di esportazione dagli Stati
Uniti, fanno uso di chiavi di lunghezza inadeguata (512 bit per RSA e 40 bit per RC2). (In un
report di alcuni eminenti crittografi, Minimal Key Lenghts for Symmetric Ciphers to Provide
Adequate Commercial Security, una chiave di 40 bit viene dichiarata decrittabile in una
settimana facendo uso di un comune PC).
•
Per questo motivo non sembra probabile che la versione 2 venga accettata come standard
IETF (è in preparazione la versione 3).
•
Dopo la pubblicazione dei sorgenti di Netscape Communicator v5 sono disponibili versioni
(al momento per alpha, sun, linux e windows) con algoritmi prima riservati al mercato USA.
(Sarebbe possibile anche con la versione 4.04, ma è necessaria una modifica
dell'eseguibile, proibita dalla licenza d'uso).
AICA © 2005
94
AICA
Corso IT Administrator: modulo 5
Operatività
• Netscape Communicator (4.x) e Microsoft Outlook (fornito
con Internet Explorer 4) sono entrambi in grado di generare
messaggi di questo tipo (compatibili tra di loro).
• la crittazione e decrittazione viene eseguita in modo
trasparente, come pure la gestione dei certificati dei destinatari,
che vengono automaticamente scaricati dai messaggi ricevuti.
Manca una gestione automatica delle CRL (è prevista invece,
almeno per Netscape, per i certificati dei server web).
• Sebbene le chiavi generate da Communicator siano di 512 bit,
è possibile utilizzarne di prodotte esternamente da 1024 bit
(tramite SSLeay); lo stesso non sembra possibile con Outlook
(per ulteriori dettagli vedere il documento specifico).
AICA © 2005
95
AICA
Corso IT Administrator: modulo 5
Operatività
• Il problema principale, prescindendo dalla bassa sicurezza, è
legato alla necessità dell'esistenza di un certificato per ogni
destinatario. Fintanto che tutti i possibili destinatari non saranno
certificati da una qualche CA (situazione per ora ben lontana
dall'essere realizzata) questo metodo si presta bene solo per la
corrispondenza all'interno di una singola organizzazione, che
può abbastanza facilmente organizzarsi come CA.
AICA © 2005
96
AICA
Corso IT Administrator: modulo 5
Operatività
• Un ipotetico scenario di utilizzo è il seguente:
– L'utente scarica nel propio browser il certificato della CA INFN
(interattivamente, o, se paranoico, con altri metodi).
– L'utente richiede interattivamente il proprio certificato, che gli viene
spedito per e-mail. Una volta che lo ha caricato nel proprio browser
(Netscape 4.x) è pronto per inviare mail firmati e crittografati ad altri
corrispondenti muniti di un certificato (non necessariamente della
stessa CA: in questo caso è necessario procurarsi anche il
certificato della CA).
– Lo scarico dei certificati dei corrispondenti può avvenire
interattivamente (se certificati dalla CA INFN o inseriti in una delle
directory LDAP include nel browser) o automaticamente alla
ricezione del primo mail firmato dallo stesso.
AICA © 2005
97
AICA
Corso IT Administrator: modulo 5
SSL (Secure Socket Layer)
• Proposto da Netscape Communications
• Protocollo di trasporto sicuro (circa livello sessione):
–
–
–
–
autenticazione (server, server+client)
riservatezza dei messaggi
autenticazione ed integrità dei messaggi
protezione da replay e da filtering
• Applicabile a HTTP, SMTP, NNTP, FTP, TELNET, ...
–
–
HTTP sicuro (https://....) = TCP/443
NNTP sicuro = TCP/563
• Dettagli :
http://telemat.die.unifi.it/book/Internet/Security/elab3.htm
AICA © 2005
98
AICA
Corso IT Administrator: modulo 5
Porte SSL
•
•
•
•
•
•
•
•
•
•
•
•
•
•
nsiiops 261/tcp # IIOP Name Service over TLS/SSL
https 443/tcp # http protocol over TLS/SSL
smtps 465/tcp # smtp protocol over TLS/SSL (was ssmtp)
nntps 563/tcp # nntp protocol over TLS/SSL (was snntp)
imap4-ssl 585/tcp # IMAP4+SSL (use 993 instead)
sshell 614/tcp # SSLshell
ldaps 636/tcp # ldap protocol over TLS/SSL (was sldap)
ftps-data 989/tcp # ftp protocol, data, over TLS/SSL
ftps 990/tcp # ftp protocol, control, over TLS/SSL
telnets 992/tcp # telnet protocol over TLS/SSL
imaps 993/tcp # imap4 protocol over TLS/SSL
ircs 994/tcp # irc protocol over TLS/SSL
pop3s 995/tcp # pop3 protocol over TLS/SSL (was spop3)
msft-gc-ssl 3269/tcp # MS Global Catalog with LDAP/SSL
AICA © 2005
99
AICA
Corso IT Administrator: modulo 5
SSL - autenticazione e integrità
• Apertura del canale:
– Il server si autentica presentando la propria chiave pubblica
(certificato X.509) e subendo un challenge asimmetrico
– L’autenticazione del client (con chiave pubblica e certificato X.509)
è opzionale
• Autenticazione e integrità dei dati scambiati:
– keyed digest (MD5 o SHA-1)
– MID per evitare replay e cancellazione
AICA © 2005
100
AICA
Corso IT Administrator: modulo 5
SSL - riservatezza
•
•
•
•
•
•
il client genera una session key utilizzata per la
cifratura simmetrica dei dati (RC2, RC4, DES,
3DES o IDEA)
la chiave viene comunicata al server cifrandola
con la chiave pubblica del server (RSA, Diffie
Hellman o Fortezza-KEA)
AICA © 2005
101
AICA
Corso IT Administrator: modulo 5
SSL - handshake
AICA © 2005
102
Scarica

Sicurezza