2019年 春期 応用情報技術者試験 問1
ECサイトの利用者認証
M社は,社員数が200名の輸入化粧品の販売会社である。このたび,M社では販路拡大の一環として,インターネット経由の通信販売(以下,インターネット通販という)を行うことを決めた。インターネット通販の開始に当たり,情報システム課のN課長を責任者として,インターネット通販用のWebサイト(以下,M社ECサイトという)を構築することになった。
M社ECサイトへの外部からの不正アクセスが行われると,インターネット通販事業で甚大な損害を被るおそれがある。そこで,N課長は,部下のC主任に,不正アクセスを防止するための対策について検討を指示した。
[利用者認証の方式の調査]
N課長の指示を受けたC主任は,最初に,利用者認証の方式について調査した。
利用者認証の方式には,次の3種類がある。
(i)利用者の記憶,知識を基にしたもの
(ii)利用者の所有物を基にしたもの
(iii)利用者の生体の特徴を基にしたもの
(ii)には,aによる認証があり,(iii)には,bによる認証がある。(ii),(iii)の方式は,セキュリティ面の安全性が高いが,①多数の会員獲得を目指すM社ECサイトの利用者認証には適さないとC主任は考えた。他社のECサイトを調査したところ,ほとんど(i)の方式が採用されていることが分かった。
そこで,M社ECサイトでは,(i)の方式の一つであるID,パスワードによる認証を行うことにし,ID,パスワード認証のリスクに関する調査結果を基に,対応策を検討することにした。
[ID,パスワード認証のリスクの調査]
ID,パスワード認証のリスクについて調査したところ,幾つかの攻撃手法が報告されていた。パスワードに対する主な攻撃を表1に示す。
項番 | 攻撃名 | 説明 |
---|---|---|
1 | c攻撃 | IDを固定して,パスワードに可能性のある全ての文字を組み合わせてログインを試行する攻撃 |
2 | 逆c攻撃 | パスワードを固定して,IDに可能性のある全ての文字を組み合わせてログインを試行する攻撃 |
3 | 類推攻撃 | 利用者の個人情報などからパスワードを類推してログインを試行する攻撃 |
4 | 辞書攻撃 | 辞書や人名録などに載っている単語や,それらを組み合わせた文字列などでログインを試行する攻撃 |
5 | d攻撃 | セキュリティ強度の低いWebサイト又はECサイトから,IDとパスワードが記録されたファイルを窃取して,解読したID,パスワードのリストを作成し,リストを用いて,ほかのサイトへのログインを試行する攻撃 |
表1中の項番1~4の攻撃に対しては,パスワードとして設定する文字列を工夫することが重要である。項番5の攻撃に対しては,M社ECサイトでの認証情報の管理方法の工夫が必要である。しかし,他組織のWebサイトやECサイト(以下,他サイトという)から流出した認証情報が悪用された場合は,M社ECサイトでは対処できない。そこで,C主任は,M社ECサイトでのパスワード設定規則,パスワード管理策及び会員に求めるパスワードの設定方法の3点について,検討を進めることにした。
[パスワード設定規則とパスワード管理策]
最初に,C主任は,表1中の項番1,2の攻撃への対策について検討した。検討の結果,パスワードの安全性を高めるために,M社ECサイトに,次のパスワード設定規則を導入することにした。
- パスワード長の範囲を10~20桁とする。
- パスワードについては,英大文字,英小文字,数字及び記号の70種類を使用可能とし,英大文字,英小文字,数字及び記号を必ず含める。
次に,C主任は,M社ECサイトのID,パスワードが窃取・解析され,表1中の項番5の攻撃で他サイトが攻撃されるのを防ぐために,M社ECサイトで実施するパスワードの管理方法について検討した。
一般に,Webサイトでは,②パスワードをハッシュ関数によってハッシュ値に変換(以下,ハッシュ化という)し,平文のパスワードの代わりにハッシュ値を秘密認証情報のデータベースに登録している。しかし,データベースに登録された認証情報が流出すると,レインボー攻撃と呼ばれる次の方法によって,ハッシュ値からパスワードが割り出されるおそれがある。
- 攻撃者が,膨大な数のパスワード候補とそのハッシュ値の対応テーブル(以下,Rテーブルという)をあらかじめ作成するか,又は作成されたRテーブルを入手する。
- 窃取したアカウント情報中のパスワードのハッシュ値をキーとして,Rテーブルを検索する。一致したハッシュ値があればパスワードが割り出される。
レインボー攻撃はオフラインで行われ,時間や検索回数の制約がないので,パスワードが割り出される可能性が高い。そこで,C主任は,レインボー攻撃によるパスワードの割出しをしにくくするために,③次の処理を実装することにした。
- 会員が設定したパスワードのバイト列に,ソルトと呼ばれる,会員ごとに異なる十分な長さのバイト列を結合する。
- ソルトを結合した全体のバイト列をハッシュ化する。
- ID,ハッシュ値及びソルトを,秘密認証情報のデータベースに登録する。
[会員に求めるパスワードの設定方法]
次に,C主任は,表1中の項番3,4及び5の攻撃への対策を検討し,次のルールに従うことをM社ECサイトの会員に求めることにした。
- 会員自身の個人情報を基にしたパスワードを設定しないこと
- 辞書や人名録に載っている単語を基にしたパスワードを設定しないこと
- ④会員が利用する他サイトとM社ECサイトでは,同一のパスワードを使い回さないこと
C主任は,これらの検討結果をN課長に報告した。報告内容と対応策はN課長に承認され,実施されることになった。