1 of 260

Sistemi e Reti 5°

2019/2020 e seguenti

2 of 260

Indice

2

3 of 260

Incapsulamento/Deincapsulamento

3

4 of 260

ISO/OSI, TCP/IP e protocolli

4

5 of 260

Livello IP

5

6 of 260

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

7 of 260

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

8 of 260

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

9 of 260

Indirizzi statici

A destra il pannello di configurazione dell’IPv6 in Windows.

La subnet è definita solo come “lunghezza prefisso subnet”

9

10 of 260

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):

  • Un pc accede alla rete e fa una ricerca ai DHCP server in broadcast (DHCP DISCOVER)
  • Tutti i server DHCP presenti offrono una soluzione (DHCP OFFER)
  • Il pc accetta una sola offerta e invia una richiesta di configurazione al server scelto (DHCP REQUEST)
  • Il server DHCP scelto risponde al pc con un pacchetto di configurazione (DHCP ACKnowledgement) contenente IP, gateway, DNS e subnet mask.

Il periodo di lease è il periodo in cui un determinato pc avrà garantito un determinato IP.

10

11 of 260

DHCP Options

Comando ipconfig/all

Lease: Il periodo in cui l’ip è assegnato al MAC address

11

12 of 260

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:

  • Default Gateway
  • DNS Server
  • Start IP Address (da distribuire)
  • Subnet Mask
  • Massimo numero di utenti (sommato all’indirizzo di Start permette di calcolare l’indirizzo IP finale)
  • DNS Server (Server che risolve gli indirizzi)
  • TFTP Server (Un server ftp semplificato che usa UDP usato per trasferire dati tra i router)
  • WLC Address(L’indirizzo del Wireless LAN Controller, un server che gestisce le reti wireless nel caso la rete sia molto grande)

12

13 of 260

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

14 of 260

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

15 of 260

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

16 of 260

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

17 of 260

ARP: Funzionamento

Il funzionamento del protocollo ARP è il seguente:

  • Un pc che vuole comunicare con un IP verifica se l’IP è mappato nella sua cache ARP.
  • Se non trova una corrispondenza il mittente invia una richiesta (ARP Request) a tutte le macchine in rete locale con una trasmissione broadcast per chiedere a chi corrisponde l’IP.
  • Ogni host controlla l’indirizzo e se è lui risponde con il proprio MAC (ARP Reply)
  • Mittente e destinatario aggiornano la propria ARP Cache e sono pronti a comunicare

17

18 of 260

Header ARP

18

19 of 260

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

20 of 260

ARP Poisoning

20

Un pc si inserisce per dare il proprio Mac e rubare la conversazione.

ARP spoofing - Wikipedia

21 of 260

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

22 of 260

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

23 of 260

Porte TCP/IP

Un servizio può utilizzare una porta qualunque ma in genere:

  • Le porte da 0 a 1023 sono utilizzate da servizi conosciuti e riservate (well known ports)
  • Le porte dal 1024 al 49151 sono definite Registerd Port e sono semi riservate.
  • Le porte dal 49152 in poi sono libere per essere utilizzate dai programmi client

Lista porte standard su wikipedia: https://it.wikipedia.org/wiki/Lista_di_porte_standard

23

24 of 260

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

25 of 260

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

26 of 260

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.

https://it.wikipedia.org/wiki/Traceroute

26

27 of 260

nmap

Un tool simpatico per scoprire le porte aperte negli altri host:

https://nmap.org/

27

28 of 260

Esercizio: Rete wifi e pc

28

Realizza la rete e prova con il pacchetto simple icmp che i collegamenti funzionino.

29 of 260

Routing

29

30 of 260

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

31 of 260

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.

32 of 260

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

33 of 260

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

34 of 260

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:

  • Instradamento diretto: Un router è connesso alla rete di destinazione e invia il pacchetto direttamente (può usare ARP e l’indirizzo MAC).
  • Instradamento indiretto: Un router non è connesso direttamente alla rete di destinazione e invia il pacchetto nella direzione corretta affidandolo ad un altro router (next hop) (usa l’instradamento IP).

34

35 of 260

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:

  • L’indirizzo della rete da raggiungere
  • La subnet mask della rete
  • Il gateway a cui inviare il messaggio per raggiungere la rete (detto anche next-hop)
  • L’interfaccia locale (scheda di rete) da utilizzare per l’invio del pacchetto
  • Il peso della connessione

35

36 of 260

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.

37 of 260

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

38 of 260

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

39 of 260

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

40 of 260

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

41 of 260

Routing statico in Packet Tracer (gui)

In ogni router si configurano le “direzioni” per ogni rete che si vuole raggiungere indicando:

  • La rete che si vuole raggiungere
  • La subnet mask della rete
  • Il next hop, cioè l’indirizzo della porta del router che appartiene a una delle reti direttamente connesse al router che stiamo configurando, che ci permette di arrivare alla destinazione.

41

42 of 260

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

43 of 260

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

44 of 260

