politecnico di milano - confidenzialità ed...

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

Upload: others

Post on 25-Dec-2019

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Confidenzialità ed IntegritàConfidenzialità ed Integrità

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

15/03/0615/03/06

Page 2: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli 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: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Che cos’è la crittografia?Che cos’è 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: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Origini storicheOrigini storiche

La crittografia è una scienza antichissima nelle società primitive qualunque tipo di scrittura è di per sé “magico” e “segreto”.

La scitala lacedemonica è un antico esempio di un sistema per cifrare messaggi tramite l’utilizzo di un bastone cilindrico (secondo gli scritti di Plutarco, in uso dai tempi di Licurgo, IX sec a.C.).

Medioevo, con Gabriele Lavinde (che scrisse un manuale nel 1379, conservato ancora in Vaticano), in Francia all’epoca del cardinale Richelieu con Antonio Rossignol e soprattutto in Italia con L.B.Alberti, G.B.Porta, G.B.Bellaso, G.Cardano.

Page 5: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Origini storiche (2)Origini storiche (2)

All’inizio del secolo durante la prima guerra mondiale con il generale Luigi Sacco, dell’esercito italiano, che scrisse il famoso “Nozioni di crittografia” (1925).Il periodo d’oro della crittologia è senza alcun dubbio quello della seconda guerra mondiale quando Alan Turing, il padre dell’informatica teorica, insieme al gruppo di ricerca del Bletchley Park formalizzò la matematica necessaria per uno studio sistematico dei cifrari.Claude Shannon, l’ideatore della moderna teoria dell’informazione, che nel 1949 pubblicò un articolo rimasto nella storia “Communication theory of secrecy systems”.

Page 6: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Origini storiche (3)Origini storiche (3)

Enigma: la più famosa macchina crittografica della seconda guerra mondiale.

Nasce in Inghilterra il primo elaboratore elettronico (Colossus) utilizzato per decifrare le comunicazioni “segrete” dei nemici.

Page 7: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 8: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 9: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Crittografia simmetrica e asimmetricaCrittografia simmetrica e asimmetrica

Fondamentalmente i sistemi crittografici si dividono in due tipologie:

Sistemi crittografici

Sistemi simmetrici Sistemi asimmetrici

Si utilizza una sola chiave percifrare e decifrare

Si utilizzano una coppia di chiavi: una per cifrare

e l’altra per decifrare

Page 10: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 11: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Crittografia simmetricaCrittografia simmetrica

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 12: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 13: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 chiaveesempioesempio: invertendo righe e colonne della matrice contenente il testo in chiaro (chiavechiave K=[3,5]K=[3,5])

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

IITT

TTUUTT AA

OOAAIICC

Page 14: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 15: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 16: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Cifrari di FeistelCifrari di Feistel

2n bit di plaintext

XOR F

Round 1 K1

L1 R1

L0 R0

Inputs tonext round

F: round function

K1: round subkey, derivata dalla chiave principale K mediante una funzione di scheduling

Decifratura: stesso schema applicato in ordine inverso

n bit n bit

Page 17: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 18: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Modi per la crittografia a blocchiModi per la crittografia a blocchi

Utilizzo a blocchiElectronic codebook (ECB): ogni blocco processato da solo

Cipher block chaining (CBC): l'output del blocco n viene XOR-ato al blocco n+1 prima della cifratura

Stream cipher simulationsOutput feedback (OFB): l'output dell'algoritmo viene passato come input per generare il successivo blocco di finto keystream

Counter (CTR): l'input dell'algoritmo è un contatore progressivo, l'output viene usato come keystream

Page 19: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Modi per l'utilizzo a blocchiModi per l'utilizzo a blocchi

ECB non va mai usatoPlaintext uguali si cifrano a ciphertext ugualiQuesto fa filtrare informazioni !

CBC è la scelta giustaCi EK(Pi ← ⊕ Ci-1)In questo modo, blocchi di plaintext identici si cifrano in blocchi diversiPer il primo blocco di solito si usa un initialisation vector (IV) random, che viene comunicato in chiaro al ricevente in testa al messaggio

