Sei sulla pagina 1di 52

Tommaso Vangelisti 5°AINF 03/06/2022

Programma di Sistemi e Reti 5°AINF 2021 – 2022

Sommario
Modulo 1 ........................................................................................................................................................... 3
Unità 1 – Volume 2 (P. 34) ............................................................................................................................ 3
1.8 - Le reti WLAN e lo standard IEEE 802.11 ........................................................................................... 3
Modulo 2 ........................................................................................................................................................... 7
Unità 2 – Volume 3 (P. 41) ............................................................................................................................ 7
2.1 - DNS (Domain Name System) ............................................................................................................ 7
2.2 – La posta elettronica ....................................................................................................................... 12
2.3 – Protocollo FTP (File Transfer Protocol) ......................................................................................... 15
Modulo 3 ......................................................................................................................................................... 15
Unità 3 – Volume 3 (P. 85) .......................................................................................................................... 15
3.1 - Introduzione alla sicurezza ............................................................................................................. 15
3.2 - I principi della sicurezza informatica .............................................................................................. 17
3.3 - Vulnerabilità, minacce e attacchi ................................................................................................... 19
3.4 - Buffer overflow ............................................................................................................................... 25
3.6 - Progettare la sicurezza.................................................................................................................... 26
3.7 - General Data Protection Regulation (GDPR): la privacy e la protezione dei dati personali ........ 28
Modulo 4 ......................................................................................................................................................... 31
Unità 4 – Volume 3 (P. 131) ........................................................................................................................ 31
4.1 – La crittografia ................................................................................................................................. 31
4.2 - Autenticazione e affidabilità .......................................................................................................... 34
4.3 – La rivoluzione della tecnologia blockchain ................................................................................... 37
Modulo 5 ......................................................................................................................................................... 38
Unità 5 – Volume 3 (P. 155) ........................................................................................................................ 38
5.1 – VPN ................................................................................................................................................. 38
5.2 - Protocolli sicuri ............................................................................................................................... 41
5.3 - HTTPS: HTTP sicuro ......................................................................................................................... 44
5.4 – PGP (Pretty Good Privacy): posta elettronica sicura .................................................................... 44
Modulo 6 ......................................................................................................................................................... 45
Unità 7 – Volume 3 (P. 241) ........................................................................................................................ 45
7.1 – Che cos’è un data center ............................................................................................................... 45
7.2 – L’astrazione logica dell’hardware .................................................................................................. 48
Unità 8 – Volume 3 (P. 277) ........................................................................................................................ 50
8.1 – I modelli del cloud computing ....................................................................................................... 50
Pag. 1 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

8.2 – Il modello dei servizi ...................................................................................................................... 51

Pag. 2 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

Modulo 1
Unità 1 – Volume 2 (P. 34)
1.8 - Le reti WLAN e lo standard IEEE 802.11
Se fino a qualche tempo fa le connessioni cablate rappresentavano l’unica possibilità per poter disporre di
una rete con alte velocità e prestazioni, oggi la concorrenza delle reti wireless (WLAN – Wireless Local Area
Network) rappresenta un’alternativa reale. Le connessioni wireless sono state apprezzate per la comodità
d’uso più che per le prestazioni. Spesso, nelle organizzazioni aziendali, è ancora adottata una soluzione
integrata: reti Ethernet usate per applicazioni pesanti, come quelle multimediali, grafiche e di
virtualizzazione, e reti WLAN utilizzate per accessi ad applicazioni più leggere per sistemi mobili.
L’introduzione dei nuovi standard, con velocità elevate e basso consumo energetico, ha portato a nuovi
scenari che coinvolgono non solo tablet, laptop e smartphone, ma tutta una gamma di sensori e attuatori
intelligenti. Una WLAN, domestica o aziendale, utilizza dei dispositivi radio, gli access point, per trasmettere
un segnale in un raggio di un centinaio di metri o poco più. A livello aziendale possono essere impiegati un
gran numero di access point per trasmettere il segnale su una vasta area. Gli access point aziendali
dispongono di migliori prestazioni e maggiore copertura rispetto alle apparecchiature domestiche. In
particolare, posseggono diverse funzioni, tra cui la gestione remota, strumenti per l’integrazione con altre
reti, la sicurezza e l’autenticazione degli utenti. Gli standard IEEE 802.11 definiscono le caratteristiche delle
reti WLAN e prevedono diverse tecnologie trasmissive basate su bande di frequenza diversa, ma con la
stessa struttura della trama e dell’algoritmo di accesso al mezzo. Nel corso del tempo IEEE ha dovuto
rivedere gli standard per adeguarli alle nuove esigenze in termini di copertura e velocità. La mostra
l’evoluzione, a partire dal 1999, di reti che operavano su una banda di 2,4 GHz con velocità di 11 Mbps, per
arrivare a soluzioni attuali con velocità che superano il Gbps e utilizzano una banda di 5 GHz.

1.8.1 - Architettura 802.11 (Wi-Fi)


Ci sono due modi per creare una connessione wireless: collegando direttamente i terminali tra loro (per
esempio un PC portatile a una stampante wireless), oppure servendosi di un apposito dispositivo usato per
il controllo della comunicazione dei terminali senza fili: l’access point. La modalità di collegamento diretto
tra terminali è detta «ad-hoc» e l’area coperta dalla rete è chiamata Independent Basic Service Set (IBSS).
L’uso dell’access point (AP) per la connessione tra stazioni wireless è il modo più comodo e comunemente
usato. L’AP, grazie alle antenne di cui dispone, invia e riceve segnali radio e garantisce che un terminale
possa accedere alla rete in modo equo, assicurando che tutte le stazioni abbiano gli stessi diritti di accesso.
Inoltre, l’AP permette il passaggio di pacchetti da una rete senza fili a Ethernet. Il principale blocco
dell’architettura è il BSS (Basic Service Set, set di servizio base), composto da:

• uno o più access point;


• una o più stazioni wireless.

Gli access point di due o più BSS possono essere connessi a un hub, a uno switch o a un router. In una tipica
rete domestica si trovano access point e un router (spesso assemblati in uno stesso dispositivo con una
connessione a un modem ADSL) che connettono BSS a Internet. Tutte le stazioni sono dotate di indirizzi
Pag. 3 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

MAC, così come ogni access point ha il proprio indirizzo MAC. Gli access point lavorano al secondo livello
della pila ISO/OSI. È possibile collegare più aree BSS in modo da aumentare la copertura del singolo AP,
creando un’area estesa denominata Extended Service Set (ESS), in cui le singole celle si sovrappongono di
circa il 10%-20%. In questo modo è possibile per un terminale in movimento passare da una cella all’altra
senza perdita di segnale e senza rilasciare mai la connessione. Ciascun BSS è identificato dal Service Set
Identifier (SSID). Si tratta di una stringa di caratteri (da 1 a 32) che dà il nome alla rete. Tutti i dispositivi che
fanno parte della stessa WLAN devono utilizzare lo stesso SSID.

1.8.2 - Il protocollo di accesso al mezzo: CSMA/CA


Il protocollo di livello MAC utilizzato da 802.11 è il CSMA/CA (Carrier Sense Multiple Access with Collision
Avoidance). A differenza di CSMA/CD, nelle reti 802.11 la collisione non viene rilevata, ma viene
preventivamente evitata. Ciascuna stazione ascolta il canale prima di trasmettere e si astiene dal farlo se
rileva che è occupato. Il protocollo 802.11 non rileva le collisioni perché:

1. l’hardware sarebbe costoso;


2. non potrebbe rilevare tutte le collisioni a causa del problema del terminale nascosto che
affronteremo nel prossimo paragrafo e dell’attenuazione del segnale.

Poiché le reti 802.11 non rilevano la collisione, trasmettono l’intero messaggio fino alla fine. Questo
potrebbe rallentare notevolmente il traffico della rete. Il funzionamento del protocollo prevede l’utilizzo di
uno schema di conferma di “avvenuta ricezione” e può essere così riassunto:

• quando la stazione destinazione riceve un frame (corretto), attende un breve periodo di tempo
(SIFS, Short Interframe Space), dopo il quale invia conferma di avvenuta ricezione;
• se il trasmittente non riceve la conferma entro un arco di tempo stabilito, suppone che si sia
verificato un errore e ritrasmette. Dopo un numero prefissato di ritrasmissioni, il frame viene
scartato.

La rappresenta il funzionamento del protocollo CSMA/CA, che può essere così


schematizzato:

1. inizialmente, se il canale è libero, la stazione trasmette dopo un breve


periodo di tempo (DIFS, Distributed Interframe Space);
2. altrimenti, sceglie un valore di ritardo casuale e decrementa questo valore
quando il canale sarà percepito come inattivo; se il canale è percepito
come occupato, il contatore rimane fermo;

Pag. 4 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

3. quando il contatore arriva a 0 (solo quando il canale è libero), la stazione trasmette e aspetta
conferma;
4. se riceve conferma e deve trasmettere altro, torna al passo 2; se non riceve conferma, torna al
punto 2 aumentando il valore di ritardo.

Perché introdurre un ritardo anche quando il canale è libero?

• Supponiamo che H1 (host sorgente) e H2 (host destinatario) debbano trasmettere, ma non lo fanno
perché H3 (terzo host in area di copertura) sta trasmettendo.
• Appena H3 termina, H1 e H2 possono trasmettere, ma questo causerebbe una collisione.
• Attendono quindi un tempo casuale nella speranza di evitare la collisione.

1.8.3 - Il problema del terminale nascosto: RTS e CTS


Supponiamo che H1 stia trasmettendo e durante la trasmissione H2 riceva un pacchetto dal livello rete; H2
ascolta il canale, lo trova libero e trasmette causando collisione. Il canale risulta sprecato.

Per evitare questo inconveniente sono previsti due frame di controllo:

• richiesta di invio (RTS, Request To Send)


• libero di spedire (CTS, Clear To Send).

Utilizzando questi frame, H1 invia, in modalità broadcast, una trama RTS contenente anche il tempo
necessario per trasmettere il messaggio (sia dati sia controllo). Il frame RTS viene ricevuto dall’access point
di competenza, che invia broadcast un frame CTS per concedere il permesso a H1 e per comunicare alle
altre stazioni di non trasmettere durante il periodo di tempo riservato alla trasmissione di H1.

Pag. 5 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

1.8.4 - Formato della trama MAC 802.11


Le WLAN sono soggette a molti più disturbi di quelle cablate e una trama troppo lunga rischia di arrivare
corrotta. Esiste la
possibilità di
frammentare le
trame e
trasmetterle in
sequenza. In caso
di errore verrà
ritrasmesso solo il
singolo
frammento.

Vediamo in dettaglio il formato della trama MAC 802.11.

• FC, Frame Control; contiene le informazioni di controllo della trama divise in vari sottocampi, tra cui:
o la versione del protocollo;
o il tipo di trama e il sottotipo (per esempio trama di controllo RTS, CTS, ACK);
o WEP – questo bit indica che l’algoritmo di codifica WEP è stato utilizzato per cifrare il corpo della
trama;
o More Fragments – identifica che ci sono ancora frammenti da trasmettere.

• Durata/ID: indica il tempo (in microsecondi) che verrà assegnato al canale per la corretta trasmissione
di un frame MAC. In alcune trame di controllo, questo campo contiene un identificatore.

• Indirizzo 1: indirizzo sorgente.

• Indirizzo 2: indirizzo destinazione.

• Indirizzo 3: indirizzo della stazione base per il traffico tra celle.

• SC, Sequence Control; questo campo permette di distinguere i diversi frammenti di una stessa trama. È
composto da due sottocampi che permettono di riordinare i frammenti:
o il numero di frammento;
o il numero di sequenza.

• Indirizzo 4: indirizzo della stazione di destinazione per il traffico tra celle.

• Dati: contiene i dati della trama (o frammento) MAC. I dati possono comprendere o una trama di
controllo MAC o una trama LLC con i dati dei livelli superiori.

• FCS, Frame Check Sequence: è il CRC (Cyclic Redundancy Check) per il controllo degli errori.

1.8.5 - Wireless: le nuove prospettive


A partire dall’introduzione dello standard 802.11n, le prestazioni delle Wi-Fi sono letteralmente esplose. È
normale che chi si collega a una rete Wi-Fi di ultima generazione si aspetti di navigare a velocità che
superano i 100 Mbps. Si potrebbe dire che queste velocità non sono poi così elevate, soprattutto se
confrontate con i dati di targa che parlano di velocità dell’ordine dei Gbps. In realtà, la questione è
Pag. 6 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

complessa, soprattutto se consideriamo l’elevato numero di dispositivi Wi-Fi che condividono la stessa rete
e che creano situazioni in cui i dati, pur procedendo in modo ordinato su canali paralleli, si trovano a dover
affrontare un traffico congestionato, se non addirittura bloccato. In questi casi la cosa più ovvia che ci può
venire in mente è differenziare il traffico, a seconda dell’occupazione di banda, e di inoltrarlo su canali
diversi, come capita con il traffico stradale, indirizzando bici, moto e automobili su percorsi distinti per non
intralciarsi a vicenda. Le normative 802.11ac e ax vanno esattamente nella direzione di differenziare i
traffici aggregando i canali e sfruttando la qualità del servizio offerta dagli access point. L’aggregazione dei
canali consente di mantenere la velocità senza diminuire la copertura e gestendo più terminali. Questo è
possibile perché a partire da 802.11ac le bande di frequenza a 5 GHz sono molto più ampie e divise in molti
più canali indipendenti e non sovrapponibili, a differenza di quanto accadeva per i pochi canali della banda
a 2,4 GHz.

Lo spazio radio è uno spazio condiviso e, nella versione classica, un access point si comporta come un hub,
permettendo che solo un terminale alla volta possa parlare. La tecnica MU-MIMO trasforma, logicamente,
un access point da hub in switch, in modo tale che più dispositivi possano parlare contemporaneamente tra
loro senza interferire. benefici di 802.11ac li vediamo sfruttati veramente in ambienti aziendali in cui i
dispositivi sono diversi per occupazione di banda e consumi. Alcuni dispositivi, come i laptop di ultima
generazione, dispongono di più antenne e non hanno problemi a scaricare file pesanti consumando molta
energia. Diverso è il caso di tablet e smartphone, che dispongono di una sola antenna, o di termostati e
dispositivi IoT, che occupano pochissima banda. Gli access point sono macchine che dispongono ormai di
sistemi di elaborazione a più core con capacità elaborative significative, con più antenne intelligenti e la
possibilità di poter aggregare più porte Gbit Ethernet per collegarsi agli switch della rete. Inoltre,
dispongono di collegamenti Bluetooth Low Energy e 4G.

Modulo 2
Unità 2 – Volume 3 (P. 41)
2.1 - DNS (Domain Name System)
Ogni dispositivo in rete è etichettato con il suo indirizzo numerico che, per noi umani, non è facile da
ricordare. Il sistema dei nomi di dominio (DNS – Domain Name System) è stato creato per convertire
l’indirizzo IP in nomi semplici e riconoscibili. Per esempio, è molto più facile ricordare il nome di dominio
www.wikipedia.it che l’indirizzo effettivo del server 91.198.174.192. È come usare la rubrica del cellulare:
non c’è bisogno di ricordarsi un numero di telefono, basta il nome del contatto! Con il DNS, però, non c’è
neppure necessità di avere una rubrica personale e di aggiornarla in continuazione, perché i server DNS lo
fanno per noi. Il protocollo DNS fornisce un servizio che, a fronte del nome di una risorsa in Internet,
restituisce il suo indirizzo di rete. Inizialmente, quando su Internet risiedevano solo poche centinaia di
calcolatori, la risoluzione dei nomi era gestita manualmente tramite una tabella, chiamata hosts.txt, con la
corrispondenza nome-indirizzo. Quando il responsabile di un sito voleva aggiungere un nuovo calcolatore in
Internet, inviava un messaggio di posta elettronica, fornendo la coppia nome-indirizzo del calcolatore.
Questa informazione veniva inserita in una tabella che dopo pochi giorni veniva inviata, per posta, ai vari
Pag. 7 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

siti. A questo punto l’amministratore di sistema di ogni sito la installava su tutti i calcolatori. In questo
modo la risoluzione della denominazione era realizzata con una procedura che cercava il nome del
calcolatore nella copia locale della tabella e restituiva l’indirizzo corrispondente. Verso la metà degli anni
Ottanta del secolo scorso si è affermato il servizio DNS, che si è dimostrato affidabile e in grado di
supportare il notevole aumento di sistemi collegati. Il sistema non è concentrato su un’unica macchina che
contiene tutti i nomi e i rispettivi indirizzi, ma è organizzato in un grande database distribuito, in cui le
informazioni sono ripartite su migliaia di server DNS in rete. Il servizio utilizza uno spazio dei nomi
gerarchico, in cui la tabella di collegamento che lo realizza è divisa in porzioni disgiunte e distribuite per
essere interrogate in rete. In generale, quando deve essere stabilita una connessione, il programma client
(“Resolver DNS”), chiamato da un browser o da un programma di posta elettronica, invoca DNS che, a
fronte del nome del server da contattare, restituisce l’indirizzo IP corrispondente, con il quale viene
stabilita una connessione a livello trasporto.

Di fatto il sistema DNS comprende un grande archivio distribuito che, oltre a risolvere i nomi dei domini,
fornisce:

o uno spazio di nomi, strutturato in modo gerarchico, che garantisce che il nome sia unico in Internet
o un servizio in cui molti sistemi collaborano in rete per rendere disponibile lo spazio dei nomi
o un servizio in cui ogni server DNS è responsabile solo del suo sottoinsieme
o un protocollo a livello applicazione che, a sua volta, si appoggia alla porta 53 di UDP per il trasporto
dei dati

2.1.1 - Gerarchia di dominio


Il DNS assegna uno spazio gerarchico dei nomi alle risorse presenti in Internet. Questa gerarchia può essere
visualizzata come un albero in cui a ciascun nodo corrisponde un dominio e alle foglie corrispondono i
calcolatori, ai quali viene associato un nome. La gerarchia non è molto estesa; al primo livello esiste un
dominio per ogni Paese a cui si aggiungono i domini generici, come edu, com, gov, mil, org, net. Ogni nome
di dominio è costituito da una o più etichette separate da un “.” (punto), lunghe al massimo 63 caratteri. Un
nome di dominio completo può contenere un massimo di 255 caratteri. Le etichette sono scritte da destra
verso sinistra: l’etichetta a destra è il dominio di primo livello (TLD, Top Level Domain), a cui segue il

Pag. 8 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

