CHAP je autentizační protokol, který pravidelně ověřuje identitu vzdáleného klienta pomocí „třícestného podání ruky“. Na rozdíl od staršího protokolu PAP (Password Authentication Protocol), který posílal heslo v čitelném textu, CHAP využívá kryptografické hashování.
Tento protokol je definován v normě RFC 1994 a je klíčový pro zabezpečení vytáčených spojení (dial-up), virtuálních soukromých sítí (VPN) a úložišť typu iSCSI.
Proces ověření probíhá bezpečně díky tomu, že obě strany (klient i server) znají stejné heslo (tzv. „shared secret“), ale nikdy si ho navzájem nepošlou.
1. **Výzva (Challenge):** Server vygeneruje náhodný řetězec dat (tzv. nonce) a pošle ho klientovi. 2. **Odpověď (Response):** Klient vezme tuto výzvu, spojí ji se svým heslem a pomocí hashovací funkce (obvykle MD5) vypočítá výsledek (hash). Tento hash pošle zpět serveru. 3. **Ověření (Verification):** Server provede stejný výpočet (má k dispozici stejnou výzvu i heslo klienta). Pokud se výsledek serveru shoduje s hashem od klienta, potvrdí autentizaci.
| Vlastnost | PAP | CHAP |
|---|---|---|
| Přenos hesla | Čitelný text (Plaintext). | Pouze hash (jednosměrný otisk). |
| Bezpečnost | Velmi nízká. | Vysoká (standard pro P2P). |
| Opakování výzvy | Pouze při navazování spojení. | Kdykoliv během spojení. |
| Nároky na CPU | Minimální. | Vyšší (kvůli výpočtům hashe). |
Microsoft vyvinul vlastní verzi MS-CHAP, která se často používá v sítích Windows a VPN (PPTP).
Související pojmy: SSL/TLS, VPN, Hashování, MD5, Man-in-the-Middle, IP adresa, Autentizace.