Page 20: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Modalità CTRModalità CTR

Cifriamo un contatore in modalità ECB per generare un keystream, che viene XORato con il plaintext

Ki EK(nonce || i) for i = 1,2,…,n←

Ci Pi ← ⊕ Ki

Nonce (‘number used once’) è tipicamente il numero del messaggio + dati casuali

E' un sistema sicuro, a patto che la coppia {key,nonce} non venga più riutilizzata

Page 21: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 22: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Cracking DESCracking DES

1

10

100

1000

10000

Tim

e (

ho

urs

)

1997 1998 1999

EFFDES

Cracker$250,000 DES Cracker

+ distributed.net(100,000 PCs)

Page 23: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Key SecurityKey Security

0,0011000

1E+091E+151E+211E+271E+331E+39

1E+451E+511E+571E+63

0 50 100 150 200 250 300

Key size (bits)

Year

s to

cra

ck

(assumes 106 decryptions per μs)

age of theuniverse

Page 24: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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

blocco di testo in chiaro

cifraturachiave

KK11

plain text PPblocchi da 64 bitblocchi da 64 bit

testo cifrato

rete insicurarete insicura

decifratura

cifratura

chiave

KK22

chiave

KK11

decifratura

cifratura

decifratura

blocco di testo in chiaro

chiave

KK11

chiave

KK22

chiave

KK11

plain text PPblocchi da 64 bitblocchi da 64 bit

Page 25: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 26: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 27: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 28: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 29: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

I più usati cifrari asimmetriciI più usati 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 30: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 31: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 difficiledifficile trovare x tale che sia y= axx mod p

Page 32: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 33: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 34: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 35: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 36: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 37: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 38: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

IntegritàIntegrità

Cenni introduttivi alle funzioni di hashing

Page 39: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 40: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 41: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 42: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

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 43: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

SHA-1SHA-1

HS

HA

B0 B1 Bi Bn-1

M (L bits in length)

HS

HA

padding L

512n bits

512 bits

HS

HA

HS

HA

compressionfunction

160 bits160-bit

IV

message digest

Page 44: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Problemi negli algoritmi di hashProblemi negli algoritmi di hash

• Questa estate sono stati individuati dei problemi in alcune funzioni di hash

• Collisioni arbitrarie su SHA-0• Collisioni semplificate su MD-5• Collisioni su SHA-1 con round dimezzati

• Tradotto: SHA-0 è morto, MD-5 è ferito e SHA-1 non si sente troppo bene...

• Poche settimane fa, collisioni arbitrarie su SHA-1 senza ranghi ridotti in 269 operazioni invece di 280

• 280 per colpa del birthday paradox (2n/2)• Se la funzione di hash consente collisioni arbitrarie, si

possono forgiare documenti “finti” corrispondenti all'hash dato!

• Non è però detto che tali documenti finti abbiano significato

Page 45: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Cenni di crittoanalisiCenni di crittoanalisi

Come vengono “rotti” gli algoritmi di crittografia

Page 46: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

La crittoanalisiLa crittoanalisi

La scienza che si occupa dell’analisi e della validità degli algoritmi crittograficiAnalizzando il contenuto di un testo cifrato, attraverso tecniche statistico/matematiche si possono ottenere informazioni sul testo in chiaroPer fortuna ciò non è sempre possibile, la maggior parte dei cifrari moderni è ancora al sicuro da tecniche di crittoanalisiLa matematica ci dice che esiste un unico cifrario inviolabile...

Page 47: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Modello MatematicoModello Matematico

Generazione di messaggi ~ Processo stocasticoM = variabile aleatoria che modella la scelta di mC = variabile aleatoria relativa alla spedizione dei crittogrammi cK = variabile aleatoria che modella la scelta della chiave segreta k

Caratteristiche del processo dipendono dal mittente

Frequenza delle singole lettere nella lingua italiana

Frequenza dei digrammi nella lingua italiana

Frequenza degli n-grammi nella lingua italiana

Page 48: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Cos’è un “cifrario perfetto” ?Cos’è un “cifrario perfetto” ?

