Appunti cybersecurity for networks Prof baldi PDF

Title Appunti cybersecurity for networks Prof baldi
Author Denil Nicolosi
Course Ingegneria INformatica e dell'Automazione
Institution Università Politecnica delle Marche
Pages 54
File Size 1.1 MB
File Type PDF
Total Downloads 443
Total Views 548

Summary

Download Appunti cybersecurity for networks Prof baldi PDF


Description

Introduzione alla crittografia Crittologia: studia la comunicazione su canali non sicuri e i relativi problemi. Crittografia: riguarda la progettazione di sistemi sicuri Crittoanalisi: tratta le tecniche per “rompere” i sistemi ritenuti sicuri Solitamente chi progetta il sistema crittografico, deve essere diverso da chi fa crittoanalisi, perché serve il punto di vista di una persona esterna. Plaintext: testo in chiaro Ciphertext: testo cifrato I possibili attacchi sono: - Ciphertext only: Eva ha a disposizione solo una copia del testo cifrato - Known plaintext: Eva ha una copia del testo cifrato e del corrispondente testo in chiaro - Chosen plaintext: Eva ha temporaneamente accesso alla macchina cifrante - Chosen ciphertext: Eva ha temporaneamente accesso alla macchina decifratrice Principio di Kerckoffs (1883): La sicurezza di un sistema crittografico non può essere basata sulla segretezza dell’algoritmo adottato, viceversa; essa si basa sulla sicurezza della chiave. Questo perché l'algoritmo può essere trapelato, quindi è importante che la sicurezza si basi sulla chiave. Regole di Kerckoffs: - Un sistema crittografico deve essere materialmente, se non matematicamente, indecifrabile (cifrario perfetto) - Il sistema non deve esigere la segretezza, e deve poter cadere in mani estranee senza inconvenienti. - Deve essere possibile scambiare e memorizzare la chiave senza bisogno di note scritte, ed essa deve poter essere cambiata o modificata a piacere dagli utenti - Il sistema deve essere applicabile alla corrispondenza telegrafica - Il sistema deve essere portatile e il suo utilizzo o il suo funzionamento non devono richiedere l’impiego di un gran numero di persone. - Date le circostanze nelle quali verrà presumibilmente utilizzato, il sistema non deve richiedere la conoscenza di una lunga serie di regole, né essere di difficile applicazione. Crittografia simmetrica Crittografia che risponde alla necessità di tramutare un testo in chiaro in modo confidenziale, e utilizza la stessa chiave per la codifica e la decodifica. Si presuppone che i due soggetti in comunicazione abbiano già la chiave tramite altri canali. Esempi: DES e AES. Crittografia asimmetrica Si basa sul fatto che alice e bob scelgono pubblicamente lo stesso colore, decidono un colore segreto e lo mischiano con quello pubblico. Alice e bob si scambiano le loro due miscele (quindi adesso bob ha la miscela di alice e viceversa). Ognuno di loro aggiunge nuovamente il loro colore segreto, e il risultato è che avranno raggiunto entrambi lo stesso colore segreto. Questo perché in ogni miscela è stato aggiunto sia il colore di bob che di alice, ma che gli altri non sanno qual’è. Si assume che dalla miscela e dal colore pubblico, non sia possibile risalire al colore segreto se non con un attacco brute force.

