Sei sulla pagina 1di 20

Protocolli di autenticazione

..
Un protocollo crittograIico e un algoritmo distribuito che viene eseguito da n soggetti, con ,
che indica quali azioni devono essere Iatte per raggiungere un certo tipo di sicurezza. Il protocollo
crittograIico indica come usare un algoritmo crittograIico, al Iine di ottenere
u autenticazione;
u conIidenzialita;
u protezione dell'integrita dei dati;
u ...
Indice
u 1 Autenticazione
u 2 ClassiIicazione dei protocolli di autenticazione
u 3 Dimostrazioni d'identita
u 3.1 Autenticazione tramite password
u 3.1.1 Password Authentication Protocol
u 3.1.2 Challange Handshake Authentication Protocol
u 3.1.3 One-time password
u 3.1.4 Encrypted Key Exchange
u 3.2 Autenticazione tramite challange
u 3.2.1 La challange
u 3.2.2 Il segreto s
u 3.2.3 ISO/IEC 9798-2/4
u 3.3 Autenticazione con algoritmi asimmetrici
u 3.3.1 ISO/IEC 9798-3
u 3.4 Zero-knowledge prooI
u 3.4.1 Protocollo Fiat-Shamir
u 4 ClassiIicazione degli attacchi
u 4.1 Registrazione, sniIIing
u 4.2 Lettura del database
u 4.3 Falsa identita
u 4.4 Attacchi a specchio
u 4.5 Attacco ad intermediario
u 5 Chiavi eIIimere ed autenticazione
u 5.1 PerIect Forward Secrecy
u 5.2 Setup delle chiavi eIIimere
u 5.2.1 Chiave trasportata nella rete
u 5.2.2 Key Distribution Center
u 5.2.3 Chiave calcolata da tutti i nodi
u 5.2.4 CertiIication Authority
u 6 Collegamenti esterni
Pagina 1 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Autenticazione
L'autenticazione puo essere orientata in due direzioni:
u autenticazione dei messaggi;
u autenticazione dei nodi.
L'autenticazione dei messaggi consiste nell'avere una prova dell'origine da cui arrivano i messaggi ed
una prova dell'integrita dei messaggi stessi. Questo risultato puo essere raggiunto attraverso una
Iunzione di MAC, che si occupa di Iare da MDC, ma con una chiave: l'MDC veriIica la correttezza
del messaggio ricevuto, la chiave veriIica la sorgente del messaggio. A questa autenticazione si puo
aggiungere anche la proprieta di non ripudio, per la quale sono nate le Iirme digitali.
Una proprieta Iondamentale di tutto questo e che non e necessario che l'autenticazione avvenga in
e, puo anche essere rimandata per un tempo indeIinito.
Al contrario, l'autenticazione dei nodi e quell'autenticazione che mira a Iar si che un soggetto (un
nodo) possa riconoscere un altro soggetto e veriIicarne l'identita. Nel primo caso, io veriIico che il
messaggio e giunto da una persona che possiede una chiave, nel secondo caso veriIico che e
eIIettivamente Bob la persona con cui io voglio cominicare. E Iondamentale, in questo caso, che la
veriIica possa essere Iatta in diretta. Noi ci occuperemo principalmente dell'autenticazione dei nodi,
piu che dei messaggi.
L'autenticazione e quel processo che permette ad Alice di veriIicare che la persona con cui sta
comunicando sia eIIettivamente Bob, e non Trudy: serve una qualche Iorma di prova che Iaccia
capire ad Alice che Bob e veramente Bob. L'autenticazione puo essere mutua oppure no, dipende
dalle situazioni. Un caso di autenticazione mutua e quando io voglio vedere la mia posta elettronica:
u il server si deve autenticare a me, dandomi una prova del Iatto di essere veramente il server a
cui io voglio collegarmi;
u io devo dare al server una prova di chi sono io, tipicamente attraverso un nome utente ed una
password.
Un caso in cui non e necessaria autenticazione mutua, per esempio, e quando io voglio Iruire di un
contenuto come puo essere un giornale on-line: devo essere sicuro che il giornale sia eIIettivamente
quello che voglio leggere, mentre al server non interessa sapere chi sono io.
Una proprieta importante della prova di autenticazione e la non trasIeribilita: Alice non dovrebbe
essere in grado di usare la prova Iornita da Bob, cioe Alice non dovrebbe essere in grado di andare
da Charlie e convincerlo di essere Bob.
Lo stesso protocollo di autenticazione, inIine, deve minimizzare la possibilita che qualcuno come
Trudy possa impersonare qualcun'altro. Questa proprieta deve rimanere valida anche quando
u Trudy puo leggere gli scambi di dati tra Alice e Bob che si stanno autenticando;
u Trudy puo Iare un numero inIinito di tentativi di autenticazione con Alice o con Bob, Iacendo
Iinta di essere Bob o Alice;
u Alice e Bob stanno eseguendo piu di un'autenticazione contemporaneamente.
Classificazione dei protocolli di autenticazione
Pagina 2 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
I protocolli di autenticazione si distinguono tra loro in base alle Iunzionalita che possono oIIrire,
come per esempio l'autenticazione mutua piuttosto che l'autenticazione del percorso, eccetera.
Un altro parametro importante e la complessita degli algoritmi che sono necessari per eseguire
un'autenticazione, cosi come la quantita di dati che e necessario scambiarsi.
InIine, i protocolli si diIIerenziano tra quelli che hanno bisogno di una Iigura terza per
l'autenticazione (un garante super-partes), oltre che per il tipo di credenziali che sono necessarie, la
dimensione di queste credenziali, per come queste credenziali devono essere usate e gestite.
Dimostrazioni d'identit
Perche Alice possa riconoscere Bob, quest'ultimo deve dimostrare di sapere o possedere qualcosa.
Per esempio, Bob deve conoscere un PIN, una password, una chiave simmetrica oppure la versione
privata di una coppia di chiavi asimmetriche. Nel caso invece di possesso, possiamo parlare di smart
card, oppure di iiii iiiii, degli oggetti che Iorniscono una password utilizzabile una
sola volta. InIine, per l'autenticazione si puo ricorrere anche a caratteristiche biometriche di Bob (se
e una persona), quali per esempio
u il timbro della voce;
u l'impronta digitale;
u il Iondo dell'occhio;
u la Iorma dell'orecchio;
u le caratteristiche del viso;
u ...
Ci sono tre classi di protocolli di autenticazione:
u basati su password;
u basati su iei-.i;
u basati su una prova che non prevede alcuna conoscenza a priori, oi-ii .iii.
Autenticazione tramite password
I protocolli bastati sull'utilizzo di una password sono estremamente comuni, dal momento che la
password e una prova molto semplice da ricordare e da usare. I protocolli che si basano su password
sono insicuri quando
u la password non puo essere cambiata, oppure non cambia con una Irequenza suIIiciente;
u le password usata sono passibili di attacco a dizionario, online o, peggio ancora, oIIline;
u la password viene trasmessa o salvata in chiaro.
Password Authentication Protocol
Il PAP e un protocollo usato esclusivamente dal protocollo PPP; si presume che il canale di
trasmissione sia sicuro (una linea teleIonica telecom, per esempio, viene considerata come non-
intercettabile).
Pagina 3 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Alice manda al server di autenticazione AS (Bob) il suo nome utente e la sua password. Il server di
autenticazione conosce
u il nome utente di Alice;
u una iieoi h della password;
u un numero casuale di bit, detto .
Quello che viene Iatto dal server di autenticazione e andare a cercare, in una tabelle, il nome utente
di Alice. Se il nome utente viene trovato, si preleva il e lo si usa all'interno di una Iunzione di
MDC :
) t l a s d r o w s s a p ( f h
Alla Iine, viene Iatto un conIronto tra il risultato della Iunzione e la trasIormazione in memoria e, se i
numeri sono uguali, l'autenticazione ha successo.
Il e un numero casuale che ha lo scopo di rendere gli attacchi a dizionario piu diIIicili, perche
grazie al , anche se due utenti hanno la stessa password, diIIicilmente avranno lo stesso e
quindi la stessa trasIormazione h della password. Il database viene conservato in questa Iorma per
evitare che le password siano Iacilmente recuperabili dal disco del server nel caso di Iurto o
manomissione.
Questo protocollo di autenticazione soIIre di diversi problemi:
u attacco e--e-e eIIicacissimo;
u il canale e considerato sicuro, ma lo e davvero?
u il server di autenticazione riceve nome utente e password in chiaro, quindi e in grado di
Iingersi Alice con un altro server: trasIeribilita;
u le password del database sono sensibili ad un attacco a dizionario.
Quindi, concludendo, PAP non deve assolutamente essere usato, a meno che non venga usato per lo
meno in un tunnel ciIrato.
Challange Handshake Authentication Protocol
Il CHAP e una variante del protocollo PAP, ed e usata in alcune implementazioni di PPP ed in
MicrosoIt Windows.
Pagina 4 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Quello che accade con CHAP e che la Iunzione di trasIormazione viene eseguita sia da Alice che dal
server AS. Il server di autenticazione chiede ad Alice di usare, come , un numero casuale c: sara
poi Alice a mandare al server la trasIormazione r. Il server, a sua volta, usa c per calcolare la sua
trasIormazione r e soltanto se i risultati delle due trasIormazioni saranno uguali, allora
l'autenticazione andra a buon Iine.
L'implementazione standard di CHAP usa
) c d r o w s s a p r e s u (( D M r
Problemi di CHAP sono:
u attacco a dizionario con r (cioe, l'AS non e in realta chi dice di essere);
u il database delle password deve essere salvato in chiaro;
u se c non e un numero casuale, sono possibili i .k i, cioe Trudy puo riutilizzare l'r
registrato per autenticarsi a sua volta.
Ancora una volta, CHAP non deve essere usato a meno che i dati non vengano Iatti transitare su un
tunnel ciIrato.
One-time password
Questo protocollo e stato pubblicato nel 1981 ad opera di Leslie Lamport. Funziona esattamente con
il CHAP, soltanto che c non e piu un numero casuale, ma diventa un numero progressivo n.
DeIiniamo come la Iunzione MDC eseguita per n volte:
n volte
Pagina 5 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
DeIiniamo y il numero residuo di volte in cui sara possibile usare la password. Alice deve mandare
al server di autenticazione il valore
h
y
f
y
(password)
A tutto questo, di solito viene aggiunto un numero di per non dover salvare in chiaro il database
delle password. Con questo protocollo, la trasIeribilita delle credenziali viene limitata ad una sola
autenticazione: Trudy puo Iar Iinta di essere il server e rubare le credenziali corrette, ma queste
saranno valide una volta soltanto.
Tutti i protocolli che abbiamo visto Iin'ora, inoltre, hanno un diIetto sostanziale: non prevedono la
possibilita di Iare autenticazione mutua, una Iunzione molto spesso importante.
Encrypted Key Exchange
Il protocollo EKE si propone di estendere il protocollo DiIIie-Hellman, introducendo l'autenticazione
sulla chiave che si calcola.
Alice manda a Bob un numero A che contiene la versione ciIrata di , dove la chiave
di ciIratura w e la trasIormazione MDC di una password condivisa.
Bob, che riceve il messaggio di Alice, sceglie a sua volta un numero b S con cui calcolare la
grandezza
e sceglie anche un numero casuale c
1
. Alice, grazie al messaggio di Bob, sara in grado di calcolare la
chiave eIIimera K, esattamente come Bob, con cui ciIrare un altro messaggio di risposta che contiene
il numero casuale scelto da Bob ed un altro numero casuale, scelto da Alice. Se Bob ha ricavato la
chiave K corretta, sara in grado di deciIrare il messaggio e di ciIrarne uno nuovo, contenente soltanto
il numero che ha scelto Alice.
In questa maniera, si e ottenuta autenticazione mutua ed il setup di chiavi eIIimere simmetriche,
utilizzabili per ciIrare i messaggi successivi. Questo algoritmo gode anche di resistenza ad attacchi
iii-, perche anche deciIrando i messaggi scambiati da Alice e Bob, non si ottengono che numeri
Pagina 6 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
casuali ed eIIimeri, gia dimenticati dai due soggetti. L'unico problema e che sia Alice che Bob
devono possedere la password e, se Bob e un server di autenticazione, avra nella sua memoria le
password in chiaro di tutti i suoi utenti.
Autenticazione tramite eeeeeeeee
Una iei e un numero scelto da uno dei due soggetti partecipanti all'autenticazione. Questo
numero deve essere Iirmato dall'altro soggetto, Alice, attraverso un MAC. Bob autentica Alice non
tanto sulla challange, ma sul valore del MAC calcolato, che non puo essere corretto se la chiave
usata e sbagliata. La principale innovazione di questo tipo di protocolli e che Alice non deve svelare
a nessuno, almeno durante l'autenticazione, il suo segreto s.
Il segreto di Alice puo essere qualsiasi cosa: una password, per esempio, ma anche la versione
privata di una coppia di chiavi asimmetriche, oppure una chiave simmetrica condivisa.
La challange
La challange e di primaria importanza; deve sempre essere Iresca, non deve esser mai stata usata: se
cosi non Iosse, gli attacchi di tipo .k diventerebbero Iacilissimi. La challange puo essere:
u una ii, cioe un numero casuale usato una sola volta;
u un numero di sequenza, cioe un contatore che continua ad aumentare ad ogni ciclo di
autenticazione;
u un ee., un'inIormazione sul tempo.
Usare un numero di sequenza o il tempo permette di evitare che la challange circoli nella rete e possa
essere intercettata, pero il protocollo diventa piu diIIicile da implementare:
u nel caso dei numeri di sequenza, quesi devono essere uguali per Alice e Bob, il che non e
banale (se Alice usa computer diversi?);
u nel caso del tempo, il problema e che gli orologi di Alice e Bob devono essere sincronizzati,
cosa se non altro costosa.
Il segreto s
Il segreto s e un numero, protetto attraverso meccanismi crittograIici, che viene condiviso tra Alice e
Bob. Questo numero puo essere statico oppure il risultato di algoritmi di ciIratura o di MAC. Il
problema principale sta nella gestione di questi segreti, che deve essere Iatta in maniera sicura:
servono algoritmi per generare questi segreti ed algoritmi di ciIratura per mantenere questi segreti
davvero segreti. Purtroppo, la non trasIeribilita e ancora un risultato lontano, anche con questi
algoritmi.
Una variante puo essere quella di avere dei segreti che non vengono condivisi tra i soggetti che si
vogliono autenticare, ma vengono condivisi con un soggetto terzo, un server di autenticazione Z che
autentica sia Alice che Bob e da loro la garanzia di essere veramente chi dicono di essere.
Per venire incontro al problema del segreto, RSA ha lanciato
un prodotto commerciale discretamente utilizzato, chiamato
DiD: si tratta di calcolatore, delle dimensioni di una
Pagina 7 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
RSA SecurID SID800
chiave, che mostra un numero, variabile nel tempo. Questo
numero e sincronizzato con il server, ed e la nostra chiave di
ciIratura, anch'essa, a questo punto, eIIimera.
ISO/IEC 9798-2/4
Gli standard ISO/IEC 9798-2 e ISO/IEC 9798-4 indicano due metodi di autenticazione del tipo
iei-.i, cioe un'autenticazione in cui il server chiede all'utente di Iirmare qualcosa, una
iei. Questi protocolli sono basati:
u sul tempo t;
u su numeri random o contatori.
Nel caso di protocolli basati sul tempo t, basta che Alice mandi un messaggio a Bob con i dati
corretti perche venga accettata l'autenticazione; si tratta di un protocollo molto semplice e che
permette l'utilizzo ottimale della rete: un solo piccolo messaggio per ottenere cio che se vuole.
Alice manda in chiaro la sua login A, e manda le inIormazioni sul tempo e sull'identita di Bob,
ciIrate con una chiave condivisa s:
R E
S
(t,B)
Quello che deve Iare Bob e controllare se il nome utente e corretto, deciIrare il messaggio e
veriIicare che l'istante di tempo sia compreso in un intorno accettabile
x t t x t
Nel caso di protocolli basati su ii, cioe su numeri casuali validi una volta sola, la complessita
del protocollo cresce, ma e possibile anche Iare autenticazione mutua.
Ad iniziare la cominicazione, questa volta, e Bob, che manda ad Alice un numero casuale c
1
e la sua
Pagina 8 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
identita. Alice risponde a questo messaggio con un nuovo messaggio in cui inserisce
u il suo nome utente
u il numero R
A
E
s
(c
1
,c
2
,B)
dove R
A
contiene la ii scelta da Bob, una ii scelta da Alice e l'identita di Bob, tutto ciIrato
con una chiave condivisa s. A questo punto, Bob mandera ad Alice un messaggio di risposta con un
numero
R
B
E
s
(c
2
,c
1
,A)
in modo tale che Alice abbia la conIerma che Bob ha ricevuto il suo messaggio e vuole davvero
parlare con lei. In questa maniera, il protocollo permette mutua autenticazione e previene anche la
possibilita di .k i, gli attacchi Iatti mandando ad un utente i messaggi di login corrette
registrate in passato.
Autenticazione con algoritmi asimmetrici
Vogliamo Iare un ulteriore passo in avanti nella sicurezza, andando ad utilizzare le chiavi di ciIratura
asimmetrica come segreto per l'autenticazione. In questa maniera, il segreto di Alice non deve piu
essere condiviso con nessuno, basta che Bob o il server di autenticazione abbiano la chiave pubblica
di Alice. Uno passo in piu puo essere quello di adottare i certiIicati digitali, che altro non sono che
dei documenti in cui un ente terzo, una iii Aeik A, dichiara che la chiave pubblica di
Alice e eIIettivamente associata alla persona Alice, con tutta una serie di inIormazioni sul suo conto.
I principali problemi che ci sono, nell'utilizzo di questo tipo di credenziali, sono
u l'autenticazione delle chiavi pubbliche (perche le iii Aeik Ianno il loro lavoro,
si, ma a pagamento);
u complessita computazionale elevata.
Un esempio semplice di utilizzo delle chiavi asimmetriche. Alice manda la sua login al server di
autenticazione Bob, il quale risponde mandando la sua identita, una challange ciIrata con la chiave
pubblica di Alice e l'MDC della stessa challange.
L'autenticazione andra a buon Iine solo se Alice sara in grado di mandare la challange corretta al
server di autenticazione, in una qualche maniera (in chiaro, oppure ciIrata con la chiave pubblica del
server).
Per la sicurezza della coppia di chiavi, e sempre bene assicurarsi che le implementazioni di
Pagina 9 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
autenticazione siano aderenti agli standard di sicurezza come il PKCS.
ISO/IEC 9798-3
Lo standard ISO/IEC 9798-3 deIinisce un protocollo di autenticazione basato sulla crittograIia
asimmetrica e sulle Iirme digitali. Puo essere basato sul tempo oppure su ii.
Nel caso in cui si voglia usare il tempo, si ha autenticazione singola e massima eIIicienza di banda,
perche si manda un solo messaggio che contiene:
u la login di Alice;
u il tempo t;
u il destinatario del messaggio, Bob;
u la Iirma sul numero ) b o B , t (
Nel caso di autenticazione con ii, invece, si puo ottenere autenticazione mutua. Si ha:
u Bob manda ad Alice un messaggio contenente la sua identita e la ii che ha scelto lui, c
1
;
u Alice risponde mandando la sua identita, quella di Bob, la sua ii c
2
e la Iirma su
(c
1
,c
2
,B);
u Bob chiude il protocollo mandando l'identita di Alice e la sua Iirma sulla grandezza (c
2
,c
1
,B).
il Iatto che anche Alice possa scegliere la sua challange e importante, perche impedisce che Alice
debba Iirmare un numero casuale senza saperne il motivo: magari sta ponendo la sua Iirma sull'MD5
di un messaggio che non ha mai scritto, senza saperlo.
oeoo-eoeeee fooof
Pagina 10 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
L'idea che sta alla base di questo tipo di autenticazione e che Bob, dopo aver autenticato Alice, non
avra nessuna ulteriore inIormazione sul segreto di Alice. Alice non rivelera a Bob nulla che lui non
sapesse gia su Alice. Per Iar questo, bisogna introdurre la nozione di ioi .i:
ad ogni scambio di messaggi, Bob ha una sicurezza sempre crescente sulla vera identita di Alice;
ovviamente, la probabilita deve approssimarsi al 100 velocemente.
Protocollo Fiat-Shamir
Teorema: '
Calcolare la radice quadrata di un numero e tanto complesso quanto sarebbe Iattorizzarlo.
Si parte dal presupposto che Bob, attraverso un canale sicuro, abbia alcune inIormazioni su Alice:
u la sua login;
u un numero n grande;
u un altro numero , dove 1 s n e un numero casuale coprimo con n.
Per l'autenticazione, Alice manda a Bob un numero x
i
deIinito come:
dove n r 1 e un numero casuale e coprimo con n. Bob risponde a questo messaggio con un
numero e
i
rand()),1)), da cui Alice ricava e spedisce il numero
L'identita viene conIermata se:
u con e
i
), il risultato e stato
u con e
i
1, il risultato e stato
Pagina 11 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Con questo tipo di protocollo, Trudy e in grado di ingannare Bob soltanto dopo aver registrato una
sessione di login e soltanto sotto l'ipotesi che Bob richieda la stessa identica sequenza di valorie
i
: di
conseguenza, Bob non deve mai chiedere piu volte la stessa sequenza, altrimenti c'e il rischio che
Trudy possa Iare un .k i. Se la sequenza di e
i
cambia, allora Trudy avra ogni volta il 50
di probabilita di indovinare il risultato corretto; di conseguenza, la probabilita che Trudy possa
riuscire a Iare login e 2
i
. In genere, un numero di ripetizioni i considerato suIIiciente e attorno alle
30, 40 volte, sia perche e diIIicile da registrare, sia perche si ha un numero di permutazioni della
sequenza degli e
i
suIIiciente a impedire .k i, che avrebbero probabilita di successo 100.
Classificazione degli attacchi
Registrazione, gegffgee
E un attacco di tipo passivo, il piu semplice di tutti ed il piu probabile: Trudy si inserisce della linea
di comunicazione tra Alice e Bob e registra tutto quello che viene trasmesso. E il primo attacco che
verra Iatto, sempre. Bisogna quindi porre particolare attenzione quando si decide di usare un
protocollo semplice come il PAP, perche bisogna partire dal presupposto che questo attacco e
sempre possibile (lo e nella realta, sempre): il server di autenticazione AD puo essere corrotto,
l'intruso attiva un servizio come tcpdump e registra tutte le credenziali che arrivano al server, senza
nemmeno doversi preoccupare di andarle a cercare nel database, senza doversi immettere in nessuna
connessione ciIrata.
Come conseguenza di questo attacco, tutto quello che puo Iare Trudy e cercare di calcolare le
credenziali di Alice e Bob, come le password o le chiavi private. Altrimenti, se Trudy diventa un
attaccante attivo, puo cercare di impostare un .k i, immettendo nella rete i pacchetti che ha
registrato e cercando di Iar credere a Bob di parlare con Alice o viceversa.
Per ovviare a questi problemi, bisognerebbe sempre inserire, all'interno del protocollo che si vuole
creare, un legame tra le identita dei partecipanti ed il tempo, oppure usare delle iei casuali. E
importante proteggere non solo se stessi, ma anche le credenziali di chi si dovra poi collegare al
nostro server.
Lettura del database
Un attacco solo poco piu complicato dello iii, perche e necessario avere accesso al calcolatore
di Alice o di Bob; questo puo essere Iatto attraverso dei malware inIormatici, oppure avendo accesso
Iisico, rubando o semplicemente consultando l'hard disk non solo di Alice, ma anche del server di
autenticazione. Per questo, e Iondamentale che le password e tutti i documenti come le chiavi private
vengano ciIrati, perche e l'unico modo per proteggerli da un attacco al database.
Falsa identit
Con questo tipo di attacco, Trudy e in grado di intercettare i messaggi tra Alice e Bob, ed ha il tempo
per modiIicarli. Allora, Trudy chiedera ad Alice di Iare le trasIormazioni per conto suo. I protocolli
che prevedono di Iirmare soltanto delle iei sono i piu esposti a questo tipo di attacco.
Pagina 12 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Nel caso di credenziali simmetriche, Trudy potrebbe voler derivare le credenziali di Alice o di Bob,
quindi potrebbe sottoporre loro delle challange apposite, pensate per ridurre al minimo lo sIorzo
(attacco di tipo iei t). Se poi le credenziali sono asimmetriche, allora Trudy potrebbe cercare
di derivare le chiavi private, oppure potrebbe sottoporre una challange che in realta non e soltanto un
semplice numero casuale: potrebbe essere il digest di un documento, al quale Alice appone la sua
Iirma Iacendone il MAC. A questo punto, Trudy ha un documento Iirmato da Alice.
Alcune regole per evitare problemi di questo tipo sono:
u il protocollo deve prevedere un padding casuale scelto sia da Alice che da Bob: Alice non deve
essere costretta a Iirmare tutto quello che le si chiede di Iirmare;
u usare protocolli che mettono in gioco anche il Iattore tempo;
u usare sempre credenziali diverse per i diversi servizi: una chiave privata puo essere usata sia
per Iare login su servizi che per Iirmare documenti, ma viene esposta a due rischi diversi.
Attacchi a specchio
Sono degli attacchi che prevedono l'inizializzazione di piu sessioni in parallelo. Un esempio:
Il protocollo d'esempio prevede che Alice mandi a Bob una challange c
1
, Bob Iirma la challange e
chiede ad Alice di Iirmarne una a sua volta, c
2
. Ma cosa succede se Iniziamo una seconda sessione?
Pagina 13 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Trudy inizia una sessione esattamente come Iarebbe Alice: Bob Iirma c
1
e chiede di Iirmare c
2
. A
questo punto, Trudy puo iniziare una nuova sessione, chiedendo a Bob di Iirmare c
2
al posto di c
1
: e
una richiesta legittima, Bob rispondera con la Iirma di c
2
ed una nuova challange c
3
. A questo punto,
Trudy puo portare a compimento la prima sessione di login, perche e entrata in possesso della Iirma
corretta per c
2
, senza conoscere la chiave K.
Attacchi di questo tipo sono evitabili:
u usando credenziali diverse nelle due direzioni, come la crittograIia asimmetrica, oppure
crittograIia simmetrica ma con due chiavi per le due diverse direzioni (Alice ciIra i messaggi
per Bob con k
1
e Bob risponde ad Alice con k
2
);
u imponendo che sia il server di autenticazione a Iare la prima richiesta;
u eliminando le simmetrie nei messaggi, per esempio usando imponendo di Iare il MAC di
entrambi i ii, anziche soltanto uno.
Attacco ad intermediario
Trudy puo iniziare due autenticazioni, una con Alice ed una con Bob. Prendiamo un protocollo di
esempio:
Trudy puo attaccare il protocollo in questa maniera:
Pagina 14 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
cioe, chiedendo ad Alice di Iirmare, nuovamente, i dati al posto di Bob. Se questa cosa puo sembrare
strana, si consideri la possibilita che sia Alice che Bob siano due server che cominicano in
automatico, entrambi potrebbero voler aprire una connessione verso l'altro.
Questo attacco puo essere evitato chiedendo di Iirmare sempre tutte le challange in successione, cioe
imponendo, al posto di MAC
k
(c
2
,c
4
), che venga Iirmato MAC
k
(c
2
,c
1
).
Chiavi effimere ed autenticazione
Vogliamo derivare delle chiavi temporanee da usare per uno scambio di dati; queste chiavi
temporanee devono essere i .ie, cioe ci deve essere la sicurezza assoluta che
soltanto i soggetti che Ianno parte del gruppo di lavoro, e che si sono autenticati, le conoscano
davvero. Genericamente, i soggetti possono essere anche piu di due.
L'autenticazione dei soggetti che hanno diritto a conoscere la chiave e strettamente legata
all'autenticazione delle chiavi eIIimere che, generalmente, vengono derivate da tutti durante la Iase
di autenticazione. E quindi il protocollo di autenticazione dei soggetti a doversi occupare della
derivazione delle chiavi eIIimere autenticate.
Le chiavi eIIimere, o temporanee, sono l'opposto delle ie e, o chiavi di lungo periodo. Se le
chiavi eIIimere devono essere cambiate ad ogni autenticazione (o anche piu spesso), le chiavi di
lungo periodo sono quelle chiavi, tipicamente asimmetriche, che servono per autenticare i soggetti
all'interno di una sessione ciIrata.
L'utilizzo delle chiavi di lungo periodo in maniera intensiva, oltre ad essere computazionalmente piu
oneroso, espone le chiavi stesse, perche aumenta la quantita di dati che possono essere analizzati, da
cui si puo potenzialmente ricavare la chiave privata; al contrario, usare chiavi eIIimere permette di
usare algoritmi di ciIratura simmetrici, quindi meno computazionalmente onerosi, e permette che le
chiavi siano cambiate molto piu spesso, limitando quindi la quantita di testo ciIrato che e possibile
analizzare. Inoltre, se viene scoperta una chiave temporanea, saranno disponibili all'attaccante
soltanto una quantita di dati limitata, mentre se si usasse la chiave di lungo periodo, una volta
scoperta, esporrebbe tutti i dati alla deciIratura, Iatto sgradevole.
Un altro motivo per cui usare le chiavi eIIimere e che queste possono essere piu di una, in sessioni
diverse, anche contemporaneamente: Alice puo parlare in segretezza con piu persone, senza che
ogniuno di loro possa leggere i dati che Alice scambia con gli altri.
Perfect Forward Secrecy
La PFS e la ioo .i ii, cioe la garanzia che, una volta cancellate le chiavi eIIimere,
anche se qualcuno scopre la chiave di lungo periodo, non ha alcuna inIormazione aggiuntiva sulle
chiavi temporanee e, quindi, non potra comunque leggere le inIormazioni protette con chiavi
temporanee. Un esempio di algoritmo che oIIre PFS e EKE, mentre qualsiasi protocollo che prevede
di scambiarsi le chiavi ciIrandole con la chiave master non oIIre alcuna garanzia di PFS, perche le
chiavi saranno recuperabili dalla registrazione.
Ovviamente, la PFS oIIre garanzie per il passato, ma non per il Iuturo: una volta che la chiave
privata di Alice e stata compromessa, Trudy potra comunque Iar credere agli altri di essere Alice.
Pagina 15 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
La ii iik, invece, e quella proprieta del protocollo che, se una chiave eIIimera viene
scoperta, nulla si sa su tutte le altre chiavi eIIimere. InIatti, anche se Trudy e in grado di calcolare
una o piu chiavi eIIimere, questo non la deve aiutare nel calcolo delle chiavi eIIimere successive o
precedenti, ne tantomeno per il calcolo della chiave privata di Alice o di Bob. Questa proprieta e
molto importante, perche di solito le chiavi eIIimere sono meno protette delle chiavi di lungo
periodo:
u vengono condivise tra piu persone;
u non vengono salvate in Iorma ciIrata;
u sono usate per ciIrare grandi quantita di dati, quindi sono piu esposte alla crittanalisi.
Di conseguenza, e piu probabile che venga scoperta una chiave eIIimera piuttosto che la chiave di
lungo periodo, quindi e importante che da questa non si riesca a risalire alla chiave di lungo periodo,
ne alle chiavi temporanee Iuture o passate.
Setup delle chiavi effimere
Le chiavi eIIimere possono essere decise da un singolo soggetto, oppure essere calcolate in parallelo
da tutti i partecipanti alla sessione protetta.
Nel caso in cui la chiave venga decisa unilateralmente da un'entita, allora questa chiave dovra essere
ciIrata con le credenziali di lungo periodo, in modo tale che gli utenti della sessione ciIrata la
possano ricevere in maniere sicura, senza che qualcuno possa leggerla. In questa manieral, la chiave
temporanea viene protetta soltanto dalla chiave di lungo periodo.
Nel caso, invece, in cui le chiavi vengano calcolate in parallelo da tutti i partecipanti alla sessione
ciIrata, allora tutti dovranno immettere il loro contributo aIIinche la chiave possa essere generata;
questa chiave, quindi, non dovra circolare nella rete, non dovra essere protetta, quindi non ci sara il
pericolo che venga recuperata a partire dalle registrazioni di una sessione di comunicazione.
Questo secondo approccio e piu pesante del primo, dal punto di vista computazionale, ma oIIre la
PFS ed e meno esposta a .k i.
Chiave trasportata nella rete
La chiave temporanea K
t
puo essere semplicemente decisa da Alice e poi comunicata a Bob in Iorma
ciIrata, usando la chiave master K per ciIrare la chiave temporanea. Se, assieme alla chiave, ciIriamo
anche il nome del destinatario, allora si impedisce che quello stesso messaggio possa essere usato per
Iare un .k i contro Alice; questo attacco resta comunque possibile nei conIronti di Bob,
oltre al Iatto che manca totalmente la PFS.
Per ovviare ai .k i, si puo imporre che sia Bob a comunicare ad Alice un numero n ii,
in modo da rendere univoco il messaggio ciIrato.
Pagina 16 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Aggiungendo poi le Iirme digitali, si ha un'autenticazione ancora piu Iorte del messaggio.
Key Distribution Center
La distribuzione delle chiavi eIIimere per n nodi prevede che ogniuno di questi nodi conosca n (
1) chiavi pubbliche, una per ogni altro partecipante alla sessione ciIrata. Questo Iatto e un problema,
al crescere di n.
Per ovviare a questo problema nascono i Ck i C, i centri per la distribuzione
delle chiavi eIIimere. Grazie al KDC, ogni nodo della rete protetta deve conoscere soltanto le
credenziali proprie e del KDC, mentre il KDC stesso si incarica di tener traccia delle credenziali di
tutti i nodi della rete protetta. Questo Ia si che il KDC sia un elemento Iondamentale della rete, deve
essere un nodo di Iiducia per tutti coloro che si attestano alla rete, perche e l'unico vero intermediario
tra i nodi deputato all'autenticazione di ogni singolo nodo e alla comunicazione delle chiavi
temporanee.
Usare un KDC e sicuramente un vantaggio nelle reti di grandi dimensioni, dove la scalabilita e
importante. InIatti, aggiungere un nodo ad una rete di 1000 computer e tanto semplice con un KDC
tanto e diIIicile in una rete distribuita. Inoltre, se un singolo nodo viene compromesso, il KDC dovra
aggiornare soltanto le sue credenziali, mentre in una rete distribuita tutti devono essere inIormati
della nuova chiave pubblica e del Iatto che quella vecchia non deve piu essere usata.
Al contrario, il KDC diventa un nodo nevralgico per la sicurezza di tutta la rete: se questo viene a
mancare o se questo e sottodimensionato, rischia di diventare un collo di bottiglia per tutta la rete.
Un esempio di implementazione di un KDC e il protocollo Kerberos; analizziamo, in maniera
sempliIicata, Ci 5.
Pagina 17 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
Supponiamo che Alice voglia parlare con Bob: dovra quindi mandare al KDC un messaggio che
contenga il suo username, lo username di Bob, ed un numero n come ii. Il server KDC
rispondera ad Alice con due i, due biglietti che contengono le credenziali per lei e per Bob: sara
Alice a dover cominicare a Bob le sue credenziali per poter iniziare la connessione ciIrata.
Tutte le chiavi che vengono rilasciate dal server kerberos devono essere usate entro un certo tempo,
deIinito tal numero L. Opzionalmente, Alice e Bob possono usare questa chiave K
t
per scambiarsi
altre due chiavi, K
subA
e K
subB
, delle sottochiavi di ciIratura.
Le credenziali di Alice e Bob, in Kerberos, vengono derivate a partire dalle password degli utenti,
attraverso una Iunzione MDC. E importante notare che, assieme alla password, viene usato anche il
nome di dominio in cui opera il server: questo Iatto Ia si che, se un utente usa la stessa password per
piu domini diversi, anche se il database di un dominio viene perso, gli altri domini non sono in
pericolo.
Chiave calcolata da tutti i nodi
L'importanza di questo tipo di approccio e che tutti partecipano al calcolo della chiave.
Per generare le chiavi su usano dei numeri casuali, mentre per evitare il problema dei .k i si
ricorre all'uso di ii.
File:Sicurezza chiavi derivate.png
Questo tipo di protocollo utilizza le credenziali di lungo periodo di Alice e di Bob per trasportare i
numeri casuali con cui verra calcolata la chiave, per esempio con un MDC:
K
t
MDC(r
1
,r
2
)
ma questo Ia si che il protocollo non goda della PFS: se la sessione viene registrata e se vengono
scoperte le chiavi private di Alice e di Bob, i numeri casuali r
1
e r
2
possono essere recuperati e, di
conseguenza, puo essere ricalcolata la chiave eIIimera con cui deciIrare tutti i messaggi.
Per aggiungere la PFS, si ricorre al protocollo Di Si Di DSD, che e una variante
Pagina 18 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
dell'algoritmo DiIIie-Hellman con autenticazione.
File:Sicurezza chiavi derivate STS.png
In questo caso, Alice manda a Bob tutte le grandezza che sono necessarie all'algoritmo DiIIie-
Hellman; Bob risponde con gli altri valori necessari per il calcolo della chiave, ma aggiunge anche la
versione ciIrata (con la chiave temporanea) della sua Iirma sui due numero g
Sa
e g
Sb
, in modo tale
da autenticarsi ad Alice. Come ultimo passo, anche Alice si autentica a Bob, mandando la versione
ciIrata della sua Iirma sui due numero g
Sa
e g
Sb
.
Ovviamente, come prevede l'algoritmo DiIIie-Hellman, la chiave temporanea sara
Questo protocollo garantisce la PFS, perche questa volta davvero non circola nulla sulla rete che
possa portare alla chiave temporanea. Lo scambio delle Iirme ciIrate garantisce che sia Alice che
Bob hanno calcolato la stessa K
t
, e permette loro di autenticarsi. L'unico diIetto di questo approccio
e la complessita computazionale, dal momento che si usano sia DiIIie-Hellman che chiavi
asimmetriche.
Certification Authority
Le iii Aik A rispondono alla necessita di autenticare le chiavi pubbliche: il concetto
e simile al KDC, ma si opera nel mondo della crittograIia asimmetrica. La CA si pone come un
intermediario di Iiducia tra Alice e Bob, che certiIica l'autenticita d l'integrita delle loro chiavi
pubbliche, in modo tale che essi siano in grado di riconoscersi senza ombra di dubbio.
Un certiIicato digitale non e altro che una Iirma apposta sulla coppia (K
pubA
,A),
Cert
A
S
CA
(K
pubA
,A)
cioe, l'autorita certiIicante Iirma e si pone da garante per Bob, dichiarando che la chiave pubblica
K
pubA
e eIIettivamente associata ad Alice, cioe la particolare chiave e associata alla particolare
persona (o azienda, o server).
Perche tutto questo Iunzioni, e necessario che Bob possegga la vera chiave pubblica del CA; inoltre,
l'autorita deve essere di Iiducia () sia per Alice che per Bob: Alice si Iida dell'autorita e paga
per avere il certiIicato, Bob si Iida della CA ed accetta la sua Iirma come prova dell'identita di Alice.
L'autorita di certiIicazione puo essere anche oIIline, non deve essere necessariamente collegata ad
internet o consultabile perche il meccanismo Iunzioni: quando Bob possiede il certiIicato digitale e la
chiave pubblica della CA (di cui ha la garanzia della veridicita), e in grado in qualsiasi momento di
veriIicare la Iirma della CA, senza doverla interpellare.
Collegamenti esterni
u Pagina della Wikipedia inglese su SecurID (in inglese) (7/12/2008 veriIicato Iunzionante)
u ISO/IEC 9798-2 (http://www.iso.org/iso/isocatalogue/cataloguetc/cataloguedetail.htm?
csnumber30653) (in inglese) (negozio di contenuti a pagamento) (7/12/2008 veriIicato
Iunzionante)
Pagina 19 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes
u ISO/IEC 9798-3 - RFC 3163 (http://www.Iaqs.org/rIcs/rIc3163.html) (in inglese) (7/12/2008
veriIicato Iunzionante)
u ISO/IEC 9798-4 (http://www.iso.org/iso/isocatalogue/cataloguetc/cataloguedetail.htm?
csnumber31488) (in inglese) (negozio di contenuti a pagamento) (7/12/2008 veriIicato
Iunzionante)
u Sito di TcpDump (http://tcpdump.org) (in inglese) (7/12/2008 veriIicato Iunzionante)
LAVORI IN CORSO! - WORK IN PROGRESS!
Davide Morellato si sta occupando di questo testo; non apportare modiIiche se l'ultima
modiIica (//it.wikiversity.org/w/index.php?
titleProtocollidiautenticazione&actionhistory) e recente.
Estratto da "http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&oldid54160"
Categorie: Pagine con link danneggiati WIP Sicurezza nelle reti
u Ultima modiIica per la pagina: 15:24, 5 gen 2010.
u Il testo e disponibile secondo la licenza Creative Commons Attribuzione-Condividi allo stesso
modo; possono applicarsi condizioni ulteriori. Vedi le condizioni d'uso per i dettagli.
Pagina 20 di 20 Protocolli di autenticazione - Wikiversita
22/ 11/ 2011 http://it.wikiversity.org/w/index.php?titleProtocollidiautenticazione&printableyes

Potrebbero piacerti anche