UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

41
UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 1/41 FACOLTÀ di MEDICINA e CHIRURGIA Corso di Laurea in Medicina e Chirurgia Informatica e Sistemi di Elaborazione delle Informazioni (II anno) Dispensa “RETI DI CALCOLATORI ED INTERNET” SOMMARIO Nel modulo “Reti di Calcolatori ed Internet” sono introdotte le Reti di Calcolatori ed Internet, con particolare riferimento alle principali applicazioni del World Wide Web, e le problematiche di sicurezza dei dati e delle comunicazioni Gli argomenti trattati comprendono: un’introduzione alle Reti di Calcolatori, alle tipologie LAN, MAN, WAN, e ai protocolli di comunicazione; una descrizione del protocollo TCP/IP (TCP, UDP, IP); la presentazione dettagliata delle principali applicazioni e servizi di Internet, ed in particolare il DNS, la posta elettronica ed World Wide Web; infine, la gestione della sicurezza su Internet .

Transcript of UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 1/41

FACOLTÀ di MEDICINA e CHIRURGIA Corso di Laurea in Medicina e Chirurgia

Informatica e Sistemi di Elaborazione delle Informazioni (II anno) Dispensa “RETI DI CALCOLATORI ED INTERNET”

SOMMARIO Nel modulo “Reti di Calcolatori ed Internet” sono introdotte le Reti di Calcolatori ed Internet, con particolare riferimento alle principali applicazioni del World Wide Web, e le problematiche di sicurezza dei dati e delle comunicazioni Gli argomenti trattati comprendono: un’introduzione alle Reti di Calcolatori, alle tipologie LAN, MAN, WAN, e ai protocolli di comunicazione; una descrizione del protocollo TCP/IP (TCP, UDP, IP); la presentazione dettagliata delle principali applicazioni e servizi di Internet, ed in particolare il DNS, la posta elettronica ed World Wide Web; infine, la gestione della sicurezza su Internet .

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 2/41

INDICE 1 Introduzione alle Reti di Calcolatori ..............................................................................3

1.1 Concetti di base.....................................................................................................3 1.2 Tipologie di comunicazione ...................................................................................4 1.3 Concetto di protocollo............................................................................................5 1.4 Modello ISO/OSI....................................................................................................7 1.5 Tipologie di reti LAN/MAN/WAN..........................................................................10

2 Il protocollo TCP/IP.....................................................................................................12 2.1 Confronto con il modello ISO/OSI........................................................................12 2.2 Struttura del TCP/IP ............................................................................................13 2.3 Livello rete: protocollo IP ....................................................................................14 2.4 Livello trasporto: protocolli TCP e UDP ...............................................................18 2.5 Livello applicazione e servizi di base: DNS .........................................................22 2.6 Configurazione del protocollo TCP/IP su rete locale ...........................................24

3 Internet e World Wide Web.........................................................................................28 3.1 Architettura di Internet .........................................................................................28 3.2 World Wide Web..................................................................................................29 3.3 Posta elettronica..................................................................................................31

4 Sicurezza su Internet ..................................................................................................35 4.1 Concetti di base della sicurezza informatica........................................................35 4.2 Firewall ................................................................................................................35 4.3 Controllo di accesso ............................................................................................36 4.4 Sicurezza nelle comunicazioni.............................................................................37 4.5 Crittografia simmetrica e asimmetrica .................................................................37 4.6 Certificati digitali e firma digitale ..........................................................................39 4.7 Cenni al protocollo SSL .......................................................................................39

5 Riferimenti Bibliografici ...............................................................................................41

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 3/41

1 INTRODUZIONE ALLE RETI DI CALCOLATORI 1.1 Concetti di base Le principali motivazioni per lo sviluppo delle reti di calcolatori sono le seguenti:

• Accesso all’informazione: non solo a quella locale ma anche a quella memorizzata su calcolatori remoti.

• Condivisione di risorse: in particolare, una risorsa accessibile via rete (ad esempio una stampante o un database o un file system) è di fatto condivisibile tra più calcolatori.

• Affidabilità, relativa alla possibilità di realizzare per una computazione più calcolatori;

• Comunicazione • Condivisione di compiti • Scalabilità.

Una Rete di Calcolatori è, in estrema sintesi, un insieme di calcolatori indipendenti ed interconnessi tra loro che possono scambiarsi informazioni. Componenti di base di una Rete di Calcolatori (o più brevemente rete) sono: • Hardware di rete, comprendente gli apparati hardware necessari sia a connettere il

calcolatore al mezzo di trasmissione, sia necessari per trasmettere le informazioni sul mezzo fisico e per le eventuali conversioni (es. digitale-analogico e viceversa)

o apparati di interconnessione, o apparati per il controllo della trasmissione.

• Software di rete, ovvero l’insieme di programmi che consentono in sintesi la comunicazione tra applicazioni residenti su calcolatori diversi. Tale software realizza le funzioni di:

o codifica e formattazione dei dati, o invio e ricezione dei dati, o rilievo di errori e correzione.

• Mezzo di trasmissione, ovvero il supporto fisico che trasporta le informazioni tra i

diversi calcolatori. Questa componente presenta le maggiori eterogeneità: o fisiche (es. onde radio nel vuoto o su conduttori elettrici, luce su fibra ottica,

raggi infrarossi, microonde, ecc.) o trasmissione (es. Ethernet, Frame Relay, ATM, GSM, GPRS, SDH, ecc.)

Le reti possono essere classificate per:

• tipologia di trasmissione:

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 4/41

o punto-a-punto, dove la comunicazione avviene tra coppie di nodi, (ad es. una coppia di telefoni) e

o broadcast, dove la comunicazione interessa contemporaneamente tutti i calcolatori connessi alla rete (rete locale Ethernet, televisione via satellite o via terrestre)

• topologia: o regolare, completamente o non completamente magliata, nel caso di reti

locali e metropolitane, o di reti dedicate (come nel caso dei supercalcolatori) ,

o irregolare, nel caso di reti geografiche, dove ragioni di costo e di orografia del territorio impediscono la costruzione di reti regolari completamente magliate

• estensione: o Local Area Network (LAN). Sono le reti più diffuse e utilizzano quasi per la

totalità dei casi protocolli di tipo broadcast. o Metropolitan Area Network (MAN). Le MAN possono essere pensate come

delle grandi (estese) LAN visto che spesso usano una simile tecnologia, e la grande differenza è che esse sono spesso dislocate su territorio pubblico.

o Wide Area Network (WAN). Le reti WAN dette anche reti geografiche, quasi sempre sono il backbone (pubblico o privato) che interconnette più LAN/MAN.

o Internet, è l’interconnessione a livello mondiale di tante reti LAN, MAN, WAN La figura seguente mostra le tipiche estensioni per le differenti tipologie di rete.

1.2 Tipologie di comunicazione Oltre alla tipologia di trasmissione vista in precedenza (punto-a-punto, tra coppie di nodi, o broadcast, comunicazione contemporanea tra tutti i calcolatori), le reti possono funzionare con due modalità di comunicazione:

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 5/41

