Identificazione, Autenticazione e
Firma Digitale
• In origine crittografia = confidenzialità
• Diffusione delle reti: nuove funzionalità.
• Identificazione
• Autenticazione
• Firma digitale
• Identificazione: un sistema di elaborazione
deve essere in grado di accertare l’identità
di un utente che vuole accedere ai suoi
servizi
• Autenticazione: il destinatario di un
messaggio deve essere in grado di accertare
l’identità del mittente e l’integrità del
messaggio
• Firma digitale: funzionalità complessa
richiesta quando mittente e destinatario di
un messaggio non si fidano l’uno dell’altro
(reciprocamente). Proprietà simili alla firma
cartacea.
Firma digitale...
• il mittente non può negare di aver inviato il
messaggio
• il destinatario può accertare l’identità del
mittente e l’integrità del messaggio
(autenticazione)
• il desinatario non può sostenere di aver
ricevuto un messaggio diverso da quello che
realmente ha ricevuto
• il tutto verificabile da una terza parte
(giudice)
1
Funzioni Hash
Identificazione
Autenticazione
Contrastano
possibili
attacchi attivi
Firma digitale
Proprietà di funzioni Hash
Funzioni Hash in crittografia:
Hash one-way
Elementi molto simili in X appartengano a
sottoinsiemi distinti
2
Hash one-way
• Prima proprietà dovrebbe valere
anche per funzioni Hash classiche
• Seconda proprietà: one-way
• Terza proprietà: claw-free
(opzionale)
• Esempi: MD5, SHA
Attacco sferrato
dall’amministratore del sistema.
L’amministratore accede al file delle chiavi.
Contromisura: memorizziamo la password
in forma cifrata utilizzando le funzioni
hash one-way.
COME ???
Identificazione:
Un caso pratico ed un protocollo
Caso pratico: accesso di un utente alla propria casella
di posta elettronica o ai file personali memorizzati su
un calcolatore ad accesso riservato.
L’utente usa una login e password.
Supponiamo: password ben scelta e canale sicuro
Cifratura della pwd con funzioni
hash one-way:UNIX
Quando l’utente U fornisce per la prima volta la password P
il sistema associa a P due sequenze S e Q.
S e Q vengono memorizzate al posto di P
S è detto seme. E’ un numero generato a caso dal sistema.
Q = f(PS).
3
Cifratura della pwd con funzioni
hash one-way:UNIX
Quando l’utente si collega il sistema:
- recupera S dal file delle chiavi,
- concatena S con P e applica f ottenendo Q’.
- confronta Q’ con Q.
- se Q’=Q allora OK altrimenti FAIL
Alcune osservazioni:
• E’ difficile risalire da S,Q a P.
• La presenza del seme casuale diverso per
ogni utente impedisce di scoprire se due
utenti hanno la stessa password e rende
impossibile un attacco simultaneo a tutte le
chiavi.
Se qualcuno accede al file delle chiavi ottiene S e Q. Dai quali
non riesce a inferire nulla su P.
Abbiamo assunto che il canale attraverso il quale la chiave
viene comunicata al sistema sia sicuro.
In realtà di solito non lo è !!!
Protocollo di trasmissione della chiave cifrata usando RSA .
- U richiede accesso al sistema S
- S genera un numero casuale r < n e lo invia a U
- U calcola f=rd mod n (decifra r con la sua chiave privata) e
- spedisce f a S (U firma r).
- S cifra f calcolando r*=fe mod n
- Se r*=r allora OK altrimenti FAIL
Alcune osservazioni:
• Il sistema non deve memorizzare le
informazioni circa la chiave P. Semmai
deve solo memorizzare la chiave pubblica di
U
• E’ possibile invertire cifratura e decifratura
perché RSA e’ commutativo
• SSL è un meccanismo di identificazione più
sofisticato.
4
Autenticazione
• Identificazione: stabilire l’identità di un utente.
• Autenticazione: qualcosa in più di identificazione.
• Mittente spedisce un messaggio a Destinatario.
Destinatario autentica il messaggio se:
MAC
• Immagine breve del messaggio che può
essere generata solo da un mittente
conosciuto dal destinatario.
• Aspetti in comune con le funzioni Hash
crittografiche
• A volte generato usando funzioni Hash
crittografiche
• Entra in gioco una chiave segreta k
Esempio di MAC
Il MAC ha una lunghezza fissata
indipendente da n
MAC(m,k)
MAC
Messaggio m di lunghezza n qualsiasi
- identifica Mittente +
- verifica l’integrità del messaggio
MAC
Message Authentication Code
Otteniamo un MAC applicando una funzione hash
alla concatenazione di m e della chiave k
NOTA: il MAC non è invertibile.
Può solo essere calcolato di nuovo
ma non invertito !!!
5
Esempio di Autenticazione
usando MAC
- Mitt spedisce (m,h(mk)) a Dest.
- Dest riceve (m*,h(mk)*).
- Dest conosce k quindi può calcolare h(m*k).
- Dest confronta h(m*k) con h(mk)*.
- Se h(m*k)=h(mk)* Dest conclude che m*=m
(integro) e che il mittente di m è
effettivamente Mitt.
Autenticazione + confidenzialità
- Mitt spedisce (Ck(m),h(mk)) a Dest.
- Dest riceve (Ck(m)*,h(mk)*).
- Dest conosce k quindi decodifica
Ck(m)* e risale a m*
- Dest conosce k quindi può calcolare h(m*k).
- Dest confronta h(m*k) con h(mk)*.
- Se h(m*k)=h(mk)* Dest conclude che m*=m
(integro) e che il mittente di m è
effettivamente Mitt.
Perché ?
• L’intruso X non può spedire un messaggio a
Dest fingendosi Mitt. Perché ? Perché non
conosce k.
IDENTIFICAZIONE
• L’intruso X intercettando (m,h(mk)) non
può modificare m. Perché ? Perché non
conosce k.
INTEGRITA’
• Cosa succederebbe spedendo (m,h(m)) ???
Firma Manuale e Firma Digitale
• La firma digitale deve soddisfare le
proprietà di quella manuale.
• La firma digitale è una stringa di bit e
quindi è facilmente duplicabile/copiabile.
La firma manuale no !!
• Firma manuale e firma digitale sono
fisicamente oggetti di natura completamente
diversa !
6
Firma Digitale:
Implementazione Ingenua
Firma Manuale: Proprietà
• La può generare solo una persona e non è
falsificabile.
• Non è riutilizzabile (legata al documento su
cui è apposta).
• Il documento su cui è apposta non è
modificabile.
• Non può essere ripudiata da chi l’ha
generata.
Diffie e Hellman:
Cifrari Asimmetrici
U Firma:
f=D(m,kU[priv])
send <U,m,f>
Pr
ot
oc
ol
lo
V Verifica:
m*=C(f,kU[pub])
if m*=m then si else no
Firma digitale: digitalizzazione della firma manuale,
ad esempio usando uno scanner.
Attacco: Copia e Incolla !!!
Osservazioni
1
• Occorre un cifrario commutativo, cioè
D(C(m)) = C(D(m)) = m. RSA è
commutativo.
• Il documento firmato non è indirizzato ad
uno specifico destinatario. Tutti possono
fare la verifica.
7
Proprietà del protocollo
Difetti del protocollo
• La può generare solo una persona: colui che
conosce kU[priv] cioè U.
• Non è riutilizzabile/copiabile/falsificabile: in
quanto è funzione del documento su cui è apposta.
• Il documento su cui è apposta non è modificabile:
in quanto anche la firma andrebbe nuovamente
generata.
• Non può essere ripudiata da chi l’ha generata: in
quanto solo conoscendo kU[priv] è possibile
generarla.
• La lunghezza del messaggio scambiato è il
doppio della lunghezza del messaggio
originario.
• Il messaggio non può essere mascherato in
quanto dall’operazione di verifica è
possibile risalire al messaggio spedito
Protocollo 2: RSA
Soluzione
U Firma e cifra:
f=D(m,kU[priv])
c=C(f,kV[pub])
send <U,c>
U Firma e cifra:
Pr
ot
oc
ol
lo
V Verifica:
f*=D(c*,kV[priv])
m*=C(f*,kU[pub])
if m* ”ha senso”
then si else no
send <U,c>
2
V Verifica:
if m* ”ha senso”
then si else no
8
Protocollo 2: RSA
Problemi con la
lunghezza delle chiavi !
Perché ???
U Firma:
send <U,c>
Cosa succede se V vuole a sua volta firmare
e cifrare messaggi da mandare a U ?
Soluzione
Assumere che U e V debbano avere chiavi
della stessa lunghezza per potersi mandare
documenti firmati e cifrati non ci va bene!!!
• H = 21024 parametro che distingue la
lunghezza delle chiavi per firmare e delle
chiavi per cifrare.
• U genera:
<e1U,n1U> e <d1U,n1U> con n1U>H
per la cifratura e decifratura
<e2U,n2U> e <d2U,n2U> con n2U<H
per la firma e la verifica.
9
In Pratica...
U Firma:
f=D(h(m),kU[priv])
c=C(m,kV[pub])
send <U,c,f>
Men in-the-middle Attack
Pr
ot
oc
ol
lo
V Verifica:
m*=D(c*,kV[priv])
if h(m*)=C(f*,kU[pub])
then si else no
Men in-the-middle Attack
• U richiede a V la sua chiave pubblica
kV[pub] (per e-mail ad esempio)
• X intercetta kV[pub] e la sostituisce con
kX[pub]
• X intercetta i crittogrammi da U a V li
decodifica con kX[priv] li ri-codifica con
kV[pub] e li ri-spedisce a V
3
•
•
•
•
•
Attacco attivo
X si mette nel mezzo tra U e V
X si comporta come U per V
X si comporta come V per U
X devia la comunicazione tra U e V
facendola passare per se stesso...
CA: Certification Authority
• Enti preposti alla certificazione di validità
delle chiavi pubbliche.
• Certificato:
– Chiave pubblica di U
– Lista di Informazioni su U
– Date di inizio e fine validità del certificato
– Lista di Algoritmi di codifica usati
– Firma di CA
10
Scarica

Identificazione, Autenticazione e Firma Digitale Firma digitale