Confidenzialità ed Integrità - Intranet...

53
Impianti Informatici G.Serazzi – S.Zanero aa 2005/06 CRITT-1 Confidenzialit Confidenzialit à à ed Integrit ed Integrit à à Cenni di crittografia, hashing, firma digitale, metodi di autenticazione informatica per sistemi distribuiti 12/05/06 12/05/06

Transcript of Confidenzialità ed Integrità - Intranet...

Page 1: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-1

ConfidenzialitConfidenzialitàà ed Integrited Integritàà

Cenni di crittografia, hashing, firma digitale, metodi di autenticazione informatica per sistemi distribuiti

12/05/0612/05/06

Page 2: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-2

IndiceIndice

ConfidenzialitàConfidenzialitàCrittografia: algoritmi a chiave privataCrittografia: algoritmi a chiave pubblica

IntegritàIntegritàFunzioni di hash

Esempio di applicazione: la firma digitalela firma digitaleConfidenzialità: tecniche di autenticazioneConfidenzialità: tecniche di autenticazione

Nozioni baseTecniche e sistemi di autenticazione

Page 3: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-3

Che cosChe cos’è’è la crittografia?la crittografia?

La crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la scienza che si occupa dello studio delle scritture “segrete”.

E’ nata come branca della matematica e dell’informatica grazie all’utilizzo di tecniche di teoria dei numeri e di teoria dell’informazione.

E’ entrata a far parte della nostra vita quotidiana per la protezione delle informazioni digitali. Dalle smart card, ai cellulari, alle trasmissioni via Internet, alle tv satellitari, etc.

Page 4: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-4

Concetto di baseConcetto di base

Per sistema crittografico si intende un sistema in grado di cifrare e decifrare un messaggio attraverso l’uso di un algoritmo (metodo di calcolo) e di una chiave (una stringa segreta alfanumerica).Il messaggio che dovrà essere cifrato viene chiamato testo in chiaro (plaintextplaintext) mentre il risultato dell’algoritmo crittografico testo cifrato (ciphertextciphertext).

Testo in chiaro

Sistema crittografico

Testo cifrato

Page 5: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-5

Principio di KerckhoffsPrincipio di Kerckhoffs

Un principio fondamentale della crittologia moderna afferma che:“La sicurezza di un crittosistema non deve dipendere dalla segretezza dell’algoritmo usato, ma solo dalla segretezza della chiave”

Pubblicato nel 1883 nel libro “La criptographie militarie”

Quasi tutti gli algoritmi crittografici moderni vengono rilasciati con i codici sorgenti

Page 6: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-6

Crittografia simmetrica e asimmetricaCrittografia simmetrica e asimmetrica

Fondamentalmente i sistemi crittografici si dividono in due tipologie:

Sistemi crittografici

Sistemi simmetrici Sistemi asimmetriciSi utilizza una sola chiave per

cifrare e decifrare Si utilizzano una coppia di chiavi:

una per cifraree l’altra per decifrare

Page 7: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-7

I cifrari simmetriciI cifrari simmetrici

Utilizzano la stessa chiave per cifrare (encryption) e decifrare (decryption) i messaggi

Per questo sono detti anche “a chiave singola” o “a chiave segreta”

Hanno il problema della trasmissione della chiave tra mittente e destinatario.

Page 8: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-8

Crittografia Crittografia simmetricasimmetrica

mittentemittente destinatariodestinatario

testoin chiaro

testoin chiaro

decifraturacifratura

ChiaveChiavesegretasegretaPP KK

C=E (P)C=E (P)KK

E E KK D D KK

P= D (C)P= D (C)KK

rete insicurarete insicura

Testo Testo CifratoCifrato

Page 9: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-9

Primo ingrediente: sostituzionePrimo ingrediente: sostituzione

Si rimpiazza ogni carattere del messaggio con un altro carattereEsempio (Cifrario di Cesare)Esempio (Cifrario di Cesare): ogni lettera viene sostituita con quella che la segue di nn posizioni

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Esempio: la parola “SICUREZZA” diventa “VLFXUHCCD”

La chiave, che deve essere tenuta segretasegreta, è nn=3=3

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Page 10: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-10

Secondo ingrediente: trasposizione o diffusioneSecondo ingrediente: trasposizione o diffusione

i caratteri del messaggio vengono cambiati di posizione in base all’algoritmo ed al valore della chiave