Routing indiretto: Tre reti, tre router

44

  • Configurate i router per fare girare i messaggi in senso orario
  • Configurate i router per fare girare i messaggi in tondo senza uscire

45 of 260

Routing: Tre reti e tre router

45

46 of 260

Comandi per la configurazione OSPF in Packet Tracer

Dalla cli:

  • impostare il router come ospf: router ospf 1 (dove 1 è il PROCESS_ID, che non deve essere lo stesso in tutti i router)
  • aggiungere le reti connesse in cui si vuole attivare: netword RETE WILDCARD area NUMERO, es: network 192.168.0.0 0.0.0.255 area 0 (la wildcard è l’opposto della subnet mask e per l’area deve essere uguale per tutte le reti che si vogliono fare comunicare)
  • Dalla cli, uscendo alla radice dei comandi, usare: show ip ospf neighbor per vedere le reti vicine o show ip route per vedere tutta configurazione di rete statica e dinamica

46

47 of 260

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:

  • IPv4 and IPv6 routing
  • Classless routing
  • Usa il costo predefinito di 110 per la connessione
  • Manual route summarization… (sommarizza le subnet mask… ancora misterioso)

47

48 of 260

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

49 of 260

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

50 of 260

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:

51 of 260

Variante con subnet variabile (VLSM)

51

52 of 260

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

53 of 260

Protocolli utilizzati nel routing gerarchico

IGP (Interior Gateway Protocol), sono i protocolli utilizzati all’interno della AS:

  • RIP (Distance Vector)
  • OSPF (Open Shortest Path First) (Link State)

EGP (Exterior gateway protocol) utilizzato tra le AS:

  • Border Gateway Protocol (BGP): Una generalizzazione del distance vector in cui non si indica la distanza verso la destinazione ma l’intero percorso.

53

54 of 260

Riferimenti

54

55 of 260

Trasporto: UDP e TCP

55

56 of 260

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

57 of 260

Trasporto

Il livello di trasporto si colloca al livello 3 del TCP e al 4 dell’ISO/OSI

57

58 of 260

Il livello di trasporto: incapsulamento

58

59 of 260

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

60 of 260

Intestazione IP

60

61 of 260

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

62 of 260

Lo stato di trasporto: UDP

62

Sono presenti solo le porte di partenza e destinazione, la lunghezza e il checksum.

63 of 260

Caratteristiche UDP

  • Non è affidabile
  • L’header è minimale con solo 8 byte (immagine precedente)
  • Supporta il multicast (Invio ad un gruppo di destinatari)
  • MSS (Maximum Segment Size) è di 65535 byte che possono essere suddivisi usando il fragment del livello IP
  • Permette di verificare la presenza dell’errore con il checksum (eventualmente può segnalare all’applicazione che ha inviato il pacchetto l’errore ma deve essere fatto manualmente dal programma)
  • Il checksum viene calcolato includendo un pseudo header che contiene elementi dell’intestazione IP come indirizzo sorgente e destinazione
  • Permette a due processi di scambiarsi dei messaggi. Ogni processo è identificato da una porta.

https://it.wikipedia.org/wiki/Porte_TCP_e_UDP_standard

63

64 of 260

UDP: Funzionamento

  • Un server crea un socket in ascolto scegliendo una porta (DatagramSocket)
  • Un client invia dei dati al server scegliendo una porta locale e comunicando con quella remota (In java invia un DatagarmPacket)
  • Ogni volta che il client deve inviare qualcosa ripete il procedimento
  • Se anche il client deve ricevere dei messaggi crea, come il server, un socket in ascolto.

  • Non c’è nessuna verifica che i pacchetti arrivino e che arrivino nell’ordine corretto (connectionless)

64

65 of 260

TCP: Caratteristiche

Servizio di Trasporto affidabile:

  • Tutti i pacchetti vengono consegnati privi di errori (checksum)
  • C’è la garanzia che i messaggi arrivino perché in caso contrario vengono reinviati
  • I messaggi sono ricomposti nello stesso ordine in cui vengono inviati (sono numerati)

Connessione tra due pc:

  • Un server apre la connessione in ascolto (Passive open, ServerSocket in Java)
  • Un client si connette al server (Active open, socket in Java)

Definizioni:

  • RTT (Round Trip Time): Il tempo che passa tra l’invio del pacchetto e la ricezione della conferma
  • RTO (Retransmission Time Out): Il tempo che intercorre senza risposta perché il mittente consideri perso un pacchetto

65

66 of 260

Lo stato di Trasporto: TCP

66

67 of 260

Connessioni aperte: TCPView

Programma per visualizzare le connessioni TCP su windows: https://docs.microsoft.com/it-it/sysinternals/downloads/tcpview

67

68 of 260

TCP: Funzionamento