Commutazione di circuito, in tal caso la comunicazione tra due host richiede l’allocazione di un circuito (fisico) tra gli host, che pertanto rimane interamente dedicato alla comunicazione per tutta la sua durata, e la succesiva deallocazione. Un esempio è la rete telefonica tradizionale (in gergo detta PSTN, Plain Switched Telephone Network), infatti durante una telefonata la composizione del numero provoca l’allocazione di tanti tronchi di canale fisico che costituiscono il circuito, quindi si ha l’effettiva trasmissione dei dati utente (la voce) e infine la deallocazione del circuito quando la telefonata è terminata. Si noti che oltre alla trasmissioen di dati utente esiste una trasmissione di dati di controllo (es, il segnale di linea libera o di linea occupata, l’invio dello squillo al numero chiamante, ecc.) detta segnalazione. Un esempio di sistema di segnalazione nella rete telefonica è SS7. Commutazione di pacchetto, in tal caso la comunicazione tra due host non richiede l’allocazione di un circuito (fisico) tra gli host. I dati da inviare vengono suddivisi in pacchetti di lunghezza limitata che vengono inviati sulla rete e consegnati in maniera indipendente l’uno dall’altro, allocando di volta in volta solo la frazione di circuito (link) necessaria a trasportare i pacchetti da un host/router ad uno adiacente. L’aspetto principale di tale modalità di comunicazione è la massimizzazione del grado di utilizzazione dei canali di trasmissione che vengono allocati solo per il tempo strettamente necessario a trasportare dati. Non appena un canale ha trasportato un pacchetto della comunicazione A, esso è disponibile per trasportare un secondo pacchetto, ad esempio appartenente sempre ad A o ad un’altra comunicazione B. La figura seguente illustra un esempio di comunicazione a commutazione di pacchetto.

1.3 Concetto di protocollo Per ridurre la complessità e per ragioni di modularità le reti sono organizzate come una serie di strati o livelli ognuno costruito sul livello inferiore. Le convenzioni e le regole usate nelle comunicazioni di uno stesso livello tra due macchine sono dette protocollo.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 6/41

Un protocollo è un accordo tra più elementi che devono stabilire una conversazione. La figura seguente illustra l’architettura a livelli dei protocolli di rete.

Logicamente il livello n di una macchina comunica con il livello n di un’altra macchina. In pratica, nessun dato viene trasferito direttamente dal livello n di una macchina al livello n di un’altra macchina. In fase di trasmissione, i dati inviati da una applicazione al livello più alto, passano da un livello n a quello sottostante n-1 fino al livello fisico che trasmette i dati sulla rete fino alla macchina ricevente. In fase di ricezione, i dati passano da un livello n-1 a quello soprastante n fino all’applicazione sulla macchina ricevente che elabora i dati. Tra due livelli esiste una interfaccia. Ad esempio, la figura seguente illustra la comunicazione tra i due livelli di ordine cinque di un protocollo a cinque livelli. Si noti come l’invio di un dato dal livello n (n < 5 in questo

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 7/41

caso) a quello n-1 implica la creazione di una header a livello n, contenente le modalità di indirizzamento e i parametri tipici di quel livello. Al contrario, in fase di ricezione, l’header del livello n è eliminata dal messaggio quando esso è inviato al livello n+1.

Un insieme di protocolli, uno per livello, è detto pila di protocolli. Un insieme di livelli e protocolli è chiamato architettura di rete. Le archietture di rete sono alla base di tutte le reti di calcolatori

I livelli possono offrire differenti tipi di servizi.

Posta elettronica con ricevutaDatagram con ack

Voce digitalizzataConnessione non affidabile

Sequenza di pagineSerie di messaggi affidabili

Interrogazione databaseRichiesta - Risposta

Blocchi di posta elettronicaDatagram non affidabile

Collegamento remotoSerie di byte affidabili

EsempiServizi

Con connessione

Senza

connessione

1.4 Modello ISO/OSI Il modello ISO (International Standard Organization) OSI (Open Systems Interconnection ) è composto da 7 livelli:

Comunicazione logica

Comunicazione fisica

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 8/41

Gli obiettivi della decomposizione a livelli sono i seguenti: • Tramite l’organizzazione a livelli di definisce un grado di astrazione. • I livelli devono corrispondere a funzioni definite. • Le funzioni devono considerare l’insieme degli standard. • I confini dei livelli devono minimizzare il flusso informazioni. • Il numero di livelli deve essere ottimale (non troppi né pochi).

Sebbene sviluppato facendo uso di standard e seguendo ben definite metodologie tale modello non si è mai diffuso in maniera larga, a causa della complessità delle sue specifiche e anche a causa della ricchezza di funzionalità che lo resero molto pesante in termini di prestazioni, da implementare. Come già descritto, anche nel modello OSI la trasmissione dei dati attraversa i livelli della pila di protocolli, come illustrato di seguito. Un aspetto rilevante è la distinzione in comunicazioni end-to-end, che interessano le macchine periferiche della rete (host), e comunicazioni point-to-point, che interessano le macchine interne alla rete (dette gateway o router). Di seguito sono illustrate le funzioni dei livelli del modello OSI. Livello Fisico. Riguarda la trasmissione dei bit sul canale fisico di trasmissione. Coinvolge aspetti di tipo:

• elettrico (linee comunicazione, propagazione onde) • comunicazione (simplex, half-, full-duplex, …) • meccanico (standards connettori, …)

Livello Data Link. Organizza i dati da inviare sul canale fisico in frame di lunghezza prefissata caratterizzati da una header e da una tail. Le principali funzionalità sono:

1. Trasforma la linea fisica in una linea in cui gli errori di trasmissione vengano sempre segnalati.

2. Divide le informazioni in pacchetti e li trasmette attraverso il mezzo fisico, attendendo un segnale di “avvenuta ricezione” (ack).

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 9/41

3. Gestisce l’eventuale duplicazione dei frame ricevuti, causata dalla perdita dell’ack. 4. Sincronizza un mittente veloce con un ricevente lento. 5. Gestisce l’accesso al canale di trasmissione condiviso.

Livello Network. Ha il compito di instradare i dati, utilizzando un modello di comunicazione a commutazione di pacchetto. Un aspetto rilevante è l’indirizzamento delle macchine sulla rete e il relativo algoritmo di instradamento, che deve inoltrare i pacchetti dal mittente al destinatario ottimizzando una qualche funzione obiettivo, tipo la lunghezza del percorso, il costo, il tempo, ecc. Anche in tal caso ad ogni dato (pacchetto) è associata una header che contiene tra l’altro l’indirizzo del mittente e del destinatario. Tale livello, che offre prestazioni point-to-point, svolge le seguenti funzioni:

