Utente:Domenico De Felice/Sicurezza su reti

lavori in corso


Per favore, non linkate questa pagina né copiate testo da qui. Il lavoro è ancora in corso

Mentre la crittografia classica si è sempre solo limitata allo studio della sicurezza delle comunicazioni, la crittografia moderna tende a studiare tutte le possibili minacce a cui va in contro un gruppo di entità che comunicano tra di loro quando queste non si fidano l'un dell'altra o temono minacce esterne.

Gli approcci seguiti per la realizzazione dei sistemi di cifratura sono due: l'approccio euristico e l'approccio rigoroso. Seguendo l'approccio euristico, il sistema di crittografia dopo la realizzazione viene analizzato e le falle scoperte vengono corrette, dopodiché viene nuovamente analizzato. Questo processo procede indefinitamente e, quando l'analisi del sistema non porta alla scoperta di nuove falle, non si può sapere se ciò è dovuto alla reale mancanza di esse o semplicemente dal fatto di aver ignorato qualche aspetto del sistema. Questo è un grave problema sofferto dai sistemi realizzati euristicamente, che, come nel caso del protocollo di Needham-Schroeder, possono rimanere ritenuti sicuri a lungo prima di trovare falle precedentemente non scoperte. L'approccio rigoroso cerca di evitare questo problema realizzando un sistema di crittografia in maniera formale, cioè, basando la sicurezza del sistema su rigorose dimostrazioni matematiche. Questi sistemi vengono infatti anche chiamati a sicurezza dimostrabile. L'attuale stato di conoscenza della materia però non permette la formulazione di dimostrazioni totalmente rigorose ed anche queste finiscono per dover far ricorso ad assunzioni, come nel caso dell'approccio euristico. Lo scopo è quindi quello di ridurre le assunzioni al minimo. Questo viene fatto riducendo le dimostrazioni a quelle di problemi ben noti che, per assunzione, si ritiene siano difficili. Ciò permette di dimostrare la correttezza di sistemi anche molto complessi partendo da dimostrazioni più semplici. Prima di poter realizzare sistemi la cui sicurezza non si basi su alcuna assunzione, bisognerà aspettare che problemi ancora aperti, come il famoso problema "P=NP?", trovino una risposta. Fino ad allora la pratica richiederà comunque di basarsi su assunzioni euristiche, per quanto piccole esse siano.

Come primo passo per poter realizzare un sistema con sicurezza dimostrabile, dobbiamo definire rigorosamente cosa intendiamo per sicurezza. I fattori principali che determinano se un sistema è sicuro o meno sono due: la potenza dell'avversario e la rottura del sistema. Con la potenza dell'avversario ipotizziamo la potenza di calcolo e le informazioni in possesso del nostro avversario. Per informazioni in possesso del nostro avversario intendiamo per esempio la sua capacità di origliare la nostra conversazione cifrata o magari la possibilità di cifrare un qualunque testo in chiaro a sua scelta. Per rottura del sistema invece intendiamo cosa deve essere fatto dall'avversario per avere successo nel suo attacco al sistema. Definiamo quindi un sistema matematicamente sicuro se un avversario dotato della potenza supposta non riesce ad avere successo nel suo attacco, se non con una bassissima probabilità. Da questa definizione si evince quanto i fattori visti siano critici. Ipotizzando una potenza dell'avversario minore della sua effettiva potenza si rischia di definire sicuro un sistema che in realtà non lo è. Allo stesso modo anche la rottura del sistema deve essere definita accuratamente.

Il cifrario di Cesare funziona ruotando le lettere del testo in chiaro di tre posizioni. Per esempio, il testo in chiaro "Cesare" viene cifrato in "Fhvduh". La sicurezza di questo sistema risiede tutta nell'algoritmo. Scoperto l'algoritmo, il sistema viene rotto. Questo ci porta alla formulazione di uno dei principi più importanti della crittografia moderna, il principio di Kerckhoff, secondo il quale la sicurezza del sistema non dovrebbe risiedere nel suo algoritmo ma solamente nella sua chiave. Seguendo questo principio, gli algoritmi di cifratura e decifratura possono essere resi pubblici, l'importante è che la chiave rimanga segreta. Questo porta a numerosi vantaggi: rendendo pubblici gli algoritmi questi tendono a divenire degli standard e passando al vaglio degli esperti ne vengono trovate e corrette le falle. Inoltre non sussiste il problema del reverse engineering come invece accade per i cosiddetti sistemi basati sulla security by obscurity, approccio che basa la sicurezza di un sistema sulla segretezza dei suoi algoritmi.

Il cifrario a spostamento è un sistema basato sul cifrario di Cesare ma che segue il principio di Kerckhoff. In questo cifrario, le lettere non vengono ruotate sempre di tre posizioni, ma di k posizioni, dove k rappresenta quindi la chiave del cifrario e può assumere valore compreso fra 1 e 25. Il cifrario di Cesare è quindi equivalente al cifrario di spostamento con chiave k=3. In questo caso la chiave non si trova più nell'algoritmo ma, come si può notare, potendo assumere solo 25 valori è soggetta ad un cossiddetto attacco di forza bruta: il sistema si può decifrare facilmente effettuando una ricerca esaustiva sullo spazio della chiave, cioè provando ad uno ad uno tutti i possibili valori che la chiave può assumere. Questo ci porta a formulare un altro principio fondamentale della crittografia: per essere sicuro un sistema deve avere uno spazio della chiave sufficientemente grande da renderla non vulnerabile ad un attacco di ricerca esaustiva.

Il cifrario a sostituzione mono alfabetica aumenta la dimensione dello spazio della chiave associando ad ogni lettera dell'alfabeto un'altra lettera o, in altre parole, associando all'alfabeto in chiaro una permutazione dell'alfabeto stesso; questa permutazione rappresenta la chiave del sistema. Lo spazio della chiave diviene quindi 26! (ventisei fattoriale), numero sufficientemente grande da garantire un margine di sicurezza. Nonostante questo però, anche questo cifrario è facilmente aggirabile. Il problema è dovuto al fatto che ad ogni lettera in chiaro viene associata sempre la stessa lettera cifrata, la corrispondente nell'alfabeto permutato. Avendo quindi a disposizione una statistica delle lettere che compaiono più spesso nella lingua del messaggio in chiaro ed associando alle lettere più frequenti della statistica le lettere più frequenti del messaggio cifrato, è possibile risalire al messaggio in chiaro.