Mittente e destinatario si scambiano dei pacchetti:

  • Tutti i pacchetti sono numerati con un Sequence Number (SN) che è un numero progressivo di 32bit e viene deciso all’inizio della connessione tra due host.
  • Al momento della connessione l’ SN viene inizializzato con un Initial SequenceNumber (ISN) che può essere casuale
  • Durante la comunicazione l’ SN viene incrementato secondo la quantità di byte utile inviata (il paypload) tralasciando i byte degli header
  • Ad ogni messaggio inviato corrisponde una risposta (acknowledgement, ACK) che conferma l’arrivo di un determinato pacchetto indicando un numero che corrisponde all’SN del mittente
  • I numeri di SN e ACK sono inviati contemporaneamente da mittente e destinatario per inviarsi dati e confermarsi con la stessa modalità. SN del mittente corrisponde all’ACK del destinatario e viceversa

68

69 of 260

TCP: Connessione / Disconnessione

69

3 way handshake

4 way termination

70 of 260

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:

  • assoluta: se vengono concordati dei valori assoluti
  • relativa: se vengono concordati dei valori relativi alle altre connessioni

Parametri tipici da concordare:

  • Velocità della connessione
  • Errori
  • Tempi di connessione
  • Priorità, ...

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

71 of 260

Esempio completo

Nella sequenza una comunicazione completa:

  • 3 way handshake
  • Comunicazione
  • Disconnessione

Nella connessione e disconnessione si invia un messaggio da “1” ma quello che conta sono i valori nell’header.

71

72 of 260

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

73 of 260

Esempio wireshark

73

50003 = 48551 + 1452

Conferma di 31275 + 1452

Porte mittente -> destinatario

74 of 260

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

75 of 260

Window: Go Back N (GBN)

Finestra mittente \/ Comunicazione ->

75

Se si verifica un errore ritrasmetto tutti i dati dall’errore in poi.

76 of 260

Window: Selective Repeat

76

Se si verifica un errore ritrasmetto sono i dati che non sono arrivati correttamente.

77 of 260

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

78 of 260

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

79 of 260

Campi opzionali TCP

Alla fine dell’header TCP ci possono essere dei campi opzionali, in questo caso di 12 bytes.

Tra questi:

  • SACK_PERM che significa “Selective Ack Permitted” abilita il selective repeat.
  • Window Scale: Nel caso si voglia utilizzare una finestra con un numero di byte più grande di un numero a 16bit si utilizza un moltiplicatore per dire che il numero di byte inviabili senza ack è dato dal campo window (standard header tcp) moltiplicato per il valore di Window Scale
  • Maximum Segment Size: Scrive il massimo di byte del segmento

79

80 of 260

Approfondimenti

Presentazione di approfondimento sui protocolli dello stato di trasporto realizzato dalla classe 5AII nel 2020: TCP, UDP & More

80

81 of 260

Nat, Pat e Napt

81

82 of 260

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

83 of 260

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.

84 of 260

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

85 of 260

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

86 of 260

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

87 of 260

NAT dinamico su Packet Tracer

Va configurato:

  • L’interfaccia che vogliamo come nat inside
  • L’interfaccia che vogliamo come nat outside
  • Un pool di indirizzi che si vogliono usare per la traduzione che possono anche essere diversi dall’indirizzo del router e in questo caso può essere necessario configurare opportunamente il routing
  • Una access list che definisca quali indirizzi interni devono essere tradotti

Sample Configuration Using the ip nat outside source list Command

87

88 of 260

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

Port forwarding statico in Packet Tracer

88

89 of 260

Livello Applicazione: HTTP, FTP, DNS & C.

89

90 of 260

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

91 of 260

Indirizzi web (URL)

Un indirizzo è composto da protocollo + nome server + percorso per la risorsa

91

92 of 260

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

93 of 260

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

94 of 260

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

95 of 260

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

96 of 260

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

97 of 260

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

98 of 260

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

99 of 260

Codici di risposta HTTP

I codici di risposta danno informazioni sulla correttezza �della risposta.

Ci sono cinque tipologie di codici di risposta:

  • Messaggi di Informazione (100199)
    • Poco usati?
  • Messaggi di Successo (200299)
    • 200: la pagina è stata caricata correttamente
  • Messaggi di Redirezione (300399)
    • 301: Pagina spostata in modo permanente
  • Risposte di errore del Client (400499)
    • 404: la pagina richiesta non è stata trovata.
  • Risposte di errore del Server (500599)
    • 500: Internal server error, ad esempio quando una pagina PHP non può connettersi al database MySQL.

99

100 of 260

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

101 of 260

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:

  • no-cache
  • must-revalidate
  • min-fresh
  • immutable

101

102 of 260

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:

  • Expires, data di scadenza (ad esempio se un sito resta loggato per 3 mesi durano tre mesi)
  • Secure: indica che il cookie deve essere mandato solo via https
  • HTTPOnly: Un cookie che può essere inviato solo via http e non via javascript

102

103 of 260

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

104 of 260

HTTP3

104

105 of 260

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

