今週の午後問題〔問題〕情報セキュリティ パスワードを安全に保存する方法 2018 年度 春期

error

この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事です。
この記事の題材となっている「午後問題」は現在の試験制度では出題されません。 ご注意くださいませ。

今週の午後問題

このコーナーでは毎週月曜に午後の必須選択問題から 1 問ピックアップして出題し、 解答欄 を設け、読者の皆さまも参加して解答できます! その週の金曜にはその解答と 矢沢久雄 さんによる 解説 ページを公開し、皆さんの正解率も発表します。

現在は「情報セキュリティ」に絞って出題中です!今回は 「 2018 年度 春期 Web サービスを利用するためのパスワードを安全に保存する方法」です。

ぜひ腕試しにお使い下さい!

今週の午後問題
2018 年度 春期 情報セキュリティ Web サービスを利用するためのパスワードを安全に保存する方法

問 1

Web サービスを利用するためのパスワードを安全に保存する方法に関する次の記述を読んで,設問 1 ~ 3 に答えよ。

 A 社が提供する Web サービスを利用するには,利用者が決めた利用者 ID とパスワードを, Web アプリケーションが動作するサーバに登録しておく必要がある。 A 社の Web アプリケーションでは,利用者が Web アプリケーションにログインするときに, Web ブラウザから利用者 ID とパスワードがサーバに送信される。サーバは,受信した利用者 ID とパスワードを,照合することによって認証する。利用者が決めたパスワードは,パスワードファイルに平文で保存されている。

 近年,パスワードファイルが漏えいし,不正ログインが発生したと考えられる事件が多数報道されている。そこで, A 社に勤める C さんは,自社の Web アプリケーションにおけるパスワードファイルが漏えいした際の不正ログインを防止するための対策について,上司から検討を命じられた。

 C さんは対策として,パスワードを平文で保存するのではなく,ハッシュ関数でパスワードのハッシュ値を計算 (以下,ハッシュ化という) し,そのハッシュ値を保存する方式を提案することにした。この方式におけるログイン時の認証では,受信したパスワードから求めたハッシュ値を,パスワードファイルに保存されているハッシュ値と照合する。パスワードの保存の流れと,照合の流れを図 1 に示す。

図 1  パスワードの保存の流れと,照合の流れ

 C さんは,パスワードのハッシュ化には,ハッシュ関数の一つである。 aを用いることにした。ハッシュ化に用いるハッシュ関数は,一般的に次のような特徴を備えているので,パスワードが一致していることの確認に用いることができる。また,利用者のパスワードを平文で保存する場合と比べて,パスワードファイルが漏えいしても,より安全だと考えたからである。

〔ハッシュ化に用いるハッシュ関数の特徴〕

  1. パスワードの長さに関係なく,ハッシュ値は固定長になる。
  2. b
  3. ハッシュ値からパスワードを推測することが非常に困難である。
  4. パスワードが 1 文字でも異なれば,ハッシュ値は大きく異なる。

設問 1

本文中のに入れる適切な答えを,解答群の中から選べ。

a に関する解答群

ア AES  イ Diffie-Hellman  ウ RSA
エ SHA-256  オ TLS

b に関する解答群

異なるパスワードをハッシュ化したとき,同じハッシュ値になる可能性が高い。
同一のパスワードをハッシュ化すると,同じハッシュ値になる。
パスワードをハッシュ化した結果のハッシュ値を再度ハッシュ化すると,元のパスワードになる。
秘密鍵を使用してハッシュ値から元のパスワードを復元できる。

設問 2

