INFORMAZIONI SU

Reti di calcolatori

Programma dell'insegnamento di Reti di calcolatori - Corso di laurea in Informatica (2013/14)

Docente

Prof. Marino Miculan

Crediti

9 CFU

Finalità

Scopo del corso è introdurre i concetti fondamentali delle moderne reti di calcolatori, e fornire allo studente le necessarie conoscenze per affrontare l'analisi e lo studio di una rete. In particolare verranno presentate le caratteristiche generali delle reti, i modelli ISO/OSI e TCP/IP, e le problematiche affrontate dai principali protocolli ad ogni livello di questi modelli. Infine verranno introdotte le principali problematiche di sicurezza delle reti di calcolatori, e relative soluzioni.

Programma

- Introduzione alle reti di calcolatori
Reti LAN, WAN, MAN. Internetworking. Internet. Protocolli. Modello ISO/OSI. La suite TCP/IP.
- Dati e Segnali
Segnali analogici e digitali; spettro e suo significato; larghezza di banda; rappresentazione in bit dei valori del segnale digitale.
Deterioramento del segnale; Velocità di trasferimento; Teoremi di Nyquist e Shannon per la capacità del canale. Prestazioni: larghezza di banda, throughput, latenza (ritardo), prodotto banda-ritardo, jitter.
- Trasmissione dei dati
Conversione digitale-digitale; Codifica di line. Campionamento: teorema di Nyquist e sua interpretazione, frequenza di campionamento; filtraggio di segnali (cenni); quantizzazione e codifica; modulazione e demodulazione Delta; trasmissione parallela e seriale: trasmissione seriale sincrona, asincrona e isocrona. Conversione segnale digitale-analogico.
Multiplexing e della diffusione; Strategie di occupazione della banda del canale trasmissivo.
Mezzi trasmissivi: doppino, cavo coassiale, fibra ottica; etere: onde radio, microonde, infrarossi.
Commutazione: struttura tipica di una rete, switch. Commutazione di circuito. Commutazione di pacchetto. Reti a circuito virtuale. Architettura banyan. Reti tradizionali: trasporto di voce e dati (cenni); utilizzo della capacità del doppino nel protocollo ADSL.
- Rilevamento e correzione degli errori
Aritmetica modulare; codici a blocchi: distanza di Hamming, distanza minima; codici lineari: distanza minima; codice a parità. Codici di Hamming. Codici ciclici. Codici a controllo di somma.
- Funzioni di controllo nello strato di collegamento
Framing. Controllo del flusso e degli errori. Protocollo semplice e stop-and-wait. Protocolli per canali con rumore. Comunicazione bidirezionale e piggyback delle informazioni di controllo. Accesso singolo: HDLC e PPP (cenni). Accesso multiplo casuale: ALOHA, ALOHA a intervalli, CSMA, CSMA-CD, CSMA-CA; accesso multiplo controllato: prenotazione, sondaggio, testimone; accesso multiplo per canalizzazione: FDMA, TDMA, CDMA con regole su struttura, proprietà e costruzione dei codici.
- LAN cablate e senza fili
Ethernet: formato del frame, indirizzi e casting dei destinatari, vincoli su lunghezze di frame e cavo, protocolli 10Base, hub, bridge e switch, modalità full-duplex, ethernet veloce e autonegoziazione; protocolli 100Base, 1000Base e requisiti sullo strato fisico. IEEE802.11: architettura ad-hoc, di base con punto d'accesso ed estesa, coordinamento centralizzato e distribuito, contesa, tipi di frame, indirizzamento, nodi nascosti, tipi di strato fisico.
- Protocolli di rete
Indirizzamento logico. Indirizzamento IP. Maschere. Subnetting e supernetting. CIDR. NAT. IPv4: obiettivi, motivazioni. Funzione dei router. Proprietà di IP, posizione rispetto agli altri protocolli. Formato del datagramma IPv4. Frammentazione. IPv6: motivazioni, caratteristiche extra rispetto a IPv4. Tecniche di transizione da IPv4 a IPv6.
Protocolli ancillari ARP, RARP. BOOTP e DHCP. ICMP: tipi di messaggi, uso per notifica errori, uso per analisi della rete: ping e traceroute. IGMP: gruppi multicast.
Consegna e instradamento. Tavole di routing. Routing gerarchico. Strumenti netstat e ifconfig. Protocolli di routing. Routing intra-dominio. Vettore delle distanze. RIP. Calcolo spanning tree. OSPF. Routing inter-dominio. Vettore dei percorsi. BGP. Routing multicast. Differenze con unicast e broadcast, applicazioni. Instradamento multicast: alberi basati sulla sorgente, alberi condivisi sul core router. Protocolli di routing multicast (cenni).
- Protocolli di trasporto
Indirizzamento di processo, servizi connection-oriented affidabili. Porte, servizi. Modello client/server, porte ben note, porte registrate, porte effimere. Socket.
Comunicazione a datagrammi connectionless best-effort: UDP. Caratteristiche, formato header, funzionamento. Esempio di client e server UDP in C.
Comunicazione a flusso connection-oriented affidabile: TCP. Caratteristiche, segmenti TCP, numero di sequenza, numero di riscontro. Connessioni TCP. Apertura attiva, passiva; vulnerabilità SYN flooding. Trasferimento dati. Chiusura attiva, passiva. Diagramma di stato di TCP. Controllo del flusso in TCP. La finestra scorrevole. Gestione degli errori, ripetizioni, arrivi fuori ordine. Esempio di client e server TCP in C.
Protocollo SCTP: caratteristiche, applicazioni, differenze con TCP. Esempi di protocolli su SCTP. Flussi multipli, multihoming. Struttura dei pacchetti SCTP, chunk di dati e di controllo. Associazione a quattro passi con cookies. Sliding window in SCTP.
- Il controllo della congestione
Parametri del traffico, funzionamento del router. Ritardo e throughput. Controlli proattivi, e misure reattive.
Controllo della congestione in TCP. Calcolo della congestion window. Algoritmi di congestion window. Controllo di congestione nei router. Algoritmo RED. Cenni alla qualità di servizio. Gestione del traffico con schedulazione. Algoritmo dell'imbuto per limitare il jitter.
- Protocollo DNS
Funzionamento dal punto di vista del client. Struttura gerarchica dei domini, FQDN e PQDN. Completamento. Zone e server di zona. Deleghe. Root name servers. Risoluzione ricorsiva, iterativa. Caching. Name server locale. Struttura dei messaggi DNS di richiesta e di risposta. Protocolli di trasporto per DNS: UDP, TCP, vantaggi e svantaggi. Autorità di assegnazione dei nomi di dominio: ICANN, e ISP locali.
- Introduzione alla sicurezza
Aspetti generali. Goal di sicurezza: la triade CIA. Metodologia generale per la sicurezza. Costi della sicurezza. Tipi di attacchi. Attacchi passivi (eavesdropping, traffic analysis) e attivi (masquerade, modify, replay, DoS). Servizi di sicurezza: autenticazione, controllo di accessi, confidenzialità, integrità, non-ripudio, disponibilità. Meccanismi di sicurezza. 
I modello del canale insicuro (Dolev-Yao). Collocazione dei meccanismi di sicurezza ai vari livelli dello stack OSI.
- Cenni di crittografia.
Definizione dei concetti fondamentali. Tipo di sicurezza: assoluta, computazionale. Principio di Kerckhoff. Attacchi brute-force, analitici. Crittografia a chiave simmetrica, cifrari AES, RC4. Cifratura a chiave pubblica, cifrario RSA.
- Autenticazione e integrità dei messaggi
Autenticazione con cifratura simmetrica, con MAC. HMAC: progetto generale, struttura, dimensioni, utilizzo. Esempio: sicurezza nel wireless: WEP, attacco a compleanno, WPA e WPA2 con TKIP.
Firme digitali. Firme digitali dirette; firme digitali arbitrate. Algoritmo di firma RSA, con verifica.
Servizi di sicurezza per email. PGP: servizi offerti, funzionamento, chiavi di sessione, chiavi pubbliche, web of trust. S/MIME: uso di certificati X.509. Posta Elettronica Certificata: servizi implementati, funzionamento.
- Autenticazione di entità
Meccanismi "something you know", "something you have", "something you are". Autenticazione con password. Protocolli di autenticazione. Chiavi di sessione. Attacchi replay, contromisure. Versioni con cifratura simmetrica, asimmetrica.
Autenticazione a chiave simmetrica. Protocollo Needham-Schroeder a cifratura simmetrica. Kerberos.
Gestione delle chiavi simmetriche. Algoritmo Diffie-Hellman per la creazione di chiavi condivise. Attacco man-in-the-middle, contromisura con messaggi autenticati. Autenticazione a chiave pubblica. Protocolli per mutua autenticazione con chiave pubblica (asimmetrica). Protocollo di Needham-Schroeder-Lowe.
Distribuzione delle chiavi pubbliche. Certificati. X.509: funzionamento, creazione dei certificati, uso e revoca dei certificati (CRL). Certification authorities, gerarchie di CA, validazione di certificati in gerarchie di CA. PKI. Procedure di autenticazione in X.509.
- Sicurezza ai livelli di trasporto.
La suite SSL. Protocollo di handshaking, di trasporto. Formato dei pacchetti. Tipologie di chiavi usate, limitazioni. Metodi di scambio di chiavi. TLS e differenze con SSLv3. Porting di applicazioni a SSL: principali API.
- Sicurezza a livello rete.
La suite IPSec. Modi di funzionamento tunnel/trasporto. Protocolli AH, ESP, in modo trasporto e tunnel. Servizi di sicurezza offerti, funzionamento. Security association. Security Policy. Gestione delle chiavi in IPSec: manuale, automatica. Il protocollo IKE: Oakley, ISAKMP. Esempi di scambio ISAKMP: main mode a chiave precondivisa, a chiave pubblica; aggressive mode a chiave pubblica.
Virtual Private Networks: definizione, servizi di una VPN, applicazioni. Protocolli usati per implementare VPN (PPTP, L2TP/IPSec).
- Sicurezza dell'accesso ai sistemi
Il modello del controllo di accesso. Intrusion Prevention Systems, Intrusion Detection Systems. Firewall. Filtraggio mediante proxy.

Bibliografia

- Forouzan, Behrouz, "Reti di Calcolatori e Internet". McGraw-Hill, 2008.
- Forouzan, Behrouz, "Cryptography and Network Security". McGraw-Hill International Edition, 2008.

Modalità d'esame

Esame scritto obbligatorio, seguito possibilmente da esame orale