Estratto del documento

Sicurezza dell’Informazione M

Marco Boschi

Matteo Galletti, Marco Rossini e Nicola Severini

A.A. 2017–2018

1 Introduzione 1

1.1 Sicurezza informatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.1 Attacchi e sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Trasformazioni per dati sicuri 5

2.1 Protezione delle proprietà di sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Riservatezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.2 Integrità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.3 Autenticità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.4 Autenticità e integrità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.5 Riservatezza, autenticità e integrità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.6 Identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Funzioni unidirezionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 Chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Crittoanalisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4.1 Indovinare il segreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4.2 Dedurre il segreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5 Memorizzazione delle chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Esempio 2.1 – File System Sicuro SFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.6 Complessità computazionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.7 Meccanismi di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.7.1 Random Number Generator RNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.7.2 Algoritmi di hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Esempio 2.2 – SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.7.3 Identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.7.3.1 Identificazione passiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.7.3.2 Identificazione attiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.7.3.2.1 One-time password . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.7.3.2.2 Challenge-response . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.7.3.2.3 Identificazione mutua . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.7.3.2.3.1 Interleaving . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.7.3.2.3.2 Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.7.3.3 Contromisure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Cenni di crittografia classica 19

3.1 Sostituzione monoalfabetica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2 Trasposizione di colonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.3 Mascheramento della ridondanza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.4 Cifrario Playfair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.5 Sostituzione polialfabetica – Cifrario di Vigenere . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.6 One time pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.7 Sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

i

4 Cifrari simmetrici 22

4.1 Cifrari a flusso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Esempio 4.1 – WEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1.1 Attacco di malleabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Esempio 4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2 Cifrari a blocchi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2.1 Rete di Feistel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2.2 Modalità di cifratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2.2.1 Cipher Block Chain CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.2.2 Cipher Feedback CFB e Output Feedback OFB . . . . . . . . . . . . . . . . . 25

4.2.2.2.1 CFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.2.2.2 OFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2.2.3 Counter CTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.3 Autenticità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.3.1 Message Authentication Code MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.3.2 Firma digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.4 Scambio delle chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.4.1 Master key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.4.2 Key Distribution Center KDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.4.3 Scambio di Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5 Cifrari asimmetrici 31

5.1 Distribuzione delle chiavi pubbliche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.1.1 Standard X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.1.2 Ciclo di vita dei certificati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.1.2.1 Richiesta di un certificato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.1.2.2 Revoca di un certificato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.1.2.2.1 Certificate Revocation List CRL . . . . . . . . . . . . . . . . . . . . 34

5.1.2.2.2 Online Certificate Status Protocol OCSP . . . . . . . . . . . . . . . 34

5.1.3 Valutazione e organizzazione della PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.2 Modelli di fiducia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.2.1 Coordinamento tra CA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Esempio 5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.3 Sicurezza delle reti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.3.1 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

6 Crittografia a chiave pubblica 38

6.1 Richiami di algebra modulare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.2 Numeri primi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.3 Cifrari asimmetrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.3.1 Frammentazione del testo in chiaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.3.2 Determinismo e probabilismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.3.3 Modalità di impiego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.4 Cifrario RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.4.1 Generazione delle chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4.2 Aspetti computazionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4.3 Tipologie di attacchi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4.3.1 Forza bruta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4.3.2 Attacchi matematici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4.3.3 Attacchi a tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4.3.4 Testo cifrato scelto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.4.4 Cifrario ibrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.4.5 Firma digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

ii

7 Servizi sicuri per le comunicazioni di rete 44

7.1 SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

7.1.1 Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7.1.1.1 Fase 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7.1.1.2 Fase 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7.1.1.3 Fase 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7.1.1.4 Fase 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7.1.2 Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.1.3 Problemi di autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.2 Pretty Good Privacy PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.2.1 Autenticazione e confidenzialità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.2.2 Compressione e compatibilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.2.3 Gestione delle chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.2.4 Formato dei messaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7.3 Marche temporali sicure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7.4 Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.4.1 Autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7.5 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.5.1 Modalità di impiego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.5.1.1 Costruzione del pacchetto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.5.2 Servizio anti replica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

8 Sicurezza in Java 55

8.1 Java Security Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

8.2 Controllo dell’accesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.2.1 Architettura della JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.2.2 Modello di sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.2.2.1 Controllo dei permessi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

8.2.2.2 Scelte progettuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

8.2.3 Permessi basati su utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

A Esercitazione I 59

A.1 Network mapping e port scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

A.2 Vulnerabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

A.2.1 Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

A.2.2 Autenticazione e sessione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

A.2.3 Cross-Site Scripting XSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

A.2.4 Riferimento insicuro ad oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

A.2.5 Configurazioni errate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

A.2.6 Esposizione di dati sensibili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.2.7 Privilegi non limitati correttamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.2.8 Cross Site Request Forgery CSRF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.2.9 Uso di componenti con vulnerabilità note . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.2.10 Redirect e forward non controllati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.2.11 Altre vulnerabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

A.2.11.1 HTML injection, XSS e abuso di funzionalità . . . . . . . . . . . . . . . . . . 62

A.2.11.2 Server Side Request Forgery SSRF . . . . . . . . . . . . . . . . . . . . . . . . 62

iii

Capitolo 1

Introduzione

