Apr 4 2005

Comunicazioni Protette


by tonycrypt

Internet è un mezzo decisamente insicuro per comunicare. Tutti i dati che partono dalla vostra tastiera e giungono sino ad un computer situato a molte migliaia di chilometri di distanza percorrono una grande quantità di cavi e mezzi fisici diversi e vengono trattati da un notevole numero di computer. Chiunque abbia accesso ad essi potrebbe teoricamente spiare le vostre comunicazioni; sebbene ovviamente la sicurezza sia relativamente garantita dalla enorme quantità di dati, per cui cercare i blocchi di dati contenenti un’informazione particolare sarebbe come cercare un ago in un pagliaio, una persona intenzionata a spiare proprio voi, e tale da conoscere l’indirizzo del vostro computer e da avere accesso ad uno di questi sistemi, potrebbe intercettare facilmente tutti i messaggi spediti dal vostro computer che attraversino il sistema su cui è in ascolto. Ovviamente, il punto migliore per intercettare le vostre comunicazioni è molto vicino a voi, ad esempio sul gateway che collega la vostra rete locale al resto di Internet. D’altra parte, esistono programmi detti sniffer che intercettano tutti i messaggi in transito sulla rete locale e selezionano quelli interessanti, ad esempio in base al mittente o al contenuto. Tanto per fare un esempio, esistono sniffer che riconoscono i messaggi contenenti la stringa di caratteri password. Per complicare ulteriormente le cose, esistono sistemi che si sostituiscono al vostro computer nel dialogo con quello remoto, assumendo il vostro indirizzo (IP spoofing), e mandando dati che sembrano provenire da voi, ma che sono falsificati! Gli amministratori della vostra rete locale o del vostro provider, inoltre, possono facilmente, se disonesti, leggere le vostre informazioni, ad esempio la vostra posta, o combinare guai “a nome vostro”. E si tratta di tecniche molto semplici e diffuse. Utilizzando un programma come quello che ho creato io e che trovate pubblicizzato sul sito, è possibile inviare e-mail falsificando mittente e data di invio. Il punto più debole della catena, quindi, è proprio il tratto di “navigazione costiera” che va tra il vostro computer e il “mare aperto” della rete, attraverso la rete locale a cui vi collegate. Mentre, come vedremo, esistono sistemi crittografici per proteggere efficacemente le vostre comunicazioni a lungo raggio, un amministratore locale disonesto potrebbe essere difficile da fermare! Un ulteriore problema da considerare è quello dell’anonimato o della falsificazione dell’identità dei vostri interlocutori. Nessuno vi permette di sapere che la persona che dialoga con voi è effettivamente colui che pretende di essere, o che un indirizzo che oggi funziona ed esiste continuerà a funzionare ed esistere anche domani. Una persona esperta può facilmente inviarvi E-mail falsificate, o scrivere articoli in un newsgroup sotto falso nome; del resto esistono siti creati proprio allo scopo di fornire recapiti postali anonimi. Anche se l’identità del destinatario dei vostri messaggi è certa, comunque, egli potrebbe non comportarsi correttamente: ad esempio tutte le transazioni commerciali in rete, che si basano sull’invio tramite rete dei codici della propria carta di credito, sono decisamente pericolose, per quanto la loro crescente diffusione indichi che i problemi non si verificano tanto spesso. Infine, qualunque utente della rete Internet può accedere dall’esterno alla vostra rete locale e ai vostri computer. Sebbene egli non possa entrare all’interno di nessun sistema protetto senza conoscere la relativa password, la semplice possibilità di entrare sulla rete potrebbe permettere in qualche modo l’accesso a informazioni riservate. Se voi siete l’amministratore di una rete locale che deve essere connessa a Internet, avete il problema di come garantire che gli utenti esterni non possano andare dove non devono.

Sono stati inventati vari sistemi di crittografia allo scopo di proteggere il contenuto delle comunicazioni e/o di autenticare l’identità del mittente di un messaggio. I sistemi di crittografia si basano sull’uso di una chiave (key) che viene usata dal mittente all’interno di una serie di trasformazioni matematiche effettuate sul corpo del messaggio in chiaro (plaintext), che viene così trasformato in un testo cifrato (ciphertext). Il destinatario, usando una chiave uguale o diversa a seconda dei sistemi, provvede alla decodifica del messaggio cifrato. Un buon sistema di crittografia non deve essere praticamente attaccabile per “forza bruta” (ossia provando tutte le chiavi possibili!). I sistemi di crittografia si dividono in due categorie:

Sistemi a chiave segreta (secret key)

In questi sistemi, il messaggio viene criptato usando una chiave che deve essere nota solo al mittente e al destinatario: difatti la chiave usata per la decodifica deriva da quella usata per la codifica. Un esempio molto semplice di cifratura a chiave segreta si avrebbe se noi, per criptare un messaggio, sostituissimo ogni lettera con quella che la segue nell’alfabeto. Per decrittare il messaggio è necessario usare la stessa chiave all’incontrario (ossia sostituire ogni lettera del messaggio cifrato con quella che la precede). Il problema di un sistema di questo tipo è che il mittente e il destinatario devono scambiarsi la chiave, che ovviamente non può essere acclusa al messaggio, ma deve essere spedita in altro modo.

Sistemi a chiave pubblica

In questi sistemi, ad ogni persona vengono assegnate due chiavi: una chiave pubblica (public key) e una chiave privata (private key), tali che, sebbene la chiave privata sia “capace” di decrittare un messaggio cifrato con la chiave pubblica, non sia possibile ricavare la chiave privata direttamente da quella pubblica (al contrario di quanto avviene nei sistemi a chiave segreta). La chiave pubblica viene messa a disposizione di chiunque, all’interno di un apposito archivio; la propria chiave privata, invece, deve venire gelosamente conservata da ciascuno. Per spedire un messaggio ad un determinato utente, è necessario procurarsi la sua chiave pubblica e criptare il messaggio con essa; il destinatario, e soltanto lui, potrà decrittare il messaggio con la propria chiave privata. In questo modo viene meno il problema della comunicazione della chiave.