チャレンジレスポンス認証

問題

チャレンジレスポンス認証方式の特徴として,適切なものはどれか。

  • SSLによって,クライアント側で固定パスワードを暗号化して送信する。
  • 端末のシリアル番号を,クライアント側で秘密鍵を使って暗号化して送信する。
  • トークンという装置が表示する毎回異なったデータを,パスワードとして送信する。
  • 利用者が入力したパスワードと,サーバから送られてきたランダムなデータとをクライアント側で演算し,その結果を送信する。

答え

利用者が入力したパスワードと、サーバから送られてきたランダムなデータとをクライアント側で演算し、その結果を送信する。

解説

チャレンジレスポンス認証は、片方が「チャレンジ」を送り、もう片方がその「チャレンジ」を用いて正しい「レスポンス」を送ることで認証を行います。

より具体的には、以下の一連の流れを指して、一般的にチャレンジレスポンス認証と呼びます。

  1. 認証サーバは、 「パスワード」 をハッシュ関数に入力し生成した「パスワードのメッセージダイジェスト」を保存する。クライアントから認証要求を受けると、ランダムで予測困難な「チャレンジ」を生成し、クライアントへ送る。
  2. クライアントは、「チャレンジ」と「パスワード」をハッシュ関数に入力してパスワードのメッセージダイジェストを生成し 、 さらに「チャレンジ」と「パスワードのメッセージダイジェスト」をハッシュ関数に入力しレスポンスを生成し、レスポンスをサーバに送る。
  3. サーバは、サーバ自身で「 チャレンジ」と 「パスワードのメッセージダイジェスト」 を用いてメッセージダイジェストを生成し、 クライアントからのレスポンスと一致するか確認をする。

この流れを経ることで、パスワードそのものがネットワーク上を流れることがなくなり、盗聴することができなくなります。

また、認証のたびに ランダムで予測困難な「チャレンジ」 を用いることで、レスポンスも毎回異なる値になり、チャレンジやレスポンスを盗聴しても、同じ値で再度認証を受けることができません。

また、認証サーバに不正アクセスが行われても、保存してあるのはメッセージダイジェストであり、パスワード自体の漏洩を防ぐことができます。