MokaByte Numero 23  -  Ottobre 98

  di 
Ludmilla Wolf

 

I firewall e 
la sicurezza 
 

 

 
 Iniziamo una trattazione sulla sicurezza nella trasmissione di dati  parlando di concetti base di encryption







 
Sistemi di sicurezza

L'evoluzione delle computer networks ha portato con se' l'esigenza di proteggere la rete da pericolose intrusioni. Se inizialmente si voleva soltanto condividere i dati e  facilitare gli scambi tra le varie universita' ed i centri di ricerca, con l'avvento delle organizzazioni commerciali, il concetto di sicurezza si e' sempre piu' sentito. Questo ha portato alla creazioni di sistemi di sicurezza di reti comunemente conosciuti come firewall. Questi sistemi sono un insieme di componenti che controllano il flusso di traffico tra delle reti predefinite in modo da prevenire del traffico non autorizzato. Inoltre, offrono servizi un po' piu' sofisticati come la user authentication (discriminazione non solo sul tipo di traffico ma anche sull'identita' dell'altro interlocutore) e meccanismi che permettano transazioni sicure (come per esempio il pagamento con carta di credito). Non basta piu' proteggere la rete interna, bisogna anche poter comunicare avendo la tranquillita' che le proprie transazioni ed informazioni confidenziali non saranno intercettate e che il nostro interlocutore sia davvero colui che dice di essere. Ma come possiamo proteggere un messaggio digitale in modo che solo il destinatario possa leggerlo ed apporgli una firma digitale che ci contraddistingua senza pero' essere riprodotta da altri? La soluzione a questi quesiti ci viene data dalla Crittografia, la quale usa delle formule matematiche per poter codificare dei dati in modo da renderli illegibili se non a chi e' in possesso della corrispettiva chiave di decodifica. 

Codifica e Decodifica

Ci sono due metodi comuni di codifica/decodifica: 

shared key cryptography 

public key cryptography 

Nel primo metodo, la stessa chiave viene usata dai due interlocutori. Ovviamente questo presuppone che ci sia piena fiducia nell'utilizzo della chiave da parte dell'altro. Il suo utilizzo e' molto semplice. Il testo (chiamato in gergo plaintext) viene codificato con la chiave comune in modo da diventare illegibile a chi non ha la chiave (ciphertext) che viene poi utilizzata per decodifice il ciphertext. Il vantaggio di questo metodo e' la velocita', molto superiore rispetto a quella della public key cryptography. Lo svantaggio rispetto all'altro metodo e' invece che e' piu' facile ottenere la chiave. Il sistema shared key piu' conosciuto e' il DES (Data Encryption Standard), ideato da IBM negli anni settanta, si basa su una codifica a blocchi di 64 bit di plaintext con una chiave non superiore a 56 bits. 

