
CRITTOGRAFIA VISUALE APPLICATA AI SEGNALI DIGITALI
AUTENTICAZIONE
Per illustrare il meccanismo di autenticazione, tratteremo il protocollo di Needham-Schröder.
Protocollo di Needham-Schröder
Con il termine generico di protocollo di Needham-Schröder si possono identificare due protocolli di comunicazione progettati per permettere comunicazioni cifrate su reti non sicure.
I protocolli furono proposti da Roger Needham e Michael Schröder nel 1978, e sono:
-
Il protocollo di Needham-Schröder a chiave segreta: basato sulla crittografia simmetrica, è alla base del protocollo Kerberos, e permette di stabilire una chiave di sessione utilizzabile da due entità di rete per proteggere le successive comunicazioni;
-
Il protocollo di Needham-Schröder a chiave pubblica: basato sulla crittografia asimmetrica, permette di assicurare la mutua autenticazione tra due entità di rete. Nella sua forma proposta non è sicuro, quindi non verrà trattato all'interno del sito.
Protocollo di Needham-Schröder a chiave segreta
Scenario:
-
Alice (A) e Bob (B) sono due entità di rete che devono comunicare in modo sicuro utilizzando un collegamento di rete non sicuro;
-
S è un server fidato, ovvero che gode della fiducia di entrambe le parti;
-
KAS è una chiave simmetrica nota esclusivamente ad A ed S;
-
KBS è una chiave simmetrica nota esclusivamente a B ed S;
-
KAB è una chiave simmetrica di sessione generata da S durante l'esecuzione dei passi del protocollo;
-
NA e NB non nonce crittografici, ovvero numeri casuali monouso.
Supponendo che sia A a cominciare la comunicazione, allora questa la inizia spedendo un messaggio al server con la sua identità e quella di Bob, allegano anche un numero NA:
A --> S:A,B,NA
Il server genera la chiave di sessione KAB e risponde ad Alice inviandole:
-
La chiave KAB appena generata;
-
La coppia (KAB,A) criptata con la chiave KBS, in modo che possa essere inoltrata a Bob affinchè venga reso partecipe;
-
Il nonce NA e l'identificativo di Bob perchè, in linea di massima, Alice può inviare più di una richiesta al server per iniziare più comunicazioni (deve quindi essere in grado di distinguere le varie risposte).
Il tutto è criptato con la chiave segreta KAS, nota ad Alice ed al server:
S --> A:{NA,KAB,B,{KAB,A}KBS}KAS
Alice comunica a Bob la chiave di sessione e il proprio identificativo, criptati con la chiave KBS, come comunicata dal server con il precedente messaggio. Bob può così decriptare il messaggio e il fatto che sia stato cifratoda un'entità fidata (il server) lo rende autentico:
A --> B:{KAB,A}KBS
Bob risponde ad Alice con un nonce criptato con la chiave di sessione KAB, per mostrare che è in possesso della chiave:
B --> A:{NB}KAB
Alice decifra il nonce di Bob, lo modifica con una semplice operazione, lo cifra nuovamente e lo rispedisce indietro, provando così che è ancora attiva e in possesso della chiave:
A --> B:{NB-1}KAB
Da questo momento in poi, la comunicazione è pienamente stabilita e condotta da entrambe le parti inviando messaggi cifraticon la chiave di sessione KAB.
Il protocollo è suscettibile ad attacchi di tipo replay, in cui se un'attaccante E conosce una vecchia chiave K'AB scambiata in una precedente esecuzione del protocollo, allora E può replicare il messaggio {K'AB,A}KBS a B, il quale accetta la chiave K'AB, non sapendo che è compromessa: una soluzione sarebbe quella di utilizzare i timestamp all'interno dei messaggi, esattamente come nel protocollo Kerberos.
Nella figura che segue, viene mostrato il funzionamento del protocollo di Needham-Schroder per quanto riguarda lo scambio di chiavi:
