• Non ci sono risultati.

–  Accesso a delle risorse

N/A
N/A
Protected

Academic year: 2021

Condividi "–  Accesso a delle risorse "

Copied!
33
0
0

Testo completo

(1)

Lezione 3: Cenni di sicurezza informatica

•  Password e password managers

•  Crittografia e protezione dei dati

•  Crittografia in chiave pubblica

Referenze:

1.  Ross J. Anderson, Security Engineering (2nd edition), Wiley 2.  PGP 7.0 User Guide, An Introduction to Cryptography

ftp://ftp.pgpi.org/pub/pgp/7.0/docs/english/IntroToCrypto.pdf 3.  Slides il futuro dell’hashing (dal sito di uno dei maggiori password cracker)

http://www.openwall.com/presentations/Passwords12-The-Future-Of-Hashing/

(2)

I problemi

–  Accesso a delle risorse

•  solo chi ha diritto a farlo deve poter accedere a delle risorse:

siano esse strumenti (CPU, stampanti...) o dati

–  Identità

•  essere in grado di identificarsi con certezza

•  essere sicuri che l’entità che ci sta di fronte è proprio chi dice di essere.

–  Per voi:

•  la legislazione sta diventando sempre più restrittiva nel responsabilizzare il proprietario/utente per l’utilizzo illecito del suo PC/account

–  Per gli altri:

•  una volta avuto accesso al sistema in qualche modo, l’hacker può implementare attacchi più in profondità

•  anche se voi non avete informazioni sensibili in un sistema, potreste compromettere qualcun altro

(3)

La password

•  La password è il metodo di identificazione più diffuso:

–  economicità e comodità

(Ref. 3)

(4)

Una delle mie prime lezioni di informatica

Quando ho iniziato a frequentare un laboratorio di astrofisica presso l’osservatorio di Brera, il docente aveva esordito con:

Il sistemista è l’essere più vicino a Dio che conoscete.

Può quasi tutto.

Non può proprio tutto.

Ad esempio non può conoscere la vostra password.

•  La password non è solo la chiave di accesso alle risorse di un un sistema:

è la chiave alla vostra identità

•  Come mai “non è possibile” conoscere una password?

(a quei tempi le password erano immagazzinate in un file leggibile a “others”)

(5)

Hash functions

•  Funzioni che:

–  fornito un dato in ingresso (file, password...)

–  resituiscono un sommario di lunghezza fissa

•  Sono funzioni non invertibili:

–  intrinsecamente molti→uno –  la conoscenza dell’hash non

permette di risalire all’input –  Applicazione: integrità dei dati

•  dal carattere di controllo del codice fiscale al fingerprint di un file –  devono essere instabili rispetto al dato in ingresso

–  deve essere improbabile che due ingressi diversi diano lo stesso hash

•  MD5 (Message Digest): 4 iterazioni, 128 bit

•  SHA-1 (Secure Hash Algorithm): 5 iterazioni, 160 bit

•  SHA-2: versioni da 224, 256, 384 e 512 bit

Diffusione dell’informazione Funzioni invertibile: codifica dei dati Funzioni non invertibili: hash

(Ref. 1)

(6)

Hash functions

•  L’autenticazione avviene verificando che la password fornita dall’utente produca l’hash immagazzinato

Esercizio:

•  usare i comandi md5sum, sha1sum, sha*sum (quanti ce ne sono) per calcolare degli hash.

•  verificare che cambiamenti minimi producono hash molto diversi

(Ref. 3)

(7)

Cracking

•  Il crack di una password consiste nel provare fino a quando non se ne trova una che va bene

•  Difesa: rallentare il processo.

–  non permettere autenticazioni troppo frequenti:

rende praticabili solo attacchi offline da parte di chi si è impossessato del file di hashes

–  come conseguenza: protezione del file di hashes –  aggiunta del “sale”

(aumenta il costo di precalcolare gli hash di password probabili)

–  aumento del peso computazionale degli algoritmi –  aumento della dimensione degli hash

•  Birthday theorem:

–  probabilità che in un gruppo ci siano due persone con lo stesso compleanno

–  se un hash ha N possibili valori, si può trovare una collisione dopo ~√N tentativi.

