SICUREZZA - lumsa.it · LE FUNZIONI DI HASH Algoritmi che, a partire da un blocco di dati, generano...

37
SICUREZZA PROF. MAURIZIO NALDI ABILITÀ INFORMATICHE

Transcript of SICUREZZA - lumsa.it · LE FUNZIONI DI HASH Algoritmi che, a partire da un blocco di dati, generano...

SICUREZZAPROF. MAURIZIO NALDI ABILITÀ INFORMATICHE

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

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 PASSWORD1. 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 COMUNICAZIONEAlice 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

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:

▸ 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

• la chiave pubblica, kpub, divulgabile a tutti

• la chiave privata, kpri, conosciuta e custodita dal solo proprietario

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

Algoritmo di codifica

Mittente (Alice) Ricevente (Bob)

Chiave pubblica del ricevente Chiave privata

del ricevente

Chiave pubblica del ricevente

Messaggio in chiaro

Messaggio in chiaro

Messaggio cifrato Algoritmo

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)

Mittente (Alice)Ricevente (Bob)

Chiave privata del mittente

Chiave pubblica del mittente

Algoritmo di codifica

Messaggio in chiaro

Messaggio in chiaroMessaggio

cifrato

Chiave pubblica del mittente

Algoritmo di 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

Algoritmo di

decodifica

Ricevente (Mario)

Chiave pubblica del mittente

Messaggioin chiaroMessaggioin chiaro

Chiave pubblicadel ricevente

M

E

Algoritmo di

decodifica

Chiave privatadel destinatario

M

CRITTOGRAFIA SIMMETRICA VS. ASIMMETRICA

Simmetrica ‣ La stessa chiave è utilizzata sia

per codificare che per decodificare

‣ Gli algoritmi sono più veloci

‣ La gestione delle chiavi è problematica

‣ Non offre servizi di non ripudio

Asimmetrica ‣ La chiave usata per codificare

è diversa dalla chiave usata per decodificare

‣ Gli algoritmi sono più lenti ‣ La gestione delle chiavi è più

semplice (la chiave privata la tengo solo io, l’altra può essere “pubblica” per definizione) ‣ n chiavi per n utenti

‣ Permette di avere servizi di non ripudio

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)

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.

PROPRIETÀ FUNZIONE HASH

Una funzione hash deve

▸ essere coerente: un blocco di dati uguale deve corrispondere uguale hash;

▸ essere (o quanto meno apparire) casuale, per impedire l’interpretazione accidentale del blocco dati originale;

▸ essere (relativamente) univoca, ossia la probabilità che due blocchi di dati generino il medesimo hash deve essere virtualmente nulla;

▸ essere non invertibile: non deve essere possibile risalire al blocco di dati originale dalla sua fingerprint;

▸ 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)

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

Messaggio firmato digitalmente

Processo di Hashing

Message Digest

Firma digitale

Chiave privata del mittente

Codifica

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)

Messaggio firmato

digitalmente

Message Digest

Chiave pubblica del mittente

Decodifica

CA

Message Digest

Hashing

Firma digitale

Messaggio

Verifica= ?

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:

● Necessità di un programma ospite. Il virus inserisce il proprio codice nel file che contiene un altro programma eseguibile.

● 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.

SPAMMING

● Spamming è il susseguirsi ripetuto di una parola/frase (generalmente commerciali).

● Può essere attuato attraverso qualunque sistema di comunicazione, ma il più usato è internet, attraverso messaggi di posta elettronica, chat, tag board o forum.