次の記述中のに入れる適切な答えを,解答群の中から選べ。

 C さんは,自身が提案する方式について,社内の情報セキュリティ責任者にレビューを依頼したところ,この方式は漏えいしたパスワードファイルを攻撃者に入手された場合,事前計算による辞書攻撃に弱いという指摘を受けた。この攻撃では,あらかじめ攻撃者はパスワードとしてよく使われる文字列を,よく使われているハッシュ関数でハッシュ化し,ハッシュ値から元のパスワードが検索可能な一覧表を作成しておく。その後,攻撃者が漏えいしたパスワードファイルを入手したとき,この作成した一覧表からハッシュ値を検索する。ハッシュ値が一覧表に載っている場合は,元のパスワードを容易に知ることができる。

 C さんは,事前計算による辞書攻撃を難しくする方式を調査し,ソルトを用いる方式を提案することにした。ソルトとは,十分な長さをもつランダムな文字列である。

 この方式におけるパスワードの保存では,まず,サーバは新しいパスワードの保存の都度,新しいソルトを生成し,ソルトとパスワードを連結した文字列をハッシュ化する。このとき得られるハッシュ値は,パスワードだけをハッシュ化した場合のハッシュ値c。次に,ハッシュ化に使用したソルトと得られたハッシュ値をパスワードファイルに保存する。

 この方式におけるパスワードの照合では,まず,サーバはパスワードファイルからソルトとハッシュ値を読み出す。次に,読み出したソルトと受信したパスワードを連結した文字列をハッシュ化し,得られたハッシュ値を,読み出したハッシュ値と照合する。ソルトを用いたパスワードの保存の流れと,照合の流れを図 2 に示す。

図 2  ソルトを用いたパスワードの保存の流れと,照合の流れ

 ソルトを用いる方式が,事前計算による辞書攻撃の対策として効果があるのは,dからである。

c に関する解答群

ア と同じ値になる  
イ とは異なる値になる
ウ よりも長さが長い  
エ よりも長さが短い

d に関する解答群

攻撃者が,ハッシュ値からではなくソルトから元のパスワードを検索するための一覧表を事前に作成しておく必要がある
攻撃者がパスワードファイルからソルトを入手できない
攻撃者がパスワードファイルを入手するのが困難になる
攻撃者が一つのパスワードに対して事前に求めるハッシュ値の数が膨大になる

設問 3

次の記述中のに入れる適切な答えを,解答群の中から選べ。

 C さんは,オフライン総当たり攻撃についても,対策を検討することにした。漏えいしたパスワードファイルに対するオフライン総当たり攻撃とは,攻撃者が,パスワードファイルを入手した後,全てのパスワードの候補を逐次生成してはハッシュ化し,得られたハッシュ値がパスワードファイルに保存されているハッシュ値と一致するかどうか,しらみつぶしに確認することによって,ハッシュ値の元のパスワードを見つける攻撃方法である。

 C さんは,オフライン総当たり攻撃を難しくする方式として,ストレッチングという方式があることを知った。

 この方式では,まず,ソルトとパスワードを連結した文字列をハッシュ化してハッシュ値を得る。次に,得られたハッシュ値の後にソルトとパスワードを連結し,その連結結果をハッシュ化する。この操作を指定した回数だけ繰り返すことによって,パスワードの照合に用いるハッシュ値を得る。パスワードファイルには,ソルト及びパスワードの照合に用いるハッシュ値に加えて,繰返し回数も保存する。この方式では,ハッシュ化の操作を 1 回だけ行う方式と比べると,攻撃者が,オフライン総当たり攻撃を行う際,

解答群

生成すべきパスワードの候補の最大文字列長が長くなる
一つのパスワードの候補から求めたハッシュ値の長さが長くなる
一つのパスワードの候補から求めたハッシュ値を,パスワードファイルのハッシュ値と比較する回数が増える
一つのパスワードの候補からハッシュ値を求める時間が増加する
問題のヒント

パスワードをハッシュ値に変換して保存することで、安全性を高めることがテーマの問題です。さらに、安全性を高めるためのソルトに関する設問もあります。

ソルト( salt )は、「塩」という意味ですが、もしも、ソルトの役割を知らないなら、この問題を通して覚えてください

AES 、Diffie-Hellman 、RSA 、SHA-256 などの用語が並んだ設問もありますが、すべての用語の意味を知らなくても、知っている用語の知識を総動員すれば、消去法で答えを絞り込めるでしょう。

みんなの解答欄

こちらから解答できます!

今週の金曜に解答解説ページを、ご解答頂いた方の正解率とともに公開します !!

 

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『今週の午後問題』の連載一覧 label 著者