Sei sulla pagina 1di 50

Sicurezza delle informazioni

Prof. Maurizio Naldi


A.A. 2015/16
Sommario
l  Concetti generali
l  Controllo degli accessi
Ø  Password
l  Crittografia
Ø  Simmetrica
Ø  Asimmetrica
Ø  Hash crittografici
Ø  Firma digitale e posta elettronica certificata
l  Virus, worm e trojan
l  Phishing, spamming
Concetti generali
•  Confidenzialità o Riservatezza
(C): rendere impossibile a terze
parti comprendere dati e
informazioni scambiate tra un
mittente e uno o più destinatari
Integrità (I): proteggere dati e
informazioni da modifiche del
contenuto, accidentali oppure
effettuate maliziosamente.
•  Disponibilità (A): garantire
l'accesso ad un servizio o a delle
risorse.
•  Non ripudio: garantire che
nessuno dei corrispondenti
possa negare la transazione
•  Autenticazione: assicurare
l'identità di un utente
Controllo degli accessi: MAC
Il Mandatory Access Control (MAC) si riferisce a un tipo di controllo
d'accesso al quale il sistema operativo vincola la capacità di un
soggetto di eseguire diverse operazioni su un oggetto o un obiettivo.
l  Un soggetto può essere, ad esempio, un processo, ed oggetti i
file, le cartelle, le porte TCP/UDP, un dispositivo fisico
(e.g., stampante).
l  I soggetti e gli oggetti hanno una serie di attributi di sicurezza.
Quando un soggetto tenta l'accesso a un oggetto, il kernel del
sistema operativo utilizza una regola di autorizzazione che sulla
base degli attributi di sicurezza decide se l'accesso è consentito.
l  Anche un sistema di gestione della base di dati (DBMS), come
meccanismo di controllo degli accessi può applicare MAC. In
questo caso gli oggetti sono rappresentati dalle tabelle, dalle
viste, dalle procedure, etc.
Controllo degli accessi: DAC
Il Discretionary Access Control (DAC) è un tipo di
controllo d'accesso nel quale è l'utente proprietario di una
risorsa che decide se applicare o meno dei controlli per
l'accesso e di che tipo, oltre a decidere a quali utenti o
gruppi di utenti garantire l'accesso.
l  Un esempio è rappresentato dalla gestione degli
accessi alle cartelle o ai file. È l'utente proprietario
(colui che lo ha creato) del file (o della cartella) a
decidere i criteri di accesso (lettura, modifica, etc.)
sullo stesso da parte degli altri utenti.
•  Relativo ad accessi locali
•  Relativo ad accessi di rete (cartelle condivise)
Autenticazione
Esistono varie metodologie di autenticazione:

Login e password: è il metodo più diffuso.


Se queste non corrispondono a quelle conservate (in varie forme) nel sistema,
l’accesso viene negato.
Carta magnetica o token: il riconoscimento viene effettuato inserendo la
carta in un apposito lettore e digitando una password oppure, nel caso
del token, usando come password quella proposta dal token
•  simile all’accesso ai sistemi di Home Banking
Biometrie: si tratta di lettori di impronte digitali o vocali, analisi della
retina, analisi della firma.
Il sistema biometrico è composto da:
Registrazione – vengono misurate ed immagazzinate le caratteristiche
dell’utente.
Identificazione – l’utente fornisce il suo “account”, il sistema esegue
delle misurazioni e confronta i valori con quelli già campionati.
Autenticazione
L’autenticazione a n fattori è una combinazione di
1. Quello che si conosce (password)
2. Quello che si ha (token)
3. Quello che si è (caratteristiche fisiche)
4. Quello che si fa

Più è alto n, tanto più è forte l’autenticazione


(ma cresce la complessità di gestione…).
Esempio di regole per una buona password
1.  Almeno 8 caratteri
2.  Almeno
1.  Una lettera maiuscola
2.  Una lettera minuscola
3.  Una cifra
4.  Un carattere tra ! # $ % ^ & * ( ) - _ + = { } [ ] : ; ‘ “ \ < , > . @
3.  Non usare parole in nessuna lingua, dialetto, gergo
4.  Non usare dati personali
5.  Non usare prefissi o suffissi alle vecchie password

