Le reti internet e la firma digitale

 


 

Le reti internet e la firma digitale

 

Questo sito utilizza cookie, anche di terze parti. Se vuoi saperne di più leggi la nostra Cookie Policy. Scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.I testi seguenti sono di proprietà dei rispettivi autori che ringraziamo per l'opportunità che ci danno di far conoscere gratuitamente a studenti , docenti e agli utenti del web i loro testi per sole finalità illustrative didattiche e scientifiche.

 

 

 

Le informazioni di medicina e salute contenute nel sito sono di natura generale ed a scopo puramente divulgativo e per questo motivo non possono sostituire in alcun caso il consiglio di un medico (ovvero un soggetto abilitato legalmente alla professione).

 

 

 

 

 

Le reti internet e la firma digitale

 

LE RETI

 

Introduzione al concetto di rete

II termine rete è nato per indicare in modo generico un collegamento tra due apparecchiature (sorgente e destinazione) attraverso un mezzo trasmissivo per effettuare una trasmissione di informazioni.
All'inizio le reti erano costituite essenzialmente da terminali remoti collegati a unità centrali (mainframe) mediante linee telefoniche o telegrafiche; l'uso di terminali remoti per l'elaborazione era noto come teleprocessing; la potenza di elaborazione era concentrata in un punto (architettura centralizzata o master/slave).
La realizzazione di questo tipo di reti era legata a soluzioni proprietarie; una soluzione si dice proprietaria quando la realizzazione dipende dal costruttore ed è incompatibile con scelte di costruttori diversi; le specifiche non sono pubbliche.
Attualmente per rete di calcolatori sì intende un insieme di computer indipendenti, cioè che possono lavorare autonomamente, ma collegati tra loro in modo da potersi scambiare informazioni (architettura distribuita).
Inoltre si è sentita la necessità di realizzare sistemi aperti che consentano di collegare e utilizzare prodotti di costruttori diversi; ciò rende necessario lo sviluppo di standard comuni. Il collegamento di computer in rete offre maggiore affidabilità e minor costo rispetto all'uso di mainframe e terminali; un fattore importante è la scalabilità, cioè la possibilità di aumentare le risorse della rete in base alle necessità.
Le reti permettono tra l'altro:
• di condividere risorse (per esempio i dati in un file o una stampante),
• di comunicare tra persone lontane (usando posta elettronica, videoconferenze ecc.),
• di utilizzare servizi di vario tipo come consultazione di informazioni, commercio elettronico, applicazioni di tele-medicina e così via; i servizi a cui si può accedere in rete vengono detti anche servizi telematici; la telematica è una disciplina che nasce dai rapporti tra scienza delle telecomunicazioni e informatica e si occupa dell'elaborazione a distanza delle informazioni.
Di solito si usano sistemi di tipo client/server. I server sono computer su cui girano applicazioni che mettono a disposizione delle risorse o dei servizi. I client chiedono ai server di accedere a una risorsa o di eseguire un certo lavoro. Il server esegue il lavoro e restituisce la risposta. In una rete in genere ci sono pochi server, più potenti, condivisi, e molti client poco potenti e meno costosi. Comunque il ruolo non è così netto; uno stesso computer può fungere da client o da server in situazioni diverse, o anche da server e da client contemporaneamente.
Ogni computer della rete può essere usato in modo autonomo e deve avere un proprio sistema operativo. Per il collegamento in rete deve inoltre utilizzare un opportuno software di rete.
Attualmente i sistemi operativi sono dotati delle funzioni necessarie per il collegamento in rete, cioè integrano il software di rete necessario per la comunicazione tra computer.


Un'ulteriore evoluzione delle reti sono i sistemi distribuiti; un sistema distribuito è una rete che usa un sistema operativo in grado di rendere trasparente all'utente l'esistenza di molteplici computer autonomi. Con una rete gli utenti devono esplicitamente collegarsi a un certo computer per usarne i file o richiedere elaborazioni e occuparsi della gestione della rete; in un sistema distribuito è tutto fatto automaticamente dal sistema operativo: l'utente utilizza il sistema distribuito in modo trasparente, cioè non sa dove si trovi in esecuzione il programma o dove si trovino i file utilizzati.
Un sistema distribuito può essere dotato di un sistema operativo distribuito; il sistema operativo in questo caso è un unico programma distribuito, cioè disperso ed eseguito sui vari computer.

 

Classificazioni

Le reti si possono classificare secondo la tecnologia di trasmissione e la dimensione.
In base alla tecnologia di trasmissione le reti possono essere di tipo broadcast o di tipo point to point.
Le reti con tecnologia broadcast hanno unico canale di comunicazione condiviso da tutte le stazioni; quando una stazione deve comunicare con un'altra invia un messaggio che viene ricevuto da tutte le altre. Un campo indirizzo all'interno del messaggio indica a chi è diretto. Ogni stazione controlla il campo indirizzo ed elabora il messaggio solo se è diretto a lei. Le reti con tecnologia point to point usano collegamenti individuali tra coppie di stazioni; per andare dal mittente al destinatario il messaggio può dover attraversare più stazioni intermedie.
Messaggi point to point, broadcast e multicast
Indipendentemente dalla tecnologia di trasmissione l'invio di un messaggio può essere rivolto:
• a una stazione ben precisa (point to point),
• a tutte le stazioni (broadcasting),
• ad un gruppo di stazioni (multicasting).
Le reti con tecnologia broadcast per la loro natura permettono facilmente il broadcasting.
In base alla dimensione le reti si possono dividere in locali (LAN - Locai Area Network), metropolitane (MAN - Metropolitan Area Network) e geografiche (WAN - Wide Area Network). Dimensioni e tecnologia di trasmissione sono in relazione tra loro: in generale reti piccole usano la tecnologia broadcast e reti geografiche la tecnologia point to point.
Le reti locali sono reti private all'interno di un singolo edificio o edifici vicini, di dimensione al più di qualche chilometro; non possono attraversare suolo pubblico. Per la maggior parte usano la tecnologia di trasmissione broadcast, anche se alcune usano collegamenti point to point. Hanno velocità tra 10 Mbps e 100 Mbps, basso ritardo (decine di microsecondi) e basso tasso di errore.
Le reti metropolitane possono coprire un gruppo di uffici o una città e possono essere private o pubbliche.
Le reti geografiche coprono una grande area geografica, una nazione, un continente o l'intero pianeta. I computer che eseguono programmi per gli utenti (host) sono collegati da una sottorete di comunicazione costituita da linee di trasmissione ed elementi di commutazione noti come router. Quando un computer vuole comunicare con un altro bisogna individuare un percorso per raggiungere il destinatario (routing o instradamento); i router collegano due o più linee di trasmissione; quando i dati arrivano su una linea di ingresso il router deve scegliere una linea di uscita per farli proseguire.
Reti locali o metropolitane possono collegarsi a reti più ampie mediante un router.
Il collegamento di due o più reti si chiama internet. La comunicazione tra reti di tipo diverso è un problema noto come internetworking.
La forma che assume la sottorete di comunicazione tra le varie stazioni viene detta topologia di rete.
Le reti geografiche collegano punti precisi in zone geografiche diverse e non possono quindi generalmente rispettare una disposizione particolare; la topologia di queste reti viene detta a maglia.
Nelle reti locali tutte le stazioni sono a breve distanza tra loro e possono quindi essere collegate in modo opportuno, rispettando una particolare disposizione (per esempio a bus, stella o anello).
La topologia è importante per aspetti come l'instradamento dei messaggi e la tolleranza ai guasti, inoltre influenza l'organizzazione logica dei protocolli di livello superiore.

 

Applicazioni di rete