106 of 260

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:

  • Attiva: la modalità standard. Nella modalità attiva il client contatta sulla porta 21 il server e poi il server ricontatta il client dalla sua porta 20 alla porta che ha usato il client +1. Se il client è dietro un firewall/NAT o altro, probabilmente questa modalità non funziona perché il server non può iniziare una connessione con il client. Si usa allora la modalità passiva.
  • Passiva: modalità richiesta dal client inviando alla connessione sulla porta 21 il comando PASV al server. Dopo il comando il server ritorna un numero di porta su cui essere richiamato per la seconda connessione al client che quindi richiede lui stesso la seconda connessione.

Active FTP vs. Passive FTP, a Definitive Explanation

106

Attiva

Passiva

107 of 260

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

108 of 260

DNS

Servi autoritativi, server non autoritativi, quanti sono? (13 i server globali/totali)

DNSSEC: Domain Name System Security Extensions - Wikipedia

108

109 of 260

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

110 of 260

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

111 of 260

Tipi di record DNS

Ci sono diversi tipi di record, indicati nel campo type della richiesta e memorizzati all’interno del server DNS.

  • Record A: Indica la corrispondenza tra uno o più indirizzi e un host
  • Record AAAA: Indica l’indirizzo in IPv6
  • Record MX: Mail Exchange, indica un server di posta elettronica
  • Record CNAME: Usato per un alias, ovvero per dare ad un indirizzo anche altri nomi
  • Record NS: Indicato per indicare l’indirizzo di un server autorevole
  • Record SOA: Start Of Authority, per la gestione delle zone DNS

111

112 of 260

Comando dig su Linux

112

113 of 260

DNS

113

114 of 260

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

115 of 260

Email

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

116 of 260

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

117 of 260

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

118 of 260

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

119 of 260

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

120 of 260

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

121 of 260

VLAN (Virtual Local Area Network)

121

122 of 260

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

123 of 260

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

124 of 260

VLAN: Access o Trunk?

Le porte dello switch possono essere configurate in uno dei seguenti modi:

  • Access: è la modalità standard, si prevede che alla porta sia collegato un device/host configurato con un indirizzo IP. Può essere assegnata ad una singola VLAN.
  • Trunk: è una la modalità particolare in cui si prevede che la porta sia collegata ad un altro switch. Permette il passaggio dei dati di multiple VLAN. E’ la modalità standard con cui sono connessi due router in modo che possano passare i dati di più Vlan. I frame in un canale trunk vengono in genere taggati (802.1Q) per essere inviati nel canale corretto.

Nel disegno a destra solo le porte che connettono i due router sono trunk, tutte le altre access.

124

125 of 260

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

126 of 260

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

127 of 260

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

128 of 260

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

129 of 260

Crittografia

129

130 of 260

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

131 of 260

La sicurezza delle reti

Quando si vogliono inviare dei dati senza che questi possano essere intercettati, si cercano di garantire questi principi:

  • Segretezza: i dati devono arrivare al destinatario senza essere letti da altri
  • Autenticazione: si deve essere sicuri che i dati che arrivano al destinatario siano stati inviati da chi ci si aspetta e non da qualcuno che si è inserito nella conversazione
  • Affidabilità/Integrità: Serve avere la certezza che il documento inviato non sia stato modificato da qualcuno.

131

132 of 260

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

133 of 260

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:

  • Forza bruta: si provano tutte le combinazioni, si può fare per tutti gli algoritmi!
  • A dizionario: simile a forza bruta ma parto dalle parole più comuni
  • A canale laterale: raccolgo informazioni per capire informazioni sulla chiave come il tempo di esecuzione, eventuali risorse impiegate, varie cache, ecc...

133

134 of 260

Crittografia simmetrica

Caratteristiche:

  • Il testo viene codificato con la stessa chiave sia dal mittente che il destinatario
  • Entrambi devono usare lo stesso algoritmo
  • L’algoritmo di codifica/decodifica è in genere veloce

134

Testo in chiaro

Testo cifrato

Testo in chiaro

Mittente

Destinatario

Contro:

  • Entrambi devono conoscere la stessa chiave
  • Lo scambio della password è rischioso
  • Difficile cambiare spesso la password

135 of 260

Crittografia asimmetrica (chiave pubblica/privata)

Caratteristiche:

  • Ogni messaggio può essere codifica con la chiave pubblica e decodificato con quella privata (e viceversa)
  • Il mittente codifica il messaggio con la chiave pubblica del destinatario, così può essere decodificato solo da lui

135

Testo in chiaro

Testo cifrato

Testo in chiaro

Mittente

Destinatario

Contro:

  • L’algoritmo di codifica/decodifica è più lento di quello con una sola chiave e richiede una chiave più lunga a parità di sicurezza
  • Mittente e destinatario devono avere entrambi una coppia di chiavi
  • Nessuno deve distribuire le sue chiavi private

136 of 260

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

137 of 260

Algoritmi di crittografia simmetrica

137

138 of 260

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

139 of 260

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

140 of 260

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

141 of 260

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

142 of 260

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

143 of 260

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

144 of 260

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.