esempioesempio: invertendo righe e colonne della matrice contenente il testo in chiaro (chiavechiaveK=[3,5]K=[3,5])

CIAO A TUTTI (per righe)si trasmette per colonneCATI IAT OU T

IITT

TTUUTTAA

OOAAIICC

Page 11: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-11

Keyspace, attacco a forza brutaKeyspace, attacco a forza bruta

Attacco “a forza bruta” o “bruteforcing”: provare tutte le chiavi possibili

È applicabile ad ogni algoritmo: un algoritmo non rotto è attaccabile solo con un attacco di bruteforcing

La praticabilità dell'attacco dipende dal numero di chiavi possibili (ovvero dalla dimensione del cosiddetto “keyspace”)

Per questo l'algoritmo di Cesare era più semplice di quello con la matrice !

Dimensione misurata generalmente in bit, tempo esponenziale sul numero dei bit: l’aumento della potenza di calcolo degli elaboratori e il possibile utilizzo di sistemi distribuiti rende necessario ingrandire il keyspace

Page 12: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-12

Cifrari simmetrici moderniCifrari simmetrici moderni

Nella crittografia moderna vengono utilizzati cifrari che mescolano trasposizione e sostituzione !I più conosciuti ed utilizzati cifrari simmetrici:

Feistel (1973) DES (Data Encryption Standard, 1977), 3DESIDEA (1991)BlowFish (1993)RC5 (1994)CAST-128 (1997)Rijndael (nel 2000 diventa AES, Advanced Encryption Standard)

Page 13: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-13

Tipi di cifrari simmetriciTipi di cifrari simmetrici

Block cipher (cifrari a blocco)Processano il plaintext a blocchi di dimensione fissaPuò essere necessario aggiungere paddingEsempi: DES, RC2, Blowfish, AES

Stream cipher (cifrari a flusso)Processano il plaintext bit per bitUsano la chiave per generare un flusso pseudocasuale di dati che viene XORato con il plaintext

XOR (indicato con ⊕ ): 0⊕ 0 = 1⊕ 1 = 0 ; 1⊕ 0 = 0⊕ 1 = 1Somma modulo 2Lo XOR è invertibile: (x ⊕ y) ⊕ y = x

Esempi: RC4, SNOW 2.0

Page 14: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-14

DES: Data Encryption Standard, NBS, USA, 77DES: Data Encryption Standard, NBS, USA, 77

blocco di testo in chiaro

cifraturachiavesegreta

plain text PP

K K (56 bit)(56 bit)

C=E (P)C=E (P)KK

E E KKblocco di

testo cifrato

blocchi da 64 bitblocchi da 64 bit

blocchi da 64 bitblocchi da 64 bit

Nato nel 1970, progetto IBM

S-Box ritoccate da NSA...

1977: standard del governo americano

Algoritmo simmetrico a blocco (blocchi di 64 bit, chiavi di 56 bit)Modo Cipher Block Chaining

16 iterazioni (round) su ogni blocco, con operazioni di permutazione, sostituzione e XOR

Si può implementare sia in sw che in hwcifratura a chiave segreta di 56 bit, 256 combinazioni

Page 15: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-15

Cracking DESCracking DES

1

10

100

1000

10000

Tim

e (h

ours

)

1997 1998 1999

EFFDES

Cracker$250,000 DES Cracker

+ distributed.net(100,000 PCs)

Page 16: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-16

Key SecurityKey Security

0,0011000

1E+091E+151E+211E+271E+331E+391E+451E+511E+571E+63

0 50 100 150 200 250 300Key size (bits)

Year

s to

cra

ck(assumes 106 decryptions per µs)

age of theuniverse

Page 17: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-17

triple DES: sequenza di 3 DEStriple DES: sequenza di 3 DES

blocco di testo in chiaro

cifraturachiaveKK11

plain text PPblocchi da 64 bitblocchi da 64 bit

testo cifrato

rete insicurarete insicura

decifratura

cifratura

chiaveKK22

chiaveKK11

decifratura

cifratura

decifratura

blocco di testo in chiaro

chiaveKK11

chiaveKK22

chiaveKK11

plain text PPblocchi da 64 bitblocchi da 64 bit

Page 18: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-18

AES: Advanced Encryption Standard 1999AES: Advanced Encryption Standard 1999

