Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
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
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.
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.
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.
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.
• 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.
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
• 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.
• 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.
• 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.
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
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:
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
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
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.
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
Per quanto riguarda l’intestazione è opportuno sottolineare che alcuni campi, a differenza di altri, sono
obbligatori.
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
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.
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.
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:
La cancellazione di una e-mail viene fatta contrassegnando i messaggi con il “flag Deleted” e attuata con il
comando “EXPUNGE”.
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.
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.
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.
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.
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
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);
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.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 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 Social engineering: nel campo della sicurezza informatica, è lo studio del comportamento
individuale di una persona al fine di carpire informazioni utili.
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 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, ...
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.
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.
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];
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
Pag. 27 di 52
Tommaso Vangelisti 5°AINF 03/06/2022
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.
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;
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.
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.
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
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.
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.
▪ 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)
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.
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.
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.
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:
e il destinatario dovrebbe:
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
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.
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.
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.
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.
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.
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 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.
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.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.
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:
▪ 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’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).
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.
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.
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.
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.
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.
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.
Pag. 48 di 52
Tommaso Vangelisti 5°AINF 03/06/2022
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.
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à.
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