基本情報技術者 2009年 秋期 午後 問04
利用者認証に関する次の記述を読んで、設問1,2に答えよ。
X社では、社外の端末から社内のサーバへのリモートログインを可能にするため、利用者認証の方式を検討している。社内では、利用者IDとパスワードをサーバに送信する方式を使用しており、そのパスワードの強化を含め、次の三つの方式の安全性を検討している。
〔方式1:利用者IDとパスワード方式〕
端末は、利用者が入力した利用者IDとパスワードをサーバに送信する。サーバは利用者IDから登録されているパスワードを検索し、送信されたパスワードと照合することによって、ログインの可否を応答する。利用者IDとパスワード方式を図1に示す。
〔方式2:チャレンジレスポンス方式〕
端末は、利用者が入力した利用者IDをサーバに送信する。サーバは、利用者IDを受信すると、ランダムに生成したチャレンジと呼ばれる値cを端末に送信する。端末は、利用者が入力したパスワードとチャレンジから、ハッシュ値を計算して、レスポンスの値としてサーバに送信する。サーバは、利用者IDから登録されているパスワードを検索し、端末と同じハッシュ関数を使って計算したハッシュ値とレスポンスの値とを照合することによって、ログインの可否を応答する。ここで、ハッシュ関数hは公知のものであり、どの端末でも計算可能とする。チャレンジレスポンス方式を図2に示す。
〔方式3:トークン(パスワード生成器)方式〕
利用者には、自身の利用者IDが登録されたトークンと呼ばれるパスワード生成器を配布しておく。トークンの例を図3に示す。
トークンは時計を内蔵しており、関数を使って、利用者IDであると時刻に応じたパスワードを生成し表示することができる。利用者は、利用者IDとトークンが生成し表示したパスワードを入力し、端末はこれらをサーバに送信する。サーバは、利用者IDであるとサーバの時刻からトークンと同じ関数を使って生成したパスワードと端末から受信したパスワードとを照合することによって、ログインの可否を応答する。
なお、トークンの時刻とサーバの時刻が同期していることは保証されており、トークンのパスワード表示からサーバにおけるパスワード生成までの遅延も、一定の時間は許容する。トークン方式を図4に示す。