1997: NIST, gara per sostituire il DES con un nuovo algoritmo

viene scelto Rijndael (di J.Daemen e V.Rijmen)

Input/output: blocchi da 128, 192 o 256 bit

Chiavi: 128, 192 o 256 bit (non necessariamente come il blocco)

Efficiente in hw e in sw, libero da brevetti, distribuibile liberamente in tutto il mondo

Page 19: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-19

Crittografia simmetrica: come ?Crittografia simmetrica: come ?

Java2 package javax.crypto

DES, 3DES, Blowfish, AES

ECB, CBC, CFB, OFB

.NET Framework System.Security.Cryptography

Come il package Java (RC2 e non Blowfish)

OpenSSL (www.openssl.org)

Libreria crittografica in C

DES, 3DES, Blowfish, AES, CAST, IDEA, RC2, RC5

Include il tool openssl (command-line)

Page 20: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-20

Crittografia asimmetricaCrittografia asimmetrica

Di recente scoperta: 1976, da due ricercatori W.Diffie e M.Hellmann della Stanford University.

Ogni persona ha duedue chiavi corrispondenti: una privataprivata (nota solo a lui), una pubblicapubblica (nota a tutti)

Le due chiavi si corrispondono, ma non sono ricavabili l'una dall'altra

Asimmetrico significa che quanto cifrato con la chiave pubblica può essere decifrato soltanto con la corrispondentecorrispondente chiave privata, e viceversa

Detti anche “a doppia chiave”, “a chiave pubblica”, “a chiavi asimmetriche”

Per usare la crittografia a chiave pubblica nonnon è necessario scambiarsi una chiave in modo sicuro

Page 21: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-21

Caratteristiche fondamentaliCaratteristiche fondamentali

Facile cifrare un testo P, data la chiave pubblica K+

Facile decifrare un testo cifrato C, data la chiave privata K−

Computazionalmente impossibile ricavare la chiave K−, data K+

Computazionalmente impossibile ricavare P, dati K+ e C

Concetto di base:Concetto di base: usiamo un problema facile da risolvere in un senso, ma difficile nel senso opposto (one-way trap door)

Page 22: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-22

I piI piùù usati cifrari asimmetriciusati cifrari asimmetrici

Attualmente i più utilizzati cifrari asimmetrici sono:

RSA (1977, Ron Rivest, Adi Shamir, Len Adleman)

Diffie-Hellman (1976)

DSS (1991, FIPS PUB 186)

ECC (IEEE P1363, Crittografia delle curve ellittiche)

Page 23: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-23

Scambio di chiaviScambio di chiavi

Poiché introduce molto overheadmolto overhead, la crittografia a chiave pubblica viene usata per concordare tra le due parti una chiave segreta su un canale di comunicazione non sicuro

Alcuni algoritmi a chiavi asimmetriche sono esclusivamente “di scambio di chiavi” (es. Diffie-Hellman)

Page 24: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-24

Diffie Hellman: scambio di chiaviDiffie Hellman: scambio di chiavi

usato per concordare tra due soggetti A e B una chiave segreta su un canale insicuro (spesso usata come chiave di sessione da algoritmi di livello superiore)

Problema-trappola: logaritmo modulare

In aritmetica ordinaria se y=axx il calcolo di x=logaay è banalebanale

Noti x, a, p è facilefacile calcolare y=axx mod p

N.B. p mod q è il resto della divisione p/q

In aritmetica modulare se è y = axx mod p il calcolo di x è molto difficilemolto difficile; cioè, noti y, a, p è moltomolto difficiledifficiletrovare x tale che sia y= axx mod p

Page 25: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-25

Diffie Hellman: l'algoritmoDiffie Hellman: l'algoritmo

pp:num.primo, aa:radice primitiva di p, noti, pubblici

A --> B la sua chiave pubblica YAA (YAA= aXXAA mod p) ottenuta usando la sua chiave privata XA A segretasegreta

B --> A la sua chiave pubblica YBB (YBB= aXXBB mod p) ottenuta usando la sua chiave privata XB B segretasegreta

A calcola KAA = (YBB)XXAA mod p

B calcola KBB = (YAA)XXBB mod p

KKAA = (YBB)XXAA = (axxBB)XXAA = (aXXAA)XXBB = (YAA)XXBB = KKBB !!!!!

KK condivisa si ottiene (privrivA+pubbubbB) o (privrivB+pubbubbA)