Usare dei “mnemonici”! Usare le lettere iniziali delle parole di una frase ed
effettuare delle sostituzioni

O 0
i 1
s $
oggi sono in piena forma o almeno spero 0$1Pf0a$
Crittografia
La crittografia permette di mantenere e trasmettere, in modo
sicuro, tutte quelle informazioni che sono tutelate dal diritto alla
privacy, ma anche quelle che, per qualunque motivo, sono
ritenute “riservate”.
La crittografia nasce MOLTO tempo prima dei computer ed è
stata utilizzata, almeno in ambito militare, fin dall’antichità.

Ci sono due casi in cui è necessario avvalersi della crittografia:


•  quando l'informazione deve essere conservata sul posto e
dunque “protetta” da accessi non autorizzati

•  quando l'informazione deve essere trasmessa, la cifratura è


necessaria perché sono possibili intercettazioni che
pregiudicherebbero la confidenzialità ed integrità della
comunicazione.
Crittografia nella comunicazione
Alice e Bob vogliono comunicare “in sicurezza” significa che:
Alice vuole che solo Bob sia in grado di capire un messaggio da lei
spedito (CONFIDENZIALITÀ ), anche se essi comunicano su un
mezzo “non sicuro” dove un intruso (Trudy) può intercettare
qualunque cosa trasmessa attraverso questo canale
Bob vuole essere sicuro che il messaggio che riceve da Alice sia
davvero spedito da lei (AUTENTICAZIONE)
Alice e Bob vogliono essere sicuri che i contenuti del messaggio di
Alice non siano alterati nel transito (INTEGRITÀ DEL
MESSAGGIO)
Crittografia

Esistono due classi principali di algoritmi che si


basano sull’utilizzo di chiavi:
•  Crittografia Simmetrica (detta anche a
chiave privata);
•  Crittografia Asimmetrica (detta anche a
chiave pubblica/privata).
Crittografia Simmetrica

Gli algoritmi simmetrici sono quelli usati


nella crittografia classica e permettono al
mittente ed al destinatario di usare la
stessa chiave per cifrare e decifrare un
messaggio.
Crittografia Asimmetrica

Gli algoritmi asimmetrici si basano su una


coppia di chiavi: una è utilizzata per cifrare
e l’altra per decifrare il dato ma i ruoli sono
interscambiabili.
Compromesso

Sicurezza vs. Prestazioni


•  In genere, a parità di algoritmo, più le
chiavi sono lunghe, più è difficile cercare di
“attaccare” il sistema provando tutte le
possibili chiavi.
•  In genere, più le chiavi sono lunghe e più
gli algoritmi sono lenti (limiti prestazionali).
La Crittografia a chiave
simmetrica
Nella crittografia a chiave simmetrica è
utilizzata una sola chiave detta segreta o
privata, la quale è un parametro di una
funzione invertibile. La chiave serve sia
per cifrare, sia per decifrare e deve essere
nota al mittente ed al destinatario.
Principio di funzionamento

1. Il mittente cifra il messaggio con la chiave


segreta;
2. Trasmette il messaggio cifrato attraverso un
canale (tipicamente insicuro nel senso che può
essere intercettato)
3. Il destinatario riceve il messaggio cifrato e lo
decifra con la chiave segreta;
La Crittografia a chiave
simmetrica
Crittografia simmetrica: Vantaggi e svantaggi

Vantaggi
semplicità e rapidità di
esecuzione degli algoritmi
crittografici
Svantaggi:
scambio della chiave segreta: la
comunicazione della chiave
condivisa deve avvenire
attraverso un canale sicuro;
è necessaria una chiave diversa
per ogni coppia di
interlocutori (per evitare che
l’interlocutore C possa
leggere i messaggi mandati a
B).
per n coppie di interlocutori
sono necessarie n(n-1)/2
chiavi simmetriche distinte
Vantaggi:
•  Velocità di funzionamento, quindi è possibile utilizzare
chiavi molto lunghe, dato che gli algoritmi per cifrare o
decifrare sono molto veloci.

•  Per quanto riguarda i requisiti di Autenticità, Integrità e


