SICUREZZA E CRITTOGRAFIA
Relazione cliente / servitore basata sul principio del sospetto reciproco
Crittografia
E’ la scienza che fornisce gli strumenti per rendere un messaggio non intelliggibile a chiunque non sia il legittimo destinatario
Crittografia di sostituzione
cambiano i simboli dell’alfabeto, ma non il loro ordine
(es: cifrario di Cesare). E’ facilmente attaccabile.
Crittografia di trasposizione
cambia solo l’ordine, non i simboli dell’alfabeto
NB: si possono pensare anche politiche miste.
CRITERI
LA CRITTOGRAFIA MODERNA
La crittografia moderna usa tre tipi di algoritmi:
Un sistema di crittografia comprende:
La crittografia moderna postula che l'algoritmo di cifratura debba essere noto (principio di Kerchoffs)
La sicurezza del sistema di crittografia
non praticabile come soluzione
è antieconomico tentare di aggirarla
LA CRITTOGRAFIA A CHIAVE SEGRETA
Algoritmi di cifratura a chiave segreta
IBM DES (Data Encryption Standard, 1977)
RC2, RC4 (RSA, chiave di 128 bit)
IDEA (International Data Encryption Algorithm, 128 bit)
Uso di sistemi a chiave segreta
Il messaggio cifrato non rivela l’informazione anche se intercettato
ma richiede la condivisione della chiave:
Come scambiarsi le chiavi?
e inoltre si ha proliferazione delle chiavi
(una per ogni coppia di interlocutori)
LA CRITTOGRAFIA A CHIAVE PUBBLICA
Algoritmi di cifratura a chiave pubblica
Uso di sistemi a chiave pubblica
Autenticazione
Il mittente A invia un messaggio qualunque ("sfida") cifrato con la chiave pubblica del destinatario B
¯
solo il destinatario B può "aprirlo" con la sua chiave privata (e magari rimandarlo indietro al mittente, anche in chiaro, per conferma)
¯
il mittente A ha la certezza di parlare con B
NOTA: non serve condividere (trasmettere) la chiave!
Archiviazione sicura su supporto insicuro
L’utente cifra i dati con la sua chiave pubblica
¯
solo lui potrà decifrarli con la sua chiave privata
Non-ripudiabilità ("firma digitale")
Il mittente A cifra il messaggio con la sua chiave privata
¯
il destinatario B può "aprirlo" solo usando la chiave pubblica del mittente A, e ciò gli dà la certezza del mittente perché solo A poteva conoscere la corrispondente chiave privata.
Caso composto
Il mittente A vuole essere sicuro che il suo messaggio possa essere letto solo da B
Il destinatario B vuole essere certo che il mittente sia proprio A
¯
Doppia cifratura
A cifra il messaggio due volte:
- prima con la sua chiave privata
- poi con la chiave pubblica del destinatario B
In questo modo:
- solo B può "aprirlo" con la sua chiave privata
® certezza del destinatario- solo A può esserne l’autore, perché solo la chiave pubblica di A consente di decifrarlo
® certezza del mittente
Vantaggi:
La doppia cifratura garantisce anche l’integrità del messaggio (se alterato, non è più decifrabile)
Svantaggi:
- costo computazionale molto superiore agli algoritmi a chiave singola ® impraticabile con messaggi lunghi
- la firma del messaggio coincide col messaggio stesso
® la "firma" altera il messaggio (inopportuno)
La soluzione mista
(inefficienza limitata in quanto messaggio molto corto)
Problematiche di gestione delle chiavi
Impronta (digest) di un messaggio
E’ inopportuno che la firma di un messaggio coincida col messaggio stesso (e quindi lo alteri)
¯
Hashing di un messaggio
Una funzione hash comprime un input m di lunghezza arbitraria in un output h(m) di lunghezza fissa e di piccole dimensioni
Caratteristiche funzione hash:
Alcuni usi degli algoritmi hash
Integrità dei messaggi
per generare una impronta (di un messaggio o di un file)
FIRME DIGITALI
Si firma l’impronta del messaggio invece del messaggio stesso
LE CERTIFICATION AUTHORITIES
Chi garantisce che una chiave pubblica identifichi veramente una certa persona?
¯
Gerarchia
di autorità di certificazione
(con a capo chi?)
¯
Infrastruttura
di chiave pubblica
(PKI, Public Key Infrastructure)
OPPURE (modello PGP)
Problema:
come
può il certificatore assicurarsi
dell’identità di una persona?
Deve adottare una procedura di
identificazione basata su
una certezza legale pre-esistente (es.
carta d’identità)
Riservatezza vs intercettabilita’
La robustezza ("resistenza agli attacchi") di un algoritmo dipende fortemente dalle dimensioni della chiave.
Le chiavi devono quindi essere dimensionate per resistere a un attacco di forza bruta, cioè basato sul tentare la decifratura del messaggio con tutte le possibili chiavi.
E’ un attacco efficace con macchine a parallelismo massiccio e/o chip dedicati e/o rete di calcolatori cooperanti.
ESEMPIO
DES, chiave a 56 bit ® 256 chiavi
® verso nuovo standard AES (chiave a 128 bit)
Negli USA la crittografia è qualificata come tecnologia militare ® esportazione vietata (ammessa solo entro particolari applicazioni, con deroghe ad hoc, o in forma "limitata")
® DES esportato fuori da USA adotta chiave di 40 bit
A volte è necessario (es. per ordine della magistratura in caso di indagine) poter decifrare le conversazioni
Obbligare tutti a depositare le proprie chiavi presso un’autorità?