(8)

Come scegliere una buona password?

(Ref. 4)

(9)

–  Il numero di account (e password) sta proliferando.

•  Non sempre mantenute in maniera sicura...

–  NON utilizzare la stessa password più volte –  NON utilizzare password troppo semplici

•  Problema di usability

–  VOI, siete un punto critico:

•  NON date mai la vostra password, per nessuno motivo

–  specialmente se ve la chiede un “amministratore” del sistema

–  in generale non date mai informazioni senza verificare chi ve le sta chiedendo

•  Phishing: la pesca delle password

–  è l’attacco più frequente –  campagna di spam

–  simulazione di siti (anche senza campagna di spam) –  virus, troiani, key-logger...

NON usare account con privilegi di amministratore Point-Think-(Don’t)Click

–  intercettazione delle comunicazioni

Neanche a un foglio di carta!

(10)

Courtesy Patrick Lynch/Yale University

Do not open unexpected or suspicious e-mails or attachments.

Delete them if they do not concern you or if they appear weird. If in doubt, contact Computer.Security@cern.ch.

Stop-think-click.

Do not click on suspicious links, but only click if you trust their origin.

Protect your passwords.

Do not type them on untrusted computers or Web sites.

Do not install untrusted software or plug-ins.

Indeed, software from untrusted sources may infect or compromise your computer… or violate copyrights.

Let us help you:

visit http://cern.ch/Computer.Security or contact Computer.Security@cern.ch

Cybercriminals are trying to trick you!

Be careful with e-mail & Web

(11)

Un cattivo esempio...

•  Nessun sito dovrebbe “sapere” la vostra password

•  Per questo trovate dappertutto link per resettare la password

•  Lezione 1: controllate sempre:

questo sarebbe un caso di password compromessa

•  Lezione 2: proteggete il vostro account e-mail

(12)

Password managers

•  Tentativo di affrontare il problema di usability

–  una password per ricordarle tutte

•  Ed aggiungere alcune delle protezioni in più

–  key-logger –  falsi siti

•  Disponibili praticamente in ogni browser

–  Immagazzinate localmente

–  protezione tramite master password di solito disabilitata –  Disponibili anche su cloud (se il fornitore è affidabile)

•  Two factor authentication

–  direzione che stanno prendendo la maggior parte dei sistemi

–  aumenta la sicurezza, ma riduce la semplicità di utilizzo

(13)

Firefox Password Manager

http://support.mozilla.org/en-US/kb/password-manager-remember-delete-change-passwords

(14)

Firefox Password Manager

Disabilitata di default!

(15)

Password Managers

(16)

L’ultimo warning

(Ref. 4)

(17)

Crittografia

•  Un quantitativo enorme di dati rilevanti circolano nella rete sia virtuale che fisica

e sono facilmente intercettabili.

•  Trasferimento dati cifrati:

–  Protezione dell’informazione –  Integrità dei dati stessi

–  Autenticazione –  Firma digitale

Non andremo in dettaglio sugli algoritmi (vedi Ref. 1)

ma solo capire le idee chiave

(18)

Crittografia convenzionale

•  Algoritmo che trasforma un testo in una sequenza pseudo-casuale di bit

–  spesso pubblico

–  DES, AES (128 o 256 bit)

•  Chiave, condivisa tra i partecipanti alla comunicazione.

•  Distribuzione della chiave

•  Es.: reti wifi WEP, WPA

(Ref. 2)

(19)

Crittografia a chiave pubblica

•  Due chiavi abbinate:

–  privata: personale di un individuo –  pubblica: distribuita libearamente

Invio di messaggi riservati: Firma digitale:

(Ref. 2)

(20)

In termini pseudo-matematici

•  Una cifratura in chiave pubblica consiste in una funzione che, dato un input casuale R, restituisce due chiavi KR (pubblica) e KR

-1

(privata) tali che:

1.  data KR non è computazionalmente fattibile calcolare KR-1 (ed R)

2.  una funzione di codifica {...} che dato un messaggio M crei un testo cifrato C={M}KR 3.  una funzione di decodifica che, applicata a C ricrei il testo originario M={C}KR-1