https://it.wikipedia.org/wiki/Modalit%C3%A0_di_funzionamento_dei_cifrari_a_blocchi#Cipher_Block_Chaining_(CBC)

144

145 of 260

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

146 of 260

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

147 of 260

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

148 of 260

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

149 of 260

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

150 of 260

Rc4

Algoritmo di cifratura simmetrico a flusso

Usato da WEP e WPA.

150

151 of 260

Tempi di decodifica

151

152 of 260

Algoritmi di crittografia asimmetrica

152

153 of 260

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

Online RSA Key Generator

153

154 of 260

Esempio RSA (da wikipedia)

154

155 of 260

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

156 of 260

Confronto dimensione chiavi

156

157 of 260

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

158 of 260

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

159 of 260

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

160 of 260

MD5

E’ un algoritmo di hashing realizzato nel 1991 da Roland Rivest e standardizzato nell’RFC 1321.

Hash MD5 su wikipedia

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.

Esempio di due immagini che hanno lo stesso hash.

160

161 of 260

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

162 of 260

Certificato digitale x.509

x.509 definisce il formato dei certificati con chiave pubblica (PKC, Public Key Certificate)

Contiene al suo interno informazioni riguardanti:

  • chi l’ha emesso,
  • l’algoritmo utilizzato,
  • l’ente a cui fa riferimento,
  • la scadenza,
  • un numero seriale,
  • la firma del certificato,
  • ...

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

163 of 260

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.

  • Parto da un file che voglio firmare
  • Calcolo un hash del file e poi uso la chiave privata per criptare l’hash creando la firma
  • Invio il file al destinatario con la firma (hash criptato con chiave privata)
  • Chiunque può verificare che la firma sia autentica utilizzando la chiave pubblica

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

164 of 260

p7m e pkcs#7

p7m E’ un file contenente:

  • Un documento
  • La firma digitale
  • La firma del documento

https://drive.google.com/file/d/1R-Ye9tXTgQdhq210BsB7SXQMhMndNrtR/view?usp=sharing

164

165 of 260

Smart Card

Le smart card contengono al loro interno delle Vedi una delle ultime slide.

165

166 of 260

Sicurezza nei sistemi informativi

166

167 of 260

167

168 of 260

Manuale sicurezza Planck

Manuale sicurezza Planck - 5AII 2021/2022: Vulnerabilità, attacchi, ecc…

168

169 of 260

La sicurezza dei dati

La sicurezza informatica è l’insieme dei prodotti e servizi che garantiscono la protezione dei dati:

  • Proteggere i dati da accessi indesiderati
  • Garantire la riservatezza delle informazioni
  • Assicurare il funzionamento e la disponibilità dei servizi a fronte di eventi imprevedibili
  • Garantire di non perdere i dati

Ci possono essere minacce umane e minacce naturali.

169

170 of 260

Il CIA

La sicurezza delle informazioni si basa su questa triade:

  • Availability: Garantire l’operatività del sistema
  • Integrity: Garantire l’integrità dei dati e che non vengano alterati da nessuno che non ne ha i diritti
  • Confidentiality: I dati possono essere utilizzati esclusivamente dalle persone che ne hanno il permesso

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

171 of 260

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

172 of 260

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

173 of 260

Minacce umane

Le minacce umane sono dovute a soggetti che hanno interesse a rubare o danneggiare i dati dell’azienda.

Possono essere:

  • soggetti interni: impiegati infelici che rubano dati dall’interno o disattenti che installano qualche virus
  • soggetti esterni: malintenzionati che cercano di entrare dall’esterno, in genere via rete

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

174 of 260

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

175 of 260

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):

  • DoS e DDoS: si bombarda un pc si messaggi in modo che non possa più fare quello che dovrebbe per rispondere ai messaggi. Quando è distribuito riceve attacchi da tante sorgenti contemporaneamente
  • Intrusione: entro in un sistema e faccio danni
  • Man in the middle: Mi inserisco in una comunicazione e posso ascoltare o modificare i dati che passano

175

176 of 260

Attacchi attivi software e �utente

  • Phishing: email false che catturano i dati delle persone. Esempio una falsa email di google che chiede di loggarsi in un sito falso per rubare la password
  • Virus: Software che infetta altri software al fine di rubare informazioni o distruggere il sistema
  • Worm: Software che si replica e consuma risorse ma senza attaccarsi ad un altro software
  • Spyware: Dei software installati all’interno del pc che rubano informazioni.
  • Ransomware: Un software penetra nel sistema e cripta tutto il contenuto del disco. Viene poi chiesto di pagare una cifra (in genere in bitcoin) per avere la chiave di sblocco che potrebbe anche non funzionare.
  • Chargeware: Riuscire a fare pagare dei servizi sul conto del telefono senza che l’utente se ne accorga
  • Social engineering: Si studiano le abitudini delle persone per carpire informazioni piuttosto che tentare password a caso.

176

177 of 260

Attacchi ransomware

177