dominio di secondo livello e così via. Consideriamo, per esempio, il nome www.iana.org. Possiamo
distinguere una gerarchia di elementi che garantisce l’univocità dei nomi. Partendo da destra troviamo:

o org: nome del dominio di primo livello


o iana: nome del dominio di secondo livello
o www: nome del server.

I domini di primo livello possono essere


divisi in due categorie: generici, gTLD
(generic TLD), e nazionali, ccTLD (country
code TLD). I domini gTLD si suddividono in
sTLD (sponsored TLD) e uTLD (unsponsored
TLD).

I domini ccTLD si riferiscono ai diversi Paesi


e i loro nomi corrispondono alle
abbreviazioni definite dalla norma ISO 3166.

2.1.2 - Formato dei messaggi DNS e Record delle Risorse


• Record delle risorse

L’albero che definisce la gerarchia dei domini è diviso in


sottoalberi chiamati zone. Ogni zona può essere considerata come
una autorità amministrativa responsabile di quella porzione della
gerarchia: per esempio, i domini di primo livello costituiscono una
zona gestita da ICANN. Le informazioni contenute in ogni zona
sono organizzate in due o più distributori di nomi, in modo tale
che le informazioni siano disponibili anche in caso di guasto di uno
dei due. Il distributore di nomi è un programma con il ruolo di server a cui i client inviano le richieste. A
volte la risposta contiene l’informazione finale, altre volte invece è un puntatore a un altro server cui il
client deve inviare un’altra richiesta. Si può pensare al DNS come a una gerarchia di distributori di nomi più
che a una gerarchia di domini.

Ogni zona mantiene delle informazioni organizzate in


“record delle risorse” utili a risolvere la
corrispondenza nome-valore. Un record delle risorse è
costituito dai seguenti campi:

<Name, Value, Type, Class, TTL> dove:

o Name è il nome fornito al DNS (input)


o Value è il valore restituito dal DNS (output)
o Type specifica come il value deve essere
interpretato
o Class indica la classe di appartenenza del record delle risorse (IN significa che la classe è Internet)

Pag. 9 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o TTL (Time To Live) indica per quanto tempo la struttura dati è valida. È utilizzato dai server che
usano una cache di record delle risorse provenienti da altri server; quando TTL scade, il server deve
eliminare il record dalla sua cache.

I record delle risorse sono memorizzati in un database che contiene le informazioni sui server di un
determinato dominio. Le informazioni vengono associate a un dominio aggiungendo dei record al database
DNS di un nameserver primario. Il database corrispondente a un dominio contiene le informazioni finali sul
dominio o eventualmente i riferimenti che indirizzano a un altro nameserver che avrà autorità per il
dominio richiesto. In questo senso parliamo di database distribuito, in quanto non esiste un nameserver
principale contenente informazioni su tutti i domini esistenti, ma ogni DNS ha autorità (contiene i dati) solo
per il dominio di sua competenza, mentre la risoluzione dei nomi non di sua competenza viene delegata ad
altri server. In pratica, il distributore dei nomi radice (root server) contiene una coppia record NS e record A
relativi a ogni server di secondo livello; questi due record, insieme, costituiscono un puntatore che va dal
distributore di nomi radice a ciascun server di secondo livello. Nello stesso modo, ogni dominio di secondo
livello contiene coppie di record NS e A, che puntano a distributori di terzo livello, oppure a soli record A
che restituiscono l’indirizzo IP. L’ultimo livello della gerarchia è un distributore che contiene solo record A,
che non punta ad alcun altro server e restituisce direttamente gli indirizzi IP. In realtà, nel database di
questo livello potrebbero esserci anche record MX (per indicare un server di posta elettronica) o record
CNAME per poter assegnare un altro nome al server. Infatti, i server hanno un unico indirizzo IP, ma
possono avere più nomi (alias) associati allo stesso IP. In generale, a ogni interrogazione il record NS
restituisce il nome del server a cui puntare; questo nome è usato come input del record A per ottenere l’IP
relativo.

• Messaggi

l protocollo DNS ha due tipi di messaggi:

o richiesta (query) a un server per ottenere


informazioni sulle risorse
o risposta che contiene nomi, indirizzi e
informazioni aggiuntive.

I messaggi, sia di richiesta sia di risposta, hanno lo stesso formato che comprende un’intestazione e le
relative sezioni di richiesta o di risposta.

o Header (intestazione) è di 12 byte e contiene campi e flag che identificano il tipo di pacchetto
o Question con il nome del server richiesto
o Answer include uno o più record con le risposta dal server al client (resolver)
o Authoritative fornisce informazioni (nome di dominio) su uno o più server autorevoli per la
richiesta-risposta
o Additional fornisce informazioni aggiuntive

Pag. 10 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

2.1.3 - Struttura e interrogazione del DNS


La struttura del DNS è simile a quella di
un tipico file system: dalla radice si
scende, di cartella in cartella, fino al file
finale. Si tratta di una struttura ad
albero in cui alla radice ci sono i root
name server DNS. Questi server
contengono l’elenco dei server
responsabili (authoritative server) dei
domini di primo livello (TLD) e lo
forniscono come risposta alle richieste
di risoluzione dei nomi riguardanti il
dominio principale. I server di primo livello
(.com o .org) delegano, una parte di autorità
ai server responsabili per i domini di secondo
livello, che rispondono alle interrogazioni
relative ai sottodomini e ai singoli host.
Spesso i nomi dei domini sono limitati ai
primi tre livelli, nulla vieta di averne di più.

L’interrogazione di un DNS avviene in modo


simile a quanto mostrato in, che illustra cosa
avviene in seguito alla richiesta, da parte di
un computer locale, del sito
www.paperus.com.

1. Il computer (A) richiede l’indirizzo IP di www.paperus.com al server locale dei nomi (B).
2. Se il server DNS locale dispone dell’indirizzo, perché lo ha già risolto in passato e lo mantiene nella
propria cache memory, lo invia immediatamente; se invece non lo conosce lo chiede al root server
(C).
3. Il root server restituisce l’indirizzo IP di uno dei server che hanno autorità sul dominio .com.
4. Il server “autoritativo” (Authoritative Server) viene interrogato e risponde con... (D)
5. ... l’indirizzo IP del server che ha autorità per. paperus (E).
6. Il server che ha autorità su. paperus viene contattato e risponde con...
7. ... l’indirizzo IP dell’host di nome www. A questo punto il DNS locale aggiunge il nuovo
nome/indirizzo nella propria cache memory.
8. Finalmente l’indirizzo IP di www.paperus.com arriva al computer locale.

Ogni ISP ha un proprio server dei nomi locali (local name


server). La richiesta inviata da un host, per prima cosa,
viene inoltrata a questo server che di solito mantiene una
cache memory con i nomi più utilizzati; se questo non riesce
a soddisfare la richiesta, la inoltra a uno dei root name
server che restituirà l’elenco dei server che gestiscono il
dominio interessato. Il server locale provvede allora a
contattare uno di questi server per ottenere l’indirizzo IP
richiesto. L’Esempio 1 mostra la sequenza dei passi da
quando un utente clicca su un link fino a quando la pagina
richiesta viene mostrata al browser, passando la richiesta al
server DNS.
Pag. 11 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

2.2 – La posta elettronica


2.2.1 – Caratteristiche della posta elettronica
La posta elettronica è un mezzo di comunicazione asincrono che, contrariamente a quanto accade per la
chat o la videoconferenza, consente una comunicazione anche se mittente e destinatario non sono
contemporaneamente connessi. Un client di posta non invia direttamente i messaggi al client remoto, ma si
appoggia a un provider, il quale mette a disposizione un server che li memorizza e li inoltra (store &
forward) al server del destinatario che li archivia nel proprio data-base. Qui il messaggio rimane fino a che il
client di destinazione non lo preleva. Per l’invio dei messaggi è utilizzato il protocollo SMTP (Simple Mail
Transfer Protocol), mentre per il loro recupero sono utilizzati il protocollo POP3 (Post Office Protocol),
oppure IMAP (Internet Message Access Protocol). Tipicamente un messaggio di posta elettronica viene
creato da uno User Agent, una persona o un programma, e spedito da un Transfer Agent che utilizza il
protocollo SMTP. Gli User Agent si occupano della composizione, trasmissione e ricezione dei messaggi che
passano dal computer dell’utente al server in cui risiede la casella di posta (mail-box). Si tratta di
programmi che offrono all’utente tutti i servizi necessari a gestire la propria posta: composizione,
cancellazione, visualizzazione ecc. I Transfer Agent trasferiscono i messaggi tra i server di posta con la
funzione di ricevere e inoltrare i messaggi. Ogni utente può avere una o più caselle di posta elettronica, alle
quali accede di solito autenticandosi. Ogni casella di posta possiede un proprio indirizzo univoco, costituito
da due parti: una parte locale e una parte globale, separate dal carattere @: nome mailbox @ nome server
(ad esempio, bob@b.org). La prima parte corrisponde al nome dell’utente ed è unica solo all’interno del
proprio server di posta locale, mentre la seconda è il nome del calcolatore, unico in Internet, su cui risiede
la mail-box.

La Fig. mostra il processo di trasferimento di un messaggio di posta dal computer di Alice (l’utente che crea
il messaggio) a quello di Bob (l’utente destinatario). Il messaggio di posta che Alice spedisce a Bob usa il
protocollo SMTP (Simple Mail Transfer Protocol) per essere inviato al server del proprio provider (1). Il
server locale individua l’indirizzo del server remoto di Bob servendosi del servizio DNS (2 e 3). Il messaggio è
inoltrato al server dove risiede la casella postale di Bob (4) e qui memorizzato. Dalla propria postazione
personale Bob si connette, tramite il protocollo POP3 (Post Office Protocol) o IMAP (Internet Mail Access
Control), alla propria casella di posta e scarica il messaggio sul proprio computer (5).

Pag. 12 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

2.2.2 – Struttura di un messaggio di posta elettronica


o Un messaggio di posta elettronica è costituito da una busta con l’indirizzo del destinatario, una
intestazione (header) e un corpo (body) che contiene qualsiasi testo.
o la busta (envelope), incapsula il messaggio e contiene le informazioni necessarie per il trasporto:
indirizzo del mittente e del destinatario, priorità e informazioni inerenti alla sicurezza. Gli
agenti utente usano queste informazioni per l’inoltro della posta;
o l’intestazione (header), contiene informazioni di controllo utili agli agenti utente; è costituita da più
campi, ognuno su una riga diversa, della
forma <nome campo>: valore. Il nome del
campo è una parola chiave, il valore è una
stringa ASCII. L’agente utente costruisce il
messaggio e lo passa all’agente di
trasferimento, che usa i campi
d’intestazione per costruire la busta;
o il corpo (body) contiene il messaggio vero e
proprio destinato al lettore.
Originariamente era codificato in ASCII a 7
bit, ma poi è stato esteso per supportare
allegati multimediali, definiti tramite lo
standard MIME (Multipurpose Internet
Mail Extensions), di cui parleremo più
avanti.

Per quanto riguarda l’intestazione è opportuno sottolineare che alcuni campi, a differenza di altri, sono
obbligatori.

2.2.3 – MIME (Multipurpose Internet Mail Extensions)


Inizialmente un messaggio di posta (definito in RFC 822) consisteva di soli caratteri ASCII, ma ciò si è
dimostrato inadeguato per l’impossibilità sia di esprimere caratteri quali le lettere accentate o appartenenti
ad alfabeti non latini, sia di includere tipi di informazioni non testuali quali audio o immagini o file
eventualmente compressi. Per questo motivo è stato proposto lo standard MIME che, come definito in RFC
1521, RFC 1341 e RFC 822, stabilisce una serie di regole per la codifica dei messaggi di posta (oltre che per il
protocollo HTTP), la struttura dei campi e il loro formato. L’idea alla base di MIME è quella di continuare a
utilizzare la codifica base originaria in ASCII; in questo modo i messaggi possono essere inviati usando gli
stessi protocolli. Vengono invece modificati i programmi di invio e ricezione del messaggio, aggiungendo
una struttura al corpo del messaggio e definendo delle regole nuove per la codifica di messaggi non ASCII.
In particolare, sono state definite nuove intestazioni:

o “MIME versione”, che indica che il messaggio è in formato MIME. Ad esempio: “MIME-Version: 1.0”
o “Content-Type”, che specifica la natura del corpo del messaggio
o RFC 2045, che definisce sette tipi di Content-Type, ciascuno con dei sottotipi. Il valore di questo
campo è espresso nella forma “tipo/sottotipo”. Ecco alcuni esempi: “Content-Type:text/html”
“Content-Type:text/xml” “Content-Type:text/plain”
o “Content Transfer Encoding”, che identifica la codifica dei dati. Ciò permette al destinatario la
conversione dei dati da ASCII a 7 bit standard al formato previsto in Content-Type
o “Content Description”, una stringa ASCII che identifica il tipo di messaggio (per esempio: “questo
messaggio contiene la foto di mia zia”)
o “Content ID”, il codice identificativo del contenuto.

Pag. 13 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

2.2.4 – Protocollo SMTP (Simple Mail Transfer Protocol)


Il trasferimento di e-mail è basato sul protocollo SMTP (Simple Mail Transfer Protocol), pubblicato nel 1982
(RFC 882, RFC 5321), che si occupa di stabilire una connessione tra un mittente e un destinatario e di
trasferire il messaggio. SMTP è un protocollo client/server, affidabile, che lavora sulla porta 25 e utilizza TCP
come protocollo di livello trasporto. Quando la connessione viene stabilita, il client invia il messaggio al
server, che lo inserisce nella casella di posta dell’utente e poi lo inoltra al server del destinatario. Come per
molti altri protocolli client/server che utilizzano le primitive di servizio, anche il protocollo SMTP si articola
in tre fasi:

1. apertura della connessione o “handshaking”;


2. trasferimento del messaggio;
3. chiusura della connessione.

Dal punto di vista dell’applicazione, il client e il server comunicano tramite comandi (stringhe di testo): il
client invia dei comandi, in genere di 4 caratteri, il server risponde inviando dei codici di stato di 3 cifre
seguiti da una frase opzionale che descrive il codice di stato. Le righe di comando e risposta terminano con i
caratteri CR-LF (a capo). I comandi, inviati con la primitiva SEND, sono utilizzati per gestire l’handshake tra
client e server di posta, stabilendo l’apertura della sessione, l’inizio della trasmissione dei dati e la chiusura
della connessione. Esempi di comandi SMTP, eseguiti dal client, sono: HELO, MAIL FROM, RCPT TO, DATA,
QUIT.

2.2.6 – Protocollo POP3 (Post Office Protocol 3)


Abbiamo visto che SMTP si occupa del trasferimento dei messaggi e che, poiché mittente e destinatario non
sono necessariamente connessi simultaneamente, i messaggi vengono salvati sul server di posta del
destinatario, in uno spazio di memoria a esso riservato. Quando il destinatario desidera accedere alla sua
casella di posta deve collegarsi al server e accedere alla sua mail-box. Questo servizio è svolto dal
protocollo POP3 (Post Office Protocol versione 3, descritto in RFC: 1734, 1939, 1957, 2449). POP3 si
appoggia alla porta 110 di TCP. Come per gli altri protocolli, client e server comunicano scambiandosi
comandi che costituiscono i messaggi. Anche il protocollo POP3 si articola in tre fasi:

1. apertura della connessione


2. trasferimento del messaggio
3. chiusura della connessione.

Il trasferimento di messaggi comprende:

o autenticazione: l’utente deve comunicare nome e password per poter accedere alla propria mail-
box
o transazione: il client ottiene i messaggi di posta, li segna per l’eliminazione ecc.
o aggiornamento: il server elimina i messaggi precedentemente segnati e la connessione viene
terminata.

2.2.7 – IMAP (Internet Mail Access Protocol)


IMAP è un protocollo che, come POP3, permette di recuperare i messaggi di posta elettronica ma, mentre il
protocollo POP3 è utilizzato dagli user agent per scaricare la posta dalla mail-box sul computer locale, IMAP
consente di gestire i messaggi presenti nella mail-box in modo da poterli leggere, cancellare, spostare in
altre cartelle senza necessariamente scaricarli in locale. Gli utenti possono visualizzare sul loro client le
copie dei messaggi, mentre i messaggi originali rimangono sul server fino alla loro cancellazione manuale.
IMAP permette anche a un client o Webmail, di leggere solo l’intestazione o parti del messaggio, senza
necessariamente fare il download dei file, e di organizzare e archiviare i messaggi di posta elettronica
Pag. 14 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

mantenendo la sincronizzazione tra client e server. Le operazioni del protocollo IMAP4rev1 sono descritte
in RFC3501 e riguardano i comandi per l’accesso autorizzato alla casella di posta, la verifica della presenza
di nuovi messaggi, la gestione e la rimozione dei messaggi o parti di essi. Una tipica sessione che utilizza
Telnet o un terminale a riga di comando per la visualizzazione di una e-mail richiede quattro operazioni di
base che corrispondono ad altrettanti comandi IMAP:

o LOGIN per la connessione al server IMAP


o SELECT per la selezione della cartella
o SEARCH per cercare ed elencare i messaggi
o FETCH per leggere il messaggio

La cancellazione di una e-mail viene fatta contrassegnando i messaggi con il “flag Deleted” e attuata con il
comando “EXPUNGE”.

2.3 – Protocollo FTP (File Transfer Protocol)


File Transfer Protocol (FTP) è un protocollo di livello applicativo usato da un client per trasferire file su un
server remoto utilizzando due canali e due porte TCP: la prima per il trasferimento dei dati (porta 20), la
seconda per l’invio dei comandi (porta 21). Il suo scopo primario è la condivisione di file e il loro
trasferimento in modo affidabile ed efficiente. A differenza di HTTP, il protocollo FTP non mira all’apertura
di pagine da visualizzare su browser, ma permette il collegamento a un server remoto con la possibilità di
navigare nel suo file system e di fare tutte le operazioni che in genere vengono effettuate sui file del
proprio computer locale (copia, cancella, sposta, invia, ricevi, ...). FTP è uno dei primi protocolli storici di
Internet. Sviluppato nel 1971 presso il MIT (Massachusetts Institute of Technology) di Cambridge, è stato
definito nella RFC 114, ma ha subito diversi cambiamenti negli anni fino ad arrivare alla RFC 959 del 1985.