•  Una firma digitale consiste in una funzione che, dato un input casuale R,

restituisce una chiave di firma SR (privata) ed una di verifica VR (pubblica) tali che:

1.  data VR non è computazionalmente fattibile calcolare SR

2.  una funzione di firma Sig che dato un messaggio M e la chiave SR produca una firma SigSRM

3.  una funzione di verifica che, data la firma SigSRM, e la chiave VR restituisca VERO se SigSRM è stata creata con SR a partire da M, FALSO altrimenti.

(21)

Esempio

•  Alice vuole parlare con Bob:

–  cifra il suo messaggio con la chiave pubblica di Bob

–  crea un hash del messaggio e lo firma con la sua chiave privata –  manda il tutto a Bob

•  Bob riceve il messaggio:

–  solo lui è in grado di decodificarlo (riservatezza)

–  verifica che l’hash è stato firmato da Alice (autenticità) –  confronta l’hash con quello del messaggio (integrità)

•  Le chiavi pubbliche sono davvero quelle di Alice e Bob?

•  Entra in gioco Charlie, o Certification Authority...

–  Firma (e quindi garantisce) le chiavi pubbliche

–  Certificato X.509: chiave pubblica + firma digitale + altri dati

(22)

Come funziona

•  La crittografia con chiave pubblica si basa sul fatto che è computazionalmente costoso risalire dalla chiave pubblica alla chiave privata.

•  L’algoritmo RSA (dagli autori Ron Rivest, Adi Shamir and Leonard Adleman) si basa sulla difficoltà di scomporre numeri in fattori primi:

–  Gli algoritmi noti sono tutti non-polinomiali

tempo di esecuzione per un numero di b bits cresce più velocemente di bn per qualunque n.

–  L’algorimo più noto ha un tempo di esecuzione

–  Chiave privata: due numeri primi grandi p e q

–  Chiave pubblica: il prodotto N(=pq), ed un intero e, primo rispetto a p-1 e q-1

•  Record:

–  Nel 2009 è riuscita la fattorizzatione di un numero a 768 bit (232 cifre) –  2000 anni di calcolo su CPU a 2.2 GHz

–  Al momento quasi tutte le chiavi pubbliche sono a 2048 bit (4096 per casi particolari)

O exp 64 9 b

!

"

# $

%&

1/3

(

ln b

)

2/3

!

"

## $

%&&

' ( ))

* + ,,

(23)

Come funziona: aritmetica modulare

•  Due numeri interi a e b sono congruenti modulo un intero m, a≡b (mod m) se hanno lo stesso resto della divisione per m.

–  Esempio: 1165136 (mod 5)

•  La congruenza rispetta l’addizione e la moltiplicazione:

se ac e bd, allora: a+bc+d e abcd

–  Esempio: 38 (mod 5), 419 (mod 5)

somma: 7 27 2 (mod 5) prodotto: 12 152 2 (mod 5)

•  Piccolo teorema di Fermat:

se p è primo e non divide a, allora ap-11 (mod p)

–  Esempio: 4 (mod 5), 42=161 (mod 5), 43=644 (mod 5), 44=2561 (mod 5) 3 (mod 5), 32=94 (mod 5), 33=272 (mod 5), 34=811 (mod 5)

•  Estrazione di radici:

la definizione di radice n-esima di a è un numero b tale che bn=a Non è scontata in aritmetica modulare:

–  Esempio: mod 5, 1 ha due radici quadrate, 1 e 4

mod 5, 3 non ha radici quadrate: 121, 224, 324, 421 la radice terza di 3 è 2, e la radice terza di 2 è 3

(24)

Come funziona: crittografia

•  Possiamo sempre pensare un messaggio M come un valore numerico (sequenza di bit di un file).

•  Avendo a disposizione una chiave pubblica (N,e) si può calcolare un messaggio crittografato:

C = Me (mod N)

(se M ha più bit di N), possiamo dividerlo in blocchi di lunghezza minore.

•  Per decodificarlo bisogna calcolare la M = e√C (mod N)

•  È facile se conosco p e q:

–  cerco un intero d tale per cui ed1 (mod (p-1)(q-1))

–  allora e√C = Cd

C

d