La sicurezza informatica è un aspetto che ha assunto oggi grande rilevanza a causa dell’avvento degli smart-

phone e dell’Internet of Things. Ciò ha condotto i governi di molti paesi a investire sempre di più nell’acquisto

di strumenti per la difesa da attacchi informatici, da mettere a disposizione delle aziende di tutti i settori

(non solo quello tecnologico).

Gli attacchi ormai sono a scopo di lucro, non più col solo obiettivo di riuscire a entrare in un sistema e

renderne pubbliche vulnerabilità e struttura. Spesso si hanno anche casi di Denial of Service per rendere

inaccessibili i servizi causando quindi un danno economico. L’esplosione del numero di attacchi è causato

dal cambiamento nel paradigma per la gestione delle informazioni: si è infatti passati dall’elaborazione

centralizzata su linee di comunicazione e terminali dedicati a un’elaborazione distribuita su linee condivise

(spesso wireless con nuovi tipi di applicazioni come il web, peer-to-peer e l’IoT) in cui tantissimi dispositivi

dediti a compiti diversi sono fra loro collegati.

Il primo attacco avvenne nel 1988 attraverso un Internet che al tempo era limitato ai dipartimenti uni-

versitari statunitensi. Questo attacco prende il nome di Morris Worm, un programma maligno in grado di

autoreplicarsi e propagarsi attraverso tutti i nodi della rete. Robert Morris, autore dell’attacco, è il primo

hacker della storia e lo fece solo per curiosità di testing sulla rete, poi condannato a una multa e 3 anni di

reclusione. Il software da lui diffuso aveva infettato il degli host causando DoS attraverso un sovrac-

10 %

carico della CPU; la diffusione è stata possibile sfruttando alcune vulnerabilità del sistema Unix, secondo

varie modalità:

• Tentativi di fare analisi di password provando loro diverse permutazioni, a partire da un dizionario.

1

• Usando servizi da terminale come Telnet, FTP, e sfruttando alcune vulnerabilità di funzioni

finger

di libreria utilizzate come le quali non eseguivano alcun controllo sui parametri. Ciò permet-

gets(),

teva di aprire una shell su un nodo remoto per poi sfruttare vulnerabilità di altri programmi (come

per replicarsi.

sendmail)

Se già in una rete con pochi nodi è stato possibile infettarne così tanti con questo worm, è comprensibile

che con la crescita esponenziale dei nodi la pericolosità degli attacchi aumenti inevitabilmente. Sebbene il

protocollo TCP/IP sia uno strumento molto potente per la trasmissione dei dati, esso non è mai stato pensato

per prevenire gli attacchi. Telnet si appoggia a questo per aprire una shell remota, con la controindicazione

che le credenziali di accesso sono, in questo modo, trasmesse in chiaro su reti condivise. Si è per questo

motivo passati all’utilizzo del più sicuro protocollo SSH.

Il mondo della sicurezza informatica è molto ampio, pertanto non ci occuperemo di come scrivere codice

sicuro da attacchi informatici, ma lo introdurremo solamente. Gli attacchi possono essere di molti tipi

diversi:

• Spoofing: falsificazione di qualcosa per far credere ad altri che essa sia autentica. In particolare si

può fare IP spoofing, ovvero far assumere ad una macchina un IP diverso per fare in modo che essa

si sostituisca alla macchina che normalmente ha quell’IP (la quale dovrà essere scollegata per evitare

conflitti).

1 Servizio di Unix che dà informazioni sugli utenti attualmente collegati.

1

• Denial of Service DoS: la forma più comune è il SYN flooding, la quale prevede di bombardare un

server di messaggi di SYN che danno inizio al protocollo di handshake. Ciò riempie la coda di ascolto,

ma i client non manderanno mai il messaggio di ACK per completare la connessione, impedendo quindi

che possa essere chiamata la per svuotare la coda stessa, causando il sovraccarico del server.

accept()

Un’altra tecnica è il ping flooding.

• Distributed Denial of Service DDoS: si sfrutta una botnet per causare DoS.

• Hijacking: prevedendo i numeri di sequenza TCP o ascoltando il canale per individuarli (previa

disconnessione del client vero), è possibile immettere sulla rete messaggi con IP del client disconnesso

ma con un payload maligno.

• Port scanning: determina quali servizi sono in ascolto su quali porte.

• Worm e virus.

• Data sniffing: cattura dei dati di una connessione con attacchi di tipo man-in-the-middle.

Una versione più potente del DoS è il Distributed DoS DDoS. Questa tecnica sfrutta una botnet in cui

ogni nodo fa DoS verso la vittima; ciò richiede che l’attaccante abbia accesso a una serie di computer master

che si occuperanno a loro volta di controllare, attraverso canali cifrati, dei daemon su macchine remote

che effettuano il vero attacco. I bot utilizzati possono essere sia consapevoli (e ciò richie

Anteprima
Vedrai una selezione di 14 pagine su 65
Appunti di Sicurezza dell'Informazione Pag. 1 Appunti di Sicurezza dell'Informazione Pag. 2
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 6
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 11
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 16
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 21
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 26
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 31
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 36
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 41
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 46
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 51
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 56
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Appunti di Sicurezza dell'Informazione Pag. 61
1 su 65
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher piscoTech di informazioni apprese con la frequenza delle lezioni di Sicurezza dell'Informazione M e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Montanari Rebecca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community