Dati del 13/10/2023

Link onion a sito ransomware

178 of 260

Top 5 gruppi ransomware

178

Dati del 13/10/2023

179 of 260

Esempi di phishing/spam/ecc...

179

180 of 260

Social Engeneering

180

181 of 260

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:

  • IP Spoofing (mi sostituisco ad un computer),
  • Packet sniffing (ascolto quello che non dovrei nella rete),
  • Connection hijacking e data spoofing (Altero la connessione e modifico i pacchetti)
  • Dos (Denial of Service) o DDos (Distributed Denial of Service)

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

182 of 260

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

183 of 260

Nist CyberSecurity Framework

183

184 of 260

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::

  • Backup periodico dei dati (orario, giornaliero o settimanale a seconda delle necessità)
  • Regola 3-2-1: Backup dei dati in tre posti geograficamente lontani di cui uno offline,
  • Sistemi UPS di continuità della corrente
  • Gruppi elettrogeni
  • Posizionare i server in posti protetti
  • ...

184

185 of 260

Sistemi di backup

NAS: Network Attached Storage

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

186 of 260

Backup in cloud

186

187 of 260

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

188 of 260

Il protocollo S/MIME

Il protocollo S/MIME utilizza la crittografia ibrida (simmetrica + asimmetrica) per garantire:

  • Autenticazione (La certezza che il messaggio sia inviato dal proprietario)
  • Integrità del messaggio (Il fatto che il messaggio non venga modificato)
  • Non ripudio: Il mittente non può dire che non l’ha mandato
  • Riservatezza: i contenuti sono criptati e non visibili degli altri

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

189 of 260

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).

  • Fornisce la certezza dell’invio e della consegna (o mancata consegna)
  • Ha lo stesso valore legale della raccomandata con ricevuta di ritorno con attestazione dell'orario esatto di spedizione;
  • E’ in grado di garantire la certezza del contenuto non rendendo possibile nessun tipo di modifica né al messaggio, né agli eventuali allegati.

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

190 of 260

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

191 of 260

Attacchi

191

192 of 260

Attacchi

Heartbleed Bug e Heartbleed - Wikipedia

Sicurezza: livelli di acceso: come progettare un sistema sicuro?

https://github.com/tanc7/hacking-books/tree/master

192

193 of 260

La sicurezza delle connessioni con SSL/TLS

193

194 of 260

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

195 of 260

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

196 of 260

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

197 of 260

TLS dopo handshake

Dopo l’handshake protocol c’è il record protocol

197

198 of 260

TLS su wireshark

198

Connessione tls: three way handshake tcp e quindi connessione TLS

199 of 260

Come funziona il TLS �Handshake?

  • Client, hello: Il client invia un messaggio di hello indicando che versione di protocolli TLS supporta e che codifiche, oltre ad una serie di numeri casuali (client random),
  • Server, hello: Il server risponde con un hello che include il suo certificato, le codifiche scelte e un’altra serie di numeri casuali (server random),
  • Client, Autenticazione: Il client verifica il certificato del server,
  • Client, Premaster secret: Il client invia al server un numero codificato con la chiave pubblica del server,
  • Server, decritta: recupera il numero inviato dal client,
  • Server, client, generazione chiavi: entrambi usano i numeri segreti per generare una chiave di sessione e poi confermano all’altro che hanno finito,
  • Server, client, comunicazione: ora server e client possono comunicare usando una cifratura simmetrica con la chiave generata e l’algoritmo scelto.

Esiste anche un handshake keyless usando Diffie-Hellman ma non viene verificato il server.

199

200 of 260

Visualizzare il certificato htts su chrome

200

201 of 260

SSL Tools è un sito che permette di effettuare controlli e operazioni sui certificati dei siti

SSL, STARTTLS and Zertifikate prüfen · SSL-Tools

https://certlogik.com/decoder/

201

202 of 260

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

203 of 260

3D Secure

3-D 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

204 of 260

Firewall, proxy, ACL e DMZ

204

205 of 260

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:

  • Dall’esterno riescono a entrare e a rubare dei dati preziosi
  • Dall’interno riescono a collegarsi all’esterno e inviare dati

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

206 of 260

Tipologie di firewall

  • Ingress firewall: controlla i dati in ingresso
  • Egress firewall: controlla i dati in uscita
  • Personal firewall: controlla i dati di un singolo host
  • Network firewall: si frappone tra LAN e Internet e controlla tutto il traffico

Per tipo di intervento:

  • filtri a livello IP (Packet Filter)
  • filtri stateful (Stateful Inspection)
  • filtri proxy

Questi tipologie possono essere combinate.

206

207 of 260

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

208 of 260

Firewall a pacchetti

Verificano i pacchetti TCP/IP

  • IP del mittente o del destinatario
  • indirizzo MAC
  • porta verso cui è indirizzato il pacchetto
  • protocollo utilizzato