設問1:
問題文を見る パスワードの強度に関する次の記述中のに入れる正しい答えを、解答群の中から選べ。
方式1, 2では、利用者がパスワードを設定する。これらの方式を採用する場合には、容易には推定されないパスワード、すなわち、十分な強度をもつパスワードを、利用者に設定してもらう必要がある。
パスワードの強度を高めるためには、パスワードを長くすることやパスワードに利用する文字の種類を増やすことが考えられる。例えば、英小文字26文字だけからなる8文字のパスワードに対して、総当たり方式による発見に必要な最大時間を1とすると、パスワードの長さを10文字にすれば必要な最大時間はaとなる。また、同じ8文字であっても、英大文字も使用する場合、必要な最大時間はbとなる。
解答群
ア:1.25
イ:2
ウ:208
エ:256
オ:260
カ:676
キ:1,024
模範解答
a:カ、b:エ
解説
解答の導き方
総当たり方式(考えられるパスワードを一つずつ試す方法)で発見に必要な時間は、試す候補の数に比例します。試す速さが同じなら、候補が何倍になるかを計算すれば、必要な最大時間も何倍になるかが分かります。
a:パスワードを10文字にする場合
問題文には「英小文字26文字だけからなる8文字のパスワード」とあります。1文字ごとに26通りあるため、8文字の候補数は 通りです。
10文字にすると候補数は 通りになります。8文字の場合と比べると、
です。文字数が2文字増えると、候補数は26倍が2回かかるため、必要な最大時間も676倍になります。したがって、aはカ:676です。
b:英大文字も使用する場合
英小文字に加えて英大文字も使うと、1文字に使える文字は 通りになります。8文字の候補数は 通りです。
英小文字だけの場合の候補数 と比べると、
です。1文字ごとの候補が2倍になり、それが8文字分あるため、必要な最大時間は256倍になります。したがって、bはエ:256です。
誤りやすいポイント
- 文字数が2文字増えたとき、時間が2倍になるわけではありません。各文字に26通りの候補があるので、2文字増えると 倍になります。
- 英大文字を加えたとき、時間が単純に2倍になるわけではありません。8文字それぞれの候補が2倍になるので、全体では 倍です。
- 「最大時間」は、候補をすべて試す場合の時間です。候補数の比をそのまま時間の比として計算します。
FAQ
Q:なぜ候補数を計算すれば、必要な時間が分かるのですか?
A:1秒間に試せる候補の数が同じなら、候補が多いほど試す時間も長くなるためです。候補数が何倍になったかが、必要な時間が何倍になるかに対応します。
A:1秒間に試せる候補の数が同じなら、候補が多いほど試す時間も長くなるためです。候補数が何倍になったかが、必要な時間が何倍になるかに対応します。
Q:文字数を1文字増やすと、候補数はどうなりますか?
A:使える文字が26種類なら、候補数は26倍になります。追加した1文字にも26通りの選択肢があるためです。
A:使える文字が26種類なら、候補数は26倍になります。追加した1文字にも26通りの選択肢があるためです。
Q:英大文字を使えるようにすると、なぜ8乗になるのですか?
A:各文字の候補が2倍になり、その選択が8文字分あるからです。全体の候補数の倍率は です。
A:各文字の候補が2倍になり、その選択が8文字分あるからです。全体の候補数の倍率は です。
関連キーワード: パスワード強度、総当たり攻撃、文字種、組合せ数、パスワード長
設問2:
問題文を見る 盗聴のリスクに関する次の記述中のに入れる正しい答えを、解答群の中から選べ。解答は、重複して選んでもよい。
利用者認証の方式によっては、不正な方法によって入手した情報(例えば利用者IDとパスワード)をそのまま利用することによって、不正ログインが行われる可能性がある。
(1) 社外からの通信経路上で通信内容が盗聴された場合、盗んだ情報をそのまま利用することによって、利用者がパスワードを変更しない限り、サーバへの不正ログインがいつでも可能になるのは、cである。ただし、通信経路は暗号化されていないものとする。
(2) 社外からのリモートログインに利用する端末上で、キーボード入力を読み取って、第三者に送信するプログラムが動作していた場合、盗んだ情報をそのまま利用することによって、利用者がパスワードを変更しない限り、サーバへの不正ログインがいつでも可能になるのは、dである。
(3) 誤って不正なサーバに接続して通常のログイン操作を行った場合、誤接続したサーバ上で端末から送信された情報が盗まれる場合がある。この盗んだ情報をそのまま利用することによって、利用者がパスワードを変更しない限り、サーバへの不正ログインがいつでも可能になるのは、eである。
解答群
ア:方式1だけ
イ:方式2だけ
ウ:方式3だけ
エ:方式1, 2だけ
オ:方式1, 3だけ
カ:方式2, 3だけ
キ:方式1, 2, 3すべて
模範解答
c:ア、d:エ、e:ア
解説
解答の導き方
この設問では、盗まれた情報をそのまま使って、後からもログインできるかを考えます。ポイントは、各方式で通信される情報や、キーボードから入力する情報が、時間がたっても使えるものかどうかです。
(1) 通信経路上で盗聴された場合
通信経路の盗聴では、端末とサーバの間を流れる情報が盗まれます。通信経路は暗号化されていないので、送られた内容をそのまま読めるものとして考えます。
- 方式1では、端末からサーバに利用者IDとパスワードを送信します。盗まれたパスワードは、利用者が変更しない限り、そのままログインに使えます。
- 方式2では、通信されるのは利用者ID、チャレンジ、レスポンスです。チャレンジとは、サーバがランダムに生成する値です。レスポンスは、パスワードとチャレンジから計算したハッシュ値です。ハッシュ値とは、入力から一定の規則で計算する値です。次のログインでは別のチャレンジが使われるため、盗んだレスポンスをそのまま使っても一致しません。
- 方式3では、利用者IDと、時刻に応じたパスワードが送信されます。時刻に応じて変わるため、盗んだパスワードが使えるのは一定の時間に限られます。
したがって、盗聴した情報をそのまま使って、いつでも不正ログインできるのは方式1です。
(2) キーボード入力を読み取られた場合
今度は、通信内容ではなく、端末に入力した情報が盗まれます。本文には、方式2でも利用者がパスワードを入力するとあります。
- 方式1では、入力した利用者IDとパスワードが盗まれます。パスワードを変更しない限り、後からも使えます。
- 方式2では、入力した利用者IDとパスワードが盗まれます。通信上ではレスポンスが送られますが、盗んだパスワードを使えば、新しいチャレンジに対するハッシュ値を計算できます。そのため、後からもログインに使えます。
- 方式3では、入力するのは利用者IDと、トークンが表示した時刻に応じたパスワードです。盗まれたパスワードは時間がたつと使えなくなるので、いつでも使える情報ではありません。
よって、いつでも不正ログインに使える情報を盗まれるのは方式1と方式2です。
(3) 不正なサーバに接続して情報を送った場合
不正なサーバには、端末から送信された情報が渡ります。各方式で端末が送る情報を確認します。
- 方式1では、利用者IDとパスワードが送られます。盗まれたパスワードは、変更されない限り、後からも使えます。
- 方式2では、端末から送られるのは利用者IDとレスポンスです。レスポンスは、その不正なサーバが送ったチャレンジに対応する値です。別のログインで新しいチャレンジが使われれば、盗んだレスポンスはそのままでは使えません。
- 方式3では、端末から送られるパスワードは時刻に応じて変わります。盗まれたパスワードをいつまでも使うことはできません。
したがって、この場合も、盗んだ情報をそのまま使っていつでも不正ログインできるのは方式1です。
誤りやすいポイント
- 方式2の通信内容を盗めば、パスワードそのものも盗まれると考えないようにします。通信されるのはパスワードではなく、チャレンジに応じて計算したレスポンスです。
- 方式2でも、キーボード入力を読み取られれば、入力したパスワードが盗まれます。通信の盗聴とキーボード入力の読み取りは、盗まれる情報が異なります。
- 方式3のパスワードは、盗まれた直後なら一定時間使える可能性があります。ただし、「いつでも可能」かどうかを問われているため、時間がたつと使えなくなる点が決め手です。
- チャレンジレスポンス方式やトークン方式は、盗まれた情報を絶対に悪用できない方式という意味ではありません。この設問では、盗んだ情報をそのまま使って、いつでもログインできるかを判断します。
FAQ
Q: 方式2では、パスワードを知らなくてもレスポンスを盗めばログインできますか?
A: 盗んだレスポンスは、対応するチャレンジに対する値です。次のログインで異なるチャレンジが使われるため、レスポンスをそのまま使うことはできません。
A: 盗んだレスポンスは、対応するチャレンジに対する値です。次のログインで異なるチャレンジが使われるため、レスポンスをそのまま使うことはできません。
Q: 方式3のパスワードは、盗まれてもまったく使えませんか?
A: まったく使えないとは限りません。表示された直後など、許容される時間内なら使われる可能性があります。ただし、時刻に応じて変わるため、いつまでも使えるわけではありません。
A: まったく使えないとは限りません。表示された直後など、許容される時間内なら使われる可能性があります。ただし、時刻に応じて変わるため、いつまでも使えるわけではありません。
Q: 方式2でパスワードを変更しない限り不正ログインできるのは、なぜですか?
A: キーボード入力を読み取られると、パスワードそのものが盗まれます。パスワードが変わらなければ、盗んだを使って新しいチャレンジに対するレスポンスを計算できるためです。
A: キーボード入力を読み取られると、パスワードそのものが盗まれます。パスワードが変わらなければ、盗んだを使って新しいチャレンジに対するレスポンスを計算できるためです。
関連キーワード: 利用者認証、チャレンジレスポンス方式、ハッシュ関数、リプレイ攻撃、ワンタイムパスワード