P(M = m) = probabilità che Mitt voglia spedire a Dest il messaggio m [probabilità a priori]

P(M=m |C = c) = probabilità che Mitt abbia spedito m a Dest dato chedato che sul canale viaggia c [probabilità a posteriori]

L’intruso X conosce:La probabilità a priori con cui i messaggi sono speditiLa funzione di cifratura e decifrazioneGli è sconosciuta solo la chiave segreta k

Un cifrario si definisce perfetto se e solo se

P(M=m | C = c) = P(M = m)

Page 49: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Un primo risultato interessante!Un primo risultato interessante!

TeoremaTeorema: In un cifrario perfetto, il numero delle chiavi deve essere maggiore o uguale al numero di messaggi possibili.

Dimostrazione (sintetica):Dimostrazione (sintetica):Sicuramente abbiamo |Critto| ≥ |Msg|.

Inoltre per ogni messaggio m si ha che P(M = m) > 0.

Sia per assurdo |Keys| < |Msg|, allora si ha che |Keys| < |Critto|.

Preso un messaggio m, deve esistere cm che non è immagine di m.

Se X vede viaggiare cm sul canale, allora il messaggio non è m.

In particolare, ciò significa che:

P(M=m |C = c) = 0 [≠ P(M = m) ]

Page 50: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

One-time padOne-time pad

È uno “stream cipher” perfetto e minimaleXOR tra messaggio m e una chiave k casuale lunga quanto m (n bit)Idem all'altro lato per decriptareMinimale in quanto |Keys| = |Msg|Perfetto perchè si ha che:

P(M = m | C = c) = P(M=m,C=c)/P(C=c)P(M=m,C=c) = P(M=m, C=c, K=km,c ) =

= P(C=c | M=m,K=km,c )* P(M=m | K=km,c )*P(K=km,c )

= 1 * P(M=m) * (1/2)n

P(C=c) = Σm P(C=c, M=m) =Σm P(M=m)*(1/2)n=(1/2)n P(M = m | C = c) = P(M=m)*(1/2)n/(1/2)n=P(M=m)

Page 51: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

Le basi della crittoanalisiLe basi della crittoanalisi

Qualsiasi sistema crittografico “si avvicina” a un one-time pad, ma non è inviolabile

L’attacco ad un sistema crittografico ha l’obiettivo di forzare il sistema in un tempo inferiore a quello di un attacco brute-force (sempre possibile)

Il livello di pericolosità dell'attacco dipende dalle informazioni in possesso del crittoanalista

Cipher Text Attack (il crittoanalista è in possesso di soli alcuni crittogrammi)Known Plain-text Attack (il crittoanalista è venuto a conoscenza di una serie di testi in chiaro e di crittogrammi)Chosen Plain-Text Attack (il crittoanalista ha scelto una serie di testi in chiaro e di crittogrammi)

Page 52: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

La crittoanalisi statisticaLa crittoanalisi statistica

Tramite l’utilizzo di tecniche statistiche sulla frequenze dei caratteri o sottostringhe del testo cifrato si ottengono informazioni utili sul testo in chiaro.

Ad esempio con il cifrario di Cesare effettuando una semplice analisi statistica delle lettere contenute nel testo cifrato e confrontando i risultati con le frequenze assolute dell’alfabeto della lingua italiana posso ricostruire il messaggio originale.

Page 53: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

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

La crittoanalisi statisticaLa crittoanalisi statistica

Page 54: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-54

Esempio di crittoanalisi statistica Esempio di crittoanalisi statistica

Analizzando la frequenza delle lettere del testo cifrato “surbd gn zudvpnvvnrqh” ne escono i seguenti risultati: s (1/19), u (2/19), r (2/19), b (1/19), d (2/19), g (2/19), n (3/19), z (1/19), v (3/19), p (1/19), h (1/19).

Le lettere con maggiore frequenza risultano essere la n e la v con frequenza 3/19 ed a seguire la u, la r, la d, la g con frequenza 2/19.

Associo a queste lettere le più frequenti corrispondenti all’alfabeto italiano nel grafico visto in precedenza.

