Challenge-Handshake Authentication Protocol
In informatica il CHAP (acronimo di Challenge-Handshake Authentication Protocol) è un protocollo di autenticazione che identifica un utente presso un Internet Service Provider.
La RFC 1994: PPP Challenge Handshake Authentication Protocol definisce lo standard del protocollo.
Schema del CHAP
Il CHAP è uno schema d'autenticazione usato dai server PPP per convalidare l'identità dei client remoti. Il CHAP verifica periodicamente l'identità del client tramite un processo handshake. Ciò accade non appena viene stabilito il primo contatto e può accadere di nuovo in qualunque momento. La verifica si basa su un segreto condiviso (come la password dell'utente).
- Dopo aver stabilito una connessione, il client invia il proprio identificativo utente ed il server risponde con una domanda di "sfida" (challenge), costituita da un numero semicasuale.
- Il client esegue l'hash (può essere un MD5) del challenge assieme alla sua password e lo reinvia.
- Il server, che conosce la password, è in grado di eseguire lo stesso calcolo e quindi comparare i due valori verificando la correttezza del valore ricevuto. Se i valori non combaciano la connessione viene terminata.
- Ad intervalli casuali il server ripropone un challenge al client e vengono ripetuti i primi tre passi.
In questo modo la chiave non circola sulla rete, ma rimane il problema della conoscenza della chiave che deve essere nota per entrambi i sistemi. Il CHAP offre però una protezione contro gli attacchi replay grazie all'uso di un identificatore e di un challenge variabili. Questo protocollo necessita che il client conservi la password in formato testo.
Voci correlate
- MS-CHAP: implementazione Microsoft del CHAP.
- PAP, un protocollo alternativo
Collegamenti esterni
- (EN) Denis Howe, Challenge-Handshake Authentication Protocol, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
- RFC 1994
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Crystal_128_displayphone.png/24px-Crystal_128_displayphone.png)