In base a delle regole il firewall decide se accettare o meno un pacchetto:

  • Deny: vieta l’accesso e lo comunica al mittente
  • Accept/allow: accetta i pacchetti
  • Discard/Reject: scarta e dimentica

208

209 of 260

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:

  • Open Security Policy: Tutto è permesso per default
  • Closed Security Policy: Tutto è vietato per default

Regola che permette di “aprire” un ip nel router Cisco:

209

210 of 260

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

211 of 260

Pro e contro Packet Filtering

Vantaggi:

  • Trasparenza: l’utente non si accorge del firewall che è configurato sul gateway
  • Velocità/Immediatezza: i controlli da fare sono semplici e veloci
  • Topologia rete intera invisibile: il NAT nasconde completamente la topologia interna della rete

Svantaggi:

  • Non protegge ad attacchi che mirano un’applicazione
  • Non filtra i contenuti a livello applicazione
  • Vulnerabile a spoofing perché controlla solo il pacchetto e non la connessione
  • Testing complesso (Va ricostruita lo storico dei pacchetti)

211

212 of 260

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:

  • Identificatore di sessione
  • Ip sorgente e destinazione
  • Interfacce di rete utilizzate
  • Stato della connessione TCP

Al termine della connessione si elimina la entry

212

213 of 260

Esempio di tabella Stateful

213

214 of 260

Pro e contro stateful inspection

Vantaggi:

  • Migliori prestazioni del packet filter perché può non controllare la connessione una volta stabilita
  • Protezione IP spoofing: il controllo alla connessione è più sicuro e permette di verificare pacchetti fuori sequenza
  • Tutti i vantaggi del Packet Filtering

Svantaggi:

  • Sfrutta le caratteristiche del TCP ed è di difficile utilizzo in apparecchi solo di rete
  • Non permette di verificare il livello applicazione, l’autenticazione dell’utente e il filtraggio dei contenuti

214

215 of 260

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:

  • Un host chiede al proxy di connettersi ad un sito
  • Il proxy verifica la richiesta e la invia al server come se fosse lui a fare la richiesta
  • Il server riceve la richiesta e risponde al proxy
  • La risposta viene nuovamente analizzata dal proxy prima di essere inviata al client

215

216 of 260

Pro del Proxy

Pro:

  • Effettua un controllo completo dei dati a tutti i livelli
  • Permette dei log dettagliati
  • Non c’è nessuna connessione diretta tra client e server
  • Le regole di filtraggio sono semplici da configurare
  • Supporta l’autenticazione e il filtraggio dei contenuti
  • Effettua il caching dei contenuti

Puoi usare un proxy esterno

216

217 of 260

Contro del Proxy

Contro:

  • E’ poco trasparente perché ogni computer della rete deve essere configurato per usarlo (a destra l’impostazione del proxy di windows)
  • Ha performance minori dei precedenti: Richiede molto lavoro da parte della cpu del server proxy per controllare tutte le richieste
  • Le VPN potrebbero non funzionare con il proxy

Se usi un proxy esterno:

  • Il proxy conosce chi sei (scegli un provider con attenzione!)
  • Se usi https fino al proxy, il proxy potrebbe usare http e mettere in chiaro la comunicazione
  • Il proxy potrebbe salvare le tue password

217

218 of 260

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:

  • può fare solo il lavoro sul controllo degli accessi in modo che sia il più possibile mirato e privo di bug non connessi al suo lavoro principale
  • ha un file system di sistema in sola lettura per evitare modifiche
  • un numero minimo di servizi configurati
  • salva i log di tutte le operazioni fatte
  • i file di sistema sono spostati in cartelle diverse dal normale (chroot)

218

219 of 260

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

220 of 260

Esempi di DMZ

220

221 of 260

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

222 of 260

Video in italiano per le ACL

222

223 of 260

ACL - Video 1 inglese

223

Obiettivo: Bloccare il pc 192.168.2.101 della rete di destra

224 of 260

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

225 of 260

ACL - Video 2

225

226 of 260

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

227 of 260

ACL - Video 3

Fa vedere perché mettere la acl nel nodo più vicino alla destinazione.

227

228 of 260

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

229 of 260

Sicurezza reti wireless

229

230 of 260

Una rete wireless

Una rete wireless è una rete senza filo:

  • mobile (2G, 3G, 4G, ecc…): ha una copertura geografica ottenuta con tante celle adiacenti
  • wlan (wireless lan) copertura di una zona/edificio

Definizioni:

  • localizzazione: di ogni utente mobile si conosce la posizione
  • handover (o handoff): quando si passa da una cella all’altra senza perdere il segnale
  • registrazione: ogni terminale mobile viene autenticato e identificato
  • SSID (Service Set Identifier): identifica una rete wifi e può essere o meno esposto per la connessione.

230

231 of 260

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

232 of 260

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:

  • Monitor mode: una scheda si mette in ascolto di tutti i pacchetti che passano anche senza essere connesso ad una rete
  • Modalità promiscua: può ascoltare solo se connessa ad una rete wifi. E’ la modalità di cattura di wireshark.

