セキュリティ
チャレンジレスポンス認証の仕組みとして、最も適切なものはどれか。
ア.サーバが毎回異なる乱数(チャレンジ)をクライアントへ送信し、クライアントはその乱数とパスワードを組み合わせたハッシュ値(レスポンス)を返す。サーバ側でも同じ計算を行い、値が一致すれば認証成功とする。正解
イ.クライアントが乱数(チャレンジ)を生成してサーバへ送り、サーバが自身の秘密鍵でその乱数を暗号化した値(レスポンス)を返す。クライアントがサーバの公開鍵で復号して元の乱数と一致すれば認証成功とする。
ウ.クライアントがサーバの公開鍵でパスワードを暗号化してサーバへ送信し、サーバが秘密鍵で復号した値と登録済みパスワードを照合することで認証する。
エ.サーバとクライアントが事前に共有した秘密鍵と現在時刻を組み合わせて一定間隔で自動生成されるワンタイムパスワードを、互いに照合することで認証する。
解説
チャレンジレスポンス認証は「毎回問題を変えるテスト」方式です。パスワードを直接送らず、「知っている」ことだけを証明することでリプレイ攻撃を防ぎます。
なぜ ア が正解か
サーバが毎回異なる乱数(チャレンジ)を発行するのがポイントです。クライアントはその乱数と自分のパスワードを組み合わせてハッシュ値を計算し、レスポンスとして返します。通信路を流れるのはこのハッシュ値だけであり、パスワード本体は一切流れません。チャレンジが毎回変わるため、攻撃者がレスポンスを盗み見ても、次回の認証には使い回せません(リプレイ攻撃の無効化)。
出典: AI生成問題(学習用)