Gli applicativi di rete sono tutti quei programmi che scambiano informazioni utilizzando la rete.
Storicamente le reti sono nate per le applicazioni di terminale virtuale (per l'elaborazione remota), trasferimento file e posta elettronica.
Molto utilizzata è la consultazione di informazioni a distanza, dalla più antica consultazione di database remoti alla recente ricerca di pagine Web.
Via via si sono resi disponibili molti altri servizi, alcuni di utilizzo molto comune, altri più sofisticati.
Noto a tutti è il servizio teletext, che in Italia prende il nome di Televideo; usa una rete in cui le comunicazioni avvengono via onde radio; ci si può collegare semplicemente mediante il proprio televisore, a cui viene aggiunto un particolare processore; il televisore funziona da stazione ricevente ed è possibile eseguire delle interrogazioni su informazioni di varia natura disposte in pagine.
Il servizio di teleconferenza permette di effettuare riunioni a distanza tra persone che risiedono in luoghi diversi con collegamento audio o anche video (audioconferenza / videoconferenza).
Il commercio elettronico è un recente servizio che permette di effettuare acquisti a distanza e di pagare con carta di credito o moneta elettronica (EFTS - Electronic Funds Transfer System).
I servizi di tele-medicina permettono l'invio di informazioni medico-sanitarie a stazioni di ricevimento in cui vengono esaminati i dati fornendo in risposta la diagnosi e la terapia; consentono la trasmissione di cartelle cliniche, radiografie, ecografie e TAC ma anche di effettuare analisi a distanza.

 

Software di rete

Le applicazioni sono la parte più nota del software di rete, ma non l'unica necessaria. È indispensabile un software per la gestione della comunicazione tra le stazioni.
Il software di rete è molto complesso; per dominare la complessità è altamente strutturato, organizzato come una serie di strati o livelli, ognuno costruito su quello inferiore. Il numero di livelli, il nome, e le funzioni di ciascun livello possono essere diversi da una rete all'altra.
Lo scopo di ogni livello è di offrire certi servizi al livello superiore nascondendo i dettagli su come i servizi offerti sono realizzati. Ogni livello può fornire diversi tipi di servizi.
In pratica un servizio è un insieme di operazioni che un livello fornisce al livello superiore. Il livello superiore può richiedere un'azione usando delle opportune primitive, e il livello inferiore la esegue. Fra ogni coppia di livelli adiacenti c'è un'interfaccia che definisce quali servizi e primitive il livello sottostante offre a quello superiore.
Il punto di accesso da cui un livello rende disponibili i suoi servizi al livello superiore, cioè da cui il livello superiore può accedere ai servizi offerti, è detto SAP (Service Access Point).
Il servizio definisce quali operazioni può eseguire ma non dice nulla su come tali operazioni vengono implementate.
Un livello di una stazione permette una conversazione con il livello corrispondente di un'altra stazione (livelli paritetici).
Le regole e le convenzioni usate in queste conversazioni sono chiamate protocolli.
I protocolli descrivono come vengono eseguiti i servizi; definiscono le regole che governano il formato e il significato dei blocchi di informazioni che vengono scambiati fra i livelli paritetici.
Quindi si possono modificare i protocolli se non cambiano i servizi disponibili.
Gli elementi che in ogni livello offrono effettivamente i servizi al livello superiore, e comunicano con il livello corrispondente, sono chiamati entità (può trattarsi di un processo software o di un dispositivo hardware). Le entità che si trovano in livelli corrispondenti vengono dette entità paritetiche (o peer entities).
Ogni livello richiede un meccanismo per identificare le entità che rappresentano il mittente e il destinatario. È quindi necessario un meccanismo di identificazione o indirizzamento ad ogni livello.
Un insieme di livelli e protocolli è chiamato architettura di rete.
Un'architettura di rete descrive i livelli e i protocolli di ciascun livello, ma non le implementazioni. Per ciascun livello si può implementare in modi diversi un'entità purché risponda correttamente al protocollo appropriato, cioè segua le regole di comunicazione definite dal protocollo. Si possono avere stazioni che usano implementazioni diverse (anche con interfacce diverse tra i livelli), purché ogni stazione abbia gli stessi livelli e usi correttamente i protocolli. L'insieme dei protocolli usati da una stazione, relativi ad una architettura di rete, è chiamata pila di protocolli (o stack di protocolli).
In realtà nessun messaggio viene trasferito direttamente da un livello di una stazione al livello corrispondente di un'altra stazione. Invece ogni livello passa il messaggio al livello immediatamente sottostante, fino al livello più basso che gestisce la trasmissione sul mezzo fisico, attraverso il quale avviene la comunicazione.
Ogni livello aggiunge al messaggio un'intestazione (header) con informazioni di controllo e a volte un trailer (altre informazioni alla fine del messaggio). Un livello potrebbe dover frammentare il messaggio in unità più piccole, aggiungendo un'intestazione ad ogni frammento.
Quando il messaggio arriva alla stazione destinataria il messaggio risale lungo i livelli. Ogni livello toglie le informazioni che sono state aggiunte dal livello corrispondente, le utilizza per la propria elaborazione, e passa il resto del messaggio al livello superiore. Sebbene i dati vengano trasmessi verticalmente, ogni livello è programmato come se la comunicazione avvenisse in modo orizzontale. Ogni livello esegue alcuni compiti in trasmissione ed altri, complementari, in ricezione.
Si usa anche la seguente terminologia: il messaggio passato da un livello al sottostante viene chiamato PDU (Protocol Data Unit); lo stesso messaggio nel livello sottostante viene chiamato SDU (Service Data Unit). Le informazioni aggiunte alI'SDU come intestazione ven­gono chiamate PCI (Protocol Control Information). Il messaggio formato da PCI e SDU costituisce la PDU da passare al livello successivo.
Ogni protocollo descrive il formato della relativa PDU; in questa descrizione spesso il termine byte viene sostituito dal termine ottetto. Normalmente al posto di PDU si usano i termini:
•  segmento (nel livello di trasporto),
•  pacchetto (nel livello di rete),
•  frame (nel livello di data link).
Un servizio offerto da un livello a quello superiore può essere:
• connection oriented o orientato alla connessione, come una telefonata: dopo aver stabilito la connessione i dati seguono sempre lo stesso percorso e arrivano in ordine;
• connectionless o privo di connessione, come una lettera: due lettere che devono raggiungere la stessa destinazione possono seguire percorsi diversi e arrivare in modo non ordinato; i servizi senza connessione sono chiamati servizi datagram.
Inoltre un servizio può essere:
• affidabile, se non vengono mai persi dati; è chiamato anche confermato perché normalmente si realizza usando messaggi di conferma di avvenuta ricezione;
•  non affidabile (o non confermato), se non è garantita la consegna dei dati.
Si possono quindi avere le combinazioni:
• servizio orientato alla connessione e affidabile, necessario per esempio per il trasferimento di un file: i dati devono arrivare tutti e in ordine; i servizi affidabili orientali alla connessione possono essere a sequenze di messaggi, se sono preservati i limiti di dimensione dei messaggi, o asuccessione di byte, se si vede un flusso di byte continuo ma i messaggi inviati possono essere più di uno;
• servizio orientato alla connessione e non affidabile, indicato per la trasmissione di voce o filmati in tempo reale; è preferibile un servizio inaffidabile per non subire il ritardo della conferma;
• servizio non connesso non confermato (o datagram service), utilizzabile quando non è importante se qualche messaggio si perde;
• servizio non connesso confermato, in cui dopo l'invio si attende un messaggio di conferma della ricezione.
Ogni servizio offerto da un livello rende disponibili alcune operazioni o azioni che possono essere richieste dal livello superiore mediante opportune primitive; le primitive possono avere dei parametri per specificare ulteriormente l'operazione.
La suddivisione in livelli permette di creare facilmente applicazioni di rete senza doversi preoccupare di problemi generali come la ricerca di un percorso verso il destinatario, la dimensione dei messaggi di informazione, il controllo degli errori, la differenza di velocità tra il mittente e il destinatario e così via.
Per creare un'applicazione basta utilizzare le primitive messe a disposizione dal livello di trasporto della pila di protocolli per la gestione della comunicazione.
In questo modo sono i livelli sottostanti, già predisposti, che si occupano di tutte le problematiche della comunicazione in rete e il programmatore si può concentrare sulle funzioni che l'applicazione deve effettivamente svolgere.

 

OSIeTCP/IP

Nello studio delle reti sono di fondamentale importanza:
il modello di riferimento OSI, che è solo un modello di riferimento e non un'architettura di rete, poiché descrive livelli e servizi ma non i protocolli;
• il modello TCP/IP, una suite di protocolli che è chiamata impropriamente modello, mentre invece è effettivamente un'architettura di rete.

 

II modello OSI

II modello OSI (Open Systems Interconnection Reference Model) è un modello di software di rete a livelli definito dall'ISO (International Standards Organization) per cercare di risolvere il problema delle grandi differenze esistenti tra sistemi di elaborazione diversi; il nome indica infatti che riguarda il collegamento di sistemi aperti alla comunicazione con altri sistemi. Una rete si dice aperta quando ad essa ci si può collegare da qualsiasi punto geografico e con qualsiasi sistema tramite un mezzo di comunicazione e opportuni protocolli.
Il modello OSI definisce sette livelli:
• livello fisico: si occupa della trasmissione dei bit lungo un mezzo di trasmissione;
• livello di data link o di linea: deve far apparire ai livelli superiori il mezzo di trasmissione come esente da errori di trasmissione;
• livello di rete: controlla il funzionamento della sottorete di comunicazione (linee e router); in particolare si occupa della ricerca di un percorso nella sottorete;
• livello di trasporto: il suo scopo è fare in modo che i dati inviati dal mittente arrivino a destinazione come se attraversassero una linea diretta tra le due stazioni, senza errori (in pratica come il livello di data link; la differenza è che il livello di data link si occupa del collegamento diretto tra due stazioni, mentre il livello di trasporto si occupa della comuni­cazione tra due stazioni attraverso la sottorete di comunicazione);
• livello di sessione: dovrebbe aggiungere servizi avanzati al trasporto di dati; in realtà questo livello non è molto utile;
• livello di presentazione: fa riferimento alla sintassi e alla semantica delle informazioni trasmesse, diversamente dagli altri livelli che gestiscono solo una sequenza di bit;
• livello di applicazione: contiene molti protocolli che offrono servizi all'utente.

Modello OSI

Livello

Applicazione

7

Presentazione

6

Sessione

5

Trasporto

4

Rete

3

Data link

2

Fisico

1

I primi tre livelli (livelli fisico, di data link e di rete) possono essere considerati come standard per la comunicazione: si occupano della gestione della sottorete di comunicazione; dipendono dal gestore della rete di comunicazione e le applicazioni non possono influire su di essi.
I quattro livelli superiori (livelli di trasporto, sessione, presentazione e applicazione) riguardano l'elaborazione; permettono di creare applicazioni indipendenti dalla rete di comunicazione.
Nel modello OSI il livello di rete offre servizi orientali alla connessione e servizi privi di con­nessione; il livello di trasporto solo servizi orientali alla connessione.
II modello OSI non include la definizione di protocolli specifici ai vari livelli; quindi non è un'architettura, ma solo un modello di riferimento. Alcuni protocolli sono stati definiti successivamente, in standard separati.

 

II TCP/IP

II TCP/IP è un'architettura di rete ideata con l'obiettivo di collegare reti di natura diversa (internetworking) e di essere molto affidabile anche in caso di guasti a parti della rete; è nato da una ricerca finanziata dal Dipartimento della Difesa Statunitense che voleva una rete affidabile, utilizzabile anche in caso di guerre o catastrofi.

OSI

 

TCP/IP

Applicazione

 

Applicazione

Presentazione

 

Sessione

 

Trasporto

 

Trasporto

Rete

 

Rete

Data link

 

 

Fisico

 

I livelli fondamentali di questa architettura sono il livello di rete e il livello di trasporto.
II livello di rete (chiamato anche livello internet) offre un servizio privo di connessione e non affidabile: le informazioni vengono spezzate in pacchetti (pacchetti del protocollo IP, o Internet Protocol) e ogni pacchetto può raggiungere la destinazione in modo indipendente, anche in ordine diverso da quello di invio; si tratta di una rete a commutazione di pacchetto.
Il livello di trasporto offre due tipi di servizi: orientato alla connessione (protocollo TCP, o Transmission Contro! Protocol) e privo di connessione (protocollo UDP, o User Datagram Protocol). L'applicazione può scegliere quale servizio utilizzare.
Non ci sono i livelli di sessione e presentazione.
Il livello di applicazione contiene tutti i protocolli e i servizi ad alto livello (come HTTP, SMTP, FTP, DNS ecc.).
Sotto al livello di rete non vengono definiti altri livelli. Viene indicato genericamente un livello chiamato host-to-network che prevede di utilizzare uno qualsiasi degli standard disponibili.
Praticamente il TCP/IP può utilizzare qualsiasi protocollo sottostante per trasportare pacchetti IP lungo il mezzo di trasmissione: si può appoggiare a qualsiasi tecnologia esistente.

Applicazione

HTTP, SMTP, POP3, FTP, NNTP, SNMP, DNS, VolP ...

Trasporto

TCP, UDP

Rete

IP, ARP, RARP, BOOTP, ICMP, IGMP, OSPF, BGP

 

Vari standard per LAN, MAN e WAN

Storia del TCP/IP

Le date fondamentali nella storia del TCP/IP sono:
1957 - Gli Stati Uniti formano la Advanced Research Project Agency (ARRA) nell'ambito del Dipartimento della Difesa (DoD Dipartment of Defence) per studiare applicazioni di scienza e tecnologia all'uso militare.
1962 - Parte il progetto di realizzare una rete in grado di continuare a funzionare anche in caso di attacco nucleare. Il progetto finale consiste in una rete a commutazione di pacchetto.
1968 - Nasce la rete ARPAnet con il collegamento dei primi quattro siti (quattro Uni­versità che usavano tutte sistemi diversi): Università della California a Los Angeles, Stanford Research Institute, Università della California a Santa Barbara, Università dello Utah. Il collegamento usa linee telefoniche a 50 kbps. Il protocollo utilizzato per comunicare tra gli host viene chiamato NCP (Network Contro! Protocol).
1972 - La rete ARPAnet collega 32 nodi (università e strutture governative) usando linee telefoniche, reti satellitari e onde radio; Ray Tomlinson crea un programma per la posta elettronica usato dai docenti universitari per comunicare con i colleghi.
1973 - Comincia lo sviluppo del TCP/IP.
1982 - Si inizia ad usare il termine Internet come insieme di internet TCP/IP collegate tra loro.
1983 - ARPAnet viene divisa separando la parte pubblica (ARPAnet e poi Internet) da quella militare (MILnet Military Network). L'Università del Wisconsin introduce il DNS per la risoluzione dei nomi.
1989 - Nasce il servizio Web al CERN, il centro Europeo per la ricerca sulla fisica nucleare.

 

Confronto tra modello OSI e TCP/IP

I modelli OSI e TCP/IP sono i maggiori standard di riferimento nel mondo delle reti.
II TCP/IP è uno standard de facto, cioè è diventato uno standard grazie al suo utilizzo; una delle prime implementazioni è stata una componente dello Unix di Berkeley, che è stata velocemente accettata e a cui sono stati apportati miglioramenti producendo sempre una maggior diffusione.
Il modello OSI è uno standard de jure, cioè uno standard formale, legale, adottato da una struttura autorizzata alla definizione di standard.
Sia OSI che TCP/IP sono basati sul concetto di una pila di protocolli indipendenti e sovrapposti; le funzioni dei vari livelli sono abbastanza simili.
La differenza principale consiste nel fatto che il modello OSI è stato definito come modello di riferimento prima dei protocolli, mentre nel TCP/IP il modello è nato per descrivere protocolli già esistenti e realmente utilizzati.
Il modello OSI è ottimo come modello, molto adatto per lo studio delle reti, ma non esistono buone implementazioni.
Il TCP/IP è un'architettura molto utilizzata in pratica ma non è molto adatta come modello.

 

Internet

Internet è una rete geografica aperta di estensione mondiale.
Per entrare a.far parte di Internet bisogna sottoscrivere un abbonamento con un provider o ISP (Internet Service Provider), un fornitore di servizi Internet.
Dopo aver stabilito un collegamento al computer del provider si ha accesso all'intera rete Internet. Il modo più semplice di collegarsi è utilizzare la rete telefonica.
Non c'è bisogno di un computer particolare o di un sistema operativo particolare; la sola cosa indispensabile è che sul computer sia installato il protocollo TCP/IP (Transmission Control Protocol/Internet Protocol), il protocollo di comunicazione, o meglio l'insieme di protocolli, usato da tutti i computer collegati a Internet.
Ogni computer collegato a Internet è identificato da un numero, univoco a livello mondiale, chiamato indirizzo IP.
L'indirizzo IP comunemente è rappresentato nella notazione decimale puntata cioè da 4 numeri (compresi tra O e 255) separati da punti, per esempio 132.45.37.1. L’indirizzo IP viene fornito dal provider; può essere un indirizzo statico se il collegamento avviene utilizzando sempre lo stesso indirizzo o un indirizzo dinamico se ad ogni collegamento viene fornito un indirizzo diverso.
Per collegarsi ad un altro computer è necessario conoscere il suo indirizzo IP.
Poiché è difficile ricordare gli indirizzi IP viene usato anche un sistema basato su nomi. Si può pensare che i computer siano divisi in gruppi chiamati domini (la suddivisione non dipende dalla posizione geografica ma è solo un raggruppamento organizzativo). Ogni dominio ha un nome e può essere diviso in sottodomini che hanno ciascuno un nome e ogni computer che deve essere accessibile deve avere un nome.
II nome completo di un computer è costituito dal nome del computer, dal nome del sottodominio di livello più basso a cui appartiene, dai nomi degli altri sottodomini in ordine gerarchico, fino al nome del dominio; i nomi sono separati da un punto.
In pratica la prima parte del nome è il nome del server; la parte rimanente è chiamata, genericamente dominio o in modo più tecnico FQDN (Fully Quaìified Domain Name). I nomi di dominio di primo livello (TLD - Top Level Domain) possono essere di tipo organizzativo (per esempio com per un'organizzazione commerciale) o nazionali (due caratteri che rappresentano una nazione, per esempio it per l'Italia).
In alcuni paesi, per esempio in Gran Bretagna (dominio uk, United Kingdom), i domini di secondo livello ricalcano la suddivisione americana di tipo organizzativo, anche se con sigle diverse, per esempio co.uk per aziende commerciali o ac.uk per Università (ac sta per academic).

 

Nomi di dominio TLD (Top Level Domain)


Di tipo organizzativo
TLD introdotti dal 1988:
com organizzazioni commerciali
edu istituti di insegnamento e università
org organizzazioni no-profit
net servizi di rete
gov enti pubblici
mil enti pubblici militari
TLD approvati alla fine del 2000:
biz siti per il commercio
name pagine personali
info siti di informazione
aero società di trasporto aereo
coop cooperative
museum musei
pro professionisti
Altri TLD proposti:
arts entità che svolgono attività artistiche e culturali
firm entità commerciali
ree entità che offrono servizi di svago e per il tempo libero
shop siti di vendita a distanza
web entità che svolgono attività correlate al WWW
int istituti internazionali
nato istituzioni della NATO
Nazionali
xx codici nazionali di 2 caratteri: per esempo it per l'Italia, fr per la Francia, uk per la Gran Bretagna
eu per i paesi dell'Europa che hanno adottato l'euro

Nuovi TLD possono essere istituiti solo dall'ICANN (Internet Corporation for Assigned Name and Numbers), l'ente internazionale che gestisce tutti i regolamenti per i nomi di dominio.
Anche i nomi di dominio, come gli Indirizzi IP, devono essere univoci e devono essere registrati; il provider può provvedere alla registrazione di un nome di dominio, o meglio di un sottodominio (o nome di dominio di secondo livello, o terzo ecc.); i nomi nei domini TLD sono gestiti dall'InterNIC (Internet Network Information Center, www.internic.net). I nomi nei domini mil, gov e  edu sonoriservati agli Stati Uniti.
La registrazione dei nomi di dominio nel dominio it gestita dalla Registration Authority italiana (www.nic.it), un organismo chiamato NIC per analogia con l'organismo statunitense. Il NIC in precedenza era noto come NIS (Network Information Seivice), un’entità che svolgeva il compito di assegnazione dei nomi per conto della rete GARR (Gruppo Armonizzazione Reti per la Ricerca) che collega le organizzazioni di ricerca italiane (come il CNR, Consiglio Naziona­le delle Ricerche) e i Consorzi universitari (come il CILEA di Milano e il CINECA di Bologna).
Dopo aver registrato un nome di dominio (l'FQDN), un'organizzazione può suddividerlo ulteriormente e gestire più server aggiungendo il nome del server all'FQDN (nomeServer.nomeFQDNdelDominio).
L’uso dei nomi al posto degli indirizzi è permesso da un servizio chiamato DNS (Domain Name System), che permette di tradurre automaticamente il nome nel corrispondente indirizzo(e anche viceversa).

 

Intranet ed extranet

I servizi di Internet possono essere resi disponibili su una rete locale (collegata o meno a Internet) sui cui computer sia installato il protocollo TCP/IP; una rete di questo tipo prende il nome di intranet.
Se l'intranet viene messa a disposizione di.utenti che accedano dall’esterno viene chiamata extranet.
Problematiche relative alla gestione di una intranet, oltre alla configurazione del TCP/IP, sono la gestione dei server che offrono i servizi normalmente usati su Internet, tra cui principalmente un server Web, e il collegamento della intranet a Internet e di conseguenza la protezione dell'accesso alle risorse dall'esterno.


Introduzione alle reti locali

Una rete locale (LAN) è una rete di computer di dimensione limitata geograficamente e senza attraversamento di suolo pubblico.
Ci sono vari tipi di reti locali che si distinguono per le loro dimensioni, la loro tecnologia di trasmissione e la loro topologia.
In generale si può dire che le reti locali usano un mezzo di trasmissione equamente condiviso da tutte le stazioni (tecnologia broadcast) che permette comunicazioni ad alta velocità (10-100 Mpbs) e a basso tasso di errore.
Nelle reti locali ogni stazione può prendere l'iniziativa di comunicare; una stazione può non usare la rete per molto tempo ma quando la usa può richiedere prestazioni altissime (utilizzo a burst); le stazioni condividono un solo canale ad alta velocità; quando una stazione trasmette occupa temporaneamente tutta la banda di trasmissione; si devono usare protocolli di controllo di accesso al mezzo e stabilire indirizzi per individuare mittente e destinatario.
Poiché il tasso di errore è basso i protocolli a livello di data link possono usare servizi non connessi, più efficienti dei servizi connessi.
Gli elementi fondamentali di una rete locale sono i mezzi di trasmissione e le schede di rete (NIC - Network Interface Card) con i corrispondenti driver che gestiscono i livelli fisico e di data link.
Possono inoltre esserci dei ripetitori, cioè dispositivi che amplificano il segnale e lo inviano nuovamente sul mezzo (agiscono solo al livello fisico del modello OSI).
I protocolli per le reti locali sono spesso chiamati architettura di LAN; sono incorporati nelle schede di rete e determinano forma, dimensioni e funzionamento della rete.
Naturalmente poi servono i protocolli di comunicazione e le applicazioni per svolgere il lavoro desiderato; lo scopo principale di una rete locale è la condivisione di risorse e lo scambio di informazioni.
La scelta di un'architettura di LAN non limita la scelta dei protocolli di livello più alto.

 

Topologie di rete per le reti locali

Le topologie possono essere viste dal punto di vista fisico o logico; la topologia fisica di una rete descrive la disposizione geometrica dei suoi componenti, riguarda la forma e la struttura della LAN; la topologia logica invece descrive quali sono i percorsi seguiti nella comunicazione tra coppie di stazioni.
Le topologie fisica e logica di una rete locale possono essere diverse. In tal caso si descrive la topologia fisica e si precisa quale topologia logica viene usata per il funzionamento della rete (in pratica la rete pur avendo una certa topologia fisica si comporta come se ne avesse una diversa).
Le topologie principali sono a bus, a stella e ad anello ma ci sono topologie più complesse.
Nella topologia a bus ogni stazione è collegata ad un'unica linea, il bus.
Nella topologia a stella tutti i nodi sono collegati ad un punto comune (hub); è diventata la topologia fisica dominante, flessibile e poco costosa.
Nella topologia ad anello ogni stazione è collegata con altre due in una disposizione circolare; per passare dalla stazione che trasmette alla stazione di destinazione, un messaggio deve attraversare tutte le stazioni intermedie. La topologia ad anello ormai non è più un anello fisico ma è diventata una topologia a stella con un metodo di accesso circolare (cioè una topologia fisica a stella e una topologia logica ad anello).

 

Topologie più complesse si ottengono dalla combinazione di questi tipi principali. Per esempio si può avere un anello che collega varie reti a stella, stelle gerarchiche (più stelle possono essere collegate ad uno stesso dispositivo centrale) o anelli gerarchici (più anelli possono essere collegati ad una dorsale ad anello).

 

Si possono scegliere topologie e tecnologie diverse, più o meno complicate e costose, in base alle funzioni desiderate; per esempio si può considerare se si devono soltanto collegare stazioni utente alla rete (connettività fra le stazioni), se si devono collegare dei server che mettono a disposizione risorse molto usate (connettività di server), se si devono collegare con una dorsale varie aree della rete (connettività di dorsale) o se si deve collegare la rete locale a una rete geografica (connettività geografica); spesso la connettività geografica è fornita da un unico collegamento della dorsale a un router.

 

Standard IEEE 802

Lo standard per le reti locali si chiama IEEE 802 (il numero 802 deriva dal fatto che il progetto ha avuto inizio nel 1980 quando fu fondato il Locai and Metropolitan Area Network Standard Committee), È anche uno standard ISO indicato con il nome ISO 8802.
Lo standard 802 descrive il livello fisico e il livello di data link. Il livello fisico descrive i mezzi di trasmissione usati e la topologia della rete (cablaggio). Il livello di data link è diviso in due livelli: il MAC (Medium Access Contrai) e l'LLC (Logicai Link Contrai); il MAC si occupa del metodo di accesso al canale condiviso e ha funzioni di framing e controllo degli errori, mentre l'LLC si occupa del controllo di flusso. Di solito il livello MAC è implementato nell'hardware della scheda di rete mentre il livello LLC è realizzato in software.
Ogni tipo di rete locale è descritta da un proprio strato fisico e da un proprio MAC; l'accesso ai mezzi di trasmissione, i mezzi di trasmissione e la topologia dipendono fortemente gli uni dagli altri, comunque il fatto che la descrizione dei mezzi di trasmissione e dei protocolli di accesso al mezzo sia separata permette di realizzarela stessa LAN (cioè di usare lo stesso metodo di accesso al mezzo) su cablaggi diversi.
Il livello LLC è comune a tutti i tipi di reti locali e permette l'interoperabilità di reti 802 nonostante differenze di mezzi di trasmissione, di topologie e di metodologie di accesso al mezzo.
Sia il livello MAC sia il livello LLC utilizzano indirizzi per individuare le entità che stanno comunicando a quel livello.
L'indirizzo a livello MAC (chiamato proprio indirizzo MAC) individua il computer o meglio la scheda di rete del computer; serve a individuare le stazioni che vogliono comunicare nella rete locale.
L'indirizzo a livello LLC invece individua il protocollo di livello di rete usato per la comunicazione (sulla rete possono essere disponibili diversi protocolli di livello superiore).
Lo standard 802 è suddiviso in parti più specifiche:
• 802.1 definisce le caratteristiche generali degli standard per le reti locali e metropolitane e per l'interoperabilità tra reti diverse;
• 802.2 definisce il sottolivello LLC del livello di data link, comune a tutte le reti locali e metropolitane 802;
dall'802.3 in poi ogni parte definisce un tipo particolare di rete, per esempio:
• 802.3 reti locali CSMA/CD,
• 802.5 reti locali Token Ring,
• 802.6 reti metropolitane (DQDB),
• 802.11 reti locali Wireless.

 

Osservazioni sui livello fisico e MAC per gli standard da 802.3 in poi

 

Livello fisico

II livello fisico definisce il cablaggio cioè i mezzi di trasmissione usati e la topologia della rete; per ogni tipo di rete possono essere definiti diversi tipi di cablaggio, chiamati MDI (Medium Dependent Interface).
Per ogni tipo di cablaggio il livello fisico descrive le distanze massime che possono essere raggiunte per una certa ampiezza di banda per ogni tipo di mezzo (l'ampiezza di banda dipende dalle caratteristiche del mezzo ma anche dalla distanza percorsa, per esempio per i cavi in rame la larghezza di banda dipende dallo spessore del cavo e dalla distanza percorsa); definisce inoltre tutti i dettagli relativi alla trasmissione: connettori necessari (e significato dei pin), interfaccia fisica alla rete (tranceiver) che permette di trasmettere e ricevere i bit, metodo di codifica del segnale, sincronizzazione, livelli di tensione per la trasmissione dei segnali elettrici o livelli di lunghezza d'onda per la trasmissione su fibre ottiche e così via.

 

Livello MAC

II livello MAC si occupa della suddivisione in frame, del controllo degli errori edei metodi di accesso al mezzo.
I servizi offerti dal livello MAC sono esclusivamente non connessi non confermati. Se un frame non può essere consegnato il livello MAC non se ne preoccupa; se un frame arriva danneggiato viene semplicemente scartato; saranno i livelli superiori ad accorgersene e a ripetere la trasmissione.
Gli indirizzi a livello MAC individuano i computer della rete, o meglio identificano la scheda di rete che permette il collegamento della stazione alla rete.

 

Schede di rete

Per il collegamento alla rete serve una scheda di rete, specifica per una certa LAN, per ogni computer; la parte posteriore della scheda presenta una o più interfacce, ognuna per uno specifico tipo di connettore, progettato per uno specifico mezzo di trasmissione. La scheda di rete di solito implementa il livello fisico e MAC della rete.
Alla scheda di rete è associato l’indirizzo MAC.
La scheda di rete è chiamata anche NIC (Network Interface Card) o MAU (Medium Attachment Unit).

Indirizzi MAC

Gli indirizzi MAC identificano a livello hardware le stazioni, o più precisamente le schede di rete.
L'indirizzo è formato da 6 byte che identificano univocamente la scheda di rete a livello mondiale: 3 byte per il produttore della scheda e 3 come numero identificativo della scheda.
Gli indirizzi per convenzione vengono rappresentati da 6 numeri esadecimali separati dal simbolo :
I frame contengono l'indirizzo di destinazione e l'indirizzo del mittente. L'indirizzo di destinazione può essere anche l'indirizzo di broadcast (indica che il frame è diretto a tutte le stazioni) o un indirizzo multicasting (indica che il frame è diretto a un particolare gruppo di stazioni).
L'indirizzo di broadcast è composto da tutti 1 (FF:FF:FF:FF:FF:FF); un frame che ha come destinazione l'indirizzo di broadcast viene consegnato a tutte le stazioni sulla rete.
Gli indirizzi che fanno riferimento a un gruppo di stazioni (multicasting) sono individuati da un 1 nel bit meno significativo dell'indirizzo di destinazione (bit 0); tutte le stazioni del gruppo ricevono il frame.
Gli indirizzi di gruppo servono per esempio per sapere quali stazioni offrono un certo servizio; una stazione che ha bisogno di un servizio chiede quali stazioni sono in grado di offrirlo trasmettendo un pacchetto all'indirizzo multicast del servizio; le stazioni che offrono il servizio rispondono alla richiesta.
Gìi indirizzi MAC sono scritti in una ROM della scheda di rete dal costruttore della scheda. Questi indirizzi possono essere sostituiti via software da indirizzi locali memorizzati in un buffer. Per distinguere tra indirizzi locali e globali viene usato il bit vicino a quello meno significativo (bit 1).
I byte dell'indirizzo vengono trasmessi nell'ordine di scrittura, da sinistra verso destra con i bit all'interno di ogni byte dal meno significativo al più significativo (ordine canonico definito dalla IEEE perché alcune reti come 802.5 e FDDI utilizzavano per gli indirizzi un ordine di rappresentazione e trasmissione diverso: i bit che distinguono tra indirizzi individuali e di gruppo e tra indirizzi globali e locali erano il più significativo e quello immediatamente vicino ed erano i primi ad essere trasmessi sulla rete).

 

Standard IEEE 802.3

La prima rete locale è stata la rete Ethernet sviluppata al Palo Alto Reasearch Center della Xerox; era una rete molto semplice realizzata per condividere file fra le stazioni di lavoro. È stata poi realizzata una nuova versione chiamata Ethernet II o DIX Ethernet sviluppata da Xerox, Intel e Digital.
Ethernet era una rete a bus su cavo coassiale, con modalità di trasmissione half duplex, metodo di accesso CSMA/CD e velocità a 10 Mbps.
Lo standard 802.3 deriva dallo standard Ethernet ed è ancora comunemente chiamato standard Ethernet.
Lo standard 802.3 descrive un'intera famiglia di sistemi che usano il metodo di accesso CSMA/CD a una velocità che varia da 10 a 100 Mbps (Fast Ethernet) con diversi tipi di cablaggi. Esistono anche versioni a 1000 Mbps chiamate Gigabit Ethernet. L'IEEE sta definendo perfino una versione a 10 Gbps, chiamata 10 GE.

Livello MAC

II metodo di accesso è a contesa ed è chiamato CSMA/CD.
Una stazione che deve trasmettere controlla se il canale è libero prima di iniziare la trasmissione; se il canale è libero trasmette il frame; dopo aver trasmesso un frame la stazione invia sul canale gli altri bit (inter frame gap o interpacket gap); durante questo intervallo le altre stazioni non possono trasmettere.
Se il canale è occupato la stazione entra in una fase nota come back-off e aspetta un tempo casuale prima di riprovare.
Anche se il canale è libero non è detto che la trasmissione riesca; un'altra stazione può aver trovato la linea libera e inviato un frame, ma il segnale non è stato individuato perché la trasmissione non è istantanea; in tal caso si può verificare una collisione, perciò dopo aver trasmesso un frame la stazione continua ad ascoltare il canale per rilevare eventuali collisioni (collision detection). La determinazione di una collisione è un processo analogico; è l'hardware della stazione che ascolta il cavo mentre sta trasmettendo e si accorge di una collisione se quello che rileva è diverso da ciò che ha spedito; la codifica del segnale deve permettere la rilevazione delle collisioni.
Quando una stazione si accorge di una collisione invia un segnale sulla linea (jamming) per segnalare in modo più evidente ad altre stazioni in ascolto che si è verificata una collisione. Come quando trova il canale occupato, anche in caso di collisione la stazione entra nella fase di back-off e aspetta un tempo casuale prima di riprovare.
L'algoritmo di calcolo del tempo casuale dopo una collisione è noto come algoritmo di regressione binaria esponenziale o algoritmo di back-off (BEB - Binary Exponential Back-Off ).
Ricapitolando, i compiti del livello MAC sono:
• gestire la suddivisione in frame utilizzando la violazione di codifica nel byte di inizio frame;
• calcolare il codice di controllo CRC all'invio e controllare la correttezza in ricezione (in caso di errore il frame viene semplicemente scartato);
• trasmettere e ricevere i frame (generando il preambolo e poi rimuovendolo) e assicurare interframe gap dopo ogni frame;
• rilevare le collisioni attraverso i meccanismi del livello fisico e trasmettere il segnale di jam dopo la rilevazione della collisione;
• calcolare il tempo di attesa con l'algoritmo di back-off quando il canale è occupato.
Le limitazioni imposte sulla lunghezza dei cavi e sul numero dei ripetitori nelle MDI dipendono dal funzionamento della rete.
Le dimensioni della rete devono essere limitate in modo che il tempo che può intercorrere da quando la stazione ha trasmesso il primo bit di un frame a quando rileva la collisione sia inferiore alla lunghezza del frame più corto che è di 512 bit (51,2 microsecondi).
Il numero dei ripetitori che si possono usare invece è limitato dal fatto che i ripetitori possono ridurre l'inter frame gap tra due frame rendendo i frame indistinguibili. Il ripetitore usa una parte variabile del preambolo per sincronizzarsi con il trasmettitore e deve poi rigenerare i bit che ha perso introducendo un ritardo di trasmissione che varia da frame a frame; se tra due frame consecutivi il primo subisce un ritardo maggiore l'interframe gap si riduce.

Reti 802.3 a 100 Mbps (Fast Ethernet)

Lo standard 802.3 per reti di banda base a 100 Mbps è noto con il nome di Fast Ethernet.
Servono schede di rete a 100 Mbps; ci sono schede a doppia velocità che possono anche selezionare automaticamente la velocità di trasmissione.
Usa la fibra ottica ma anche il doppino telefonico RJ45 ma con schemi di trasmissione diversi.


 Rete telefonica PSTN

 

La rete telefonica comunemente usata per le comunicazioni vocali si chiama PSTN (Public Switchied Telephone Network).
È una rete commutata, cioè si basa sull'idea che per ogni comunicazione si debba stabilire una connessione tra i due interlocutori e che la conversazione per tutta la sua durata segua sempre lo stesso percorso e abbia un'ampiezza di banda riservata. È nata per trasportare la voce ma viene utilizzata anche per la trasmissione dei dati.
La rete telefonica ha una topologia gerarchica; la rete è organizzata (a partire dal livello inferiore) in settori, distretti, compartimenti.
L'apparecchio telefonico è collegato al più vicino ufficio della società telefonica, questo collegamento è noto come circuito locale (o locai loop).
Ogni ufficio è collegato con la centrale di settore; ogni centrale di settore con una centrale di distretto; ogni centrale di distretto con una centrale di compartimento; le centrali di distretto edi compartimento sono tutte collegate una all'altra.
Si ha quindi una topologia a stella ai livelli inferiori e una topologia a reticolo completo ai
livelli superiori.
Se la chiamata è tra due abbonati dello stesso settore il collegamento viene stabilito attraverso la centrale di settore, altrimenti deve essere risalita la gerarchia.
I mezzi di trasmissione usati per i collegamenti dipendono dal traffico che devono supportare; i circuiti locali sono realizzati con doppini, le dorsali che collegano le centrali ai livelli più alti della gerarchia di solito utilizzano le fibre ottiche.
La trasmissione, che in origine era solo analogica, è oggi per la maggior parte digitale; è rimasta analogica solo nei circuiti locali. Sulle dorsali viene usata la trasmissione digitale perché ha molti vantaggi; oltre a permettere di trasportare informazioni di qualsiasi tipo (voce, dati, immagini ecc.), permette velocità di trasmissione dati molto più alte, è più economica (basta poter distinguere tra due valori O o 1 ) e permette di rigenerare il segnale più facilmente, senza perdita di informazione.
Normalmente il circuito locale usa ancora una trasmissione analogica; al termine del circuito locale avviene la conversione del segnale da analogico a digitale (con la tecnica PCM, mediante i codec) durante la trasmissione e da digitale ad analogico per la ricezione. Se si usa la linea per collegare il computer e trasmettere dati, i dati (digitali) devono essere convertiti in analogico per essere trasmessi sul circuito locale (dal modem), e poi convertiti di nuovo in digitale per viaggiare sulle dorsali (e viceversa in ricezione).


Commutazione

La commutazione è la ricerca di un percorso sulla rete per fare in modo che le informazioni inviate dal mittente arrivino al destinatario.
La commutazione può essere di circuito o di pacchetto.
Nella commutazione di circuito prima di poter cominciare una comunicazione bisogna stabilire un percorso fisico tra gli interlocutori attraverso le centrali di commutazione; possono essere! problemi per stabilire la comunicazione (segnale di occupato) ma, una volta stabilita, le informazioni viaggiano senza altri problemi, in ordine e seguendo sempre lo stesso percorso (il percorso però può essere diverso da una chiamata all'altra). Il sistema telefonico attuale usa la commutazione di circuito.
Nella commutazione di pacchetto il messaggio da trasmettere viene suddiviso in pacchetti; ogni pacchetto deve contenere l'indirizzo del destinatario e del mittente; la ricerca del percorso da seguire deve essere fatta per ogni pacchetto; ogni pacchetto può seguire un percorso diverso dagli altri pacchetti e arrivare in ordine diverso da quello di invio (o anche non arrivare); a destinazione i pacchetti vengono riordinati e il messaggio ricomposto.
La commutazione di circuito tiene occupata la banda durante tutta la comunicazione (anche nei tempi morti), mentre la commutazione di pacchetto la usa solo quando serve; per questo nella commutazione di circuito le tariffe sono basate sulla distanza degli interlocutori e sul tempo di collegamento e non sul traffico effettivo, mentre nella commutazione di pacchetto si paga in base al traffico (numero di byte o pacchetti trasportati).
Per stabilire il percorso, la connessione viene stabilita nella centrale di commutazione al livello più basso possibile, risalendo la gerarchia solo se necessario.
Ogni centrale ha molte linee in entrata e molte in uscita; bisogna stabilire una connessione tra una delle linee in uscita; a questo provvedono i commutatori.

 

Introduzione alle reti geografiche

Le reti geografiche (WAN - Wide Area Network) permettono di collegare computer o reti "posti a distanze qualsiasi.
Poiché computer e reti possono essere dislocati in posizioni qualsiasi, di solito le reti geografiche non hanno una topologia ben definita: si parla di topologia a maglia; si dice che,una rete a maglia è a reticolo completo quando esiste un collegamento diretto tra qualsiasi coppia di stazioni, a reticolo parziale quando alcuni di questi collegamenti non sono presenti; si possono comunque avere anche reti geografiche con topologie a stella o ad anello, topologie gerarchiche o combinazioni di topologie.
Per collegare una rete locale a una rete geografica è necessario un router che colleghi la rete locale alla linea usata per il collegamento a distanza.
Il più semplice tipo di collegamento è quello realizzabile tramite le comuni linee telefoniche analogiche (PSTN) che però permettono basse velocità di trasmissione dati e hanno elevati costi di tariffazione (in base ai tempi di utilizzo).
Alternative più valide sono i servizi ISDN e ADSL che usano le stesse linee telefoniche ma in modo digitale.
Si può usare anche la rete GSM collegando un portatile con un modem speciale ad un telefono cellulare GSM (la velocità di trasmissione è bassa e le tariffe alte – circa 20 euro al mese la flat - ma si ha la massima libertà di movimento).

 

II provider

Per collegarsi a Internet serve un abbonamento a un provider.
Molti provider offrono abbonamenti gratuiti; abbonamenti a pagamento offrono di solito servizi migliori.
Le differenze tra gli abbonamenti possono consistere nel tipo di indirizzo IP ottenibile (statico o dinamico), nell'ampiezza di banda del collegamento (cioè la velocità di trasmissione), nel numero di account di posta elettronica disponibili e nello spazio concesso per memorizzare i messaggi, nello spazio disponibile per pubblicare pagine Web e così via.

 

La linea telefonica

Per il collegamento si può usare la rete telefonica, con diverse modalità:

  • • linea telefonica tradizionale analogica,
  • • linea ISDN,
  • • collegamento ADSL.

La linea telefonica analogica trasmette i dati allo stesso modo in cui viene trasmessa la voce: un'onda portante viene modulata, cioè modificata in modo da trasportare valori binari.
Il dispositivo che trasforma i dati dal formato digitale usato all'interno del computer al formato analogico usato sulla linea e viceversa si chiama modem.
I modem attuali usano lo standard V.92 a 56K; la sigla 56K indica la velocità di trasmissione in bit per secondo (bps); in realtà i modem a 56 kbps permettono di ricevere a 56 kbps ma di trasmettere solo a 48 kbps.
Per collegarsi a Internet si fa una telefonata che permette di collegarsi al server (il computer) del provider; attraverso il server del provider si può accedere a qualsiasi computer della rete, situato in qualsiasi punto del mondo.
Quando si è collegati la linea telefonica è occupata e non si possono fare o ricevere telefonate; si paga per la durata del collegamento come per una normale telefonata; conviene quindi scegliere un provider della propria città, o comunque del proprio distretto telefonico in modo che venga applicata la tariffa di una telefonata urbana.
La linea ISDN è una normale linea telefonica a cui è applicato un dispositivo che permette di usare due linee digitali a 64 kbps, ciascuna con un proprio numero telefonico; per collegarsi alla linea serve un modem ISDN. Per il collegamento a Internet si può usare una sola linea a 64 kbps o entrambe le linee come un'unica linea a 128 kbps (dipende anche dal collegamento offerto dal provider); per usare la trasmissione a 128 kbps bisogna configurare un collegamento multiplo. Durante il collegamento si possono fare e ricevere telefonate (anche nel caso si usino entrambe le linee perché i dispositivi liberano automaticamente una linea senza interrompere il servizio sull'altra).
Si paga per la durata del collegamento come nel caso della linea analogica ma bisogna considerare che se si usano tutte due le linee si paga per ogni linea.
Anche il collegamento ADSL usa la normale linea telefonica con un dispositivo (filtro distributore) e un modem ADSL. La linea viene usata in modo digitale e permette una velocità di trasmissione molto maggiore, fino a 640 kbps in uscita 2 e 8 Mbps in entrata; per un utente domestico il collegamento più comune è a 128 kbps in uscita e a 1,2 Mbps in entrata.
Il collegamento a internet è permanente, cioè non si deve fare una telefonata per collegarsi al provider, ma si è costantemente collegati; durante il collegamento si possono fare e ricevere telefonate; per il collegamento a Internet in genere si paga un canone mensile fisso (ma ci sono anche tariffe a tempo di utilizzo).
Un'altra possibilità di collegamento a Internet è rappresentata dal collegamento satellìtare; serve una scheda apposita da inserire nel computer e un'antenna parabolica per ricevere i segnali (come per la televisione satellitare); la velocità è buona, però la connessione permette solo la ricezione; per trasmettere bisogna usare la linea telefonica.
È possibile collegare a Internet un'intera rete locale; si può usare la linea telefonica con una delle modalità descritte e un router che permette di indirizzare la trasmissione al computer interessato. I provider che forniscono i servizi agli utenti sono a loro volta collegati a provider di livello superiore (NSP - Network Service Provider) con collegamenti più veloci, per esempio con linee dedicate; gli NSP gestiscono le linee che provvedono a trasportare i dati di tutti gli altri fornitori. Sono NSP in Italia per esempio Interbusiness di Telecom Italia, InfostradaeAlbacom. Le aziende che richiedono una grande ampiezza di banda per il collegamento a Internet possono connettersi direttamente a un NSP.
Per i collegamenti internazionali gli NSP in Italia si avvalgono di fornitori stranieri (come Unisource, Sprint ecc.).

 

Configurare il computer

Per configurare il computer per il collegamento a Internet oltre a configurare l'hardware necessario (per esempio il modem) bisogna installare il protocollo TCP/IP.
Nel caso di collegamento mediante linea telefonica analogica o ISDN serve un programma chiamato dialer (il collegamento è detto dial-up) che attivi il collegamento con il provider mediante una chiamata telefonica.
Windows fornisce un software dialer (noto come Accesso remoto) che deve essere configurato inserendo alcune informazioni fornite dal provìder stesso, tra cui il numero telefonico da usare per il collegamento al computer del provider, il nome utente che è stato assegnato, l'indirizzo IP se è stato assegnato in modo statico e l'indirizzo IP del server DNS da utilizzare per la traduzione dei nomi.
Poi per collegarsi al provider e quindi a Internet basta mandare in esecuzione il programma; in Windows basta utilizzare l'icona della connessione creata. Ad ogni collegamento bisogna fornire il proprio account e la propria password. Dopo aver stabilito il collegamento si può usare il programma relativo al servizio desiderato, come il browser o il client di posta elettronica. Se si avvia il browser o il client di posta prima di aver stabilito il collegamento, questi programmi possono richiedere se si desidera avviare la connessione.
Al primo collegamento è possibile che non si abbia un account valido; i provider gratuiti di solito rendono noti account e password da usare per il primo collegamento; in questo modo si accede a una pagina di registrazione in cui si devono inserire i propri dati per ottenere un account e una password personale da usare per i collegamenti successivi.

 

RAS - Remote Access Service

II servizio di Accesso remoto permette di collegarsi a distanza attraverso modem e linea telefonica (ma anche ISDN o linee T1) a un altro computer (collegamento dial-up); naturalmente i due computer devono essere collegati a linee telefoniche diverse.
Il computer chiamante fa in modo che il modem si metta in collegamento telefonico con un computer remoto e quando viene stabilita la connessione si possono scambiare informazioni.
Dopo aver effettuato il collegamento si può lavorare come se si fosse collegati direttamente in rete. Se il computer a cui ci si collega fa parte di una rete locale è come se si fosse collegati all'intera rete locale.
Si possono vedere le cartelle condivise sul computer a cui ci si è collegati e sugli altri computer della rete. Le proprie risorse però non sono accessibili dagli altri computer.
L'uso più frequente del servizio di Accesso remoto è il collegamento a Internet (si usa Accesso Remoto per collegarsi al computer del provider e avere accesso alla rete Internet). Si può usare Accesso remoto per collegarsi a un computer qualsiasi se si configura quel computer per accettare connessioni di Accesso remoto (server di Accesso remoto). Il server può accettare la connessione di più computer; il server RAS di Windows 2000 Professional permette una sola connessione, quello di Windows 2000 Server fino a 256 connessioni contemporanee (naturalmente serve un modem per ogni connessione; esistono schede di I/O multiporta per aumentare il numero di modem che si possono collegare al sistema).
In genere il servizio RAS usa il protocollo PPP per la connessione e il TCP/IP per la comunicazione. Gli indirizzi IP possono essere assegnati agli utenti RAS in modo statico, o in modo dinamico tramite un server DHCR
L'accesso remoto comporta problemi di sicurezza. Bisogna impostare login e password per il collegamento e controllare il permesso di accesso alle risorse.
Sui computer client la configurazione del servizio è identica alla configurazione per il collegamento a Internet; basta specificare il numero telefonico del computer che si desidera chiamare. Quando si accede alla connessione viene richiesto di identificarsi; poi si può accedere alle risorse del server RAS e dei computer della rete di cui il server RAS fa parte, tramite Risorse direte.
Alla fine basta chiudere la connessione (clic destro sulla Connessione, scegliendo Disconnetti). Per semplificare la riconnessione si può creare un collegamento a una cartella o a un file remoto mentre si è connessi; quando si cerca di accedervi si avvia la connessione.
Il server deve essere opportunamente configurato. Bisogna inoltre condividere le cartelle desiderate ed impostare le password di accesso e le autorizzazioni.

 

Trasmissione dati su linea telefonica analogica

La trasmissione all'interno del computer avviene in modo digitale e parallelo (comunicazione che permette di trasmettere l'intero byte allo stesso tempo). La trasmissione lungo la linea telefonica è seriale e analogica.
Per usare una linea telefonica analogica per la trasmissione dati bisogna installare un modem per trasformare il segnale da digitale in analogico e viceversa (il modem deve essere collegato al computer e alla linea telefonica).
I due computer che comunicano attraverso la linea telefonica devono usare dei protocolli di comunicazione comuni.
Normalmente il protocollo di livello fisico usato per la comunicazione tra computer e modem è lo standard RS-232 e il protocollo a livello di data link per la gestione della connessione sulla linea è PPP.
II computer che avvia la comunicazione usa un programma per le chiamate telefoniche (come Accesso remoto di Windows) che permette di stabilire la connessione (il programma invia al modem comandi, chiamati comandi AT, per attivarsi, comporre il numero telefonico ecc.).
Dopo aver stabilito la connessione si può usare il programma di comunicazione opportuno in base al tipo di comunicazione desiderato.
II modem può essere un dispositivo interno costituito da una scheda che si inserisce in uno slot o un dispositivo esterno collegato a una porta seriale o una porta USB.

 

ADSL

ADSL (Asymmetrical Digital Subscriber Line) è una tecnologia che permette di usare la linea telefonica simultaneamente per voce e dati a velocità superiore delle linee analogiche e ISDN.
Come indica il nome, la tecnologia è asimmetrica cioè permette una velocità diversa in trasmissione (upload) e in ricezione (download); la velocità di ricezione è molto maggiore; questo comportamento è adatto per la navigazione nel Web in cui le richieste dell'utente sono minime ma la banda richiesta per scaricare pagine multimediali può essere molto alta.
Attualmente è la tecnologia più valida per il collegamento a Internet; il collegamento è permanente, cioè il computer è collegato a Internet in ogni momento, e contemporaneamente si possono fare normali comunicazioni telefoniche; la tariffazione in genere si basa su un canone fisso mensile (oltre ai costi di installazione).
Per il collegamento serve un filtro distribuito da applicare sulle prese telefoniche e un modem ADSL.
Ci sono alte tecnologie simili, che nell'insieme vengono chiamate xDSL, per esempio HDSL (High bit-rate Digital Subcriber Line) che è di tipo simmetrico e ha velocità tra 1,544 Mbps e 2,048 Mbps.
I modem ADSL esterni possono avere una connessione USB o una connessione Ethernet (si collegano alla scheda di rete); ci sono anche apparecchi dotati di funzioni di routing per condividere l'accesso tra più computer.
II collegamento al provider è di tipo permanente, però il transito dei dati deve essere abilitato dal processo di autenticazione.

 


TCP/IP

 

I protocolli a livello di data link SLIP e PPP

I protocolli SLIP e PPP vengono usati nella comunicazione punto a punto tra due router o più spesso nella connessione tra un utente e un provider.
SLIP (Serial Line Internet Protocol) è un protocollo sviluppato agli inizi degli anni 80 per consentire ai pacchetti TCP/1 P di essere trasferiti su linee telefoniche. Prende un pacchetto IP, lo inserisce in un frame e lo invia sulla linea. È un protocollo orientato al byte, semplice da implementare ma che presenta molte limitazioni: supporta solo il trasferimento di pacchetti IP (non di altri protocolli dello strato superiore) e bisogna conoscere in anticipo l'indirizzo IP (non supporta l'assegnazione dinamica degli indirizzi IP); inoltre non fornisce alcuna gestione degli errori e non supporta l'autenticazione. Non è mai divento uno standard Internet.
PPP (Point-to-Point Protocol) è lo standard Internet attualmente utilizzato per i collegamenti punto a punto.
Permette la possibilità di trasportare più tipi di protocolli su un'unica connessione (non solo pacchetti IP), la negoziazione delle opzioni di connessione, l'assegnazione dinamica degli indirizzi IP, la gestione degli errori e l'autenticazione.
II campo dati del frame PPP può portare informazioni relative a vari protocolli di livello superiore.
Insieme al protocollo PPP vengono usati i protocolli LCP e NCP; anche questi protocolli vengono portati nel campo dati del PPP.
LCP (Link Contro! Protocol) è un protocollo che permette di stabilire il collegamento, negoziare opzioni per configurare il collegamento e alla fine rilasciarlo.
NCP (Network Contrai Protocol) è un protocollo usato per negoziare opzioni del livello di rete; viene usato un diverso NCP per ogni protocollo di rete supportato; il nome dell'NCP relativo al protocollo IP è IPCP (IP Contrai Protocol); IPCP permette di configurare il protocollo IP assegnando un indirizzo IP dinamico.
Per stabilire una connessione con un provider Internet il computer dell'utente chiama il router del provider tramite il modem; dopo aver stabilito la connessione fisica il computer dell'uten­te manda pacchetti LCP nel campo dati di uno o più frame PPP per negoziare le opzioni; poi invia pacchetti NCP, sempre nel campo dati di frame PPP, per configurare il livello di rete; in questo caso di solito per usare TCP/IP e ottenere un indirizzo IP dinamico. Alla fine viene usato NCP per rilasciare la connessione a livello di rete e liberare l'indirizzo IP e LCP per rilasciare la connessione a livello di data link, prima di ordinare al modem di liberare la linea telefonica rilasciando la connessione a livello fisico.
PPP è orientato al byte; di solito si usa un servizio non affidabile; opzionalmente si può richiedere un servizio affidabile.
Il frame comprende:
•     1 byte con il flag 01111110;
•     1 byte con l'indirizzo di destinazione impostato a 11111111 che indica che tutte le stazioni devono accettare il frame;
•     1 byte di controllo impostato a 00000011;

Frame PPP


Flag 01111110

Indirizzo 11111111

Controllo 00000011

Protocollo

Dati

CRC

Flag 01111110

•   1 byte (o 2, la dimensione viene negoziata tramite LCP) indica il tipo di protocollo che si trova nel campo dati (il protocollo indicato può essere per esempio LCP, NCP, IP, IPX ecc.);
•  un campo dati di lunghezza variabile negoziata con LCP; di default la lunghezza è di 1500 byte;
• 2 byte (o 4, la dimensione viene negoziata tramite LCP) con una checksum per il control­lo degli errori. ,
Poiché il campo indirizzo e il campo di controllo sono costanti si può concordare di ometterli tramite LCP.
Tramite LCP si può negoziare anche un protocollo di autenticazione.
I protocolli ammessi sono PAP (Password Authentication Protocol) o CHAP (Challenge Handshake Authentication Protocol).
L'autenticazione PAP è una procedura in due passi: il client invia il nome utente e una password che può essere cifrata; il server confronta la combinazione utente/password con i dati presenti nel proprio database.
L'autenticazione CHAP è invece in tre passi: il server invia al client una stringa di caratteri casuali e il nome del server; il client usa il nome del server per cercare una chiave segreta relativa alla comunicazione con il server, usa la chiave per cifrare la stringa e la manda al server col nome del client; il server a sua volta cifra la stringa originale con la stessa chiave e deve ottenere lo stesso risultato.

 

Protocolli del livello di rete del modello TCP/IP

II livello di rete nel modello TCP/IP viene chiamato anche strato Internet.
Il protocollo più noto del livello di rete è il protocollo IP (Internet Protocol); è un protocollo instradabile che si occupa dell'indirizzamento, della suddivisione in pacchetti e del trasferimento a destinazione dei dati che arrivano dal livello di trasporto.
Nel livello di rete ci sono però anche molti altri protocolli: oltre a quelli di routing, protocolli di controllo come ICMP, IGMP, ARP, RARP e BOOTP.

 

Indirizzi

Indirizzi IP

Gli indirizzi IP sono numeri che identificano in modo univoco ciascuna stazione sulla rete (può essere un computer, un router o anche un hub).
Gli indirizzi sono assegnati dal NIC (Network Information Center); l'autorità per l'assegnazione dei numeri si chiama IANA (Internet Assigned NumberAuthority); in genere comunque si può ottenere l'indirizzo IP da un provider.
Gli indirizzi sono numeri di 32 bit scritti convenzionalmente nella Rotazione decimale puntata: quattro numeri decimali, ognuno compreso tra 0 e 255, separati da punti; in pratica l'indirizzo è suddiviso in quattro gruppi di 8 bit e ogni numero decimale è la rappresentazione decimale di un gruppo.
Gli indirizzi sono divisi in classi; ci sono cinque classi di indirizzi: A, B, C, D ed E; solo gli indirizzi delle prime tre classi (A, B e C) possono essere assegnati alle stazioni di una rete, e sono formati da una parte che identifica la rete e da una parte che identifica la stazione all'interno della rete; gli indirizzi delle altre classi servono per il multicasting (classe D) e per usi sperimentali (classe E).
Gli indirizzi IP devono essere unici a livello mondiale; però quando si usano indirizzi IP in una rete locale non collegata a Internet basta che gli indirizzi siano unici all'interno della rete; reti diverse possono usare gli stessi gruppi di indirizzi.
Se gli indirizzi vengono scelti in modo arbitrario, un successivo collegamento a Internet può causare dei problemi (per esempio non si possono raggiungere gli indirizzi esterni che risultano duplicati).
Sono stati riservati tre gruppi di indirizzi che non vengono usati su Internet e che si possono usare arbitrariamente in una rete locale, senza problemi.
Questi indirizzi possono essere usati anche per le reti collegate a Internet attraverso un proxy server o un firewall; questi dispositivi nascondono gli indirizzi locali, rendendo invisibili destinazioni, interne o esterne, con tali indirizzi.

Assegnazione automatica degli indirizzi IP

Ogni stazione della rete deve essere configurata con l'indirizzo IP, la maschera di sottorete, il gateway di default e così via.
Invece di assegnare staticamente l'indirizzo ad ogni stazione in modo manuale si possono usare metodi di configurazione automatica.

DHCP

DHCP (Dynamic Host Configuration Protocol) è un sistema di tipo client/server per la configurazione automatica e dinamica delle stazioni.
Il server viene configurato con gli intervalli di indirizzi IP (scope) che può assegnare.
Quando una stazione viene avviata, invia una richiesta al server DHCP per ottenere un indirizzo IP. Se il server DHCP non è disponibile la stazione non può collegarsi alla rete.
Quando il server riceve una richiesta da una stazione assegna alla stazione un indirizzo IP disponibile da uno degli intervalli definiti e stabilisce per quanto tempo la stazione lo può utilizzare. Periodicamente il client contatterà il server per rinnovare l'assegnazione (oppure può rilasciare l'indirizzo anche prima dello scadere del tempo).
Il server DHCP oltre all'indirizzo IP può fornire al client altre informazioni di configurazione come la maschera di sottorete, il gateway predefinito o il server DNS.

