Reading Time: 2 minutes

Il paradigma challenge/response

Il paradigma challenge/response prevede che il client si autentichi presso il server, seguendo una procedura articolata in almeno tre passi.

Il primo passo prevede che il client invii l’identificativo personale dell’utente al server.

Il secondo passo prevede la generazione/trasmissione di un numero casuale R (challenge) da parte del server.

Il numero R rappresenta la sfida da superare per completare l’autenticazione.

Il terzo passo, infine, prevede che il client risponda alla sfida inviando al server una “trasformata” del challenge ricevuto.

La risposta alla sfida può essere il risultato di una operazione di codifica del challenge R utilizzando una chiave Kc, oppure può essere prodotto dalla concatenazione di R con una password P e successiva applicazione di una funzione di digest.

In entrambi i casi è indispensabile che il processo compiuto dal client risulti ripetibile sul server.

Poichè solo client e server sono a conoscenza del segreto (Kc o P) utilizzato per trasformare il numero R, il server è in grado di stabilire l’identità dell’utente che risponde alla sfida in maniera univoca, applicando la trasformazione inversa in caso di codifica o confrontando il digest ricevuto dall’utente con quello prodotto localmente.

Il processo di creazione di un authentication code può coinvolgere una funzione di cifratura asimmetrica e l’uso di chiavi pubbliche e private.

In tal caso il richiedente è chiamato ad utilizzare la propria chiave privata ed il server a verificare la response con la chiave pubblica associata.

Perchè il paradigma challenge/response risulti immune ad attacchi di replicazione è sufficiente proporre al client sfide sempre diverse.

Il principale limite della soluzione proposta consiste nel numero elevato di step necessari per il suo completamento (almento 3 fasi), che può risultare eccessivo per la fruibilità di alcune applicazioni Internet.

Per le applicazioni basate su protocollo UDP, se previsto, è necessario poter valutare le credenziali della sorgente per ogni pacchetto trasmesso e non semplicemente all’apertura di una nuova sessione.

In questo scenario, una procedura di autenticazione composta da tre passi può risultare non implementabile.

La realizzazione di uno schema in cui si può arrivare all’autenticazione di ciascun singolo messaggio richiede di poter inserire all’interno di ogni messaggio trasmesso il suo codice per l’autenticazione.

Questo risultato può essere ottenuto, mantenendo al tempo stesso il livello di sicurezza associato all’utilizzo di un paradigma challenge/response, ricorrendo all’uso di challenge impliciti.

Nel paradigma challenge/response, per evitare replay attack, occorre effettuare la trasformazione di numeri casuali R, che non vengono mai riproposti dal server.

Asepetto fondamentale della robustezza dell’intero schema è che non vengano mai codificati due numeri R uguali; di secondaria impotanza il fatto che il challenge sia generato in maniera veramente casuale.

error: Content is protected !!

La maggior parte dei contenuti del blog ComputerSec vengono pubblicati a beneficio di tutti e in modo completamente gratuito.
Tuttavia per supportare il blog, e per avere ulteriori vantaggi, puoi decidere di abbonarti e sfruttare al 100% tutti i contenuti!
Abbonati Ora!

Complimenti! Ti sei iscritto alla nostra Newsletter

C'è stato un errore durante l'invio della richiesta. Per favore riprova.

Computer Security will use the information you provide on this form to be in touch with you and to provide updates and marketing.