Riservatezza, non possiamo affermare che essi siano
strettamente soddisfatti poiché tutto è legato al “gruppo”
di persone che possiedono la chiave e non a un singolo
soggetto
Svantaggi (1):
•  L’aumento di velocità dei processori degli elaboratori: ciò
rende meno sicuro questo sistema crittografico, visto che
gli algoritmi simmetrici sfruttano operazioni molto
semplici come trasposizione o sostituzione di bit e le
ricerche esaustive diventano possibili in tempi sempre
minori.
•  L’uso ripetuto della stessa chiave: rappresenta un
potenziale problema; più volte la chiave viene utilizzata,
più è facile riuscire a carpirla.
Svantaggi:
•  Distribuzione delle chiavi: Come distribuire le chiavi per la
cifratura?
•  Utilizzo di un canale sicuro? Se si disponesse di un canale
sicuro non sarebbe necessaria la crittografia...
•  Corriere fidato? Esiste?
•  Incontrarsi in un luogo segreto? E’ un processo digitale?
Il problema si amplifica al crescere del numero delle
persone a cui si vuole spedire il messaggio.
•  Scalabilità: Se n persone desiderano comunicare,
necessarie circa n2 chiavi (che vanno peraltro distribuite…)
•  Affidabilità del destinatario: potrebbe perdere o dare ad
altri non autorizzati la propria chiave. In tal caso occorre
generare una nuova chiave e ridistribuirla …
Algoritmi a chiave privata
Algoritmi a chiave privata/segreta (simmetrici):
•  DES (Data Encryption Standard),
sviluppato da IBM e raccomandato dal
NIST come standard dal 1977 al 1997.
Chiave a 56 bit.
•  AES (Advanced Encryption Standard),
sviluppato da Daemen e Rijmen (Rijndael)
e raccomandato dal NIST come standard
dal 2001. Chiave a 128/256 bit.
Crittografia asimmetrica (a chiave pubblica)

Ogni utente ha una coppia di chiavi, distinte


ma legate fra loro:
•  la chiave pubblica, kpub, divulgabile a tutti
•  la chiave privata, kpri, conosciuta e custodita dal solo
proprietario

Caratteristiche dell’algoritmo di cifratura:


•  Non è possibile risalire alla chiave privata
conoscendo la chiave pubblica.
•  Un messaggio cifrato con la chiave pubblica Kpub è
decifrabile solo con la corrispondente chiave
privata Kpri
•  Viceversa, un messaggio cifrato con la chiave
privata Kpri è decifrabile solo con la corrispondente
chiave pubblica Kpub
Crittografia asimmetrica 1.
Confidenzialità(=riservatezza)
•  Bob divulga la propria chiave pubblica P e mantiene
segreta la propria chiave privata S
•  Alice cifra il messaggio con la chiave pubblica di Bob
•  Bob decodifica il messaggio con la propria chiave privata;
essendo l’unico in possesso di tale chiave privata, è
l’unico a poter leggere il messaggio
Attenzione! In realtà il meccanismo è più complesso (combinazione chiave simmetrica
chiave pubblica/privata)
Mittente (Alice) Ricevente (Bob)
Chiave pubblica
del ricevente
Chiave pubblica Chiave privata
del ricevente del ricevente

Messaggio Messaggio Messaggio


in chiaro cifrato in chiaro
Algoritmo Algoritmo
di codifica di
decodifica
Crittografia asimmetrica 2.
Autenticazione e non ripudio
•  Alice usa la propria chiave privata per cifrare il messaggio diretto a
Bob
•  Bob è sicuro che il messaggio provenga effettivamente da Alice:
infatti solo Alice conosce la propria chiave privata e la chiave
pubblica di Alice è l’unica che consente di decifrare il messaggio
Non ripudio = impossibilità per il mittente di negare di essere l’autore
del messaggio (equivale alla firma di un documento cartaceo)

