Challenge-handshake authentication protocol
CHAP of Challenge-Handshake Authentication Protocol is een wijd verspreide verificatiemethode waarbij een representatie van het wachtwoord van de gebruiker, in plaats van het wachtwoord zelf, verzonden wordt tijdens het verificatieproces. 

Het protocol wordt beschreven in het : PPP Challenge Handshake Authentication Protocol (CHAP).

Algemeen  

Het Challenge-Handshake Authentication Protocol wordt gebruikt door Point to Point Protocol (PPP) servers voor het periodiek verifiëren van de identiteit van de supplicant (client computer). Hiervoor wordt gebruikgemaakt van een driewegshandshakeschema. De verificatie gebeurt juist na het initialiseren van de datalink, en kan daarna herhaald worden op elk ander tijdstip. De verificatie is gebaseerd op een gedeeld geheim, zoals het wachtwoord van de gebruiker. Dit wachtwoord is zowel gekend door de supplicant als door de authenticator. 

 De authenticator stuurt een challenge message naar de supplicant (de computer van de client).
 De supplicant stuurt als antwoord een waarde berekend aan de hand van een one-way hashfunctie (zoals een MD5 checksum hash) in combinatie met een geheim (wachtwoord). Een one-way hashfunctie is makkelijk te berekenen maar moeilijk om te keren.
 De authenticator vergelijkt de ontvangen waarde met zijn eigen berekende waarde. Als deze twee waarden overeenkomen, wordt de verificatie bevestigd en wordt de supplicant tot het netwerk toegelaten. Indien dit niet het geval is, moet de verbinding verbroken worden.
 Op willekeurige tijdstippen zal de authenticator een nieuwe challenge sturen en worden stappen 1 tot 3 herhaald.

CHAP is doorgaans veiliger dan het Password Authentication Protocol (PAP) omdat bij CHAP, in tegenstelling tot PAP, het wachtwoord en de gebruikersnaam niet als een gewone tekst over het netwerk worden verzonden. 

Microsoft heeft zijn eigen versie van CHAP namelijk MS-CHAP en de latere versie MS-CHAP v2.

Voorwaarden  

 De lengte van het geheim moet ten minste 1 octet zijn. In dit geval betekent een octet een serie van acht bits. Het geheim dient echter net zo lang en niet te raden te zijn als een goedgekozen wachtwoord. Het geheim is best minimaal de lengte van de hashwaarde voor het gekozen hashing algoritme. In het geval van MD5 is dit 16 octet.
 Het one-way hash algoritme wordt zo gekozen dat het rekenkundig onhaalbaar is om het geheim te achterhalen aan de hand van de bekende challenge en het antwoord.
 Elke challenge waarde moet uniek zijn, omdat bij herhaling van een challenge waarde in combinatie met hetzelfde geheim het voor een aanvaller mogelijk is om te antwoorden met een eerder onderschept antwoord.
 Elke uitdaging moet ook onvoorspelbaar zijn, aangezien een aanvaller anders de challenge zou kunnen voorspellen.

Zie ook  

Password Authentication Protocol
Hashfunctie
Challenge response-authenticatie

Referenties  

Cryptografisch protocol
Netwerkprotocol
Identity and access management