În informatică,  Protocolul de autentificare Challenge-Handshake (CHAP) autentifică un utilizator sau calculator cu o entitate de autentificare. Acea entitate poate fi, de exemplu, un  ISP. CHAP este descris în RFC 1994.

CHAP oferă protecție împotriva atacurilor cu retransmisia pachetelor printr-un identificator incremental și o valoare a cererii variabilă. CHAP cere ca atât clientul cât și serverul să cunoască secretul, deși acesta nu este trimis peste rețea. De aceea, CHAP oferă o protecție mai bună decât PAP, care este vulnerabil la ambele tipuri de atacuri. Varianta MS-CHAP nu cere ca ambele capete ale comunicației să cunoască secretul, dar această variantă a fost "spartă".[1]

Mod de funcționare

modificare

CHAP este schema de autentificare folosită de serverele PPP pentru a valida identitatea clienților. CHAP verifică periodic identitatea clientului folosind o autentificare în 3 pași. Acest lucru se întâmplă în timpul stabilirii legăturii inițiale (LCP), și poate fi repetat la orice moment ulterior. Verificare se bazează pe un secret comun (ca de exemplu parola clientului).[2]

  1. După stabilirea legăturii, autentificatorul trimite o cerere către celălalt capăt.
  2. Acesta răspunde cu o valoare calculată folosind o funcție hash aplicată aspura combinației dintre cerere și parolă.
  3. Autentificatorul verifică răspunsul cu propriile calcule și dacă valorile se potrives, acesta permite autentificare. Altfel, conexiunea este închisă.
  4. La intervale aleatorii, autentificatorul trimite o nouă cerere și se repetă pașii 1-3.

Pachetele CHAP

modificare
Descriere 1 octet 1 octet 2 octeți 1 octeți variabil variabil
Cerere Cod = 1 ID Lungime Lungimea cererii Valoarea cererii Nume
Răspuns Cod = 2 ID Lungime Lungimea răspunsului Valoarea răspunsului Nume
Succes Cod = 3 ID Lungime Mesaj
Eșec Cod = 4 ID Lungime Mesaj

ID-ul ales pentru numărul random din cerere este de asemenea folosit pentru răspunsul corespunzător, precum și pentru pachetele de succes sau eșec. O nouă cerere cu un nou ID trebuie să fie diferită de ultima cerere cu un ID diferit. Dacă mesajul de succes/eșec este pierdut, același răspuns poate fi trimis din nou și declanșează aceeași indicație de succes. Pentru funcția hash MD5, valoarea răspunsului este MD5(ID||secret||challenge), hash-ul MD5 pentru concatenarea dintre ID, secret și challenge.[3]

Vezi și

modificare

Legături externe

modificare
  • RFC 1994 PPP Challenge Handshake Authentication Protocol (CHAP)
  • RFC 2865 Remote Authentication Dial In User Service (RADIUS): folosește PAP sau CHAP
  • RFC 3748 Extensible Authentication Protocol (EAP): abordează CHAP