次の図は、ハッシュ関数を使ったユーザ認証の概念を示したものである。図中のア~ウに入る単語の組み合わせとして正しいものを、下の表から1 つ選びなさい。
「この問題は難しそうだな~~」
「そのようだね。この問題は間違える人が多いのだ。しっかり覚えてよー。」
「ハッシュ関数を使った認証と言えば、チャレンジ・レスポンス方式がメジャーだね。」
「今回のもそうだよ。」「まず最初の(ア)は図から読み取るとユーザ認証でIDと一緒に入力するといえばパスワード(PW)だよね?」
「そのとおり!グーグルやヤフーなど様々なサイトでログイン時にIDとPWを入力するユーザ認証が使われているね。」
「だとすると(ア)がPWなのは・・・ a. か e. てことになるね。」
「冴えているね、コムたろう君。そのとおりだ!」
「今日は調子いいんだ。でも次はわかんないなー。」
「次はサーバ側を見てみよう!IDを受け取ったサーバーはランダムな文字列(チャレンジ値)をその都度生成してクライアントへ送信する。これが(イ)だね。」
「クライアントは受け取ったそのチャレンジ値をどうするの?」
「PWとチャレンジ値をハッシュ関数に混ぜ込んでハッシュ値というものを作成し、サーバーへ返信するんだよ。」
「ちなみにチャレンジ・レスポンス方式認証ではこのハッシュ値をレスポンス値と呼ぶんだ。」「ふむふむ。」
「それからどうなるの?」「サーバーに届いたレスポンス値とサーバー側でクライアントと同様の処理をし、生成されたデータ(ハッシュ値)を比較して一致するかどうかを調べるんだ。」
「一致したらPWは合っているという事で、ログインできるんだね。」
「おさらいをすると次のようになるよ。」
「①ユーザーがIDをサーバーへ送信してログインしたがっている事を知らせる。」
「②サーバーからユーザーに対してランダムな値(これをチャレンジ値という)を送信する。」
「③このチャレンジ値をユーザーがPWと一緒にハッシュ関数に放り込んで、出てきたハッシュ値をサーバーへ返す(これをレスポンス値という)。」
「④サーバーでも同じ様にチャレンジ値とPWをハッシュ関数に入れて、計算結果をユーザーから返ってきたレスポンス値と比べる。」
「⑤比べてみて同じなら認証OK」
【 第20回 第2部 第51問 解答&解説 】
[解答] e.
[解説]
盗聴からパスワードの漏洩を防ぐ方法として、パスワードをハッシュ化して送信する認証方式がある。
この認証方式では・・・
・クライアントからサーバにランダムな文字列(チャレンジ値)の作成と送信を要求する。
・クライアントでは、受け取ったチャレンジ値(イ.)とパスワード(ア.)を組み合わせたものからハッシュ値を生成し、それをサーバに送信する。
・この送信情報をレスポンス値などと呼ぶ(ウ.)。
・サーバ側でもクライアントと同様の処理をし、生成されたデータとレスポンス値を突き合わせることで、パスワードが一致するかどうかが調べられる。
・このような認証方式を「チャレンジ・レスポンス方式」と呼ぶ。
この方式では、ネットワークに流されるのはハッシュ値だけなので、パスワードを盗み取られる恐れがない。
また、チャレンジ値をかえることで、同一のバスワードであってもハッシュ値が毎回変化するので、ハッシュ値を盗聴されても悪用される危険も少ない。
チャレンジ・レスポンス方式は、SMTP AuthやAPOP、CHAPなどで使われている。