Challenge-Handshake Authentication Protocol (CHAP) to protokół weryfikacji tożsamości. Nie używa wymiany wspólnego tajnego klucza między stroną żądającą dostępu a stroną weryfikującą tożsamość (uwierzytelniaczem). CHAP jest oparty na współdzielonym sekrecie, ale w celu uwierzytelnienia, osoba uwierzytelniająca wysyła wiadomość „wyzwanie” do strony żądającej dostępu. Następnie odpowiada ona wartością obliczoną za pomocą jednokierunkowej funkcji “mieszania”, która przyjmuje jako dane wejściowe wyzwanie i wspólny sekret. Uwierzytelniający porównuje odpowiedź z rezultatem własnego obliczenia oczekiwanej wartości skrótu. Jeśli wartości są zgodne, uwierzytelnianie się powiedzie, w przeciwnym razie nie powiedzie się. Po ustanowieniu uwierzytelnionego połączenia, osoba uwierzytelniająca może w losowych odstępach czasu wysłać wyzwanie stronie żądającej dostępu,
Protokół CHAP ma wbudowane środki ochrony przed atakiem typu reply, wymagając od strony żądającej dostępu użycia stopniowo zmieniającego się identyfikatora i zmiennej wartości wyzwania. Uwierzytelniający kontroluje częstotliwość i czas wyzwań. Stosowanie powtarzających się wyzwań ma na celu ograniczenie czasu ekspozycji na pojedynczy atak.