Codifica dei caratteri di un messaggio con criteri noti...

22
Crittografia Codifica dei caratteri di un messaggio con criteri noti solo a mittente e destinatario CODIFICA e DECODIFICA sono due funzioni che hanno come parametro rispettivamente il messaggio in chiaro e quello cifrato

Transcript of Codifica dei caratteri di un messaggio con criteri noti...

Page 1: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Crittografia

Codifica dei caratteri di un messaggio con criteri noti solo a mittente e destinatario

CODIFICA e DECODIFICA sono due funzioni che hanno come parametro rispettivamente il messaggio in chiaro e quello cifrato

Page 2: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

IMPIEGHI della Crittografia

● SEGRETEZZAil contenuto del messaggio deve essere noto solo al mittente e al destinatario

● AUTENTICAZIONE

– Siti (credenziali)

– Utenti (tramite password)

– Mittenti (firma digitale)

● INTEGRITA'il contenuto del messaggio non è stato manipolato durante la trasmissione

Page 3: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Principi di crittografia

● PRINCIPIO DI KERCKOFFla sicurezza deve dipendere dalla chiave e non dall'algoritmo, perchè quest'ultimo non può essere mantenuto segreto

● PRINCIPIO DI SHANNONdetto anche principio di CONFUSIONE e DIFFUSIONE

– CONFUSIONEil messaggio criptato non deve fornire informazioni sula chiave

– DIFFUSIONEla modifica di una solo carattere del messaggio in chiaro deve provocare una modifica sostanziale del messaggio criptato

Page 4: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Sicurezza nelle reti (1)

Necessaria per ovviare alla possibilità di sniffing di pacchetti, si può applicare a diversi livelli

● Livello fisicole reti cablate sono più sicure di quelle wirelessse si usano switch e quindi il canale non è condiviso

● Livello Data Linkprevede una manipolazione del frame per il controllo di integrità, quindi si può intervenire anche sulla codificaNelle reti wireless la crittografia è prevista dal driver della scheda e dell'AP

● Livello Retesi applicano i filtri di pacchetto per impedire l'accesso a determinati host (Firewall)

Page 5: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Sicurezza nelle reti (2)

● Livello Sessione (Trasporto)è possibile inibire (o concedere) l'accesso ad alcune porte, impedendo così di raggiungere la relativa applicazione server.Anche se il filtro viene applicato a livello di rete, concettualmente questa tecnica appartiene al livello sessione, in quanto opera sulla sessione di lavoro

● Livello Presentazioneesistono protocolli che possono essere richiamati dal livello applicazione (HTTPS) per crittografare le transazioni

● Livello Applicazionela crittografia può essere applicata direttamente dall'applicazione client e dal server

Page 6: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Algoritmi di crittografia

Esistono diversi algoritmi di crittografia, e tutti che si basano essenzialmente su due tipi di operazioni che vengono reiterate più volte con accorgimenti diversi:

● TRASPOSIZIONEeffettua una permutazione di caratteri

● SOSTITUZIONEi caratteri vengono sostituiti con altri secondo un determinato criterio

In entrambi i casi, si può fare ricorso a una CHIAVE, che viene usata come parametro in modo che il procedimento produca risultati diversi cambiando la chiave

Page 7: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Algoritmo di TRASPOSIZIONE con chiave

Il messaggio viene trascritto su più colonne allineandolo alla chiave

Le colonne vengono disposte in ordine alfabetico secondo la prima riga (quella che contiene la chiave)

Vengono poi trasmesse le colonne in sequenza (senza includere la prima riga con la chiave)

La ricostruzione del messaggio avviene applicando i passaggi in senso inverso e riordinando le colonne secondo la chiave

Conoscere la lunghezza della chiave dà indicazioni sulla lunghezza delle colonne

Page 8: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Algoritmo di SOSTITUZIONE con chiave

La chiave per essere sicura dovrebbe essere della stessa lunghezza (o superiore) del messaggio

Nel caso sia più corta può comunque essere ripresa dall'inizio

Ogni carattere del messaggio viene combinato con un carattere della frase con un algoritmo a piacere (somma, sottrazione ...)

In fase di decifrazione l'algoritmo prevede una operazione inversa

L'operazione applicata è molto spesso lo XOR, perché se applicato due volte ritorna il risultato originale

Page 9: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

S-box e P-box

Negli algoritmi di crittografia sono spesse usate oltre alle combinazioni con la chiave, per creare aumentare l'effetto di confusione/diffusione

S-box – è una matrice predisposta in modo che per ogni gruppo di bit ne corrisponde un altro

P-box – è una matrice che indica come ogni carattere deve essere permutato all'interno del blocco

Nell'algoritmo di decifrazione deve essere predisposta una S-box o una P-box che diano risultato inverso

Page 10: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Tipi di chiave

● Simmetricaper decifrare il messaggio si usa la stessa chiave impiegata per cifrarlo, con un algoritmo inverso

● Asimmetricaper decifrare il messaggio è necessaria una chave diversa

