ECサイトの利用者認証の考察
インターネット通販用のWebサイト(以下、ECサイトという)で、不正アクセスを防止する対策を考えます。(参考:H31春 応用情報)
3種類の利用者認証
- 利用者の記憶、知識をもとにしたもの
例:ID・パスワード - 利用者の所有物をもとにしたもの
例:ICカード・ディジタル証明証・ワンタイムパスワード・マトリックス認証・SMS認証 - 利用者の生体の特徴をもとにしたもの
例:指紋・虹彩・筆跡・顔・網膜・静脈パターン(経年による変化が少ないもの)
安全性と利用しやすさの面を考える
セキュリティ対策がされたECサイトでも、使い勝手(利用者と運営者)が悪ければ意味がないです。
そこで、先ほど紹介した3種の利用者認証の安全性と利用しやすさを考えてみます。
- 記憶、知識:安全性△, 利用しやすさ〇
- 所有物:安全性〇, 利用しやすさ△
- 生体:安全性〇, 利用しやすさ△
2と3は、利用者に認証デバイスまたは認証情報を配布する必要があるため、ECサイトの利用者認証には向いていない場合があります。
ID・パスワード認証のリスク
ID・パスワード認証を狙った攻撃手法が存在している。
- ブルートフォース攻撃
IDを固定して、パスワードに可能性のあるすべての文字を組み合わせてログインを試す - 逆ブルートフォース攻撃
パスワードを固定して、IDに可能性のあるすべての文字を組み合わせてログインを試す - 類推攻撃
利用者の個人情報などからパスワードを類推してログインを試す - 辞書攻撃
辞書や人名録などに載っている単語や、それらの組み合わせた文字列でログインを試す - パスワードリスト攻撃
セキュリティ強度の低いWebサイトまたはECサイトからIDとパスワードが記録されたファイルを窃取し、解読したID・パスワードのリストを作成しリストを用いて他のサイトへログインを試す
1~4への対策は、パスワードとして設定する文字列を工夫することが重要。
5への対策は、認証情報の管理方法を工夫することが重要。
パスワードの入力試行回数の上限値を設定することで、1の攻撃への対策はできるが2の攻撃からは有効ではない。
また、他のWebサイトやECサイトから流出した認証情報が悪用された場合、対処できない。
(興味本位で不必要にサイトへ登録するのは止めましょう。そのサイトのセキュリティ対策が甘いと危ないので)
パスワードをハッシュ化してパスワードが知られることを防ぐ
パスワードをハッシュ関数によりハッシュ化し、平文のパスワードの代わりにハッシュ値を秘密認証情報のDBに登録する。
ハッシュ化の特性
- 入力データが同じであれば、常に同じメッセージダイジェストが生成される。
- 入力データが少しでも異なっていれば、生成されるメッセージダイジェストは大きく異なったものになる。
- メッセージダイジェストから元の入力データを再現することが困難である。
- 異なる入力データから同じメッセージダイジェストが生成される可能性が非常に低い。
ハッシュ値からパスワードの割り出しは難しく、万が一DBから情報が流出しても、平文のパスワードを知られてしまうことを防止します。
(暗号化はもとに戻すことを前提にしているが、ハッシュ化はもとに戻すことを前提にしていないため、ハッシュ化する前のパスワードを割り出すことが技術的に難しい)
ハッシュ化でも防げないレインボー攻撃
- 攻撃者が、膨大な数のパスワード候補とそのハッシュ値の対応テーブル(Rテーブル)をあらかじめ作成(または入手)する
- 窃取したアカウント情報中のパスワードのハッシュ値をキーとして、Rテーブルを検索する。一致したハッシュ値があれば、パスワードが割り出される。
レインボー攻撃はオフラインで行われ、時間や検索回数の制約がないため、パスワードが割り出される可能性が高い。
レインボー攻撃の対策としてパスワードにソルトを結合する
- 会員が設定したパスワードのバイト列に、ソルトと呼ばれる十分な長さのバイト列を結合する(ソルトは会員ごとに異なるものとする)
- ソルトを結合した全体のバイト列をハッシュ化する
- ID、ハッシュ値、ソルトを秘密認証情報のDBに登録する
ソルトを使った対策により、Rテーブルの作成が難しくなるため、パスワードの割り出しがしにくくなる。
会員に求めるパスワードのルール
- 会員自身の個人情報をもとにしたパスワードを設定しないこと
- 辞書や人名録に載っている単語をもとにしたパスワードを設定しないこと
- 会員が他サイトで利用しているパスワードを使いまわさないこと
1,2は推測されやすいパスワードになるためNGです。総務省のサイトに安全なパスワードと危険なパスワードの例が載っているため参考にしてください。
3はセキュリティ強度が低い他サイトから流出したパスワードによって,不正ログインされる場合があります。
具体的にいうと、流出したパスワードを使ってパスワードリスト攻撃して不正ログインされるリスクがあります。
参考:
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_1/2019h31h_ap_pm_qs.pdf