Challenge Handshake Authentication Protocol (CHAP) slouží k prokazování totožnosti při použití protokolu PPP. Protokol CHAP řeší nedostatky protokolu PAP a je definovaný v RFC 1994.
Autentizace
Klient i autentizační server sdílí stejný šifrovací klíč symetrické šifry. Autentizace v protokolu CHAP probíhá ve třech krocích.
- Nejprve je ustanoveno spojení mezi klientem a autentizačním serverem. Následně autentizační server odešle klientovi příkazem Challenge výzvu, obsahující náhodný řetězec.
- Klient vhodně spojí přijatý náhodný řetězec se sdíleným tajemstvím (šifrovací klíč) a výsledek zašifruje pomocí jednocestné funkce, známé jako hash, např. pomocí algoritmu SHA-2. Výsledek vloží do odpovědi (Response) a odešle autentizačnímu serveru.
- Autentizační server obdržel zašifrovanou zprávu od klienta. Server zašifruje původní zprávu, kterou odeslal klientovi stejným způsobem, jako to udělal klient, a porovná se zprávou, kterou získal od klienta. Pokud je výsledek shodný, tak dojde k potvrzení autentizace (Success) při neshodě k zamítnutí autentizace (Failure).
- Pakety Challenge mohou být v průběhu komunikace odesílané kdykoliv v náhodných opakujících intervalech z důvodu ověření klienta (opakují se kroky 1 až 3).
Výhoda protokolu CHAP je oboustranná autentizace, tj. autentizace klienta proti serveru a autentizace serveru proti klientovi.
Bezpečnost v protokolu CHAP
Proti zneužití a odchycení hesla slouží serveru změna Challenge a narůstající identifikátor v odeslaných paketech. Klient při odesílání odpovědí serveru vkládá do paketu důsledně zkopírované identifikátory, které slouží serveru ke správnému vybrání Challenge pro vlastní výpočet pomocí hashovací funkce.
CHAP paket
Název(anglicky)
|
1 byte
|
1 byte
|
2 byte
|
1 byte
|
Proměnná
|
Proměnná
|
Challenge
|
Code = 1
|
ID
|
Délka
|
Challenge délka
|
Challenge hodnota
|
Jméno
|
Response
|
Code = 2
|
ID
|
Délka
|
Response délka
|
Response hodnota
|
Jméno
|
Success
|
Code = 3
|
ID
|
Délka
|
|
Zpráva
|
|
Failure
|
Code = 4
|
ID
|
Délka
|
|
Zpráva
|
|
- Rámec protokolu PPP s vloženým paketem protokolu CHAP (pole má hodnotu C223 (hex))
Křídlová značka
|
Adresa
|
Řídicí pole
|
Protokol (C223 (hex))
|
DATA
|
Kontrolní součet
|
Křídlová značka
|
Reference