= M ( )

e d

= M

ed

= M

1+k ( p−1)(q−1)

= M

1

M

k ( p−1)(q−1)

= M mod N ( )

piccolo Teorema di Fermat

(25)

Come funziona: firma digitale

•  Adesso il gioco è facile!

•  Una volta preparato il messaggio M , si può calcolare la firma:

sig{M} = Md (mod N)

•  Il ricevente può verificare la firma calcolando sig{M}e (mod N)

e controllare che il risultato sia il messaggio ricevuto M

•  In realtà è più frequente applicare la firma ad un hash di M.

•  Una protezione che viene generalmente applicata, per evitare che si possa indurre la chiave da una serie di messaggi simili ripetuti più volte è utilizzare un XOR logico, ⊕, con una hash function h ed un numero casuale R

•  ed inviare come messaggio C1 e C2.

C1 = M ⊕ h(R) C2 = R ⊕ h(C1)

(26)

Applicazioni

•  Certificati dei siti web:

–  fornendo una chiave pubblica permetto al browser di codificare i dati prima di inviarli

–  permette di controllare che la risposta provenga effettivamente dal server contattato

•  Autenticazione con ssh,

–  Client e server si scambiano le public key

•  Normalmente quella del server viene memorizzata nell’account utente.

–  senza trasferimento di password:

•  public key delle persona autorizzate ad accedere all’account

•  il server invia una challenge codificata con la public key

•  il client risponde dimostrando di aver decodificato la challenge (ovvero è in possesso della private key)

Esercizio:

•  certificati con Firefox

(27)

Un cattivo esempio...

Se siamo sicuri di accettare comunque il certificato

(28)

Un cattivo esempio (2)

1

2

(29)

Un cattivo esempio (2)

3

(30)

Un esempio normale

Il certificato è in regola ma da parte di una

Certification Autority non riconosciuta dal browser

La Certification Autority è l’INFN, di cui ci fidiamo. NON aggiungiamo

un’eccezione di sicurezza, ma facciamo la cosa giusta...

Un sito sensibile dell’INFN

(31)

Un esempio normale (2)

Andiamo sul sito della INFN Certification Autority

(si trova facilmente con un motore di ricerca)

Installiamo il suo ROOT Certificate

(Nella finestra di dialogo, selezionare le operazioni per cui ci vogliamo fidare (probabilmente tutte)

(32)

Un esempio normale (3)

1.  Dopo aver accettato le opzioni e caricato il certificato, riapriamo le opzioni del

browser e guardiamo i certificati.

2.  Vediamo che ora il certificato dell’INFN compare tra le authorities, insieme a quelle predefinite (builtin) del browser.

3.  Se ora torniamo sul sito iniziale, vedremo che non ci sono più avvisi di sicurezza, dato che il browser ora sa che ci fidiamo dell’INFN CA.

(33)

Eve

Riferimenti

Documenti correlati

Si rende noto che dal 28 maggio 2002 è attiva, in sinergia con l'INPS e l'INPDAP, presso i locali messi a disposizione dall'Amministrazione comunale, l'Agenzia di Petilia

Attestato di partecipazione all’evento formativo: “I disturbi della memoria: Psicofisiologia, patologia e riabilitazione”; organizzato dall’associazione Anni Verdi Durata:

Ogni attrito tra la particella e la parete interna del canale ` e trascurabile e, essendo il canale sottile, il campo elettrico generato dalla distribuzione di carica coincide con

Individual frames have a special slot called :INSTANCE-OF whose filler is the name of a generic

Constants stand for individuals, concepts for sets of individuals, and roles for binary relations.. The meaning of a complex concept is derived from the meaning of its parts the

note: ideally skeptical reasoning cannot be computed in a path-based way (conclusions may be supported by different paths in each extension). We’ve been doing

Attività prevalente svolta La gestione di servizi pubblici a favore dei soggetti che hanno proceduto alla Costituzione della società. Dati sede legale (indirizzo fax telefono)

pag. 3.4, la parte destra della figura) sono erroneamente riportati tutti orbitali s mentre nella prima colonna sono orbitali s (2s1, 3s1,4s1,5s1,6s1) ed a partire dalla seconda