● One time padmittente e destinatario hanno entrambi lo stesso gruppo (pad) di chiavi, da cui estraggono di volta in volta una chiave che non viene poi più riutilizzata (one-time)

● One time keysimile al precedente, ma la chiave ha una durata molto limitata nel tempo

Page 11: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Chiave simmetrica

Il punto debole di questo tipo di algoritmi è la segretezza della chiave

La chiave deve quindi essere scambiata su un mezzo sicuro, che non può ovviamente essere lo stesso impiegato per il messaggio

Inoltre la chiave deve essere abbastanza lunga da renderne difficile la violazione con un attacco a forza bruta, ed il messaggio stesso non deve contenere informazioni sulla chiave (principio di confusione)

Page 12: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Chiave asimmetrica

L'algoritmo usato per cifrare non è invertibile, ma si può risalire al messaggio originale usando una chiave inversa.

Questo tipo di crittografia necessita quindi di due chiavi, ma è sufficiente che solo una delle due sia segreta.

Ogni utente possiede una chiave pubblica e una privata: se desidera ricevere un messaggio cifrato, fornisce la propria chiave pubblica al mittente e lo decifra poi con quella privata.

Il mittente stesso non è in grado di decifrare il messaggio (cosa non necessaria).

Page 13: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

One time pad

Prevede che lo scambio delle chiavi sia precedente a quello dei messaggi.

Mittente e destinatario devono avere un criterio di sincronizzazione per decidere di volta in volta quale chiave usare

Cifrario di VernamLa chiave viene cambiata per ogni carattere, e poi non viene più riutilizzata

Claude Shannon ha fornito una dimostrazione matematica della inviolabilità di questo sistema in presenza di tre condizioni:

➔ La chiave deve essere lunga almeno quanto il messaggio➔ La sequenza della chiave deve essere perfettamente casuale➔ La chiave deve essere utilizzata una volta sola

Page 14: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

One time key

Si basano sullo stesso principio delle precedenti, ma il meccanismo di sincronizzazione è temporale, e la chiave può essere usata solo nel periodo di 10-20 secondi dopo la sua generazione

Un esempio di utilizzo sono le chiavette che vengono usate nelle transazioni di home banking

Page 15: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Crittografia a senso unico

Si tratta di algoritmi non invertibili, in quanto le funzioni di trasformazione non producono risultati in rapporto 1-1 con il testo originale, ma due messaggi diversi possono dare origine alla stessa chiave.

Queste funzioni vengono dette funzioni hash, e producono un risultato di lunghezza standard, qualunque sia la lunghezza del messaggio originale.

Page 16: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Crittografia e password

Le funzioni HASH sono utili per crittografare le password.

Quando la password viene creata, viene memorizzata nel DB del password già cifrata: in questo modo anche se lo stesso dovesse essere violato, le password non vengono svelate.

Inoltre quando l'utente si autentica, la password viene immediatamente crittografata. Quindi anche se fosse intercettata sulla rete, non è “in chiaro”.

Il confronto viene eseguito tra le due password entrambe cifrate, che ovviamente devono essere uguali

Page 17: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Attacchi alla crittografia

● Attacco a forza bruta

● Attacco del compleanno

● Attacco a dizionario

● Attacco meet-in-the-middle

Page 18: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Attacco a forza bruta

Tenta di individuare la chiave testando tutte le possibili combinazioni

Se la chiave è lunga N, sono necessari 2N tentativi

Si può usare anche per violare una password, ma bisogna conoscerne la lunghezza, o comunque iterare i tentativi a partire da una certa lunghezza minima

Page 19: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Paradosso del compleanno

Dato un insieme di N persone la probabilità che due di esse siano nate lo stesso giorno è sorprendentemente alta: è già superiore al 50% con 23 persone, e passa al 97% con 50 persone.

Il teorema del compleanno dimostra in realtà che dato un insieme qualunque di X valori diversi, la probabilità di trovare due copie di uno di essi in un sottoinsieme casuale arriva al 50% con una insieme di cardinalità X1/2

Page 20: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Attacco del compleanno

Per violare una password di 10 caratteri (80 bit), sono necessari 280 tentativi.

Per il teorema del compleanno però se io genero un insieme casuale di 280/2=240 password, ho una probabilità del 50% di trovarne una che, una volta cifrata, produca lo stesso risultato della password originale.

Invece che applicare un attacco a forza bruta, conviene dunque procedere per tentativi con gruppi di password casuali

Page 21: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Attacco del dizionario

Si tratta di provare tutte le parole di un dizionario precompilato, applicando anche delle varianti minuscole/maiuscole.

Questo consente di individuare con relativa facilità le password basate su parole di senso compiuto

Page 22: Codifica dei caratteri di un messaggio con criteri noti ...silenacampana.altervista.org/Reti/07061introduzioneCrittografia.pdf · Principi di crittografia PRINCIPIO DI KERCKOFF la

Attacco meet-in-the-middle

L'attaccante ha intercettato il testo in chiaro e la sua corrispondente cifratura