Argomenti
Processi e TCP
- Modello client/server; "server" come processo vs calcolatore; importanza del tipo delle entità.
- Interfaccia vs implementazione; protocollo come regole note a priori (IETF, RFC).
- Layering applicazione / TCP-UDP / IP.
- Indirizzo TCP =
<IP, port>: porta del server fissata dal protocollo, porta del client scelta dal s.o. - Interfaccia socket: welcoming e communication socket;
bind/listen/accepteconnect.
Sezioni
- Processi Comunicanti (38)
- Applicativi TCP (63)
Materiale didattico aggiuntivo
Protocolli e Proprieta
- Scale temporali: parallelismo indispensabile lato server e lato client.
- Rappresentazione dei numeri (basi 2, 10, 16) e codifica ASCII del testo.
- Protocolli di testo (HTTP, SMTP, POP) vs binari (DNS).
- Proprietà dei servizi di comunicazione: connection/connectionless, byte/message, reliable/unreliable.
- TCP (connessione, affidabile, flusso di byte) vs UDP; nessuna garanzia temporale.
Sezioni
- Scale temporali (10)
- Protocolli di testo e binari (18)
- Proprietà Servizi Comunicazione (19)
Materiale didattico aggiuntivo
DNS Uso e Architettura
- Nomi al posto degli indirizzi IP; default name server e local resolver con cache.
- Architetture: name server interno, dell'ISP, public resolver; recursive vs authoritative.
- Requisiti di progetto: scala, prestazioni, fault-tolerance, autonomia amministrativa.
- Resource Record
<nome, type, valore>: A, MX, CNAME, NXDOMAIN, additional record, RRset; domain tree, TLD, SLD. - Infrastruttura critica: hijacking, indisponibilità, censura, sorveglianza, profilazione. Il nome non dice nulla su chi gestisce l'host.
Sezioni
- DNS - Uso (24)
- Architettura DNS (31)
- DNS - Importanza strategica (16)
- Resource Records (30)
- Domini (21)
Materiale didattico aggiuntivo
DNS Gestione Domini
- Proprietario di un dominio: controllo completo sui RR e sui sottodomini; delega → zone.
- Acquisto di un SLD da un DNS Registrar; in pratica ogni nome è acquistabile da chiunque.
- Problema fondamentale: il nome suggerisce un proprietario, ma nulla garantisce l'associazione.
- Da dominio a proprietario: catena root → TLD → Registrar → Registrant, via whois.
- Enormi problemi pratici: procedure lente, Registrar non collaborativi, identità facilmente falsificabile.
Sezioni
Materiale didattico aggiuntivo
Web - Contenuti 1
- WWW e URL (protocollo, server, risorsa); URL è localizzatore, non identificatore.
- Documenti statici vs dinamici; query string come parametri di input.
- HTML in breve: tag, elementi, attributi.
<IMG>e<IFRAME>: prelievo automatico di altre risorse, anche da altri server.- Una pagina web non è un documento: molti documenti da molti server → base del tracking.
Sezioni
- WWW: URL e Risorse (34)
- Contenuti web: HTML (51)
- Visualizzare una Pagina Web (20)
Web - Contenuti 2
- Come pubblicare un sito: PC proprio, calcolatore affittato, web hosting, website builder.
- Non-custom vs custom domain: nel secondo il proprietario configura A/CNAME nel proprio name server.
- CSS: separazione struttura/visualizzazione, stili per tag, class, div; media queries.
- JavaScript: dove stanno gli script e quando vengono eseguiti.
- Uno script controlla tutta la pagina e può inviarne i dati ovunque → attenzione alle librerie di terzi.
Sezioni
Materiale didattico aggiuntivo
Web - HTTP
- Formato di Request e Response; header principali; la Response non contiene nomi di file.
- Una o più coppie request/response per connessione TCP.
Host(più siti su un server),Referer(impatto privacy),Location(redirection),User-Agent(meglio il sito responsive).- Proxy HTTP: navigazione indiretta; il browser risolve solo il nome del proxy; URL completo nella request.
- Invio dati con FORM: form elements, query string, POST vs GET.
Sezioni
- HTTP (43)
- Proxy HTTP (14)
- Trasmettere dati ad un Web server (26)
Materiale didattico aggiuntivo
Web - Sessioni Auth
- HTTP è stateless: né connessione TCP né indirizzo IP identificano il Browser@Device.
- Sessione con cookie:
Set-Cookie/Cookie, cookie table del browser, tabella e stato delle sessioni. - Autenticazione FORM e pattern di login; riservatezza del cookie identifier importante quanto quella della password.
- Authentication vs Authorization: ACL, Realm, controlli programmati; vulnerabilità IDOR reali.
- HTTP Basic:
WWW-Authenticate/Authorization, Base64 (codifica, non protezione).
Sezioni
- Sessioni HTTP (43)
- Autenticazione HTTP (50)
- Authentication vs Authorization (22)
- BASIC Authentication (16)
Materiale didattico aggiuntivo
Web - Tracking
- Incognito = cookie table separata e non persistente: cancella solo la history locale.
- Analytics: IFRAME/IMG/script invisibili verso un terzo +
Referer→ conteggio per pagina. - Cookie del terzo di lunga durata → riconoscimento del singolo browser e della sua navigazione.
- Terzo presente su molti siti → profili su idee politiche, salute, situazione economica, religione.
- Web advertising: publisher/ad network/advertiser, contextual e targeted advertising, cookie syncing, device linking.
Sezioni
- Incognito Browsing (14)
- Analytics e Tracking (38)
Materiale didattico aggiuntivo
Email - Arch Proto
- Mailbox, indirizzo email, dominio email; RR MX: dominio email → host mail server (entità di tipo diverso).
- MUA: webmail, app, mail client. Il mail client contatta sempre e solo il proprio mail server.
- Domini diversi: il mail server mittente si comporta da client SMTP verso quello destinazione.
- Autenticazione: sempre in POP, in SMTP solo per mittenti locali → Sender Address Spoofing possibile.
- Protocolli SMTP e POP a linee ASCII; formato email RFC 822 (header, linea vuota, body).
Sezioni
- E-mail: Architettura (43)
- E-mail: Protocolli (17)
Email - Practical issues
- Sender Address Spoofing banale (
swaks); spam su scala enorme. - Difese: molte euristiche su interazione SMTP, contenuti e indirizzo IP del client.
- Filtri molto accurati ma falsi positivi costosi; oggi conviene ingannare più che falsificare (SPF, DKIM).
- Interazione diretta con i server:
telnet,swaks,openssl s_client; ostacoli pratici sulla frontiera. - Forwarding, mailing list, "send as": cambiano il numero di mail server attraversati.
Sezioni
- Spam e Sender Address Spoofing (23)
- Forwarding, Mailing list, Send as (15)
Materiale didattico aggiuntivo
Network
- Network vs internetwork.
- Funzionalità Ethernet: indirizzi 6 byte, broadcast, connectionless, unreliable, message-oriented, MTU 1500.
- Frame Ethernet; parametri generali di una network technology; LAN vs WAN.
- Switch e access point: instradamento con switch table costruita automaticamente; non sono nodi e non hanno indirizzo.
- Nessuna configurazione per collegare un nodo; al mittente basta l'indirizzo di destinazione.
Sezioni
- Network (9)
- Ethernet: Funzionalità (12)
- Ethernet: Implementazione (35)
Materiale didattico aggiuntivo
IP - Internetwork
- Internetwork come network virtuale; funzionalità di Internet (connectionless, unreliable, 4 byte, MTU 64 KB).
- Due indirizzi per nodo, senza relazione tra loro; router con un indirizzo per ogni network.
- Azioni IP: test "IP-dst è sulla mia network?", consegna diretta o invio al default gateway; instradamento nei router.
- Il pacchetto non cambia mai, i frame sì; mai indirizzi IP nei campi di un frame.
- Internet unreliable per scelta (end-to-end principle); restano aperte configurazione, test, ARP, routing.
Sezioni
- Internetwork (25)
- Internetwork: step by step (39)
Materiale didattico aggiuntivo
IP - Netnum
- Network number: intervallo di lunghezza potenza di 2, con i K bit meno significativi a zero.
- Un solo network number per network, non sovrapposti; indirizzi non usati non riutilizzabili altrove.
- Allocazione coordinata e database whois; subnetting autonomo delle organizzazioni.
- Notazione
/n; indirizzo IP = network number + host number; host number 0 e tutti 1 riservati (minimo /30). - Subnet mask: network number =
IP AND SM; test "stessa network":myIP AND mySM == IP-dst AND mySM.
Sezioni
- Network number (15)
- Network Number: Definizione ed Allocazione (18)
- Host number (18)
- Subnet mask (10)
- Network di IP-dst (13)
Materiale didattico aggiuntivo
IP - How it works
- Configurazione statica vs dinamica; DHCP semplificato (DISCOVER broadcast, OFFER) sulla stessa network.
- ARP: da indirizzo IP a indirizzo Ethernet sulla propria network; ARP cache; campo
Typeper il demultiplexing. - Gratuitous ARP ad ogni (ri)collegamento: rileva conflitti e aggiorna le switch table.
- Caso comune svolto: sequenza di frame di un nodo appena acceso, con gli errori tipici di ordinamento.
- Routing statico: tabella
network number → interfaccia + azione, riga "altrimenti" indispensabile; cenni al dinamico.
Sezioni
- Collegare un host a Internet (22)
- ARP (36)
- Routing (45)
IP - Subnetting
- L'organizzazione acquista dall'ISP un range interno al blocco dell'ISP.
- Resto di Internet: nulla da fare; ISP: modifica solo i propri router.
- OrgX: subnetting autonomo e routing statico con regole "altrimenti"; nessuno all'esterno ne è informato.
- Subnetting in binario: ogni bit fissato dimezza l'intervallo (/20 → quattro /22, otto /23, o combinazioni).
- Dimensionamento: arrotondare ogni network alla potenza di 2 superiore, poi sommare e arrotondare.
Sezioni
- Organizzazioni: Routing e indirizzi IP (10)
- Subnetting (27)
IP - Privati Residenziali
- Range privati riservati; il router di frontiera scarta i pacchetti con IP privato → connettività solo interna.
- Perché si usano: pochi nodi esposti, gestione più semplice, pochi indirizzi pubblici necessari.
- Stesso indirizzo privato in moltissime organizzazioni (univoco solo nel proprio spazio di indirizzamento).
- NAT: un unico indirizzo verso l'esterno, nessuna configurazione per i client, configurazione per esporre un server.
- Network point-to-point e frame PPP; "router di casa" = router + switch + AP + NAT + DHCP + firewall.
Sezioni
- Indirizzi IP Privati (11)
- NAT: funzionalità (12)
- Network point-to-point (10)
- Internet at home (12)
Materiale didattico aggiuntivo
IP - Firewall
- Vulnerabilità RCE e worm (SQL Slammer, WannaCry) → non si può più permettere ogni tipologia di traffico.
- Firewall: filtra su IP address e port number, su frontiera o su endpoint, con default "tutto proibito".
- Le connessioni TCP sono bidirezionali → regole sempre in coppia (altrimenti bocciatura automatica).
- Esempi svolti: proxy, SMTP, DNS, POP, HTTP, entranti e uscenti; gergo "entrante/uscente" = connessioni.
- Realtà: regole più permissive del necessario; traffico interno libero → un nodo infetto blocca l'organizzazione.
Sezioni
- Firewall - Necessità (11)
- Firewall (24)
- Firewall reali (6)
Materiale didattico aggiuntivo
Security - Defs Crypto
- Scenario: sequenza di byte associata a un Subject, su canale nello spazio e nel tempo; Network Attacker che osserva, modifica, fabbrica.
- Proprietà: Authentication, Secrecy, Integrity; nessun protocollo visto finora le garantisce.
- Crittografia a chiave privata: solo Secrecy; "sono troppe" e "devo provarle tutte" (Enigma).
- HMAC: Authentication e Integrity, non Secrecy. Chiave pubblica: coppia KPUB/KPRIV, molto più lenta.
- Filo conduttore: distribuzione delle chiavi; il canale sicuro aggiuntivo non è utilizzabile su Internet.
Sezioni
- Security: Introduzione (16)
- Garanzie di Sicurezza (19)
- Crittografia a chiave privata (26)
- Distribuzione delle Chiavi (11)
- Crittografia a chiave pubblica (27)
Materiale didattico aggiuntivo
-
Colab: 601 - OpenSSL.ipynb
Certificati Uso
- Certificato: associazione
<Subject, KPUB>garantita da una Certification Authority. - Rilascio: la CA accerta una sola volta il diritto a usare quel Subject (RR TXT, documenti di identità).
- Due assunzioni: verifica infallibile di autenticità e integrità + "ogni CA dice sempre la verità".
- Valgono solo per le CA in KeySet e TrustSet → la validità non è intrinseca, dipende da chi verifica.
- Tecnica generale: certificati → chiave pubblica (lenta) per concordare la chiave di sessione → chiave privata (veloce) per i dati.
Sezioni
- Distribuzione delle chiavi: Soluzione moderna (39)
- Public Key Cryptography in pratica (28)
Materiale didattico aggiuntivo
HTTPS
- TLS su TCP: Secrecy, Integrity, Authentication del DNS name del server.
- Apertura: invio del nome (SNI), ricezione e verifica del certificato, controllo del Subject, invio di KS crittata.
- Funziona perché solo il legittimo proprietario conosce la KPRIV e sa decrittare KS.
- Non dà: availability, autenticazione del client, garanzia che l'utente usi il DNS name giusto (problema irrisolto).
- HTTPS: utile anche prima delle credenziali (FORM autentico e integro); cookie
Secure; certificate chain.
Sezioni
- TLS: Funzionalità e Implementazione (67)
- HTTPS (15)
- Capire le proprietà di HTTPS (16)
Materiale didattico aggiuntivo
Firma Digitale
- Limite di TLS: I+A valgono solo sulla connessione e solo mentre esiste.
- Obiettivo: I+A su qualunque canale, verificabili da chiunque e in qualunque momento.
- Firma con la KPRIV, verifica con la KPUB; nessuna ipotesi sul canale, su ritardi o ordine di arrivo.
- Con il certificato si passa dall'autenticazione della chiave a quella del Subject; formati PKCS7/PKCS12/p7m.
- Applicazione chiave: firma di eseguibili e aggiornamenti. "Autentico e integro" ≠ vero, ≠ sicuro.
Sezioni
- Firma digitale (27)
- Firma digitale in pratica (19)
Materiale didattico aggiuntivo
Certificati Impl
- Fidarsi di una CA le dà un potere enorme (casi Kazakhstan, Russia, regole europee).
- Non c'è modo di essere certi che una CA non certifichi associazioni false.
- Via la "bacchetta magica": ogni certificato è firmato dall'Issuer, la validazione ne verifica la firma con la KPUB del KeySet.
- Esempi: autenticazione server in HTTPS e verifica di un PDF firmato; dove stanno KeySet, TrustSet, PersonalSet.
- Inizializzazione: non da certificati self-signed su canale non sicuro, ma dal sistema operativo (fiducia nel fornitore).
Sezioni
- Trusted CA (12)
- Autenticità ed Integrità dei certificati (19)
- KeySet e TrustSet in pratica (10)
- Inizializzazione KeySet e TrustSet (10)
Materiale didattico aggiuntivo