Sistemi e Reti 5°
2019/2020 e seguenti
Indice
2
Incapsulamento/Deincapsulamento
3
ISO/OSI, TCP/IP e protocolli
4
Livello IP
5
Configurazione di un PC in LAN
Ogni host deve essere definito da un indirizzo IP, da una subnet mask e da un gateway. Di seguito la configurazione di una scheda di rete (comando cmd ipconfig /all):
6
Legenda configurazione di rete
DNS: Server che risolve gli indirizzi IP (www.ciao.it -> 132.145.3.4)�DHCP: Server che assegna la configurazione di rete�Gateway: Server che permette di navigare fuori dalla rete�NetBios: Protocollo di rete che utilizza TCP/IP e fornisce servizi per programmi “vecchi”�IAID: Identity Association Identifier (? Indagare...)�DUID: DHCP Unique Identifier (? Indagare...)�Lease: Quando è stato ottenuto l’indirizzo�Scadenza Lease: Quando l’indirizzo scade e ne può essere asssegnato un altro.�Indirizzo fisico: MAC Address
7
Indirizzi statici
Quando la configurazione del pc è statica l’amministratore deve inserire manualmente tutte le informazioni su tutti i pc della rete.
Ad ogni avvio ogni pc avrà sempre la stessa configurazione.
A destra il pannello di configurazione in windows per le proprietà IPv4.
8
Indirizzi statici
A destra il pannello di configurazione dell’IPv6 in Windows.
La subnet è definita solo come “lunghezza prefisso subnet”
9
Indirizzi dinamici (DHCP)
DHCP: Dynamic Host Configuration Protocol
La soluzione generalmente adottata è quella di utilizzare un server �DHCP che fornisce a chi si connette in rete tutte le informazioni necessarie.
I passaggi sono (come nella figura a destra):
Il periodo di lease è il periodo in cui un determinato pc avrà garantito un determinato IP.
10
DHCP Options
Comando ipconfig/all
Lease: Il periodo in cui l’ip è assegnato al MAC address
11
Utilizzo DHCP in Packet Tracer
Packet Tracer fornisce un’interfaccia che consente di impostare tutti i parametri che il DHCP dovrà fornire ai pc che appartengono alla rete:
12
DHCP in Packet Tracer (2)
Maschera di configurazione del server DHCP.
serverPool contiene la configurazione standard.
E’ possibile configurare altri pool (diversi da serverPool) per altre reti. Affinché il server sia raggiungibile vanno configurate le porte di uscita dei router con ip helper-address indicando l’indirizzo del server DHCP fuori dalla rete
13
DHCP da cli in Packet Tracer sul router
Il DHCP può essere configurato globalmente su un router o su una sua porta ethernet. Si dice che si configura un pool di indirizzi, cioè un insieme di indirizzi.
Il seguente comando da cli imposta un pool dhcp sul router con un gateway:
Router(config)#ip dhcp pool name
Router(dhcp-config)#network indirizzo_rete maschera_rete
Esempio:
Router(config)#ip dhcp pool LAN
Router(dhcp-config)#network 192.168.1.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.1.254
�Maggiori dettagli e tutti i comandi (impostare default gateway, dns, ecc… ) su:
Configurazione DHCP su router Cisco o Configure Cisco router as DHCP server
14
ARP: Address Resolution Protocol
ARP gestisce la traduzione degli indirizzi IP in indirizzi fisici MAC. Una scheda di rete (NIC) mantiene nella sua cache ARP le corrispondenze tra indirizzo fisico e IP.
ARP funziona a livello Data Link
ARP funziona nel caso si utilizzi il forwarding diretto.
Forwarding Diretto: La trasmissione tra due pc non coinvolge il router ed avviene all’interno della rete locale.
Forwarding Indiretto: La trasmissione del datagram passa per il router, quindi esce dalla rete locale.
15
ARP Cache
La cache ARP memorizza le associazioni tra IP4 e mac nel pc.
In windows per visualizzare la tabella ARP cache posso digitare il comando arp -a nella console.
Ecco un esempio di output. Nella mia rete di casa l’indizzo 100 è la stampante, il 66 un telefono.
Le associazioni dinamiche sono quelle apprese e quelle statiche quelle preconfigurate nella rete.
16
ARP: Funzionamento
Il funzionamento del protocollo ARP è il seguente:
17
Header ARP
18
ARP Request - Packet tracer
Esempio di pacchetto ARP Request su Packet Tracer.
Si può notare che il MAC del destinatario è in broadcast FFFF.FFFF.FFFF.
Mac mittente e Ip mittente sono compilati.
E’ compilato anche l’IP del destinatario di cui si cerca il MAC.
19
ARP Poisoning
20
Protocollo RARP
Il protocollo RARP fa il contrario di ARP: a partire da un MAC Address recupera un indirizzo IP. Veniva usato prima diBOOTP e DHCP (https://www.ionos.it/digitalguide/server/know-how/protocollo-rarp/).
21
Comunicazione TCP/IP
Nel protocollo TCP/IP le comunicazioni utilizzano un indirizzo detto TSAP (Transport Service Access Point address) che è rappresentato dalla coppia Indirizzo IP e porta.
La porta è un numero compreso da 16 bit da 0 a 65535 che rappresenta un particolare servizio.
La porta è un qualcosa di logico e non di fisico. Di solito si indica con i due punti (:).
Indirizzo IP : Numero porta
22
Porte TCP/IP
Un servizio può utilizzare una porta qualunque ma in genere:
Lista porte standard su wikipedia: https://it.wikipedia.org/wiki/Lista_di_porte_standard
23
Ping
Ping è la più semplice applicazione che utilizza ICMP. Ping invia dei messaggi per capire se un host è raggiungibile. Si utilizza in genere da linea di comando ed è disponibile in tutti i sistemi operativi.
24
ICMP: Internet Control Message Protocol
E’ un protocollo per messaggi di segnalazione che non garantisce che i messaggi siano portati a destinazione. Perché un host possa rispondere deve avere un servizio installato. E’ il protocollo utilizzato dal ping.
25
Traceroute
Traceroute è un’altra applicazione comune a tutti i sistemi operativi (anche se non è sempre scritta allo stesso modo) e indica tutti i server (un passaggio si dice hop) che vengono attraversati da un pacchetto per arrivare a destinazione.
Vengono inviati dei pacchetti con TTL crescenti, da in poi, in modo che la richiesta scada ad ognuno degli hop, cos ìda recuperarne la lista.
26
nmap
27
Esercizio: Rete wifi e pc
28
Realizza la rete e prova con il pacchetto simple icmp che i collegamenti funzionino.
Routing
29
Routing diretto: due reti, un router
30
Se c’è un solo router, una volta impostate le porte di gateway, questo permette automaticamente che le due reti di destra e sinistra inviino i pacchetti
Tip: Tutorial su youtube
Routing diretto: Tre reti connesse a un router
31
Anche se ci sono tre reti, il router deve essere impostato come gateway in tutte e tre le reti, e poi le reti comunicano in automatico.
Routing: due reti, due router
32
Quando i router sono più di uno non è più sufficiente configurare le porte di gateway ma vanno configurate anche le regole di routing
Routing
Routing in inglese significa “trovare la strada”/indirizzare.
Per routing si intende la capacità della rete di fare passare un messaggio per una strada che gli permetterà di arrivare a destinazione attraverso varie reti intermedie.
Gli elementi di rete che scelgono la strada corretta di chiamano router.
33
Routing e instradamento
Il router sceglie la strada giusta in base da gestire il traffico di rete e da evitare congestioni.
Parlando dell’invio di un messaggio/pacchetto ci sono due tipi di instradamento:
34
Tabella di routing
Ogni nodo della rete ha una sua tabella in cui memorizza le strade per arrivare alle destinazioni.
In questa tabella sono indicati:
35
Tabella routing in windows (1)
36
Rete e Mask sono della rete di destinazione
Gateway indica: On-link se la connessione è diretta, altrimenti l’indirizzo del gateway da utilizzare
L’interfaccia è la porta locale da cui deve uscire il pacchetto (un nodo può avere più schede di rete)
La metrica indica il peso della connessione, più basso è il numero minore è il costo per l’utilizzo di quella connessione
Comando da console route print.
Tabella di routing in windows (2)
Nel mio caso 192.168.0.212 è l’indirizzo del mio pc, 127.0.0.1 è l’indirizzo di loopback (localhost, ogni pc ha lo stesso indirizzo per indicare se stesso).
La riga con tutti zeri indica l’instradamento di default.
i 169 sono indirizzi delle macchine virtuali di VmWare e VirtualHost
37
Matching per il routing
Quando il router deve scegliere quale strada fare fare ad un pacchetto effettua il matching.
Mette in AND l’indirizzo di destinazione con le subnet mask per determinare la rete e poi la confronta con la tabella di routing.
Nel caso un destinatario combaci con più regole di routing viene scelta quella che ha la subnet più lunga (Longest Prefix Matching) e a parità di subnet quella che ha il costo minore (metrica).
Altro esempio routing table:
38
Aggregazione di indirizzi
A volte le tabelle di routing possono essere aggregate. Ad esempio tutte le reti che cominciano con 130.192.0.* usano lo stesso gateway per cui si possono raggruppare per semplificare la tabella.
39
Routing statico e dinamico
Routing statico: le politiche di instradamento sono decise a prori staticamente
Routing dinamico: le politiche di instradamento vengono modificate in base allo stato della rete e si autoconfigurano all’avvio dei router e poi si aggiornano periodicamente.
Vedi presentazione per i tipi di routing principali
VIdeo:
40
Routing statico in Packet Tracer (gui)
In ogni router si configurano le “direzioni” per ogni rete che si vuole raggiungere indicando:
41
Routing dinamico in Packet Tracer
Posso utilizzare RIP (Routing Information Protocol) che si configura segnalando al router tutte le reti connesse a lui in cui si vuole che RIP funzioni.
Poi la configurazione delle route avviene automaticamente.
Attenzione: non funziona con le subnet mask VLSM (Variable Length Subnet Mask) per cui va usato il RIP v2
42
RIPv2 in Packet Tracer
Per utilizzare il RIPv2 da packet tracer è necessario utilizzare la cli indicando con il comando network tutte le reti che si vogliono utilizzare. Il comando no auto-summary evita che il router usi le maschere classful.
43
Routing indiretto: Tre reti, tre router
44
Routing: Tre reti e tre router
45
Comandi per la configurazione OSPF in Packet Tracer
Dalla cli:
46
Un paio di esempi: https://study-ccna.com/ospf-configuration/
Routing OSPF in Packet Tracer
Il routing OSPF (Open Shortest Path First) è un routing Link State implementato dai router CISCO e simulata in Packet Tracer.
Le caratteristiche del routing OSPF sono:
47
Screenshot comandi OSPF Packet Tracer
48
Entro nella configurazione e configuro le reti. Dopo network metto i dati delle reti connesse.
Esco nella root dei comandi per stampare e verificare la configurazione
La O sta per la route OSPF
Esempio comandi ospf
Esempio di router connesso a 3 reti (192.168.4.0/30, 192.168.3.0/24 e 192.168.2.0/24)
router ospf 1
network 192.168.4.0 0.0.0.3 area 0 // ip rete + wildcard (netmask al contrario + area 0 (ci possono essere più aree)
network 192.168.3.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
!
49
Routing: due reti e due router
50
Rete | n° pc | subnet mask | gateway | descrizione |
192.168.0.0 | 2 + gateway | 255.255.255.0 | 192.168.0.254 | rete a sinistra |
192.168.1.0 | 2 + gateway | 255.255.255.0 | 192.168.1.254 | rete a destra |
192.168.2.0 | 2 (i due router) | 255.255.255.0 | --- | rete tra i due ruter |
Router | IP | Rete da raggiungere | subnet mask | next hop |
Router0 | 192.168.2.1 | 192.168.1.0 | 255.255.255.0 | 192.168.2.2 |
Router1 | 192.168.2.2 | 192.168.0.0 | 255.255.255.0 | 192.168.2.1 |
Descrizione delle reti:
Tabella di routing dei router:
Variante con subnet variabile (VLSM)
51
Routing Gerarchico
Internet è molto complesso e non si può realizzare una politica di routing globale.
Si ricorre al routing gerarchico dove le reti sono divise per regioni o aree chiamate autonomous system (AS) che funzionano in modo autonomo.
L’area che connette le aree e non appartiene a nessuna area si dice Backbone Area.
52
Protocolli utilizzati nel routing gerarchico
IGP (Interior Gateway Protocol), sono i protocolli utilizzati all’interno della AS:
EGP (Exterior gateway protocol) utilizzato tra le AS:
53
Riferimenti
54
Trasporto: UDP e TCP
55
Livello di Trasporto
Il livello di trasporto si occupa del controllo di flusso dei pacchetti, qui chiamati segmenti o datagrammi.
Per controllo di flusso si intende la verifica (o meno) che i segmenti arrivino tutti a destinazione e nell’ordine corretto.
Il livello di trasporto definisce anche il concetto di porta, un numero di 16bit compreso tra 0 e 65535, che identifica in genere il processo all’interno di un computer a cui i dati devono essere indirizzati.
Si definisce socket l’accoppiata indirizzo+porta che identifica un processo in un computer.
56
Trasporto
Il livello di trasporto si colloca al livello 3 del TCP e al 4 dell’ISO/OSI
57
Il livello di trasporto: incapsulamento
58
Trasporto: TCP e UDP
I principali protocolli di trasporto sono TCP e UDP.
Il TCP è utilizzato principalmente quando si vuole una connessione affidabile, ovvero quando ci interessa che i pacchetti arrivino tutti e nell’ordine corretto.
Es: Normale navigazione web, download di file, ecc...
UDP è utilizzato quando è più importante che i pacchetti arrivino nel minor tempo possibile, anche se non dovessero arrivare tutti.
Es: Trasmissione TV in tempo reale, gioco in prima persona in tempo reale, ecc...
59
Intestazione IP
60
UDP
UDP sta per User Datagram Protocol
E’ un protocollo di trasporto utilizzato quando serve inviare un messaggio senza preoccuparsi che il messaggio arrivi o meno a destinazione.
Si utilizza ad esempio nello streaming live e nei videogiochi RTS (Real time strategy) come Cod. In questi casi vengono inviati moltissimi messaggi al secondo e si preferisce che i pacchetti arrivino il più velocemente possibile anche con il rischio che qualcuno venga perso rispetto all’eventualità che arrivino tutti un po’ più lentamente.
61
Lo stato di trasporto: UDP
62
Sono presenti solo le porte di partenza e destinazione, la lunghezza e il checksum.
Caratteristiche UDP
https://it.wikipedia.org/wiki/Porte_TCP_e_UDP_standard
63
UDP: Funzionamento
64
TCP: Caratteristiche
Servizio di Trasporto affidabile:
Connessione tra due pc:
Definizioni:
65
Lo stato di Trasporto: TCP
66
Connessioni aperte: TCPView
Programma per visualizzare le connessioni TCP su windows: https://docs.microsoft.com/it-it/sysinternals/downloads/tcpview
67
TCP: Funzionamento
Mittente e destinatario si scambiano dei pacchetti:
68
TCP: Connessione / Disconnessione
69
3 way handshake
Immagine presa da: http://oktafianinurmala.blogspot.com/2013/09/komunikasi-berorientasi-koneksi-tcp-ip.html
4 way termination
QoS (Quality of Service)
Quando di instaura una connessione, a livello di trasporto si può decidere di effettuarla solo se client e server possono garantire una certa qualità del servizio.
La qualità può essere:
Parametri tipici da concordare:
Se il trasporto non può supportare il livello di Qos richiesto si può rifiutare la connessione
70
Si concorda nel campo ToS dell’header IP o con un protocollo a parte
Esempio completo
Nella sequenza una comunicazione completa:
Nella connessione e disconnessione si invia un messaggio da “1” ma quello che conta sono i valori nell’header.
71
Esempio con
pacchetto perso
Il destinatario non riceve un pacchetto e ritrasmette sempre lo stesso ack finché il mittente non rimanda da 110.
Il mittente rimanda il pacchetto scaduto l’RTO.
Notare che l’ack 110 vale per il pacchetto inviato con seq number 100 più i 10 byte di payload.
La somma deve rispettare la sequenza altrimenti viene ignorato il messaggio.
72
Esempio wireshark
73
50003 = 48551 + 1452
Conferma di 31275 + 1452
Porte mittente -> destinatario
TCP: Controllo di flusso
Il campo window dell’header (16 bit) viene utilizzato per controllare il flusso.
Indica il numero di byte che possono essere inviati senza una conferma (ack). Se vale zero indica al mittente di interrompere temporaneamente la comunicazione.
Nella comunicazione mittente e destinatario tengono una copia dei messaggi fino alla ricezione di un ack per un massimo della grandezza della finestra.
74
Window: Go Back N (GBN)
Finestra mittente \/ Comunicazione ->
75
Se si verifica un errore ritrasmetto tutti i dati dall’errore in poi.
Window: Selective Repeat
76
Se si verifica un errore ritrasmetto sono i dati che non sono arrivati correttamente.
Come varia la finestra
La dimensione della finestra varia durante la comunicazione. Ad esempio se si usa l’algoritmo Slow Start per gestire la connessione, questa parte piano e poi se viene rilevato che si possono inviare più dati la finestra viene aumentata. Se si rileva un ritardo (congestione) la finestra viene. Ecco un esempio dell’andamento di tre connessioni TCP che partono con un valore di finestra piccolo e poi aumentano.
77
Come varia la finestra (2)
Dalla figura si nota che può capitare che tutte le connessioni si sincronizzino rischiando di sprecare della banda: tutte rilevano la congestione e tutte rallentano insieme. Poi tutte rilevano che la possono aumentare e tutte le aumentano. Questo effetto si chiama TCP Global Synchonization. Per prevenire questo effetto si utilizza RED (Random Early Detection) che cerca di evitare che il canale si saturi introducendo piccole variazioni casuali.
78
Campi opzionali TCP
Alla fine dell’header TCP ci possono essere dei campi opzionali, in questo caso di 12 bytes.
Tra questi:
79
Approfondimenti
Presentazione di approfondimento sui protocolli dello stato di trasporto realizzato dalla classe 5AII nel 2020: TCP, UDP & More
80
Nat, Pat e Napt
81
NAT Dinamico
Tutti gli host privati di una rete LAN che navigano in Internet tramite un router appaiono esternamente con l’indirizzo IP del router. Questo perché il router effettua il NATting, cioè cambia l’IP interno con l’IP esterno quando escono i messaggi e viceversa quando tornano indietro.
Questo garantisce che le macchine interne non siano accessibili direttamente se non dopo una loro richiesta verso l’esterno.
Questo meccanismo di mascheramento si chiama anche IP Masquerading o traduzione dinamica.
82
Esempio NAT Dinamico
83
Tutte le richieste effettuate dai pc interni appaiono esternamente come fatte da 122.35.10.11. E’ il NAT server che si occupa di modificare all’interno del pacchetto l’indirizzo sostituendo l’ip interno con quello esterno e viceversa.
Se non facesse la sostituzione e restasse l’ip privato interno il pacchetto non potrebbe tornare indietro.
NAT Statico
Talvolta si vuole definire una trasformazione di indirizzi in modo statico e quindi si descrive una traduzione statica degli indirizzi in una tabella del router.
84
PAT e NATP
A volte può essere necessario, soprattutto nel caso in cui si utilizzi il NAT statico, modificare la porta (PAT) o sia la porta che l’indirizzo (NATP).
Ad esempio se richiedessero al router la porta 44 dell’indirizzo esterno 12.13.14.15 potrebbe fare sempre riferimento alla porta 70 del pc interno 192.168.0.4.
Questo rende più difficili gli attacchi perché da fuori non si può sapere quale è il vero indirizzo dell’host interno.
85
Nat statico su Packet Tracer
// Dalla configurazione del router (conf t) configuro il NAT
// 10.0.0.1 è la porta esterna del router, 192.168.0.1 è l’ip del pc
ip nat inside source static 192.168.0.1 10.0.0.1
int s2/0 // Assegno la porta del router che va verso l’esterno
ip nat outside
int fa0/0 // Assegno la porta del router connessa con gli ip interni
ip nat inside
Per vedere la configurazione nat: show ip nat translations
https://study-ccna.com/static-nat/ Video su youtube
86
NAT dinamico su Packet Tracer
Va configurato:
Sample Configuration Using the ip nat outside source list Command
87
Pat statico �(port forwarding)
// Dalla configurazione del router (conf t) configuro il PAT
// 209.165.200.225 è la porta esterna del router
// 192.168.10.254 è l’ip del pc
// 80 la porta che scegliamo e tcp il protocollo
ip nat inside source static tcp 192.168.10.254 80 209.165.200.225 8080
int s0/1 // Assegno la porta del router che va verso l’esterno
ip nat outside
int s0/0 // Assegno la porta del router connessa con gli ip interni
ip nat inside
88
Livello Applicazione: HTTP, FTP, DNS & C.
89
URI, URL e URN
URI: Universal Resource Identifier, un indirizzo per indicare in modo univoco una risorsa, formato da protocollo:risorsa come ad esempio chrome://settings/ o http://www.libero.it
URL: Uniform Resource Locator, un indirizzo di una risorsa in Internet ed è una particolare URI perché un identificativo come chrome://settings/ non è considerato una URL.
URN: Universal Resource Name, il nome di una risorsa senza il protocollo. Es: www.libero.it/index.html
Ma queste definizioni sembrano controverse….
90
Indirizzi web (URL)
Un indirizzo è composto da protocollo + nome server + percorso per la risorsa
91
Domini di primo e secondo livello
Il dominio Internet è la tipologia di indirizzo di primo livello, cioè la sigla che si legge dopo il punto più a destra in un indirizzo. Es: .it, .com, .uk, … �In inglese si dice TLD (Top Level Domain).
Country-code: legati alle nazioni (it, fr, tk, …)
Society-code: legati alle società (com, edu, net, …)
Il dominio di secondo livello è quello che si può acquistare (registrare)�e deve appartenere ad un TLD valido:
Es: libero.it, corriere.it, hotmail.it, ecc...
92
HTTP (Hyper Text Transfer Protocol)
Definito da IEFT (Internet Engeneering Task Force), https://www.ietf.org/
Specifiche HTTP v1.0 (RFC 1945): https://tools.ietf.org/html/rfc1945
Specifiche HTTP v1.1 (1.0 + pipeline & keep alive): https://tools.ietf.org/html/rfc2616
Specifiche HTTP v2.0 (1.1 + binary & multiplexing): https://tools.ietf.org/html/rfc7540
Caratteristiche dettagliate su sito Mozilla: HTTP
Comando curl con cui vedere la versione di HTTP: curl --head www.test.com
Esempio autenticazione: HTTP Authentication in PHP
93
Messaggi HTTP
Ogni messaggio è composto da una start line, un header e dei dati (payload). Nella richiesta i dati contengono ad esempio i dati inviati in post. Nella risposta una pagina html o un’immagine.
94
Evoluzione HTTP
95
HTTP 0.9 (1991) | Solo GET, richiesta e risposta. |
HTTP 1.0 (1996) | Aggiunti GET, POST e HEAD. Headers. Status Codes. Metadati negli header. |
HTTP 1.1 (1997) | Aggiunti PUT, DELETE, OPTIONS, TRACE, PATCH e CONNECT per il REST. Connessione con Pipeline (Più richieste nella stessa connessione). Connessione con keep-alive. Nasce HTTPS. |
HTTP 2.0 (2015) | Trasferimento dati con stream binari bidirezionali nella stessa connessione per migliorare le performance. Compressione di header e dati. Multiplexing. |
HTTP 3.0 (2019+) | Quic over UDP |
Metodi di richiesta 1
Il primo metodo utilizzato è stato il GET per la lettura di pagine e dati. In seguito sono stati aggiunti altri metodi per effettuare altre operazioni sul server.
GET: Read. La più comune, utilizzata per la lettura di informazioni/immagini/pagine web. In genere non ha dati inviati nel corpo della richiesta.
POST: Create. Invia dei dai dati nel corpo della richiesta.
PUT: Update/Modify. Utilizzata per modificare dei dati sul server. I dati vengono inviati nel corpo della richiesta.
PATCH: Update/Replace.
DELETE: Utilizzata per cancellare dei dati.
96
Metodi di richiesta 2
HEAD: Fornisce in risposta solo le informazioni dell’header
OPTIONS: Restituisce l’elenco delle opzioni supportate dal server
CONNECT, TRACE e altri….
Per testare i metodi: ReqBin su A List of REST Web-Services to try out for free | by anoop m
97
Proprietà dei metodi (da wikipedia)
98
Request method | RFC | Request has payload body | Response has payload body | Safe | Idempotent | Cacheable Response |
GET | Optional | Yes | Yes | Yes | Yes | |
HEAD | Optional | No | Yes | Yes | Yes | |
POST | Yes | Yes | No | No | Yes | |
PUT | Yes | Yes | No | Yes | No | |
DELETE | Optional | Yes | No | Yes | No | |
CONNECT | Optional | Yes | No | No | No | |
OPTIONS | Optional | Yes | Yes | Yes | No | |
TRACE | No | Yes | Yes | Yes | No | |
PATCH | Yes | Yes | No | No | No |
Codici di risposta HTTP
I codici di risposta danno informazioni sulla correttezza �della risposta.
Ci sono cinque tipologie di codici di risposta:
99
Autenticazione HTTP
Permette di autenticare un utente usando l’header HTTP. Viene inviato un messaggio per inserire login e password simile ad un popup javascript.
100
HTTP Cache
Gli headers possono essere utilizzati per controllare la cache del browser.
Ad esempio: Cache-Control: max-age=604800 dice per quanti secondi la pagina può essere considerata ok e non ricaricata dal server.
Altre opzioni di Cache-Control:
101
Cookies
I cookies sono coppie chiave/valore che vengono inviati dal server e memorizzati dal client. Il client poi automaticamente li rimanda al server ad ogni richiesta.
Vengono inseriti negli header di richiesta e risposta.
Hanno varie opzioni:
102
Sicurezza dei cookies
XSS: Cross site scripting
A7:2017-Cross-Site Scripting (XSS) | OWASP Foundation
Con uno script javascript eseguito sulla pagina un hacker invia il cookie con l’id di sessione ad un altro server e quindi può autenticarsi come quella persona.
Curiosità: Prova a usare una sessione su una pagina php e dai il tuo codice di sessione ad un compagno di classe.
103
HTTP3
HTTP/3 (wikipedia)�Introduction - HTTP/3 explained �HTTP/3 - HTTP over QUIC is the next generation by Daniel Stenberg �Benchmarking QUIC. Summer 2020 | by Alex Yu
104
FTP (File Transfer Protocol)
Utilizzato per trasferire file tra un server e client. Utilizza due porte diverse: una per trasferire i file e una per l’invio dei comandi come lista/download/upload/ecc...
Comandi: List of FTP Commands for Windows | Serv-U
Specifiche: RFC 959 - File Transfer Protocol
Descrizione: File Transfer Protocol - Wikipedia
Lista server: Список найденных ftp-сайтов, Lista FTP
Altervista ha un server FTP accessibile per modificare i file del sito.
Per il mac: Missing ftp command line tool on macOS - Ask Different
105
Ftp: Modalità attiva vs passiva
Ftp usa sempre due connessioni: una per inviare i comandi e l’altra per i dati.
Le due connessioni possono essere fatte in due modi:
106
Attiva
Passiva
DNS
DNS, Domain Name System, è un protocollo pensato per risolvere i nomi dei domini in indirizzi IP.
Ad esempio dns.google viene risolto in 8.8.8.8
È un componente fondamentale per il funzionamento di Internet a partire dal 1985.
La risoluzione avviene in modo gerarchico come da figura a destra.
107
DNS
Servi autoritativi, server non autoritativi, quanti sono? (13 i server globali/totali)
108
Query DNS
La query è una richiesta effettuata da un computer per ottenere un indirizzo IP a partire da un dominio.
109
Intestazione (Header)
Transaction ID: (2 byte)
Flags: 0100 è standard query
Questions: L’indirizzo che si richiede
Answer RRs: il numero delle risposte
Authority RRs: il numero delle risposte authority
Query
Name
Type: 0001, A per host
Class: 0001 per INternet
Risposta DNS
La risposta è identica alla query fatta eccezione per ulteriori record che aggiungono informazioni
110
Name (prima)
Type di record (A, …)
Class in genere IN (INternet)
Time To Live (TTL): Il tempo che il risultato si può memorizzare in cache
Data Length: 4 byte
Address: L’indirizzo convertito in esadecimale
Answer
Tipi di record DNS
Ci sono diversi tipi di record, indicati nel campo type della richiesta e memorizzati all’interno del server DNS.
111
Comando dig su Linux
112
DNS
Descrizione su wikipedia: Domain Name System - Wikipedia
RFC Base: RFC 1034 - Domain names - concepts and facilities
Funzionamento: Funzionamento DNS
Tipi di record: Tipi di record - Wikipedia
Dns Dinamico: https://dyndns.it/
113
MDNS
MDNS serve per risolvere i nomi all’interno di una rete locale in assenza di server. E’ simile al protocollo APIPA per assegnare indirizzi senza DHCP. Tutti gli indirizzi hanno estensione .local .
Ogni pc si assegna un nome (es: ilmiopc.local). Quando un pc vuole conoscere a chi corrisponde un nome invia un pacchetto all’indirizzo multicast 224.0.0.251 che viene ricevuto da tutti i pc della rete. Il pc giusto dovrebbe rispondere.
Pericolo: si può fare un ddos con richieste mdns e inoltre si possono avere informazioni sui device della rete solo ascoltando le richieste broadcast.
Descrizione ufficiale del protocollo MDNS: RFC 6762 - Multicast DNS
114
Funzionamento: Un client invia un messaggio email di posta elettronica ad un server smtp che lo invia al server di dominio del destinatario. Il destinatario contatta il proprio server tramite pop3/imap per verificare se ha nuovi messaggi.
MUA: Mail User Agent, programma client per l’invio/ricezione della posta
MTA: Mail Transfer Agent, programma server che permette l’invio/ricezione della posta
115
SMTP, POP e IMAP
SMTP (porta 25): Simple Mail Transfer Protocol,o protocollo per l’invio delle email ad un server che poi le invierà al destinatario. L’invio può essere libero o protetto da password, il messaggio può essere in chiaro o criptato.
POP (porta 110): Post Office Protocol, un protocollo che consente di scaricare le email contenute in un server utilizzando un’applicazione client come Outlook o Firebird. Era il modo di leggere le email più diffuso quando la connessione era più scarsa e si preferiva scaricare tutto nel proprio pc e leggerlo con calma. Si usa ancora in ambito aziendale, l’utente normale usa piuttosto le webmail.
Imap (porta 143, SSL 993): Internet Messaging Access Protocol, un protocollo più sofisticato per leggere le email. Le email possono non essere salvate in locale ma richieste se necessario. E’ stata preferita a pop3 quando le connessioni internet sono diventate più veloci perché richiede più traffico. Ad esempio se voglio leggere tre volte un messaggio per tre volte lo devo richiedere a meno che non si usi una cache locale.
116
Telnet
E’ un protocollo di rete utilizzato per realizzare dei terminali remoti.
E’ in chiaro e quindi poco sicuro. Nella maggior parte dei casi è stato sostituito da ssh.
E’ come avere un cmd o un terminale Linux che si esegue su un pc remoto. Ogni comando viene inviato in forma testuale e così viene anche ricevuta la risposta.
Uso da Windows: telnet indirizzo_server numero_porta
E’ consigliabile utilizzare Putty (https://www.putty.org/) che fornisce un telnet normale e sicuro (ssh) e altri strumenti utili.
Funny telnet places: https://www.telnet.org/, List of Telnet Servers - Chipkin Automation Systems
117
Posta & Telnet
E’ possibile inviare email via Telnet inserendo i comandi del protocollo SMTP da linea di comando: https://www.wikihow.it/Inviare-una-Email-Usando-Telnet
Es: prova a inviare una email utilizzando uno dei server smtp gratuiti presenti sul web oppure il server smtp di google/libero/xampp/ecc… all’indirizzo del prof del Planck via linea di comando.
118
Netcat (nc o ncat)
Netcat è un programma che consente di effettuare delle connessioni ad un server da linea di comando senza però simulare un terminale come telnet.
Su windows si chiama ncat ed è incluso in nmap e su linux/mac si chiama nc e dovrebbe essere incluso nelle installazioni altrimenti si può installare uno strumento di configurazione come apt.
Il tutorial presente sul sito di nmap dovrebbe fornire informazioni anche negli altri sistemi operativi: Ncat - Netcat for the 21st Century.
119
Netcat come server
Netcat può essere utilizzato anche in modalità server, mettendolo in ascolto su una porta. Di seguito alcuni esempi.
Log dei dati:
ncat -l -p 1234 > dati.txt, ascolta sulla porta 1234 e salva quello che riceve nella porta 1234
Reverse shell, permette di eseguire sul server dei comandi da remoto;
ncat -l -p 1234 -e cmd.exe, ascolta sulla porta 1234 ed esegue la stringa di testo ricevuta su un command prompt cmd.exe (Molto pericoloso! Ma serve pur sempre l’accesso alla macchina)
120
VLAN (Virtual Local Area Network)
121
VLAN: Cosa sono?
Una VLAN è un modo per raggruppare dei device/host in una rete broadcast.
Una VLAN si configura a livello di switch.
Una VLAN viene trattata come se fosse una LAN differente.
Migliora la sicurezza in quanto i messaggi broadcast non raggiungono tutti i pc ma solo quelli della VLAN prescelta.
Si può ottenere aggiungendo nell’header un’intestazione particolare che identifica a quale gruppo di device deve essere inviato un messaggio.
Per raggiungere un host in un’altra VLAN serve un router.
122
VLAN: Esempio
Normalmente un messaggio broadcast inviato dall’Host A raggiungerebbe tutti gli altri pc.
Una volta impostate le VLAN a livello di switch si vengono a creare delle aree come nel disegno.
I messaggi broadcast inviati dai pc nella VLAN 3 resteranno nella VLAN 3.
La stessa cosa vale per le altre VLAN.
123
VLAN: Access o Trunk?
Le porte dello switch possono essere configurate in uno dei seguenti modi:
Nel disegno a destra solo le porte che connettono i due router sono trunk, tutte le altre access.
124
Frame tagging: https://study-ccna.com/frame-tagging/
Vlan & Packet Tracer via cli
Aggiunge due vlan 10 e 20, con dei nomi lab10 e lab20 e salva la configurazione
Configura una porta access per una determinata vlan
Configura una porta trunk e sceglie quali vlan fare passare
Stampa la configurazione trunk
125
Router on a stick (Packet Tracer)
Per fare comunicare diverse VLAN è necessario un router che indirizzi i pacchetti da una VLAN all’altra. �Si utilizza un solo router nel quale si configura un’unica interfaccia in sotto interfacce con il protocollo 802.1Q per ricevere tutti i canali vlan.�In pratica una sola interfaccia fa da gateway per tutte le reti.�La porta dello switch verso il router è trunk.�
126
Esempio dei comandi per prima la sotto interfaccia del router 2911:� �Router(config)#interface gigabitEthernet 0/0.10�Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip address 192.168.10.254 255.255.255.0
VLAN su youtube
Introduzione alle VLAN: https://www.youtube.com/watch?v=jC6MJTh9fRE
Vlan base su Packet Tracer (access, ITA): https://www.youtube.com/watch?v=BbRIEKuFeT8
Vlan tra switch su Packet Tracer (trunking, ITA): https://www.youtube.com/watch?v=4LKbvYdCC1I
Video che spiegano come configurare le VLAN in Packet Tracer in INGLESE
VLAN Basics, part 1: https://www.youtube.com/watch?v=zim19-uqda0
VLAN Basics, part 2: https://www.youtube.com/watch?v=7AiZRaD9wuY
VLAN Basics, part 3: https://www.youtube.com/watch?v=zA1zGfSxDN0&t=47s
127
VTP (Vlan Trunking Protocol)
Video che spiegano il funzionamento di VTP (Vlan Trunking protocol).
Sono spiegati l’utilizzo delle modalità server, client e transparent.
Come usare VTP, parte 1: https://www.youtube.com/watch?v=-Wk-giujtr8
Come usare VTP, parte 2: https://www.youtube.com/watch?v=p9gR5ZQ0OTk
Come usare VTP: parte 3: https://www.youtube.com/watch?v=mbjdnkvuh6Q
128
Crittografia
129
Introduzione alla crittografia
Questo video parla di Quantum computing e sicurezza però i primi cinque minuti sono un’ottima spiegazione della crittografia simmetrica e asimmetrica.
Poi per i più coraggiosi ci sono anche gli altri dieci minuti del video!
😁
130
La sicurezza delle reti
Quando si vogliono inviare dei dati senza che questi possano essere intercettati, si cercano di garantire questi principi:
131
Crittografia
La crittografia si occupa di codificare un testo in modo che solo chi ha a disposizione una particolare codice possa poi leggerne il contenuto. Il codice con cui viene criptato un contenuto si chiama chiave. L’algoritmo che consente di passare dal messaggio leggibile al messaggio criptato utilizzando la chiave si chiama algoritmo di crittografia.
132
Crittoanalisi
Si chiama crittoanalisi l’analisi di un dato crittografato o dell’algoritmo crittografico in modo da scoprirne il contenuto.
Non sempre la cosa è maligna, serve anche a capire la robustezza della coppia algoritmo di codifica/chiave perché In base alla facilità/difficoltà di decodifica è possibile capire quanto sia sicuro un algoritmo di codifica.
Tipologie di analisi:
133
Crittografia simmetrica
Caratteristiche:
134
Testo in chiaro
Testo cifrato
Testo in chiaro
Mittente
Destinatario
Contro:
Crittografia asimmetrica (chiave pubblica/privata)
Caratteristiche:
135
Testo in chiaro
Testo cifrato
Testo in chiaro
Mittente
Destinatario
Contro:
Crittografia ibrida (simmetrica + asimmetrica)
In una comunicazione https in genere il server ha la coppia di chiavi pubblica e privata e il client genera una password simmetrica, la cripta con la chiave pubblica del server e gliela spedisce così da quel momento e per quella sessione entrambi comunicheranno con la chiave simmetrica che è più veloce.
La chiave privata temporanea si chiama “Chiave di sessione”.
Usata dall’HTTPS con il protocolli SSL e TLS.
136
Algoritmi di crittografia simmetrica
137
Cifrario a sostituzione
Ogni carattere di un messaggio viene sostituito con un altro carattere secondo una codifica prefissata.
L’algoritmo classico è il ROT13 che significa rotazione di 13 caratteri.
Un esempio classico è il Cifrario di Cesare (ROT3).
Esempio online: Cifrare con sostituzione monoalfabetica
Descrizione: Cifrario a sostituzione
138
Cifrario monoalfabetico
Il cifrario monoalfabetico utilizza un alfabeto per effettuare le sostituzioni delle lettere invece che una regola come “ROT3” vista in precedenza.
Ad esempio potrei usare l’alfabeto di sostituzione (che è la chiave stessa):
E la frase arrivano i rinforzi diventa:
139
Cifrario polialfabetico
E’ simile ai precedenti ma la chiave è una parola ripetuta che viene aggiunta alle lettere direttamente nel testo da codificare invece che all’alfabeto.
E’ famoso il cifrario di Vigenère che è alla base della macchina Enigma che i tedeschi hanno usato nella seconda guerra mondiale per codificare i messaggi.
Esempio in cui la parola “VERME” è la chiave ripetuta:
140
Cifrario a trasposizione
Un cifrario per trasposizione si ottiene modificando l’ordine delle lettere secondo una regola prefissata. Ad esempio potrei codificare la frase “piantare il campo dietro la collina” su tre linee secondo lo schema seguente:
Ottenendo il seguente codice:
141
Cifrari a flusso
Il messaggio viene codificato bit per bit o byte per byte con un flusso di byte lungo esattamente come il messaggio originale.
La massima sicurezza si ottiene se si utilizza una sola volta la sequenza di dati di codifica e se questa viene generata casualmente: otp (One time pad)
Nella realtà è più semplice realizzare la sequenza crittografica partendo da una chiave ed un algoritmo che genera la sequenza. Una specie di vigenere avanzato.
Un esempio di utilizzo è l’algoritmo RC4 del wifi.
.
142
Cifrari a blocco
ECB
Electronic Codebook (ECB)
I dati da codificare vengono suddivisi in blocchi e ogni blocco viene codificato con la chiave.
Il messaggio deve essere multiplo del blocco, altrimenti deve essere fatto il padding dell’ultimo blocco di dati per renderlo della dimensione corretta.
Ogni blocco viene criptato con la stessa chiave e può essere semplice trovare dei “pattern”, sequenze che si ripetono, all’interno del codice criptato.
143
Cifrari a blocco
CBC
Cipher Block Chain (CBC)
I dati da codificare vengono suddivisi in blocchi e ogni blocco viene codificato con una chiave.
Il messaggio deve essere multiplo del blocco, altrimenti deve essere fatto il padding dell’ultimo blocco di dati per renderlo della dimensione corretta.
Il cifrario a Block-chain è una evoluzione per evitare che tutti i blocchi vengano codificati con la stessa password. Il blocco successivo viene codificato con parte del blocco precedente.
144
DES e 3-DES�(Data Encryption Standard)
Algoritmo di cifratura simmetrico a blocchi.
Usa una chiave da 56 bit,
L’algoritmo 3DES è un DES applicato tre volte. Sebbene sicuro è stato sostituito da AES per la lentezza nell’applicare 3 volte il DES.
145
AES�Advanced Encryption Standard
Algoritmo di cifratura simmetrico a blocchi, successore del DES.
La chiave utilizzata è da 128 (10 stadi), 192 (12 stadi) o 256 bit (14 stadi).
Descrizione su wikipedia: AES (Advanced Encryption Standard)
Video esplicativo fatto da alcuni studenti nel 2020: AES
146
ChaCha 20
Algortimo di crittografia simmetrico: https://www.cryptopp.com/wiki/ChaCha20.
Il 20 indica che la crittografia si ottiene in 20 passaggi. E’ più veloce di AES.
In java 11 è già presente nelle librerie standard. Esempio di codifica/decodifica.
147
IDEA
International Data Encryption Algorithm - Algoritmo di crittografia simmetrico a blocchi
Nasce nel 1991 e utilizza delle chiavi a 128 bit e blocchi da 64 bit. Utilizza 8 passaggi per la crittografia.
148
BLOWFISH
Algoritmo di crittografia simmetrico a blocchi. https://it.wikipedia.org/wiki/Blowfish
Utilizza chiavi da 32 a 448 bit. La chiave standard è di 128.
149
Rc4
Algoritmo di cifratura simmetrico a flusso
Usato da WEP e WPA.
150
Tempi di decodifica
151
Algoritmi di crittografia asimmetrica
152
RSA (Rivest, Shamir, Adelman)
Algoritmo di cifratura asimmetrico. Una chiave codifica e un’altra decodifica e sono intercambiabili.
Fa parte della magia degli algoritmi.
RSA (crittografia) su wikipedia.
Video esplicativo: https://youtu.be/3REeFjkehPg
153
Esempio RSA (da wikipedia)
154
ECC - Elliptic Curve Encryption
Algoritmo di crittografia asimmetrico che utilizza le proprietà delle curve e chiavi più piccole rispetto a RSA. Usa chiavi più piccole (256 bit). ECDSA: firma digitale con curva ellittica.
Google utilizza certificati con questo algoritmo (foto sotto).
Che cos'è la crittografia a curva ellittica (ECC)? - SSL.com - Elliptic curve - Wikipedia
Esempio di codice in python: ECC Encryption / Decryption - Practical Cryptography for Developers.
155
Confronto dimensione chiavi
156
Diffie-Hellman
Algoritmo che consente a due host di generare e scambiarsi una chiave in modo sicuro senza certificati o altre chiavi.
Fa parte della magia degli algoritmi.
p deve essere un numero primo.
Scambio di chiavi Diffie-Hellman (su wikipedia)
157
Hashing
Un algoritmo di hash permette di ottenere un codice (hash) di una prefissata dimensione da un qualunque input. Dato un particolare input si ottiene in modo unidirezionale lo stesso hash e non è possibile tornare indietro,
Spesso il nome dell’algoritmo fornisce informazioni sulla lunghezza dell’hash.
Ad esempio l’hash di “ciao” vale ee3a5171 se uso CRC-32 (sono 32 bit in esadecimale, ogni lettera un byte) o b133a0c0e9bee3be20163d2ad31d6248db292aa6dcb1ee087a2aa50e0fc75ae2 se uso SHA-256
L’algoritmo è pensato perché sia molto difficile trovare un altro contenuto che generi lo stesso hash e perché piccole modifiche del contenuto generano grandi modifiche dell’hash.
Sito per hashing online: Hash: online hash value calculator
158
Hashing: a cosa serve?
Gli algoritmi di hashing sono utilizzati per verificare l’integrità di un documento.
In genere il mittente fornisce il documento insieme all’hash, cosicché il destinatario possa calcolare l’hash, confrontarlo con quello fornito e verificare che il documento sia corretto.
Il CRC ad esempio viene utilizzato per verificare che i bit del pacchetto TCP siano corretti… non per forza deve trattarsi di manomissione! Ma magari solo di un errore.
Ad esempio nell’area download di eclipse viene fornito lo sha-512 dei file:
159
MD5
E’ un algoritmo di hashing realizzato nel 1991 da Roland Rivest e standardizzato nell’RFC 1321.
MD5 è stato uno dei primi algoritmi di hashing utilizzati ma al momento è poco utilizzato perché è stato hackerato, cioè sono riusciti a trovare un modo per generare un contenuto ad hoc che abbia lo stesso hash di un hash dato.
160
SHA
Secure Hash Algorithm
L’algoritmo crea un codice da un testo. Non è possibile tornare al testo dal codice ma è possibile ricalcolare il codice dal testo per verificare che il testo non sia stato manomesso.
In genere piccole modifiche del testo generano grandi modifiche nel codice rendendo molto difficile la manomissione.
Usato per le firme.
https://drive.google.com/open?id=1HYrZbz_PzlRgeLApkK8p59nervUw5lsV
161
Certificato digitale x.509
x.509 definisce il formato dei certificati con chiave pubblica (PKC, Public Key Certificate)
Contiene al suo interno informazioni riguardanti:
Può essere salvato in formato .pem (certificato testuale, Base64), .p7b o .p7c (solo certificato o CRL), pfx o .P12 (certificato pubblico e privato insieme, protetto da password)
162
X.509 su wikipedia
CRL: Certificate Revocation List, una lista che contiene i certificati non più validi
Firma Digitale
La firma digitale è l’equivalente digitale della firma autografata e si applica su un file in formato digitale.
E’ necessario utilizzare una coppia di chiavi asimmetrica pubblica/privata.
Perché tutto il giochino funzioni la chiave pubblica/privata e il software necessario vengono fornita da un ente certificatore che a pagamento garantisce l’identità della persona.
Le chiavi vengono in genere memorizzate in una smart card, come la stessa tessera sanitaria.
163
p7m e pkcs#7
p7m E’ un file contenente:
https://drive.google.com/file/d/1R-Ye9tXTgQdhq210BsB7SXQMhMndNrtR/view?usp=sharing
164
Smart Card
Le smart card contengono al loro interno delle Vedi una delle ultime slide.
165
Sicurezza nei sistemi informativi
166
167
Manuale sicurezza Planck
Manuale sicurezza Planck - 5AII 2021/2022: Vulnerabilità, attacchi, ecc…
168
La sicurezza dei dati
La sicurezza informatica è l’insieme dei prodotti e servizi che garantiscono la protezione dei dati:
Ci possono essere minacce umane e minacce naturali.
169
Il CIA
La sicurezza delle informazioni si basa su questa triade:
In genere l’unica persona che in una azienda può vedere tutto è l’amministratore di rete o del database. Una persona molto importante e un ruolo delicato.
170
Aspetti della sicurezza
Autenticazione: il riconoscimento dell’utente che sta operando sui dati
Autorizzazione: un utente autenticato è associato ad un insieme di autorizzazioni, cioè dei dati che può consultare e dei diritti che ha su quei dati (lettura, scrittura, ecc…)
Riservatezza: chi non ha il permesso non può accedere ai dati
Disponibilità: un documento deve essere disponibile in ogni momento
Integrità: un documento non deve essere modificato senza averne il permesso
Paternità: si deve sapere chi fa cosa nel sistema
171
Minacce naturali
Tempeste, inondazioni, terremoti, incendi, danni alla rete elettrica, fulmini, sommosse popolari, guerre, ecc… possono distruggere i dati temporaneamente o in modo permanente.
Per questi problemi è importante fare un’analisi dei rischi per non avere periodi di inattività.
Nelle minacce naturali possiamo includere anche i guasti
172
Minacce umane
Le minacce umane sono dovute a soggetti che hanno interesse a rubare o danneggiare i dati dell’azienda.
Possono essere:
In genere gli attacchi interni sono i più pericolosi perché i più difficili da prevedere e sono molto più vari. Un pc si infetta, si installano programmi che aprono backdoor per chi vuole entrare dall’esterno, si rubano dati con una chiavetta, si installa uno sniffer, si fa upload di dati in un server esterno, ecc...
173
Tipo wireshark
Tipologia di attacco: Attacco passivo
Attacco passivo: Analizzo/copio i contenuti e i dati di una rete/pc senza intervenire attivamente.
Sniffing, cioè l’ascolto delle comunicazioni per reperire dati importanti o compromettenti. Ascolto di comunicazioni altrui.
174
Attacchi Attivi
Operazioni attive e con lo scopo di rubare, distruggere o modificare i dati
Intercettazioni: intercetto dei dati con lo scopo di carpire delle informazioni che mi serviranno per degli altri scopi come rubare le password. Posso installare in rete dei server pirata che si spacciano per altri (spoofing) o potrei registrare le informazioni digitate dagli utenti.
Attacchi dannosi (per sistemisti):
175
Attacchi attivi software e �utente
176
Attacchi ransomware
Dashboard Ransomware Monitor (Ransomfeed)
177
Dati del 13/10/2023
Link onion a sito ransomware
Top 5 gruppi ransomware
Dashboard Ransomware Monitor (Ransomfeed)
178
Dati del 13/10/2023
Esempi di phishing/spam/ecc...
179
Social Engeneering
180
Valutazione dei rischi
L’analisi dei rischi va fatta per gli asset (beni che hanno un valore) aziendali a seconda delle possibili minacce precedentemente indicate. Gli asset sono i beni, i dati e le persone dell’azienda. Vanno studiate tutte le voci del CIA.
Esempio di eventi intenzionali:
Esempi di eventi accidentali: non adeguatezza degli strumenti o delle politiche, armadi non ignifughi, errore della gestione delle password, mancanza di gruppi di continuità, …
Quando si identifica un rischio di pensa a quali contromisure adottare, si implementano e si verificano (audit)
181
Principio minimo di sicurezza
Si cerca la protezione dagli attacchi passivi e riconoscere gli attacchi attivi. Ci sono tre principi:
Prevenzione (Avoidance): creazione di password, liste di accesso alle risorse, uso di crittografia, vlan, vpn, firewall, firma elettronica, SSL, ACL, autenticazione degli utenti, monitoraggio attivo della rete, ecc…
Rilevazione (Detection): monitoraggio e controllo degli accessi con password e certificati, log delle operazioni degli utenti. Proxy server.
Investigazione (Investigation): Analisi dei dati, dei log, il confronto con gli utenti, ecc…
182
Nist CyberSecurity Framework
NIST Cybersecurity Framework 2.0, cambia lo standard della cyber security: ecco come
183
Disaster Recovery
L’insieme delle misure pensate per ripristinare i danni dovuti ad un disastro.
Per prepararci al recupero dei dati è necessario predisporre un piano che include delle contromisure::
184
Sistemi di backup
I NAS spesso utilizzano i RAID di dischi per aumentare la velocità di lavoro o per avere una ridondanza sui dati. I dischi RAID possono essere sostituiti a caldo in caso di guasto.
185
Backup in cloud
186
La posta elettronica
La posta elettronica è uno strumento usatissimo che nasce con un problema molto serio (all’inizio non considerato): E’ tutta in chiaro!
Inoltre è possibile facilmente falsificare il mittente. Da qui nascono tutti gli attacchi come il phishing.
Nulla vieta inoltre che il messaggio venga intercettato in qualche nodo intermedio/router in cui il messaggio passa.
Anche noi siamo riusciti in pochi minuti con telnet a inviare dei messaggi falsi.
187
Il protocollo S/MIME
Il protocollo S/MIME utilizza la crittografia ibrida (simmetrica + asimmetrica) per garantire:
S/MIME utilizza un certificato che può essere utilizzato sia per la firma digitale che per la codifica del contenuto.
Il certificato può essere acquistato o generato con openssl. Gmail supporta SMIME.
188
La posta certificata
La Posta Elettronica Certificata (PEC) è un sistema che consente di inviare e-mail con valore legale equiparato ad una raccomandata con ricevuta di ritorno, come stabilito dalla normativa (DPR 11 Febbraio 2005 n.68).
La Posta Elettronica Certificata garantisce, in caso di contenzioso, l'opponibilità a terzi del messaggio.
Non si può integrare con i servizi esistenti ma va acquistata una nuova casella di posta da un provider come aruba o presso il proprio ordine professionale (ingpec per ingegneri).
189
PGP (Pretty Good Privacy)
E’ un sistema che usa la crittografia simmetrica (IDEA) e asimmetrica (RSA) per criptare le email.
E’ stato standardizzato nel 1997 con il nome PGP e presto ha cambiato nome in OpenPGP e, a detta del sito, non è stato ancora craccato.
Può criptare anche l’intero contenuto del disco.
Sono disponibili dei software per utilizzarlo in tutti i sistemi.
Sono disponibili anche delle librerie nei vari liguaggi per utilizzarlo nel proprio software.
190
Attacchi
Cos'è Stuxnet e come funziona | NordVPN
2015 Ukraine power grid hack - Wikipedia
2014 Sony Pictures hack - Wikipedia
What is spear phishing? Definition and risks
Metasploit: trova i bug!
191
Attacchi
Heartbleed Bug e Heartbleed - Wikipedia
Sicurezza: livelli di acceso: come progettare un sistema sicuro?
192
La sicurezza delle connessioni con SSL/TLS
193
Introduzione
TCP/IP, SMTP, HTTP, Telnet, Ftp e molti altri protocolli sono nati non sicuri e mandano in chiaro le informazioni. Allora sono stati pensati degli strumenti di criptazione per livello:
194
SSL/TLS
Crea un canale sicuro a livello sessione (o applicazione?)
SSL 1.0 è stato creato da Netscape nel 1995 ma mai pubblicato a causa di problemi di sicurezza e subito sostituito da SSL 2.0.
Anche SSL 3.0 era stato messo in discussione dall’attacco POODLE (un man in the middle).
TLS deriva da SSL ed è stato approvato da Apple, Microsoft, Google e Mozilla.
195
Come funziona TLS?
Appena stabilita la connessione TCP (blu) si procede ad effettuare il TLS-Handshake (giallo).
Nel TLS handshake server e client decidono come comunicare, con che protocolli e con che chiavi.
Dopo l’handshake inizia la comunicazione e i messaggi vengono firmati con una funzione hash che genera un HMAC (Hash Message Authentication Code)
196
TLS dopo handshake
Dopo l’handshake protocol c’è il record protocol
197
TLS su wireshark
198
Connessione tls: three way handshake tcp e quindi connessione TLS
Come funziona il TLS �Handshake?
Esiste anche un handshake keyless usando Diffie-Hellman ma non viene verificato il server.
199
Visualizzare il certificato htts su chrome
200
SSL Tools è un sito che permette di effettuare controlli e operazioni sui certificati dei siti
201
SET (Secure Electronic Transaction)
E’ un protocollo standard per rendere sicure le transazioni elettroniche nel 1996.
Garantisce anche l’identità del mittente rispetto a SSL/TLS.
Sviluppato da Visa e Mastercard.
Si basa su certificati X.509.
Non è stato particolarmente utilizzato, Visa è passata a 3-D Secure.
202
3D Secure
Dal 1 gennaio 2021, in base alla normativa PSD2, la conferma aggiuntiva prevista dal Protocollo 3D Secure sarà richiesta in tutti i negozi online dello Spazio Economico Europeo.
203
Firewall, proxy, ACL e DMZ
204
I firewall
Quando si collega un pc/rete all’esterno possiamo accedere all’esterno ma siamo anche aperti agli accessi dall’esterno che possono anche non essere desiderati.
Rischi possibili:
I firewall sono i componenti che controllano l’ingresso/uscita dei dati.
Il firewall deve essere l’unico punto di contatto con l’esterno.
Nella figura a destra si vede che il firewall è interposto tra rete lan�e il mondo esterno.
205
Tipologie di firewall
Per tipo di intervento:
Questi tipologie possono essere combinate.
206
Personal firewall
Un personal firewall è un file configurato a livello di host per proteggere solo l’host. In un’azienda non è sufficiente, va bene per l’uso home. Windows firewall può essere configurato con policy di dominio.
207
Firewall a pacchetti
Verificano i pacchetti TCP/IP
In base a delle regole il firewall decide se accettare o meno un pacchetto:
208
ACL: Access Control List
ACL: Sono le liste che contengono le regole di accesso ad un determinato router/gateway/firewall.
Le regole controllano il pacchetto in funzione agli header TCP e IP e si ignorano le informazioni a livello applicativo.
Due Policy diverse di default:
Regola che permette di “aprire” un ip nel router Cisco:
209
Iptables
Iptables è il firewall di default di Linux. La configurazione di partenza permette tutte le connessioni (ACCEPT). Qui a destra una schermata che mostra iptables configurato.
210
Pro e contro Packet Filtering
Vantaggi:
Svantaggi:
211
Stateful Inspection
Il firewall stateful effettua il controllo sull’intera connessione e non sul singolo pacchetto.
Ogni connessione viene salvata in una tabella di stato e il firewall può decidere di non ricontrollare i pacchetti di una determinata connessione, risparmiando tempo.
Nella tabella di stato:
Al termine della connessione si elimina la entry
212
Esempio di tabella Stateful
213
Pro e contro stateful inspection
Vantaggi:
Svantaggi:
214
Application Proxy Firewall
E’ un firewall a livello di Applicazione e permette una politica di sicurezza molto più severa.
Il proxy si mette in mezzo e si sostituisce al client per il server e viceversa. Può fare anche il caching delle pagine web per ridurre il traffico aziendale.
Esempio:
215
Pro del Proxy
Pro:
Puoi usare un proxy esterno
216
Contro del Proxy
Contro:
Se usi un proxy esterno:
217
Bastion host
E’ l’host (o gli host) configurato per respingere gli attacchi contro la rete interna.
L’idea è che nessun pc può accedere a internet senza passare per il Bastion host e viceversa.
L’host in questione è un sistema configurato in modo attento:
218
DMZ
DMZ sta per Demilitarized Zone e indica la parte della rete, separata dalla rete interna, che contiene i server che devono avere un accesso all’esterno.
Così anche se venissero compromessi, non darebbero comunque accesso alla rete aziendale e ai dati riservati.
Come nel disegno a destra si vede che la DMZ contiene dei server che hanno un firewall che li protegge dall’esterno e poi un altro firewall che li separa dalla rete interna.
Così se ad esempio devo aprire una porta per il server web la porta sarà aperta solo verso la DMZ e non verso la intranet.
219
Esempi di DMZ
Esempi sul nostro libro a pagina 200
Configuring DMZ in CISCO Packet Tracer
What is a DMZ and How Does it Work?
220
ACL - Cisco Access Control List
Standard ACL, permettono di consentire o negare il traffico basandosi solo sull’ip sorgente. Hanno una numerazione compresa tra 1 a 99.
Extended ACL, permettono di consentire o negare il traffico basandosi sia sull’ip sorgente che sulla destinazione o la porta. Sono numerate da 100 in poi.
221
Video in italiano per le ACL
222
ACL - Video 1 inglese
223
Obiettivo: Bloccare il pc 192.168.2.101 della rete di destra
ACL - Video 1
Obiettivo: Bloccare il pc 192.168.2.101 della rete di destra
Do il nome al router e creo la access list, dopo ena->conf t:
hostname R0 �access-list 1 deny host 192.168.2.101
access-list 1 permit any
Assegno alla giga ethernet 0/1 l’access group in outbound (uscita):
interface GigabitEthernet0/1 (o fast ethernet)
ip access-group 1 out
show run (mostra la configurazione, running-config, da conf t)
224
ACL - Video 2
225
ACL comandi video 2 (ACL standard)
Tolgo l’access-list 1 e metto la 99. �L’ordine degli elementi nella access list è importante: la prima regola valida viene eseguita.
conf t�no access-list 1 // cancella la vecchia access list
access-list 99 deny host 192.168.2.100
access-list 99 deny host 192.168.2.101
access-list 99 permit any (Se questo manca il terzo pc non va)
access-list 99 deny any (Questo comando deny è implicito)
int gi0/1 // vado nell’interfaccia, elimino l’access-group 1 e metto il 99
no ip access-group 1 out
ip access-group 99 out
226
ACL - Video 3
Fa vedere perché mettere la acl nel nodo più vicino alla destinazione.
227
ACL estese (video 4 e 5)
Le ACL estese si applicano vicino alla sorgente.�Si indica l’ip sorgente, la destinazione ed eventualmente il protocollo/porta. ��ena�conf t�access-list 100 deny ip 192.168.2.100 0.0.0.0 192.168.1.0 0.0.0.255 // blocca un singolo ip verso una intera rete, notate le 2 wildcards�access-list 100 permit ip any any // permette ogni sorgente e ogni destinazione
interface gigabitEthernet 0/1 // applico la regola ad una interfaccia
ip access-group 100 in // in questo caso la Gig0/1 e applico la regola 101
no access-list 100 // da conf t, cancella una access-list�access-list 100 permit tcp 192.168.2.0 0.0.0.255 host 192.168.1.254 eq 80 // permetto la porta 80 da una rete ad un particolare host
228
Sicurezza reti wireless
229
Una rete wireless
Una rete wireless è una rete senza filo:
Definizioni:
230
Tipologie di reti wireless
BAN (Body Area Network): Bluetooth
PAN (Personal Area Network): Bluetooth
WLAN (Wireless LAN): WiFi (802.11 e varie versioni)
WWAN (Wireless Wide Area Network): Comunicazione mobile (I vari G) e anche la WiMax per connettere una città (802.16)
231
Sicurezza nelle reti wireless
Le reti wireless sono più a rischio di quelle via cavo perché uno sniffer può catturare i pacchetti che “girano per l’aria” da una scheda in “monitor mode” e da un software come “aircrack-ng”.
Una scheda wifi può essere in:
232
Problemi delle reti wireless
Problemi:
Tipologie di attacco:
233
WEP (Wired Equivalent Privacy)
WEP è stato pubblicato nel 1999 e usato nello standard 802.11 per rendere le reti wifi sicure come le reti a filo.
Violato all’inizio degli anni 2000 con software come wepcrack o airsnort.
Utilizza:
234
WPA
Nasce nel 2003
La chiave ha ora almeno 128 bit e il vettore di inizializzazione 48 bit (IV). Il CRC-32 è stato sostituito con il MIC (Message Integrity Code, chiamato anche Micheal).
Utilizza sempre l’RC4 per la crittografia.
Usa TKIP (Temporary Key Integrity Protocol) che non usa mai lo stesso IV due volte nella comunicazione e scarta tutti i pacchetti con la stessa IV.
Esiste una modalità enterprise (WPA-EAP, autenticazione tramite server radius) e una personal (WPA-PSK, autenticazione con password).
235
WPA2
Nasce nel settembre 2004.
Dal marzo 2006 è obbligatorio nei nuovi apparati.
Utilizza chiavi da 128, 192 e 256 bits.
Utilizza AES per la crittografia invece che RC4.
Implementa completamente le specifiche 802.11i.
Esiste sempre la versione Home (PSK) e enterprise (EAP)
236
Autenticazione
Alcune modalità:
Quando un pc chiede ad un router l’accesso e questo è configurato per l’accesso tramite un server Radius, questo comunica con il server che l’utente vuole entrare e verifica se l’utente è abilitato, nel qual caso gli dà l’accesso alla rete. �In ambito aziendale permette la gestione delle password secondo le politiche aziendali.
237
Sicurezza del software
238
Sicurezza del software
239
Elementi principali
240
Broken Access Control
Si verifica quando un utente accede a dei dati a cui non avrebbe il permesso.
Esempi:
Prevenzione:
241
VPN
(Virtual Private Newtork)
242
VPN �Virtual Private Network
Una VPN permette di creare una comunicazione protetta tra due host su Internet.
Esempi di utilizzo:
243
VPN funzionamento
Modalità hardware/trasparente: Si possono connettere due router CISCO configurandoli in modo da creare un canale che utilizza IPSEC, un protocollo di sicurezza a livello IP quindi totalmente trasparente agli utilizzatori. Potrebbe essere la soluzione adottata da una azienda che ha sedi lontane in modo che l’altra rete sembri direttamente collegata.
Modalità software/volontaria: Si installa sul pc un client VPN come openVPN e ci si connette ad un server o un apparato hardware. In questo caso ci si connette ad un server. Se si è un utente finale ci si può connettere ad uno dei server VPN forniti da openVPN. Se si è un’azienda OpenVPN fornisce anche una versione server che può essere configurata all’interno di un’azienda per permettere la connessione protetta dall’esterno.
244
Perché installare un client VPN sul PC?
Un client VPN non ha senso di esistere senza un server VPN. Se si acquista l’accesso ad un server VPN, anche se ci connettiamo con una wifi a caso, possiamo scegliere di navigare creando prima di tutto un canale sicuro con il server e poi fare passare tramite il canale tutta la navigazione.
Ottimo per chi viaggia per lavoro e tratta dati sentibili!
Ci si può fidare di un servizio VPN gratuito?
246
Riferimenti VPN
How Virtual Private Networks Work (by Cisco): Una guida molto completa che spiega come funzionano varie versioni di VPN
Private Tunnel VPN | Protect your Internet Traffic with Secure OpenVPN: Il client per connettersi a una VPN, c’è anche una prova gratuita di una settimana, poi costa 6 dollari al mese (vedi immagine a destra)
Create an IPsec VPN tunnel using Packet Tracer - CCNA Security: Un tutorial di Packet Tracer per configurare tra due router una VPN con IPSEC.
247
VPN su Packet Tracer
I router di Packet Tracer vanno abilitati con una licenza per usare la VPN.
Il comando per abilitare la licenza è il seguente su un Router 1941 (non è detto vada su altri router):
Router(config)#license boot module c1900 technology-package securityk9�exit�copy run start // Salva la configurazione�reload // reboot del router
https://www.youtube.com/watch?v=Z7LwU6H5IGE
https://www.youtube.com/watch?v=LJWQlxl2FZk
248
Varie
249
RFID
Quando si parla di RFID si parla in genere di due componenti:
Quando la trasmittente passa nel campo generato dal lettore, la corrente lo attiva per induzione e il lettore può comunicare con il componente.
Il componente RFID può salvare dei dati al suo interno ed elaborarli con il chip incorporato dove possono essere salvate informazioni.
250
Tipologie RFID
Attivo: il componente RFID ha una batteria che gli permette di comunicare.
Passivo: il componente ha solo l’antenna che si attiva con il campo del lettore. Sono i più usati. A seconda della frequenza utilizzata possono arrivare a funzionare da pochi centimetri fino a quasi dieci metri.
In alto una foto di un sensore RFID passivo di un indumento di Decathlon utilizzato per l’anti taccheggio.
251
Frequenze RFID
RDIF può funzionare a varie frequenze (fonte wikipedia):
252
Applicazioni RFID
Applicazioni passive tipiche sono:
Un’applicazione attiva tipica è il telepass
253
NFC (Near Field Communication)
E’ un metodo per comunicare in modalità contact-less in radiofrequenza a 13,56 Mhz fino ad una distanza di 10 cm con una velocità fino a 424kbit/sec.
Nasce come evoluzione dall’RFID e permette una comunicazione bidirezionale quando i due device vengono messi vicini. Si mescola il concetto di lettore/device perché ad esempio il cellulare può fare sia da lettore che da elemento letto. E’ una sottocategoria dell’RFID.
Applicazioni:
Comunicazione tra device, acquisto da un chiosco elettronico (Argenta), biglietti dell’autobus, sistemi di pagamento (apple pay, samsung pay, ecc…), ricarica della batteria, ...
254
Smart Card
L’idea nasce nel 1968 ma le prime applicazioni vengono realizzate agli inizi degli anni 80.
E’ una carta di plastica con al suo interno un microprocessore a 8bit operante a 4MHz e 16Kb di RAM. Ha una velocità di comunicazione di 9600bps.
Ci sono versioni della smart card con solo della memoria e senza microprocessore.�La maggior parte funzionano a contatto ma ci sono anche delle versioni contactless con RFID.
Il microprocessore è in grado di utilizzare la crittografia per: proteggere il contenuto della memoria, lavorare con chiavi pubbliche e private, usare la firma digitale, realizzare l’autenticazione e l’identificazione delle persone e per il non ripudio delle transazioni.
In genere i dati sono accessibili solo dopo l’inserimento di un PIN.
255
Applicazioni di Smart Card
256
Virtualizzazione
Vantaggi:
Svantaggi:
257
Docker
258
NAS (Network Attached Storage)
Il NAS è sostanzialmente un sistema di memorizzazione connesso alla rete.
Può essere rappresentato da un semplice disco condiviso agli utenti a un sistema più complesso composto da uno o più server con uno o più dischi rigidi collegati in RAID.
I file possono essere condivisi tramite vari protocolli come ftp, condivisioni di rete, ecc…
La differenza tra il cloud e il NAS è che in genere si considera NAS un sistema interno all’azienda/ufficio e cloud qualcosa di esterno gestito via internet. Il cloud della scuola è borderline perché è interno ma accessibile via http. �Non è propriamente un NAS se è accessibile solo via web e non si aggancia al filesystem.
259
Strumenti come ADS Killer o NoScript
260