noti YA A e YBB per ottenere la chiave K K bisogna conoscere XAA e XBB , cioè calcolare un log impossibile

Page 26: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-26

Diffie Hellman: esempio didatticoDiffie Hellman: esempio didattico

pp = 7 = 7 : numero primo, pubblicopubblicoXX numero scelto nell’insieme (1, 2, ..., p-1), segretosegretoaa = 3 = 3 : radice primitiva di p,p, pubblica, pubblica, cioè

axx mod p = (1, 2, ..., p-1)3xx mod 7 = 1, 2, ..., 6 ∀X∈(1,2, ..., 6)

311mod7=3, 322mod7=2, 333mod7=6, 344mod7=4, 355mod7=5, 366mod7=1

AA: XXAA=3 segretosegreto, YAA= axxAA mod p = 333 mod 7 = 6

BB: XXBB=1 segretosegreto, YBB= axxBB mod p = 311 mod 7 = 3

AA invia a BB YAA=6, BB invia a AA YBB=3

AA calcola KK = (YBB)xxAA mod p = (3)33 mod 7 = 66

BB calcola KK = (YAA)xxBB mod p = (6)11 mod 7 = 66

uguali

Page 27: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-27

chiave pubblica RSAchiave pubblica RSA

Cambia il problema-trappola

Dati due primi pp e qq è facile calcolare n=pqn=pq

Dato nn molto grande non esiste un algoritmo efficiente per (i.e. è praticamente impossibile) ottenere pp e qq

Si sfruttano alcune proprietà dell'aritmetica modulare e dell'esponenziazione

Page 28: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-28

chiave pubblica (e privata): RSAchiave pubblica (e privata): RSA

scegliere due numeri primi (molto grandi) pp e qq(esempio didattico pp=3 e qq=11)calcolare nn = p x x q = 33 e zz = (p - 1) (q - 1) = 20zz si chiama “toziente di Eulero”scegliere dd relativamente primo con z (d=77)trovare ee tale che e xx d = 1 (mod z) e = 33

chiave pubblicapubblica (e,ne,n)(3,33)-chiave privata privata (d,nd,n)(7,33)C = P (mod 33) P = C (mod 33)3 7

Page 29: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-29

RSA: esempioRSA: esempio

I caratteri usati devono essere meno di 33 (5 bit)

testo P

cod C = P mod(33)

C mod(33)

testo P

Z 26 17576 20 1280000000 26 Z A 1 1 1 1 1 A N 14 2744 5 78125 14 N N 14 2744 5 78125 14 N E 5 125 26 8031810176 5 E

3PP 7CC3 7

testo testo crittografatocrittografato

inviato in reteinviato in reteusa 3 usa 7

Page 30: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-30

Come attaccare RSA ?Come attaccare RSA ?

Brute-force su tutte le possibili chiaviLe chiavi devono essere larghe a sufficienza da evitarlo, ma più grandi sono, più è lenta l'esponenziazione!

Determinare i fattori primi di nIn questo modo basta calcolare z per ottenere d da ePer n grande, questo problema è insolubile1994: Fattorizzazione di 129 cifre (428 bit) con 8 mesi di cicli CPU spare di 1600 PC1999: 155 cifre (512 bits) fattorizzateUna chiave sicura oggi è ≥ 1024 bit

Page 31: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-31

IntegritIntegritàà

Cenni introduttivi alle funzioni di hashing

Page 32: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-32

Message DigestMessage Digest

Per verificare l'integrità di un file (testo) si fa uso di un message digestIl digest è il prodotto di una funzione matematica deterministica applicata al testo (one-way hash function)Qualsiasi cambiamento, anche di un solo bit, nel documento produce un cambiamento nel digest

In media, cambiando 1 bit, cambia il 50% dei bit del digest

Due diversi messaggi generano due digest diversiNon è del tutto vero (i messaggi sono “di più” degli hash)La probabilità che due diversi messaggi generino lo stesso digest è trascurabile

Dal digest di una buona funzione di hashing èpraticamentepraticamente impossibile risalire al testo del documento che l’ha generato o, equivalentemente, generare un documento che abbia lo stesso hash

Page 33: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-33

Message Digest: esempiMessage Digest: esempi

Esempio di digest MD5:

“Ciao” --> 16272a5dd83c63010e9f67977940e87116272a5dd83c63010e9f67977940e871