Modulo 3
Unità 3 – Volume 3 (P. 85)
3.1 - Introduzione alla sicurezza
3.1.1 - Lo scenario
L’evoluzione dei sistemi, la loro complessità e varietà rende più difficile proteggersi da attacchi informatici e
impone sfide che richiedono una visione interdisciplinare. Attacchi di ogni tipo, che vanno da semplici
attività di phishing fino ad attacchi mirati, cercano di sottrarre denaro, violare le identità digitali,
compromettere la reputazione sui social network. Malware sempre più sofisticati attaccano i sistemi
intelligenti di industrie, trasporti e case mettendo a attività
produttive e la nostra stessa vita. Gli attacchi informatici
non risparmiano nessuno. Quello che cambia è solo la
probabilità di essere colpiti: un conto è essere dei privati
cittadini, altro è appartenere a un’organizzazione di alta
finanza. Nel primo caso potremmo essere bersagliati da
spam o virus, nel secondo potremmo essere soggetti a gravi
attacchi che potrebbero mettere a rischio di sopravvivenza
la struttura organizzativa di cui facciamo parte e durare
mesi o anni prima di essere scoperti. Pur non essendo facile
dare una definizione esaustiva di sicurezza di un sistema
informatico per via dei numerosi elementi coinvolti,
possiamo dire che il suo scopo è mantenere un sistema funzionante e operativo in qualsiasi momento,
garantendo l’accesso ai dati solo al personale autorizzato. La difficoltà è legata alla definizione generica di
Pag. 15 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

“sistema informatico”, perché esso coinvolge qualunque elemento che afferisce all’area tecnologica:
hardware, software, personale, dati, infrastrutture, ... Il denominatore comune è comunque legato alla
sicurezza delle informazioni, cioè dei dati, sia in termini di correttezza, sia in termini di protezione.

3.1.2 - Chi attacca e perché


Internet è una miniera d’oro per gli hacker e i dati sono le pepite da trovare scavando nella rete con
“picconi tecnologici”, vagliando con pazienza il materiale estratto, raccogliendolo e vendendolo. L’Internet
of Things, con la trasmissione ininterrotta di informazioni, ha ulteriormente ingrossato il filone della
miniera promettendo guadagni insperati. Lo scenario, per chi conosce il valore dei dati, appare
preoccupante soprattutto per gli effetti che si possono ottenere da un loro uso scorretto. Ma chi è
interessato a rubare informazioni, alterarle o renderle irraggiungibili? In Italia il termine “hacker” è spesso
inteso in senso negativo e viene tradotto come “pirata informatico”, ma questo non è sempre vero. Un
hacker, nella cultura anglosassone, è definito sia come una persona che illegalmente accede alle risorse di
un sistema, sia come un esperto di computer, con una vasta conoscenza delle reti, il cui obiettivo primario è
quello di capire come funzionano i sistemi e come sia possibile individuarne le falle. Negli anni in cui
nasceva la sicurezza informatica gli hacker erano hobbisti o adolescenti annoiati (script kiddies) che
volevano fare scherzi o farsi vedere più intelligenti di altri. Oggi non è più così e gli hacker sono diventati
molto più pericolosi. Si tratta non solo di singoli individui, ma anche di gruppi organizzati che tentano di
sfruttare le vulnerabilità non solo per ottenere guadagni immediati, ma per intervenire nella finanza, nella
politica e nel terrorismo.

A grandi linee gli hacker si possono dividere in due categorie:

o white hat (cappello bianco), che si oppongono a un uso scorretto dei sistemi informatici e spesso
sono assunti dalle aziende per la loro difesa;
o black hat (o cracker), persone il cui scopo è approfittare della vulnerabilità dei sistemi per violarne
la sicurezza, per trarne guadagno, agire per una causa in cui credono o, semplicemente, per
divertimento. Uno dei metodi più comuni usati dai cracker per guadagnare l’accesso a reti e
sistemi è attraverso l’ingegneria sociale, tramite la quale il cracker inganna i dipendenti di una
società, ottenendo le credenziali per l’accesso. Capita sempre più spesso che gli hacker vengano
sfruttati da grandi aziende per infiltrarsi nei sistemi dei concorrenti e carpirne i segreti. Governi,
organizzazioni politiche, o terroristiche si servono di loro per conseguire i propri obiettivi militari e
politici.

3.1.3 - Come difendersi


A prima vista siamo portati a pensare (e a sperare!) che l’ambito della sicurezza informatica sia maturo e
ben consolidato, visto che molte organizzazioni offrono garanzie sulla riservatezza delle informazioni e sulle
misure più avanzate per proteggerle. La realtà, tuttavia, è ben diversa. Negli ultimi anni gli attacchi sono
aumentati notevolmente, trovando una generale impreparazione. Per molto tempo sono state trascurate
le più elementari norme di sicurezza e solo in minima parte sono state adottate le infrastrutture necessarie
a garantire la segretezza dei dati. Lo scenario attuale è delicato: è facile reperire in rete applicazioni e
strumenti così potenti e semplici che anche un bambino, con un po’ di fantasia e intraprendenza, potrebbe
mettere in ginocchio interi settori produttivi. Non è un segreto che grandi aziende, pur dotate di sofisticati
strumenti di difesa, abbiano dovuto battere in ritirata di fronte ai cyber attacchi sferrati da giovani pirati
informatici. Molto spesso si devono fronteggiare organizzazioni che “di mestiere” studiano e pianificano
attacchi. Non è facile organizzare un piano di sicurezza in ambiente informatico perché numerosi sono gli
ambiti coinvolti: infrastrutture, dispositivi, applicazioni e persone che, con il loro comportamento, possono

Pag. 16 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

decretare il successo o il fallimento di un piano di difesa. Tuttavia, anche se la sicurezza assoluta non esiste,
una moderna organizzazione deve inquadrare le proprie strategie di difesa in un processo globale che
comprende una serie di attività che vanno dall’individuazione delle vulnerabilità fino alla pianificazione del
sistema di sicurezza: una sintesi tra tecnologia e persone. È fondamentale garantire la protezione dei dati
valutando le applicazioni software, i sistemi operativi, i protocolli di trasmissione, gli apparati di rete
coinvolti e le infrastrutture fisiche, senza trascurare il coinvolgimento e la sensibilizzazione degli utenti. Il
processo che porta alla sicurezza è complesso e ogni suo elemento, come in una catena, dipende dalla
robustezza degli altri.

Per arrivare a proteggere un sistema è importante definire un piano che valuti il rischio di danni derivati da
attacchi, al fine di valutare gli investimenti necessari per attuare adeguate misure di sicurezza. Un’ultima
considerazione da fare quando si parla di sicurezza è il grado di fiducia (assurance) che siamo disposti ad
accordare a un sistema o a un fornitore. Ogni nostra azione avviene riponendo fiducia in qualcuno o in
qualcosa: abbiamo fiducia nel cartello di un senso unico o in un medicinale o nella scadenza di un alimento.
Allo stesso modo ci fidiamo della protezione di un firewall o della nuova versione di un software, certi che il
produttore abbia testato i prodotti prima di metterli sul mercato. Per questo esistono enti certificatori,
accreditati a livello nazionale e internazionale, che impongono criteri a cui attenersi e nei quali riporre la
nostra fiducia come gli standard della famiglia ISO 27000. Si tratta di “buone pratiche” che aiutano le
organizzazioni a migliorare la sicurezza informatica. In esse viene suggerito un approccio sistematico per
implementare un “sistema di gestione della sicurezza delle informazioni” (ISMS). Si affrontano le tematiche
legate alla gestione dei rischi, con le misure da prendere per sostenere i tre pilastri della sicurezza: persone,
processi e tecnologia.

3.2 - I principi della sicurezza informatica


All’inizio degli anni Novanta John
McCumber, allora uno dei
maggiori esperti di sicurezza,
realizzò un modello in cui sono
rappresentati, in forma grafica, le
leve su cui agire per governare la
sicurezza. Le tre dimensioni del
“Cybersecurity Cube” di
McCumber ci ricordano che non
sono sufficienti gli strumenti
tecnologici per metterci al riparo
da attacchi e furti informatici, ma
è necessario coinvolgere le
persone in un processo più
ampio che comprenda strategie e politiche di difesa, standard internazionali e, soprattutto, consapevolezza
e cultura.

3.2.1 - Il triangolo CIA


I tre elementi ai vertici del triangolo della sicurezza identificano gli obiettivi della sicurezza informatica e
permettono di focalizzare le azioni da intraprendere per proteggere qualsiasi sistema in rete. Essi sono:

o Confidentiality (Riservatezza), che consente la divulgazione di informazioni solo a chi è autorizzato;

Pag. 17 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o Integrity (Integrità), che si riferisce all’accuratezza e affidabilità dei dati e alla ragionevole certezza
che non siano stati alterati;
o Availability (Disponibilità), che considera la possibilità che le informazioni siano rese accessibili agli
utenti autorizzati ogni qualvolta ne abbiano necessità.

• Confidentiality – Riservatezza

Garantisce che i dati conservati, trasmessi o ricevuti, siano disponibili solo a chi ha diritto di farlo, per
evitare che persone non autorizzate possano intercettarli e manipolarli. Ciò è consentito da meccanismi
quali la crittografia dei dati, l’autenticazione degli utenti, l’assegnazione dei privilegi, il controllo degli
accessi. Una grande mole di dati è costantemente raccolta da diverse organizzazioni ed enti. Alcuni tipi di
questi dati sono pubblici, ma altri sono “sensibili” perché legati intimamente alla persona o
all’organizzazione e non possono essere divulgati. Queste informazioni sono soggette a minacce quali il
tentativo intenzionale di accedere ai dati o modificarli da parte di utenti non autorizzati; la loro modifica
involontaria a causa di malfunzionamenti del software o di errori nell’assegnazione dei diritti di accesso; la
violazione di norme nazionali o internazionali.

• Integrity – Integrità

I dati, durante il loro ciclo di vita, sono sottoposti a numerose operazioni: l’acquisizione, il trasferimento,
l’archiviazione, la conservazione, l’aggiornamento e recupero. Durante tutte queste fasi non devono essere
alterati in alcun modo, né per malfunzionamento del sistema, né per tentativi intenzionali di
danneggiamento da parte di terzi. Inoltre, devono essere riconducibili a un’origine certa. Le minacce
derivano da errori nei programmi che potrebbero effettuare operazioni illecite sui dati o da vincoli di
integrità carenti o incompleti a livello di database. L’integrità garantisce la consistenza delle informazioni
nei sistemi transazionali come le procedure finanziarie o i sistemi di progetti industriali o di gestione di dati
clinici. L’integrità dei dati tiene conto anche del non ripudio: un utente non deve poter negare di avere
inviato un messaggio. Per esempio, se un utente compra delle azioni e queste hanno un crollo, l’utente non
può sottrarsi alle sue responsabilità negando l’acquisto. Per garantire l’integrità dei dati si ricorre a tecniche
di controllo di validità e convalida dei dati (si pensi ad esempio al checksum) e di hashing. Talvolta si
preferisce allargare il concetto di integrità dei dati alla qualità dei dati che comprende, tra gli altri, anche i
concetti di accuratezza, cioè di rispondenza del dato alla realtà, completezza con tutti gli attributi richiesti,
di validità o credibilità, con la certezza di provenienza, consistenza o coerenza e disponibilità.

• Availability – Disponibilità

È necessario garantire che sistemi e servizi siano sempre accessibili a fronte di qualsiasi richiesta, in
qualsiasi situazione di carico del sistema, nei tempi e nei modi prestabiliti. Per questo i dati devono essere
sempre disponibili in un formato utilizzabile. Le minacce che impediscono la disponibilità possono derivare
da database distribuiti su parti di rete non raggiungibili, da guasti hardware, da disattivazioni del software
per ragioni di manutenzione o aggiornamento, da cadute del DBMS, da attacchi informatici. Per esempio,
attacchi Denial-of-Service (DoS) a un sito Web impediscono agli utenti di accedervi e utilizzarne i servizi
causando gravi disservizi, paralisi e perdite economiche. Per cercare di evitare problemi di disponibilità si
utilizzano sistemi ridondanti e di backup, insieme a una oculata gestione di manutenzione e aggiornamento
di software e hardware. Inoltre, si devono prevedere piani di recupero per affrontare incidenti o un
disastro verificatosi improvvisamente.

Pag. 18 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

• Data Quality

o Timeliness: I dati necessari devono essere disponibili quando servono. Per esempio, se si ha bisogno di
uno specifico dato in uno specifico momento e il dato impiega troppo tempo ad arrivare non sarà più
utile.

o Validity: indica se i dati in uno specifico formato sono validi. per esempio, se richiedo un valore
numerico intero e lo ottengo come float non è considerato valido.

o Consistency: Indica che i dati devono essere consistenti, ossia che non ci siano duplicati e che siano
sempre aggiornati. Per esempio, se in un database abbiamo la lista dei voti di un alunno e la sua media
e cambiamo un voto la media non sarà aggiornata e di conseguenza si avrà una inconsistenza nei dati
del database.

o Integrity: Indica se il dato è integro, cioè che sia accurato e completo e che il dato con cui è in relazione
non sia stato eliminato. Per esempio, una chiave esterna che punta ad un record inesistente
costituirebbe una violazione di questo tipo.

o Completeness: Indica che il dato sia completo, ossia che tutte le parti del dato siano presenti. Per
esempio, se hai bisogno di sapere il nome e cognome di un particolare alunno devi averli entrambi per
che il dato sia completo.

o Accuracy: Indica con quanta accuratezza il dato rappresenta l’informazione a cui si riferisce, per
esempio se si vuole sapere il proprio saldo in banca che è 100€ ma ci viene restituito 5000€ il dato in
questo caso non è accurato.

3.3 - Vulnerabilità, minacce e attacchi


Chi conosce il valore dei dati è anche consapevole dei rischi che una loro manipolazione può causare a
persone o cose. Individuare le vulnerabilità e riconoscere le minacce che incombono sui sistemi di
trasmissione, conservazione ed elaborazione dei dati è il primo passo per proteggere le informazioni. Di
cosa stiamo parlando esattamente?

Pag. 19 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

3.3.1 - Vulnerabilità
“Vulnerabilità” deriva dal latino vulnus, ferita. Vulnerabile è tutto ciò che può essere ferito, attaccato
facilmente, danneggiato, violato. Anche per la sicurezza informatica la vulnerabilità (vulnerability exposure)
è legata ai punti deboli (weakness) di un sistema. Un software male configurato o non aggiornato, un baco
di sistema operativo, una password troppo
debole, una configurazione di rete sbagliata, una
politica di accesso permissiva creano delle falle
nella sicurezza (security hole) attraverso le quali
è facile, per un malintenzionato, attentare
all’integrità, disponibilità e riservatezza dei dati.
Le vulnerabilità espongono i sistemi ad attività
che possono portare a danneggiamenti e perdite
di dati che potrebbero comprometterli più o
meno gravemente a seconda del tipo di
minaccia: dal singolo file danneggiato su un
dispositivo personale a intere basi di dati
compromesse in un data center. Una fonte di
minaccia (antagonista) può essere individuata in
persone o gruppi di individui organizzati che
cercano di compiere azioni mirate al fine di
compromettere le risorse. Oppure può trattarsi
di errori involontari (non antagonisti) o azioni
non corrette da parte di dipendenti o,
addirittura, di disastri naturali. Se il sistema è
vulnerabile, le fonti delle minacce possono
portare a incidenti e situazioni potenzialmente
gravi e dannose. Per esempio, una fonte di
minaccia potrebbe essere un key logger
installato su dispositivo aziendale che permette
a un hacker (threat actor) di impadronirsi delle
password digitate.

Pag. 20 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

3.3.2 - Conoscere le minacce per difendersi


Le minacce cercano di violare i sistemi sfruttando le vulnerabilità che si riferiscono ad ambiti diversi:

o le minacce a livello fisico si riferiscono a tutti i possibili malfunzionamenti che possono verificarsi
nei dispositivi fisici usati per l’elaborazione e per la memorizzazione dei dati. I danni possono essere
causati da eventi naturali o essere dolosi. Possono riguardare le apparecchiature e gli edifici in cui
esse sono custodite;

o le minacce a livello di rete riguardano il malfunzionamento del sistema di trasmissione dei dati, che
rende impossibile l’accesso alle informazioni. Ad esempio: danni ai cavi di trasmissione,
inserimento non autorizzato di nodi nella rete, danni ai sistemi di instradamento (router e switch),
interferenze sulla comunicazione, assenza di crittografia sui dati trasmessi, sniffing (cioè lettura
illegale delle informazioni che viaggiano in rete);

o le minacce al software di sistema (sistema


operativo e DBMS) riguardano eventuali
carenze nella gestione della sicurezza del
sistema operativo, che impattano sulla
sicurezza dei dati. Errori relativi alla
gestione delle periferiche, dei dischi o della
memoria possono influire sul
funzionamento del DBMS, provocando
interruzione di servizio oppure il ripristino
del sistema;
o il fattore umano riguarda i rischi legati
all’intervento umano sul sistema. Questo
è il livello più critico a causa
dell’imprevedibilità dei comportamenti
delle persone. I problemi possono
derivare sia da situazioni accidentali
(errori di assegnazione dei diritti di
accesso, errori di progettazione dei dati,
alterazione dei dati) sia da comportamenti
intenzionali (tentativi di effrazione del
sistema per carpire informazioni e
interromperne l’attività).

3.3.3 - Dove colpisce un attacco


Fino a qualche anno fa un attacco informatico sfruttava le debolezze dei dispositivi fisici: infettava dischetti
e pen drive USB, usava reti Wi-Fi non protette, accedeva via Internet ad applicazioni Web che
permettevano di entrare nei database presenti sui server, usava la posta elettronica per il phishing e.…
recuperava dai cassonetti della spazzatura i tabulati con nomi e numeri telefonici. Le società si difendevano
come potevano: filtravano il traffico utilizzando i firewall e lasciavano i dati non riservati in aree aperte al
pubblico (DMZ, Demilitarized Zone), mantenendo le informazioni private entro il perimetro della rete LAN.
Oggi la situazione è drammaticamente mutata. L’accesso alle risorse di rete da parte del grande pubblico,
l’aumento dei servizi, l’uso massiccio di social network, i sistemi mobili e i “wearable computer”, le
tecnologie di prossimità, la migrazione delle informazioni in cloud, i pagamenti con moneta digitale hanno
aumentato drasticamente rischi e minacce. In particolare, desta allarme la sicurezza legata a Internet of
Pag. 21 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

Things (si veda il Capitolo 9). I dispositivi IoT sono, per loro natura, sistemi connessi. Le informazioni di
automobili, serrature, impianti di irrigazione, pannelli solari, termostati e tostapane transitano in rete. Il
numero enorme di dispositivi e la loro gestione da remoto aumentano esponenzialmente la mole di dati da
controllare e il pericolo di essere vittime di gravi attacchi.