Un altro meccanismo è quello secondo cui alice che vuole mandare un messaggio chiude la valigia con il suo lucchetto e la manda a bob, bob mette il suo lucchetto e la manda ad alice, alice toglie il suo lucchetto e la rimanda a bob che finalmente può togliere il suo lucchetto e leggere il messaggio. Questo presuppone però che le operazioni possono essere fatte in qualsiasi ordine e non sono concentriche (come ad esempio se ci fossero casseforti invece dei lucchetti.

Alcuni esempi sono: RSA, El general, curve Ellittiche La chiave pubblica viene calcolata a partire dalla chiave privata, in modo a che il calcolo inverso non sia fattibile computazionalmente in tempo ragionevole. Nella firma digitale invece viene invertito il ruolo della chiave pubblica e privata, perché è importante l’autenticità e non la confidenzialità. Gli algoritmi a chiave asimmetrica: - richiedono tipicamente un onere computazionale maggiore degli algoritmi simmetrici - non sono usati per la cifratura di grandi quantità di dati - si utilizzano per le firme digitali e l’invio di chiavi per il successivo utilizzo in algoritmi a chiave simmetrica. Trapdoor:è l’elemento basilare della crittografia asimmetrica, in cui chiunque può calcolare la funzione diretta, e solo chi conosce un segreto può calcolare la funzione inversa. Oneway:è una famiglia di funzioni importanti in crittografia, chiunque può calcolare la funzione diretta e nessuno può calcolare la funzione inversa. Esempio la funzione hash. Stream ciphers: i dati sono divisi in frammenti, composti da un singolo bit, byte o carattere, ed elaborati uno alla volta. Block ciphers: i bit in ingresso sono raccolti in un blocco ed elaborati tutti insieme dall’algoritmo fornendo un blocco di bit in uscita. I cifrari simmetrici possono essere sia a flusso che a blocco, i cifrari asimmetrici sono cifrari a blocco. La crittografia risponde al paradigma della sicurezza computazionale. Con essa si intende che, senza la conoscenza del segreto (chiave) la decifratura richiede uno sforzo computazionale (work factor) che supera le capacità dell’attaccante. Si parla di provable security quando si può dimostrare che decifrare in assenza del segreto equivale a risolvere un particolare problema matematico privatamente difficile. Tale approccio si contrappone alla unconditional security (o information-theoretic security) che basa la sicurezza su argomenti statistici, senza fare alcune ipotesi sulle capacità computazionali dell’attaccante. Per stimare il livello di computational security supponiamo che l’attaccante scelga il miglior algoritmo di attacco possibile. Il numero di operazioni binarie richieste in media dall’algoritmo per terminare con successo si definisce work factor, ed è direttamente proporzionale al tempo di attacco. Il livello di sicurezza è definito come il minimo work factor per un attaccante. L’algoritmo di attacco più ovvio e sempre praticabile consiste nel tentare di scoprire il segreto enumerando tutte le possibilità: attacco di forza bruta. Tuttavia l’attacco a forza bruta fornisce solo un limite superiore al livello di sicurezza, perché spesso esistono algoritmi di attacco più efficienti. Ad esempio il paradosso del compleanno stabilisce che con un numero di tentativi pari alla radice del numero di possibilità, la probabilità di trovare la chiave corretta è più della metà. Il fatto che un algoritmo sia sicuro oggi non comporta necessariamente che lo sarà anche in futuro. Si deve sempre tener conto: - delle debolezze causate da implementazioni scadenti - dei progressi tecnologici (aumento delle capacità di calcolo) La continua ricerca nell’ambito del quantum computing modificherà radicalmente le basi dei futuri algoritmi crittografici. Ad esempio, il cifrario asimmetrico RSA, basato sulla fattorizzazione di numeri interi molto grandi ed oggi molto usato, è suscettibile ad attacchi basati su computer quantistici. Matematicamente è possibile aumentare la sicurezza incrementando (anche di poco) la lunghezza della chiave, ma in pratica ciò non è sempre possibile. Il progetto di un buon crittosistema deve basarsi su considerazioni sia matematiche che ingegneristiche. I requisiti di un sistema crittografico sono:

- Riservatezza (confidenzialità): solo il ricevitore autorizzato deve essere in grado di decifrare il messaggio. - Autenticazione: il ricevitore deve essere certo dell’origine del messaggio, l’identità di chi lo ha inviato deve essere certificata. - Integrità: il messaggio non deve essere stato in alcun modo modificato durante la trasmissione. - Non ripudiabilità: né il mittente né il destinatario possono negare di avere, rispettivamente inviato e ricevuto il messaggio.

Crittosistemi classici Convenzioni: il testo in chiaro viene scritto in lettere minuscole, il testo cifrato in lettere maiuscole, ad ogni lettera dell’alfabeto viene assegnato un numero e gli spazi e la punteggiatura sono omessi. Cifrari a trasposizione: La scitala: è un esempio di cifrario a trasposizione in cui le lettere del messaggio vengono trascritte per colonne anziché per righe. In generale, una cifratura a trasposizione è un anagramma del testo in chiaro. Il numero di anagrammi concepibili diventa rapidamente molto elevato. Es.: 30 lettere->30! anagrammi diversi. La trasposizione non può che avvenire secondo un criterio prefissato e questo rende il sistema vulnerabile, anche per l’inconveniente, che spesso comporta, di richiedere una chiave materiale. Cifrari a scorrimento: Cifrario di cesare: ogni lettera viene fatta scorrere in avanti di un numero segreto di posizioni. Si sceglie come chiave un intero k:0≤k≤25. L’operazione di cifratura è data da x->x+k(mod 26), e la decifratura è data da x->x-k (mod 26) Attacchi al cifrario a scorrimento: Solo testo cifrato: strategia migliore, ricerca esaustiva (solo 26 chiavi possibili). Se il messaggio non si riduce a poche lettere, è improbabile che ci sia più di un messaggio di senso compiuto che possa essere il testo in chiaro. Se il messaggio è sufficientemente largo, un altro possibile attacco consiste nel contare la frequenza delle varie lettere (ad esempio, la lettera e è la più frequente nella maggioranza dei testi inglesi, quindi se nel testo cifrato risulta essere la l, si ricava che k=7). Testo in chiaro noto: se si conosce una lettera del testo in chiaro e la corrispondente lettera del testo cifrato, si può dedurre immediatamente la chiave. Testo in chiaro scelto: se si sceglie la lettera a come testo in chiaro, allora il testo cifrato fornisce la chiave. Cifrario affine: Scelti due interi segreti come a e b, con mcd (a,26)=1, si considera la funzione di cifratura: x->ax+b (mod 26). Per decifrare basta invertire la funzione. La chiave, per questo metodo di cifratura, è la coppia (a,b). ci sono 12 scelte possibili per a:mcd(a,26)=1. ci sono 26 possibili scelte per b. In totale il numero delle chiavi è 12*26=312. Attacchi al cifrario affine: Solo testo cifrato: ricerca esaustiva (il numero di chiavi è aumentato, ma resta basso). Se il messaggio non si riduce a poche lettere, è improbabile che ci sia più di un messaggio di senso compiuto che possa essere il testo in chiaro. Se il messaggio è sufficientemente lungo un altro possibile attacco consiste nel contare la frequenza delle varie lettere. Testo in chiaro noto: La conoscenza di due lettere del testo in chiaro e delle corrispondenti lettere del testo cifrato può essere sufficiente a recuperare la chiave.

Testo in chiaro scelto: scelto ab come testo in chiaro, il primo carattere del testo cifrato sarà a*0 + b=b; il secondo sarà a+b, quindi la chiave è immediatamente ricavabile. Cifrario di Vigenère: Si sceglie la lunghezza della chiave, si sceglie un vettore di questa lunghezza le cui componenti sono interi compresi tra 0 e 25. Spesso la chiave corrisponde a una parola facile da ricordare. La sicurezza del sistema dipende dal fatto che non sono note né la parole chiave né la sua lunghezza. Il vettore di numeri si ripete continuamente e rappresenta per ogni carattere lo scostamento nell’alfabeto. La cifratura continua a funzionare comunque lettera per lettera. Attacchi al cifrario di vigenère: Testo in chiaro noto: ha successo se è noto un numero sufficiente di caratteri. La chiave si ottiene semplicemente sottraendo il testo in chiaro al testo cifrato modulo 26. Testo in chiaro scelto: usando il testo in chiaro aaaaa.. si ottiene immediatamente la chiave. Testo cifrato scelto: usando il testo cifrato AAAAA… si ottiene l’opposto della chiave. Solo testo cifrato: per molto tempo si è ritenuto che il sistema fosse sicuro rispetto ad attacchi di questo tipo. In realtà non è così. La crittanalisi sfrutta il fatto che, nella maggior parte dei testi le frequenze non sono uguali. Ma non può basarsi solo sull’analisi delle frequenze. Il carattere polialfabetico del cifrario fa si che la singola lettera possa essere cifrata in modo diverso. Parimenti, le occorrenze della stessa lettera in un testo cifrato possono derivare da lettere in chiaro diverse. Tuttavia, ciascuna lettera del testo in chiaro è ancora in relazione biunivoca con una sola lettera del testo cifrato. Inoltre, lettere che corrispondono allo stesso elemento della chiave sono cifrate come nel cifrario di cesare. La lunghezza della chiave del cifrario di vigenère è tuttavia segreta. La chiave sarà comunque mnemonica, quindi di lunghezza limitata e può comunque essere scoperta per tentativi. Oppure si può applicare una procedura che sfrutta l’autocorrelazione della distribuzione di probabilità delle lettere: 1. Si scrive una copia del testo cifrato su una striscia di carta ed una seconda copia su una seconda striscia di carta. 2. Si colloca una striscia sotto l’altra, ma spostata di una posizione. 3. Si conta quante volte una lettera sulla prima striscia corrisponde a quella sulla seconda striscia. 4. Si ripete la procedura spostando la seconda striscia di 2,3,4.. posizioni. Lo spostamento che produce maggior numero di corrispondenze è la migliore ipotesi della lunghezza della chiave. Cifrari a matrice Cifrario playfair Playfair fu inventato nel 1854 da Wheatstone. La chiave è una parola. Le lettere ripetute sono eliminate e le lettere rimanenti sono usate come inizio di una matrice 5x5. Gli spazi restanti della matrice sono riempiti con le rimanenti lettere dell’alfabeto, trattando i e j come una sola lettera (perché comunque facilmente distinguibili nel testo). Per cifrare si rimuovono gli spazi e si divide il testo in gruppi di due lettere. Se c’è una lettera doppia che appare come dei gruppi, si inserisce una x tra le doppie e si aggiunge una x alla fine per completare il gruppo. Si usa la matrice per cifrare ogni blocco di due lettere secondo regole prestabilite: - Se le due lettere non sono sulla stessa riga o sulla stessa colonna, si sostituisce ogni lettera con la lettera che si trova sulla medesima riga e sulla colonna dell’altra lettera. - Se le due lettere sono sulla stessa riga si sostituisce ogni lettera con la lettera immediatamente alla sua destra, con chiusura ciclica.

- Se le due lettere sono sulla stessa colonna, si sostituisce ogni lettera con la lettera immediatamente sottostante, con chiusura ciclica. Per la decifratura, basta invertire la procedura. Attacchi Il sistema soccombe a un attacco basato sull’analisi delle frequenze, poiché le frequenze dei diagrammi sono tabulate. Basta cercare i diagrammi cifrati più comuni (es. th, he, an). Un’altra debolezza è che ogni lettera del testo in chiaro ha solo 5 possibili lettere corrispondenti nel testo cifrato. A meno che la parola chiave non sia lunga, le ultime righe della matrice sono prevedibili. In conclusione, il sistema è violabile con un attacco di solo testo cifrato. Cifrario ADFGX Anch’esso dispone le lettere dell’alfabeto in una matrice 5x5 in un qualche ordine, trattando le lettere i e j come se fossero una sola. Righe e colonne della matrice si etichettano con le lettere ADFGX, perché il loro simboli nel codice morse sono difficili da confondere. Questo permetteva di minimizzare gli errori di trasmissione e rappresenta uno dei primi tentativi di mettere in insieme la correzione degli errori e la crittografia. Ogni lettera del testo in chiaro viene sostituita con le due lettere che compongono l’etichetta della sua riga e della sua colonna. Si sceglie una parola chiave e si etichettano le colonne di una matrice mediante le lettere della parola chiave e si mette il testo sostituito in questa nuova matrice scrivendola, sequenzialmente, per righe. Si riordinano le colonne in modo che le corrispondenti etichette risultano ordinate alfabeticamente. Il testo cifrato si ottiene leggendo ciascuna colonna dall’alto verso il basso, in un ordine prestabilito, ad esempio da sinistra a destra. Per la decifratura si percorrono i passi a ritroso. Attacchi Il sistema combina una sostituzione con una permutazione, entrambe segrete, e questo complica la crittanalisi. L’analisi delle frequenze non può essere applicata direttamente, per via della permutazione segreta che separa ciascun diagramma del testo cifrato corrispondente ad una lettera del testo in chiaro. Tuttavia il numero di possibili trasformazioni di ciascuna lettera del testo in chiaro non è molto elevato, perciò si possono esplorare tutte le combinazioni possibili nell’applicare l’analisi delle frequenze. Il sistema fu attaccato con successo da Georges Painvin e dal Bureau du Chiffre che furono in grado di decifrare molti messaggi. Successivamente, il cifrario ADFGX fu sostituito dal cifrario ADFGVX che usava una matrice iniziale 6x6. Per riempire la matrice iniziale furono usate tutte le 26 lettere e le 10 cifre. Lesson learned Dallo studio dei precedenti crittosistemi classici impariamo che: - La mappatura biunivoca di ciascun simbolo del testo in chiaro in un (solo) simbolo del testo cifrato espone ad attacchi basati su analisi delle frequenze. - Per evitare l’analisi delle frequenze (e attacchi statistici in generale) ciascun simbolo del testo cifrato deve dipendere da molti simboli del testo in chiaro. La sola sostituzione dei simboli non basta a garantire sicurezza, meglio combinarla con la loro permutazione. Cifrari a blocchi Cifrano simultaneamente blocchi di più lettere o simboli. Il cifrario di Playfair parte da blocchi di due lettere e li cifra in blocchi di due lettere, che sono troppo piccoli per essere sicuri, poiché ad esempio, un’analisi delle frequenze di solito ha successo. Servono blocchi più lunghi per rendere i sistemi immuni contro attacchi statistici come l’analisi delle frequenze:

DES usa blocchi di 64 bit, AES usa blocchi di 128 bit, RSA usa blocchi di varie centinaia di bit. Cifrario di Hill Inventato da Lester Hill nel 1929, poco usato in pratica ed è il primo esempio di utilizzo nella crittografia di metodi algebrici. Per cifrare si utilizzano i seguenti passi: 1. Si sceglie una matrice M di dimensione nxn, a coefficienti interi (mod 26). Tale matrice ha il significato di chiave segreta per l’algoritmo e deve essere invertibile (quindi mcd(det(M),26)=1). 2. Si spezza il testo in chiaro in blocchi di n caratteri ciascuno. 3. Si trasforma ogni blocco in un vettore di n interi compresi tra 0 e 25, usando la corrispondenza a=0, b=1,..,z=25. 4. Si moltiplica ogni vettore per M (mod 26) ottenendo la versione cifrata. Per la decifratura, dal momento che mcd(det(M),26)=1, esiste una matrice N a coefficienti interi tale che M*N = I (mod 26), dove I è la matrice identità di dimensione nxn. Quindi la matrice N è l’inversa della matrice M (mod 26). La decifratura è identica alla cifratura, ma al posto della matrice M usa la sua inversa N. Attacchi Analisi delle frequenze in generale poco efficace, tranne che per n piccoli. Le frequenze dei diagrammi e dei trigrammi sono note (per le lingue più importanti). Oltre, il numero delle combinazioni diventa troppo grande. Inoltre le frequenze delle combinazioni sono così basse che risulta difficile ottenere dei dati significativi se non si ha a disposizione molto testo. L’attacco più pericoloso è quello di testo in chiaro noto. Se non si conosce n basta procedere per tentativi fino a quando non si trova il valore giusto, quindi si suppone n noto all’attaccante. Se si hanno n blocchi di testo in chiaro di lunghezza n e il corrispondente testo cifrato si può ottenere un’equazione matriciale da cui è possibile ricavare M (o N). Un attacco di testo in chiaro scelto sfrutta la stessa strategia ma è anche più veloce. Un attacco di testo cifrato scelto usa la stessa strategia ma le scelte rappresentano il testo cifrato. Il risultante testo in chiaro fornisce allora le righe della matrice inversa N. Proprietà di diffusione Un buon crittosistema dovrebbe avere questa proprietà per impedire un'analisi statistica [Shannon]. Si ha una diffusione quando cambiando un carattere del testo in chiaro si cambiano molti caratteri del testo cifrato e, analogamente, cambiando un carattere del testo cifrato, si cambiano molti caratteri del testo in chiaro. Il cifrario di Hill possiede la proprietà di diffusione. Le statistiche delle lettere, dei diagrammi, dei trigrammi e così via sono diffuse su molti caratteri nel testo cifrato e quindi è necessario avere molto più testo cifrato per poter attuare un attacco statistico significativo. Proprietà di confusione Si ha confusione quando la chiave non è legata al testo cifrato in modo semplice. In particolare, ogni carattere del testo cifrato dipende da più parti della chiave. Il cifrario di Hill presenta, in parte, questa proprietà: se l’attaccante possiede un testo cifrato di l...


Similar Free PDFs