Ricevente (Bob)
Mittente (Alice)
Chiave pubblica
del mittente Chiave pubblica
Chiave privata del mittente
del mittente
Messaggio Messaggio
Messaggio in chiaro
in chiaro Algoritmo
Algoritmo cifrato
di
di codifica decodifica
Crittografia asimmetrica: integrità,
autenticazione, confidenzialità
Alice vuole essere sicura che il documento sia letto unicamente da Bob,
garantendo anche la paternità del documento
Si applica una doppia crittografia a chiave pubblica: Alice cifra il
documento prima con la propria chiave privata, successivamente con
la chiave pubblica di Bob
Autenticazione - Bob è sicuro che il documento sia stato spedito da
Alice: solo lei conosce la propria chiave privata e la sua chiave
pubblica è garantita dalla Certification Authority(CA)
Confidenzialità - Alice è sicura che il documento sia letto unicamente
da Bob: solo quest’ultimo conosce la propria chiave privata
Mittente (Elisa) E M Chiave pubblica Ricevente (Mario)
Chiave pubblica del ricevente
del mittente
Certification
Chiave privata E Chiave pubblica M authority
M E Chiave pubblica
del mittente del destinatario Chiave privata del mittente
del destinatario
Messaggio Messaggio Messaggio
in chiaro cifrato in chiaro
Algoritmo Algoritmo Algoritmo Algoritmo
di di
di codifica di codifica
decodifica decodifica
Crittografia simmetrica VS. asimmetrica
Simmetrica Asimmetrica
•  La stessa chiave è •  La chiave usata per
utilizzata sia per codificare è diversa
codificare che per dalla chiave usata per
decodificare decodificare
•  Gli algoritmi sono più
•  Gli algoritmi sono più lenti
veloci •  La gestione delle
chiavi è più semplice
•  La gestione delle (la chiave privata la
chiavi è problematica tengo solo io, l’altra
può essere “pubblica”
•  Non offre servizi di per definizione)
non ripudio •  n chiavi per n utenti
•  Permette di avere
servizi di non ripudio
Risolve i problemi tipici della
crittografia a chiave simmetrica:
•  lo scambio delle chiavi non è più critico
•  non esistono problemi di scalabilità: n utenti n
chiavi
•  il problema dell’autenticità del mittente viene
immediatamente risolto, in quanto solo il titolare
di quella chiave privata potrà aver generato il
messaggio corrispondente alla relativa chiave
pubblica;
Risolve i problemi tipici della
crittografia a chiave simmetrica:
- si risolve il problema della riservatezza: infatti, poiché
l’algoritmo è simmetrico dal punto di vista delle chiavi (ciò che
viene crittato con la chiave privata va decrittato con quella
pubblica, ma anche viceversa) è sufficiente crittare un
messaggio con la chiave pubblica affinché solo il titolare della
corrispondente chiave privata possa leggerlo;
- infine ogni soggetto dovrà detenere una sola coppia di chiavi
(la propria): le chiavi pubbliche verranno iscritte in appositi
registri, pubblicamente consultabili, dai quali potranno essere
scaricate al momento opportuno .
Concetti su cui si basa
crittografia a chiave pubblica
1. Un messaggio cifrato con una chiave può
essere decifrato solo con l’altra chiave.
2. È computazionalmente molto difficile
ricavare una chiave dall’altra, ovvero le
chiavi devono essere indipendenti; la
conoscenza di una non deve concedere
nessuna informazione utile alla
ricostruzione dell’altra.
Algoritmi a chiave pubblica
Algoritmi a chiave pubblica (asimmetrici):
•  RSA Proposta da Rivest, Shamir &
Adleman nel 1977. Si basa sulla difficoltà
presunta della fattorizzazione. Standard
de facto. Cocks aveva già proposto un
sistema equivalente nel 1973, classificato.
•  El Gamal (logaritmo discreto)
•  Rabin (fattorizzazione)
Svantaggi:

Uno dei grossi limiti nell’utilizzo degli