“ciao” --> 6e6bc4e49dd477ebc98ef4046c067b5f6e6bc4e49dd477ebc98ef4046c067b5f

“Yesterday, all my troubles seemed so far away” --> bc1cedea3dce3824659fa16c1178fc16bc1cedea3dce3824659fa16c1178fc16

Le funzioni di hashing sono deterministiche: lo stesso messaggio produce sempre lo stesso digest

Page 34: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-34

Caratteristiche di una Hash FunctionCaratteristiche di una Hash Function

È una funzione H che produce un output di lunghezza fissa da un input di lunghezza arbitraria

Per ogni x, H(x) dev'essere facile da calcolare

È computazionalmente infattibile:Trovare x t.c. H(x) = h, uno specifico digestTrovare y t.c. y ≠ x e H(y) = H(x), con x datoDeterminare “facilmente” delle coppie {x,y} t.c. H(x) = H(y)Quest'ultima proprietà si chiama “collision-free property”

Page 35: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-35

Secure Hash AlgorithmSecure Hash Algorithm

SHA-1 standard dal 1995

“migliora” MD4 e MD5, che non erano più considerate computazionalmente sicure

Input: messaggio fino a 264 bit di lunghezza, processato a blocchi da 512 bit

Output: un message digest di 160 bit, ma esistono versioni che generano output da 256, 384 e 512 bit

MD5MD5: processa il testo in blocchi da 512 bit, lunghezza del digest 128 bit

Page 36: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-36

SHASHA--11

HSHA

B0 B1 Bi Bn-1

M (L bits in length)

HSHA

padding L

512n bits

512 bits

HSHA

HSHA

compressionfunction

160 bits160-bit

IV

message digest

Page 37: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-37

Scenari d'usoScenari d'uso

Combinare queste tecniche per ottenere dei risultati

Page 38: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-38

scenario 1: autenticazione mittente + integritscenario 1: autenticazione mittente + integritàà dei dei dati, no confidenzialitdati, no confidenzialitàà

mittentemittente destinatariodestinatario

testoin chiaro

testoin chiaro

decifraturacifratura

testo cifrato

chiave privatamittente

chiave pubblicamittente

rete insicurarete insicura

Page 39: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-39

scenario 2: confidenzialitscenario 2: confidenzialitàà, no autenticazione , no autenticazione mittente, no integritmittente, no integritàà

mittentemittente destinatariodestinatario

testoin chiaro

testoin chiaro

decifraturacifratura

testo cifrato

chiave pubblicaricevente

chiave privataricevente

rete insicurarete insicura

Page 40: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-40

Firma digitaleFirma digitale

La firma digitale di un documento garantisce:l’integrità del testol’identità del suo autore

documentodocumento

firmafirma

di lunghezza variabile

di lunghezza fissafissa

Si protegge il digest, operazione meno onerosa della protezione dell’intero messaggio

Page 41: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-41

RiceventeRicevente

MittenteMittente

testomessaggio

hashfunction

digest crittaz.

crittazione

decrittazione

testomessaggio

firma digitale

testomessaggio

firma digitale

hashfunction

decrittaz.

digestAutenticazione mittenteIntegrità messaggioRiservatezza messaggioNon ripudio (mittente) digest

Uso della Firma DigitaleUso della Firma Digitale

Chiave PUBBLICA destinatario

Chiave PUBBLICA mittente

Chiave PRIVATA destinatario

Chiave PRIVATA mittente

confrontoconfronto

InternetInternet

Page 42: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-42

Sistemi Ibridi: PGP (Pretty Good Privacy)Sistemi Ibridi: PGP (Pretty Good Privacy)

Page 43: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-43

Sistemi Ibridi: PGP (Pretty Good Privacy)Sistemi Ibridi: PGP (Pretty Good Privacy)

Page 44: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-44

BibliografiaBibliografia

“Applied Cryptography”, 2° ed., B. Schneier, Wiley editore

“Sicurezza delle reti - Applicazioni e standard” di William Stallings, Addison-Wesley Editore

“Crittografia” di Andrea Sgarro, Franco Muzzio Editore.

“Segreti, Spie e Codici Cifrati” di C.Giustozzi, A.Monti, E.Zimuel, Apogeo Editore.

“Codici & Segreti” di Simon Singh, Rizzoli Editore.

Page 45: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-45

