CHAP

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

PPPで使われる認証プロトコルの一つである。識別子、共有する秘密、認証する側が毎回変える値(チャレンジ)からハッシュ値を計算して照合し、秘密自体は通信路に流さずに認証する。

イマシルちゃんの解説

CHAPは、2台の機器をつなぐPPPで相手を確かめる認証プロトコルだよ。
まずサーバが、毎回変える値であるチャレンジを相手へ渡すんだ。
相手はその値と共有済みのパスワードなどから、内容を決まった長さの値にまとめたハッシュ値を計算して返すの。
サーバも同じ計算をして、結果が一致するかを確かめるよ。
これならパスワードそのものを通信路に流さずに認証できるんだ。
お題が変わるので、以前の答えをそのまま使ったなりすましも防ぎやすくなるよ。
ただし弱いパスワードは、盗み見たやり取りから推測されるおそれがあるんだ。

より深い解説

定義

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のダイジェスト認証やワンタイムパスワードなど、多くの認証方式に使われている。

一度だけ使う値と、お題への応答

ワンタイムパスワードは、一回限りの利用や短い有効期間を前提とする認証用の値である。時刻やカウンタから生成する方式もあり、すべてが相手から受けた乱数に答える方式ではない。

チャレンジレスポンス認証では、認証する側が出す新しい値と秘密を使って応答を計算する。固定のパスワードを毎回同じように暗号化して送るだけでは、この仕組みにはならない。過去の応答を再利用されないよう、チャレンジの予測困難性や再使用の防止が必要になる。秘密を直接送らなくても、弱い秘密への辞書攻撃などの対策は別途必要である。

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

ネットワークスペシャリスト

午前Ⅱ

テクニカルエンジニア(ネットワーク)

午前

この用語が出てくる記事

↑