最終更新日:2026年7月20日
fe fe-technology security
まず結論
チャレンジレスポンス認証とは、毎回異なる値(チャレンジ)を送り、その値と秘密情報から作られた応答(レスポンス)を検証して相手を認証する方式です。
基本情報技術者試験では、次の判断軸が重要です。
チャレンジを送る
↓
相手がレスポンスを作る
↓
レスポンスを検証する
↓
検証した側が、応答した側を認証する
つまり、レスポンスを確認する側が認証する側です。
直感的な説明
チャレンジレスポンス認証は、合言葉そのものを言わせずに、相手が合言葉を知っているか確かめる仕組みです。
例えば、YがXを認証する場合を考えます。
Y:「今回のチャレンジ値は4821です」
X:「秘密の規則で計算するとA7C9です」
Y:「正しい。Xは正当な相手だ」
Yが送る値がチャレンジ、Xが返す答えがレスポンスです。
Xは秘密情報そのものを送っていません。Yは、正しいレスポンスを返せたかによって、Xが秘密情報を知っている正当な相手かどうかを確認します。
定義・仕組み
チャレンジレスポンス認証の流れは、次の3段階です。
1. 認証する側が、毎回異なるチャレンジを送る
2. 認証される側が、秘密情報とチャレンジからレスポンスを作る
3. 認証する側が、返されたレスポンスを検証する
役割を整理すると次のようになります。
| 役割 | 行うこと |
|---|---|
| 認証する側 | チャレンジを送り、レスポンスを検証する |
| 認証される側 | チャレンジを受け取り、レスポンスを作って返す |
| 秘密情報 | レスポンスを作るために使う。通常はそのまま送らない |
なぜ毎回違うチャレンジを使うのか
毎回同じ応答を送る方式では、通信を盗聴した攻撃者が、過去の応答をそのまま再送して認証を通過するおそれがあります。
過去の認証情報を盗む
↓
同じ内容を再送する
↓
不正に認証を通過する
これがリプレイ攻撃です。
チャレンジレスポンス認証では、チャレンジを毎回変えるため、過去に使ったレスポンスをそのまま再利用しにくくなります。
毎回違うチャレンジ
↓
毎回違うレスポンス
↓
過去のレスポンスを再送しても一致しない
このテーマは、基本情報技術者試験の「セキュリティ」や「認証」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、通信手順を読んで、誰が誰を認証しているかを選ぶ問題として出題されます。
次の流れを見ます。
YがチャレンジをXへ送る
XがレスポンスをYへ返す
Yがレスポンスを確認する
この場合は、YがXを認証しています。
チャレンジを送った側:Y
レスポンスを返した側:X
レスポンスを確認した側:Y
→ YがXを認証する
試験では、最初に情報を送った側ではなく、最後にレスポンスの正しさを確認した側を見ることが大切です。
選択肢を切る判断軸
| 問題文の動作 | 判断 |
|---|---|
| チャレンジを送る | 相手を認証しようとしている側 |
| レスポンスを生成する | 認証される側 |
| レスポンスを検証する | 認証する側 |
| 両方向でチャレンジと検証を行う | 相互認証 |
覚え方は次のとおりです。
問題を出す
→ 相手を試す
答えを返す
→ 試される
答えを確認する
→ 相手を認証する
科目Bでどう使う?
チャレンジレスポンス認証は、科目Bの情報セキュリティ分野と直接関係します。
長文問題では、用語名を答えるだけでなく、認証手順にどのような意味があるかを読み取る必要があります。
確認したいポイントは次のとおりです。
- 誰がチャレンジを送っているか
- 誰がレスポンスを生成しているか
- 誰がレスポンスを検証しているか
- チャレンジが毎回変化するか
- 秘密情報そのものを送っていないか
- 片方向認証か相互認証か
例えば、YがXだけを認証する流れは次のとおりです。
Y → X:チャレンジ
X → Y:レスポンス
Y:レスポンスを検証
一方、相互認証では、逆方向の確認も必要です。
YがXを認証する処理
+
XがYを認証する処理
↓
相互認証
科目Bでは、手順の中に次の弱点がないかも確認します。
- 毎回同じチャレンジを使っていないか
- 過去のレスポンスを再利用できないか
- 秘密情報を平文で送っていないか
- 一方だけしか認証していないのに、相互認証と判断していないか
よくある誤解・混同
チャレンジを受け取った側が、送信者を認証する
これは誤りです。
チャレンジは、相手を試すための任意の値です。チャレンジを受け取っただけでは、送信者が正当な相手かどうかは確認できません。
チャレンジを受け取る
≠
送信者を認証する
チャレンジを送ること自体が認証である
認証は、レスポンスを受け取り、その内容を検証して初めて成立します。
チャレンジを送るだけ
→ まだ認証は完了していない
片方向認証と相互認証は同じ
片方向認証では、一方だけが相手を確認します。
| 認証方式 | 認証する関係 |
|---|---|
| 片方向認証 | YがXだけを認証する |
| 相互認証 | YがXを認証し、XもYを認証する |
パスワードを送る方式と同じ
チャレンジレスポンス認証では、通常、秘密情報そのものを送信しません。
固定パスワードをそのまま送る
→ 盗聴されると再利用されるおそれ
チャレンジから毎回レスポンスを作る
→ 過去の値を再利用しにくい
毎回同じレスポンスでも安全である
毎回同じレスポンスを使うと、盗聴した値を再送される危険があります。
そのため、チャレンジは毎回異なる値にすることが重要です。
まとめ(試験直前用)
- チャレンジレスポンス認証は、チャレンジに対する応答を検証して相手を認証する方式
- チャレンジを送る側が認証する側、レスポンスを返す側が認証される側
- レスポンスを最終的に確認する側が、相手の正当性を判断する
- 毎回異なるチャレンジを使うため、過去のレスポンスを再利用しにくい
- リプレイ攻撃への対策として有効
- 両方向で同様の確認を行うと相互認証になる
- 科目Bでは、誰が誰を認証するか、毎回値が変わるか、秘密情報を直接送っていないかを見る