3.3.4 - Classificazione degli attacchi


Il primo passo per difendersi dagli attacchi è la conoscenza delle minacce. Le minacce digitali sono così
tante e in continua evoluzione che classificarle è difficile. A volte, come nel caso dei worm, si tratta di
programmi che girano autonomamente; altre volte, come per i virus, ci troviamo di fronte a software che
sfruttano altri programmi per andare in esecuzione. I malware (virus, worm, trojan), i Keylogger, le bombe
logiche sono attacchi che prevedono l’installazione su un computer non necessariamente collegato in rete.
Backdoor, spyware, adware, denial of service, man in the middle, spam, pop up, trovano terreno fertile
nella rete.

3.3.6 - Le Minacce
o Spam: è un messaggio non richiesto che reclamizza un servizio o un prodotto, e rappresenta la
versione elettronica dei volantini pubblicitari nella posta.

o Phishing: è un tipo di truffa effettuata su Internet attraverso la quale un malintenzionato cerca di


ingannare la vittima convincendola a fornire informazioni personali, dati finanziari o codici di
accesso, fingendosi un ente affidabile in una comunicazione digitale.

o Adware: presenta al suo interno inserzioni pubblicitarie esposte di proposito all'utente, con finalità
commerciali.

o Man in the middle: è una terminologia impiegata nella crittografia e nella sicurezza informatica per
indicare un attacco informatico in cui qualcuno segretamente ritrasmette o altera la
comunicazione tra due parti che credono di comunicare direttamente tra di loro.

o SQL injection: è una tecnica di code injection, usata per attaccare applicazioni che gestiscono dati
attraverso database relazionali sfruttando il linguaggio SQL.

o Spoofing: è un tipo di attacco informatico che impiega in varie maniere la falsificazione


dell'identità, Questa tecnica di attacco può essere utilizzata per falsificare diverse informazioni,
come ad esempio l'identità di un host all'interno di una rete o il mittente di un messaggio.

o Social engineering: nel campo della sicurezza informatica, è lo studio del comportamento
individuale di una persona al fine di carpire informazioni utili.

o Keylogger: è uno strumento hardware o software in grado di effettuare la registrazione della


tastiera di un computer, cioè è in grado di intercettare e catturare segretamente tutto ciò che
viene digitato sulla tastiera senza che l'utente se ne accorga.

o Spyware: è un tipo di software che raccoglie informazioni riguardanti l'attività online di un utente
senza il suo consenso.

Pag. 22 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o Virus: è un software appartenente alla categoria dei malware che, una volta eseguito, infetta dei
file in modo da fare copie di sé stesso, generalmente senza farsi rilevare dall'utente.

o Backdoor: Una backdoor è un metodo, spesso segreto, per passare oltre la normale autenticazione
in un prodotto, un sistema informatico, un crittosistema o un algoritmo.

o Bombe logiche: è un tipo di malware. Consiste in una porzione di codice inserito in un programma
apparentemente innocuo e che resta latente fino al verificarsi di particolari condizioni che
"attivano la bomba", ad esempio in un programma di gestione di un database una bomba logica
può attivarsi al raggiungimento di un certo numero di record salvati oppure quando viene
cancellato un preciso dato.

o Trojan horse: indica un tipo di malware, il trojan nasconde il suo funzionamento all'interno di un
altro programma apparentemente utile e innocuo: l'utente, eseguendo o installando quest'ultimo
programma, in effetti attiva anche il codice del trojan nascosto.

o Worm: è una particolare categoria di malware in grado di autoreplicarsi.

o DoS: indica un malfunzionamento dovuto ad un attacco informatico in cui si fanno esaurire


deliberatamente le risorse di un sistema informatico che fornisce un servizio ai client, ad esempio
un sito web su un web server, fino a renderlo non più in grado di erogare il servizio ai client
richiedenti. (Ping of death, Mail bomb)

o Zero-day exploit: è un attacco che si basa sulla rapidità con cui si sferra un attacco a partire dal
momento in cui viene scoperta una vulnerabilità, confidando nel fatto che la vittima non abbia avuto il
tempo di aggiornare il sistema.

o Attacchi con TCP/IP: I protocolli possono essere sfruttati dagli hacker per sferrare vari tipi di attacchi,
come nella tecnica IP spoofing, che altera il valore del campo “Source Address” di IP per far credere che
il pacchetto sia stato inviato da un host attendibile. Anche Hijacking (“dirottamento di sessione”)
modifica le intestazioni di IP e TCP e dirotta sul sito pirata il visitatore che clicca sul link per raggiungere
una pagina legale. Nel Port scanning vengono inviati una serie di messaggi che vanno a sondare
(probing) quali sono i servizi attivi associati alle porte “ben note”. In un attacco SYN Flood (inondazione
di SYN), un client ostile invia ripetutamente pacchetti TCP con il flag SYN attivo e indirizzi IP falsi per
indurre il server a credere che si tratti di richieste di connessione. Il server, come è giusto, risponde con
Pag. 23 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

i flag SYN/ACK, che tuttavia il client ignora. Il three way handshake non viene completato e la
comunicazione rimane aperta fino alla paralisi del server, incapace di accettare altre richieste.

o Social Engineering: L’ingegneria sociale è la capacità di spacciarsi per quello che non si è, convincendo e
manovrando gli altri per strappare loro informazioni riservate. L’ingegnere sociale riesce a introdursi
nella rete di un’organizzazione ingannando il personale che, ingenuamente, gli fornisce codici e
informazioni. La gente tende a fidarsi delle persone che dimostrano sicurezza e simpatia e che sanno il
fatto loro. Per questa ragione funziona ancora bene il vecchio trucco di spacciarsi per un collega, un
tecnico aziendale esperto o un agente di polizia e ottenere informazioni che non dovrebbero mai
essere divulgate. Per proteggersi occorre essere consapevoli che per questi individui è molto più facile
aggirare gli ostacoli tecnologici ingannando le persone, piuttosto che affrontare la complessità dei
sistemi. In secondo luogo, occorre prendere delle semplici precauzioni: non comunicare la propria
password, chiedere la tessera di riconoscimento, scortare i visitatori, bloccare l’accesso al proprio
computer, ...

Advanced Persistent Threat (APT)

Descrizione teorica
Lo scopo di un attacco APT è quello di ottenere un accesso continuo al sistema. Gli hacker raggiungono
questo obiettivo in una serie di fasi.

o Fase uno: ottenere l'accesso


Gli hacker per eseguire questo tipo di attacco, di solito, ottengono l'accesso attraverso una rete, un file
infetto, posta elettronica indesiderata o con una serie di vulnerabilità per inserire malware nella rete del
loro obbiettivo. I metodi di attacco spesso richiedono il coinvolgimento attivo di qualcuno all'interno
dell'organizzazione per poter entrare effettivamente nella parte del sistema che interessa. Ciò non significa
che qualcuno del personale partecipi consapevolmente all'attacco.

o Fase due: stabilire un punto di appoggio


I cybercriminali installano malware che consente loro di creare una rete di backdoor e tunnel che possono
usare per spostarsi nei sistemi senza essere individuati. Nel malware sono spesso utilizzate tecniche come
la riscrittura del codice che consentono agli hacker di nascondere le proprie tracce.

o Fase tre: accedere a livelli più profondi


Una volta entrati nel sistema, gli hacker utilizzano tecniche come, ad esempio, la violazione delle password
per ottenere i diritti di amministratore, in modo da poter controllare una parte maggiore del sistema e
raggiungere livelli di accesso ancora superiori.

o Fase quattro: spostarsi lateralmente


Arrivati più in profondità all'interno del sistema e in possesso dei diritti di amministratore, gli hacker
possono muoversi come vogliono. Possono anche tentare di accedere ad altri server e ad altre parti sicure
della rete.

o Fase cinque: guardare, imparare e rimanere


Dall'interno del sistema, gli hacker riescono a capirne pienamente le funzioni, a conoscere le sue
vulnerabilità e a raccogliere tutte le informazioni che vogliono.

Possono tentare di mantenere questo processo in atto potenzialmente all'infinito o ritirarsi dopo aver
raggiunto un obiettivo specifico. Spesso lasciano una porta aperta per poter accedere nuovamente al

Pag. 24 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

sistema in futuro. Inoltre, molte tradizionali difese informatiche, quali antivirus e firewall, non sempre
riescono a proteggere i sistemi da questi tipi di attacchi.

Esempio reale
Alcuni esempi di attacchi APT a livello mondiale da parte di organizzazioni di hacker sono:
➢ ad esempio, un attacco APT ha messo fuori uso il programma nucleare iraniano;
➢ un altro e l’a attaccato l’ufficio di gestione del personale del governo statunitense, che ha
compromesso più di quattro milioni di record del personale degli Stati Uniti;
➢ APT34 un gruppo di hacker ha preso di mira organizzazioni governative e società finanziarie,
energetiche, chimiche e di telecomunicazioni in Medio Oriente.

Come proteggersi
In quanto minacce avanzate, le APT sono molto difficili da evitare e risolvere.

Esistono però delle soluzioni di buon senso che, se implementate correttamente, possono rendere la vita
estremamente difficile ai nostri avversari.

Ovviamente la presenza di una robusta strategia di sicurezza, una revisione periodica delle policy, delle
procedure, delle linee guida, sono prerequisiti fondamentali per poter poi implementare alcuni
accorgimenti come ad esempio:

o Logging: ossia garantire l’accesso ai sistemi per i vari team di sicurezza al fine di poter risolvere il
problema.
o Account Hardening: ossia vanno limitati i privilegi degli account degli utenti e degli account di servizio, i
privilegi amministrativi non dovrebbero mai essere necessari per effettuare lavori di routine.
o Endpoint Hardening: ossia impostare dei criteri di sicurezza per proteggere gli utenti da codice
malevolo che potrebbero ricevere via e-mail o come documento.

3.4 - Buffer overflow


Il “buffer overflow” è una debolezza che afferisce alla gestione della memoria e che si riscontra in un
programma quando, non controllando la dimensione dell’input, si tenta di scrivere oltre la dimensione
massima di memoria consentita sovrascrivendo aree di memoria adiacenti al buffer, con conseguenze
devastanti. Per decenni è stato il flagello delle applicazioni scritte in linguaggio C ed è considerato un
“classico”; il mancato controllo sulla dimensione di un dato da scrivere in un buffer (per esempio un array)
potrebbe portare a gravi malfunzionamenti o paralisi del sistema.

3.4.2 - Validità dell’input


È buona norma controllare sempre il valore di un dato di input! L’esempio che segue mostra uno stralcio di
programma in Java che calcola il costo totale di bottiglie di spumante che hanno un prezzo singolo di 20
euro. Il programma non controlla il numero immesso in input: se un utente malintenzionato dovesse
fornire una quantità negativa, anziché addebitato, il costo potrebbe essergli accreditato.

3.4.3 - SQL Injection


La semplicità dei comandi SQL, insieme all’attrattiva che un database esercita su un malintenzionato (il
database contiene, in genere, tutti i dati interessanti per un sistema), offre il fianco ad attacchi tra i più
comuni: basta conoscere un po’ di SQL e sperare che chi ha realizzato il sito Web non abbia fatto bene il
proprio lavoro, ovvero non abbia controllato a dovere il tipo dell’input.
Pag. 25 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o Come proteggersi?

Proteggersi dall’SQL Injection è abbastanza semplice: la regola aurea è quella di controllare sempre il tipo di
dato che ci si aspetta e non “bersi” l’input senza controllo. Per esempio, nel secondo caso che abbiamo
appena visto, il tipo di dato del parametro idp presente nella querystring deve essere sicuramente un
numero intero, in quanto così definito nel database: è una chiave primaria artificiale, nel nostro caso. Sarà
quindi facile accorgersi del tentativo di corruzione dell’input semplicemente controllando che il valore di
$idp sia effettivamente un numero intero e che ricada nel range accettabile per i nostri prodotti, per
esempio possa variare solo nell’intervallo [1, 3];

3.4.4 - OS Command Injection


L’esempio che segue mostra uno stralcio di programma Java che legge il nome di uno script (nome_shell.sh)
e lo esegue. Un malintenzionato potrebbe prenderne il controllo ed eseguire comandi arbitrari del sistema
operativo (OS).

3.4.5 - Controllo dei form in PHP


Il Cross-site scripting (XSS) è una vulnerabilità che permette a un hacker di inserire script dannosi nelle
pagine Web e app, per inserire malware sui browser e raccogliere informazioni.

3.6 - Progettare la sicurezza


Il problema della sicurezza deve essere affrontato a livello manageriale definendo un adeguato piano, che
preveda opportune politiche di sicurezza con un impatto nell’ambito organizzativo prima che in quello
tecnico. Non basta installare software, crittografare i messaggi, dotarsi di sofisticate apparecchiature che
richiedono alti investimenti, se poi gli impiegati scrivono le password su foglietti volanti lasciati sotto la
tastiera! È necessario progettare una politica che includa la formazione del personale e definisca nei
dettagli ruoli e procedure da adottare in azienda. Occorre dotarsi di una metodologia ben precisa e
strutturata, ponendosi domande in merito a che cosa potrebbe accadere, che cosa è meglio proteggere e
che cosa fare nel caso in cui si apra una breccia nel sistema di sicurezza. Questa metodologia sfocia in un
documento programmatico che prescrive in modo analitico quali sono i problemi che si intendono
affrontare e come si intende risolverli. In particolare, devono essere considerati alcuni fattori strategici:

o perché adottare un piano di sicurezza


o quali sono le parti coinvolte
o quali sono i comportamenti consentiti/proibiti
o quali metodi di autenticazione (username, password, sistemi biometrici, smart card, ...) sono
utilizzati
o chi può accedere alle risorse aziendali
o quali informazioni vanno registrate
o come mantenere traccia degli eventi
o come verificare lo stato di sicurezza della rete
o come gestire eventuali episodi di violazione della sicurezza del sistema informatico.

Il documento deve poter essere modificato all’occorrenza e comunicato al personale coinvolto, che è
tenuto a rispettare le procedure relative ai casi di emergenza: che cosa fare sotto attacco, chi contattare,
quali informazioni comunicare all’esterno, come effettuare il ripristino dei sistemi ecc.

Pag. 26 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

3.6.1 - Politiche di sicurezza


La progettazione del piano di sicurezza prevede la valutazione del rischio e la pianificazione degli obiettivi
secondo il modello Plan-Do-Check-Act, costituito da quattro fasi che si ripetono ciclicamente con l’obiettivo
di migliorare la qualità del sistema:

o Plan (Pianificazione): permette di identificare il problema, analizzarlo, individuarne le cause e


pianificare le azioni correttive. È in questa fase che si pianificano gli interventi in modo razionale
mantenendo traccia del processo decisionale, si dispongono gli strumenti per verificare il
raggiungimento degli obiettivi e si predispone un piano finanziario. Durante questa fase è
necessario considerare:
▪ Analisi del sistema: viene posta attenzione alle risorse disponibili e ai relativi diritti di
accesso.
▪ Politiche di sicurezza (Security Policy): vengono definite regole e procedure a cui
un’organizzazione deve attenersi per proteggere e controllare le proprie risorse e
informazioni.
▪ Piano di sicurezza (Security Plan): vengono implementate le politiche definite nel
documento Security Policy. Si può verificare il caso in cui alcune falle del sistema non
vengano completamente valutate o per errate considerazioni o per un basso rapporto
costo/rischio.
▪ Piano di ripristino (Disaster Recovery Plan): vengono definiti le procedure e i
comportamenti da adottare nel caso di attacco al sistema o di danni causati da eventi
naturali.
o Do (Implementazione): si attuano le azioni che sono state pianificate e si attivano i test di controllo.
o Check (Monitoraggio e revisione): si verificano i risultati delle azioni intraprese confrontandoli con
gli obiettivi attesi.
o Act (Mantenimento e miglioramento): permette di rilevare e controllare i risultati e di consolidare
le azioni positive, introducendo fattori correttivi necessari per il miglioramento. In particolare,
viene effettuato un controllo (Security Audits), che prende in considerazione il livello di sicurezza in
corso, relativamente a quello che accade rispetto a quello che potrebbe accadere, e a come si
comportano gli utenti rispetto a come si dovrebbero comportare.

Pag. 27 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

3.6.2 - Gli standard di riferimento


I dati sensibili che tutte le organizzazioni detengono e devono gestire nei loro database rappresentano uno
dei maggiori fattori di rischio, poiché sono soggetti ad attacchi e incidenti che possono causare perdite o
violazione di informazioni. La famiglia di standard ISO/IEC 270001, nota anche come serie ISO 27000,
comprende un insieme di norme pratiche tese a migliorare la gestione e la sicurezza delle informazioni
aziendali.

3.7 - General Data Protection Regulation (GDPR): la privacy e la protezione dei dati personali
Il GDPR (anche detto “nuovo codice sulla privacy”) è operativo da maggio 2018 in tutti gli stati dell’UE e ha
rappresentato un passo decisivo anche per i gestori di sistemi informatici. Contiene una serie di importanti
novità soprattutto per le aziende; è deciso, infatti, che l’Autorità di vigilanza europea riguarderà anche le
imprese con sede estera e operanti nell’Unione Europea. Il Regolamento si rivolge alle imprese che operano
nel mercato unico e trattano dati di cittadini europei e ha effetto anche se le aziende che hanno i dati
hanno sede fuori EU. È importante evidenziare che i principi generali sottolineano che il regolamento è
inteso a contribuire alla realizzazione di uno spazio di libertà, sicurezza e giustizia e di un’unione
economica, al progresso economico e sociale. È proprio in questa ottica di libertà della persona che ha
senso leggere e interpretare le indicazioni e gli articoli del GDPR.

3.7.1 - Principi
Riportiamo una sintesi di alcune delle considerazioni iniziali del Regolamento stesso del nostro Garante per
la privacy per comprendere il contesto e le motivazioni da cui è nato il regolamento.

o La rapidità dell’evoluzione tecnologica e la globalizzazione comportano nuove sfide per la


protezione dei dati personali. La portata della condivisione e della raccolta di dati personali è
aumentata in modo significativo. La tecnologia attuale consente alle imprese di utilizzare dati
personali nello svolgimento delle loro attività. Sempre più spesso, le persone fisiche rendono
disponibili al pubblico su scala mondiale informazioni personali che le riguardano.
o Le persone fisiche possono essere associate a identificativi online prodotti dai dispositivi, dalle
applicazioni, dagli strumenti e dai protocolli utilizzati, quali gli indirizzi IP, marcatori temporanei
(cookies) o identificativi di altro tipo, quali i tag di identificazione a radiofrequenza. Tali identificativi
possono lasciare tracce che, in particolare se combinate con identificativi univoci e altre
informazioni ricevute dai server, possono essere utilizzate per creare profili delle persone fisiche e
identificarle.
o I minori meritano una specifica protezione relativamente ai loro dati personali, in quanto possono
essere meno consapevoli dei rischi, delle conseguenze e dei loro diritti in relazione al trattamento
dei dati personali. In particolare, riguardo l’utilizzo dei dati personali dei minori a fini di marketing