algoritmi a crittografia asimmetrica
consiste nel fatto che i numerosi e
complessi calcoli rendono la loro
implementazione poco efficiente
(lunghezza minima delle chiavi superiori a
1024 bit, esponenziazioni in campi
discreti).
Le funzioni di hash
Algoritmi che, a partire da un
blocco di dati, generano una
sequenza di numeri
(impronta o fingerprint o
digest) molto più corta del
blocco stesso e che può
essere considerata
relativamente univoca, nel
senso che è estremamente
difficile trovare un altro
blocco di dati “sensato”, che
generi la stessa sequenza.
Una funzione hash deve godere
delle seguenti proprietà:
1.  essere coerente: un blocco di dati uguale deve corrispondere
uguale hash;
2.  essere (o quanto meno apparire) casuale, per impedire
l’interpretazione accidentale del blocco dati originale;
3.  essere (relativamente) univoca, ossia la probabilità che due
blocchi di dati generino il medesimo hash deve essere
virtualmente nulla;
4.  essere non invertibile: non deve essere possibile risalire al blocco
di dati originale dalla sua fingerprint;
5.  infine essere equiprobabile: ognuna delle possibili sequenze
binarie che costituiscono l’hash deve avere la stessa probabilità di
essere generata delle altre.
Algoritmi di hash
- la serie “Message Digest”: gli ormai obsoleti MD2 e MD4
e il più recente MD5; quest’ultimo in particolare elabora il
messaggio a blocchi di 512 bit per generare una
fingerprint di 128 bit;
- il “Secure Hash Algorithm 1” (o SHA-1): derivato da MD4,
elabora il messaggio a blocchi di 512 bit e genera una
fingerprint di 160 bit;
- il RIPEMD-160: elaborato da un gruppo di lavoro
finanziato dall’UE (RIPE – Race Integrity Primitives
Evaluation), nasce come ideale sostituto di MD5 e
SHA-1, rispetto ai quali promette maggiore sicurezza;
elabora il messaggio a blocchi di 256 bit e genera una
fingerprint di 160 bit.
Firma autografa

•  Creata manualmente
•  Verificata manualmente (metodo sicuro?)
•  Non falsificabile (perizia calligrafica, metodo
sicuro?)
•  Non ripudiabile (perizia calligrafica, metodo
sicuro?)
•  Apposizione sul documento (non trasferibile)
Firma digitale

Messaggio Messaggio HASHING DIGEST in


in chiaro in chiaro chiaro

DIGEST
Cifrato Se risultano uguali
Messaggio il msg risulta
in chiaro autenticato

Se non risultano
HASHING uguali il msg non
risulta autenticato

DIGEST in
chiaro DIGEST DIGEST in
Cifrato chiaro
Chiave
privata di
Bob
Chiave
pubblica
di Bob
Integrità, autenticità e non ripudio: Firma digitale (1)
•  Le funzioni di hash consentono di ottenere un’ “impronta
digitale” del messaggio (message digest) basata sul suo
contenuto.
•  Cambiando anche un solo bit del messaggio originale
cambia il valore del message digest
•  Il message digest è quindi crittografato con la chiave
privata del mittente e aggiunto al messaggio originale (in
chiaro)
Messaggio
da firmare

Processo Messaggio
di Chiave
privata del firmato
Hashing digitalmente
mittente

Codifica
Message Firma
Digest digitale
Integrità, autenticità e non ripudio: Firma digitale (2)
Per verificare che il messaggio ricevuto non è stato modificato durante la
trasmissione e che il mittente è effettivamente chi dice di essere, il
destinatario compie le seguenti operazioni:
1. usando lo stesso algoritmo di hashing, calcola un message digest del
documento ricevuto
2. usando la chiave pubblica del mittente (prelevata dalla CA), decodifica la
firma digitale del mittente per ottenere il message digest del documento
originale
3. confronta i due message digest per verificare se coincidono: se i due
message digest risultano diversi significa che il messaggio è stato
modificato oppure il mittente non è chi dice di essere (ha firmato con una
chiave privata diversa)
Hashing
Messaggio Message
firmato Digest
digitalmente
Messaggio
Chiave
pubblica del =?
mittente Verifi
ca
Message
Decodifica Digest
40 Firma
CA digitale
Posta Elettronica Certificata
Combinazione di tecniche
•  Firma digitale + crittografia
–  Per assicurare non ripudiabilità, non modificabilità e
segretezza dei messaggi
•  Crittografia mista
–  L’uso della crittografia asimmetrica è poco pratico
–  lentezza degli algoritmi
–  possibili attacchi di tipo “plain text”
–  Si usa la crittografia a chiave pubblica per scambiare
in modo sicuro chiavi simmetriche
–  Le chiavi simmetriche (chiavi di sessione) sono usate
per cifrare il flusso di dati (vengono cambiate per ogni
messaggio)
Malware (Malicious software)
•  Classificazione in base alla necessità di un programma
ospite
•  Parassiti: Virus, bombe logiche, backdoors
•  Indipendenti: worm
•  Classificazione in base alla capacità di autoreplicarsi
•  Programmi attivati da un trigger: bombe logiche,
backdoor
•  Programmi che si autoreplicano: virus. worm
Virus, Worm e Trojan

