Estratto del documento

Sicurezza

Michael Aratari

15 luglio 2016

Sommario

Dispensa creata con gli appunti del corso ”Sicurezza” sostenuto dal Prof Parisi-Presicce

Francesco. Laurea Triennale in Informatica - La Sapienza (RM). Integrazioni basate su libri

consigliati dal Professore.

Indice

1 Introduzione alla Sicurezza 4

2 Cosa significa ”Sicurezza”? 5

2.1 Politica, Meccanismo e Certezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Fiducia ed ipotesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 Obiettivi e strategie di sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Aspetti operativi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5 Security by Obscurity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.6 Security by Legislation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.7 Progettazione di un sistema sicuro . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Crittografia 14

3.1 Tipi di Cifrari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.1 Cifrario a flusso (Stream Cipher) . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.2 Cifrario a blocchi (Block Cipher) . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Cifratura simmetrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3 Crittoanalisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4 Tecniche di base per la cifratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4.1 Sostituzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4.2 Permutazione/Trasposizione . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.5 DES: Data Encryption Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5.1 Algoritmo di crittazione DES . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5.2 Algoritmo di decrittazione DES . . . . . . . . . . . . . . . . . . . . . . . . 29

3.5.3 Problematiche del DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5.4 Doppio DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5.5 TDES o Triple-DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.6 AES: Advanced Encryption System . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.6.1 Sruttura dettagliata dell’AES . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.7 Modalità di funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.7.1 Electronic Code Book (ECB) . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.7.2 Cipher Block Chaining (CBC) . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.7.3 Cipher FeedBack (CFB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

1

3.7.4 Output FeedBack (OFB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.7.5 Counter (CTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.7.6 Considerazioni finali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.8 RC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.9 Cifratura Asimmetrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.9.1 Scambio di chiavi Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . 53

3.10 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.10.1 Descrizione dell’algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . 55

3.11 ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.12 Autenticazione dei messaggi e funzioni HASH . . . . . . . . . . . . . . . . . . . . 62

3.12.1 Crittografia dei messaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.12.2 Message Authentication Code (MAC) . . . . . . . . . . . . . . . . . . . . . 63

3.12.3 Funzioni Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.13 Firma digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.13.1 Firma digitale con RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.13.2 Firma digitale con ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4 Gestione delle chiavi e certificati digitali 71

4.1 Scambio di chiavi classico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.1.1 Protocollo Needham-Schroeder . . . . . . . . . . . . . . . . . . . . . . . . 72

4.2 Scambio di chiavi a chiave pubblica . . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.3 Soluzione per la distribuzione delle chiavi . . . . . . . . . . . . . . . . . . . . . . . 75

4.4 Salvataggio delle chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4.5 Revocazione della chiave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4.6 Certificati digitali ed autorità di certificazione . . . . . . . . . . . . . . . . . . . . 77

4.7 Standard X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4.7.1 Revocazione del certificato . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.7.2 Procedure di Autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5 Identificazione ed autenticazione 84

5.1 Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.1.1 Challenge-Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.2 Attaccare un sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.2.1 Attacco a dizionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.2.2 Formula di Anderson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.3 Salt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

5.4 One-Time Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

5.5 Aspetti Biometrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6 Access Control Matrix 93

6.1 Operazioni primitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.1.1 Create Subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.1.2 Create Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6.1.3 Add Right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6.1.4 Delete Right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1.5 Destroy Subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1.6 Destroy Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6.2 Comandi sulla ACM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.3 Implementazione della ACM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.3.1 Access Control Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.3.2 Capability List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2

6.3.3 Locks and Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

6.4 Il problema della Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6.4.1 Modello Take-Grant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

6.4.2 Modello Access Control Matrix Tipizzata . . . . . . . . . . . . . . . . . . . 116

7 Politica e Meccanismi 118

7.1 Politica di confidenzialità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

7.1.1 Modello Bell-LaPadula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

7.2 Politica di Integrità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

7.2.1 Modello Biba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

7.2.2 Modello Clark-Wilson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

7.3 Politiche Ibride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.1 Modello Chinese Wall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.2 Modello Role-Based Access Control . . . . . . . . . . . . . . . . . . . . . . 135

8 Principi di Secure Design 141

8.1 Least Privilege (Minimo Privilegio) . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.2 Fail-Safe Default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.3 Economy of Mechanism (Economia del Meccanismo) . . . . . . . . . . . . . . . . 141

8.4 Complete Mediation (Completa Meditazione) . . . . . . . . . . . . . . . . . . . . 141

8.5 Open Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.6 Separation of Privilege (Separazione dei Privilegi) . . . . . . . . . . . . . . . . . . 141

8.7 Least Common Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.8 Psychological Acceptability (Accettabilità Psicologica) . . . . . . . . . . . . . . . 141

9 Protocollo Kerberos 142

9.1 Idee alla base del protocollo Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . 142

9.2 Funzionamento del protocollo Kerberos . . . . . . . . . . . . . . . . . . . . . . . . 144

9.3 Kerberos Versione 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

9.4 Funzionamento della versione 5 di Kerberos . . . . . . . . . . . . . . . . . . . . . 148

10 Protocollo di sicurezza per le reti TCP/IP 151

10.1 Protocollo SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

10.1.1 Record Layer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

10.1.2 Change Cipher Spec Protocol . . . . . . . . . . . . . . . . . . . . . . . . . 157

10.1.3 Alert Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

10.1.4 Handshake Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

10.2 Protocollo IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

10.2.1 Security Association (SA) . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

10.2.2 Authentication Header (AH) . . . . . . . . . . . . . . . . . . . . . . . . . . 166

10.2.3 Encapsulating Security Payload (ESP) . . . . . . . . . . . . . . . . . . . . 168

3

1 Introduzione alla Sicurezza

Nella nostra trattazione, parleremo dei servizi relativi alla sicurezza di base che proteggono dalle

minacce il nostro sistema. Verranno mostrate le politiche di sicurezza che identificano le minacce

e definiscono i requisiti per garantire che un sistema sia effettivamente sicuro, ed inoltre i mec-

canismi di sicurezza per rilevare e prevenire gli attacchi. Quindi per analizzare la sicurezza di

un sistema bisogna comprendere i meccanismi che fanno rispettare le politiche di sicurezza. Gli

esseri umani sono l’anello più debole nei meccanismi di sicurezza di qualsiasi sistema, pertanto,

le politiche e le procedure devono prendere in considerazione anche la persona. Concludiamo la

nostra breve introduzione dicendo che la sicurezza è dinamica: cambiano le tecnlogie, cambiano i

problemi e cambiano le soluzioni che bisogna adottare!

C’è sempre un compromesso tra utilità e sicurezza: più volete fare con il vostro sistema e più

aumentano i problemi di sicurezza Arrivo ad un certo punto in cui voglio un sistema sicuro, ma

i meccanismi di sicurezza che dobbiamo aggiungere sono talmente tanti o talmente pesanti, dal

punto di vista della macchina, di tempo o dell’utente, che non vale la pena implementarli. Ad

esempio un mio prodotto potrebbe avere un problema, ma ripararlo farebbe si che l’utente non lo

voglia più acquistare. Questo perchè nel volerlo rendere più sicuro, dovrei aggiungere meccanismi

di sicurezza che aumenterebbero l’interazione che il cliente dovrebbe avere con la nostra applica-

zione e quindi, dal suo punto di vista, non ne varrebbe più la pena.

Ma viceversa, la mancata implementazione di sufficienti meccanismi di sicurezza al mio siste-

ma, potrebbe far si che l’attaccante abbia vita facile nel violarlo. Dobbiamo aggiungere quindi

sufficienti meccanismi di sicurezza da rendere l’attacco non più conveniente: se io rendo diffici-

le l’attacco a sufficienza da creare problemi all’attaccante portandolo ad abbandonare l’attacco,

allora ho praticamente risolto il problema. 4

2 Cosa significa ”Sicurezza”?

Il termine sicurezza non ha un suo significato preciso. Forse potremmo dire che la sicurezza è

un processo (senza fine) per migliorare la probabilità che il sistema rispetti i vincoli di una certa

politica. Per decidere se un sistema informatico è ”sicuro”, è necessario, innanzitutto, capire cosa

significhi per noi la parola ”sicurezza” e quindi quali minacce sono una preoccupazione:

1. Per un banchiere il problema è l’integrità dei dati.

Nssuno deve poter accedere al sistema e modificare i dati che riguardano le transazioni o il

saldo dell’utente.

2. Per una persona che gestisce una lotteria online, il problema è la confidenzialità.

Egli vuole che nessuno sappia quali sono i numeri che saranno estratti o il meccanismo

utilizzato per l’estrazione, finché numerosi clienti non abbiano partecipato a questa lotteria.

3. Per una persona che gestisce un sito di scommesse, il problema è la disponibilità.

Egli vuole che il sito rimanga sempre online.

La sicurezza informatica si basa sulla confidenzialità, l’integrità e la disponibilità. Le inter-

pretazioni di questi tre aspetti variano a seconda dei contesti in cui sorgono.

• →

Confidenzialità La confidenzialità (o riservatezza) è l’occultamento di informazioni

o risorse. La necessità di mantenere segrete queste informazioni, sorge visto l’utilizzo di

computer in settori sensibili come il governo e l’industria. Ad esempio, le istituzioni militari

e quelle civili nel governo, spesso impediscono che arrivino informazioni a persone che non

sono autorizzate a riceverle.

• →

Integrità L’integrità si riferisce all’attendibilità dei dati o delle risorse. Inoltre man-

tenere l’integrità significa impedire che i dati vengano modificati da persone che non sono

autorizzate a farlo.

• →

Disponibilità La disponibilità si riferisce alla capacità di poter utilizzare in ogni momen-

to le informazioni o le risorse desiderate. La diisponibilità è un aspetto molto importante

per la progettazione del sistema informatico, poiché un sistema disponibile è più efficiente di

un altro sistema. Gli attacchi chiamati Denial of Service (DoS), possono destabilizzare un

sistema e renderlo non più disponibile, pertanto c’è bisogno di un servizio di disponibilità

che risolva questi problemi.

Oltre questi tre aspetti, potremmo aggiungerne un quarto, che molto spesso viene considerato

secondario. Stiamo parlando di:

• →

Autenticità/Imputabilità Avere la certezza che una data informazione appartenga

a chi dice di averla generata. Io per poter stabilire e per assicurarmi che la politica sia

rispettata devo sapere chi sono le persone o l’entità che vogliono accedere questi dati.

Deve essere sempre possibile risalire all’entità che ha eseguito una specifica azione (Non-

Repudiation). Il sistema deve provvedere alla registrazione degli eventi significativi e

proteggere le registrazioni dalle manomissioni.

5

2.1 Politica, Meccanismo e Certezza

Tre sono gli aspetti coinvolti per arrivare ad un punto accettabile di sicurezza.

È fondamentale distinguere questi tre aspetti:

1. Politica

La sicurezza dei sistemi informatici si occupa solitamente di garantire i permessi di accesso

ai dati e alle risorse di un sistema, attuando dei meccanismi di controllo che definiscono ciò

che è permesso o non è permesso fare. Ad esempio, in una base di dati, il manager deve

poter leggere i dati mentre il dipendente non deve poterlo fare. La sicurezza informatica

deve essere studiata quindi in modo tale da non impedire agli utenti di sviluppare gli usi

che sono loro necessari, e di fare in modo che essi possano utilizzare il sistema in piena

fiducia. Questa è la ragione per cui è necessario definire in un primo tempo una politica di

sicurezza.

Per descrivere una politica di sicurezza possono essere utilizzati differenti linguaggi:

• →

Linguaggio naturale Genera diversi problemi. Difficilmente il linguaggio naturale è

in grado di descrivere perfettamente una politica senza creare ambiguità. Inoltre può

essere difficile verificare che tutto quello che si voleva descrivere è stato effettivamente

descritto.

• →

Linguaggio formale Si può usare anche un linguaggio più formale che presenta però

vantaggi e svantaggi: è più facile verificare che nella descrizione vi siano incongruenze o

contraddizioni, ma è più difficile da leggere poichè serve qualcuno che ha competenze.

• →

Linguaggio ad-hoc È un particolare linguaggio utilizzato ad esempio per far si che

un pacchetto riesca ad attraversare un firewall.

2. Meccanismo

Un meccanismo di sicurezza è un metodo, uno strumento o una procedura per far rispet-

tare una politica di sicurezza. Il loro compito è di impedire al sistema di passare da uno

ad uno stato non accettabile della politica. Ad esempio, si supponga che il

stato accettabile

laboratorio di informatica di un’università ha una politica di sicurezza che vieta a qualsiasi

studente di copiare i file dei compiti per casa di un altro studente. Il sistema informatico

prevede meccanismi per impedire ad altri di leggere i file di un utente. Anna non riesce

a utilizzare questi meccanismi per proteggere i suoi file, pertanto Bill riesce a copiarli. Si

verifica quindi una violazione, perché Bill ha violato la politica di sicurezza prestabilita. In

questo esempio, Anna avrebbe potuto facilmente proteggere i suoi file, ma in altri ambienti,

tale protezione può non essere facile. Internet, ad esempio, fornisce solo i meccanismi di sicu-

rezza più elementari, non sempre adeguati a proteggere le informazioni inviate al suo interno.

I meccanismi possono suddividersi in due classi:

• →

Meccanismi procedurali Ad esempio un meccanismo procedurale potrebbe essere

applicato in un azienda. Un utente che vuole accedere ad una determinata macchina

deve superare d

Anteprima
Vedrai una selezione di 10 pagine su 169
Sicurezza Informatica Pag. 1 Sicurezza Informatica Pag. 2
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 6
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 11
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 16
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 21
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 26
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 31
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 36
Anteprima di 10 pagg. su 169.
Scarica il documento per vederlo tutto.
Sicurezza Informatica Pag. 41
1 su 169
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher MicAra93 di informazioni apprese con la frequenza delle lezioni di Sicurezza informatica 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 Roma Tor Vergata o del prof Parisi Presicce Francesco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community