Pag. 28 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o Negli archivi automatizzati, la limitazione del trattamento dei dati personali dovrebbe essere
assicurata mediante dispositivi tecnici in modo tale che i dati personali non siano sottoposti a
ulteriori trattamenti e non possano più essere modificati. Il sistema dovrebbe indicare chiaramente
che il trattamento dei dati personali è stato limitato.

3.7.2 - Definizioni
Di seguito invece diamo alcune definizioni tratte dall’Art. 4 del regolamento stesso:

o «dato personale»: qualsiasi informazione riguardante una persona fisica identificata o identificabile
(«interessato»); si considera identificabile la persona fisica che può essere identificata,
direttamente o indirettamente, con particolare riferimento a un identificativo come il nome, un
numero di identificazione, dati relativi all’ubicazione, un identificativo online o a uno o più elementi
caratteristici della sua identità fisica, fisiologica, genetica, psichica, economica, culturale o
sociale;
o «trattamento»: qualsiasi operazione o insieme di operazioni, compiute con o senza l’ausilio di
processi automatizzati e applicate a dati personali o insiemi di dati personali, come la raccolta, la
registrazione, l’organizzazione, la strutturazione, la conservazione, l’adattamento o la modifica,
l’estrazione, la consultazione, l’uso, la comunicazione mediante trasmissione, diffusione o qualsiasi
altra forma di messa a disposizione, il raffronto o l’interconnessione, la limitazione, la cancellazione
o la distruzione;
o «profilazione»: qualsiasi forma di trattamento automatizzato di dati personali consistente
nell’utilizzo di tali dati personali per valutare determinati aspetti personali relativi a una persona
fisica, in particolare per analizzare o prevedere aspetti riguardanti il rendimento professionale, la
situazione economica, la salute, le preferenze personali, gli interessi, l’affidabilità, il
comportamento, l’ubicazione o gli spostamenti di detta persona fisica;
o «titolare del trattamento»: la persona fisica o giuridica, l’autorità pubblica, il servizio o altro
organismo che, singolarmente o insieme ad altri, determina le finalità e i mezzi del
trattamento dei dati personali; quando le finalità e i mezzi di tale trattamento sono determinati dal
diritto dell’Unione o degli Stati membri, il 2Sicurezza di un sistema informatico titolare del
trattamento o i criteri specifici applicabili alla sua designazione possono essere stabiliti dal diritto
dell’Unione o degli Stati membri;
o «responsabile del trattamento»: la persona fisica o giuridica, l’autorità pubblica, il servizio o altro
organismo che tratta dati personali per conto del titolare del trattamento;
o «destinatario»: la persona fisica o giuridica, l’autorità pubblica, il servizio o un altro organismo che
riceve comunicazione di dati personali, che si tratti o meno di terzi. Tuttavia, le autorità pubbliche
che possono ricevere comunicazione di dati personali nell’ambito di una specifica indagine
conformemente al diritto dell’Unione o degli Stati membri non sono considerate destinatari; il
trattamento di tali dati da parte di dette autorità pubbliche è conforme alle norme applicabili in
materia di protezione dei dati secondo le finalità del trattamento;
o «consenso dell’interessato»: qualsiasi manifestazione di volontà libera, specifica, informata e
inequivocabile dell’interessato, con la quale lo stesso manifesta il proprio assenso, mediante
dichiarazione o azione positiva inequivocabile, che i dati personali che lo riguardano siano oggetto
di trattamento;
o «violazione dei dati personali»: la violazione di sicurezza che comporta accidentalmente o in modo
illecito la distruzione, la perdita, la modifica, la divulgazione non autorizzata o l’accesso ai dati
personali trasmessi, conservati o comunque trattati;
o «dati genetici»: i dati personali relativi alle caratteristiche genetiche ereditarie o acquisite di una
persona fisica che forniscono informazioni univoche sulla fisiologia o sulla salute di detta persona
Pag. 29 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

fisica, e che risultano in particolare dall’analisi di un campione biologico della persona fisica in
questione;
o «dati biometrici»: i dati personali ottenuti da un trattamento tecnico specifico relativi alle
caratteristiche fisiche, fisiologiche o comportamentali di una persona fisica che ne consentono o
confermano l’identificazione univoca, quali l’immagine facciale o i dati dattiloscopici;
o «dati relativi alla salute»: i dati personali attinenti alla salute fisica o mentale di una persona fisica,
compresa la prestazione di servizi di assistenza sanitaria, che rivelano informazioni relative al suo
stato di salute;

In generale il Regolamento identifica tre tipi di dati personali:

o Identificativi: informazioni che possono identificare una persona. A quelli classici quali il nome,
cognome, indirizzo, caratteristiche fisiche, si aggiungono informazioni quali l’indirizzo IP, e-mail,
geolocalizzazione, cookie.
o Sensibili: dati che possono avere effetti discriminatori nei confronti di persone fisiche sulla base
della razza o dell’origine etnica, delle opinioni politiche, della religione o delle convinzioni personali,
dell’appartenenza sindacale, dello stato di salute o dell’orientamento sessuale.
o Super sensibili: dati genetici o biometrici.

3.7.3 - Responsabilizzazione
Particolare rilevanza è data al principio di “responsabilizzazione” da parte del titolare dei dati in merito ad
azioni sia di prevenzione, sia di gestione di eventuali perdite di dati.

Sono richiesti continui controlli sulla gestione dei dati e occorre dimostrare di aver adottato misure
giuridiche, organizzative e tecniche per la protezione dei dati personali.

Tra le misure tecniche previste troviamo:

o pseudonimizzazione e cifratura dei dati;