Provando con la combinazione d=a, n=i, u=r, r=o si ottiene il seguente testo parzialmente decifrato: “sroba gi zravpivvioqh” con una certa fantasia ed abilità linguistica (un po’ come avviene nei giochi di enigmistica o nei quiz televisivi alla Mike Buongiorno) già in questa frase si potrebbe ottenere il testo in chiaro “prova di trasmissione”.

Page 55: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-55

Possibili tecniche di attacco realiPossibili tecniche di attacco reali

Crittanalisi statistica: basata sulle distribuzioni dei caratteri, ma più complessa nei casi reali dei cifrari moderni: bisogna ricostruire i meccanismi di diffusioneCrittoanalisi lineare: si cercano relazioni lineari tra bit dell'output e bit dell'input

Se troviamo una relazione che regge in più del 50% dei casi, detta p = .5 + 1/M la probabilità, ricostruiremo la chiave con M^2 messaggi

Crittoanalisi differenziale: si cercano relazioni tra gli xor bit-a-bit di testi in chiaro diversi e dei corrispondenti testi cifrati

Page 56: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-56

La sicurezza della crittografiaLa sicurezza della crittografia

La sicurezza di un sistema crittografico è basato sulla robustezza dell’algoritmo.Le tecniche di crittoanalisi diventano sempre più sofisticate grazie anche all’aumento della potenza di calcolo dei computer.Solo con la condivisione delle informazioni e delle specifiche tecniche degli algoritmi crittografici si può ottenere sicurezza.La filosofia open source è di vitale importanza per il settore crittografico.La storia ci insegna che gli algoritmi segreti sono quelli più insicuri.Gli algoritmi crittografici più importanti ed utilizzati da tutti devono essere di pubblico dominio, non ci possiamo fidare delle “black box”.Sicurezza = Trasparenza.

Page 57: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-57

Guardando il problema nella prospettiva giusta...Guardando il problema nella prospettiva giusta...

“You have probably seen the door to a bank vault… 10-inch thick, hardened steel, with large bolts… We often find the digital equivalent of such a vault door installed in a tent. The people standing around it are arguing over how thick the door should be, rather than spending their time looking at the tent.”

(Niels Ferguson & Bruce Schneier, Practical Cryptography)

Page 58: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-58

Scenari d'usoScenari d'uso

Combinare queste tecniche per ottenere dei risultati

Page 59: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-59

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

mittentemittente destinatariodestinatario

testoin chiaro

testoin chiaro

decifraturacifratura

testo cifrato

chiave privatamittente

chiave pubblicamittente

rete insicurarete insicura

Page 60: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-60

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

mittentemittente destinatariodestinatario

testoin chiaro

testoin chiaro

decifraturacifratura

testo cifrato

chiave pubblicaricevente

chiave privataricevente

rete insicurarete insicura

Page 61: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-61

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 62: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-62

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 63: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-63

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

Page 64: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-64

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

Page 65: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-65

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 66: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-66

AutenticazioneAutenticazione

Page 67: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-67

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 – “Sei autorizzato ad effettuare Autorizzazione – “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 68: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-68

Paradigmi di AutenticazioneParadigmi di Autenticazione

tre principali paradigmi utilizzati per autenticare

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

È il paradigma più diffuso

Two-wayTwo-way: il client ed il server si autenticano reciprocamente

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

Page 69: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-69

Tecnologie per l’AutenticazioneTecnologie per l’Autenticazione

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 70: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-70

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 caratteriDictionary-basedDictionary-based: si cerca di individuare la password prendendola da un insieme di parole più probabili (dizionario)

Page 71: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-71

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 72: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-72

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 73: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-73

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 74: Politecnico di Milano - Confidenzialità ed Integritàhome.deib.polimi.it/.../materiale/crittografia0506.pdfLa crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la

Sicurezza degli Impianti InformaticiG.Serazzi – S.Zanero aa 2005/06 CRITT-74

Indici biometriciIndici biometrici

Impronte digitali

Geometria della mano

Viso

Iride

Retina

Voce