ネットワークスペシャリスト、技術士として、資格取得を目指す方に有益な情報を発信します。午後問題を通じて、情報セキュリティの知識を体系的に蓄積していきましょう。なった後も能力向上のために学習できるいい機会です。問題文中、設問に該当する部分ですぐに解答を説明しています。ストーリーとして何度も読みこなすと、自然に記憶に定着してくると思います。Webサービスを利用するためのパスワードを安全に保存する方法に関する次の記述を読んで、設問1〜3に答えよ。A社が提供するWebサービスを利用するには、利用者が決めた利用者IDとパスワードを、Webアプリケーションが動作するサーバに登録しておく必要がある。A社のWebアプリケーションでは、利用者がWebアプリケーションにログインするときに、Webブラウザから利用者IDとパスワードがサーバに送信される。サーバは、受信した利用者IDとパスワードを、照合することによって認証する。利用者が決めたパスワードは、パスワードファイルに平文で保存されている。近年、パスワードファイルが漏えいし、不正ログインが発生したと考えられる事件が多数報道されている。そこで、A社に勤めるCさんは、自社のWebアプリケーションにおけるパスワードファイルが漏えいした際の不正ログインを防止するための対策について、上司から検討を命じられた。Cさんは対策として、パスワードを平文で保存するのではなく、ハッシュ関数でパスワードのハッシュ値を計算(以下、ハッシュ化という)し、そのハッシュ値を保存する方式を提案することにした。この方式におけるログイン時の認証では、受信したパスワードから求めたハッシュ値を、パスワードファイルに保存されているハッシュ値と照合する。保存の流れと、照合の流れを図1に示す。ハッシュ化には、ハッシュ関数の一つである(a:SHA-256)を用いることにした。ハッシュ化に用いるハッシュ関数は、一般的に次のような特徴を備えているので、パスワードが一致していることの確認に用いることができる。利用者のパスワードを平文で保存する場合と比べて、パスワードファイルが漏えいしても、より安全だと考えたからである。256)は、256ビットのハッシュ値を算出するハッシュ関数です。長さに関係なく、ハッシュ値は固定長になる。(2)(b:同一のパスワードをハッシュ化すると、同じハッシュ値になる。)(3)ハッシュ値からパスワードを推測することが非常に困難である。(4)パスワードが1文字でも異なれば、ハッシュ値は大きく異なる。bハッシュ関数に入力する値が同じであれば、算出されるハッシュ値は同じになるため、送信側と受信側でのパスワードの照合に利用できます。)に入れる適切な答えを、解答群の中から選べ。Cさんは、自身が提案する方式について、社内の情報セキュリティ責任者にレビューを依頼したところ、この方式は漏えいしたパスワードファイルを攻撃者に入手された場合、事前計算による辞書攻撃に弱いという指摘を受けた。この攻撃では、あらかじめ攻撃者はパスワードとしてよく使われる文字列を、よく使われているハッシュ関数でハッシュ化し、ハッシュ値から元のパスワードが検索可能な一覧表を作成しておく。その後、攻撃者が漏えいしたパスワードファイルを入手したとき、この作成した一覧表からハッシュ値を検索する。ハッシュ値が一覧表に載っている場合は、元のパスワードを容易に知ることができる。Cさんは、事前計算による辞書攻撃を難しくする方式を調査し、ソルトを用いる方式を提案することにした。ソルトとは、十分な長さをもつランダムな文字列である。この方式におけるパスワードの保存では、まず、サーバは新しいパスワードの保存の都度、新しいソルトを生成し、ソルトとパスワードを連結した文字列をハッシュ化する。このとき得られるハッシュ値は、パスワードだけをハッシュ化した場合のハッシュ値(c:とは異なる値になる)。次に、ハッシュ化に使用したソルトと得られたハッシュ値をパスワードファイルに保存する。cハッシュ関数の特徴である「パスワードが1文字でも異なれば、ハッシュ値は大きく異なる」により、パスワードにソルトを連結した文字列は、パスワードのみの場合とハッシュ値が異なります。この方式におけるパスワードの照合では、まず、サーバはパスワードファイルからソルトとハッシュ値を読み出す。次に、読み出したソルトと受信したパスワードを連結した文字列をハッシュ化し、得られたハッシュ値を、読み出したハッシュ値と照合する。保存の流れと、照合の流れを図2に示す。ソルトを用いる方式が、事前計算による辞書攻撃の対策として効果があるのは、(d:攻撃者が一つのパスワードに対して事前に求めるハッシュ値の数が膨大になる)からである。この問題の事前計算による辞書攻撃では、よく使われる文字列とハッシュ関数を元に算出したハッシュ値の一覧表を生成しておくものです。ソルトは「十分な長さを持つランダムな文字列」であり、パスワードごとに異なります。すると、攻撃者はパスワードごとにソルト分のハッシュ値を持つ必要があり、その数は膨大になります。)に入れる適切な答えを、解答群の中から選べ。Cさんは、オフライン総当り攻撃についても、対策を検討することにした。漏えいしたパスワードファイルに対するオフライン総当り攻撃とは、攻撃者が、パスワードファイルを入手した後、全てのパスワードの候補を逐次生成してはハッシュ化し、得られたハッシュ値がパスワードファイルに保存されているハッシュ値と一致するかどうか、しらみつぶしに確認することによって、ハッシュ値の元のパスワードを見つける攻撃方法である。Cさんは、オフライン総当り攻撃を難しくする方式として、ストレッチングという方式があることを知った。この方式では、まず、ソルトとパスワードを連結した文字列をハッシュ化してハッシュ値を得る。次に、得られたハッシュ値の後にソルトとパスワードを連結し、その連結結果をハッシュ化する。この操作を指定した回数だけ繰り返すことによって、パスワードの照合に用いるハッシュ値を得る。パスワードファイルには、ソルト及びパスワードの照合に用いるハッシュ値に加えて、繰返し回数も保存する。この方式では、ハッシュ化の操作を1回だけ行う方式と比べると、攻撃者が、オフライン総当り攻撃を行う際、(一つのパスワードの候補からハッシュ値を求める時間が増加する)。平成30年度春期午後問1(一部、加工あり)】ストレッチングでは、ハッシュ化の計算を数千〜数万回繰り返します。そのため、攻撃者でも同じ数だけハッシュ化操作を行う必要があり、攻撃が成立するまでの時間を長くすることができます。週間)やさしいエンジニアを目指して、ネットワーク・セキュリテイ分野に長年携わってきました。ネットワークスペシャリストなど各種資格を保有しています。役立つ情報をわかりやすく提供できたらと思います。月別アーカイブリンクプライバシーポリシーUdemyスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。