Challenge-handshake authentication protocol

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.

  1. 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.
  2. 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.
  3. 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).
  4. 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 byte1 byte2 byte1 byteProměnnáProměnná
ChallengeCode = 1IDDélkaChallenge délkaChallenge hodnotaJméno
ResponseCode = 2IDDélkaResponse délkaResponse hodnotaJméno
SuccessCode = 3IDDélkaZpráva
FailureCode = 4IDDélkaZpráva


  • Rámec protokolu PPP s vloženým paketem protokolu CHAP (pole má hodnotu C223 (hex))
Křídlová značkaAdresaŘídicí poleProtokol (C223 (hex))DATAKontrolní součetKřídlová značka

Reference