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:, ossia quelli che un computer Unix spedisce al terminale dell'utente
per chiedergli la password, e provvedono a intercettare la risposta dell'utente,
permettendo così il furto della password. Gli amministratori della
vostra rete locale o del vostro provider, inoltre, potrebbero facilmente,
se disonesti, trovare il modo di leggere le vostre informazioni, ad esempio
la vostra posta. (Voi potreste facilitarli ulteriormente, ad esempio non
modificando la password che vi hanno fornito.)
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 falsificati, 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 relativamente
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.
Quali sistemi esistono per proteggere
le mie comunicazioni?
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:
1.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.
2.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; tuttavia è necessario
disporre di archivi pubblici affidabili (ossia che garantiscano l'autenticità
della chiave pubblica).
Un programma usato in molte
reti locali è Kerberos: esso è basato su un sistema
a chiavi segrete detto DES (Data Encryption System). Kerberos deve
venire installato dal gestore della rete, e provvede, tramite un archivio
riservato di chiavi segrete, ad autenticare l'identità di chiunque
usi la rete. Ad esempio, se una persona vuole accedere tramite la rete
ad un proprio account, egli deve fornire la propria chiave segreta, che
viene confrontata con quella conservata nell'archivio.
Il più noto sistema
a chiave pubblica è invece RSA (Rivest-Shamir-Adleman), originariamente
sviluppato dal governo degli Stati Uniti. Su di esso è sostanzialmente
basato un programma denominato PGP (Pretty Good Privacy), che è
attualmente il più usato mezzo di autenticazione per comunicazioni
E-mail su Internet. Tramite questo programma è possibile non solo
criptare un intero messaggio, ma anche accludere ad un messaggio "in chiaro"
una firma digitale (digital signature), ricavata dalla propria chiave privata,
tramite la quale chi riceve il messaggio può verificare l'autenticità
o meno dello stesso.
Non bisogna pensare che la
crittografia sia un mezzo per nascondere messaggi particolarmente riservati;
si tratta semplicemente dell'equivalente elettronico di inserire il messaggio
in una busta, per evitare che il postino e qualsiasi impiegato dell'ufficio
postale possano facilmente leggere la vostra comunicazione. Per questo
motivo, l'uso di PGP è caldamente consigliato: si tratta semplicemente
di difendere la propria privacy. Bisogna anche sapere che l'autore del
programma è stato processato negli Stati Uniti per aver reso disponibile
al mondo questo tipo di crittografia, che è il più avanzato
esistente e, negli Stati Uniti, è considerato di grande importanza
militare; tanto è vero che a tutt'oggi è illegale, per un
utente europeo, prelevare il programma da un sito americano, e viceversa,
in quanto si compirebbe un reato di esportazione illegale di segreti militari.
Sempre per i suddetti problemi legali, gli utenti non statunitensi possono
utilizzare legalmente solo le versioni con un numero che termina per i
(international).
 |