1. Controlla il cammino e il flusso di pacchetti. 2. Gestisce la congestione della rete. 3. Gestisce l’accounting dei pacchetti sulle reti a pagamento. 4. Implementa l’interfaccia necessaria alla comunicazione di reti di tipo diverso.

Livello Transport. tale livello offre invece prestazioni end-to-end e quindi controlla l’intera trasmissione non più tra due computer adiacenti, ma tra la macchina mittente e quella destinataria. Esso:

1. Accetta dati dal livello superiore, li spezza in parti più piccole e le trasmette, assicurando un servizio privo di errori e l’ordine corretto di ricomposizione.

2. Gestisce la diffusione di messaggi a più destinazioni. 3. Fornisce il servizio di recapito dei messaggi con o senza garanzia sull’ordine del

loro arrivo al destinatario Livello Session. Questo livello, di fatto assente nei protocolli realmente utilizzati, offre le seguenti funzionalità:

1. Controlla il dialogo tra due macchine: la comunicazione non può essere sempre full-duplex, questo layer tiene traccia di chi è il turno attuale.

2. Gestisce il controllo dei token. 3. Gestisce la sincronizzazione del trasferimento dei dati.

Livello Presentation. Le funzionalità di questo livello, di fatto assente nei protocolli realmente utilizzati, si limitano:

1. Alla traduzione dei dati che viaggiano sulla rete in formati astratti. Queste informazioni vengono poi riconvertite nel formato proprietario della macchina destinataria.

Livello Application. I servizi di questo livello sono completamente legati alle applicazioni:

1. Quali dati trasmettere 2. Quando trasmettere 3. Dove trasmettere / a chi 4. Significato di bits/bytes.

Esempi di applicazioni sono: File Transfer, Posta elettronica, World Wide Web, Multimedialità, File System distribuiti.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 10/41

Di seguito è illustrato il flusso di dati tra i livelli del protocollo OSI.

1.5 Tipologie di reti LAN/MAN/WAN Local Area Network (LAN). Sono le reti più diffuse e utilizzano quasi per la totalità dei casi protocolli di tipo broadcast. Lo standard “de facto” per reti LAN o reti Locali è Ethernet nelle sue diverse varianti (Ethernet, FastEthernet, GigaEthernet, operanti rispettivamente con bande di trasmissione dati di 10, 100, 1000 Mbit/sec). Come verrà illustrato di seguito di definisce Intranet una rete LAN che utilizza i protocolli TCP/IP e le applicazioni Web per espletare i suoi servizi. Metropolitan Area Network (MAN). Le MAN possono essere pensate come delle grandi (estese) LAN visto che spesso usano una simile tecnologia, e la grande differenza è che esse sono spesso dislocate su territorio pubblico. Solo di recente con la cablatura delle città esse iniziano a diffondersi in Italia, esempi sono FastWeb, che collega la cintura urbana intorno a Milano e una rete metropolitana sviluppata presso Pisa. Normalmente sono gestite da provider pubblici o da società miste pubblico/private, dove la componente pubblica è spesso o titolare del territorio (es, amministrazione comunale) o proprietaria di public utilities (rete gas, rete fognaria, autostrate, ferrovie) dove vengono dislocati i collegamenti.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 11/41

Wide Area Network (WAN). Le reti WAN dette anche reti geografiche, quasi sempre sono il backbone (pubblico o privato) che interconnette più LAN/MAN. Esse si basano su una sotto-rete con routers, dove il backbone contiene i routers, la periferia contiene gli Host che sono connessi alla sottorete tramite apparati di switching e routers. Al contrario delle LAN e spesso delle MAN, le reti WAN usano quasi esclusivamente protocolli di comunicazione punto-punto. Mentre le prire reti ad estensione geografica, quale la rete telefonica, adottavano una modalità di comunicazione detta a commutazione di circuito, le reti WAN attuali usano la commutazione di pacchetto.

Internet, è l’interconnessione a livello mondiale di tante reti LAN, MAN, WAN

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 12/41

2 IL PROTOCOLLO TCP/IP 2.1 Confronto con il modello ISO/OSI Il protocollo TCP/IP (Transmission Control Protocol / Internet Protocol), utilizza i principi di base del modello ISO/OSI, ma è notevolmente più semplice e quindi più efficiente delle implementazioni ISO/OSI. Tra questi si ricordano:

• Decomposizione in livelli per diminuire la complessità • Ogni livello offre servizi ai livelli superiori, mascherando come questi servizi sono

realizzati • Ogni livello passa dati e informazioni di controllo al livello sottostante, sino a

raggiungere il livello fisico dove avviene la trasmissione • Meccanismo di “imbustamento”

Il TCP/IP, nato su iniziativa dell’agenzia americana della difesa DARPA, è stato largamente adottato in ambito accademico ed è diventato in poco tempo lo standard de facto per i protocolli di rete, superando tutti i protocolli proprietari sviluppati dai vari produttori (ad es. AppleLink della Apple, Token Ring di IBM, PSI DecNet di Digital e così via). La semplificazione rispetto al modello OSi si esplica nella non presenza e definizione dei due livelli Session e Presentation, e nella non specifica, che è lasciata a costruttori terze parti, dei livelli Physical e Data Link (ad esempio, il protocollo Data Link della rete

Applicazione

Presentazione

Sessione

Trasporto

Rete

Data Link

Fisico

Applicazione (telnet, ftp, smtp,...)

assente

assente

Trasporto (TCP,UDP)

Rete (IP, ICMP, ...)

Host-to-Network (non specificato)

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 13/41

Ethernet, definito da Xerox, è ora standardizzato da IEEE). La figura seguente mostra il confronto tra i due modelli ISO/OSI e TCP/IP.

2.2 Struttura del TCP/IP

I principali protocolli del Livello di TRASPORTO sono: TCP Transmission Control Protocol

• flusso di byte bidirezionale canale virtuale, • dati non duplicati, • affidabili, con controllo di flusso

UDP User Datagram Protocol

• Scambio di messaggi inaffidabile • senza connessione e senza ordine

Il principale protocollo del Livello di RETE è:

IP Internet Protocol • Scambio di datagrammi senza garanzia di consegna.

La figura seguente mostra la struttura completa del modello TCP/IP.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 14/41

2.3 Livello rete: protocollo IP Internet Protocol (IP) è un protocollo di instradamento connection-less. Offre le funzioni di:

1. instradamento dei messaggi basato su indirizzi unici a 32 bit (IP address) 2. frammentazione e riassemblaggio 3. rilevazione (senza correzione, con notifica) degli errori 4. Versione attuale IPv4 (IPv6 già definita)

Indirizzi IP. Un indirizzo IP identifica univocamente un Host sulla rete:

• Gli indirizzi sono organizzati in classi di differente cardinalità, per sopperire ad esigenze di differenti organizzazioni

• Gli indirizzi hanno una semplice gerarchia – Rete – Host nell’ambito della rete

• Un indirizzo IP è una stringa di 32 bit, spesso presentata nella “dot notation”, come sequenza di 4 byte