o adozione di procedure;
o sistemi per assicurare la riservatezza, integrità, disponibilità e resilienza dei sistemi e dei servizi che
trattano i dati personali (resilienza intesa quale Business Continuity protesa ad assicurare la
continuità del servizio e a ripristinare tempestivamente la disponibilità e l’accesso dei dati in caso di
incidente fisico o tecnico (Disaster recovery).

L’utente deve fornire il consenso al trattamento dei dati in modo esplicito e tracciabile; per questo motivo
le organizzazioni sono tenute ad esprimere con chiarezza le finalità per cui è richiesto il consenso che deve
essere espresso in forma esplicita per ciascuna delle finalità. Il consenso può essere revocato nel caso
venga modificata la finalità o il metodo di trattamento Nel caso si verifichi una violazione dei dati personali,
questa deve essere notificata immediatamente: per questo scopo deve essere mantenuto un Registro delle
Attività di trattamento effettuate inoltre necessario Nominare il Data Protection Officer (DPO),
obbligatorio per le pubbliche Amministrazioni, che ha un ruolo di garante, con il compito di controllare,
gestire e valutare il processo di trattamento dei dati e far rispettare la normativa Il Regolamento inoltre
specifica il diritto alla portabilità dei dati come possibilità per il cittadino di poter trasferire i dati da un
titolare del trattamento a un altro; infatti «... L’interessato ha il diritto di ricevere in un formato strutturato,
di uso comune e leggibile da dispositivo automatico i dati personali che lo riguardano forniti a un titolare
del trattamento e ha il diritto di trasmettere tali dati a un altro titolare del trattamento senza impedimenti
da parte del titolare del trattamento cui li ha forniti...». Inoltre, il cittadino deve poter ottenere i propri
dati sempre e in formato leggibile e trasferibile. Privacy e sicurezza sono due facce della stessa medaglia,
Pag. 30 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

ma non è facile farle convivere. Ciascuno di noi vorrebbe lavorare e navigare in modo sicuro, protetto da
attacchi di malintenzionati e, nello stesso tempo, essere tutelato nella propria vita privata. Purtroppo, non
sempre è possibile ottenere completamente entrambe le cose. Un eccesso di privacy rende complesso
indagare, per esempio, su movimenti bancari sospetti o su compravendite al limite del legale. D’altra parte,
ogni nostra azione è convertita in dato digitale, visibile e misurabile, e da esso è possibile risalire ai nostri
gusti ed inclinazioni con la possibilità di manipolazioni e condizionamenti commerciali e politici come la
storia recente ha dimostrato. Per questo un grande sforzo viene costantemente fatto da numerose
organizzazioni di consumatori che chiedono chiarezza e garanzie sull’utilizzo dei dati raccolti.

Modulo 4
Unità 4 – Volume 3 (P. 131)
4.1 – La crittografia
Per proteggere i dati da un utilizzo improprio e prevenire azioni di furto, spionaggio o sabotaggio occorrono
contromisure adeguate. Si devono prevedere azioni che tutelino la riservatezza dei dati e la privacy, che
garantiscano la loro integrità, assicurino la loro provenienza, non ne permettano il ripudio e li rendano
sempre disponibili. Varie sono le contromisure che si possono adottare: si possono controllare gli accessi
con un firewall o proteggere i dati in transito utilizzando protocolli sicuri o applicare tecniche di codifica e di
crittografia per conservare i dati integri e offuscare le informazioni. In particolare, la crittografia è la
disciplina che studia le tecniche matematiche per rendere sicuri i dati in termini di confidenzialità, integrità,
autenticazione e non-ripudio. Gli strumenti utilizzati sono cifrari e funzioni hash.

4.1.1 - Obbiettivi della crittografia


Il termine “crittografia” deriva dal greco kryptós, che significa “nascosto”, e graphía, che significa
“scrittura”. Scopo della crittografia è mantenere segrete le informazioni. Crittografare (o cifrare o crittare o
criptare) significa trasformare il messaggio originale comprensibile (testo in chiaro) in un messaggio diverso
(messaggio cifrato), applicando degli algoritmi di cifratura. È un po’ come quando da bambini ci si divertiva
a inventare degli alfabeti in codice per comunicare in segreto con i nostri amici. Era semplice fare una
sostituzione, cioè assegnare a ogni lettera dell’alfabeto un numero: A = 01, B = 02, C = 03 e così via. La
parola “CIAO”, criptata con questo metodo, diventava: “03 09 01 13”. In questo caso, l’algoritmo di
cifratura, cioè il fatto che ogni lettera è sostituita con un’altra, era noto a tutti; ciò che doveva rimanere
segreto era la chiave di cifratura, cioè il numero associato a ogni lettera. Naturalmente questi erano metodi
“primitivi” e facilmente decifrabili, ma costituivano a tutti gli effetti un metodo crittografico. La crittografia
è un’importante contromisura che permette di affrontare molti problemi tra cui:

o la segretezza (o confidenzialità), che consiste nel fare in modo che utenti non autorizzati non
possano intercettare informazioni o comunque non possano comprenderle;
o l’autenticazione, che permette di assicurare l’identità degli interlocutori in una comunicazione,
garantendo che nessuno possa inviare/ricevere messaggi o eseguire operazioni spacciandosi per
qualcun altro;
o l’affidabilità dei documenti, che consente di identificare in modo certo l’autore di un documento o
di un messaggio e di garantire che il documento non venga modificato da altri (integrità), né possa
essere rinnegato dal mittente (non ripudiabilità).

Pag. 31 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

4.1.3 - Crittografia simmetrica a chiave segreta


I moderni algoritmi di crittografia si suddividono in due categorie: algoritmi a chiave segreta (chiave
simmetrica) e algoritmi a chiave pubblica (chiave asimmetrica). Gli algoritmi a chiave segreta sono tali per
cui la decodifica avviene utilizzando la stessa chiave usata per la codifica (chiave simmetrica): preso un
messaggio m, questo viene crittografato (C) con un algoritmo usando una chiave k, ottenendo il messaggio
crittografato C(m). Questo viene decriptato (D) usando lo stesso algoritmo con la stessa chiave k, ottenendo
il messaggio originale:

Dk (Ck(m)) = m

I due interlocutori dispongono della stessa chiave segreta privata, che serve loro per crittare e decrittare il
messaggio. La criticità degli algoritmi a chiave simmetrica sta nello scambio della chiave tra gli interlocutori
senza che questa venga intercettata; sebbene sia vero che ci si può scambiare la chiave vedendosi di
persona o tramite un emissario di fiducia, è anche vero che questo vale solo in un ambito privato o limitato
a pochi interlocutori. In un ambiente pubblico, come quello di Internet, questo è un reale problema. Infatti,
la crittografia viene usata proprio per inviare dati in rete senza che questi possano essere intercettati, ma
se poi occorre inviare la chiave per poter decifrare, allora il problema dell’invio di dati sicuri si ripropone
relativamente alla chiave.

4.1.4 - Crittografia asimmetrica a chiave pubblica


Il problema dello scambio delle chiavi su un canale che per sua natura non è sicuro è stato affrontato
intorno alla metà del secolo scorso; il 1976 è stato un anno importante nella storia della crittografia
moderna, perché ha visto l’introduzione, da parte di Diffie e Hellman, della crittografia asimmetrica a
chiave pubblica, che ha avuto un impatto enorme e ha cambiato radicalmente il modo di comunicare in
sicurezza. Gli algoritmi a chiave pubblica sono tali per cui le chiavi usate per cifrare e decifrare il messaggio
sono diverse. Ogni utente ha una coppia di chiavi: una pubblica che può e deve essere diffusa, e una privata
usata per decifrare il messaggio. La coppia di chiavi è calcolata con un opportuno algoritmo e il fondamento
della sicurezza del metodo è che sia difficilissimo ricavare la chiave privata dalla chiave pubblica. La chiave
di cifratura è la chiave pubblica (kpb); la segretezza è garantita dalla chiave di decodifica che deve essere
nota solo al destinatario del messaggio (chiave privata, kpr). Gli algoritmi sono pubblici. Si noti che ogni
chiave privata è associata a una determinata chiave pubblica, per cui solo chi è in possesso della chiave
privata è in grado di comprendere un messaggio crittografato con la chiave pubblica associata:

Dkpr (Ckpb(m) = m

Il metodo a chiave pubblica più diffuso è noto come RSA (dalle iniziali dei suoi inventori: Rivest, Shamir,
Adleman) ed è fondato su alcune proprietà dei numeri primi, in particolare sulla teoria matematica della
scomposizione in fattori primi di un numero. Questo algoritmo ha la caratteristica di usare una coppia di
chiavi correlate, una privata e una pubblica, generate in modo tale che sia impossibile ricavare una chiave
Pag. 32 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

dall’altra. La chiave pubblica viene distribuita a chiunque ne sia interessato. Quella privata è posseduta solo
dal destinatario. Chiunque voglia comunicare in modo sicuro con il destinatario deve cifrare il messaggio
con la chiave pubblica di quest’ultimo. Solo costui, una volta ricevuto il messaggio cifrato, applicando la
propria chiave privata, sarà in grado di decifrarlo.

4.1.5 - L’algoritmo RSA


Di seguito presentiamo i passi elementari dell’algoritmo RSA, pubblicato nel 1978 e basato sul teorema di
Fermat-Eulero.

o Determinazione della chiave pubblica e della chiave privata

▪ Scegliere due numeri p, q primi molto grandi (almeno 300 cifre); la dimensione dei numeri
è fondamentale perché l’algoritmo è fondato sul fatto che, una volta moltiplicati tra loro, è
praticamente impossibile dal prodotto ricavare i fattori.
▪ Determinare n = p · q
▪ Determinare m = (p – 1) · (q – 1)
▪ Determinare un numero e che sia primo rispetto a m (che cioè non abbia divisori in comune
con m)
▪ Determinare k tale che [(e · k) mod m] = 1 k -> (m · h + 1) / e con h intero positivo
▪ La chiave pubblica (Kpb) è data dalla coppia (e, n).
▪ La chiave privata (Kpv) è data dalla coppia (k, n).
o Cifratura del messaggio
Il messaggio viene cifrato usando la chiave pubblica del destinatario. Per evitare attacchi basati
sull’analisi delle frequenze, il messaggio, convertito in binario, è diviso in blocchi di g bit, con g tale
che 2g < m. Ogni blocco è cifrato applicando la chiave pubblica. Se M è il blocco di messaggio, il
blocco cifrato C è:
C = (Me mod n)

o Decifratura del messaggio


Il messaggio ricevuto viene decifrato dal destinatario applicando la sua chiave privata. Ogni blocco
è decifrato applicando la chiave privata. Se C è il blocco cifrato, il blocco decifrato M è:

Pag. 33 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

M = (Ck mod n)

Rispetto agli algoritmi a chiave simmetrica, gli algoritmi a chiave asimmetrica sono molto più
complessi e onerosi, e richiedono più risorse di calcolo per essere processati. È per questo motivo
che molte applicazioni utilizzano un algoritmo a chiave pubblica per scambiare una chiave segreta
da utilizzare durante la sessione (chiave di sessione). In questo modo si ha l’ulteriore vantaggio che
la chiave cambia a ogni sessione.

4.2 - Autenticazione e affidabilità


4.2.1 - Controllo degli accessi
L’autenticazione degli utenti rientra nel più vasto problema del controllo degli accessi, cioè determinare chi
può entrare o uscire da un ambiente o da un sistema e cosa gli è consentito fare. Il controllo degli accessi
può essere di due tipi: fisico e logico. Il controllo fisico comprende tutte quelle infrastrutture e meccanismi
che proteggono fisicamente il perimetro di un ambiente, monitorando e rilevando infrazioni (serrature più
o meno intelligenti, videocamere, personale di sicurezza, allarmi antintrusione, porte blindate ecc.). Il
controllo logico degli accessi impone soluzioni hardware e software per impedire accessi non autorizzati a
risorse, sistemi e reti. Queste soluzioni si basano su tecniche e protocolli che garantiscono:

o l’identificazione, cioè la facoltà di stabilire l’identità di una persona o di una cosa;


o l’autenticazione, cioè la capacità di verificare con certezza l’identità di un utente;
o l’autorizzazione, cioè la definizione di una politica che specifichi i privilegi per accedere a una
risorsa.

Per esempio, un insegnante che passa in un corridoio di una scuola è identificato dal cartellino di
riconoscimento, con nome (ID) e foto. Quando accede alla fotocopiatrice l’insegnante deve inserire nome e
password: il sistema verifica l’identità, lo autentica, confermandone la validità, e autorizza la richiesta. In
generale il processo di autenticazione riguarda tutti gli attori convolti. Per esempio, quando ci connettiamo
a un server per effettuare un’operazione di home banking, l’utente deve essere sicuro che il server a cui si è
collegato sia effettivamente la società di credito, ma anche la banca deve essere sicura che l’utente sia chi
dice di essere.

4.2.2 - Autenticazione degli utenti


L’associazione tra un soggetto e un’attività che può svolgere o una risorsa a cui può accedere avviene
tramite un identificatore univoco che spesso consiste nel suo nome o nella sua e-mail, in un PIN numerico o
in una caratteristica biologica: l’impronta digitale, la retina, la voce, il volto ecc. Il metodo più comune
utilizzato è quello di associare a un utente un nome (userid) e una password: il nome dichiara l’identità, la
password ne prova l’autenticità. Si tratta di stringhe alfanumeriche che vanno ricordate a memoria e, nel
caso della password, devono essere mantenute nascoste. In particolare, per quanto riguarda la scelta della
password, che è l’elemento più critico, esistono vari accorgimenti e regole per renderla più sicura come
obbligare l’utente a inserire un numero minimo di caratteri o prevedere dei caratteri speciali. Purtroppo,
però non sempre è sufficiente. Basti pensare a come gli utenti, per pigrizia o ignoranza, mettano in atto
comportamenti rischiosi come riutilizzare la stessa password su diversi sistemi o creare password deboli e
prevedibili. Il solo uso di nome utente e password costituisce un metodo di autenticazione “debole”, perché
la password può essere facilmente indovinata o rubata.

Pag. 34 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

Un miglioramento sostanziale può essere ottenuto combinando tra loro tecniche diverse che usano
tecnologie differenti:

Ciascuna di queste tre modalità, da sola, costituisce una forma di autenticazione debole. Per ottenerne una
forte occorre usare in contemporanea almeno due dei tre fattori di autenticazione. Nel caso di pagamenti
elettronici, ad esempio, si usano due fattori di autenticazione: una carta di credito (qualcosa che hai) e il
PIN (qualcosa che sai) per rendere più complessa l’eventuale operazione di intercettazione dei dati.

4.2.3 - La firma digitale


Le soluzioni viste precedentemente risolvono in parte il problema dell’autenticazione. Rimane aperto il
modo con cui le chiavi vengono distribuite agli utenti o vengono scambiate tra loro. Per ora ci limiteremo
ad affrontare il problema dell’affidabilità dei documenti per sapere in modo certo chi è l’autore di un
documento o di un messaggio, esattamente come se fosse firmato, e per garantire che esso non sia
stato modificato da qualcun altro (integrità), né possa essere disconosciuto dal mittente (non
ripudiabilità).Una soluzione ai problemi dell’autenticazione e dell’affidabilità è data dalla firma digitale
(digital signature o firma elettronica), che in Italia ha valore legale dal 1997.La firma digitale utilizza
l’algoritmo RSA a chiave pubblica e consiste nel cifrare il documento da inviare con la propria chiave
privata; chi lo riceve può decifrare con la chiave pubblica associata per essere certo dell’identità del
mittente.

La firma digitale non garantisce la segretezza del messaggio perché chiunque abbia la chiave pubblica del
mittente può leggerlo. Nel caso fosse necessario garantire sia la segretezza sia l’autenticazione, il mittente
dovrebbe:

o crittare il messaggio con la propria chiave privata (per l’autenticità);


o crittare il messaggio firmato con la chiave pubblica del destinatario (per la segretezza);

e il destinatario dovrebbe:

o decrittare il messaggio con la propria chiave privata (per la segretezza);


o decrittare il messaggio con la chiave pubblica del mittente (per l’autenticità).

Crittografare l’intero messaggio è, nella pratica, un processo oneroso e il tempo impiegato potrebbe essere
così lungo da non essere accettabile. Per questo motivo dal messaggio originale viene estratto un riassunto
(digest) che viene crittato e costituisce la firma: si applicano delle funzioni di hash al messaggio originale,
ottenendo una stringa di caratteri molto più piccola del file originale; poiché il riassunto è una stringa di
caratteri che dipende dal messaggio, il riassunto firmato identifica in modo univoco il documento, il suo
contenuto e anche il mittente. Si genera cioè l’impronta che cifrata costituisce la firma del messaggio! Per
questo motivo la firma digitale garantisce anche l’affidabilità dei documenti.

Pag. 35 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

L’algoritmo utilizzato per firmare digitalmente un documento trasmesso in chiaro su un canale di


comunicazione è il seguente:

o dal testo si ricava il digest


o il digest viene cifrato con la chiave privata del mittente, a garanzia dell’autenticità
o il testo in chiaro insieme alla firma (digest cifrato) sono trasmessi sul canale
o il ricevitore, dal testo in chiaro, ricalcola a sua volta il digest e lo confronta con quello estratto dalla
firma, ricavata con la chiave pubblica del mittente
o se i due digest risultano uguali, il documento è integro e la firma autentica.

In questo caso il destinatario è in grado di verificare l’identità del mittente. Il mittente non può
disconoscersi, avendolo firmato e, inoltre, c’è la certezza che nessuno abbia falsificato o modificato il
documento.

4.2.4 - I certificati digitali e le autorità di certificazione


La firma digitale autentica un messaggio, ma chi garantisce che una chiave pubblica è effettivamente
associata a un certo utente? È necessario un garante. Il certificato digitale (Digital ID) è il documento che
assicura l’autenticazione della chiave pubblica, cioè conferma che una chiave appartiene veramente al suo
proprietario. I certificati digitali sono emessi da autorità di certificazione (Certification Authority – CA),
strutture incaricate del rilascio dei certificati e testimoni credibili della veridicità dei dati contenuti. A fronte
di una richiesta da parte di una persona, ente o sito Web, le autorità di certificazione ne controllano
l’identità ed emettono il certificato che verrà conservato in un registro pubblico con tutti i certificati digitali
emessi e con quelli revocati.

Tra le maggiori società al mondo che si occupano della firma digitale, delle chiavi pubbliche e del rilascio dei
certificati ci sono Verisign (Symantec), AT&T, American Express. In Italia gli enti certificatori sono quelli
collegati a organizzazioni statali, grossi gruppi bancari e qualche provider. I certificati legano il nome del
titolare (una persona, una società, un dispositivo) alla sua chiave pubblica utilizzata per le funzioni di
cifratura/decifratura e autenticazione, e sono analoghi alla carta di identità che il Comune (ente
certificatore) rilascia al cittadino, garantendone l’identità. Un certificato è firmato con la chiave privata
dell’autorità di certificazione e la sua struttura, conforme allo standard X.509, include tra l’altro le seguenti
informazioni:

Pag. 36 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o il numero di serie;
o informazioni sul titolare della chiave pubblica (nome, cognome, ragione sociale, ...);
o la chiave pubblica appartenente al titolare (public key);
o il periodo di validità;
o il nome CA che ha firmato il certificato;
o la firma digitale della CA.

Ad esempio, se Bob vuole fornire ad Alice una prova della sua identità, richiede un certificato alla
Certification Authority. La CA emette un certificato, firmato con la propria chiave privata, che contiene la
chiave pubblica di Bob.

Quando Alice viene in possesso del certificato di Bob, si accerta dell’autenticità della chiave pubblica di Bob,
applicando la chiave pubblica della CA che lo ha firmato e della cui autenticità si fida.

4.3 – La rivoluzione della tecnologia blockchain


o P. 149

Pag. 37 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

Modulo 5
Unità 5 – Volume 3 (P. 155)
5.1 – VPN
5.1.1 - Cos’è una VPN
La VPN (Virtual Private Network) è una rete privata virtuale che utilizza una rete pubblica per collegare tra
loro terminali remoti come se appartenessero alla stessa rete locale.

Le reti VPN sono:

o “private” perché la comunicazione tra LAN remote le fa apparire come appartenenti alla stessa rete
privata condividendo gli stessi indirizzamenti (privati) e le policy di sicurezza;
o “virtuali” perché i collegamenti non sono fisici, ma logici sopra una infrastruttura di rete pubblica.

Nella maggior parte dei casi una VPN utilizza Internet come infrastruttura geografica, anche se, in realtà
aziendali più sofisticate e con richieste di livello più alto, ci si appoggia a reti geografiche fornite da un
operatore di telecomunicazione che eroga il servizio utilizzando specifici protocolli. La VPN permette la
creazione di “tunnel virtuali” nei quali i dati sono cifrati all’entrata del tunnel e decifrati all’uscita, in modo
che possano viaggiare in modo sicuro e protetto anche in una rete pubblica come Internet. La VPN ha
numerosi vantaggi:

o permette una riduzione dei costi: non è necessario affittare delle linee dedicate (molto costose) per
collegare tra loro le varie sedi;
o consente l’utilizzo di risorse già disponibili: è possibile utilizzare i normali collegamenti a Internet
già presenti nelle aziende;
o garantisce flessibilità di accesso alle risorse aziendali: con gli opportuni permessi, si può accedere a
una risorsa della propria azienda indipendentemente dalla sede in cui ci si trova in quel momento;
o garantisce connessioni sicure: tutte le trasmissioni sono automaticamente cifrate;
o ha un’architettura facilmente scalabile: è molto semplice e veloce aggiungere ulteriori sedi alla rete
aziendale;
o fornisce supporto dei servizi in video e voce con protocollo di cifratura;
o offre semplicità d’uso.

5.1.2 - Perché utilizzare una VPN?


Sono due le principali motivazioni che spingono ad utilizzare una VPN:

o la necessità, da parte di utenti privati o meno, di proteggere la privacy navigando nell’anonimato e


di aggirare eventuali blocchi presenti su base geografica che non permettono l’accesso a
determinate risorse (VPN ad accesso remoto);
o l’esigenza di collegare sedi lontane e distaccate di un’azienda alla rete della sede centrale in modo
sicuro (VPN site-to-site).

Le VPN ad accesso remoto consentono, tutelando la privacy, di raggiungere in rete quelle risorse che
altrimenti sarebbero inaccessibili. Per esempio, non è raro trovarsi in paesi dove non sia consentito
l’accesso a certi servizi Web; per aggirare l’ostacolo l’indirizzo IP mittente (che viene assegnato
dinamicamente dall’ISP locale) viene sostituito con quello dell’ISP che fornisce il servizio VPN, e che risiede
in un paese dove è consentito svolgere quelle specifiche attività. Per implementare una VPN ad accesso
remoto, e creare il tunnel di collegamento tra il client e il server del fornitore, è necessario che l’utente
acquisti il servizio VPN da un ISP e che installi sul proprio dispositivo un “client VPN” impostando il server
del provider. Il pacchetto dati, con l’IP dell’utente, viene criptato e inviato al server VPN che provvede a
decifrarlo e presentarlo in Internet con il proprio indirizzo IP, mascherando completamente l’origine del

Pag. 38 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

pacchetto. Le VPN ad accesso remoto consentono anche a un dipendente che lavora in mobilità, e che
fisicamente si trova distante dalla sede aziendale, di utilizzare le risorse di rete come se fosse presente. In
questo caso è la società stessa a fornire al proprio dipendente il client-VPN da installare sul dispositivo e a
definire le regole di accesso ai propri server.

Le VPN site-to-site collegano in modo sicuro due o più LAN dislocate sul territorio, utilizzando la rete
Internet. Il tunnel è stabilito tra apparati (gateway – router chiamati Customer Premise Equipment) delle
sedi remote, con lo scopo di impedire l’intercettazione del dato aziendale trasmesso. A differenza delle VPN
ad accesso remoto, i dispositivi remoti non necessitano di un client VPN, ma inoltrano il traffico attraverso i
gateway VPN. Le VPN site-to-site possono essere ulteriormente classificate in intranet o extranet. Nel
primo caso la VPN collega gli uffici della stessa azienda. Nel secondo caso la VPN è creata per connettere
all’azienda un partner o cliente.

Intranet Extranet
Intranet è una rete locale che utilizza i protocolli di Extranet è una Intranet aperta a personale esterno
Internet, per esempio il Web, la posta elettronica come fornitori o clienti esterni. In questo modo
ecc. Può essere pensata come una Internet interna un’organizzazione può fornire un accesso a
all’organizzazione, in cui possono essere pubblicate persone che collaborano esternamente e che
pagine Web inerenti alle attività interne. hanno bisogno, almeno in parte, dei dati aziendali.

5.1.3 - Tipi di VPN


Le VPN possono utilizzare due diversi meccanismi per il trasferimento dei dati. Il primo è quello di
appoggiarsi a un fornitore di servizi di fiducia e utilizzare i suoi circuiti privati (“trusted VPN”); l’altro è
quello di sfruttare la rete Internet pubblica crittografando i dati (“secure VPN”). La combinazione di una
secure VPN e di una trusted VPN origina una hybrid VPN.

La Trusted VPN è un modello offerto da un fornitore di servizi (ISP) che traccia i tunnel che i dati devono
percorrere, come se fossero dei circuiti virtuali. Nel corso degli anni si è passati dal noleggio di circuiti
privati offerti dal fornitore di telecomunicazione a reti IP private noleggiate dal fornitore di servizi Internet.
La soluzione attualmente più diffusa è basata sul protocollo MPLS (Multiprotocol Label Switching)
utilizzato per l’incapsulamento e la gestione del routing all’interno della rete dell’operatore. È un modello
utilizzato per implementare una VPN side-to-side e, sinteticamente, funziona nel seguente modo:

o la sedi dei clienti (tipicamente aziende) si collegano al primo nodo di rete dell’operatore (router di
edge);
o il pacchetto viene inoltrato dal router della LAN mittente al router del fornitore (nodo Edge) su cui
è implementato MPLS;
o il router dell’ISP aggiunge al pacchetto una label che lo identifica;
o il pacchetto è immesso in rete fino ad arrivare al router dell’ISP di destinazione che rimuove la
“label” e consegna il pacchetto al router della LAN di destinazione.

Opportuni algoritmi di routing (e relative tabelle presenti in ogni nodo) mappano la label con l’indirizzo IP di
origine e destinazione e gestiscono il cammino all’interno della rete stessa. La trusted VPN presenta
vantaggi in termini di sicurezza, affidabilità e qualità del servizio, in quanto:

o il cliente non deve preoccuparsi del servizio;


o la sicurezza della rete è affidata al provider (la label MPLS distingue le varie origini di traffico,
segregandole);
o la qualità di servizio (QoS) richiesta è a carico del fornitore che deve definire un percorso ottimale;
o algoritmi interni alla rete permettono tempi di ripristino di malfunzionamenti (fault recovery)
estremamente contenuti e basati sulle priorità di traffico;
Pag. 39 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o il piano di indirizzamento IP è quello del cliente, consentendo di creare un’unica LAN logica, in
ambito geografico.

Gli svantaggi sono relativi ai costi elevati e alla rigidità nel servizio.

La Secure VPN è un modello che garantisce principalmente la protezione dei dati. Un ISP fornisce l’accesso
alla rete pubblica (Internet) per le sole funzionalità di trasporto, ed è responsabile dei percorsi seguiti dai
pacchetti. Il cliente “sovrappone” la propria topologia logica (overlay network) composta da collegamenti
punto-punto definiti dal cliente stesso. In questo modo i dati viaggiano in un tunnel virtuale protetto. Non
c’è alcuna imposizione sul percorso che i pacchetti devono seguire. La sicurezza è realizzata utilizzando
protocolli sicuri come IPSec che garantisce la protezione dei dati. Le VPN possono anche utilizzare il
protocollo SSL per consentire agli utenti di collegarsi, tramite browser, da qualsiasi postazione in Internet.
Queste applicazioni “clientless VPN” o “Web VPN”, a differenza di quanto accade nei sistemi che sfruttano
IPSec, non necessitano di particolari privilegi, come l’apertura di specifiche porte TCP: l’utente, dopo
l’autenticazione, può accedere in sicurezza alle risorse della LAN.

5.1.4 - I servizi di sicurezza nelle VPN


Una VPN può servirsi di vari metodi e protocolli per garantire la riservatezza, l’integrità e l’autenticazione
dei dati. La riservatezza, forse il servizio più importante in ambito aziendale, viene realizzata crittografando
i dati. Per raggiungere questo obiettivo vengono utilizzati diversi protocolli, tra cui IPsec (Internet Protocol
Security Protocol), L2TP (Layer 2 Tunnel Protocol) e SSL (Secure Socket Layer).

Altrettanto vitale per proteggere i dati su una rete pubblica è garantirne l’integrità durante il transito. IPsec
garantisce, ad esempio, che nessun dato venga modificato durante il trasporto e, nel caso si rilevi una
compromissione, il pacchetto viene eliminato. L’integrità dei dati può anche implicare l’autenticazione del
peer remoto. Infine, è estremamente utile assicurarsi dell’identità del mittente dei dati in modo da
proteggersi da attacchi di spoofing e non permettere a chiunque di entrare nella rete remota. Quando a un
gateway di accesso VPN (firewall o router) arriva una richiesta per stabilire un tunnel, da un client remoto,
viene richiesto nome utente e password, che possono essere verificate localmente sul gateway, o inviata al
server AAA (Autenticazione, Autorizzazione, Accounting) che effettua:

o Autenticazione (“chi sei”). Verifica l’identità di un utente (per esempio nome utente e password)
per permettere l’utilizzo di una risorsa.
o Autorizzazione (“cosa ti è permesso fare”). Definisce l’insieme delle operazioni e dei servizi a cui
l’utente può accedere. Per questo possono essere utilizzati l’elenco delle operazioni ammesse (ACL)
Pag. 40 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

insieme ai privilegi di cui l’utente dispone. Un conto è essere riconosciuto dal sistema, un altro è
poter fare tutte le operazioni possibili. Uno studente, per esempio, può accedere alla rete
scolastica ma non leggere o modificare i dati anagrafici di compagni e insegnanti.
o Accounting (“quali operazioni hai svolto realmente”). Tiene traccia dell’utilizzo di una risorsa da
parte dell’utente per fini di sicurezza, statistici e di tariffazione. Possono essere controllati e salvati
gli accessi, il tempo di permanenza nel sistema, le modifiche apportate, le operazioni fatte ecc.

5.2 - Protocolli sicuri


I tunnel sicuri delle VPN sono realizzati e garantiti utilizzando protocolli di rete sicuri perché basati sulla
crittografia. Le tecniche crittografiche, infatti, sono applicate ai protocolli di comunicazione, per garantire la
sicurezza nelle applicazioni di rete. Questo consente di garantire riservatezza, integrità e autenticità, per
esempio, nelle transazioni commerciali e finanziarie, fornendo una valida contromisura contro gli attacchi
spoofing che falsificano l’identità. La crittografia, a seconda delle necessità, è applicata ai protocolli del
modello ISO/OSI, dal livello di rete fino al livello applicazione. Rendere sicuro un protocollo di un
determinato livello garantisce che lo siano anche quelli di livello superiore. Così, se viene applicata la
crittografia a livello di rete, i protocolli di livello trasporto e applicazione saranno sicuri; se viene applicata a
livello trasporto, le applicazioni saranno sicure. La
Fig. mostra i protocolli relativi alla sicurezza riferiti
ai livelli più alti del modello TCP/IP: IPSec, SSL/TLS,
Kerberos, PGP, HTTPs ecc., che saranno oggetto di
studio dei prossimi paragrafi.

5.2.1 - IPSec
IPSec (IP Security) implementa la crittografia a livello di rete e fornisce sicurezza (autenticazione e
riservatezza) al protocollo IP (IPv4 e IPv6) e, di conseguenza, ai protocolli di livello superiore. Consente di
creare un percorso sicuro tra host che comunicano utilizzando una rete non sicura, realizzando una VPN.È
supportato da due protocolli che provvedono, tramite la generazione di chiavi, all’autenticazione e
riservatezza:

o AH – Authentication Header
(intestazione per l’autenticazione) serve
per garantire l’autenticazione dell’origine
dei dati e che l’identità del mittente (IP
sorgente) non sia stata cambiata da un
attacco di tipo spoofing.
o ESP – Encapsulation Security Payload
(incapsulamento sicuro del “carico utile”,
cioè dei dati effettivi) garantisce
autenticità, integrità e confidenzialità del
solo payload del messaggio.

Entrambi i protocolli, AH ed ESP, possono essere implementati in una delle due modalità previste da IPsec:

o Transport mode utilizzata per fornire sicurezza solo al payload del pacchetto.
o Tunnel mode in cui è messo in sicurezza l’intero pacchetto IP.

Transport mode è utilizzato per collegamenti sicuri tra due host (end-to-end) che hanno un indirizzo IP
pubblico. Protegge i dati presenti nel campo payload, ma non crea un tunnel.
Pag. 41 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

Utilizzato insieme ad Authentication Header (AH) fornisce l’integrità e l’autenticazione di tutto il messaggio.
Associato a Encapsulating Security Payload (ESP) garantisce autenticità, integrità e riservatezza del solo
payload. Il funzionamento di questa modalità prevede la rimozione dell’intestazione del pacchetto IP
originale e l’introduzione dell’intestazione “IPsec Header” (che si traduce in “AH header” oppure “ESP
header”. Nel caso si utilizzi ESP, i dati vengono anche criptati, altrimenti si procede alla sola autenticazione
del pacchetto. Infine, viene riapplicato al pacchetto l’header
IP originale.

Tunnel mode è usato per i collegamenti VPN tra reti private


che accedono a router pubblici (gateway-to-gateway). Il
tunnel che si crea serve al transito sicuro dei pacchetti IP
privati. I pacchetti vengono completamente cifrati e
incapsulati in un altro pacchetto nella cui intestazione sono
contenuti gli indirizzi mittente e destinatario dei due router
che costituiscono gli estremi del tunnel. L’utilizzo di ESP in
modalità tunnel impedisce di conoscere la sorgente del
pacchetto, nascondendo gli indirizzi di origine e destinazione
e la lunghezza del messaggio e fornisce un ottimo grado di
riservatezza delle informazioni trasmesse.

5.2.2 - TLS/SSL
Il protocollo TLS (Transport Layer Security) e il suo predecessore SSL (Secure Sockets
Layer) si colloca tra il livello trasporto (TCP/UDP) e il livello applicazione, e garantisce
una comunicazione sicura, in termini di riservatezza e integrità, a tutti i protocolli che
operano a livello trasporto e alle applicazioni a essi collegate: transazioni Web, posta
elettronica, messaggistica istantanea, voice over IP ecc. La sicurezza è garantita da un
meccanismo che utilizza la crittografia a chiave asimmetrica per configurare una
chiave simmetrica. Il client produce, in modo random, una chiave segreta (chiave di
sessione) che trasferisce al server, cifrandola con la chiave pubblica del server. Questa chiave viene
rigenerata a ogni nuova sessione, conferendo ulteriore sicurezza alla transazione e contrastando eventuali
attacchi di tipo “man in the middle”. Obiettivo fondamentale di SSL è garantire:

o la riservatezza della comunicazione: i dati vengono protetti utilizzando algoritmi di crittografia a


chiave simmetrica (per esempio DES o RC4);
o l’autenticazione degli interlocutori: client e server sono autenticati usando la crittografia a chiave
pubblica (per esempio RSA) e lo scambio di certificati;
o l’affidabilità del messaggio: viene effettuato un controllo sull’integrità del messaggio utilizzando
funzioni di hash, come SHA e MD5.

▪ Architettura dell’SSL

Il livello più alto, SSL Handshake, si interfaccia con il livello applicazione ed è usato
per l’handshake iniziale. È implementato da più protocolli e consente al client e al
server di autenticarsi a vicenda e di negoziare i parametri necessari per lo scambio di
informazioni sicure: l’algoritmo di crittografia e le relative chiavi. SSL è indipendente
dal protocollo di applicazione utilizzato, pertanto un protocollo di livello più alto può
interfacciarsi con SSL in modo trasparente. Il livello più basso, SSL Record Protocol, che poggia sul livello
trasporto, è usato per la trasmissione vera e propria dei messaggi protetti. SSL è usato in molte
Pag. 42 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

applicazioni: nelle e-mail, nella messaggistica istantanea, nel Voice over IP e nelle applicazioni Web con il
protocollo HTTPS (HTTP Security), anziché HTTP. Mentre con il protocollo HTTP il client effettua una
richiesta di connessione TCP e inizia direttamente la conversazione con il server, con HTTPS deve prima
essere stabilita una connessione sicura (SSL Handshake) e solo in seguito può avere inizio una
conversazione sicura tra client e server (SSL Record Protocol).

▪ SSL Handshake

L’handshake si sviluppa in quattro fasi:

o l’avvio di una nuova connessione;


o l’autenticazione del server (ed eventualmente del client);
o lo scambio della chiave di sessione usata per la cifratura dei messaggi;
o la chiusura dell’handshake.

L’avvio di una nuova connessione consente a client e server di accordarsi sull’algoritmo da usare per la
generazione delle chiavi: il client comunica al server la sua versione di SSL e una lista di algoritmi supportati.
Il server risponde comunicando al client la sua versione di SSL e l’algoritmo scelto. L’iniziativa può essere
presa sia dal client, che invia un messaggio di “client hello” e si pone in attesa della risposta di “server
hello”, sia dal server, che invia un messaggio di “hello request” per sollecitare il client.

Dopo l’apertura della sessione comincia la fase di autenticazione del server (e opzionalmente del client)
con lo scambio del certificato. Il server invia al client un certificato contenente la sua chiave pubblica. Il
certificato è rilasciato e firmato digitalmente (cifrato con la chiave privata) da un’autorità incluso in un
elenco di Certification Authority (CA). Opzionalmente il server può inviare al client una chiave temporanea,
“Server Key Exchange”, per essere utilizzata dal client per crittografare il messaggio “Client Key Exchange”
successivo. Il server annuncia il completamento di questa fase con l’invio del messaggio di “Server Hello
Done”. Il client riceve il certificato e verifica che la CA faccia parte dell’elenco di quelle che ritiene affidabili;
in questo caso si serve della chiave pubblica della CA per decifrare il certificato al fine di ottenere la chiave
pubblica del server; altrimenti all’utente viene notificato che non è possibile stabilire una connessione
sicura. Nel caso di autenticazione del client, quest’ultimo cifra alcuni valori con la sua chiave privata,
creando in pratica una firma, e il server li decifra con la chiave pubblica del client.

Dopo l’avvenuta autenticazione del server, il client genera una chiave di sessione, la codifica con la chiave
pubblica del server e gliela invia nel messaggio “Client Key Exchange” e, con il messaggio “Change Cipher
Spec”, gli notifica che i messaggi successivi saranno cifrati con la chiave di sessione che gli è stata appena
inviata. Quindi concluse le sue operazioni (finished). Il server, dopo aver ricevuto la chiave di sessione, ne
dà conferma al client, con l’analogo messaggio “Change Cipher Spec”, e chiude l’handshake (finished).

▪ SSL Record Protocol

I dati che provengono dalle applicazioni, prima di essere inoltrati al livello


trasporto, vengono elaborati da SSL Record Protocol, che fornisce i servizi di
riservatezza e integrità per le connessioni SSL. I dati sono frammentati in
blocchi, compressi e integrati con un Message Authentication Code (MAC),
generato con funzioni hash, per garantirne l’integrità. Il messaggio così
prodotto è cifrato con la chiave di sessione, è completato con l’aggiunta
dell’intestazione SSL e infine viene inoltrato al livello trasporto, che lo inserisce in un segmento TCP. Il

Pag. 43 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

ricevente applica il processo inverso ai blocchi ricevuti: li decifra; verificata la loro integrità, li decomprime,
li riassembla e li passa all’applicazione.

5.3 - HTTPS: HTTP sicuro


Il protocollo SSL/TLS svolge il compito fondamentale di fornire la sicurezza al protocollo HTTP che, per sua
natura, non è sicuro. HyperText Transfer Protocol over Secure Socket Layer (HTTPS) è la versione sicura
del protocollo HTTP. Ciò significa che i dati, inviati tramite HTTP, sono crittografati per scoraggiare possibili
intrusioni. Il protocollo HTTPS viene spesso utilizzato per proteggere i trasferimenti online che contengono
dati riservati, come quelli relativi ai pagamenti elettronici o alle transazioni finanziarie. Tuttavia, sempre
più siti utilizzano questo protocollo per offrire un servizio di qualità. L’icona del lucchetto posto davanti
all’URL indica che è attivato il protocollo HTTPS che, a differenza di http, lavora sulla porta 443 di TCP.
Come è mostrato in, tra il protocollo HTTP e TCP è interposto lo strato del protocollo SSL, che è utilizzato
per creare un canale di comunicazione sicuro tra client e server. Su questo canale, in modo trasparente
all’utente, il client effettua una normale richiesta HTTP. La sessione completa si sviluppa in tre fasi.

Prima fase – Apertura della connessione:

o il browser si connette alla porta 443 del server;


o SSL procede alla fase di handshake con lo scambio del certificato;
o il browser avvia la richiesta HTTP, i cui dati sono inseriti in una busta SSL.

Seconda fase – Mantenimento della connessione: il trasferimento di dati è regolato dal protocollo HTTP.

Terza fase – Chiusura della connessione: SSL procede alla chiusura della connessione e nessun dato può
essere più inviato.

5.4 – PGP (Pretty Good Privacy): posta elettronica sicura


Gli algoritmi di crittografia possono essere applicati al servizio di posta elettronica per garantire:

o riservatezza del messaggio (se Alice invia una e-mail a Bob e non vuole che Trudy capisca il testo);
o autenticazione del mittente (se Alice scrive una e-mail a Bob, Bob vuole essere certo che la e-mail
sia stata scritta da Alice);
o autenticazione del ricevente (se Alice scrive una e-mail a Bob, vuole essere certa che sia ricevuta
proprio da Bob);
o integrità del messaggio (se Alice invia una e-mail a Bob, il messaggio che Bob riceve deve essere
uguale a quello che Alice ha inviato; non deve essere modificato durante il percorso da Alice a Bob).

PGP (Pretty Good Privacy) è la modalità, ideata da Philip Zimmermann all’inizio degli anni Novanta del
secolo scorso e descritta in RFC 4880, che si è affermata come standard di fatto per fornire questi servizi.
PGP usa la crittografia a chiave simmetrica, con la coppia di chiavi pubblica e privata, e una chiave segreta

Pag. 44 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

usata per cifrare il testo in chiaro. Le chiavi pubbliche degli utenti PGP possono essere messe a disposizione
di chiunque (vedi più avanti l’approfondimento Web of Trust). PGP offre la possibilità di criptare il
messaggio, di firmarlo o di fare entrambe le operazioni. Lo schema usato è simile a quelli visti finora.
Supponiamo che Alice voglia inviare un messaggio di posta elettronica a Bob in modo che la malevola Trudy
non sia in grado di capire e modificare il messaggio e vediamo come Bob può essere certo che il messaggio
sia stato inviato da Alice, e Alice può essere sicura che Bob l’abbia ricevuto. Per quanto riguarda la
riservatezza facciamo riferimento alle Fig. 29 e 30. Il software PGP di Alice genera un numero casuale da
utilizzare come chiave simmetrica di sessione.

Per ogni messaggio viene generata una nuova chiave di sessione (1). Con questa chiave di sessione viene
crittografato il messaggio (2). La chiave di sessione viene crittata con la chiave pubblica di Bob (3). Il testo
cifrato e la chiave crittata vengono concatenati e inviati a Bob (4). Bob, ricevuto l’intero messaggio
crittografato, usa la sua chiave privata per decifrare la chiave di sessione (5) e la chiave di sessione per
decifrare il messaggio (6). Per l’autenticazione e l’integrità vengono usati, rispettivamente, la firma digitale
e il “riassunto” (digest) del messaggio:

o il software PGP di Alice applica una funzione di hash al messaggio per ottenere il digest;
o il digest viene criptato con la chiave privata di Alice per ottenere la firma digitale;
o il messaggio in chiaro e la firma digitale vengono concatenati e costituiscono i dati da inviare a Bob;
o Bob riceve il messaggio e decifra la firma con la chiave pubblica di Alice;
o Bob applica la funzione di hash al messaggio in chiaro;
o Bob confronta il “riassunto” ricevuto con quello ottenuto e, se coincidono, è sicuro che il
messaggio, integro, provenga da Alice.

Modulo 6
Unità 7 – Volume 3 (P. 241)
7.1 – Che cos’è un data center
Un data center (o Centro di Elaborazione dati, CED) è lo spazio fisico che ospita le infrastrutture
tecnologiche utilizzate da una azienda per l’elaborazione, la memorizzazione e la condivisione delle
informazioni. Se ci limitiamo all’aspetto fisico, un data center fornisce lo spazio per gli alloggiamenti in cui
inserire i dispositivi di elaborazione e storage, l’energia necessaria al loro funzionamento, i sistemi di
raffreddamento e la sicurezza fisica. Vengono spesso forniti anche interconnessioni con operatori di
telecomunicazione per l’accesso a Internet e servizi di sicurezza logica. I gestori di data center forniscono
anche i servizi di disaster recovery/business continuity, ma è comunque necessaria una soluzione
Pag. 45 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

sistemistica che vada oltre il solo data center fisico. Vengono infatti anche offerti servizi logici come
l’hosting e il cloud privato e/o pubblico e applicazioni WEB, posta elettronica, gestione domini, ecc. Servizi
che non sono necessariamente legati alle attività tipiche di un data center.

I data center possono essere di due tipi:

o aziendali (CED): sono normalmente proprietà di una singola azienda e forniscono servizi relativi
all’infrastruttura interna: vengono utilizzati per la gestione dei dati aziendali, per la gestione dei
flussi amministrativi e produttivi e per la gestione Intranet ed Extranet;
o offerti da terzi (housing, hosting, cloud): sono strutture specializzate nella gestione di servizi
multipiattaforma accessibili in Internet. I servizi spaziano dalla fornitura di applicazioni Web alla
gestione della posta elettronica o alla gestione in hosting dei flussi propri di un’azienda, compresi i
server virtuali a uso privato.

7.1.1 – Come è fatto un data center


Il data center è il cuore che fornisce l’energia necessaria per garantire l’elaborazione e lo storage. Prevede
una serie di ridondanze, con la duplicazione di linee e di apparati per garantire la continuità operativa nel
caso di malfunzionamenti o guasti e per permettere l’erogazione dei servizi per 24 ore al giorno, tutti i
giorni dell’anno. Un data center fisico comprende:

o una infrastruttura operativa (white space), che ospita i rack contenenti i server di elaborazione, i
sistemi di archiviazione dati (storage), gli apparati di monitoraggio e controllo dell’impianto, le
infrastrutture e gli apparati per trasmissione dei dati sulla rete, tutelati da sistemi di sicurezza di
alto livello (spesso i data center sono roccaforti presidiate da guardie armate, che prevedono severi
controlli agli accessi);
o le infrastrutture di supporto, costituite da dispositivi di backup e sistemi ridondanti che
garantiscono l’affidabilità e il funzionamento continuativo anche in caso di guasto o catastrofe
naturale. Oltre a gruppi di continuità (UPS) i data center prevedono impianti di climatizzazione e
di controllo ambientale molto particolari, che includono sistemi di raffreddamento, impianti
antincendio, un sistema efficiente di distribuzione dell’energia, attenzione ai consumi e alla
connettività (che di solito comprende più operatori di telecomunicazione e numerose linee
parallele) per consentire l’elaborazione dei dati da parte dei server e la loro conservazione in
sistemi di storage. L’infrastruttura è basata su reti che collegano macchine e rendono disponibili le
applicazioni e i servizi. I dati vengono instradati e distribuiti tramite switch e router.
o il personale operativo, costituito dalle figure professionali che gestiscono il centro di elaborazione:
amministratori di rete, tecnici informatici, sistemisti, programmatori, addetti alla sicurezza e
manutenzione.

La sicurezza fisica e logica, come si può immaginare, gioca un ruolo notevole in un data center. Gli obiettivi
sono principalmente due:

o mantenere la disponibilità dei dati garantendo la continuità di elaborazione. Occorre tener conto
dei fattori di rischio ambientale che possono arrivare ad alti gradi di severità, fino a catastrofi
naturali. Per questo è necessario adottare misure di protezione da sovratensioni, fulmini, alluvioni,
incendi, terremoti, tenendo conto dei rigorosi requisiti costruttivi che prevedono la sostenibilità
ambientale e la riduzione dei consumi. Un altro fattore di rischio è costituito dall’errore umano,
sempre presente in sistemi complessi. Un terzo elemento è costituito dal controllo degli accessi,
che devono essere riservati al solo personale autorizzato e consentiti solo in certe zone del data
center. Infine, occorre garantire la protezione da minacce provenienti dalla rete che potrebbero
impedire l’erogazione dei servizi;
Pag. 46 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o proteggere le informazioni, dati e applicazioni, che risiedono nello storage e nei sistemi. La
salvaguardia del patrimonio informatico è strettamente legata agli attacchi della cyber-criminalità e
alla privacy con le normative internazionali che la riguardano. I dati sono filtrati e monitorati da
firewall e potenti sistemi antiintrusione (IDS) che sorvegliano la rete e i server.

7.1.2 – L’evoluzione dei data center: dal possesso al servizio


L’evoluzione dei data center è passata attraverso diverse fasi: dal CED aziendale, fatto di spazi e apparati
fisici, alla virtualizzazione dei sistemi e delle risorse, fino all’ “immaterialità” del cloud (Fig.). Il primo passo è
stato quello di portare all’esterno dell’azienda i server e lo storage (collocation). Invece di investire denaro
e risorse in uno spazio fisico, le aziende hanno preferito alloggiare i propri server in spazi affittati da terze
parti, riducendo i costi di manutenzione e sicurezza, e migliorando l’efficienza e la disponibilità. Il secondo
passo è stata la realizzazione di data center virtuali, in cui i server, i dischi e i dispositivi di rete sono blocchi
virtuali che corrispondono ai tradizionali sistemi fisici, ma che hanno il vantaggio di essere facilmente
manipolabili e scalabili. Ciò ha permesso un’ulteriore diminuzione dei costi hardware e degli spazi necessari
a contenerli, con la conseguenza di una riduzione dei consumi e delle spese di manutenzione. Nella
virtualizzazione il sistema è manutenuto e gestito dal provider, ma è ancora l’utente che ne controlla la
configurazione. Oggi la tendenza è quella di liberare il cliente da qualsiasi legame con l’hardware (serverless
approach) e di affidarsi a un fornitore di servizi in cloud che mascheri ogni problematica legata alle
strutture fisiche. L’azienda si appoggia al cloud per ottenere le risorse necessarie a realizzare il sistema
informativo aziendale, sotto forma di servizi software facili da richiedere, scalabili in funzione delle esigenze
crescenti dell’azienda ed economicamente vantaggiosi, liberandosi, una volta per sempre, della costosa
manutenzione dell’hardware.

7.1.3 – Incidenti e interruzioni delle attività


Numerosi sono i vantaggi dell’impiego di data center virtuali da parte di un’organizzazione:

o diminuzione degli investimenti in termini di hardware e conseguente diminuzione dello spazio


necessario al contenimento delle apparecchiature fisiche;
o riduzione dell’energia consumata;
o condivisione delle risorse con altre organizzazioni;
o possibilità di disporre di sistemi scalabili in funzione delle esigenze aziendali;
o fruibilità di servizi in cloud computing.

Di contro, queste soluzioni espongono a rischi: portare tutti i servizi su un’unica struttura determina un
punto di criticità (detto single point of failure, SPoF) perché, in caso di guasto, si avrebbe la paralisi
completa dei sistemi informatici. Il malfunzionamento di un qualsiasi elemento può causare
un’indisponibilità di servizio (downtime) con ripercussioni economiche anche gravi. Se, per esempio,
pensiamo a un sistema di server utilizzato da una società di e-commerce, capiamo bene che ogni minuto di
fermo macchina comporta una notevole perdita economica. È di importanza vitale quindi garantire un’alta
disponibilità di servizio (in termini tecnici, ciò prende il nome di high availability). Per questo, un ambiente
di virtualizzazione ben progettato prevede tecniche di ridondanza e duplicazione, cluster di host, sistemi di
Pag. 47 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

archiviazione, studiati per ridurre al minimo le conseguenze di guasti e blocchi inaspettati, fino ad arrivare
alla replica dell’intero data center. Lo standard ISO 22301 fornisce le linee guida da seguire in caso di
incidenti che potrebbero causare l’interruzione delle attività. Queste raccomandazioni non si riferiscono
solo ad apparati e risorse fisiche e logiche, ma anche a persone e fornitori esterni. Il “Business Continuity
Plan” contiene le procedure di risposta, recupero e ripristino delle attività a seguito di un’interruzione.

7.2 – L’astrazione logica dell’hardware


7.2.1 – Perché virtualizzare
La virtualizzazione è una tecnologia software che permette di condividere le risorse di un computer
eseguendo simultaneamente più sistemi operativi e applicazioni sulla stessa macchina fisica. I software di
virtualizzazione sono in grado di smembrare le risorse fisiche per creare ambienti virtuali distinti. Per
esempio, un disco può essere visto come tante unità logiche indipendenti, una macchina reale come molte
macchine virtuali. Grazie all’evoluzione tecnologica dei componenti hardware, oggi i computer hanno
raggiunto un’elevatissima capacità di calcolo, di cui solo una minima parte è effettivamente sfruttata.
Questo si traduce in uno spreco energetico perché, in ogni caso, le risorse devono essere alimentate
indipendentemente dal loro stato di utilizzo. Per ottimizzare l’utilizzo di queste risorse una soluzione molto
diffusa consiste nella virtualizzazione. Tramite software si realizza una condivisione delle risorse per creare
ambienti indipendenti in grado di riprodurre le stesse funzioni di un computer fisico. Si tratta di
un’astrazione dell’hardware che permette di suddividere gli elementi fisici dando la possibilità di utilizzarli
in modo più efficiente e flessibile. Una macchina virtuale, allo stesso modo di una macchina fisica, dispone
di una scheda madre con una memoria RAM e una scheda video, il controller della scheda di rete e l’hard
disk, con la differenza che questi sono componenti virtuali che sfruttano e condividono le stesse risorse
hardware (Fig.).
In pratica una macchina virtuale:
o è identica a una macchina fisica con la differenza che i componenti logici sono indipendenti
dall’hardware su cui sono in esecuzione e si possono spostare (un server virtuale diventa un file che
può essere copiato) su macchine diverse;
o è compatibile con i sistemi operativi standard, usa gli stessi driver dei dispositivi ed esegue le
applicazioni come su una macchina fisica;
o incapsula un sistema di elaborazione completo, è totalmente isolata dalle altre macchine virtuali e
opera in modo completamente distinto dalle altre, seppure tutte risiedano sulla stessa macchina
fisica e condividano lo stesso hardware.
In questo modo si ottengono molti vantaggi, tra cui:
o la riduzione del numero di server presenti nei centri di calcolo e nelle organizzazioni;
o la riduzione dello spazio fisico necessario alle macchine;
o la diminuzione dei consumi energetici;
o l’abbattimento dei costi di manutenzione.
La virtualizzazione può essere realizzata purché siano rispettati i seguenti requisiti:
o partizionamento dell’hardware: gli elementi fisici sono messi a disposizione di ambienti multipli in
grado di condividere le risorse comuni, mantenendo l’indipendenza degli ambienti;
o mantenimento delle priorità di esecuzione: è compito del processo di virtualizzazione gestire
correttamente le code di esecuzione sfruttando il time sharing e le priorità di real time execution;
o replica dell’ambiente di astrazione hardware: ogni ambiente virtualizzato ha un proprio livello
hardware indipendente e isolato seppure questo condivida le risorse del computer fisico che lo
ospita;
o gestione delle periferiche del computer ospitante condivise con gli ambienti virtuali creati: è
compito del processo di virtualizzazione (hypervisor) gestire la condivisione delle risorse fisiche,
allocandone gli indirizzamenti, e gestire le tabelle di traslazione contenenti gli indirizzi che
permettono di far corrispondere le risorse visibili alle macchine virtuali con le risorse fisiche;

Pag. 48 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

o mantenimento dei criteri di sicurezza e d’isolamento: ogni ambiente virtualizzato mantiene


l’indipendenza sia verso gli altri ambienti virtuali sia verso il sistema di virtualizzazione stesso; non
sono ammessi scambi di processo e memory sharing a livello applicativo: è così garantito che le
aree di memoria delle macchine virtuali non siano accessibili a nessun’altra macchina, logica o fisica
che sia. Questo fornisce l’assoluta certezza dell’integrità dei dati e della sicurezza nel trattamento
delle informazioni.

7.2.3 – Architetture delle macchine virtuali


Il Virtual Machine Monitor o hypervisor è il programma di basso livello che consente ai sistemi operativi
ospitati (guest) di essere eseguiti in contemporanea su un singolo computer (host). Il codice dell’hypervisor
è ben strutturato ed efficiente perché deve allocare le risorse di memoria e I/O in tempo reale. Ci sono due
tipi di architetture che implementano l’hypervisor: tipo 1 e tipo 2.

• Type 1 (Bare Metal o Native)

In questa architettura il software di virtualizzazione si integra direttamente con il kernel del sistema
operativo ed è in grado di interfacciarsi con le periferiche hardware, gestendo i processi in real time a livello
del kernel stesso. Il fatto di essere a diretto contatto con l’hardware permette una gestione più efficiente,
veloce e stabile delle risorse assegnate alle macchine virtuali. Questa architettura non prevede l’utilizzo di
sistemi operativi preesistenti sulle macchine, garantendo alte performance, ed è tipica nella virtualizzazione
di server: con tale struttura è possibile consolidare diversi server (File server e Data Base, Web server, FTP
server, DNS server, server di posta e di dominio). Sulla stessa macchina vengono mantenuti tutti questi
servizi in esecuzione su macchine virtuali, riducendo drasticamente i costi. Un altro uso è quello di sfruttare
le virtual machine per distribuire in rete i sistemi operativi dei desktop che vengono utilizzati sui computer
degli utenti remoti. Viene realizzata, cioè, una Virtual Desktop Infrastructure (VDI) secondo un modello
Client-Server. Su server è ospitato un sistema operativo desktop all’interno di ogni macchina virtuale in
esecuzione su un server centralizzato. Si tratta di un eccellente strumento di virtualizzazione dei sistemi,
in quanto consente di creare dei sistemi desktop completamente personalizzati per ciascun utente, gestiti
in modo centralizzato in semplicità e sicurezza. Queste tecniche sono spesso usate in grandi data
center e organizzazioni di un certo livello, ma potrebbero andare benissimo anche per le organizzazioni
scolastiche che presentano numerosi PC collegati in rete, che utilizzano sistemi operativi e applicazioni
diverse.

• Type 2 (hosted)

Il secondo tipo di architettura si appoggia su un sistema operativo esistente in grado di ospitarlo (hosted) e
crea macchine virtuali a più alto livello. Il software di tipo 2 fa da cuscinetto tra il sistema operativo già
presente e le macchine virtuali che vengono generate e installate sopra di esso. Svolge anche azione di
controllo e monitoraggio delle virtual machine e ne permette il debug. Hypervisor 2, pur svolgendo le
funzioni del tipo 1, non ha le doti di efficienza e velocità di un sistema dedicato alla virtualizzazione, perché
si presenta come applicazione utente e non gestisce direttamente le risorse fisiche dell’hardware. D’altra

Pag. 49 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

parte, gli hypervisor di tipo 2 possono essere installati senza difficoltà su una macchina preesistente e
spesso sono disponibili come prodotti con licenza d’uso gratuita, sia open source sia commerciali. Ciò
consente di usarli, all’interno della stessa macchina, per provare applicazioni in esecuzione su sistemi
operativi differenti ed essere al riparo dai rischi legati a errori di funzionamento e malware. Esempi comuni
di hypervisor di tipo 2, appartenenti a questa categoria, sono VMware Workstation, VirtualBox e Microsoft
Hyper-V.

Unità 8 – Volume 3 (P. 277)


8.1 – I modelli del cloud computing
Il cloud computing è la tecnologia che permette di archiviare ed elaborare le informazioni e sfruttare
applicazioni e risorse software messe a disposizione da un fornitore di servizi in Internet. Da una parte c’è il
fornitore che offre dei servizi fruibili da qualsiasi luogo e in qualsiasi momento, dall’altro l’utente che
accede da remoto alle risorse virtuali. Le infrastrutture di cloud computing sono concentrate in grandi data
center che, basandosi sulla virtualizzazione delle risorse, sfruttano le caratteristiche di ridondanza e
disponibilità per offrire un servizio continuativo all’utente, riducendo nel contempo i costi di esercizio e di
manutenzione. È la conseguenza dell’evoluzione dei data center virtualizzati e delle tecnologie Web.
Prevede la distribuzione e il consumo delle risorse virtuali di elaborazione e memorizzazione, sotto forma di
servizi che vengono aggregati e resi disponibili in una piattaforma Web. Il cloud computing è la tecnologia
che permette di accedere, configurare e gestire su richiesta risorse di elaborazione e archiviazione (CPU,
server, storage, reti, applicazioni), ottenendo sensibili risparmi economici. Lo scopo principale è quello di
fornire agli utenti, anche a quelli che non hanno specifiche competenze tecniche, gli strumenti per
concentrarsi sui propri obiettivi. Lo strato fisico di un cloud comprende i server di elaborazione, lo storage e
i componenti di rete. Il livello software implementa le metodologie di elaborazione, i sistemi operativi e, in
particolare, le tecniche di virtualizzazione per fornire i servizi del cloud che il NIST (National Institute of
Standards and Technology) ha definito in un documento ufficiale. Questo documento è una sorta di
“manifesto del cloud”. In esso vengono definiti un insieme di principi e metodologie per la progettazione e
lo sviluppo di software sotto forma di servizi interconnessi. Nel documento vengono prese in
considerazione cinque caratteristiche:

Pag. 50 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

Modello dei servizi – definisce i tipi di servizio a cui è possibile accedere su una piattaforma di cloud
computing:

o SaaS – Software-as-a-Service;
o PaaS – Platform-as-a-Service;
o IaaS – Infrastructure as a Service.

Modello di distribuzione – definisce lo scopo del cloud, la sua natura e dove si trova:

o Cloud pubblico;
o Cloud privato;
o Cloud ibrido;
o Cloud di comunità.

8.2 – Il modello dei servizi


8.2.1 - SaaS, PaaS, IaaS
I servizi che l’utente può richiedere al fornitore sono aggregabili in tre classi:

1. SaaS (Software-as-a-Service) – il “software come servizio” per distribuire le applicazioni su richiesta,


come servizio, in modo da ridurre i costi di sviluppo e di manutenzione. Sicurezza e infrastruttura
sottostante sono a carico del fornitore. È un modello di distribuzione del software applicativo in cui
un utente, servendosi di un browser, utilizza le applicazioni che il provider mette a disposizione, ma
non ha il potere di controllare l’infrastruttura del cloud (server, sistemi operativi, storage) né di
gestire le funzionalità delle applicazioni; può solo, eventualmente, configurarle e inizializzarle.
2. PaaS (Platform-as-a-Service) – la “piattaforma come servizio” lega il codice scritto dall’utente ai
metodi che forniscono accesso all’infrastruttura di cui ha bisogno l’applicazione. Il servizio mette a
disposizione un’intera piattaforma di elaborazione, dotata di sistemi operativi e linguaggi diversi
per lo sviluppo di applicazioni e il salvataggio dei dati. L’utente non si deve preoccupare del
mantenimento dell’infrastruttura hardware e software. I servizi offerti spaziano dagli strumenti di
gestione ai database, fino a dare accesso, tramite API, a librerie di Intelligenza Artificiale,
permettendo in questo modo anche a utenti con limitate risorse di creare applicazioni complesse,
impensabili precedentemente.
3. IaaS (Infrastructure as a Service) – “l’infrastruttura come servizio” permette di gestire
l’infrastruttura logica con le relative risorse di calcolo, storage e rete. In questo modello viene
fornita l’intera infrastruttura informatica. Il cliente può ottenere intere macchine virtuali
comprensive di sistemi di
storage e componenti di rete,
per poter autonomamente
erogare le proprie
applicazioni e i propri servizi.

Ogni modello di servizio implica un


diverso livello di gestione da parte del
cliente e del fornitore come mostrato
in Fig.

Pag. 51 di 52
Tommaso Vangelisti 5°AINF 03/06/2022

8.2.2 - Microservizi
Negli ultimi anni lo spostamento delle applicazioni verso il cloud e l’utilizzo dei dispositivi mobili hanno
cambiato lo scenario delle modalità di fornitura di servizi informatici. La necessità di ridurre i costi e
rendere più facile lo sviluppo e la distribuzione ha accentuato la tendenza a passare da applicazioni
monolitiche – dove le diverse parti erano assemblate in un’unica entità, per cui un cambiamento minimo
imponeva un aggiornamento completo – a microservizi che, estendendo il concetto di SOA (Service-
Oriented Architecture), scompongono l’applicazione in tanti piccoli processi autonomi e isolati. Un
approccio di questo tipo permette di condividere i servizi tra più applicazioni e ne semplifica e ottimizza lo
sviluppo perché i moduli sono più facili da compilare, testare e aggiornare. Tuttavia, un numero elevato di
microservizi causa un aumento del traffico di rete e del tempo di latenza, con la necessità di una gestione
(orchestrazione) più complessa e articolata.

8.2.3 - Container
Lo scopo dei servizi forniti in Cloud Computing è quello di liberare l’utente dal problema di gestire la parte
sistemistica, consentendogli di focalizzarsi sulla propria applicazione. Il vantaggio dell’uso dei container è
quello di ospitare un microservizio, disaccoppiarlo dagli altri, renderlo indipendente nella sua esecuzione e
ciclo di vita, renderlo scalabile (un container può cioè essere replicato in varie copie in esecuzione
parallelamente, per gestire i carichi di lavoro che l’applicazione richiede). Inoltre, i container rendono
trasportabili da macchine a macchine i propri microservizi, per ottimizzare al massimo il funzionamento del
sistema (la denominazione “container” deriva proprio dai container che viaggiano sulle navi e trasportano
merce. Essi sono di grandezza standard e a prescindere da cosa contengano posso essere movimentati e
trasportati allo stesso modo).Costruire un container non è banale; oltre al codice sono necessarie delle
attività sistemistiche spesso complesse, come la creazione della ‘“container image”, la sua gestione, la
sua scrittura in un catalogo (repository), e la redazione di regole per la messa in esercizio (deploy).Dal
punto di vista sistemistico un container è un’unità standard di software che impacchetta il codice, insieme
alle sue dipendenze, in modo che l’applicazione possa essere eseguita in diversi ambienti di
elaborazione (a parità di tipo di kernel e tecnologia della CPU), in modo rapido ed efficiente. Un
container, quindi, è eseguito in modo identico a prescindere dalla macchina fisica (o virtuale) su cui si trova.
Questa sua “autonomia” consente anche di creare tutte le copie necessarie (e in generale di questo si
occupa un “orchestratore”). Quella del container è una tecnologia che consente di eseguire un’applicazione
utilizzando un metodo di virtualizzazione alternativo rispetto a quello tradizionale. L’idea base è che invece
di virtualizzare lo stack hardware, come nel caso delle macchine virtuali che industrialmente sono utilizzate
per ospitare un solo sistema software per garantirne l’isolamento, i container garantiscono l’isolamento
richiesto anche se 100 di essi sono in esecuzione sulla stessa macchina (fisica o virtuale).

Pag. 52 di 52

Potrebbero piacerti anche