232

233 of 260

Problemi delle reti wireless

Problemi:

  • Riservatezza: i dati di una rete non devono essere letti da chi è fuori della rete
  • Controllo di accesso: Alla rete possono accedere solo gli host autorizzati
  • Integrità dei dati: I messaggi non devono essere manomessi

Tipologie di attacco:

  • Eavesdropping, intercettazione e ascolto delle comunicazioni
  • Accessi non autorizzati
  • Interferenza e jamming: disturbo del segnale
  • Danni materiali: Danneggiamento degli apparecchi mobile

233

234 of 260

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:

  • RC4 per la criptazione simmetrica, RC4 è a flusso e molto veloce. Usa chiavi a 64 o 128 bit.
  • CRC-32 per l’integrità dei dati
  • IV: un “initializing vector” che è un numero casuale di 24 bit

234

235 of 260

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

236 of 260

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

237 of 260

Autenticazione

Alcune modalità:

  • Semplice conoscenza dell’SSID nascosto, senza password
  • Con password, metodo standard per router casalinghi, la password resta la stessa per anni
  • Filtraggio per MAC Address, disponibile anche nei pc di casa
  • IEEE 802.1X tramite server RADIUS (Remote Authentication Dial In User Service)

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

238 of 260

Sicurezza del software

238

239 of 260

Sicurezza del software

239

240 of 260

Elementi principali

  • Broken Access Control
  • Cryptographic Failures
  • Injection
  • Insecure Design
  • Security misconfiguration
  • Componenti vulnerabili e obsoleti
  • Identification and Authentication Failures
  • Software and Data Integrity Failures
  • Security Logging and Monitoring Failures
  • Server Side Request Forgery
  • Broken Authentication

240

241 of 260

Broken Access Control

Si verifica quando un utente accede a dei dati a cui non avrebbe il permesso.

Esempi:

  • Modifica dell’id nell’url di una pagina web: www.example.com/profile?id=1337
  • Accesso ad una pagina web non linkata per l’utente in questione ma comunque accessibile
  • Modifica dei contenuti delle pagine tramite ispezione dei contenuti

Prevenzione:

  • Analisi accurata della struttura del software alla ricerca di casi d’uso non previsti: “Cosa succede se?”

241

242 of 260

VPN

(Virtual Private Newtork)

242

243 of 260

VPN �Virtual Private Network

Una VPN permette di creare una comunicazione protetta tra due host su Internet.

Esempi di utilizzo:

  • Da privato si può utilizzare per mascherare la connessione: Se mi connetto ad una rete vpn e navigo da là, la connessione tra me e la rete è protetta e tutto il traffico appare proveniente dalla rete a cui mi collego (es: nordvpn).
  • Per le aziende permette di creare dei canali di comunicazione tra sedi diverse in modo da permettere l’accesso alla stessa LAN anche se da due parti diverse del mondo.�VPN site to site.
  • Da singolo utente aziendale permette di connettersi all’interno di una rete aziendale e lavorare in remoto come se si fosse connessi alla rete in ufficio (Remote Access VPN ).

243

244 of 260

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

245 of 260

IPSEC

245

246 of 260

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

247 of 260

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

248 of 260

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

249 of 260

Varie

249

250 of 260

RFID

Quando si parla di RFID si parla in genere di due componenti:

  • La trasmittente:
    • Un’antenna
    • Un chip
    • Un contenitore che li contiene e protegge entrambi
  • Un lettore che genera un campo elettrico/elettromagnetico.
  • Eventualmente un sistema informatico per gestire i dati

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

251 of 260

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

252 of 260

Frequenze RFID

RDIF può funzionare a varie frequenze (fonte wikipedia):

252

253 of 260

Applicazioni RFID

Applicazioni passive tipiche sono:

  • Sensori antitaccheggio
  • Passaporto
  • Carte di credito
  • Biglietti e abbonamenti dei mezzi pubblici
  • Logistica magazzini
  • Logistica trasporti
  • Controllo accessi e presenze
  • Tracciamento pratiche
  • Identificazione animali
  • ...

Un’applicazione attiva tipica è il telepass

253

254 of 260

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

255 of 260

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

256 of 260

Applicazioni di Smart Card

  • Sim Card del telefono
  • Carte di credito
  • Tessera sanitaria
  • Televisioni a pagamento
  • Abbonamenti dei trasporti
  • ...

256

257 of 260

Virtualizzazione

Vantaggi:

  • backup semplice, è un file!
  • Se un server cade ne riattivo un’altro all’istante con il backup
  • possibilità di comprare/ottenere delle macchine delle macchine virtuali preconfigurate
  • possibilità di dare più risorse alla macchina virtuale che ne ha più bisogno
  • posso avere più server sulla stessa macchina fisica o un server su più macchine

Svantaggi:

  • Performance inferiori rispetto alla macchina nativa

257

258 of 260

Docker

258

259 of 260

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

260 of 260

Strumenti come ADS Killer o NoScript

260