対象試験と出題頻度
チャレンジレスポンス認証は、情報セキュリティマネジメント試験、基本情報技術者試験、応用情報技術者試験で出題されます。
頻出度は「B(標準)」で、「パスワードをネットワーク上に流さない認証方式」として問われます。リプレイ攻撃への対策として有効であることも押さえておきましょう。
詳細をクリックして確認
情報セキュリティマネジメント
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)
用語の定義
チャレンジレスポンス認証(Challenge-Response Authentication)とは、一言で言うと「パスワードそのものをネットワーク上に流さずに、本人確認を行う認証方式」のことです。
イメージとしては、「合言葉クイズ」のようなものです。サーバーが「今日のラッキーナンバーは?」と質問(チャレンジ)を出し、クライアントが秘密のルール(パスワード)を使って答え(レスポンス)を計算して返します。正しい答えを返せれば本人と認められます。パスワードそのものは一度もネットワーク上を流れません。
📊 チャレンジレスポンス認証の基本情報
| 項目 | 内容 |
|---|---|
| 目的 | パスワードを盗聴されずに認証を行う |
| チャレンジ | サーバーが生成する毎回異なる乱数 |
| レスポンス | チャレンジとパスワードから計算した値 |
| 防げる攻撃 | 盗聴、リプレイ攻撃 |
| 使用例 | CHAP、Digest認証、無線LAN認証 |
解説
情報処理試験を勉強していると、「パスワードを送らないのに、どうやって認証するの?」と疑問に思うかもしれません。ここがチャレンジレスポンス認証のポイントです。パスワードそのものではなく、パスワードを「知っていることの証明」をやり取りするのです。
チャレンジレスポンス認証の仕組み
認証の流れを具体的に見てみましょう。
①チャレンジの送信:クライアントがサーバーに接続すると、サーバーは「チャレンジ」と呼ばれるランダムな値(乱数)を生成し、クライアントに送信します。このチャレンジは認証のたびに異なる値になります。
②レスポンスの計算:クライアントは、受け取ったチャレンジと自分のパスワードを組み合わせて、ハッシュ関数などで計算を行い、「レスポンス」を生成します。
③レスポンスの送信と検証:クライアントはレスポンスをサーバーに送信します。サーバー側でも、同じチャレンジと登録されているパスワードを使って同じ計算を行い、クライアントから受け取ったレスポンスと比較します。一致すれば認証成功です。
📊 チャレンジレスポンス認証の流れ
| 手順 | クライアント | →/← | サーバー |
|---|---|---|---|
| ① | 接続要求 | → | - |
| ② | チャレンジ(乱数)を受信 | ← | チャレンジ(乱数)を生成・送信 |
| ③ | チャレンジ+パスワードでレスポンス計算 | - | - |
| ④ | レスポンスを送信 | → | レスポンスを受信 |
| ⑤ | - | - | 同じ計算を行い、レスポンスを比較 |
| ⑥ | 認証結果を受信 | ← | 一致すれば認証成功 |
💡 なぜ毎回チャレンジを変えるのか?
チャレンジを毎回異なる値にする理由は、リプレイ攻撃を防ぐためです。
リプレイ攻撃とは、盗聴した認証データをそのまま再送して不正ログインする攻撃です。もしチャレンジが毎回同じなら、盗聴したレスポンスを再利用できてしまいます。しかし、チャレンジが毎回変わるため、過去のレスポンスは次回の認証には使えません。
チャレンジレスポンス認証のメリット
盗聴対策が最大のメリットです。パスワードそのものがネットワーク上を流れないため、通信を盗聴されてもパスワードは漏洩しません。
リプレイ攻撃対策も実現できます。チャレンジが毎回異なるため、過去に盗聴したレスポンスを再利用する攻撃が無効になります。
代表的な使用例
CHAP(Challenge Handshake Authentication Protocol)は、PPP接続などで使われるチャレンジレスポンス認証プロトコルです。接続中も定期的に認証を行うことで、セッションハイジャックを防ぎます。
Digest認証は、HTTP認証の一種で、Basic認証(パスワードを平文で送信)の代わりに使われます。Webサーバーへのアクセス制御で利用されています。
📊 パスワード認証方式の比較(試験対策)
| 認証方式 | パスワードの送信 | 盗聴対策 | リプレイ攻撃対策 |
|---|---|---|---|
| 平文パスワード | そのまま送信 | × | × |
| ハッシュ化パスワード | ハッシュ値を送信 | △(ハッシュ値が漏洩) | × |
| チャレンジレスポンス | 送信しない | ◎ | ◎ |
⚠️ 試験での注意点
チャレンジレスポンス認証の問題で最も重要なのは「パスワードをネットワーク上に流さない」「毎回異なるチャレンジを使うことでリプレイ攻撃を防ぐ」という2点です。
「チャレンジ=サーバーが生成する乱数」「レスポンス=チャレンジとパスワードから計算した値」という用語の意味も押さえておきましょう。
試験ではこう出る!
チャレンジレスポンス認証は、「パスワードを送らない認証方式」「リプレイ攻撃への対策」として出題されます。仕組みの流れと、防げる攻撃を押さえておけば対応できます。
【重要キーワード】
- チャレンジレスポンス認証
- チャレンジ(サーバーが生成する乱数)
- レスポンス(チャレンジ+パスワードから計算)
- パスワードをネットワーク上に流さない
- リプレイ攻撃への対策
- CHAP、Digest認証
試験問題で「サーバーが乱数を送り、クライアントがパスワードと組み合わせて計算した値を返す」「パスワードそのものは送信しない」という記述があれば、それは「チャレンジレスポンス認証」に関する説明です。
📝 IPA試験での出題ポイント
チャレンジレスポンス認証の問題は、「認証の仕組み」「防げる攻撃」という形式で出題されます。
「パスワードをネットワーク上に流さない」「チャレンジが毎回変わるのでリプレイ攻撃を防げる」という2点を押さえておけば正解できます。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. チャレンジレスポンス認証に関する説明として、最も適切なものはどれでしょうか?
- A. パスワードをハッシュ化してサーバーに送信し、サーバー側で保存されたハッシュ値と比較する認証方式
- B. 指紋や虹彩などの生体情報を使って本人確認を行う認証方式
- C. サーバーが毎回異なるチャレンジ(乱数)を送り、クライアントがパスワードと組み合わせて計算したレスポンスを返すことで、パスワードをネットワーク上に流さずに認証を行う方式
正解と解説を見る
正解:C
解説:
チャレンジレスポンス認証は、サーバーが毎回異なるチャレンジ(乱数)を生成してクライアントに送り、クライアントがそのチャレンジとパスワードを組み合わせて計算したレスポンスを返す認証方式です。パスワードそのものはネットワーク上を流れないため、盗聴されてもパスワードは漏洩しません。また、チャレンジが毎回変わるため、過去に盗聴したレスポンスを再利用するリプレイ攻撃も防げます。
選択肢Aは単純なハッシュ化パスワード認証の説明で、リプレイ攻撃には弱いです。選択肢Bは「生体認証」の説明であり、チャレンジレスポンス認証とは異なる概念です。