La figura seguente illustra le differenti classi degli indirizzi IP.

Applicazione (telnet, FTP, SMTP, HTTP, DNS, ...)

UDP

IP, ICMP

Host-toNetwork

Gateway prot.

ARP, RARP

TCP

Rete

Trasporto

Applicazione

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 15/41

La netmask è definita nel seguente modo:

• Stringa di 32 bit tale che NETMASK AND IP-ADDRESS = NETWORK • Es. la netmask per un indirizzo di classe A vale 255.0.0.0, perchè la rete occupa il

primo byte dell’indirizzo.

Esempio di indirizzo IP. L’indirizzo di classe B e relativa netmask (naturale) – 160.97.3.4 – 255.255.0.0 (11111111-11111111-00000000-00000000)

• Denota l’host – x.x.3.4 (00000011-00000100), n° 772

• sulla rete – 160.97.x.x, (10100000-11000001), n° 41153

Indirizzi speciali. Questi indirizzi hanno il significato illustrato di seguito.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 16/41

Indirizzi “privati”. Tali indirizzi devono essere utilizzati all’interno di organizzazioni e non vengono instradati su Internet. Il loro utilizzo permette di sopperire alla mancanza di IP “pubblici”, cioè instradabili su Internet. Esistono una serie di reti di indirizzi privati nelle varie classi:

• Classe A: 10.x.x.x – 10.x.x.x (1) • Classe B: 172.16.x.x – 172.31.x.x (16) • Classe C: 192.168.0.x – 192.168.255.x (256)

Concetto di sottorete. Le sottoreti sono domini di indirizzamento separati, esi consentono:

• Autonomia nella decomposizione di una rete • Nessun impatto sull’instradamento globale

La figura seguente illustra il concetto di sottorete, ovvero utilizzare una parte dei bit dedicati all’host per partizionare la rete in più partizioni dette sottoreti. le sottoreti vengono individuate facendo uso di opportune subnet mask, che estraggono dall’indirizzo la sottorete.

Esempio di sottorete. Se “estendiamo” di 8 bit la rete del precedente indirizzo di classe B (160.97.3.4), ovvero utilizziamo per la sottorete i primo 8 bit dedicati all’host:

– 160.97.3.4 – 255.255.255.0 (Nuova netmask) – (11111111-11111111-11111111-00000000)

• Denota l’host – x.x.x.4 (00000100), n° 4

• sulla sottorete – x.x.3.x (00000011), n° 3

• sulla rete – 160.97.x.x, (10100000-11000001), n° 41153

• E’ come se la nostra rete fosse composta da 256 reti di classe C, ognuna con 256 host, in tal caso l’indirizzo denota

– l’host n.° 4 – sulla rete 160.97.3.x

Struttura del pacchetto IP. Il pacchetto IP, o datagramma, illustrato nella figura seguente, contiene una header e i dati. L’header contiene:

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 17/41

• versione del protocollo (nel caso IPv4 vale sempre 4) • lunghezza header (in assenza di opzioni vale 20 byte) • tipo di servizio richiesto alla rete (di solito best-effort, può prevedere priorità, ecc.) • lunghezza totale del datagramma (header+dati) • identificatore del datagramma e posizione dell’eventuale frammento nel

datagramma • frammentazione (se e come il pacchetto è frammentato e come ricostruirlo) • “invecchiamento” del pacchetto, per scartare pacchetti instradati indefinitivamente • protocollo di livello superiore (trasporto) a cui il pacchetto deve essere

consegnato • informazioni relative alla rilevazione di errori (checksum) • indirizzi mittente e destinatario • eventuali opzioni aggiuntive (sicurezza, tipo di instradamento, debug, ecc.)

Obiettivo del livello IP (vedi figura seguente) è consegnare i datagrammi al nodo destinatario

• il termine IP forwarding indica le operazioni necessarie per consegnare tali pacchetti

• il termine IP routing indica le operazioni “amministrative” effettuate per dare (e aggiornare) al livello IP le informazioni necessarie all’instradamento

– Se tali informazioni sono decise staticamente, si parla di “routing statico” ed è attivo solo IP forwarding

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 18/41

2.4 Livello trasporto: protocolli TCP e UDP Di seguito sono illustrate le funzionalità del livello Trasporto.

coda datagrammi

datagrammi in ingresso

Errori ?

Indirizzo locale ?

NO

TCP UDP

SI

Protocollo di IP routing

event. aggiorna tabella di routing

Tabella di routing

NO

Operazione di output

coda datagrammi

datagrammi in uscita

• Controllo di flusso

• Controllo delle connessioni

• Controllo di errori

• Sequenzializzazione

• Multiplexing sulle applicazioni

• Controllo della congestione. Host-to-Network

Internet

Trasporto

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 19/41

I protocolli di trasporto in genere gestiscono: • l’indirizzamento, • il controllo di flusso, • il multiplexing, • i numeri di sequenza e • il controllo degli errori

per un collegamento attraverso una rete. I protocolli di trasporto definiti sulla rete Internet (su IP), sono:

Trasmission Control Protocol (TCP) definisce un protocollo di trasporto orientato alla connessione

progettato per fornire un flusso affidabile end-to-end su una internet inaffidabile.

User Data Protocol (UDP) definisce un protocollo senza connessione

permette di inviare datagram IP senza stabilire una connessione si usa per comunicazioni che prevedono una richiesta e una risposta.

Come di consueto nelle reti a livelli, il TCP su un computer usa IP per comunicare con il TCP di un altro computer.

Se nel livello Data Link l’indirizzo utilizzato è, ad es. nel caso di rete Ethernet, il MAC address che individua un’interfaccia di rete, e nel livello Network (IP), l’indirizzo usato è l’IP address che identifica l’host o meglio una delle sue interfacce di rete, anche nel livello Trasporto si ha il concetto di indirizzo che identifica questa volta un punto di accesso alle applicazioni. Gli indirizzi del livello Trasporto sono detti Port.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 20/41

TCP: Trasporto con connessione Trasmissione

Riceve un flusso di dati dall’applicazione, Li organizza in unità lunghe al massimo 64Kb, Spedisce le unità di dati come datagram IP.

Ricezione Riceve i datagram IP, Ricostruisce il flusso di byte originale nella sequenza corretta.

E’ necessaria la ritrasmissione dei datagram non ricevuti e il riordinamento dei datagram arrivati in ordine errato. Socket

Il concetto di socket è stato introdotto su UNIX BSD, esso è l’oggetto accessibile da programma per realizzare applicazioni che comunicano via scambio messaggi.

Ogni socket è caratterizzato da un indirizzo consistente nell’indirizzo IP dell’host e di un numero locale a 16 bit (porta)

Per ottenere un servizio TCP si deve creare esplicitamente una connessione fra un socket della macchina mittente e un socket della macchina ricevente.

Una volta attivato un socket è utilizzato come un file.