Manuale
Pgp in Italiano
di C. Fornaro - A. Lioy
Politecnico di Torino |
Che cos'è un firewall?
Un firewall (letteralmente,
muro di fuoco) è un computer o un insieme di computer posto sul
"confine" telematico (ad esempio sul gateway) tra una rete locale, o una
sua parte "protetta", e il resto del mondo, in modo che tutti i messaggi
da e per un qualsiasi computer situato nella zona protetta siano costretti
a passare attraverso il firewall. Ovviamente, su questi computer vengono
eseguiti particolari programmi che esaminano tutti i messaggi in transito
e decidono se lasciarli passare o fermarli; tipicamente, vengono lasciati
entrare nella zona protetta soltanto i messaggi provenienti da persone
o computer autorizzati o riconosciuti ad esempio tramite una password.
In questo modo, è possibile proteggere i computer situati nella
zona protetta, creando attorno ad essi una "barriera telematica" che fermi
i tentativi di intrusione non autorizzati.
Al giorno d'oggi sono disponibili
sistemi di firewall molto efficienti e sicuri. Tuttavia, non va mai dimenticata
una cosa: nessun sistema di sicurezza riuscirà mai a resistere alle
debolezze umane. Se un utente autorizzato permette che qualcuno veda la
sua password, il firewall è perfettamente inutile!
Cos'è un virus? Il mio computer
può prendere un virus dalla rete?
Molti utenti di computer,
specialmente quelli meno esperti, nutrono una grande paura verso i cosiddetti
virus informatici, dovuta anche al diffondersi di leggende varie. In realtà,
se si prendono le opportune precauzioni il rischio di infettarsi è
prossimo allo zero; inoltre, i virus non sono così diffusi come
si pensa, anche se qualunque utente che scambi programmi con l'esterno
è destinato prima o poi a subire un attacco.
Per prima cosa, è
opportuno chiarire con esattezza cosa è un virus: esso è
semplicemente un programma o parte di programma che riesce in vario modo
a replicare se stesso e a scriversi sull'hard disk, e quindi a compiere
un certo numero di operazioni più o meno dannose (si va dalla semplice
apparizione di messaggi alla cancellazione dell'hard disk). Esso non è
un'entità invisibile e soprannaturale, e non nasce da solo: ci sono
persone che, per divertirsi (e/o, come sostengono i maligni, per far vendere
gli antivirus), scrivono questo tipo di programmi. Le strategie tramite
i quali i virus si diffondono sono sostanzialmente due (anzi, direi sono
soltanto due, tuttavia il mondo dei virus è in continua evoluzione
e non si possono escludere sorprese; comunque, praticamente la totalità
dei virus utilizza le seguenti strategie):
1.Il virus modifica o sostituisce
un programma eseguibile o una sua parte (su PC, i file identificati dalle
estensioni .exe, .com, .ovl, .dll) in modo che, quando questo programma
viene eseguito, il virus venga eseguito e caricato in memoria; 2.Il virus
modifica il boot sector di un dischetto e/o dell'hard disk (il boot sector
è il primo settore del disco, e contiene un piccolo programma che
viene eseguito quando si avvia il sistema da quel disco) in modo che, quando
si avvia il sistema da quell'unità, il virus venga eseguito e caricato
in memoria.
Una volta in memoria, il
virus provvede solitamente a modificare altri file eseguibili (se del primo
tipo) o i boot sector di tutti i dischetti che vengono inseriti nel drive
(se del secondo), in modo da diffondersi. Tuttavia, in corrispondenza dei
due tipi di virus esistono solo due modi in cui un virus può entrare
nel vostro sistema:
1 - Eseguendo un programma
eseguibile che è stato in precedenza infettato;
2 - Avviando il sistema
da un dischetto che è stato in precedenza infettato.
Quindi non è sufficiente
inserire nel drive un disco infetto o guardarne la directory per prendersi
il virus, ma è invece necessario eseguire un programma contenuto
sul disco che sia stato infettato oppure avviare il computer da quel dischetto
(a seconda del tipo del virus). La seconda opzione è un po' più
frequente di quanto si potrebbe pensare, in quanto molti computer, all'avvio,
provano per prima cosa ad avviare il sistema da disco, e soltanto dopo
passano all'hard disk. Pertanto, se lasciate nel drive un dischetto infetto
e poi resettate il sistema, il computer legge ed esegue il programma contenuto
nel suo boot sector e - anche se magari il computer restituisce un messaggio
del tipo "Dischetto non di sistema" oppure passa all'avviamento da hard
disk - il virus, se del secondo tipo, viene eseguito e caricato in memoria.
Un virus non può trasmettersi
tramite file di tipo non eseguibile, come testi, messaggi di posta elettronica,
immagini... L'unico tipo di file che può trasmettere un virus è
un file contenente un programma o una parte di codice che viene eseguita.
In realtà, alcuni virus particolarmente intelligenti si inseriscono
in luoghi dove una parte di codice viene eseguita senza che l'utente ne
sia cosciente. Ad esempio, esistono particolari documenti di Word per Windows
(.doc) che contengono al loro interno delle macro "distruttive", che se
eseguite provocano danni all'hard disk ("danni" nel senso di cancellazione:
ricordate che un programma software non può mai, in nessun caso,
danneggiare il vostro hardware, a meno che non si tratti di programmi molto
particolari, come quelli per l'aggiornamento del BIOS). Bisogna anche stare
attenti alle fregature: se ad esempio vi capiterà (e vi capiterà,
prima o poi) di venire informati dell'esistenza di un certo Good Times
Virus che si diffonde tramite E-mail, prima fatevi una bella risata e poi
leggete il paragrafo sulle leggende della rete.
Ora dovrebbe essere chiaro
quali sono i modi di prendere un virus tramite Internet. Certamente non
potete prendere un virus leggendo un ipertesto, guardando un'immagine,
ricevendo un messaggio di posta elettronica, e neanche copiando sul vostro
hard disk un file - eseguibile o meno. Potete venire infettati solo eseguendo
un programma prelevato dalla rete e precedentemente infettato, allo stesso
modo con cui potete venire infettati eseguendo un programma fornitovi da
un vostro amico o avviando il sistema da un dischetto non vostro (casi
molto più probabili).
Come proteggersi:
1 - Procuratevi ad
intervalli regolari un programma antivirus aggiornato.
2 - Quando ricevete
un dischetto da qualcun altro (anche il vostro migliore amico) controllatelo
con l'antivirus.
3 - Quando prelevate
un programma eseguibile dalla rete controllatelo con l'antivirus.
Che cosa sono SSL e HTTPS?
SSL (Secure Sockets Layer)
è un insieme di protocolli sviluppato dalla Netscape per proteggere
le comunicazioni tra browser e siti WWW, criptando i messaggi in entrambe
le direzioni. Esso è particolarmente utile per il commercio elettronico,
che richiede la trasmissione senza pericoli di dati personali e numeri
di carta di credito. Tale insieme di protocolli, inoltre, garantisce un
ulteriore controllo sull'integrità dei dati, e inoltre dispone di
tecniche per l'autenticazione del sito remoto (ossia, per controllare che
il sito che sta dialogando con l'utente sia proprio quello desiderato,
e non un impostore che si spaccia per esso).
A livello tecnico, i protocolli
di SSL si inseriscono tra l'HTTP (il protocollo di trasmissione degli iperoggetti)
e il TCP (il protocollo che cura la trasmissione vera e propria dei dati);
l'insieme dell'HTTP e dell'SSL è denominato HTTPS, e il suo uso
è individuato da URL aventi come metodo https. Ad esempio, l'indirizzo
https://home.netscape.com/
indica una connessione HTTP
al sito home.netscape.com effettuata criptando le comunicazioni secondo
quanto stabilito dall'SSL. Solitamente, l'utente non inserisce direttamente
un indirizzo di questo tipo, ma esso è richiamato a partire da un'altra
pagina o da un modulo. Inoltre, per poter effettuare una connessione di
questo tipo anche il server del sito deve essere opportunamente attrezzato.
Che cos'è SSH?
SSH (Secure Shell) è
un sistema di collegamento remoto, analogo a TELNET, che però cripta
la comunicazione tra il terminale e il computer utilizzato, utilizzando
vari sistemi (di base, alcune varianti del già citato DES, a cui
però può essere aggiunta una cifratura sulla base di chiavi
RSA). In questo modo non è possibile intercettare la vostra comunicazione
- inclusi i dati di login e password - mediante un semplice sniffer. Questo
sistema, inoltre, permette di porre limitazioni sui computer che possono
essere utilizzati come terminale: il computer su cui è posto l'account
accetterà collegamenti SSH soltanto da un elenco di computer predefinito.
|