2. Obiettivi del corso
Teoria e pratica di Information Security Management Systems (ISMS)
Attacchi, Vettori, Vulnerabilit, Architettura, Rischi
Intrusion Detection
Blockchain
Best Practices, ISO 27000, e framework legali (GDPR, eIDAS)
Impareremo: OpenSSL, Packet Filtering, Ethereum, HyperLedger,
Apache
3. Introduzione
束La parola Sicurezza viene sempre con unaccezione negativa: viene
applicata quando le cose non vanno come dovrebbero損 [A, pg1]
La sicurezza di un sistema IT (detta anche cybersecurity) deve essere
un impegno di tutte le persone che si occupano dello scambio e la
memorizzazione di dati e informazioni.
4. Introduzione
Gli strumenti per la sicurezza dei dati si sono evoluti nel tempo
Documenti riservati venivano rinchiusi in armadi
Personale selezionato con dei criteri ben definiti
5. Introduzione
Con lavvento dei computer, 竪 risultato evidente lutilizzo di questi
sistemi per la memorizzazione e il controllo dellaccesso di documenti
riservati
Successivamente i dati sensibili sono stati condivisi (avvento delle reti
private e di internet).
7. Che cosa sintende per sicurezza?
La vulnerabilit (vulnerability) 竪 il buco nel tetto
La minaccia (threat) 竪 la nuvola carica di pioggia
La pioggia pu嘆 sfruttare (exploit) la vulnerabilit
Il rischio (risk) 竪 che ledificio e le sue dotazioni internet possano
essere danneggiate finch辿 la vulnerabilit esiste e non viene
riparata, ed esiste una probabilit che piova.
8. Recap
Sicurezza dei dati in transit e in rest
Concetto di Vulnerabilit, Rischio, Exploit, Threat
Concetto di Vettore di Attacco: la modalit di ingresso nel sistema (il
束buco損)
9. Prima architettura della sicurezza
La sicurezza 竪 un concetto
CrossCutting: interessa tutti gli
aspetti della gestione del dato e
dellinformazione
Modello ISO/OSI (wiki)
10. Architetture
Ogni singolo layer dellarchitettura del sistema richiede delle misure di
sicurezza a se
Nelle reti moderne si usa il protocollo
TCP/IP
Architetture superiori hanno gli stessi
concetti (SGAM, IIoT)
11. Meccanismi, attacchi e servizi
Attacco alla sicurezza: qualsiasi azione che compromette la sicurezza
delle informazioni di propriet dellorganizzazione
Meccanismo di sicurezza: processo progettato perrilevare, prevenire
o riparare i danni prodotti da un attacco
Servizio Di Sicurezza: servizio che migliora la sicurezza dei sistemi di
elaborazione e trasmissione delle informazioni [B, pg11]
12. Attacchi
Sono di due tipi: passivi e attivi
Attacchi passivi: si preoccupano di intercettare o monitorare le
trasmissioni. Lobiettivo 竪 di carpire le informazioni che vengono
trasmesse.
Sono molto difficili da rilevare
Esempio: packet sniffing, traffic analysis
Attacchi attivi: modificano il flusso dei dati
Esempio: ripetizione, mascheramento, modifica, DoS
13. Servizi di Sicurezza
Definizione di X.800:
Autenticazione (utente e dati)
Controllo degli accessi
Segretezza dei dati
Integrit dei dati
Non ripudiabilit
Definizione di ISO 27000: la CIA (Confidentiality, Integrity, Availability)
Ci sono moltissime 束*bility損
14. CIA
Confidentiality: (exclusivity) si definisce come il servizio che limita chi
pu嘆 accedere a cosa.
Si implementa con il meccanismo di Access Control, e Cifratura
Integrity: si definisce come la correttezza o consistente con lo stato
delle informazioni presunto (ogni modifica dei dati non autorizzata 竪
una rottura dellintegrity)
Si implementa con il meccanismo di firme digitali, One-Way Hash Function
Availability: la probabilit di ottenere il servizio richiesto ad un tempo
t, per ogni possibile valore di t.
15. Meccanismi
Crittografia
Firma
Controllo accessi
Integrit dei dati
Scambio di autneticazione
Riempimento del traffico (creazione di caos)
Controllo dellinstradamento
Uso di una Trusted Third Party
17. Esempio: interoperabilit
Linteroperabilit 竪 definita in tre livelli
Fondazionale (messaggi scambiati, protocollo)
Strutturale (a livello di scambio di dati)
Semantica (a livello di informazione scambiata).
da considerarsi un esempio di sicurezza?
18. Risposta
SI! Se un dato non 竪 interoperabile, non 竪 accessibile (available),
quindi la probabilit di ottenere il servizio ad un tempo t>0 竪 0.
Si viola la triade CIA
Linteroperabilit 竪 importante in sicurezza
19. Due care and Due diligence
Due diligence is the act of investigating and understanding the risks
the company faces
A company practices due care by developing and implementing
security policies, procedure and standards [A, pg 15]
La sicurezza 竪 di solito regolata dalla legge in maniera abbastanza
precisa (ad esempio, General Data Protection Regulation (ex Data
Protection Regulation, dagli anni 90) e electronic ID and Advanced
Signature, dagli anni 90.
20. Mantra: NO security by obscurity
Mettere in sicurezza un dato con un metodo inventato da noi, e
mantenuto segreto, 竪 estremamente debole:
Bisogna essere parecchio bravi affinch辿 il metodo sia robusto
Richiede conoscenza: prima o poi verr scritto da qualche parte e tecniche di
attacco sociali lo rendono disponibile
Il codice si pu嘆 disassemblare (vedi le vecchie crack delle licenze)
Sempre utilizzare algoritmi pubblici e ben conosciuti da tutti
Security e Privacy by design (cfr. GDPR)
23. Tecniche di Crittografia
La crittografia 竪 un meccanismo per implementare la ?
una funzione che trasforma una serie di dati (messaggio in chiaro) in
unaltra serie di dati (messaggio cifrato) e li rende accessibili solo a chi
conosce un segreto (chiave).
Se la chiave usata per cifrare viene usata per decifrare, si parla di
cifrari simmetrici
Se viene usata una chiave differente, asimmetrici.
24. Robustezza e attacchi
Come si attacca un sistema crittografico simmetrico?
Analisi Crittografica (basata sulle caratteristiche dellalgoritmo)
Forza Bruta, viene fatta unanalisi sullintero spazio delle chiavi
Storicamente si usano due tecniche
Sostituzione
Trasposizione
Nella seconda guerra mondiale usate macchine a rotazione
Lanalisi crittografica viene solitamente instrumentata con attacchi di
tipo passivo
25. Analisi
Schema incondizionatamente sicuro: il testo cifrato generato non
contiene informazioni sufficienti per determinare in modo univico il
relativo test in chiaro
Schema computazionalmente sicuro: iil costo della violazione del
testo cifrato supera il valore delle informazioni crittografate, e il
tempo richiesto per violare il testo cifrato 竪 superiore alla vita utile
delle informazioni
Cercheremo cifrari computazionalmente sicuri.
26. Esempio
Dimensioni della chiave
(bit)
Numero di chiavi possibili 1 crittografia / sec 1.000.000 crittografie /
sec
32 232 = 4,3 109 231 = 35 minuti 2,15 millisec
56 256
= 7,2 1016
256
= 1142 anni 10,01 ore
128 2128
= 3,4 1038
2127
= 5,4 1024
anni
5,4 1018
anni
168 2128 = 3,7 1050 2167 = 5,9 1036
anni
5,9 1030 anni
DES: 56 bit
AES: 128 / 256
28. Cifrario di Giulio Cesare
Consiste in una sostituzione di ciascuna lettera con altre che
occupano k posizioni in pi湛 o in meno nellalfabeto (considerato
circolare)
BAH, CAPIRAI. L'ABITO NON FA IL DRUIDO!
EDKFDSLUDLODELWRQRQIDLOGUXLGR
http://www.crittologia.eu/critto/caesar.htm
Come scambiarsi la chiave?
29. Decisione
La chiave di sostituzione era fissata a 3.
Sia E(k, p) lalgoritmo di encryption, k la chiave, , M il testo in
chiaro.
= 3, = + 3 26 per cifrare e
= 3, = 26 per decifrare
30. Il modulo
Dato linsieme N dei numeri interi, si definisce loperazione di modulo,
che da come risultato il resto della divisione euclidea. Da wiki:
13 3 = 1,
13
3
= 4, 13 4 3 = 1
Nota: 3 4 = 3, 他 = 0, 3 4 0 = 3, <
Congruenza:
( ) se 竪 multiplo di n, o = ( )
38 14 12 perch辿 38-14 = 24, multiplo di 12.
31. Esempi
(3 + ) 26, (9 + ) 26, (1 + ) 26, (15 + ) 26
K = 2
E se p = 26? 26 + 2 26 = 2
Analisi crittografica: una volta conosciuto E, si attacca di forza bruta.
Che capacit computazionale? Al pi湛 25. Se il testo in chiaro 竪
conosciuto
E se fosse compresso?
echo 'ciao' | tr 'A-Za-z' 'C-ZA-Bc-za-b'
32. Domande
E se invece di k si usasse una permutazione? Invece che 25 chiavi, ce
ne sarebbero 26!, tantissime
Complesso da attaccare in forza bruta
Crittoanalisi in frequenza (delle lettere. In inglese ERTA)
Conseguente diminuzione dello spazio delle chiavi
33. Altri tipi di cifrari
Vigenere, Playfair (usato nella seconda guerra mondiale)
Uso del concetto di chiave ripetuta
One time pad: chiave lunga quanto il messaggio, usata una sola volta.
Se la chiave 竪 casuale, allora il risultato 竪 casuale
Cifrario pi湛 sicuro, ma ha due problemi, quali?
35. La seconda guerra mondiale
Macchine a rotazione (Enigma)
Gli inglesi (bletchley park) usavano la RAF per
cercare il testo in chiaro
La necessit computazionale necessaria per
indovinare le chiavi Enigma, ha spinto la
creazione degli elaboratori di Von Neumann, e
dei modelli concettuali di macchine di Turing
Nascono i primi studi moderni di crittografia,
applicati ai dati gestiti dagli elaboratori
36. Due righe sullentropia
Se sto leggendo un libro di informatica, qual 竪 la probabilit che ci sia
scritto la parola 束software損?
Se questo fosse cifrato come abbiamo visto prima, la sua
contestualizzazione (la RAF e le sue bombe ) fornisce accorgimenti
per la crittoanalisi
Confusione: nasconde la relazione esistente tra testo in chiaro e tsto
cifrato (la RAF non servirebbe pi湛) -> sostituzione
Diffusione: nasconde la ridondanza del testo in chiaro spargendola
allinterno del testo cifrato -> trasposizione
37. Segretezza
Un cifrario si dice perfetto se dopo aver intercettato un testo cifrato c
lincertezza a posteriori sul testo in chiaro m 竪 uguale allintercezza
che si aveva a priori.
Un cifrario 竪 sicuro se dato un qualsiasi testo c, per chi non conosce
1
e quindi k, p竪 impossibile trovare m tale che =
Linformazione I(m) fornita allarrivo di un messaggio m 竪 tanto pi湛
grande quanto pi湛 piccola 竪 la probabilit del messaggio stesso.
Che informazione mi da la parola 束Drago損 in un libro di computer?
Lentropia di Shannon (la misura dellincertezza), dimostra che OTP 竪
un cifrario sicuro
38. Block Ciphers
Finora si cifrava un bit o un byte alla volta
Cifrari a blocchi: si usa un blocco di testo in chiaro per essere trattato
come entit, usato per produrre un blocco di testo cifrato di uguale
lunghezza, di 64 o 128 bit (Schema di Feistel)
39. Data Encryption Standard
Primo algoritmo usato su scala mondiale (DES)
Adottato nel 1977 dal National Bureau of Standards (oggi NIST)
Block Ciphers
Chiave a 56 bit
Algoritmo Polemico: il suo funzionamento si basava su delle funzioni
(chiamate S-Box) che non erano resi pubblici:
Gli utenti non potevano sapere se la struttura interna di DES fosse esente da
punti deboli nascosti che potessero consentire alla NSA di decifrare i messaggi
senza utilizzare la chiave.
40. Punti deboli
Chiave a 56 bit imposta. Rotta nel 1998 con un hardware di 250.000$
Necessit di conoscere il testo in chiaro
Attacchi Temporizzati: si ottiene informazioni sulla chiave sulla base
del tempo impiegato da una data implementazione asvolgere la
decrittografia (bit a 0: non c竪 corrente).
41. Block Ciphers
Con ECB, lattaccante pu嘆 modificare lordine dei blocchi e non ce ne
accorgeremmo (modificando la semantica del messaggio).
CBC: Cipher Block Chaining
42. OpenSSL
Iniziamo a cifrare e decifrare dei testi e vediamo quanto fatto fino qui.
Esercizio 1: ROT13
Esercizio 2: DES-CBC
Useremo OpenSSL, un tool e una libreria open source utilizzata da
qualsiasi sistemista al mondo per operazioni di crittografia
43. OpenSSL
max@spirit6 ~/Desktop/Corso PIN $ openssl version
LibreSSL 2.6.5
Configuration file: openssl.cnf (di solito in /etc)
Sintassi dei comandi:
La prima parte 竪 data dal nome del comando stesso, seguito da tutte le
opzioni che si intendono specificare, ciascuna separata da spazio
Le opzioni iniziano con un trattino
Prendere: wget https://norvig.com/big.txt
44. OpenSSL
Cifratura Simmetrica in OpenSSL
openssl enc args
Cifrare con DES
openssl enc -des-cbc -in FILECORTO.txt -out corto_des_cbc.enc
La password viene usata per generare il vettore di inizializzazione e il
salt
46. Generare Chiavi da Password
Si usa PBKDF2 (Password Based Key Derivation Function 2)
Rfc 2898
NIST Special Publication 800-132
(Note: sia il NIST.gov, che ENISA (European Union Agency for Network
and Information Security forniscono lo stato dellarte da utilizzare nei
contesti lavorativi).
47. AES
Con DES reso non usabile dalla EFF, 竪 stata pubblicata dal NIST
unaltra richiesta di interesse per la creazione di un nuovo algoritmo
di cifratura simmetrica standard
Nel 2001 竪 stato introdotto Advanced Encryption Standard (AES,
Rjiandel)
Dopo DES 竪 stato usato 3DES, fino al 2001 (comunque molto lento)
Chiave da 128 a 256 bit
48. Esempio (molto empirico)
max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -des-cbc -
out big.des
real 0m2.922s
max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -des3 -out
big.des
enter des-ede3-cbc encryption password:
real 0m3.164s
max@spirit6 ~/Desktop/Corso PIN $ time openssl enc -in big.txt -aes-128-
cbc -out big.des
real 0m2.834s
49. Esercizi con OpenSSL (da A. De Santis)
Codificare un file di testo arbitrario on Base64 e vedere il risultato
Codificare un file binario arbitrario con Base64 e vedere il risultato
Scrivere una password in un file, codificarla Base64, inviare il file ad
un compagno, e lasciarla decifrare
Cifrare un file arbitrario con DES, identificare un compagno di corso
come fidato, e lasciarlo decifrare. Gli altri studenti cercano un modo
per attaccarlo
50. Esercizi
Usare 束ls al > dir.txt損 per generare il file dir1.
Cifrare con DES-ECB, per ottenere dir1.ecb: come si usa?
Cifrare con DES-CBC, che comando si usa?
Cifrare con AES-256-CBC, che comando si usa?