Le connessioni sono identificate con gli identificatori dei socket dei due lati (socket1,socket2).

Di seguito la struttura dell’header del pacchetto TCP che è detto segmento.

telnet

Porte TCP

Indirizzo IP 138.190.12.34

Indirizzi Ethernet 00-21-52-21-C6-84

ww

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 21/41

UDP: Trasporto senza connessione

Ogni operazione di output produce esattamente un datagram UDP che comporta l’invio di un datagram IP.

UDP non garantisce affidabilità di consegna. Se il datagram eccede la MTU (Maximum Transfer Unit) della rete, esso viene

frammentato.

L’header del datagramma UDP è:

Source port Destination port

Sequence number

Acnowledgement number

checksum Urgent pointer

Window size

Options (0 o più parole a 32

Dati

TCPheader lenght

FI N

SYN

RST

PSH

URG

ACK

max=65535-20-

Identificano la

prossimo byteLunghezza

dell’header in parole a 32

32 bit

IP header

UDP header

dati UDP

20 bytes 8 bytes

datagram IP

datagram UDP

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 22/41

Le porte UDP sono indipendenti da quelle TCP. La lunghezza in byte comprende sia i dati che l’header (≥8). Il checksum comprende anche uno pseudoheader che contiene le informazioni IP.

2.5 Livello applicazione e servizi di base: DNS

Nel Livello Applicazioni si hanno programmi applicativi e servizi usati dagli utenti della rete. Esempi significativi sono:

Domain Name System (DNS)

Risoluzione dei nomi delle risorse sulla rete. SNMP (Simple Network Management Protocol)

Gestione di risorse di rete. POP3 (Post Office Protocol) e IMAP (Interactive Mail Access Protocol)

Accesso remoto alle caselle di posta elettronica. Simple Mail Transfer Protocol (SMTP)

Gestione della posta elettronica. FTP (File Transfer Protocol)

Trasferimento file remoti. HTTP (HyperText Transfer Protocol)

Server WWW e browsers Web. Telnet, Usenet news, ssh, ...

DNS (Domain Name System)

Gli indirizzi delle macchine in rete sono definiti in formato numerico, ma sono più facili da usare se sono indicati come delle stringhe, che sono più facili da ricordare e da capire. Ad es. l’indirizzo numerico 150.145.63.1 corrisponde all’host di nome simbolico www.icar.cnr.it.

Gli utenti usano nomi simbolici, ma per comunicare sulla rete servono gli indirizzi IP numerici.

Porta sorgente Porta destinazione

Lunghezza checksum

Dati

32

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 23/41

Quando gli host sono pochi la tabella di conversione può essere memorizzata localmente ad ogni host (es, /etc/hosts in Unix).

Il DNS è distribuito: ogni sito mantiene il suo database relativo agli host locali eseguendo su una macchina il server DNS che può essere interrogato da altri siti su Internet.

Il DNS è un database distribuito che permette di convertire i nomi simbolici degli host negli indirizzi IP numerici (e viceversa).

I nomi in Internet sono organizzati in modo gerarchico. I nodi rappresentano domini e le foglie domini senza sottodomini I domini sono di tipo generico:

com organizzazioni commerciali edu università USA gov organizzazioni governative USA int organizzazioni internazionali mil rete militare USA net fornitori di servizi di rete org organizzazioni no profit

e legati alla posizione geografica

it italia de germania uk united kingdom fr francia us united states au australia

Sono in fase di attivazione nuovi domini generici (es. info) Alcuni paesi inseriscono sottodomini equivalenti a quelli generici (es, .ac.au e

.com.au - istituzioni accademiche e commerciali dell’Australia)

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 24/41

Il NIC gestisce il primo livello; i sottolivelli sono gestiti localmente (gestione DNS servers, assegnazione nomi, ecc.).

Il DNS si compone di due entità: Name Server o DNS Server

Una zona è un sottoalbero del DNS amministrato separatamente. Per evitare problemi lo spazio dei nomi DNS è suddiviso in zone non sovrapposte. Ogni zona contiene un name server primario e uno o più name server secondari,

che gestiscono il database dei nomi.

Resolver o DNS Client

Quando un’applicazione deve convertire un nome di host nell’indirizzo IP o viceversa, chiama una procedura resolver che contatta il DNS server del suo dominio.

Quando un resolver chiede di risolvere il nome al name server locale: Il nome dell’host è locale, viene restituito il record di autorità. Il nome è relativo ad un host di un’altra zona viene effettuata una

interrogazione ricorsiva su più server per ottenere l’indirizzo (a meno che non sia nella cache).

In Java la procedura è incapsulata nella classe InetAddress. nslookup è un programma client che permette di esplorare la tabella del Name

Server. 2.6 Configurazione del protocollo TCP/IP su rete locale Di seguito è illustrata la configurazione del protocollo TCP/IP con indirizzo statico in una rete locale, con sistema operativo Windows XP. Occorre definire IP address, Netmask, Default Gateway, uno o più indirizzi di DNS server (o Name Server), da Pannello di Controllo e proprietà rete.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 25/41

Esempi di programmi per testare la funzionalità del TCP/IP sono: • ipconfig • ping • traceroute (tracert nei sistemi windows). ipconfig /all visualizza tutte le impostazioni TCP/IP per tutte le interfaccie di rete C:\>ipconfig /all Configurazione IP di Windows Nome host . . . . . . . . . . . . . . : ALOHA Suffisso DNS primario . . . . . . . : Tipo nodo . . . . . . . . . . . . . . : Ibrido Routing IP abilitato. . . . . . . . . : No Proxy WINS abilitato . . . . . . . . : No Scheda Ethernet Connessione alla rete locale (LAN): Stato supporto . . . . . . . . . . . : Supporto disconnesso Descrizione . . . . . . . . . . . . . : Connessione di rete Intel(R) PRO /100 Indirizzo fisico. . . . . . . . . . . : 00-00-39-87-AE-EB Scheda PPP Libero-CS: Suffisso DNS specifico per connessione: Descrizione . . . . . . . . . . . . . : WAN (PPP/SLIP) Interface Indirizzo fisico. . . . . . . . . . . : 00-53-45-00-00-00 DHCP abilitato. . . . . . . . . . . . : No Indirizzo IP. . . . . . . . . . . . . : 151.26.51.32

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 26/41

Subnet mask . . . . . . . . . . . . . : 255.255.255.255 Gateway predefinito . . . . . . . . . : 151.26.51.32 Server DNS . . . . . . . . . . . . . : 193.70.192.25 193.70.152.25 NetBIOS su TCPIP. . . . . . : Disabilitato C:\>

ping host permette di verificare se un host è attivo. Microsoft Windows XP [Versione 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\>ping 127.0.0.1 Esecuzione di Ping 127.0.0.1 con 32 byte di dati: Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128 Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128 Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128 Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128 Statistiche Ping per 127.0.0.1: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 0ms, Medio = 0ms C:\>

traceroute host permette di visualizzare il percorso (hops) seguito da un pacchetto per raggiungere, dall’host corrente, l’host destinatario. C:\>tracert www.icar.cnr.it Rilevazione instradamento verso www.icar.cnr.it [150.145.63.3] su un massimo di 30 punti di passaggio: 1 652 ms 227 ms 221 ms 151.6.155.52 2 205 ms 215 ms 209 ms 151.6.109.1 3 228 ms 221 ms 227 ms 151.6.3.29 4 226 ms 221 ms 227 ms RMTI-N01-RMAS-T01-po01.wind.it [151.6.3.70] 5 240 ms 221 ms 641 ms garr-nap.namex.it [193.201.28.15] 6 253 ms 215 ms 221 ms rt-rm1-rt-na1.na1.garr.net [193.206.134.245] 7 231 ms 227 ms 233 ms cs-na.garr.net [193.206.134.86] 8 262 ms 233 ms 233 ms cnrarcavacata-rc.cs.garr.net [193.206.142.214] 9 245 ms 239 ms 227 ms 192.168.2.10 10 192.168.2.10 rapporti: Rete di destinazione irraggiungibile. Rilevazione completata. C:\>

Un altro esempio è:

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 27/41

C:\>tracert www.libero.it Rilevazione instradamento verso vs-fe.iol.it [195.210.91.83] su un massimo di 30 punti di passaggio: 1 214 ms 215 ms 215 ms 151.6.155.52 2 204 ms 227 ms 215 ms 151.6.109.1 3 233 ms 227 ms 221 ms 151.6.2.29 4 224 ms 233 ms 233 ms gw-mi-121-mica-t01-po03.wind.it [151.6.2.170] 5 231 ms 647 ms 233 ms 192.106.7.229 6 231 ms 233 ms 232 ms vs-fe.iol.it [195.210.91.83] Rilevazione completata. C:\>

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 28/41

3 INTERNET E WORLD WIDE WEB 3.1 Architettura di Internet Una definizione di Internet è (Federal Networking Council, 24/10/1995) : Sistema globale di informazione che:

• e’ collegato da un unico spazio di indirizzi basato sul protocollo IP • consente di comunicare mediante protocollo TCP/IP o sue estensioni • rende accessibili, pubblicamente o privatamente, servizi basati sulla infrastruttura

descritta Una breve cronologia di Internet:

• 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) • 1967 Nasce il progetto Arpanet • 1969 Primo login di Arpanet • 1972 Prima demo pubblica • 1972-74 Lavori di Cerf e Kahn su TCP • 1979 Nasce CSNET • 1983 TCP/IP protocollo ufficiale Arpanet • 1986 Entra in funzione la rete ad uso civile NSFNET • ... il Web ancora non esiste..

Internet è una rete data dall’interconnessione, a livello globale, di varie reti, tutte basate sul protocollo TCP/IP.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 29/41

3.2 World Wide Web Il World Wide Web (WWW) è una architettura software per l’accesso a documenti distribuiti su Internet e collegati tra loro. Una “Ragnatela” mondiale di documenti organizzati secondo un modello ipertestuale. I concetti alla base del WWW sono:

• Internet, • ipertesti multimediali, documenti a lettura non sequenziale con inserti multimediale

Il Web è un sistema client-server su Internet per l’accesso a ipertesti multimediali

Il Web usa il modello client-server per lo scambio delle informazioni.

• Il client, è realizzato dal browser che “gira” sull’elaboratore dell’utente. • Il server, è un programma applicativo che “gira” sull’elaboratore del fornitore di

informazioni (provider). Cronologia del WWW.

• Nato nel 1989 al CERN di Ginevra come mezzo per scambiare informazioni, Tim Berners Lee pubblica “Hypertexts at Cern”

• 1990-91 Il primo browser WWW in uso al Cern • La prima interfaccia grafica è stata Mosaic • 1994 Marc Andressen fonda Netscape • Nel 1994 è stato fondato il W3C - Consorzio World Wide Web (www.w3c.org).

rriicchhiieessttaa

rriissppoossttaa

cclliieenntt

sseerrvveerr

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 30/41

• 1995 versione 1.0 di MS Internet Explorer (progetto O’Hare, distribuito con il nome di Internet Jumpstart Kit in Microsoft Plus! per Windows 95)

I concetti di base per la navigazione su Web e per la visualizzazione degli ipertesti sono:

• Browser: programma applicativo per navigare in rete e per visualizzare ipertesti, che è capace di inviare richieste a Server web

• Server Web: applicazione che gestisce insiemi di ipertesti e che risponde ad invocazioni di Browser web

• Page (pagina): singolo “foglio” di un ipertesto. • Link, iperlink: porzione di una pagina che, se selezionata, permette di raggiungere

un altro punto dell’ipertesto o una nuova risorsa. • Home-page: “punto di ingresso” di un sito web. • URL. Essi sono gli indirizzi per “trovare” i documenti nel Web e sono detti Uniform

Resource Locator (URL) e identificano in modo univoco i nodi (i documenti).

Lo schema generale di un URL è: protocollo://indirizzodelserver[:portaTCP]/pathname, ad esempio: http://www.unicz.it/index.html, è l’indirizzo della home-page dell’Università di Catanzaro. Oltre ad HTTP (spiegato avanti), molti browser web sono in grado di gestire diversi protocolli definiti negli URL.

• http HTTP http://www.deis.unical.it/index.html • ftp FTP ftp://ftp.lcs.mit.edu/pub/README • file file locale C:\doc\lezione-reti.ppt • news gruppo news news:comp.os.linux • news articolo news news:[email protected] • gopher Gopher gopher://gopher.cs.umbc.edu/ • mailto invio email mailto:[email protected] • telnet login remoto telnet://si.deis.unical.it

HTML. Gli ipertesti del Web sono scritti usando il linguaggio HyperText Markup Language (HTML).

• HTML non è un linguaggio di programmazione! • HTML descrive la disposizione di tutti gli elementi presenti all’interno di un

documento ipertestuale. Include documenti in altri formati. Protocollo HTTP (HyperText Transfer Protocol). La comunicazione tra client e server Web avviene seguendo il protocollo HTTP, cioè un protocollo a livello di applicazione per lo scambio di ipertesti multimediali:

• Hyper Text Transmission Protocol (HTTP) introdotto per trasmettere documenti ipertestuali / ipermediali sulla rete.

• Il protocollo defisce l’interazione (richieste e risposte) tra client e server Web. • Le richieste HTTP sono in formato ASCII e le risposte in formato MIME.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 31/41

• Prescrive il formato di – nomi delle risorse (URL) – domande – risposte

• Versioni: HTTP/0.9, 1.0, 1.1 • Riferimento: Tim Berners Lee, Request for Comment 1945, HTTP/1.0 Ogni sito Web ha un processo server in ascolto su una porta TCP. La porta standard è la numero 80 ma può essere usata una porta con numero diverso. Questo permette di avere più server Web su una stessa macchina. Il protocollo è senza stato (non c’è memoria delle transazioni). Web Servers e Download di Pagine Web

• Il browser controlla e determina l’URL, (es. www.w3c.org), • Il browser chiede al DNS l’indirizzo IP del sito richiesto, • Il DNS risponde 18.23.0.23, • Il browser crea una connessione TCP sulla porta 80 della macchina 18.23.0.23, • Il browser invia il comando

GET/hypertext/WWW/TheProject.html • Il server invia il file TheProject.html, • Viene chiusa la connessione TCP, • Il browser visualizza il testo del file e quindi le immagini contenute in esso.

3.3 Posta elettronica Questa applicazione permette di scambiare dati tra due o più utenti identificati univocamente sulla rete. Gli standard RFC 821 e RFC 822 proposte da ARPANET sono stati accettati a scapito di altre proposte come X.400 proposto dal CCITT. Due sottosistemi:

• User agent : agenti utenti che permettono di inviare e ricevere messaggi di posta. • Transfer agent : agenti di trasferimento che si occupano di far arrivare i

messaggi dal mittente al destinatario. Questi implementano cinque funzioni base:

• composizione • trasferimento • visualizzazione • notifica • eliminazione

Agenti utente

• Programmi per leggere, comporre e gestire la posta e le mailboxes (es. Eudora, Netscape Messenger, Outlook, Pine, Mailtool)

• Possono utilizzare protocolli per la gestione di mailbox remote (POP3, IMAP).

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 32/41

Agenti di trasferimento

• Gestiscono il trasferimento dei messaggi dalla sorgente alla destinazione e la ricezione dei messaggi sui server di posta.

• Sono programmi di sistema che sono eseguiti in background e usano il protocollo SMTP per trasferire i messaggi sulla rete (es. sendmail, postfix).

Il trasferimento dell’email segue il seguente flusso:

Indirizzi di posta elettronica. Hanno il formato [email protected]

• Gli indirizzi sono risolti dal DNS che individua il server a cui inviare il messaggio (eventualmente usa una richiesta MX)

• Il server di posta riceve i messaggi e li accoda nella mailbox dell’utente. • La mailbox è un file di testo in una directory specifica nel server (es. in Unix può

essere /spool/mail/utente ) • L’utente può accedere alla posta localmente leggendo il file mailbox. Il client per la

lettura della posta provvede a individuare i singoli messaggi nella mailbox. I messaggi hanno una header e un body. l’header ha i seguenti campi (di tipo testo):

To: Indirizzo DNS del destinatario (o destinatari).

Cc: Copia in carta carbone (indirizzi “per conoscenza”)

Bcc: Copia in carta carbone con indirizzi invisibili ai riceventi.

From: indirizzo di ha scritto il messaggio (necessario).

Sender: indirizzo di chi ha inviato il messaggio (opzionale).

Received: Indica l’agente che ha ricevuto il messaggio insieme a un timestamp. Viene inserito

mittente agente utente

coda della posta da spedire

agente di trasferimento

destinatario agente utente

mailboxes degli utenti

agente di trasferimento

connessione TCP

tramite la porta 25

SMTP

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 33/41

da ogni agente durante il trasferimento. Si puo’ cosi ricostruire il percorso della email.

Date: Data e ora in cui il messaggio è stato inviato

Reply-to: Indirizzo al quale inviare le risposte (reply) se diverso da From.

Message-Id: Numero unico che individua il messaggio

Subject: Argomento del messaggio

Un esempio di header è: Return-Path: <[email protected]> Received: (from root@localhost) by srvgarr.unicz.it (8.9.3/8.8.7) id NAA29443 for [email protected]; Wed, 9 Jun 2004 13:16:56 +0200 Received: from mail.majise.it (IDENT:nR2Ku+56ZX7wmgYsHDzms1+FIUKJ15vb@host2-142.pool21326.interbusiness.it [213.26.142.2]) by srvgarr.unicz.it (8.9.3/8.8.7) with ESMTP id NAA29387 for <[email protected]>; Wed, 9 Jun 2004 13:16:54 +0200 Received: from mail.majise.it (IDENT:[email protected] [213.26.142.2]) by mail.majise.it (8.9.3/8.8.7) with ESMTP id JAA05309 for <[email protected]>; Wed, 9 Jun 2004 09:18:49 +0200 From: "Nome Cognome" <[email protected]> To: <[email protected]> Subject: Re: R: materiale didattico Date: Wed, 9 Jun 2004 09:18:49 +0200 Message-Id: <[email protected]> In-Reply-To: <000601c44cd3$fafcabd0$9a671a97@ALOHA> References: <[email protected]> <000601c44cd3$fafcabd0$9a671a97@ALOHA> X-Mailer: Open WebMail 1.70 20020712 X-OriginatingIP: 213.26.142.32 (xxxxxxxxx) MIME-Version: 1.0 X-scanner: scanned by Inflex 1.0.10 - (http://pldaniels.com/inflex/) Content-Type: text/plain; charset=iso-8859-1 Status: Contenuti dell’email. La posta è inviata come testo ASCII usando un codice a 7-bit trasmesso su 8 bit con il bit più significativo a 0. Non permette di trasmettere caratteri non ASCII con messaggi di email senza una opportuna codifica. La soluzione è stata quella di usare il formato MIME per permettere alle email di contenere e trasportare caratteri non

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 34/41

ASCII. MIME definisce una struttura al corpo del messaggio e definisce come codificare i messaggi non ASCII. Multipurpose Internet Mail Extensions (RFC 1521)

Aggiunge dei campi di intestazione per definire la struttura del corpo del messaggio (è gestita dall’agente utente)

I tipi di contenuto sono organizzati in categorie predefinite. Ad es., text/plain, text/html, image/gif, multipart/mixed, application/octet-stream.

I campi aggiuntivi dell’header sono:

Mime-Version: versione MIME Content-Type: tipo del messaggio Content-Transfer-Encoding: modo di trasferimento Content-ID: identificatore unico Content-Description: contenuto del messaggio

Un esempio di header MIME è:

MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Length: 1240 Status: RO

Protocollo SMTP (Simple Mail Transfer Protocol). Il protocollo SMTP definisce la sequenza di comandi (inviati in ASCII) necessaria per il trasferimento dei messaggi (tra il client/user agent e il server/transfer agent) usando una connessione TCP sulla porta 25 della macchina destinataria. È un insieme minimale di comandi usati dal client:

HELO <host> “Saluta” il server.

MAIL From: <indirizzo> indica il mittente del messaggio.

RCPT To: <indirizzo> Indica il destinatario.

DATA Invio corpo del messaggio terminato da un punto (.) su una linea

QUIT Chiude la connessione.

I protocolli tipicamente usati per leggere la posta elettronica sono:

Post Office Protocol (POP3), protocollo semplice per recuperare i messaggi e memorizzarli sulla macchina dell’utente.

Interactive Mail Access Protocol (IMAP), più complesso per permettere di leggere i messaggi conservandoli sul server di posta.

Distributed Mail System Protocol (DMSP), permette di gestire la posta su più server e in maniera asincrona.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 35/41

4 SICUREZZA SU INTERNET 4.1 Concetti di base della sicurezza informatica I criteri di sicurezza sono:

• Se non è permesso, è proibito o maggiore sicurezza o meno flessibile da configurare

• Se non è proibito, è permesso o minore sicurezza o più facile da configurare

4.2 Firewall Il Firewall è concettualmente il processo che filtra il traffico in ingresso e in uscita da una rete

• E’ l’unica strozzatura del sistema da proteggere • E’ una barriera tra due reti

InterNet

DB

WWW

FW

Accesso a WWW aziendale Accesso a FTP server aziendale Mail in ingresso da Internet

Intranet

Accesso a Internet (WWW, ftp) Accesso a FTP server aziendale Mail in uscita verso Internet

Telnet RloginSiti

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 36/41

Il firewall è usato tipicamente per:

• Controllo sugli accessi • Misurazione del traffico e rilevazione di situazioni anomali • Limitazione degli accessi da/a particolari aree (es. domini IP, utenti, ecc.) • Realizzazione di VPN

I firewall si dividono in due tipologie a seconda del tipo di controllo:

• A livello rete (HW) – controllo solo sul pacchetto – screening router (es. Cisco)

• A livello applicazione (HW+SW) – controllo sul pacchetto e correlazione con l’applicazione che lo genera/usa – residente su macchina (dedicata o general purpose), es. FireWall 1 su Sun

4.3 Controllo di accesso I meccanismi di controllo assicurano che l’accesso (rete, database, applicazioone) venga concesso in base ad una certa policy di sicurezza prestabilita Differenti approcci:

– username e password – token – crittografia biometrica

Autenticazione. L’autenticazione è:

• Riconoscimento di un utente che si presenta al sistema • Processo attraverso il quale il sistema si assicura che l’utente richiedente è

veramente chi sostiene di essere, usando: – le credenziali presentate dall’utente – le informazione possedute dal sistema

I metodi dell’autenticazione sono: • Username e password • Certificati digitali • Strong authentication

– Token: • password dinamiche con timestamp • challenge-response

– utente: richiesta connessione – server: invia challenge (ogni volta diverso) – utente: calcola il response, mediante il token, usando il challenge,

e lo invia al server – server: controlla se response è corretto

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 37/41

4.4 Sicurezza nelle comunicazioni Garantire la sicurezza nelle comunicazioni implica:

• Integrità dei dati – garanzia che i dati non sono stati manipolati tra mittente e destinatario

• Riservatezza dei dati – garanzia che i dati sono intelleggibili solo da mittente e destinatario

• Non ripudio – garanzia contro il possibile disconoscimento sull’effettiva occorrenza delle

comunicazioni La tecnologia di base per garantire la sicurezza è la crittografi. 4.5 Crittografia simmetrica e asimmetrica La crittografia è il processo di trasformazione di un documento (tipicamente testuale) in maniera tale da renderlo non comprensibile a terzi, ma solo al destinatario legittimo. Crittografia simmetrica. Si usa una unica chiave (stringa segreta) per crittografare e decrittografare il documento.

Il problema principale è la sicurezza e la distribuzione delle chiavi. Crittografia asimmetrica. Uso di due chiavi, uniche e complementari, tali che ciò che può essere fatto con una chiave (es. codifica), può essere invertito (es. decodifica) solo con la seconda chiave:

• la chiave privata, generata localmente sul sistema utente, deve rimanere segreta • la chiave pubblica, invece, è resa pubblica attraverso Directory server e Certificati

Digitali Rende possibile realizzare le segienti due funzioni:

DES ???? ???? ???? ???? ???? ???? DES

CHIAVE SEGRETA CONDIVISA FRA

MITTENTE E DESTINATARIO

Mittente Destinatario

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 38/41

• documento cifrato (decodificabile solo dal destinatario)

• documento firmato (garanzia sul mittente)

RSARSA ???? ???? ???? ???? ???? ????

Mimm

Francesc

Mario

Paol

CHIAVE PUBBLICA DEL DESTINATARIO

CHIAVE PRIVATA DEL DESTINATARIO

Mittente Destinatario

Directory server delle chievi pubbliche (c/o Certification Authority)

Codifica Decodifica

RSARSA ???? ???? ???? ???? ???? ????

CHIAVE PRIVATA DEL MITTENTE

CHIAVE PUBBLICA DEL MITTENTE

Mittente Destinatario

Mimm

Francesc

Mario

Paol

Codifica Decodifica

Directory server delle chievi pubbliche (c/o Certification Authority)

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 39/41

4.6 Certificati digitali e firma digitale Un certificato digitale (Digital ID) è l’equivalente elettronico di un documento di identità:

• esso contiene le informazioni di identità del possessore (Mario Cannataro, …) • contiene la chiave pubblica del possessore • è emesso da una trusted authority (Certification Authority) che garantisce

sull’identità del possessore – assegnando il certificato solo dopo avere appurato l’identità del richiedente – cifrando il certificato con la sua chiave privata

4.7 Cenni al protocollo SSL Server a garantire la sicurezza nelle comunicazioni tra Browser e Server Web. • Secure Socket Layer (SSL)

– sistema sviluppato da Netscape basato sull’uso dei certificati digitali – mutua autenticazione tra web server e browser (utente) – riservatezza comunicazioni

• traffico cifrato usando un’unica "session key.” (per utente e connessione), a sua volta è cifrata con la chiave pubblica del server

– integrità delle comunicazioni

Mimmo

Francesco

Mario Cannataro

Paolo

controfirmato da C.A.controfirmato da C.A.

Certification Authority: generazione certificati digitali

RSA

CHIAVE PRIVATA DELLA CERTIFICATION

AUTHORITY

Mario Cannatar

Mario Cannataro

controfirmato da C.A.

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 40/41

Esempio di sessione SSL:

UNIVERSITÀ MAGNA GRÆCIA DI CATANZARO

Prof. Mario Cannataro Dipartimento di Medicina Sperimentale e Clinica “G. Salvatore” Pag. 41/41

5 RIFERIMENTI BIBLIOGRAFICI

1. Andrew S. Tanenbaum, "Reti di Computer", Prentice Hall International, 1997 2. Douglas Comer, Internet e reti di calcolatori, Addison Wesley Italia, 2000. 3. James F. Kurose, Keith W. Ross, Internet e Reti, McGraw-Hill, 2001. 4. Douglas Comer, Internetworking con TCP/IP, vol.1, Addison Wesley Italia 2002. 5. http1.0: Tim Berners Lee, Request for Comment 1945, HTTP1.0 6. http1.1: Internet Draft <draft-ietf-http-v11-spec-rev-06> (November 18, 1998)

http://www.w3.org/Protocols/History.html#HTTP11