CHAP

読み:ちゃっぷ / 英語表記:Challenge Handshake Authentication Protocol

PPPで使う認証方式の1つ。サーバが送る乱数(チャレンジ)とパスワードからハッシュ値を計算して返すことで、パスワードそのものを送らずに認証する。

イマシルちゃんの解説

合言葉を確かめたいとき、合言葉をそのまま大声で言ったら、周りの人にも聞こえちゃうよね。

そこでCHAPは、サーバが毎回ちがう「お題」を出して、
クライアントは「お題」と「合言葉」を混ぜて計算した答えだけを返すんだ。
これなら合言葉そのものは一度も口に出さないから、盗み聞きされても安心なんだよ!

より深い解説

定義

CHAP(Challenge Handshake Authentication Protocol)は、RFC 1994で定められた、PPPの認証プロトコルである。PPPフレームのプロトコルフィールドの値は0xC223。チャレンジレスポンス方式の認証の代表例である。

認証の流れ

CHAPは3回のやり取り(3ウェイハンドシェイク)で認証する。

  1. 認証する側(サーバ)が、毎回異なる乱数(チャレンジ)を Challenge で送る
  2. 認証される側(クライアント)が、識別子、共有している秘密(パスワード)、チャレンジをつなげたもののハッシュ値(標準ではMD5)を計算し、Response で返す
  3. サーバも同じ計算をして一致すれば Success、しなければ Failure を返す

PAPより安全な理由

特徴効果
パスワードを送らない盗聴されても、パスワードそのものは知られない
チャレンジが毎回変わる盗聴したResponseを後で再送しても通らない(リプレイ攻撃に強い)
通信中に再認証できる接続の途中でも、何度でもチャレンジを送り直して確かめられる

弱点と注意点

Microsoftによる拡張のMS-CHAPv2は、無線LANの企業向け認証(PEAP)の内部などでも使われてきたが、同じく辞書攻撃などの弱点が指摘されている。

チャレンジレスポンス認証の広がり

「相手が出した乱数と秘密の情報から計算した値を返す」という考え方は、PPPに限らず、HTTPのダイジェスト認証やワンタイムパスワードなど、多くの認証方式に使われている。

実際の試験ではここに出る!

この用語が出てくる記事

↑