Questo permette, insieme a 16 iterazioni di un'elaborata combinazione di riarrangiamenti dei bits, di ottenere miliardi di possibilita' (recentemente pero' si e' trovato il modo di rompere questo algoritmo, VD http://www.eff.org/descracker/). Per rendere piu' sicuro il DES si puo' codificare ogni blocco tre volte usando tre chiavi diverse. Si ha cosi' quello che oggigiorno e' lo standard de-facto, il 3-DES. Purtroppo fuori dagli USA puo' essere usato soltanto per codificare l'header del pacchetto, non i dati [fatta eccezione per banche ed altre aziende di interesse internazionale]. 

Vi sono poi sistemi relativamente nuovi (degli anni novanta) tra cui IDEA, (International Data Encryption Algorithm) che si basa su una chiave a 128 bits e Skipjack, che si basa  su una chiave a 80 bits, e tanti altri. Il secondo metodo, public key cryptography, necessita di due chiavi, una pubblica ed una privata, che sono una l'inversa dell'altra. Ogniqualvolta un testo viene codificato con una chiave, deve poi essere decodificato con l'altra. Questo permette di raggiungere due obiettivi: privacy ed autenticazione. La chiave pubblica puo' essere distribuita a tutti i potenziali clienti. Questi la usano per codificare ad esempio un ordine di acquisto, essendo tranquilli che solo chi ha la chiave privata possa leggerli. Inoltre il cliente puo' essere sicuro che il testo non sia stato manomesso ed esser certo dell'identita' del proprio interlocutore in quanto con la chiave pubblica puo' decodificare la firma digitale che e' stata codificata dalla chiave privata del mittente. 

I sistemi a chiave pubblica piu' usati sono Diffie-Hellman (dai nomi degli inventori di questo metodo congeniato alla Stanford University nel 1976) e RSA (River-Shamir-Adleman). 

Oggi giorno vengono usati entrambi i metodi contemporaneamente in modo da sfruttare i vantaggi di entrambe le metodologie. Un esempio di come si possa fare e' utilizzare la chiave pubblica del nostro interlocutore per codificare la shared key utilizzata per codificare a sua volta il testo. Si invia il tutto al destinatario il quale decodifichera' la shared key con la propria chiave privata per poi usarla per decodificare il testo. In questo modo si evitano i problemi connessi allo scambio della shared key ma si gode il vantaggio di quest'ultima, la velocita'. A questo punto ci si potrebbe porre una domanda. Come facciamo a sapere che una data coppia di chiavi sia univocamente assegnata ad una data azienda? Esistono i certificati (o credenziali) rilasciati da una CA (Certification Authority) i quali contengono i dati anagrafici di un'azienda insieme alla sua chiave pubblica ed alla relativa data di scadenza. Affinche' questi certificati non possano essere manomessi, la CA, una volta accertatasi dell'identita' di chi ha presentato la chiave pubblica, codifica quest'ultima con la propria chiave privata in modo da apporgli una firma digitale, che viene allegata insieme alla chiave pubblica in chiaro. 

Si possono avere anche dei certificati non firmati da un CA chiamati UDH (Unsigned Diffie-Helman). Si basano sugli stessi concetti visti prima con alcune differenze. Gli UDH vengono creati direttamente dalla macchina che li usera' e vengono verificati in via confidenziale tra le parti in causa, in genere al telefono. Ovviamente questo presuppone un'interazione diretta con l'altro interlocutore. 

Vediamo ora come questi concetti vengono attuati da parte dei firewalls. Lo scopo non e' solo il proteggere una rete interna ma anche di far si che la comunicazione fra due parti venga effettuata in tutta tranquillita'. Ma come mantenere la sicurezza di una linea dedicata se si deve passare su Internet? A questo scopo sono nate le VPN (Virtual Private Networks) che sfruttando la crittografia si basano sul data tunneling per comunicare confidenzialmente con la propria controparte, proprio come se si avesse una linea proprietaria. 

I pacchetti dati vengono incapsulati in altri pacchetti che a loro volta vengono codificati. Risulta piu' efficace se si applica all'header IP il tunneling address, in modo che non vi siano in chiaro gli indirizzi del mittente e del destinatario ma quelli dei rispettivi firewall che danno vita al tunnel.  Cosi' si ottiene una comunicazione inintellegibile se non per gli interlocutori autorizzati. Il protocollo di encryption piu' usato per il tunneling su internet e' SKIP (Simple Key Management for Internet Protocols) in quanto e' stato concepito per protocolli datagram come l'IP. SKIP non necessita una comunicazione precedente per stabilire uno scambio di chiavi, in quanto usa delle chiavi packet-oriented e non session-oriented. 

Qualche link

Per maggiori informazioni vi sono molteplici siti sul web come www.crypto.com. Per chi e' interessato un buon punto di partenza che punta a diversi siti e' http://washingtonpost.com/wp-srv/politics/special/encryption/links.htm


 
 
 
 
 
 
 
 


MokaByte Web  1998 - www.mokabyte.it 
MokaByte ricerca nuovi collaboratori. Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it