AutenticazioneAutenticazione

Page 46: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-46

Nozioni di baseNozioni di base

Identificazione Identificazione –– ““Chi sei?Chi sei?””Usualmente dichiarativa (l'utente fornisce il proprio ID)

Autenticazione Autenticazione –– “Come verificare che la tua identità “Come verificare che la tua identità è vera?”è vera?”

Tecniche per verificare in modo affidabile l'ID dichiarato da un'entità

Autorizzazione Autorizzazione –– “Sei autorizzato ad effettuare “Sei autorizzato ad effettuare questa operazione?”questa operazione?”

Tecniche per concedere il diritto di effettuare alcune specifiche operazioni su particolari asset. Esempi:

Read, Write, Append, Lock, ExecuteCreare nuovi file, modificare file esistenti, rinominare file, …Stabilire lo scoperto massimo, effettuare ordini, approvare di pagamenti,…

Page 47: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-47

Paradigmi di AutenticazioneParadigmi di Autenticazione

tre principali paradigmi utilizzati per autenticare

OneOne--wayway: il client autentica se stesso al server (che si assume avere un’identità valida)

È il paradigma più diffuso

TwoTwo--wayway: il client ed il server si autenticano reciprocamente

Trusted ThirdTrusted Third--PartyParty: si utilizza una terza entità esterna (anch’essa un server) considerata “affidabile” sia dal client che dal server affinchè autentichi entrambe

Page 48: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-48

Tecnologie per lTecnologie per l’’AutenticazioneAutenticazione

Ciò che si saCiò che si saPasswordPIN

Ciò che si haCiò che si haSmart cardToken/One-time passwordCertificati digitali

Ciò che si èCiò che si èViso, iride, retina, impronte digitali, geometria della mano, voce

Page 49: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-49

Password: problemiPassword: problemi

IntercettazioneIntercettazione di password trasmesse in reteFurto di password: un altro utente può usare le mie credenziali per compiere attività illecite o criminose

Condivisione di password fra più utentiPerdita del controllo di responsabilità

Scrivere le password e tenerle in vista (Post-It…)Semplifica enormemente il furto di password

Password guessingBrute forceBrute force: si cerca di individuare la password provando TUTTE le possibili combinazioni di caratteriDictionaryDictionary--basedbased: si cerca di individuare la password prendendola da un insieme di parole più probabili (dizionario)

Page 50: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-50

Password: il Keyspace Password: il Keyspace (1)(1)

La robustezza crittografica di una pwd dipende dal keyspace

Una pwd è robusta (strong) se il tempo stimato per individuarla è maggiore del tempo di vita della password stessaLa robustezza di una pwd diminuisce col tempo perchè la velocitàdelle macchine usate per il crack aumenta…

Keyspace: numero di codici (crt) possibiliMaiuscoli → 26 possibilità per posizioneMaiuscoli e minuscoli (case-sensitive)→52 possibilità/posizioneNumeri: si aggiungono altre 10 possibili scelteCaratteri speciali |!”/$%?&*()_+#\@-=:;~{}[] l’aumento dipende da quanti sono ammessi

Page 51: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-51

Password: il Keyspace Password: il Keyspace (2)(2)

Il Keyspace è una funzione della posizione (P) e delle possibili scelte per ogni posizione (Ci)

Se le ripetizioni sono permesse C è costante:P posizioni con C scelte per posizione → CP pwd possibili

Se le ripetizioni non sono ammesse, c’è una scelta in meno per ogni posizione successiva:C(C-1)(C-2). . . (C-P+1) or C!/P! possibilità

Page 52: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-52

TokenToken

generatori di one-time passwordcreano una password ogni 1-3 minuti, in una sequenza cifrata basata sul token e sul tempoil software sul server verifica che la sequenza corrisponda con il momento, il token ID, e l’utente assegnato

Smart cardun microprocessore interagisce con il readersi stabilisce l’identità e l’autenticità della smart card mediante protocolli challenge-responsedelle tabelle correlano il token con l’utente

Page 53: Confidenzialità ed Integrità - Intranet DEIBhome.deib.polimi.it/serazzi/IMP_NO/materiale/SICCritto0506.pdf · Funzioni di hash Esempio di applicazione: la firma digitale ... di

Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-53

Indici biometriciIndici biometrici

Impronte digitali

Geometria della mano

Viso

Iride

Retina

Voce