APIPA

Windows 2000 oltre a DHCP offre un servizio di assegnazione dinamica degli indirizzi chiamato APIPA (Automatic Private IP Addressing) che configura automaticamente il computer con un indirizzo IP privato (in un intervallo riservato da IANA).

UPnP

UPnP (Universa! Plug and Play), ideato dall'UPnP Forum, è un'architettura per collegare automaticamente stazioni o periferiche (anche mobili) a una rete.
Permette il collegamento automatico dei dispositivi e l'autoconfigurazione senza bisogno di driver; inoltre ogni dispositivo è autonomo; non serve un computer perché una periferica possa offrire i propri servizi; per esempio uno scanner potrebbe richiedere una stampa direttamente alla stampante.
Si basa su un modello client/server in cui ci sono dispositivi che offrono servizi e punti di controllo che usano i servizi.
Si basa sul protocollo HTTP e su XML.
Quando il dispositivo si accende deve registrarsi: usa uno dei metodi di configurazione automatica per ottenere un indirizzo IP, poi invia messaggi multicast con la propria identità e i servizi offerti (tramite un'estensione del protocollo HTTP che usa il metodo NOTIFY); poi rimane in attesa di richieste dai punti di controllo.
Le richieste vengono fatte mediante i metodi GETe POSTdel protocollo HTTP; il dispositivo risponde con documenti XML che contengono i dettagli sul dispositivo o il servizio richiesto o i risultati dell'esecuzione.

 

Protocollo IP

II protocollo IP è un protocollo instradabile che si occupa di portare a destinazione le informazioni che arrivano dal livello di trasporto inserendole in pacchetti (o datagram).
È un protocollo non connesso e non affidabile. Ogni pacchetto diretto verso una certa direzione può seguire un percorso diverso dagli altri, arrivare in ordine diverso da quello di invio o anche non arrivare affatto. La consegna non è garantita ma il protocollo IP non se ne preoccupa; l'affidabilità viene garantita dal protocollo TCP a livello di trasporto.
Se il destinatario si trova sullo stesso segmento di rete il pacchetto viene inviato direttamente (tramite ARP), altrimenti bisogna esaminare la tabella di routing del mittente per trovare il router a cui inviare il pacchetto; se la rete di destinazione non è presente nella tabella il pacchetto viene inviato al router predefinito.
Il protocollo IP supporta la frammentazione dei pacchetti; i pacchetti possono attraversare reti che usano qualsiasi tecnologia e che permettono qualsiasi dimensione massima di fra-me perché i pacchetti possono essere suddivisi in pezzi più piccoli. Ogni frammento del pacchetto ha un identificatore del pacchetto a cui appartiene e un numero di sequenza del frammento; un bit indica se ci sono altri frammenti o se si tratta dell'ultimo del pacchetto; un bit viene usato per segnalare ai router di non frammentare il pacchetto; se un pacchetto non si può frammentare ed è troppo grande per attraversare una rete viene scartato.
Il protocollo IP supporta anche il multicasting attraverso l'utilizzo di indirizzi di classe D e la gestione di stazioni mobili.

 

ARP

Per essere realmente spedito a una stazione il pacchetto IP deve essere inserito in un frame del livello di data link ed essere inviato sul mezzo fisico; il frame deve contenere l’indirizzo fisico della stazione, di solito l'indirizzo MAC.
Per inviare un frame a una stazione bisogna trasformare l’indirizzo IP del destinatario nel suo indirizzo MAC.
La risoluzione dell'indirizzo IP in un indirizzo MAC viene effettuata tramite il protocollo ARP (Address Resolution Protocol).
Una stazione che deve spedire un pacchetto ad un'altra stazione sulla stessa rete locale manda in broadcast sulla rete un pacchetto contenente l'indirizzo IP della stazione destinataria (ARP non si appoggia sul protocollo IP ma direttamente sulla rete locale); tutte le stazioni lo ricevono ma solo la stazione che ha quell'indirizzo IP risponde mandando il proprio indirizzo MAC.
Esistono varie ottimizzazioni per rendere più efficiente ARP.
Il risultato delle richieste ARP (le combinazioni indirizzo IP, indirizzo MAC) viene memorizzato nella cache ARP in modo da non dover ripetere la richiesta per l'invio di altri pacchetti. Per evitare che il destinatario debba a sua volta usare il protocollo ARP per rispondere al mittente, il mittente può includere nel proprio pacchetto ARP il suo indirizzo IP e il suo indirizzo MAC; il destinatario può inserire questi valori nella cache per la risposta; in realtà non solo il destinatario ma tutte le stazioni possono farlo.
Un'altra ottimizzazione, che permette anche di controllare se esistono più stazioni con lo stesso indirizzo IP, consiste nell'invio da parte di ogni stazione, all'inizializzazione, di un pacchetto di ricerca del proprio indirizzo IP, contenente anche indirizzo IP e MAC del mittente; tutte le stazioni possono registrare i valori nella propria cache e non dovrebbe esserci risposta; se c'è vuoi dire che un'altra stazione ha lo stesso indirizzo IP.
Per permettere la gestione di cambiamenti della rete (per esempio per modifiche alla con­figurazione) ogni voce nella cache ARP è configurata con un tempo di vita (TTL - Time To Live); allo scadere del tempo la voce viene cancellata dalla cache; il contatore del tempo di vita viene reinizializzato ogni volta che si utilizza la voce della cache. La cache può contenere un numero massimo di voci; se è piena si elimina la voce più vecchia.
Se la destinazione si trova su una rete remota si deve mandare il pacchetto a un router (eventualmente a quello predefinito).
Per mandare il pacchetto al router bisogna conoscerne l'indirizzo MAC; il mittente cerca l'indirizzo MAC del router nella sua cache e se non è presente invia una richiesta ARP sulla rete.

 

Protocolli di trasporto del modello TCP/IP

II livello di trasporto del modello TCP/IP offre due protocolli di trasporto: TCP (Transmission Contrai Protocol) connesso e affidabile e UDP (User Datagram Protocol) non connesso e non affidabile.
Se l'applicazione usa UDP non può inviare più di 64 KB di informazioni per volta; UDP aggiunge ai dati un'intestazione.
Se l'applicazione usa TCP il flusso di dati viene spezzato in unità di dimensione massima 64 KB (ma in pratica di solito di 1500 byte); TCP aggiunge a ogni unità un'intestazione.
Ogni segmento del livello di trasporto (sia UDP che TCP) viene passato al livello di rete che aggiunge l'intestazione IP e usa il protocollo IP per portarlo a destinazione. Poiché IP è non affidabile i pacchetti potrebbero andare persi; UDP non se ne preoccupa; TCP invece aspet­ta la conferma che i pacchetti siano arrivati e in caso contrario ritrasmette le informazioni e se i pacchetti arrivano disordinatamente li riordina prima di passarli all'applicazione (garan­tisce che una sequenza di byte sia consegnata ordinatamente e senza errori).
La maggior parte delle applicazioni usa TCP come protocollo di trasporto. Le applicazioni che usano TCP sono di tipo client server.
UDP è usato quando è più importante la velocità della garanzia di consegna (per esempio in trasmissioni in tempo reale) o in trasmissioni dirette a molte destinazioni, o in trasmissioni client server che prevedono una richiesta e una risposta.

 

Porte e socket

L'indirizzo di destinazione o TSAP nel livello di trasporto del TCP/IP è chiamato porta.
La porta di destinazione indica l'applicazione con cui si vuole comunicare sulla stazione di destinazione; la stazione di destinazione è individuata dall'indirizzo IP. In pratica il punto di accesso della comunicazione (chiamato socket) è individuato dall'indirizzo IP della stazione e dal numero di porta dell'applicazione.
Per ottenere un servizio TCP si deve creare una connessione fra un socket del mittente e uno del ricevente; la connessione è identificata dalla coppia di socket.
Le porte sono numeri a 16 bit (valori da O a 65535).
I numeri di porta fino a 1023 sono riservati per servizi standard; sono noti come Well Known Ports e sono assegnati dalla IANA (Internet Assigned Numbers Authority). Diverse porte sono disponibili sia per TCP sia per UDP; si cerca di usare sempre lo stesso numero di porta.

 

Le applicazioni possono usare liberamente i numeri superiori a 1024.
Se il numero di porta di destinazione non è disponibile, la stazione destinataria usa il protocollo ICMP per mandare un messaggio per segnalare che la porta è irraggiungibile.

 

UDP

UDP (User Datagram Protocol) fornisce un metodo per spedire dati senza dover stabilire una connessione con il destinatario. Consegna le informazioni più velocemente del TCP. Inoltre permette comunicazioni multicast e broadacast non disponibili con TCP.

 

TCP

TCP (Transmission Contrai Protocol) è un protocollo che garantisce la consegna delle informazioni, in modo ordinato.
Per usare TCP bisogna stabilire una connessione tra mittente e destinatario; tutte le connessioni sono punto a punto e full duplex.
TCP non supporta il multicasting e il broadcasting.
Per la consegna TCP usa il protocollo I Pene è non connesso e non affidabile; quindi aggiunge i meccanismi per confermare il ricevimento dei dati (ack), per ritrasmettere i dati perduti o danneggiati (allo scadere di appositi timer), e per riordinare il flusso di dati; le applicazioni che usano TCP non devono preoccupasi di questi problemi.
TCP riceve un flusso di dati da una applicazione, lo spezza in unità lunghe al più 64 KB (ma di solito 1.500 byte) e spedisce queste unità come pacchetti IP; la destinazione conferma i dati ricevuti fino a un certo byte (modalità a flusso di byte) e ricostruisce il flusso originale di informazioni.
Applicazioni che usano TCP come protocollo di trasporto sono per esempio il servizio Web, SMTP, FTP e Telnet.

 

Segmenti TCP

II TCP vede i dati dell'applicazione come un flusso continuo di byte; ogni byte viene individuato da un numero di sequenza a 32 bit.
L'entità TCP del mittente spezza il flusso di byte in segmenti; ogni segmento contiene il numero di sequenza del primo byte contenuto nel campo dati. I segmenti TCP non preservano la suddivisione in messaggi dell'applicazione; un segmento può contenere dati ottenuti da parecchie operazioni di scrittura, oppure i dati ottenuti da una singola operazione di scrittura possono essere suddivisi su più segmenti.
La dimensione dei dati che possono essere trasportati in un segmento è al massimo 65.495 byte (il segmento deve essere contenuto in un pacchetto IP, che ha una dimensione massima di 65.535 byte e una intestazione di almeno 20 byte, e ha a sua volta una intestazione di 20 byte).
In realtà i segmenti in genere sono molto più piccoli; la dimensione dei segmenti è limitata dall'MTU (Maximum Transmission Unit) delle reti che deve attraversare. L'MTU è la dimensione massima di trame che una rete supporta (generalmente poche migliaia di byte) e il pacchetto IP che contiene il segmento TCP deve poter essere contenuto nel frame. La MTU locale può essere richiesta al livello di data link.

 

 

 

 

Header del frame

Header IP

Header TCP

Dati

 

 

 

 

Il segmento TCP deve essere contenuto in un pacchetto IP, che a sua volta deve essere contenuto in un frame.

Al momento di stabilire la connessione, le due entità TCP negoziano la dimensione dei segmenti; si scambiano la massima dimensione consentita (MSS - Maximum Segment Size), che di solito è la MTU del livello di data link meno 40 byte per le intestazioni IP e TCP, e utilizzano il valore più piccolo tra i due.
Se un pacchetto arriva a una rete in cui l'MTU è più piccolo, il router al confine divide il pacchetto in due o più frammenti che saranno riassemblati a destinazione; ogni nuovo pacchetto contiene sia l'intestazione IP che l'intestazione TCP (40 byte extra). Se il pacchetto non può essere frammentato (bit Non frammentare impostato) il router scarta il pacchetto e manda un messaggio ICMP al mittente segnalando che la destinazione è irraggiungibile e segnalando la MTU permessa per il tratto successivo. Al ricevimento di questo messaggio, il TCP regola la dimensione del segmento (la MTU specificata meno 40 byte).
Un segmento è formato da una intestazione di 20 byte (più alcune parti opzionali) e da zero o più byte di dati (fino a 65.495 byte). I segmenti con O byte di dati sono usati per gli ack e i messaggi di controllo.

 

DNS

In una rete che usa il TCP/IP ogni stazione è identificata da un indirizzo IP; al posto degli indirizzi si possono usare dei nomi; DNS (Domain Name System) è un sistema di risoluzione dei nomi usato principalmente per associare nomi di host e destinazioni di posta elettronica a indirizzi IP.
Prima del DNS, per poter usare i nomi al posto degli indirizzi, su ogni stazione doveva essere presente il file hosts che conteneva la lista dei nomi e i corrispondenti indirizzi IP; i nomi dovevano essere univoci in tutta la rete e il file hosts doveva elencarli tutti.

 

Nomi di dominio

II DNS usa un sistema di denominazione con una struttura gerarchica, suddiviso in domini (la suddivisione non dipende dalla posizione geografica ma è solo un raggruppamento organizzativo).
I nomi sono composti da due parti, il nome host e il nome di dominio o FQDN (Fully Qualified Domain Name); in questo modo i nomi delle stazioni possono essere duplicati, basta che siano univoci all'interno di un dominio.
Lo spazio dei nomi (domain name space o namespace di dominio) è una struttura ad albero che rappresenta tutti i domini; in cima all'albero si trova il dominio radice rappresentato da un punto (.).
I domini di massimo livello (TLD - Top Level Domain) sono di tre tipi: domini organizzativi (rappresentano il tipo di organizzazione), domini geografici (due caratteri che rappresentano una nazione definiti nella norma ISO 3166) e il dominio inverso (un dominio speciale chiamato in-addr.arpa che viene usato per la ricerca inversa, cioè per cercare il nome, noto l'indirizzo IP).
Ogni dominio può contenere host o sottodomini, che a loro volta possono essere suddivisi in altri sottodomini.
Il nome completo di un dominio si ottiene attraversando l'albero in modo inverso, dalla foglia alla radice (separando ciascun nome con un punto). I nomi dei domini sono insensibili alle maiuscole.
I nomi di massimo livello sono gestiti dall'InterNIC (Internet Network Information Center), che delega l'amministrazione di ogni dominio ad altre autorità; in Italia l'organizzazione responsabile dei nomi di dominio è il NIC (GARR - Gruppo Armonizzazione Reti per la Ricerca di Pisa).
Ogni dominio controlla la creazione dei suoi sottodomini e può assegnarne ad altri l'amministrazione.
I domini vengono creati in base alle necessità dell'organizzazione, non in base alla struttura fisica delle reti.


INTERNET

I servizi disponibili su Internet sono realizzati come applicazioni client/server che usano protocolli del livello di applicazione per la comunicazione e il protocollo TCP o il protocollo UDP per il trasporto dei dati.
I protocolli di applicazione più antichi sono Telnet (gestione di un terminale virtuale), FTP (trasferimento file) e SMTP (posta elettronica); più recentemente si sono diffusi NNTP (newsgroup) e HTTP (trasferimento di pagine Web).

 

II servizio Web

II servizio World Wide Web, noto comunemente come WWW o Web, è un insieme di pagine contenenti informazioni di natura molto varia, sparse nel mondo; le pagine sono ipertestuali cioè ogni pagina può contenere dei collegamenti ad altre pagine (collegamenti ipertestuali o link); facendo clic su un collegamento si può passare direttamente a un'altra pagina; il collegamento può essere costituito da una stringa di testo ma anche da una immagine o da una parte di un'immagine (un esempio comune sono i collegamenti disponibili su mappe geografiche: partendo dall'immagine di una cartina geografica viene reso disponibile un collegamento per ogni zona); un collegamento può fare riferimento non solo ad un'altra pagina ma anche a una risorsa di tipo diverso come un'immagine, un filmato o un file di suono. a
Un insieme di pagine Web costituisce un sito Web; le pagine sono rese disponibili per la consultazione da computer su cui è installato un programma chiamato server Web. Per consultare le pagine bisogna utilizzare un programma chiamato browser (la parte client del servizio Web). I browser più noti sono Internet Explorer e Netscape Navigator. Il browser richiede una pagina al server tramite il protocollo HTTP (Hyper Text Transfer Protocol, cioè protocollo di trasmissione dell'ipertesto); il server, ancora tramite il protocollo HTTP, restituisce al browser la pagina richiesta; le pagine sono costituite da testo che contiene dei codici (tag HTML); il browser interpreta i codici e in base a questi stabilisce come devono apparire sullo schermo le varie parti della pagina.
Il servizio Web è nato nel 1989 al CERN, il Centro Europeo per la Ricerca sulla fisica Nucleare; il primo browser con interfaccia grafica (Mosaic) risale al 1993. Nel 1994 venne costitu­ito il Consorzio World Wide Web, un'organizzazione dedicata allo sviluppo del Web e alla standardizzazione dei suoi protocolli (wiviv.iv3.org).
Appena avviato, il browser presenta la home page, cioè una pagina configurata come pagina iniziale.
Poi si può passare ad altre pagine facendo clic sui collegamenti; i collegamenti appaiono sottolineati e quando vi si posiziona il mouse il puntatore assume la forma di una mano. Si può passare ad una nuova pagina anche specificandone l'indirizzo.

 

URL e URN

L'indirizzo di una pagina Web è chiamato URL (Uniform Resource Locator) e ha la forma protocollo://nomeserver/path.
L'URL permette di definire qual è la pagina, dove si trova e come vi si può accedere ed è composto da tre parti:
• il protocollo usato (per esempio http) che definisce come deve essere fatta la richiesta;
• il nome del server Web, cioè del computer su cui si trova la pagina desiderata;
• il path della pagina, cioè il percorso completo della cartella e il nome del documento, con l'estensione, sul server.
Alcune parti possono essere omesse; per esempio se non si indica il protocollo viene usato il protocollo http per default; se non si indica il path di una pagina viene visualizzata la pagina di default del server, se il server è stato configurato in questo modo (la pagina di default di solito si chiama index.html o deafult.htmt).
Lo schema dell'URL è aperto nel senso che si possono specificare protocolli diversi (come file, ftp, news, mailto, telnef); per esempio si può usare il protocollo file per aprire una pagina che si trova sul proprio computer (file://drive:/path).
Gli URL identificano una risorsa puntando a uno specifico server; se la risorsa viene sposta­ta, usando l'URL non si è più in grado di trovare la risorsa; inoltre una copia identica della risorsa su un altro server ha un URL diverso.
Per risolvere questi problemi è stato proposto un sistema di identificazione delle risorse più efficiente, chiamato URN (Uniform Resource Name).
Un URN è un identificatore che può essere associato ad ogni risorsa su Internet con le seguenti caratteristiche:
• è unico,
• è indipendente dalla posizione della risorsa,
•  non può essere assegnato a un'altra risorsa anche se la risorsa che identifica non esiste più,
• ciascuna risorsa può essere presente in più copie su server diversi, per facilitare l'accesso (a ogni URN possono corrispondere molti URL).
Il processo di determinazione degli URLdall'URN viene detto risoluzione ed è effettuato da un servizio di risoluzione del nome (name resolution service).
I nomi vengono assegnati da autorità dette naming authority.

 

Uso del browser

II browser può essere usato per esaminare pagine che si trovano sul proprio computer o che sono rese disponibili da un server Web.
Il browser permette di accedere alle pagine con vari metodi:
• il metodo più comune è seguire un collegamento ipertestuale; i collegamenti di solito appaiono in colore diverso e sottolineati; se sono immagini hanno un bordo; il puntatore quando si trova su un collegamento assume la forma di una mano; la barra di stato mostra l'URL a cui punta il collegamento;
• si può specificare un URL nella barra degli indirizzi e premere Invio (la barra degli indirizzi mostra sempre l'indirizzo della pagina Web corrente, in qualsiasi modo ci si sia arrivati);
• si possono usare dei pulsanti (Avantie Indietro) che permettono di rivedere comoda­mente le pagine già visitate durante la sessione; può essere disponibile anche un elenco delle pagine visitate in passato;
• si possono creare dei segnalibri (o bookmark) alle pagine preferite, che si visitano più spesso, e inserirli in un menu.
Le pagine già visitate sono memorizzate in una cache e quindi è possibile anche visualizzarle in modalità non in linea.
Le pagine interessanti possono essere stampate o salvate su disco.

 

Motori di ricerca

Se non si conosce l'indirizzo delle pagine relative all'argomento desiderato si può fare una ricerca usando una Web directory o un motore di ricerca. Per accedere a un servizio di ricerca basta accedere alla pagina Web corrispondente.
Entrambi i servizi restituiscono una pagina contenente un elenco di collegamenti alle pagine di interesse; per esaminare una pagina basta seguire il relativo collegamento.
Le Web directory sono indici sistematici cioè liste di risorse organizzate in modo gerarchico: vi sono argomenti generali suddivisi in sottoargomenti e così via fino ad armare, all'ultimo passo, ad un elenco di collegamenti a pagine relative a un certo argomento, con una breve descrizione; la classificazione delle risorse è fatta da persone che decidono in quale categoria inserire una certa pagina; una pagina può essere inserita anche in più di una categoria.
I motori di ricerca permettono di indicare in un modulo una o più parole chiave (eventualmente usando operatori booleani), in combinazione con altri criteri di ricerca (per esempio cercando le parole chiave solo nei titoli o nei collegamenti ipertestuali, restringendo la ricerca a pagine create in un certo periodo o che appartengono a un certo sito ecc.) e di ottenere un elenco di collegamenti a pagine più o meno attinenti.
I motori di ricerca eseguono la ricerca in un database che associa ad ogni parola chiave un elenco di indirizzi di pagine costruito in modo automatico da programmi (chiamati con nomi come spider, crawler, worm) che visitano appositamente il Web. Poiché l'associazione delle pagine alle parole chiave è fatta automaticamente, i motori di ricerca possono restituire collegamenti a pagine non rilevanti. Per ottenere buoni risultati bisogna scegliere bene i termini e le caratteristiche della ricerca, anche se i motori di ricerca lavorano in modo intelligente pesando i risultati per esempio in base al numero di Decorrenze dei termini o alla presenza dei termini in punti significativi come titoli o link.
I programmi spider usano algoritmi per visitare i nodi di un grafo (il Web è un grafo con nodi le pagine e archi i collegamenti ipertestuali); la difficoltà è costituita dal fatto che il grafo cambia continuamente e che è enorme.
In pratica le Web directory si possono paragonare al sommario di un libro, i motori di ricerca all'indice.
Conviene usare una Web directory per cercare informazioni generali o avere una panoramica sulle informazioni relative a un certo argomento e un motore di ricerca per trovare informazioni specifiche.
Web directory e motori di ricerca possono restituire solo i collegamenti a pagine che conoscono; non esiste un elenco completo di tutte le pagine Web; è possibile quindi che pagine che sarebbero attinenti non vengano segnalate e che usando strumenti diversi si ottengano risultati diversi.

 

II protocollo HTTP

Per consultare una pagina Web il browser stabilisce una connessione TCP con il server; il server Web per default resta in ascolto sulla porta 80; dopo aver stabilito la connessione il client invia una richiesta e il server risponde; poi la connessione viene chiusa; se la pagina contiene immagini, per ogni immagine viene ripetuto il procedimento, aprendo una nuova connessione.
Il protocollo HTTP (Hyper Text Transfer Protocol) definisce il formato delle richieste del browser e delle risposte del server, descrivendo in dettaglio le intestazioni e il corpo dei messaggi (simili a RFC 822 MIME); ogni interazione tra client e server consiste in una sola richiesta e una sola risposta.
Il protocollo HTTP è privo di stati, cioè ad ogni connessione non ricorda cosa è avvenuto in precedenza; per mantenere informazioni ottenute nelle connessioni precedenti si possono usare i cookie (stringhe di testo memorizzate nel computer dell'utente).
Le richieste del client chiedono di trasferire un file di risorse (documento di testo, immagine, file audio o video ecc.) dal computer del server al computer del client.
Il server per ogni richiesta manda un messaggio di risposta, poi chiude la connessione.

 

WAP

WAP (Wireless Application Protocol) è un protocollo che permette di accedere a pagine Web da telefoni cellulari.
Il protocollo WAP è trasparente rispetto al protocollo di comunicazione telefonica, si può cioè usare con qualsiasi sistema di telefonia cellulare, come GSM o UMTS; la differenza è solo nella banda disponibile.
Le pagine devono essere preparate appositamente usando il linguaggio WML (un linguaggio definito tramite XML).

 

Server Web

Per offrire un servizio Web su Internet o in una intranet si può usare un programma di gestione server Web.
I principali server sono Apache (gratuito, di pubblico dominio) in ambiente Unix (ma anche Windows) e Internet Information Server (gratuito) su server Windows.
Dal tipo di server dipendono prestazioni, affidabilità e sicurezza.
Per esempio può variare il numero di browser che possono accedere contemporaneamente al sito e la velocità di risposta.
La funzione di gestione dei server virtuali permette di gestire più siti Web su un unico server.
L'amministrazione può avvenire mediante un'interfaccia grafica ma anche tramite un'interfaccia testuale a linea di comando.
La configurazione di un server Web richiede tra l'altro di indicare in quale directory memorizzare le pagine Web e che tipo di accesso è possibile usare.
L'accesso alle pagine Web può essere anonimo oppure in base ad autenticazione (in tal caso l'accesso iniziale del browser provoca l'apparizione di una finestra di dialogo con la richiesta di account e password).

 

IIS - Internet Information Server

Internet Information Server comprende i server Web, FTP, NNTP e SMTP (ma solo per l'invio di posta; non si possono creare caselle di posta per gli utenti).
Si può installare IIS da Installazione applicazioni, Installazione componenti di Windows; basta selezionare IIS e poi i componenti desiderati.
Si possono configurare e gestire i server da Programmi, Strumenti di amministrazione, Gestione servizi Internet. A sinistra, facendo doppio clic sul nome del server, si vedono i servizi gestiti; facendo clic destro su un servizio e scegliendo Proprietà si può configurare il servizio.
//Sviene caricato come servizio ed eseguito in background; dopo l'installazione tutti i servizi specificati sono attivi e in esecuzione.

 

Configurazione del Server Web IIS

Durante l'installazione del server Web si devono inserire l'indirizzo IP del server, il nome del computer, l'indirizzo di posta dell'amministratore del server Web e l'indirizzo IP del server DNS.
Per provare il funzionamento del server basta inserire nella barra indirizzi del browser l'indirizzo del computer su cui è attivo il server (in una intranet basta http://nomecomputer).
IIS memorizza una home page di default (default.htm) nella cartella \inetpub\wwwroot.
Tutte le pagine Web che devono essere pubblicate vanno inserite nella cartella \inetpub\wwwroot, eventualmente in sottocartelle. Alla richiesta dell'URL http:/unadir/unfile.htm viene cercato il file c:\inetpub\wwwroot\unadir\unfile.htm.
Viene creata automaticamente anche una cartella scriptscon le autorizzazioni di Esecuzione (non di Lettura) per gli script.
Il server Web di IIS permette l'esecuzione di applicazioni ASP.
Si può configurare il server Web da Programmi, Strumenti di amministrazione, Gestione servizi Internet, facendo clic destro sul server Web e scegliendo Proprietà. La finestra Proprietà presenta varie schede.
La scheda Sito Web contiene:
•  l'identificazione del server (descrizione, indirizzo IP e porta),
•  la sezione Connessioni che permette di scegliere tra connessioni Illimitate o Limitate a (indicando il numero) e di indicare il Timeout, cioè il tempo di inattività dopo cui ci si disconnette),
•  la sezione Consenti registrazione attività che attiva la scrittura in file di log per sapere chi accede al server (da quali indirizzi IP) e quando; abilitando i registri del server si ottengono molte informazioni sulle richieste degli utenti (si vedono le pagine in cui gli utenti hanno fatto clic per arrivare al sito, le stringhe di ricerca usate nei motori di ricerca, e quale motore hanno usato, le aree visitate ecc.); è quindi possibile analizzare le richieste e migliorare il sito di conseguenza.
La scheda Home directory definisce la directory radice del server Web che per default è c:\inetpub\wwwroot, presenta inoltre quattro caselle di selezione che permettono di abilitare i tipi di accesso:
•  accesso origine script si può vedere il sorgente degli script (anche quello delle pagine ASP),
•  lettura: si possono vedere i file ma non si possono fare modifiche o aggiungere altri file,
scrittura: si possono aggiungere altri file (cioè effettuare upload) o modificare i file (biso­gna usare il metodo PUTdì HTTP 1.1),
•  esplorazione directory. se manca il file di default, si ottiene un elenco del contenuto della directory.
La scheda Documenti permette di abilitare l'uso di pagine predefinite con la casella di selezione Abilita documenti predefiniti e di specificare i nomi dei file di default (di solito default.htm o index.htm ma anche quelli predefiniti di ASP: default.asp e iisstart.asp).
La scheda Errori personalizzati permette di specificare il file html da restituire per ogni specifico errore http.
La scheda Protezione directory contiene numerose opzioni relative alla protezione:
• permette di abilitare l'accesso anonimo o un metodo di autenticazione (di base, Challenge/ Response e Digest Authentication);
• permette di specificare chi può accedere al server in base agli indirizzi IP; si può specificare chi ha l'accesso consentito o chi ha l'accesso negato;
• permette anche di fare in modo che il server adotti comunicazioni protette fra gli utenti e il sito usando SSL, PCI o TSL.
Se è abilitato l'accesso anonimo (consentito per default) si può accedere al server, tramite il browser, senza specificare nome utente e password. Per l'accesso anonimo viene usato l'account IUSR_nomecomputer, un account creato automaticamente con diritti minimi durante l'installazione. Si possono modificare le autorizzazioni di IUSR_ nomecomputer, come si fa per gli altri account.
Se non è abilitato l'accesso anonimo per accedere al server si deve usare un account utente; ogni richiesta iniziale da parte di un client provoca l'apparizione di una finestra di dialogo per l'autenticazione.
Se è abilitato l'accesso anonimo e anche uno dei metodi di autenticazione viene richiesta la password se si tenta l'accesso a una risorsa su NTFS che non consente l'accesso a IUSR_nomecomputer.
Il metodo Challenge/Response, noto anche come Integrateti Windows Authentication (Autenticazione integrata di Windows) o NTLM, può essere usato se il server è in una intranet; funziona solo in una rete locale Windows e solo con internet Explorer. Utilizza l'account con cui ci si è autenticati per l'accesso a Windows; se l'utente ha le necessarie autorizzazioni l'autenticazione è automatica e trasparente per l'utente, altrimenti gli vengono chiesti nome, password e dominio.

 

II servizio di posta elettronica

 

Funzionamento del servizio

II servizio di posta elettronica (o e-mail) permette di inviare messaggi ad altri utenti. Ogni utente ha una casella di posta (mai! box) in cui vengono memorizzati i messaggi che gli sono stati inviati; i messaggi vengono letti su esplicita richiesta del destinatario, che quindi può anche non essere presente all'arrivo del messaggio.
Mittente e destinatario devono avere un account di posta cioè un indirizzo di posta elettronica (e-mail address), assegnato dal provider, che individua una casella di posta, e una password; l'indirizzo ha la forma nomeUtente@nomeServerdove nomeServenndica il computer del provider su cui si trova la casella di posta dell'utente (il simbolo @ viene letto "et", la pronuncia della parola inglese at, oppure chiocciola). Molti provider offrono account di posta gratuiti.
Un indirizzo di posta non sempre si riferisce a una persona; un indirizzo può fare riferimento a un programma (robot o mail server) che risponde automaticamente in base al contenuto del messaggio.
Per gestire la posta serve un programma apposito; con i sistemi Windows sì ha a disposizio­ne Outlook Express. Il programma di gestione della posta (client di posta o agente utente) permette di comporre i messaggi da spedire e di visualizzare e gestire i messaggi in arrivo. Bisogna configurare il sistema di posta indicando il proprio account (la prima parte dell'indirizzo) e il nome dei due server di posta usati rispettivamente per spedire e ricevere i messaggi; per spedire i messaggi viene usato il protocollo SMTP, mentre per la ricezione il protocollo più comune è POP3.
Il messaggio è costituito da due parti: l'intestazione e il corpo; il corpo è il contenuto vero e proprio del messaggio; l'intestazione contiene informazioni di controllo come il mittente, il destinatario e l'oggetto (subject); i programmi di posta possono già impostare alcuni campi e nascondere quelli meno significativi per l'utente (per esempio quando si risponde a un messaggio il campo oggetto viene impostato automaticamente a Re: oggetto del messaggio a cui si risponde).
Per inviare un messaggio si deve preparare l'intestazione con l'indirizzo del destinatario o dei destinatari e l'oggetto del messaggio, e scriverne il testo; questa operazione può essere fatta off line; per la spedizione vera e propria ci si deve collegare al server SMTP che provvede a recapitare il messaggio nella casella di posta del destinatario. Il messaggio viene racchiuso in una busta che contiene le informazioni necessarie per trasportare il messaggio a destinazione come l'indirizzo del destinatario, la priorità e il livello di sicurezza; dopo che un messaggio è stato inviato, gli agenti di trasferimento messaggi (programmi sempre attivi in background) trasferiscono la posta a destinazione attraverso la rete, usando le informazioni della busta.
Se l'indirizzo del destinatario è errato il messaggio non può essere consegnato; se il server di destinazione è sconosciuto il messaggio non viene nemmeno accettato dal server; nel caso sia il nome utente ad essere sconosciuto, il messaggio viene inviato al server di destinazione e il server restituisce un messaggio di avvertimento.
Per esaminare la posta ricevuta bisogna collegarsi al server POP3 che gestisce la propria casella di posta e scaricare i messaggi dalla casella; per scaricare i messaggi bisogna forni­re la propria password; una volta scaricati i messaggi si può continuare off line per esaminare i messaggi e preparare le risposte.
Quando si esaminano i messaggi in arrivo si vede un sommario in cui ogni linea contiene diversi campi estratti dalla busta o dall'intestazione; l'utente può configurare il sistema per specificare quali campi visualizzare; poi l'utente può leggere i messaggi, rispondere, memorizzare o cancellare i messaggi, inoltrarli (cioè inviarli a qualcun altro) e così via.
Quando si scrive un messaggio bisogna ricordarsi che ci sono alcune convenzioni da seguire; per esempio bisogna scrivere in minuscolo perché scrivere in maiuscolo equivale a urlare; poi per chiarire il tono di una frase si possono usare dei simboli chiamati emoticons o smiley (insiemi di caratteri che, se ruotati, assomigliano a una faccina con una particolare espressione), per esempio :-) indica una frase detta in tono scherzoso e :-( indica che l'autore è dispiaciuto.
Quando si risponde ad un messaggio è bene inserire all'inizio parte del messaggio a cui si risponde; le righe citate da un altro messaggio vanno evidenziate (per esempio precedute dal carattere >).
Di norma i messaggi devono comprendere solo i caratteri del codice ASCII ristretto (i primi 128 caratteri che non comprendono per esempio le lettere accentate).
La posta elettronica può servire anche per scambiarsi file binari come piccoli file eseguibili o file audio e video (per esempio posta vocale e messaggi video). I file devono essere allegati al messaggio (file attachment) e vengono codificati automaticamente dai programmi di posta in modo da usare solo l’ASCII ristretto; in genere la codifica avviene usando lo standard MIME. Al momento della ricezione il file viene decodificato e può essere salvato su disco.
I programmi di gestione della posta offrono anche molte funzioni aggiuntive: è possibile richiedere una conferma del ricevimento del messaggio (ricevuta di ritorno); si possono impostare filtri o regole per i messaggi in arrivo, che specificano una condizione e una azione corrispondente; in questo modo è possibile per esempio rispedire temporaneamente la posta a un indirizzo diverso o inviare una risposta predefinita ad ogni messaggio in arrivo; si può firmare il messaggio (usando un codice di identificazione personale dell'utente) in modo da autenticare il messaggio; si può crittografare il messaggio in modo che non possa essere compreso da eventuali intrusi che lo intercettino.
La posta elettronica è un mezzo molto economico di comunicazione; questo può portare ad un abuso del mezzo; un esempio è lo spamming, l'invio, non richiesto, di messaggi pubblicitari via posta elettronica; l'indirizzo di un utente, preso per esempio dalla sua pagina Web o dai mittenti di messaggi a un newsgroup, può essere inserito in elenchi per l'invio di messaggi pubblicitari; ci può essere addirittura un commercio di questi elenchi; questa attività in Italia è illegale.

 

Gestione della posta da una pagina Web

Ormai tutti i provider permettono di gestire la posta da una pagina Web che presenta dei campi in cui inserire nome utente e password.
Compare una tabella con i campi di intestazione dei messaggi ricevuti; per leggere un messaggio basta fare clic sulla riga desiderata; ci sono pulsanti per rispondere, inoltrare o cancellare i messaggi.
Si può anche comporre un nuovo messaggio, allegare file, e inviarlo.
La gestione della posta dalla pagina Web richiede di rimanere collegati a Internet (gestione della posta on line).
Questo metodo è utile quando si vuole gestire la posta da un computer diverso da quello che si usa di solito perché non serve configurare il client di posta; inoltre i messaggi rimangono sul server e quindi è possibile poi rivederli e scaricarli dal proprio computer (comunque anche i client di posta si possono configurare per lasciare i messaggi sul server); bisogna però ricordare che lo spazio disponibile nella casella di posta è limitato e quindi bisogna scaricare o cancellare regolarmente i messaggi.

 

Mailing list

Le mailing list permettono lo scambio di messaggi all'interno di un gruppo di persone che si iscrivono a una lista; una lista è un elenco di indirizzi di posta; ogni volta che si manda un messaggio alla lista il messaggio viene inviato automaticamente a tutti gli iscritti alla lista.
La lista è gestita da un programma chiamato listserver (programmi di questo tipo sono per esempio Listserv, listproc e majordomo); lista e listserver risiedono su un server di posta. La mailing lisi dispone di due indirizzi:
•  un indirizzo al quale si inviano i messaggi che si vogliono distribuire agli iscritti;
•  un indirizzo relativo al listserver a cui si inviano i messaggi per iscriversi alla lista o cancellare l'iscrizione; questi messaggi in genere devono contenere una frase standard come SUBSCRIBE nome lista o UNSUBSCRIBE nomelista; per avere un elenco dei comandi di solito basta mandare un messaggio contenente la parola HELP.
Alcune liste sono moderate cioè c'è una persona che esamina i messaggi inviati e decide quali devono essere distribuiti agli iscritti e quali no.
Inoltre ci sono liste pubbliche, alle quali tutti possono iscriversi e liste riservate, per esempio per i dipendenti di una azienda.
Per iscriversi a una mailing list bisogna cercare l'indirizzo della mailing list che interessa e inviare il messaggio di iscrizione; spesso nelle pagine Web sono presenti dei collegamenti che permettono di effettuare in modo automatico l'iscrizione a una mailing list (per esempio per ottenere informazioni pubblicitarie, aggiornamenti sui prodotti ecc.).
Di solito quando ci si iscrive a una mailing list si ottiene in risposta un messaggio con la descrizione del funzionamento della mailing list e con le istruzioni per disdire l'iscrizione.
Per alcune liste esiste un gateway con un newsgroup, cioè i messaggi inviati alla lista sono anche consumabili come articoli del newsgroup corrispondente (e viceversa).

 

Formato dei messaggi

II formato dei messaggi di posta elettronica è definito nella RFC 822.
L'RFC 822 si riferisce a messaggi di testo che usano solo i caratteri del codice ASCII ristretto. Il formato del messaggio comprende una busta, alcuni campi di intestazione, una linea bianca e il corpo del messaggio; usa solo testo ASCII a 7 bit e linee che non superano i 1000 caratteri.
Per poter inviare messaggi che contengono lettere accentate o per allegare file (immagini, programmi eseguibili ecc.) bisogna usare un'estensione di RFC 822 chiamata MIME (Multiporpose Internet Mail Extensions).
In pratica si usa ancora lo standard RFC 822 ma vengono aggiunte nuove intestazioni e vengono definite delle regole di codifica in modo che tutto sia inviato come codice ASCII; in questo modo si possono continuare a usare gli stessi programmi e protocolli di posta, cambiando solo gli agenti utente.

 

Protocollo SMTP

Per inviare il messaggio si usa il protocollo SMTP (Simple Mail Transfer Protocol) per comunicare con il server di posta (server SMTP).
Perché i messaggi possano essere trasmessi al server SMTP, il client deve essere in grado di risolvere il nome del server che compare nell'indirizzo e-mail in un indirizzo IP tramite il DNS (record MX).
Viene stabilita una connessione TCP con il server destinatario che è in attesa sulla porta 25; il server copia i messaggi nelle appropriate caselle postali; se non è possibile viene spedita al mittente una notifica di errore.
SMTP definisce il formato dei messaggi usati per la comunicazione tra client e server SMTP; i messaggi sono semplice testo ASCII.

 

Protocolli POP3 e IMAP

Per leggere i messaggi si può usare il protocollo POP3 (Post Office Protocol) per comunicare con il server di posta POP3.
Viene stabilita una connessione TCP con il server sulla porta 110; i messaggi vengono copiati dalla casella di posta al computer dell'utente.
Un altro protocollo per la lettura dei messaggi è IMAP (Interactive Mail Access Protocol) che permette di leggere la posta dal server senza copiarla sul computer dell'utente; in questo modo si può accedere alla propria posta da computer diversi.

 

I newsgroup

I newsgroup sono gruppi di discussione pubblici (o conferenze) sugli argomenti più svariati. Si può pensare a un gruppo come a un insieme di messaggi affissi in una bacheca; chiunque è interessato può leggere i messaggi e inviare propri messaggi.
I newsgroup sono chiamati anche gruppi Usenet perché all'inizio venivano diffusi su una rete di sistemi Unix (che non era la stessa rete Internet) chiamata Usenix network (usando un programma chiamato uucp).
Per leggere i messaggi (articoli) di un gruppo bisogna usare un programma lettore di news (news reader); Outlook Express funziona anche da news reader.
Tramite il lettore di news ci si collega a un news server e si sceglie il gruppo che interessa; la scelta del gruppo è chiamata iscrizione ma non è costituita da una vera e propria iscrizione come nel caso delle mailing list; è solo un'indicazione al lettore di news dei gruppi a cui si è interessati; inoltre i messaggi non vengono inviati agli iscritti ma rimangono sul server da dove si possono consultare; sul server c'è una sola copia di ogni articolo indipendentemente dal numero degli iscritti (diversamente dalle mailing list).
II lettore di news deve essere configurato con il nome del server news offerto dal proprio provider.
I server news non sono tutti uguali tra loro; ognuno può offrire solo una parte dei gruppi, selezionata dal provider; se si è interessati a un gruppo non disponibile sul proprio server bisogna chiedere al provider dì renderlo disponibile o cambiare provider.
I server news oltre ai newsgroup ufficiali possono offrire newsgroup locali; i newsgroup locali possono essere privati, cioè accessibili solo da chi ha un account sul server.
I gruppi sono organizzati in modo gerarchico; sono suddivisi in categorie per argomento (per esempio il gruppo comp per discussioni relative all'informatica) e per nazione (per esempio il gruppo it per gruppi italiani); ogni categoria è suddivisa in sottocategorie ricorsivamente; i nomi sono composti da parti separate da punti secondo la gerarchia (la categoria principale a sinistra e le sottocategorie procedendo verso destra).
I gruppi possono essere moderati, cioè può esserci una persona che esamina i messaggi in arrivo al gruppo e decide quali pubblicare e quali no. A volte esistono due versioni diverse dello stesso gruppo, una moderata e una no.
Per la creazione di nuovi gruppi ci sono delle regole molto rigide. La creazione di nuovi gruppi è più semplice e meno formale nella gerarchia alt (newsgroup alternativi).

Categorìe dei newsgroup
Categorie ufficiali per argomento (Big Eight)
comp informatica
news discussioni sulla rete stessa
sci scienza
humanities letteratura e studi umanistici
soc problemi sociali
ree attività ricreative
talk dibattiti di vario tipo
mise tutto ciò che non appartiene a qualche altro gruppo
Altre gerarchle
alt gerarchla alternativa
gerarchle nazionali come: it gruppi italiani fr gruppi francesi uk gruppi inglesi

II lettore di news quando viene avviato esamina l'elenco dei gruppi a cui si è iscritti e presenta l'intestazione degli articoli disponibili; l'utente può selezionare uno o più articoli che vengono visualizzati uno alla volta; dopo essere stato letto un articolo può venire scaricato, salvato o stampato.
Il lettore di news può essere configurato per specificare che gli articoli di un certo argomento o inviati da una certa persona vengano cancellati senza essere visualizzati (kill file). Si possono scaricare automaticamente gli articoli di un gruppo in modo da leggerli offline; il numero di articoli da scaricare può essere configurato, così come la possibilità di scaricare solo le intestazioni degli articoli o anche il loro contenuto.
I lettori di news permettono anche di pubblicare articoli (si dice anche postare articoli); la pubblicazione di un articolo è come l'invio di un messaggio di posta elettronica; il messaggio può essere inviato al gruppo (operazione chiamata followup) e allora potrà essere letto da tutti, oppure può essere inviato direttamente all'autore di un articolo; si può inviare un articolo anche a più gruppi contemporaneamente (pubblicazione multipla o crosspost); quando si invia un messaggio a più newsgroup è bene indicare su quale newsgroup proseguire la conversazione (followup).
Anche i messaggi dei newsgroup possono avere allegati che si possono aprire o salvare su disco in modo analogo agli allegati dei messaggi di posta. Possono però esistere delle limitazioni a questa possibilità; per esempio per quanto riguarda la gerarchia it il GCN ha stabilito che possano essere inviati solo messaggi di testo; i file di altro tipo, o file binari (come figure, documenti Word, file di suono ecc.) possono essere inviati solo ai gruppi it.binary. * (negli altri gruppi un robot controlla automaticamente i messaggi e cancella i file binari).
Quando un utente invia un articolo a un gruppo lo invia al proprio news server; i news server si scambiano gli articoli tra loro per diffondere gli articoli sulla rete (il protocollo usato si chiama NNTP); ci vuole un po' di tempo prima che l'articolo possa essere disponibile a tutti gli iscritti al gruppo. È possibile restringere l'area geografica di pubblicazione in modo che un articolo non venga propagato inutilmente in aree in cui non è di interesse. Se il messaggio viene inviato a un gruppo moderato, il messaggio non appare immediatamente nel gruppo, nemmeno sul server a cui si è collegati: viene inviato al moderatore e appare nel gruppo solo dopo la sua approvazione.
Gli articoli restano sul server solo per un certo periodo (alcuni giorni) poi vengono cancellati, quindi gli articoli disponibili sui server news sono solo quelli più recenti.
Gli articoli dei newsgroup di solito contengono emoticons e molte espressioni in gergo come BTW (by the way, a proposito ) o ROFL (rolling on the floor laughing, da morir dal ridere) o IMHO (in my humble opinion, a mio modesto parere).
I newsgroup vengono usati spesso per porre una domanda cercando qualcuno che sappia rispondere; poiché è frequente che la stessa domanda sia posta molte volte da utenti occasionali diversi, ogni newsgroup contiene un documento chiamato FAQ (Frequently Asked Question) con le risposte alle domande che fanno i principianti (chiamati in gergo anche newbie); in genere un articolo contenente le FAQ viene pubblicato periodicamente nel newsgroup (oppure si possono consultare le FAQ da siti Web o scaricarle via FTP); prima di partecipare alla discussione in un newsgroup è bene consultare le FAQ del newsgroup stesso.
Per pubblicare un articolo in modo anonimo si può utilizzare un remailer, un servizio che accetta messaggi di posta e modifica i campi relativi al mittente (intestazioni From, Sendere Replay To) in modo che puntino al remailer invece che al mittente. Di solito il remailer assegna un identificatore a ogni utente e rispedisce all'utente i messaggi a lui destinati, inviati al remailer.
Per la consultazione delle news si deve usare il news server offerto dal proprio provider; ci sono però anche dei news server pubblici che possono permettere solo la possibilità di leggere le news o anche di inviare articoli; ci sono inoltre siti che permettono di consultare i newsgroup via Web.

 

Il servizio FTP

II protocollo FTP permette di trasferire file tra due computer ove siano stati installati rispettivamente un server FTP e un client FTP.
Un client FTP può scaricare file dal server (operazione di download) o, se ne ha il permesso, caricare file sul server (operazione di upload).
Il servizio FTP può essere usato in due modi: FTP anonimo (il metodo più noto e comune) e FTP con account.
Con l'FTP anonimo l'utente non comunica chi è e può solo scaricare i file che il server FTP rende disponibili agli utenti anonimi.
Con l'FTP con account l'utente deve disporre di un account sul server; quando si collega al server deve fornire nome e password e può inviare comandi al server per scaricare file, inviare file, creare directory o cambiare directory sul server e così via; ciò che può fare dipende dai diritti e dalle autorizzazioni che gli sono stati accordati; questo metodo viene usato per esempio per consentire l'accesso completo ad una directory (o più) per la pubblicazione di pagine Web.
Il trasferimento dei file può avvenire in modalità ascii, la modalità di default usata per i file di testo (che esegue la conversione tra metodi di codifica diversi usati dalle due stazioni), o in modalità binaria usata per i file non di testo come file grafici ed eseguibili.
Per accedere a un server FTP e usare il servizio FTP si può usare un programma client FTP (esistono client FTP con interfaccia a caratteri e con interfaccia grafica) ma più semplice­mente anche un browser, specificando nell'URL il protocollo ftp.
Si può usare il servizio FTP anche senza rendersene conto; spesso le pagine Web contengono collegamenti a file che possono essere scaricati, come esempi, plug-in o applicazioni. Il collegamento in realtà fa riferimento a un file reso disponibile tramite un server FTP e facendo clic sul collegamento si può salvare il file sul proprio computer.
L'uso più comune del servizio FTP è l'FTP anonimo per scaricare file da server FTP che mettono a disposizione file; i file che si possono scaricare di solito sono compressi per ridurre i tempi di scaricamento e sono costituiti da programmi freeware e shareware. Per garantire un servizio migliore e alleggerire l'accesso ai server FTP si utilizzano tecniche di mirroring; esistono dei server FTP, chiamati mirror, che duplicano le informazioni presenti sul server originale.
È quindi conveniente scaricare il file dal server mirror più vicino geograficamente per ridurre il tempo di scaricamento.
I mirror vengono aggiornati periodicamente; quindi è possibile che non siano in un certo momento la copia esatta del server originale. Se si cerca un programma o un aggiornamento molto recente è possibile che non sia disponibile nel server mirror e che lo si debba scaricare dal server originale.

 

Il protocollo FTP

II protocollo FTP richiede che l'utente si colleghi con nome e password (eventualmente in modo anonimo, indicando come nome anonymous) per avere accesso al server; però tutte le trasmissioni sono in chiaro e quindi nome utente e password possono essere facilmente intercettati.
Il server FTP usa due porte: la 20 (dati) e la 21 (controllo).
Per la comunicazione tra client e server vengono usate due connessioni TCP: una connessione di controllo e una connessione di trasferimento dati. Il client stabilisce una connessione sulla porta 21 che rimane attiva per tutta la sessione FTP e che permette di inviare i comandi al server; per ogni richiesta di trasferimento dati il server apre una connessione di trasferimento dati sulla porta 20, che chiude quando il trasferimento è completato (quindi deve essere aperta una nuova porta dati sul client ogni volta che comincia un nuovo trasferimento dati).
Poiché viene usato TCP come protocollo di trasporto i trasferimenti di file sono affidabili.

 

Sicurezza

II problema della sicurezza nelle reti riveste una grande importanza, infatti le reti per loro natura non sono sicure; per esempio basta un analizzatore di rete per intercettare le informazioni che viaggiano sulla rete.
Un analizzatore di rete è un programma che permette di esaminare il traffico tra due stazioni qualsiasi della rete.
Il problema della sicurezza comprende diversi aspetti:
• segretezza,
• autenticazione,
• affidabilità dei documenti.
La segretezza è l'aspetto più noto e consiste nel fare in modo che utenti non autorizzati non possano intercettare informazioni o comunque non possano comprenderle. L'autenticazione permette di determinare chi è l'interlocutore della comunicazione; assicura che qualcuno non possa inviare messaggi o eseguire operazioni spacciandosi per qualcun altro.
L'affidabilità dei documenti permette di determinare in modo certo chi è l'autore di un documento o messaggio, come se il documento fosse firmato (firma digitale), e di garantire che il documento non possa essere modificato da qualcun altro.
La segretezza può essere affrontata anche a livello fisico impedendo intercettazioni di dati o a livello di data link mediante codifiche dei dati trasmessi; gli altri problemi però possono essere gestiti solo a livello di applicazione.

 

Segretezza

Per garantire la segretezza delle informazioni anche nel caso vengano intercettate si usano tecniche di crittografia.
La crittografia permette di trasformare delle informazioni (chiamate testo in chiaro) in una forma incomprensibile per chi la intercetta (testo cifrato). Gli algoritmi di crittografia sono chiamati anche cifrari. L'arte di violare i cifrar! viene detta crittoanalisi. Crittografia e crittoanalisi insieme costituiscono la crittologia.

 

Crittografia

Gli algoritmi di crittografia cifrano il testo in base a un parametro detto chiave; è la chiave a garantire la segretezza; gli algoritmi invece non sono segreti (se là chiave viene scoperta è facile cambiarla, ma non è vero altrettanto per l’algoritmo).
Più la chiave è lunga e più è sicura, infatti diventa più difficile individuarla per tentativi; provare tutte le possibili combinazioni di caratteri che potrebbero formare la chiave è un problema esponenziale.
Inizialmente si usavano algoritmi semplici e chiavi lunghe; oggi invece gli algoritmi sono molto complessi in modo da rendere più difficili l’operazione di decifratura.
Per essere efficaci gli algoritmi di crittografia devono essere inviolabili anche nelle situazioni più favorevoli per il crittoanalista; i casi possibili sono:
• è disponibile solo testo cifrato ma non testo in chiaro,
• è disponibile testo cifrato e corrispondente testo in chiaro,
• è possibile cifrare parti di testo in chiaro di propria scelta.
In realtà esiste un metodo molto semplice per costruire un cifrario non violabile: si considera il testo in chiaro come una stringa di bit e si fa un or esclusivo bit per bit tra questa stringa e una stringa di bit casuale scelta come chiave; però è necessaria una chiave della stessa lunghezza in bit del testo da codificare e non è utilizzabile in pratica.
Gli algoritmi di crittografia si suddividono in due categorie: metodi a chiave segreta e metodi a chiave pubblica. La differenza consiste nel modo in cui si decodifica il messaggio cifrato. Nei metodi a chiave segreta l’algoritmo di decodifica usa la stessa chiave usata per la codifica (che quindi deve essere mantenuta assolutamente segreta; chiunque conosce la chiave può decifrare il messaggio).
Nei metodi a chiave pubblica la chiave usata per decifrare il messaggio è diversa dalla chiave di codifica; quindi la chiave di cifratura può essere resa nota senza problemi (il crittoanalista può cifrare parti di testo in chiaro di propria scelta ma comunque non può decifrare i messaggi cifrati; il trucco è nel modo in cui viene scelta la coppia di chiavi).

Formalmente
Sia M il messaggio, k la chiave, C l'algoritmo di codifica, Me il messaggio cifrato e D l'algoritmo di decodifica; Me = Ck(M) indica la codifica del testo in chiaro M utilizzando la chiave k.
Negli algoritmi a chiave segreta:
il testo cifrato Afe viene decodificato utilizzando la chiave k. M = Dk(Mc) e si ha che:
Dk(Ck(M)) = M
Negli algoritmi a chiave pubblica.
il testo cifrato Me viene decodificato utilizzando una chiave diversa, sia h: M=Dh(Mc) e si ha che:
Dh(Ck(M)) = M

 

Algoritmi a chiave segreta

Negli algoritmi a chiave segreta la decodifica viene effettuata con la stessa chiave usata per la codifica. Il problema è scambiare la chiave tra gli interlocutori senza che venga intercettata.

Metodi a sostituzione e a trasposizione ,

I metodi di crittografia più antichi sono quelli a sostituzione e trasposizione che risultano piuttosto semplici da decifrare e quindi sono poco sicuri.
I cifrari a sostituzione, come dice il nome, sostituiscono ogni lettera con un'altra (o un gruppo di lettere con un altro).
Nel metodo noto come cifrario di Cesare, perché attribuito appunto a Giulio Cesare, ogni lettera viene sostituita con quella che si trova tre posizioni più avanti nell'alfabeto: la A è sostituita dalla D, la B dalla E e così via.
Una semplice generalizzazione consiste nel sostituire ogni lettera con quella che si trova k posizioni più avanti; k diventa la chiave del metodo generale. Bastano però 26 tentativi (per le 26 lettere) per decifrare qualsiasi messaggio.
Un miglioramento consiste nel variare la sostituzione per ogni lettera dell'alfabeto (sostituzione monoalfabetica); la chiave è la stringa di 26 lettere da usare ognuna in sostituzione di una delle 26 lettere dell'alfabeto. Questo metodo può sembrare sicuro perché procedendo per tentativi le combinazioni sono 26! cioè più di 1 026 chiavi; però si può decifrare facilmente un messaggio sfruttando le proprietà statistiche dei linguaggi naturali (lettere o sequenze di lettere usate più frequentemente ecc.)
I cifrari a trasposizione non modificano le lettere, ma ne modificano soltanto l'ordine all'interno del messaggio.
Nel cifrario a trasposizione per colonne il testo viene scritto suddividendolo in righe di k colonne ciascuna e prendendo poi colonna per colonna nell'ordine indicato dalla chiave; la chiave è una parola di k lettere che non contiene alcuna lettera ripetuta; l'ordine alfabetico delle lettere indica in che ordine prendere le colonne.
Per decifrarlo si può cercare di determinare la lunghezza della chiave ipotizzando la presenza di una parola nel messaggio e cercando probabili sequenze di lettere; per essere sicuri che sia un cifrario a trasposizione basta controllare se la frequenza con cui le lettere compaiono nel testo è quella normale.
Nei metodi di crittografia moderni vengono ancora usate sostituzioni e trasposizioni ma combinate in algoritmi complessi.
Uno dei metodi più utilizzati è DES (Data Encryption Standard) sviluppato dall’IBM.
II testo in chiaro viene diviso in blocchi di 64 bit, ognuno dei quali viene cifrato generando 64 bit di testo cifrato.
L'algoritmo usa una chiave di 56 bit ed è molto complesso.
Un altro importante cifrario a blocchi è IDEA (International Data Encryption Algorithm) che usa una chiave di 128 bit  ed è attualmente considerato inviolabile. Come per il DES, il testo in chiaro viene diviso in blocchi dì 64 bit, che producono ciascuno, dopo una sequenza di passi, un blocco di 64 bit di testo cifrato.

 

Algoritmi a chiave pubblica

Negli algoritmi a chiave pubblica (Diffie e Hellman - 1976) le chiavi usate per cifrare e decifrare il messaggio sono diverse; la chiave di codifica può essere diffusa liberamente (chiave publica); la segretezza è garantita dalla chiave di decodifica che deve essere nota solo al destinatario del messaggio (chiave privata). Gli algoritmi di codifica e decodifica sono pubblici.
In pratica per usare la crittografia a chiave pubblica ogni utente possiede due chiavi, una pubblica da rendere nota, e una privata usata per decifrare il messaggio. La coppia di chiavi è calcolata con un opportuno algoritmo e il fondamento della sicurezza è che sia difficilissimo ricavare la chiave privata dalla chiave pubblica.
Il metodo a chiave pubblica più usato è noto come RSA (dalle iniziali dei suoi inventori Rivest, Shamir e Adleman - 1978).
Gli algoritmi a chiave pubblica sono molto sicuri ma sono lenti.
Di solito si usa un algoritmo a chiave pubblica per scambiarsi una chiave segreta da utilizzare durante la sessione (chiave di sessione); poi si usa la chiave di sessione per cifrare i dati con un algoritmo a chiave segreta come DES. Con questo metodo si ha un ulteriore vantaggio: la chiave segreta condivisa cambia ad ogni sessione e quindi la sicurezza è maggiore.

 

Autenticazione

Per garantire che qualcuno non possa eseguire operazioni al posto di qualcun altro (intrusi attivi) si usano tecniche di autenticazione che permettono di verificare chi è l'interlocutore.
In pratica il problema è il seguente: un utente o processo client A(in letteratura Alice) vuole stabilire una connessione con un utente o server B (in letterature Bob); un intruso (in letteratura Trudy) può intercettare, modificare o rispondere ai messaggi per ingannare gli utenti (o processi) A o B o per bloccarli; alla fine comunque A e B devono essere sicuri di aver parlato tra di loro senza intrusioni.

Autenticazione basata su chiave segreta condivisa

Se A e B condividono una chiave segreta si può usare un protocollo sfida-risposta (challenge-response); il server invia un numero casuale al client, il quale lo codifica con la chiave condivisa e restituisce il risultato:
• A invia la propria identità a B;
•  B invia ad A la sfida (un numero casuale);
• A codifica la sfida con la chiave condivisa e la restituisce a B, provando la sua identità perché solo lui poteva conoscere la chiave condivisa.
Se entrambi si devono autenticare anche A deve mandare una sfida a B:
• A manda a sua volta una sfida a B;
•  B codifica questa sfida con un'altra chiave condivisa e la restituisce ad A.

Centro di distribuzione delle chiavi

Per avere una chiave segreta condivisa si può utilizzare un centro di distribuzione delle chiavi KDC (Key Distribution Center) che si ritiene affidabile. Il KDC viene usato per autenticare gli utenti e permettere lo scambio di una chiave di sessione.

Kerberos

Un protocollo più sofisticato di autenticazione è il protocollo sfida risposta a più vie, noto come Kerberos dal nome del cane a tre teste che stava all'ingresso dell'inferno nella mitologia greca. Kerberos permette agli utenti di autenticarsi a vicenda.
Kerberos per permettere ad A di accedere in modo sicuro a un server B usa tre server:
•  il server B che svolge il lavoro che serve ad A,
•  il server di autenticazione (SA) che verifica A al momento del login,
•  il server di gestione convalide (SGC) che fornisce ad A la convalida da utilizzare per provare la propria identità a B.

Autenticazione mediante crittografìa a chiave pubblica

Per l'autenticazione si possono usare i metodi di crittografia a chiave pubblica. Durante l'autenticazione gli interlocutori si scambiano una chiave di sessione segreta in modo da poter usare la crittografia a chiave segreta per il resto della conversazione.
Si suppone che A e B conoscano ciascuno la chiave pubblica dell'altro KbPub e KaPub.
•  A manda a B la propria identità e un numero casuale Ra cifrati con la chiave pubblica di B;
•  B può decifrare il messaggio con la sua chiave privata e individuare Ra; poi invia ad A un messaggio con Ra, un altro numero casuale Rb e una chiave di sessione Ks, cifrato con la chiave pubblica di A;
•  A decifra il messaggio con la sua chiave privata e restituisce a B il valore Rb cifrato con la chiave di sessione Ks.
Se A e B si devono scambiare reciprocamente le chiavi pubbliche un intruso potrebbe intromettersi nello scambio, scambiando la propria chiave con A e poi con B (attacco dell'uomo in mezzo o della banda del secchio, perché ricorda i pompieri che si scambiano i secchi). Per evitare lo scambio iniziale si può usare un server di autenticazione SA su cui ogni utente e server registra una coppia di chiavi (pubblica e privata).
Il protocollo può essere complicato ulteriormente introducendo un server di convalida SGC.

Affidabilità dei documenti

Per assicurare l'affidabilità dei documenti bisogna fare in modo che:
• si possa sempre verificare chi è l'autore di un documento e l'autore non possa negarlo;
• nessuno possa modificare un documento di qualcun altro o creare un documento e attribuirglielo.
Questi obiettivi possono essere raggiunti usando la firma digitale.

Firma digitale

La firma digitale si avvale della crittografia a chiave pubblica.
È noto che la decodifica con la chiave privata di un messaggio codificato con la chiave pubblica riproduce il messaggio originale. Si supponga ora che sia vero anche l'inverso, cioè che si possa codificare il messaggio con la chiave privata e decodificarlo con la chiave pubblica. In effetti ciò è vero per il metodo RSA, lo standard usato per le firme digitali (comunque si potrebbe usare qualsiasi algoritmo a chiave pubblica).
La firma digitale di un documento consiste nel cifrare il documento con la propria chiave privata; chi lo riceve lo può decifrare con la chiave pubblica.
A può inviare un messaggio firmato a B cifrando il messaggio con la sua chiave privata; B lo decodifica con la chiave pubblica di A e in questo modo verifica che il messaggio è di A. B può provare che il messaggio è di A solo finché la chiave privata di A rimane segreta o A non cambia chiave. Serve un'autorità che registri i cambiamenti di chiave.
Le firme digitali hanno più vantaggi delle normali firme: non si possono falsificare (perché bisogna conoscere la chiave privata), non si possono disconoscere, chiunque le può verifi-care (usando la chiave pubblica), impediscono che si possa modificare il messaggio e inoltre ogni messaggio ha una firma diversa che non si può usare per altri messaggi.
La firma digitale viene utilizzata anche per autenticare il software; gli sviluppatori firmano il codice usando la loro chiave privata e gli utenti verificano la firma mediante la chiave pubblica.
La firma digitale autentica il messaggio ma non lo rende segreto. Se A firma un messaggio e lo manda a B chiunque può leggerlo usando la chiave pubblica di A. Se è necessaria sia l'autenticazione che la segretezza A deve prima codificare il messaggio con la propria chiave privata per firmarlo e poi lo deve codificare con la chiave pubblica di B per renderlo segreto e fare in modo che solo B lo possa comprendere. Quando B riceve il messaggio lo deve decodificare con la propria chiave privata e poi con la chiave pubblica di A.

Sintesi dei messaggi

Dato che la crittografia a chiave pubblica è lenta, per firmare un messaggio senza doverlo cifrare completamente si può usare la sintesi del messaggio (message digest).
La sintesi del messaggio consiste in una stringa di bit di lunghezza fissata ricavata dal messaggio attraverso un procedimento semplice ma non invertibile (cioè è impossibile ricavare il messaggio originale dalla sintesi); deve inoltre essere impossibile generare un messaggio che abbia una sintesi prefissata; per rispettare questo criterio la stringa di bit deve essere lunga almeno 128 bit.
Il calcolo della sintesi del messaggio da un testo in chiaro è più veloce della codifica di tutto il testo.
Per firmare un messaggio il mittente calcola la sintesi del testo in chiaro, poi firma la sintesi e invia sia il testo in chiaro che la sintesi firmata.
Il destinatario ricalcola la sintesi del messaggio in chiaro e la confronta con la sintesi che ha ricevuto, decodificata mediante la chiave pubblica del mittente; se le sintesi non coincidono vuoi dire che il messaggio è stato sostituito.
L'algoritmo di sintesi più usato è MD5 (Rivest 1992).
L'algoritmo produce una stringa di 128 bit a partire da un messaggio di lunghezza qualsiasi, con un'elaborazione piuttosto complicata in modo che ogni bit in uscita dipenda da ogni bit in ingresso.
Il messaggio da sintetizzare, visto come una stringa di bit, viene diviso in blocchi di 512 bit; l'ultimo blocco può essere completato con bit aggiuntivi e contiene negli ultimi 64 bit la
lunghezza originale del messaggio.
Viene usato un buffer di 128 bit, inizializzato a un valore prefissato; l'algoritmo mescola completamente ogni blocco di 512 bit con il buffer di 128 bit, attraverso un procedimento in 4 passi; al termine il buffer contiene la sintesi del messaggio.

Certificati digitali

Per poter essere sicuri della provenienza di un messaggio o di un software bisogna utilizzare per la verifica proprio la chiave pubblica dell'autore. Un malintenzionato potrebbe diffondere una chiave pubblicafalsa perché gli utenti credano di provenienza fidata i suoi messaggi o programmi.
Per certificare la propria chiave pubblica si possono usare i certificati digitali.
I certificati digitali sono messaggi emessi da una autorità di certificazione (CA); contengono informazioni sull'identità di un utente e la sua chiave pubblica e sono firmati mediante la chiave privata dell'autorità di certificazione.
Anche le autorità di certificazione possono essere a loro volta certificate da autorità di livello più alto.
Per ottenere che un'autorità di certificazione emetta un certificato a proprio nome un utente deve fornire dei documenti che provino la propria identità; poi altri utenti possono richiedere il certificato e così verificare la sua firma.
Per esempio un'azienda di software può richiedere un certificato digitale a un'autorità di certificazione in modo che gli utenti possano aver fiducia nel software prodotto dall'azienda. L'azienda firma il software prodotto con la propria firma digitale. L'utente ottiene dall'autorità di certificazione il certificato digitale dell'azienda; in questo modo è sicuro di ottenere proprio la chiave pubblica dell'azienda; mediante questa chiave può verificare la firma digitale dell'azienda e quindi l'autenticità del software.
Un formato diffuso per i certificati digitali è X.509 dell'ISO (è usato per esempio da SSL e dai file JAR di Java).
I certificati X.509 contengono:
• la versione di X.509 usata,
• il nome e la chiave pubblica dell'entità da certificare,
• un intervallo di date in cui il certificato è valido (i certificati hanno una scadenza),
• un numero di serie assegnato dall'autorità di certificazione,
• il nome dell'autorità di certificazione,
• la firma digitale dell'autorità di certificazione.

PGP

PGP (Pretty Good Privacy) è un pacchetto completo per la sicurezza, gratuito (Phil Zimmermann, 1995); fornisce funzioni di segretezza, autenticazione, firma digitale e compressione; si basa sugli algoritmi RSA, IDEA e MD5.
Due utenti A e B per scambiarsi messaggi devono avere due chiavi RSA (ma il vero lavoro di cifratura è fatto da IDEA che è di diversi ordini di grandezza più veloce di RSA).
L'utente A richiama il programma PGP sul suo computer, sintetizza il messaggio M usando MD5 e cifra la sintesi mediante la sua chiave privata. La sintesi cifrata e il messaggio originale sono concatenati in un singolo messaggio M1 e compressi mediante il programma ZIP (Ziv Lempel) producendo M1.Z. A questo punto il PGP chiede ad A di inserire un ingresso casuale; sia il contenuto sia la velocità di immissione vengono utilizzati per generare una chiave IDEA a 128 bit KM. KM viene usata per cifrare M1.Z con l'algoritmo IDEA. Inoltre KM viene cifrata con la chiave pubblica di B. Queste due componenti vengono concatenate e convertite in base64 (può essere inserito in un corpo RFC 822).
L'utente B inverte la codifica base64 e decifra la chiave IDEA con la sua chiave privata. Con KM decifra il messaggio e ottiene M1.Z. Lo decomprime e separa il testo in chiaro dalla sintesi cifrata. Decifra la sintesi usando la chiave pubblica di A e può verificare che la sintesi sia corretta.

 

La sicurezza in Internet

 

Problemi di sicurezza nel collegamento a Internet

Molte applicazioni di rete (come FTP, Telnet e client di posta POP3) trasmettono le password in chiaro sulla rete rendendo semplici le intercettazioni: basta un analizzatore di rete per catturare le informazioni; la stessa cosa vale per tutte le informazioni che transitano sulla rete; una soluzione è l'uso della crittografia.
Un altro tipo di problema è che i protocolli non connessi come IP sono molto vulnerabili; ci si può appropriare di un indirizzo IP e intercettare i pacchetti che vi sono diretti (un router può essere ingannato per fargli credere che ci siano due percorsi per una destinazione mentre in realtà esistono due destinazioni diverse, una vera e una usata dagli intrusi); oppure viceversa si può far credere di inviare le informazioni da un certo indirizzo IP, diverso dal proprio (spoofing; questo termine è usato anche nei servizi di posta elettronica per indicare l'invio di un messaggio a nome di un mittente diverso).
È importante utilizzare misure di sicurezza; si può usare un firewall per controllare i pacchetti che possono entrare e uscire dalla rete, usare la sicurezza del sistema per controllare i diritti degli utenti e l'accesso a dischi e file, usare registrazioni degli eventi per controllare l'acces­so al computer, ai file, ai servizi Web e così via.
La cosa migliore è negare automaticamente l'accesso a tutto in tutta la intranet e definire esplicitamente solo i permessi necessari.

 

Firewall

Un firewall è un dispositivo collocato tra la rete interna e la rete esterna attraverso cui passa tutto il traffico in entrata e in uscita; in questo modo si può controllare il traffico e lasciare passare solo ciò che soddisfa determinati criteri, impostando dei filtri. I firewall possono essere a filtro di pacchetti o a livello di applicazione. I firewall a filtro di pacchetti analizzano il traffico a livello di trasporto mentre i firewall a livello di applicazione esaminano le informazioni a livello di applicazione; di solito le funzioni di firewall a filtro di pacchetti sono realizzate dai router e quelle di firewall a livello di applicazione dai proxy server.
Per il buon funzionamento del firewall è importante che l'amministratore di sistema configuri adeguatamente le regole per il filtraggio delle informazioni. Si possono definire regole sia per il traffico in entrata che in uscita. Ci sono due tipi di strategie: permettere sempre il traffico a meno che sia esplicitamente vietato o al contrario vietare tutto il traffico a meno che non sia esplicitamente consentito (migliore). Un buon firewall dispone anche di funzioni di registrazione degli eventi e di allarme.
Nei firewall a filtro di pacchetti i filtri sono basati su tabelle che elencano le sorgenti e le destinazioni permesse e quelle vietate; si possono specificare gli indirizzi IP permessi o negati e la porta (cioè l'applicazione o il protocollo) a cui si riferiscono i permessi; per esempio si può stabilire quali computer della rete locale possono accedere a Internet oppure bloccare l'ingresso nella intranet a FTP o Telnet bloccando la porta relativa; molti filtri bloccano tutto il traffico UDP che potrebbe fare qualsiasi cosa; altre applicazioni a cui viene vietato l'accesso comunemente sono DNS e Finger che potrebbero rivelare informazioni sulla rete; il traffico in uscita è più difficile da bloccare perché altri server potrebbero usare porte diverse da quelle predefinite.
I firewall a livello di applicazione permettono non solo di stabilire se il traffico relativo a una applicazione può passare o meno ma anche di impostare regole relative ai comandi delle applicazioni (per esempio ai comandi get o put di FTP).
Quando la rete intranet è collegata a Internet mediante un firewall si possono configurare i server DNS in modo che solo alcuni siano abilitati ad accedere al di fuori della rete interna per la risoluzione dei nomi (server forwarder) e gli altri utilizzino il forwarder come intermediario: un server può passare la richiesta al forwarder che la risolve e restituisce i risultati al server richiedente, che a sua volta li restituisce al client.

 

Autenticazione Web

Si possono controllare gli accessi alle pagine Web impostando il server in modo da richiedere l'autenticazione.
II metodo più semplice di autenticazione Web è l'autenticazione Basic; se il browser effettua una richiesta anonima il server nega l'autorizzazione e richiede che venga effettuata l'autenticazione; il browser richiede nome e password all'utente e in ogni richiesta successiva invia i dati (nome e password) al server in chiaro (soltanto codificati in base64). È un metodo previsto nelle specifiche del protocollo HTTP e supportato da tutti i browser ma rende molto facile l'intercettazione di dati.
In ambiente Windows il server IIS rende disponibile un metodo più efficiente, l'autenticazione Challenge/Response, che però non è supportata da tutti i browser (e non è prevista nel protocollo HTTP).
Con questo metodo la password non viene mai trasmessa sulla rete; l'utente non deve inviare la password ma solo dimostrare di conoscerla; il server invia al browser una stringa (challenge) che deve essere codificata in base alla password dell'utente e restituita; il server ripete gli stessi calcoli e verifica il risultato.
IIS 5.0 ha introdotto un nuovo metodo chiamato Digest Authentication che come il metodo Challenge/Response prevede uno scambio di informazioni ma non l'invio della password ed è stato introdotto nelle specifiche del protocollo HTTP.
In ogni caso questi metodi controllano solo chi si connette al server ma poi le informazioni sono trasmesse in chiaro e un intruso può intercettarle leggendo il contenuto dei segmenti TCP.

 

Scambio sicuro di informazioni

Per lo scambio sicuro di informazioni si possono usare protocolli come SSL (Secure Sockets Layer), PCI (Private Communication Technology) o TLS (Transport Layer Security). L'obiettivo di questi protocolli è assicurare la privacy (nessuno può intercettare le comunicazioni), l'autenticazione (si sa chi è connesso) e l'integrità (i dati raggiungono integri la destinazione).
L'uso di tecniche di questo tipo è necessario per siti che richiedono scambio di informazioni riservate come numeri di carte di credito.
SSL usa la crittografia a chiave pubblica per lo scambio di una chiave di sessione da usare per crittografare le informazioni.
Per lo scambio delle chiavi pubbliche utilizza i certificati digitali.
SSL funziona come livello intermedio tra il livello di trasporto e il livello di applicazione e quindi il processo di codifica e decodifica è trasparente ai protocolli di applicazione, come HTTP; tutte le trasmissioni tra client e server, comprese richieste e risposte HTTP, vengono cifrate.
Il tempo di codifica e decodifica influisce notevolmente sulle prestazioni del server. È bene inserire nelle directory protette solo le pagine che contengono o che riceveranno (per esempio tramite moduli) informazioni sensibili e mantenere le pagine libere da elementi non indispensabili (perché tutto quello che è sulla pagina verrà cifrato, comprese le immagini).
L'uso combinato dei protocolli HTTP e SSL viene generalmente indicato come HTTPS.
Si possono riconoscere le pagine che usano SSL perché nell'URL il protocollo è https invece di http e nella barra di stato appare un indicatore (in Internet Explorer un lucchetto e in Netscape una chiave).
Si può usare l'autenticazione base insieme a SSL per trasmettere la password in modo sicuro.
PCT è un protocollo sviluppato da Microsoft che introduce caratteristiche aggiuntive con più elevata protezione.
TLS è un nuovo protocollo di protezione che integra SSL e PCT in un unico standard.

 

Accesso a un sito protetto con Internet Explorer

Internet Explorer supporta i protocolli di protezione SSL, PCT e TLS.
I protocolli di protezione permettono agli utenti e ai siti di scambiare certificati per l'autenticazione dell'identità.
I certificati di protezione sono dichiarazioni di un'autorità che garantisce l'identità di un sito o di una persona.
Un certificato di sito afferma che il sito è protetto; i siti Web protetti hanno un certifi­cato di protezione del sito.
Un certificato personale (o ID digitale) garantisce l'identità di una persona (permette di autenticarsi); permette di verificare l'identità dell'utente (per esempio per acquisti con la carta di credito).
Quando ci si collega a un server protetto il browser riceve il certificato del sito e la sua chiave pubblica; la chiave pubblica del sito è usata per scambiare una chiave di sessione, poi usata per crittografare i messaggi.
II tutto avviene automaticamente.
Internet Explorer riconosce e usa automaticamente il protocollo di protezione usato da un sito protetto, quando ci si collega al sito.
Quando si accede a un sito protetto nella barra di stato appare l'icona di un lucchetto e il protocollo indicato nell'URL è https.
Per sapere qual è il protocollo usato basta richiamare File, Proprietà e fare clic sul pulsante Certificati; si apre una finestra in cui si vede tra l'altro il nome dell'autorità che ha rilasciato il certificato, la data di rilascio e di scadenza del certificato e il protocollo usato.
Quando si passa dalla modalità protetta a quella non protetta appare un messaggio (si può decidere se far apparire o no il messaggio da Strumenti, Opzioni Internet, scheda Avanzate).

 

La sicurezza in Windows 2000

Autenticazione mediante Kerberos

Windows 2000 usa un sistema di autenticazione Kerberos, integrato con Active Directory che contiene le informazioni sugli account utente.
I client possono accedere per l'autenticazione a qualsiasi Controller di dominio. Su ogni Controller di dominio è in esecuzione un KDC (Key Distribution Center), che memorizza per ogni utente, dominio o server, una chiave segreta condivisa solo con l'interlocutore; questa chiave a lungo termine è derivata dalla password di accesso. Per ogni sessione poi viene usata una chiave di sessione a breve termine.
La convalida per l'autenticazione avviene attraverso Kerberos nel seguente modo:
• quando si accede al computer bisogna premere Ctrl+Alt+Canc e inserire nome utente, password e nome del computer o del dominio;
• viene inviato un messaggio di testo non cifrato al KDC per richiedere un ticket (TGT -Ticket Granting Ticket); il messaggio contiene il nome utente e del server KDC (il dominio) e un timestamp (indicazione di data e ora);
• il KDC invia al client un messaggio cifrato con la chiave che il client condivide con il KDC; il messaggio contiene una chiave di sessione con timestamp e un TGT (che è basato sulla password dell'utente); il client usa il TGT nelle successive comunicazioni, fino alla scadenza (si può impostare la durata massima del TGT);
• il client invia un messaggio al KDC chiedendo di comunicare con un servizio o server; il messaggio contiene il nome del server, un timestamp e il TGT e viene crittografato con la chiave di sessione;
• il KDC produce una chiave di sessione che il client userà per comunicare con il server e la invia al client crittografata con la chiave di sessione che condivide con lui; inoltre gli invia un ticket da usare con il server, cifrato con la chiave che il KDC condivide con il server, contenente la chiave di sessione, il nome del client, l'indirizzo della scheda di rete del client e un timestamp;
• il client invia un messaggio al server, cifrato con la chiave di sessione condivisa con il server, che contiene il ticket cifrato ricevuto dal KDC e un timestamp;
• il server usa la sua password per decifrare il ticket e ottenere la chiave di sessione condivisa, che poi usa per decifrare il timestamp e accettare la comunicazione.
Si può ottenere un ticket da un KDC in un dominio e usarlo per richiedere un ticket di sessione da un KDC di un altro dominio.
Oltre a Kerberos si può usare PKI (a chiave pubblica), basandosi su un'autorità di certificazione pubblica; in questo caso ogni client usa la sua chiave privata per autenticarsi con il KDC e ottenere il TGT.
Un'estensione di Kerberos consente di usare per l'accesso una smart card con memorizzata la chiave privata utente.

 

Certificati

II servizio certificati permette di gestire l'emissione, il rinnovo e le revoche di certificati digitali, senza dover fare riferimento ad autorità di certificazione esterne; supporta i certificati X.509, RSA e PKCS.
Quando si installa il servizio si devono definire le informazioni relative all'autorità di certificazione (nome di dominio, database delle chiavi ecc.) e si possono impostare gerarchie di autorità di certificazione distribuite.

EFS

Se si usa il file System NTFS, EFS (Encrypting File System) permette di memorizzare su disco file crittografati.
EFS si basa sulla crittografia a chiave pubblica PKI. Per ogni utente viene generata automaticamente una coppia di chiavi.
Come algoritmo di crittografia viene usato DESX (Data Encryption Standard espanso), un algoritmo a chiave segreta.
Ogni file viene crittografato con una chiave segreta unica, usata anche per decifrare il file; la chiave segreta usata per cifrare il file viene crittografata mediante la chiave pubblica dell'utente. Quando l'utente accede al file il sistema lo decifra automaticamente usando la chiave segreta, decifrata mediante la chiave privata dell'utente.
La crittografia è trasparente finché chi accede al file è la stessa persona che l'ha crittografato; altrimenti, se qualcun altro cerca di accedere al file ottiene il messaggio Accesso negato.
Per gestire i file crittografati, nel caso l'utente per qualche motivo non possa farlo, viene designato un agente di recupero, che per default è l'amministratore.
Le chiavi segrete usate per crittografare i file vengono memorizzate anche cifrate mediante la chiave pubblica dell'agente di recupero (generata automaticamente e salvata nel Registro di sistema).
L'agente di recupero non compromette la chiave privata dell'utente perché può accedere solo alla chiave di crittografia segreta del file; può solo ripristinare il file.
La crittografia è supportata a livello di file e di cartelle.
Se si crittografa una cartella tutti i file contenuti e le sottocartelle vengono automaticamente crittografati (in realtà non vengono crittografate le cartelle ma solo i file all'interno delle cartelle). Se si sposta un file in una cartella crittografata, il file viene crittografato (ma se si sposta un file crittografato in una cartella non crittografata il file rimane crittografato).
Non si possono crittografare file compressi: se i file sono compressi vengono decompressi.
Per crittografare un file o una cartella basta fare clic destro sull'oggetto e scegliere Proprietà, nella scheda Generale fare clic sul pulsante Avanzate e selezionare la casella Crittografa contenuto per la sicurezza dei dati (per una cartella viene chiesto se applicare anche alle sottocartelle).
Si possono rendere inaccessibili dei dati in una cartella condivisa crittografandoli. I dati però sono crittografati solo finché si trovano sul disco e non quando vengono spostati lungo la rete.

IPSec

IPSec è un meccanismo, del tutto trasparente agli utenti, che cifra tutto il traffico che attraversa la rete.
È un protocollo di sicurezza che opera al di sotto del livello di trasporto ed è ereditato in modo trasparente da tutte le applicazioni sopra a tale livello.
Usa una combinazione di crittografia a chiave segreta e a chiave pubblica.
Per abilitare IPSec, dalle Proprietà del TCP/IPs\ deve fare clic sul pulsante Avanzate e poi sulla scheda Opzioni selezionare Protezione IP e fare clic sul pulsante Proprietà; qui si possono abilitare i criteri di protezione; si può scegliere Server protetto per usare la protezione per tutto il traffico IP.

 

Fonte: http://www.marforio.org/appunti/sistemadielaborazionedelleinformazioni/Le%20reti%20-%20la%20crittografia%20e%20la%20firma%20digitale.doc

Autore del testo: non indicato nel documento di origine

 

Le reti internet e la firma digitale

 

 

Visita la nostra pagina principale

 

Le reti internet e la firma digitale

 

Termini d' uso e privacy

 

 

 

 

Le reti internet e la firma digitale