Un virus informatico è un frammento di


programma scritto per eseguire operazioni (in genere
dannose…) senza il consenso o la consapevolezza
dell'utente. Un virus è definito da due criteri:
l  Necessità di un programma ospite.
Il virus inserisce il proprio codice nel file che contiene
un altro programma eseguibile.
l  Capacità di autoreplica. Ad esempio, potrebbe
inserirsi in altri file eseguibili presenti sullo stesso
sistema. I virus possono colpire allo stesso modo
computer desktop, server di rete ma anche tablet o
smartphone!
Virus, Worm e Trojan

I worm sono programmi che si replicano da


sistema a sistema senza servirsi di un file ospite.
Ciò li distingue dai virus, che si diffondono tramite file ospiti
infetti.
Anche se dei worm possono trovarsi all'interno di altri file,
ad esempio in documenti Word o Excel, c'è una differenza
tra il modo in cui i worm e i virus utilizzano il file ospite.
è  Di solito il worm rilascia un documento che contiene
già la macro worm al suo interno. L'intero documento
che viaggia da computer a computer è dunque da
considerarsi il worm.
Virus, Worm e Trojan
Un Trojan (horse) è un codice malevolo, le cui
funzionalità sono nascoste all'interno di un programma
apparentemente utile; quando viene eseguito, il Trojan
provoca danni (perdita o furto di dati).
È l'utente stesso che installando ed eseguendo un
certo programma (allegati email, applicazione web),
inconsapevolmente, installa ed esegue anche il codice
trojan nascosto.
Una distinzione molto importante fra Trojan e virus è
che i Trojan non si replicano automaticamente.
Phishing
Il phishing è un tipo di truffa via Internet
attraverso la quale un aggressore cerca di
ingannare la vittima convincendola a fornire dati
personali sensibili.
Si tratta di una attività illegale che sfrutta
tecniche di ingegneria sociale: attraverso email,
un malintenzionato cerca di ottenere dalle vittime
credenziali di accesso (password, numero di
carta di credito, etc.) o altre informazioni.
RSA – Marzo 2011
Hackers penetrano i server della RSA
Sottraggono informazioni sui sistemi di sicurezza
In particolare informazioni sui prodotti di autenticazione
2-factor SecurID (usati, tra gli altri, dalla Lockheed-
Martin e Northrop-Grumman che fabbricano armi)
Violazione resa possibile da un attacco di tipo phishing
verso un piccolo numero di impiegati.
Email con un foglio excel in attach contenente malware
(Adobe Flash zero-day exploit) che installava una backdoor.
RSA – Marzo 2011
“Our investigation has led us to believe that the attack is in
the category of an Advanced Persistent Threat (APT). Our
investigation also revealed that the attack resulted in certain
information being extracted from RSA's systems. Some of
that information is specifically related to RSA's SecurID two-
factor authentication products. While at this time we are
confident that the information extracted does not enable a
successful direct attack on any of our RSA SecurID
customers, this information could potentially be used to
reduce the effectiveness of a current two-factor
authentication implementation as part of a broader attack.
We are very actively communicating this situation to RSA
customers and providing immediate steps for them to take to
strengthen their SecurID implementations..”
Art Coviello, Executive Chairman, RSA
Spamming
l  Spamming è il susseguirsi
ripetuto di una parola/
frase (generalmente
commerciali).
l  Può essere attuato
attraverso qualunque
sistema di comunicazione,
ma il più usato è internet,
attraverso messaggi di
posta elettronica, chat,
tag board o forum.