(57)【要約】  認証サーバ（３００）は、ログイン識別子と同じ登録識別子が存在するか判定する。前記ログイン識別子と同じ登録識別子が存在する場合、前記認証サーバは、ログインパスワードが正しいパスワードであるか判定する。認証が失敗した場合、ウェブサーバ（２００）は、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が上限回数に達しているか判定する。前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が上限回数に達している場合、前記ウェブサーバは、前記ログイン識別子と同じ登録識別子が存在するか否かに関わらず、アカウントロック画面を表示させる。
2020016985.tif 000002
【特許請求の範囲】
【請求項１】
ログイン識別子とログインパスワードとを受け付ける受付部と、
１つ以上の登録識別子と１つ以上の登録パスワードとが互いに対応付けられたアカウント管理ファイルに基づいて前記ログイン識別子と同じ登録識別子が存在するか判定する識別子判定部と、
前記ログイン識別子と同じ登録識別子が存在する場合に前記アカウント管理ファイルに基づいて前記ログインパスワードが正しいパスワードであるか判定するパスワード判定部と、
前記ログイン識別子と同じ登録識別子が存在し、且つ、前記ログインパスワードが正しいパスワードでなく、且つ、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が上限回数に達している場合に、アカウントロック画面を表示させる実在アカウントロック部と、
前記ログイン識別子と同じ登録識別子が存在せず、且つ、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達している場合に、アカウントロック画面を表示させる仮想アカウントロック部と
を備える認証制御システム。
【請求項２】
前記アカウント管理ファイルは、さらに、１つ以上の登録識別子と１つ以上のロック状態フラグとを互いに対応付け、
それぞれのロック状態フラグは、アカウントのロック状態を示し、
前記認証制御システムは、さらに、
前記ログイン識別子と同じ登録識別子が存在する場合に前記アカウント管理ファイルに基づいて前記ログイン識別子に対応するアカウントのロック状態を判定するロック状態判定部を備え、
前記パスワード判定部は、前記ログイン識別子に対応するアカウントのロック状態が未ロックである場合に前記ログインパスワードが正しいユーザパスワードであるか判定し、
前記実在アカウントロック部は、
前記ログイン識別子と同じ登録識別子が存在し、且つ、前記ログイン識別子に対応するアカウントのロック状態がロック中である場合にアカウントロック画面を表示させ、
前記ログイン識別子と同じ登録識別子が存在し、且つ、前記ログイン識別子に対応するアカウントのロック状態が未ロックであり、且つ、前記ログインパスワードが正しいパスワードでなく、且つ、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達している場合に、アカウントロック画面を表示させる
請求項１に記載の認証制御システム。
【請求項３】
前記認証制御システムは、さらに、アドレス監視部を備え、
前記受付部は、前記ログイン識別子と前記ログインパスワードとを含んだログインデータを受信し、
前記アドレス監視部は、受信されたログインデータの送信元アドレスが監視対象アドレスと同じアドレスである場合に攻撃通知を行う
請求項１または請求項２に記載の認証制御システム。
【請求項４】
前記アドレス監視部は、受信されたログインデータの送信元アドレスが監視対象アドレスと同じアドレスである場合にアカウントロック画面を表示させる
請求項３に記載の認証制御システム。
【請求項５】
前記認証制御システムは、さらに、アドレス監視部を備え、
前記受付部は、前記ログイン識別子と前記ログインパスワードとを含んだログインデータを受信し、
前記アドレス監視部は、前記ログインデータの送信元アドレスが監視対象アドレスと同じアドレスである場合にアカウントロック画面を表示させる
請求項１または請求項２に記載の認証制御システム。
【請求項６】
前記認証制御システムは、さらに、
前記ログイン識別子と同じ登録識別子が存在しない場合と前記ログインパスワードが正しいパスワードでない場合に、前記ログイン識別子と同じユーザ識別子用のアドレステーブルに前記ログインデータの送信元アドレスを登録するアドレス管理部と、
前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が上限回数に達している場合に、前記ログイン識別子と同じユーザ識別子用のアドレステーブルに基づいて監視対象アドレスを決定するアドレス決定部とを備える
請求項３から請求項５のいずれか１項に記載の認証制御システム。
【請求項７】
変更条件を満たすか判定する変更判定部と、
前記変更条件を満たす場合にユーザ識別子毎のログインの失敗回数に基づいて前記上限回数を変更する上限変更部を備える
請求項１から請求項６のいずれか１項に記載の認証制御システム。
【請求項８】
前記実在アカウントロック部は、前記ログイン識別子と同じ登録識別子が存在し、且つ、前記ログインパスワードが正しいパスワードでない場合に、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達しているか判定し、
前記変更判定部は、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達していない場合に、前記変更上限を満たすか判定し、
前記上限変更部は、前記変更条件を満たす場合に前記上限回数を変更し、
前記実在アカウントロック部は、前記上限回数が変更された場合に前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達しているか判定し、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達している場合にアカウントロック画面を表示させる
請求項７に記載の認証制御システム。
【請求項９】
前記仮想アカウントロック部は、前記ログイン識別子と同じ登録識別子が存在しない場合に、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達しているか判定し、
前記変更判定部は、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達していない場合に、前記変更上限を満たすか判定し、
前記上限変更部は、前記変更条件を満たす場合に前記上限回数を変更し、
前記仮想アカウントロック部は、前記上限回数が変更された場合に前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達しているか判定し、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達している場合にアカウントロック画面を表示させる
請求項７または請求項８に記載の認証制御システム。
【請求項１０】
ログイン識別子とログインパスワードとを受け付ける受付処理と、
１つ以上の登録識別子と１つ以上の登録パスワードとが互いに対応付けられたアカウント管理ファイルに基づいて前記ログイン識別子と同じ登録識別子が存在するか判定する識別子判定処理と、
前記ログイン識別子と同じ登録識別子が存在する場合に前記アカウント管理ファイルに基づいて前記ログインパスワードが正しいパスワードであるか判定するパスワード判定処理と、
前記ログイン識別子と同じ登録識別子が存在し、且つ、前記ログインパスワードが正しいパスワードでなく、且つ、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が上限回数に達している場合に、アカウントロック画面を表示させる実在アカウントロック処理と、
前記ログイン識別子と同じ登録識別子が存在せず、且つ、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達している場合に、アカウントロック画面を表示させる仮想アカウントロック処理と
をコンピュータを実行させるための認証制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログイン時の認証制御に関するものである。
【背景技術】
【０００２】
ウェブアプリケーションのログインにおいて、一般的に、ユーザ識別子とパスワードとを用いた認証が行われる。
このような認証に対して、任意のユーザ識別子に対して複数のパスワードを用いて、有効なアカウントを取得しようとする攻撃が行われる。この攻撃は、ブルートフォース攻撃（ＢＦ攻撃）と呼ばれる。【０００３】
ＢＦ攻撃では、ユーザ識別子を固定してパスワードを毎回変更してログインが繰り返し行われる。例えば、総当たり攻撃または辞書攻撃が行われる。総当たり攻撃は、ユーザ閾別子とパスワードとのそれぞれについて、全ての文字列（例えば、数字４桁の場合は００００から９９９９まで）を試す攻撃である。辞書攻撃は、ユーザ識別子とパスワードとのそれぞれについて、よく使用される文字列がリスト化されてリスト内の文字列を試す攻撃である。【０００４】
ＢＦ攻撃の一般的な対策として、有効なアカウントに対して一定回数以上のログイン失敗が発生した場合にアカウントロックが行われる。アカウントロックが行われると、そのアカウントが一定時間利用不可能になる。または、アカウントロックが管理者によって解除されるまで、そのアカウントが利用不可能になる。
一般的に、アカウントロックされたことがＢＦ攻撃の実行者に判明しないよう、ウェブアプリケーションは、アカウントロックの有無によって、ログイン試行の応答画面を変更しない。【０００５】
正規ユーザがユーザ識別子とパスワードとを誤って覚えている場合、一定回数以上のログイン失敗が発生し、アカウントロックされてしまう。このとき、ログイン試行の応答画面が変更されないと、正規ユーザがアカウントロックに気付かないことがある。【０００６】
特許文献１において、不要なアカウントロックが発生することを低減させることを目的とした認証方式が提案されている。
この認証方式では、正規ユーザがパスワードを誤って覚えている場合が想定される。一定期間内に有効なユーザ識別子と同じパスワードとの組が使用されてログインが繰り返し失敗した場合、ウェブアプリケーションを介して、ユーザに既に失敗しているパスワードであることが通知される。これにより、アカウントロックのトリガーとなるカウントを増加させないようにすることが可能となる。
しかし、攻撃者が任意のユーザ識別子を使用してログインを２回試行すると、試行されたユーザ識別子が有効なユーザ識別子であると判明してしまう場合がある。具体的には、試行されたユーザ識別子が有効なユーザ識別子である場合、既に失敗しているパスワードが表示される。この場合、試行されたユーザ識別子が有効なユーザ識別子であることが判明してしまう。
また、正規ユーザがユーザ識別子を誤って覚えている場合、入力されたユーザ識別子が有効でないため、ログイン失敗時にウェブアプリケーションの画面に変化がない。そのため、正規ユーザは、入力したユーザ識別子が誤っていることに気付くことができない。【０００７】
特許文献２において、アカウントロックされたユーザがアカウントロックを解除することによってアカウントロック後のユーザの利便性を向上させることを目的とした認証方式が提案されている。
この認証方式では、通常アカウントと解除用アカウントとが生成される。通常アカウントがアカウントロックされた場合、ウェブアプリケーションを介して、解除用アカウントの入力が指示される。ユーザは、解除用アカウントを入力することにより、通常アカウントのアカウントロックを解除することができる。
しかし、攻撃者が任意のユーザ識別子を使用してＢＦ攻撃を実行すると、有効な通常アカウントが判明してしまう場合がある。具体的には、使用されたユーザ識別子が有効なユーザ識別子である場合、解除用アカウントの入力が表示される。この場合、使用されたユーザ識別子が有効な通常アカウントであることが判明してしまう。
また、正規ユーザが通常アカウントを誤って覚えている場合、入力された通常アカウントが有効なアカウントでないため、ログイン失敗時にウェブアプリケーションの画面に変化がない。そのため、正規ユーザは、入力した通常アカウントが誤っていることに気付くことができない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１６−１１９０１７号公報
【特許文献２】特開２００８−０４６８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
正規ユーザがユーザ識別子またはパスワードを誤って覚えている場合、正規ユーザは、ユーザ識別子とパスワードとの誤った組によってログインを複数回試行する。そして、アカウントロックが発生する。しかし、ウェブアプリケーションの画面にはアカウントロックを示す情報が表示されない。そのため、正規ユーザがさらにログインを試行することとなり、ユーザの利便性を下げてしまう。
また、ウェブアプリケーションの画面にアカウントロックを示す情報が表示される場合、試行されたユーザ識別子が有効なユーザ識別子であることが攻撃者に判明してしまう。そして、そのユーザ識別子が更なる攻撃に利用される可能性がある。【００１０】
本発明は、正規ユーザがユーザ識別子またはパスワードを誤って覚えている場合であっても、セキュリティを保ったまま、正規ユーザの利便性を向上できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の認証制御システムは、
ログイン識別子とログインパスワードとを受け付ける受付部と、
１つ以上の登録識別子と１つ以上の登録パスワードとが互いに対応付けられたアカウント管理ファイルに基づいて前記ログイン識別子と同じ登録識別子が存在するか判定する識別子判定部と、
前記ログイン識別子と同じ登録識別子が存在する場合に前記アカウント管理ファイルに基づいて前記ログインパスワードが正しいパスワードであるか判定するパスワード判定部と、
前記ログイン識別子と同じ登録識別子が存在し、且つ、前記ログインパスワードが正しいパスワードでなく、且つ、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が上限回数に達している場合に、アカウントロック画面を表示させる実在アカウントロック部と
前記ログイン識別子と同じ登録識別子が存在せず、且つ、前記ログイン識別子と同じログイン識別子を用いたログインの失敗回数が前記上限回数に達している場合に、アカウントロック画面を表示させる仮想アカウントロック部とを備える。
【発明の効果】
【００１２】
本発明によれば、ログイン識別子がアカウント管理ファイル上の登録識別子のいずれかに一致するか否かに関わらず、アカウントロック画面が表示される。
アカウントロック画面が表示されると、正規ユーザは、ログイン識別子またはログインパスワードを誤って覚えていることを知ることができる。そのため、その後に、正規ユーザによる不要なログイン試行が発生しない。また、ログイン識別子がアカウント管理ファイル上の登録識別子と一致するか否かに関わらずアカウントロック画面が表示されるため、攻撃者は、ログイン識別子が有効なユーザ識別子であるか否かを判断することができない。
したがって、セキュリティを保ったまま、正規ユーザの利便性を向上させることが可能である。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１における認証制御システム１００の構成図。
【図２】実施の形態１におけるウェブサーバ２００の構成図。
【図３】実施の形態１における認証サーバ３００の構成図。
【図４】実施の形態１における失敗ログイン管理ファイル２９１の構成図。
【図５】実施の形態１におけるログイン試行データ２９２の構成図。
【図６】実施の形態１におけるアカウント管理ファイル３９１の構成図。
【図７】実施の形態１における認証制御方法のフローチャート。
【図８】実施の形態１における認証処理（Ｓ１１０）のフローチャート。
【図９】実施の形態１におけるログイン失敗処理（Ｓ１３０）のフローチャート。
【図１０】実施の形態１における実在アカウント処理（Ｓ１３２）のフローチャート。
【図１１】実施の形態１における仮想アカウント処理（Ｓ１３３）のフローチャート。
【図１２】実施の形態１における応答内容パターンを示す表。
【図１３】実施の形態２におけるウェブサーバ２００の構成図。
【図１４】実施の形態２におけるアドレステーブル２９３の構成図。
【図１５】実施の形態２における認証制御方法のフローチャート。
【図１６】実施の形態２におけるアドレス監視処理（Ｓ２１０）のフローチャート。
【図１７】実施の形態２におけるアドレス決定処理（Ｓ２５０）のフローチャート。
【図１８】実施の形態３におけるウェブサーバ２００の構成図。
【図１９】実施の形態３における実在アカウント処理（Ｓ１３２）のフローチャート。
【図２０】実施の形態３における仮想アカウント処理（Ｓ１３３）のフローチャート。
【図２１】実施の形態３における上限操作処理（Ｓ３００）のフローチャート。
【図２２】実施の形態４における認証制御システム１００の構成例を示す図。
【図２３】実施の形態におけるウェブサーバ２００のハードウェア構成図。
【図２４】実施の形態における認証サーバ３００のハードウェア構成図。
【発明を実施するための形態】
【００１４】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１５】
実施の形態１．
認証制御システム１００について、図１から図１２に基づいて説明する。
【００１６】
＊＊＊構成の説明＊＊＊
図１に基づいて、認証制御システム１００の構成を説明する。
認証制御システム１００は、ユーザ端末１１０とウェブサーバ２００と認証サーバ３００とを備える。
ユーザ端末１１０は、ウェブアプリケーションを利用するためにユーザ認証を受けるコンピュータである。
ウェブサーバ２００は、ユーザ端末１１０に対するユーザ認証を制御するサーバ装置である。
認証サーバ３００は、ユーザ認証を行うサーバ装置である。
ウェブサーバ２００は、ネットワーク１０１を介して、ユーザ端末１１０と認証サーバ３００と通信する。
【００１７】
図２に基づいて、ウェブサーバ２００の構成を説明する。
ウェブサーバ２００は、プロセッサ２０１とメモリ２０２と補助記憶装置２０３と入出力インタフェース２０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００１８】
プロセッサ２０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ２０２は揮発性の記憶装置である。メモリ２０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ２０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ２０２に記憶されたデータは必要に応じて補助記憶装置２０３に保存される。
補助記憶装置２０３は不揮発性の記憶装置である。例えば、補助記憶装置２０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置２０３に記憶されたデータは必要に応じてメモリ２０２にロードされる。
入出力インタフェース２０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース２０４はＵＳＢ端子であり、入力装置はキーボード、マウスおよびレシーバであり、出力装置はディスプレイおよびトランスミッタである。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
【００１９】
ウェブサーバ２００は、受付部２１０とログイン判定部２２０とアカウントロック部２３０と応答部２４０といった要素を備える。これらの要素はソフトウェアで実現される。
アカウントロック部２３０は、実在アカウントロック部２３１と仮想アカウントロック部２３２とを含む。
【００２０】
補助記憶装置２０３には、受付部２１０とログイン判定部２２０とアカウントロック部２３０と応答部２４０としてコンピュータを機能させるための認証制御プログラムが記憶されている。認証制御プログラムは、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
さらに、補助記憶装置２０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
つまり、プロセッサ２０１は、ＯＳを実行しながら、認証制御プログラムを実行する。
認証制御プログラムを実行して得られるデータは、メモリ２０２、補助記憶装置２０３、プロセッサ２０１内のレジスタ、または、プロセッサ２０１内のキャッシュメモリといった記憶装置に記憶される。
【００２１】
補助記憶装置２０３は記憶部２９０として機能する。但し、他の記憶装置が、補助記憶装置２０３の代わりに、又は、補助記憶装置２０３と共に、記憶部２９０として機能してもよい。
【００２２】
ウェブサーバ２００は、プロセッサ２０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ２０１の役割を分担する。
【００２３】
認証制御プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【００２４】
図３に基づいて、認証サーバ３００の構成を説明する。
認証サーバ３００は、プロセッサ３０１とメモリ３０２と補助記憶装置３０３と入出力インタフェース３０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００２５】
プロセッサ３０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ３０１はＣＰＵ、ＤＳＰまたはＧＰＵである。
メモリ３０２は揮発性の記憶装置である。メモリ３０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ３０２はＲＡＭである。メモリ３０２に記憶されたデータは必要に応じて補助記憶装置３０３に保存される。
補助記憶装置３０３は不揮発性の記憶装置である。例えば、補助記憶装置３０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置３０３に記憶されたデータは必要に応じてメモリ３０２にロードされる。
入出力インタフェース３０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース３０４はＵＳＢ端子であり、入力装置はキーボード、マウスおよびレシーバであり、出力装置はディスプレイおよびトランスミッタである。
【００２６】
認証サーバ３００は、認証部３１０を備える。認証部３１０はソフトウェアで実現される。
認証部３１０は、受付部３１１と識別子判定部３１２とロック状態判定部３１３とパスワード判定部３１４と応答部３１５とを含む。
【００２７】
補助記憶装置３０３には、認証部３１０としてコンピュータを機能させるための認証プログラムが記憶されている。認証プログラムは、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
さらに、補助記憶装置３０３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
つまり、プロセッサ３０１は、ＯＳを実行しながら、認証プログラムを実行する。
認証プログラムを実行して得られるデータは、メモリ３０２、補助記憶装置３０３、プロセッサ３０１内のレジスタ、または、プロセッサ３０１内のキャッシュメモリといった記憶装置に記憶される。
【００２８】
補助記憶装置３０３は記憶部３９０として機能する。但し、他の記憶装置が、補助記憶装置３０３の代わりに、又は、補助記憶装置３０３と共に、記憶部３９０として機能してもよい。
【００２９】
認証サーバ３００は、プロセッサ３０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ３０１の役割を分担する。
【００３０】
認証プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
認証プログラムは、認証制御プログラムの一部である。
【００３１】
図４に基づいて、失敗ログイン管理ファイル２９１の構成を説明する。失敗ログイン管理ファイル２９１は記憶部２９０に記憶される。
失敗ログイン管理ファイル２９１は、１つ以上の試行識別子と１つ以上の試行回数とを互いに対応付ける。
試行識別子は、ログインの失敗時にログイン識別子として指定されたユーザ識別子である。
試行回数は、ログイン試行識別子を用いたログインの失敗回数である。
例えば、図４の失敗ログイン管理ファイル２９１は、「ＲＥＤ」というユーザ識別子を用いたログインが９回失敗していることを示している。
【００３２】
図５に基づいて、ログイン試行データ２９２の構成を説明する。ログイン試行データ２９２は記憶部２９０に記憶される。
ログイン試行データ２９２は、直近の試行識別子とその試行回数とを含む。
【００３３】
図６に基づいて、アカウント管理ファイル３９１の構成を説明する。アカウント管理ファイル３９１は記憶部３９０に記憶される。
アカウント管理ファイル３９１は、１つ以上の登録識別子と１つ以上の登録パスワードと１つ以上のロック状態フラグとを互いに対応付ける。
登録識別子は、登録されているユーザ識別子である。つまり、登録識別子は、正規ユーザのユーザ識別子である。
登録パスワードは、登録されているユーザパスワードである。つまり、登録パスワードは、正規ユーザのパスワードである。アスタリスクはパスワードを表している。
登録識別子と登録パスワードとの組をアカウントと呼ぶ。
【００３４】
ロック状態フラグは、アカウントのロック状態を示す。具体的には、ロック状態フラグは、未ロックまたはロック中を示す。
未ロックは、アカウントがロックされていない状態を意味する。
ロック中は、アカウントがロックされている状態を意味する。
【００３５】
＊＊＊動作の説明＊＊＊
認証制御システム１００の動作は認証制御方法に相当する。また、認証制御方法の手順は認証制御プログラムの手順に相当する。
【００３６】
図７に基づいて、認証制御方法を説明する。
ステップＳ１０１において、ユーザは、ログイン識別子とログインパスワードとをユーザ端末１１０に入力する。
ログイン識別子は、ログインのために指定されたユーザ識別子である。
ログインパスワードは、ログインのために指定されたユーザパスワードである。
ログイン識別子とログインパスワードとを含んだデータをログインデータという。
【００３７】
ユーザ端末１１０は、ログインデータをウェブサーバ２００に送信する。
ウェブサーバ２００において、受付部２１０は、ログインデータを受信する。つまり、受付部２１０は、ログインデータを受け付ける。
【００３８】
ステップＳ１１０において、認証サーバ３００は、ログインデータに基づいて認証処理を行う。
【００３９】
図８に基づいて、認証処理（Ｓ１１０）を説明する。
ステップＳ１１１において、ログイン判定部２２０は、ログインデータを認証サーバ３００に送信する。
認証サーバ３００において、受付部３１１は、ログインデータを受信する。つまり、受付部３１１は、ログインデータを受け付ける。つまり、受付部３１１は、ログイン識別子とログインパスワードとを受け付ける。
【００４０】
ステップＳ１１２において、識別子判定部３１２は、アカウント管理ファイル３９１に基づいて、ログイン識別子と同じ登録識別子が存在するか判定する。
具体的には、識別子判定部３１２は、ログイン識別子と同じ登録識別子がアカウント管理ファイル３９１に含まれるか判定する。ログイン識別子と同じ登録識別子がアカウント管理ファイル３９１に含まれる場合、識別子判定部３１２は、ログイン識別子と同じ登録識別子が存在すると判定する。
ログイン識別子と同じ登録識別子が存在する場合、処理はステップＳ１１３に進む。
ログイン識別子と同じ登録識別子が存在しない場合、処理はステップＳ１１６に進む。
【００４１】
ステップＳ１１３において、ロック状態判定部３１３は、アカウント管理ファイル３９１に基づいて、ログイン識別子に対応するアカウントのロック状態を判定する。
具体的には、ロック状態判定部３１３は、ログイン識別子と同じ登録識別子に対応付けられたロック状態フラグをアカウント管理ファイル３９１から選択する。そして、ロック状態判定部３１３は、選択されたロック状態フラグに基づいてアカウントのロック状態を判定する。
ログイン識別子に対応するアカウントのロック状態が未ロックである場合、処理はステップＳ１１４に進む。
ログイン識別子に対応するアカウントのロック状態がロック中である場合、処理はステップＳ１１７に進む。
【００４２】
ステップＳ１１４において、パスワード判定部３１４は、アカウント管理ファイル３９１に基づいて、ログインパスワードが正しいパスワードであるか判定する。
具体的には、パスワード判定部３１４は、ログイン識別子と同じ登録識別子に対応付けられた登録パスワードをアカウント管理ファイル３９１から選択する。そして、パスワード判定部３１４は、ログインパスワードを、選択された登録パスワードと比較する。ログインパスワードが選択された登録パスワードと一致する場合、パスワード判定部３１４は、ログインパスワードが正しいパスワードであると判定する。
ログインパスワードが正しいパスワードである場合、処理はステップＳ１１５に進む。
ログインパスワードが正しいパスワードでない場合、処理はステップＳ１１８に進む。
【００４３】
ステップＳ１１５において、応答部３１５は、認証結果（認証成功）をウェブサーバ２００に送信する。つまり、応答部３１５は、認証結果（認証成功）を応答する。
ウェブサーバ２００において、ログイン判定部２２０は、認証結果（認証成功）を受信する。
認証結果（認証成功）は、認証が成功したことを示す認証結果である。
【００４４】
ステップＳ１１６において、応答部３１５は、認証結果（アカウント無し）をウェブサーバ２００に送信する。つまり、応答部３１５は、認証結果（アカウント無し）を応答する。
ウェブサーバ２００において、ログイン判定部２２０は、認証結果（アカウント無し）を受信する。
認証結果（アカウント無し）は、「アカウント無し」を理由に認証が失敗したことを示す認証結果である。
「アカウント無し」は、ログイン識別子と同じ登録識別子が存在しないこと、つまり、ログイン識別子に対応するアカウントが存在しないことを意味する。
【００４５】
ステップＳ１１７において、応答部３１５は、認証結果（ロック中）をウェブサーバ２００に送信する。つまり、応答部３１５は、認証結果（ロック中）を応答する。
ウェブサーバ２００において、ログイン判定部２２０は、認証結果（ロック中）を受信する。
認証結果（ロック中）は、「ロック中」を理由に認証が失敗したことを示す認証結果である。
「ロック中」は、ログイン識別子に対応するアカウントのロック状態がロック中であることを意味する。
【００４６】
ステップＳ１１８において、応答部３１５は、認証結果（パスワード誤り）をウェブサーバ２００に送信する。つまり、応答部３１５は、認証結果（パスワード誤り）を応答する。
ウェブサーバ２００において、ログイン判定部２２０は、認証結果（パスワード誤り）を受信する。
認証結果（パスワード誤り）は、「パスワード誤り」を理由に認証が失敗したことを示す認証結果である。
「パスワード誤り」は、ログインパスワードが正しいパスワードでないことを意味する。
【００４７】
図７に戻り、ステップＳ１２１から説明を続ける。
ステップＳ１２１において、ログイン判定部２２０は、認証結果に基づいてログイン許否を判定する。
認証結果が認証成功を示す場合、ログイン判定部２２０はログインを許可する。認証結果が認証失敗を示す場合、ログイン判定部２２０はログインを許可しない。
ログインが許可される場合、処理はステップＳ１２２に進む。
ログインが許可されない場合、処理はステップＳ１３０に進む。
【００４８】
ステップＳ１２２において、応答部２４０は、ログイン成功を示すログイン結果データをユーザ端末１１０に送信する。つまり、応答部２４０はログイン成功を応答する。
ユーザ端末１１０は、ログイン結果データを受信する。ログイン結果データがログイン成功を示す場合、ユーザ端末１１０は、ログイン後の画面をディスプレイに表示する。
【００４９】
ステップＳ１３０において、アカウントロック部２３０は、認証結果に基づいてログイン失敗処理を行う。
【００５０】
図９に基づいて、ログイン失敗処理（Ｓ１３０）を説明する。
ステップＳ１３１において、ログイン判定部２２０は、認証結果に基づいて、認証失敗の理由を判定する。
認証失敗の理由が「パスワード誤り」である場合、処理はステップＳ１３２に進む。
認証失敗の理由が「アカウント無し」である場合、処理はステップＳ１３３に進む。
認証結果の理由が「ロック中」である場合、処理はステップＳ１３４に進む。
【００５１】
ステップＳ１３２において、ウェブサーバ２００は実在アカウント処理を行う。
実在アカウント処理は、アカウント管理ファイル３９１に登録されているアカウント、すなわち、実在するアカウントのための処理である。
実在アカウン処理（Ｓ１３２）の詳細については後述する。
【００５２】
ステップＳ１３３において、ウェブサーバ２００は仮想アカウント処理を行う。
仮想アカウント処理は、アカウント管理ファイル３９１に登録されていないアカウント、すなわち、実在しないアカウントのための処理である。
仮想アカウント処理（Ｓ１３３）の詳細については後述する。
【００５３】
ステップＳ１３４において、実在アカウントロック部２３１は、アカウントロック画面をユーザ端末１１０に表示させるために、アカウントロックを応答する。
アカウントロック画面は、アカウントがロックされた状態であることをユーザに知らせるための画面である。
【００５４】
具体的には、実在アカウントロック部２３１は、アカウントロックの応答を応答部２４０に指示する。応答部２４０は、アカウントロックを示すログイン結果データをユーザ端末１１０に送信する。ユーザ端末１１０は、ログイン結果データを受信する。ログイン結果データがアカウントロックを示す場合、ユーザ端末１１０は、アカウントロック画面をディスプレイに表示する。
【００５５】
図１０に基づいて、実在アカウントロック処理（Ｓ１３２）を説明する。
ステップＳ１３２１において、ログイン判定部２２０は、ログイン識別子の試行回数を取得する。
ログイン識別子の試行回数は、同じログイン識別子を用いたログインの失敗回数である。
【００５６】
具体的には、ログイン判定部２２０は、ログイン識別子の試行回数を以下のように取得する。
ログイン判定部２２０は、ログイン識別子がログイン試行データ２９２の中の試行識別子と同じであるか判定する。
【００５７】
ログイン識別子がログイン試行データ２９２の中の試行識別子と同じである場合、ログイン判定部２２０は、ログイン試行データ２９２の中の試行回数を１増加させる。そして、ログイン判定部２２０は、ログイン試行データ２９２から試行回数を取得する。
さらに、ログイン判定部２２０は、ログイン識別子と同じ試行識別子を見つけるため、失敗ログイン管理ファイル２９１を検索する。ログイン識別子と同じ試行識別子が失敗ログイン管理ファイル２９１に登録されている場合、ログイン判定部２２０は、ログイン識別子と同じ試行識別子に対応付けられている試行回数を１増加させる。ログイン識別子と同じ試行識別子が失敗ログイン管理ファイル２９１に登録されていない場合、ログイン判定部２２０は、ログイン試行データ２９２の中の試行回数を失敗ログイン管理ファイル２９１の中の最小の試行回数と比較する。ログイン試行データ２９２の中の試行回数が失敗ログイン管理ファイル２９１の中の最小の試行回数より大きい場合、ログイン判定部２２０は、失敗ログイン管理ファイル２９１の中の最小の試行回数に対応付けられた試行識別子をログイン試行データ２９２の中の試行識別子に置き換え、失敗ログイン管理ファイル２９１の中の最小の試行回数をログイン試行データ２９２の中の試行回数に置き換える。
【００５８】
ログイン識別子がログイン試行データ２９２の中の試行識別子と異なる場合、ログイン判定部２２０は、ログイン試行データ２９２の中の試行識別子をログイン識別子に変更し、ログイン試行データ２９２の中の試行回数を１にリセットする。そして、ログイン判定部２２０は、ログイン試行データ２９２から試行回数を取得する。
【００５９】
ステップＳ１３２２において、ログイン判定部２２０は、ログイン識別子の試行回数が上限回数に達しているか判定する。上限回数は、試行回数の上限であり、予め決められる。
具体的には、ログイン判定部２２０は、ログイン識別子の試行回数を上限回数と比較する。ログイン識別子の試行回数が上限回数以上である場合、ログイン判定部２２０は、ログイン識別子の試行回数が上限回数に達していると判定する。
ログイン識別子の試行回数が上限回数に達している場合、処理はステップＳ１３２３に進む。
ログイン識別子の試行回数が上限回数に達していない場合、処理はステップＳ１３２５に進む。
【００６０】
ステップＳ１３２３において、実在アカウントロック部２３１は、認証サーバ３００のアカウント管理ファイル３９１にアクセスし、ログイン識別子と同じ登録識別子をアカウント管理ファイル３９１から選択する。そして、実在アカウントロック部２３１は、選択した登録識別子に対応付けられたロック状態フラグに「ロック中」を設定する。
【００６１】
ステップＳ１３２４において、実在アカウントロック部２３１は、アカウントロック画面をユーザ端末１１０に表示させるために、アカウントロックを応答する。
ステップＳ１３２４の処理は、ステップＳ１３４の処理と同じである（図９参照）。
【００６２】
ステップＳ１３２５において、応答部２４０は、認証失敗を示すログイン結果データをユーザ端末１１０に送信する。つまり、応答部２４０は認証失敗を応答する。
ユーザ端末１１０は、ログイン結果データを受信する。ログイン結果データが認証失敗を示す場合、ユーザ端末１１０は、認証失敗画面をディスプレイに表示する。
認証失敗画面は、ユーザが認証されなかったことをユーザに知らせるための画面である。具体的には、認証失敗画面は、ログイン識別子とログインパスワードとの組が正しくないことをユーザに知らせる。
【００６３】
図１１に基づいて、仮想アカウント処理（Ｓ１３３）を説明する。
ステップＳ１３３１において、ログイン判定部２２０は、ログイン識別子の試行回数を取得する。
ステップＳ１３３１の処理は、ステップＳ１３２１の処理と同じである（図１０参照）。
【００６４】
ステップＳ１３３２において、ログイン判定部２２０は、ログイン識別子の試行回数が上限回数に達しているか判定する。
ステップＳ１３３２の処理は、ステップＳ１３２２の処理と同じである（図１０参照）。
ログイン識別子の試行回数が上限回数に達している場合、処理はステップＳ１３３３に進む。
ログイン識別子の試行回数が上限回数に達していない場合、処理はステップＳ１３３４に進む。
【００６５】
ステップＳ１３３３において、仮想アカウントロック部２３２は、アカウントロック画面をユーザ端末１１０に表示させるために、アカウントロックを応答する。
ステップＳ１３３３の処理は、ステップＳ１３４の処理と同じである（図９参照）。
【００６６】
ステップＳ１３３４において、応答部２４０は、認証失敗を示すログイン結果データをユーザ端末１１０に送信する。つまり、応答部２４０は認証失敗を応答する。
ステップＳ１３３４の処理は、ステップＳ１３２５の処理と同じである（図１０参照）。
【００６７】
図１２に基づいて、認証失敗時の応答内容を説明する。
ログイン識別子の試行回数が上限未満であり、且つ、ログイン識別子に対応するアカウントが無い場合、ロック状態に関わらず、応答内容は認証失敗となる。
ログイン識別子の試行回数が上限未満であり、且つ、ログイン識別子に対応するアカウントが有り、且つ、ロック状態が未ロックである場合、応答内容は認証失敗となる。
ログイン識別子の試行回数が上限未満であり、且つ、ログイン識別子に対応するアカウントが有り、且つ、ロック状態がロック中である場合、応答内容はアカウントロックとなる。
ログイン識別子の試行回数が上限以上であり、且つ、ログイン識別子に対応するアカウントが無い場合、ロック状態に関わらず、応答内容はアカウントロックとなる。
ログイン識別子の試行回数が上限以上であり、且つ、ログイン識別子に対応するアカウントが有り、且つ、ロック状態が未ロックである場合、応答内容はアカウントロックとなる。また、ロック状態は未ロックからロック中に変わる。
ログイン識別子の試行回数が上限以上であり、且つ、ログイン識別子に対応するアカウントが有り、且つ、ロック状態がロック中である場合、応答内容はアカウントロックとなる。
【００６８】
＊＊＊実施の形態１の補足＊＊＊
アカウント（登録識別子および登録パスワード）の変更、追加および削除が、ウェブアプリケーションを介して、または、管理者によって可能であることが望ましい。
アカウントのロック状態の「ロック中」から「未ロック」への変更は、管理者によって可能である。この変更が一般のユーザによって行われないようにすることが望ましい。
失敗ログイン管理ファイル２９１が試行回数が上限回数に満たない試行識別子で埋まることを防ぐ必要がある。例えば、失敗ログイン管理部をウェブサーバ２００に備える。認証が成功した場合、失敗ログイン管理部はログイン識別子と同じ試行識別子を失敗ログイン管理ファイル２９１から削除する。失敗ログイン管理部は、管理者からウェブサーバ２００への指示に従って失敗ログイン管理ファイル２９１を編集してもよいし、失敗ログイン管理ファイル２９１を定期的にリセットしてもよい。
アカウントロック画面は、他のアカウントのユーザ識別子およびパスワードを入力させるためのユーザインタフェースを含んでもよい。
アカウントロック画面は、アカウントのロック状態を解除する方法をユーザに提示するためのメッセージを含んでもよい。例えば、メッセージは、ユーザ識別子およびユーザパスワードを使用する認証ではなく、電子メールまたは電話などの通信方法を利用して正規ユーザのみが知る情報を使用する認証、を実施するようことをユーザに提示する。
【００６９】
＊＊＊実施の形態１の効果＊＊＊
正規ユーザが認証情報（ユーザ識別子およびユーザパスワード）を誤って覚えている場合でも、攻撃者に試行識別子に対応するアカウントの有無を判明されることなく、正規ユーザに認証情報が誤っていることを通知することができる。
正規ユーザが認証情報を誤って覚えている場合と正規ユーザがユーザパスワードのみを誤って覚えている場合とのいずれの場合であっても、アカウントロック画面が表示される。そのため、正規ユーザは他の認証方式で認証を受けざるを得ない。したがって、アカウントロック後、正規ユーザは、誤ったユーザ識別子または誤ったユーザパスワードを使用した認証を繰り返すという不要な認証を行わなくてよい。
攻撃者が様々なユーザ識別子を使用するＢＦ攻撃を実施しても、攻撃者には全てユーザ識別子が有効なユーザ識別子であるかのように確認できる。そのため、ＢＦ攻撃を困難にすることができる。
【００７０】
実施の形態２．
攻撃者によるログイン試行を検知する形態について、主に実施の形態１と異なる点を図１３から図１７に基づいて説明する。
【００７１】
＊＊＊構成の説明＊＊＊
認証制御システム１００の構成は、実施の形態１における構成と同じである（図１参照）。
【００７２】
図１３に基づいて、ウェブサーバ２００の構成を説明する。
ウェブサーバ２００は、さらに、攻撃判定部２５０を備える。攻撃判定部２５０は、アドレス監視部２５１とアドレス管理部２５２とアドレス決定部２５３とを備える。
認証制御プログラムは、さらに、攻撃判定部２５０としてコンピュータを機能させる。
【００７３】
図１４に基づいて、試行識別子別のアドレステーブル２９３の構成を説明する。試行識別子別のアドレステーブル２９３は、記憶部２９０に記憶される。
アドレステーブル２９３は、認証が失敗したログイン毎に試行元アドレスを示す。
試行識別子は、認証が失敗したログインにおいてログイン識別子として使用されたユーザ識別子である。
試行元アドレスは、認証が失敗したログインにおけるログインデータの送信元アドレスである。具体的には、送信元アドレスの種類はＩＰアドレスである。ＩＰはＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌの略称である。
【００７４】
アドレステーブル２９３Ｒは、「Ｒｅｄ」という試行識別子用のアドレステーブル２９３である。アドレステーブル２９３Ｒは、「Ｒｅｄ」がログイン識別子として使用されたログインが４回失敗したことを示している。また、アドレステーブル２９３Ｒは、失敗したログインそれぞれにおける送信元アドレス（試行元アドレス）を示している。
アドレステーブル２９３Ｙは、「Ｙｅｌｌｏｗ」という試行識別子用のアドレステーブル２９３である。アドレステーブル２９３Ｙは、「Ｙｅｌｌｏｗ」がログイン識別子として使用されたログインが３回失敗したことを示している。また、アドレステーブル２９３Ｙは、失敗したログインそれぞれにおける送信元アドレス（試行元アドレス）を示している。
アドレステーブル２９３Ｘは、「Ｘ」という試行識別子用のアドレステーブル２９３である。アドレステーブル２９３Ｘは、「Ｘ」がログイン識別子として使用されたログインが１回失敗したことを示している。また、アドレステーブル２９３Ｘは、失敗したログインにおける送信元アドレス（試行元アドレス）を示している。
【００７５】
＊＊＊動作の説明＊＊＊
図１５に基づいて、認証制御方法を説明する。
ステップＳ２０１において、受付部２１０は、ログインデータを受信する。ログインデータは、ログイン識別子とログインパスワードとを含む。
ステップＳ２０１の処理は、実施の形態１におけるステップＳ１０１の処理と同じである。
【００７６】
ステップＳ２１０において、アドレス監視部２５１は、アドレス監視処理を行う。
アドレス監視処理（Ｓ２１０）において、アドレス監視部２５１は、受信されたログインデータの送信元アドレスが監視対象アドレスと同じアドレスである場合に攻撃通知を行う。また、アドレス監視部２５１は、受信されたログインデータの送信元アドレスが監視対象アドレスと同じアドレスである場合にアカウントロック画面を表示させる。
【００７７】
図１６に基づいて、アドレス監視処理（Ｓ２１０）の手順を説明する。
アドレス監視処理（Ｓ２１０）において、監視対象リストが使用される。
監視対象リストは、１つ以上の監視対象アドレスを示すリストであり、記憶部２９０に記憶される。
監視対象アドレスは、監視の対象となる送信元アドレスである。
【００７８】
ステップＳ２１１において、監視対象リストに監視対象アドレスが１つも登録されていない場合、アドレス監視処理（Ｓ２１０）は終了する。
監視対象リストに１つ以上の監視対象アドレスが登録されている場合、アドレス監視部２５１は以下のように動作する。
まず、アドレス監視部２５１は、ログインデータのヘッダから送信元アドレスを抽出する。
そして、アドレス監視部２５１は、送信元アドレスをそれぞれの監視対象アドレスと比較することによって、送信元アドレスがいずれかの監視対象アドレスと同じアドレスであるか判定する。
送信元アドレスがいずれかの監視対象アドレスと同じアドレスである場合、処理はステップＳ２１２に進む。
送信元アドレスがいずれの監視対象アドレスとも異なるアドレスである場合、アドレス監視処理（Ｓ２１０）は終了する。
【００７９】
ステップＳ２１２において、アドレス監視部２５１は、攻撃通知を行う。
攻撃通知は、攻撃の可能性が高いアドレスからのアクセスがあったことを通知することである。言い換えると、攻撃通知は、攻撃者によって試行されたと推定されるログインの発生を通知することである。
具体的には、アドレス監視部２５１は、攻撃通知メッセージを管理者のアドレス宛てに送信する。または、アドレス監視部２５１は、攻撃通知メッセージを監視装置へ送信する。管理者のアドレスおよび監視装置のアドレスは記憶部２９０に予め登録されている。
【００８０】
ステップＳ２１３において、アドレス監視部２５１は、アカウントロック画面をユーザ端末１１０に表示させるために、アカウントロックを応答する。
ステップＳ２１３の処理は、実施の形態１におけるステップＳ１３４の処理と同じである（図９参照）。
ステップＳ２１３の後、アドレス監視処理（Ｓ２１０）は終了する。
【００８１】
図１５に戻り、アドレス監視処理（Ｓ２１０）の後の処理を説明する。
アドレス監視処理（Ｓ２１０）において攻撃通知が行われた場合、処理は終了する。
アドレス監視処理（Ｓ２１０）において攻撃通知が行われなかった場合、処理はステップＳ２２０に進む。
【００８２】
ステップＳ２２０において、認証サーバ３００は、ログインデータに基づいて認証処理を行う。
認証処理（Ｓ２２０）は、実施の形態１における認証処理（Ｓ１１０）と同じである。
【００８３】
ステップＳ２３１において、ログイン判定部２２０は、認証結果に基づいてログイン許否を判定する。
ステップＳ２３１の処理は、実施の形態１におけるステップＳ１２１の処理と同じである（図７参照）。
ログインが許可される場合、処理はステップＳ２３２に進む。
ログインが許可されない場合、処理はステップＳ２３３に進む。
【００８４】
ステップＳ２３２において、応答部２４０は、ログイン成功を応答する。
ステップＳ２３２の処理は、実施の形態１におけるステップＳ１２２の処理と同じである（図７参照）。
【００８５】
ステップＳ２３３において、アドレス管理部２５２は、ログイン識別子と同じユーザ識別子用のアドレステーブル２９３にログインデータの送信元アドレスを登録する。
【００８６】
ステップＳ２４０において、アカウントロック部２３０は、認証結果に基づいてログイン失敗処理を行う。
ログイン失敗処理（Ｓ１３０）は、実施の形態１におけるログイン失敗処理（Ｓ１３０）と同じである。
【００８７】
但し、ステップＳ２４０において、アドレス監視部２５１は、非攻撃通知を行ってもよい。
非攻撃通知は、攻撃の可能性が低いアドレスからのアクセスがあったことを通知することである。言い換えると、非攻撃通知は、正規ユーザによって試行されたと推定されるログインの発生を通知することである。
非攻撃通知の方法は、ステップＳ２１２における攻撃通知の方法と同じである。
【００８８】
ステップＳ２５０において、アドレス決定部２５３は、アドレス決定処理を行う。
アドレス決定処理（Ｓ２５０）において、アドレス決定部２５３は次のように動作する。アドレス決定部２５３は、ログイン識別子と同じユーザ識別子を用いたログインの失敗回数が上限回数に達している場合に、ログイン識別子と同じユーザ識別子用のアドレステーブル２９３に基づいて監視対象アドレスを決定する。
【００８９】
図１７に基づいて、アドレス決定処理（Ｓ２５０）の手順を説明する。
ステップＳ２５１において、アドレス決定部２５３は、ログイン失敗処理（図１５のＳ２４０）で行われた応答の種類を判定する。
アカウントロックが応答された場合、処理はステップＳ２５２に進む。
アカウントロックが応答されなかった場合、つまり、認証失敗が応答された場合、アドレス決定処理（Ｓ２５０）は終了する。
【００９０】
ステップＳ２５２において、アドレス決定部２５３は、ログイン識別子と同じユーザ識別子用のアドレステーブル２９３を記憶部２９０から選択する。
そして、アドレス決定部２５３は、選択したアドレステーブル２９３に基づいて、ログインデータの送信元アドレスが監視条件を満たすか判定する。
例えば、アドレス決定部２５３は、選択したアドレステーブル２９３に含まれる試行元アドレスが全て同じであるか判定する。選択したアドレステーブル２９３に含まれる試行元アドレスが全て同じである場合、ログインデータの送信元アドレスは監視条件を満たす。
例えば、アドレス決定部２５３は、選択したアドレステーブル２９３から、規定回数数以上含まれる試行元アドレスまたは規定割合以上含まれる試行元アドレスを選択する。そして、アドレス決定部２５３は、ログインデータの送信元アドレスが、選択した試行元アドレスと同じであるか判定する。ログインデータの送信元アドレスが、選択した試行元アドレスと同じである場合、ログインデータの送信元アドレスは監視条件を満たす。
ログインデータの送信元アドレスが監視条件を満たす場合、処理はステップＳ２５３に進む。
ログインデータの送信元アドレスが監視条件を満たさない場合、アドレス決定処理（Ｓ２５０）は終了する。
【００９１】
ステップＳ２５３において、アドレス決定部２５３は、ログインデータの送信元アドレスを監視対象アドレスとして監視対象リストに登録する。
ステップＳ２５３の後、アドレス決定処理（Ｓ２５０）は終了する。
【００９２】
＊＊＊実施の形態２の効果＊＊＊
実施の形態１では、アカウントロック画面が表示されるのみであるため、認証が失敗したときのログインの試行者が正規ユーザと攻撃者とのいずれであるかが不明である。
実施の形態２では、送信元アドレスが固定のＩＰである攻撃者からＢＦ攻撃を行われた場合に、ＢＦ攻撃が行われたことを検知することが可能となる。
【００９３】
正規ユーザは自身のユーザ識別子が正しいと認識している。そのため、アカウントロックが発生した場合、正規ユーザは別の認証方法を利用してアカウントロックを解除しようとする、と考えられる。一方、アカウントロックが発生した場合、攻撃者は同じユーザ識別子によるログインの試行が無効であると考えて他のユーザ識別子に対してＢＦ攻撃を行う、と考えられる。
実施の形態２では、アカウントロック後もログインを試みる動作を検知することで、攻撃者と正規ユーザとを区別して攻撃者を検知することができる。
【００９４】
実施の形態３．
ログインの失敗回数の上限を動的に変更する形態について、主に実施の形態１と異なる点を図１８から図２１に基づいて説明する。
【００９５】
＊＊＊構成の説明＊＊＊
認証制御システム１００の構成は、実施の形態１における構成と同じである（図１参照）。
【００９６】
図１８に基づいて、ウェブサーバ２００の構成を説明する。
ウェブサーバ２００は、さらに、上限操作部２６０を備える。上限操作部２６０は、変更判定部２６１と上限変更部２６２とを備える。
認証制御プログラムは、さらに、上限操作部２６０としてコンピュータを機能させる。
【００９７】
＊＊＊動作の説明＊＊＊
認証制御方法における処理の流れは、実施の形態１と同じである（図７参照）。
但し、実在アカウント処理（Ｓ１３２）および仮想アカウント処理（Ｓ１３３）において、上限操作処理が実行される。
【００９８】
上限操作処理は、ログイン識別子の試行回数の上限（上限回数）を変更するための処理である。
上限操作処理において、変更判定部２６１は、変更条件を満たすか判定する。例えば、変更判定部２６１は、ユーザ識別子毎のログインの失敗回数または単位時間当たりのログインの試行回数に基づいて、変更条件を満たすか判定する。単位時間当たりのログインの試行回数は、単位時間当たりにログインデータ（ログイン識別子およびログインパスワード）が受け付けられた回数に相当する。
変更条件を満たす場合、上限変更部２６２は、ユーザ識別子毎のログインの失敗回数に基づいて、上限回数を変更する。
上限操作処理の詳細については後述する。
【００９９】
図１９に基づいて、実在アカウント処理（Ｓ１３２）を説明する。
ステップＳ１３２１において、ログイン判定部２２０は、ログイン識別子の試行回数を取得する。
ステップＳ１３２１は、実施の形態１において説明した通りである（図１０参照）。
【０１００】
ステップＳ１３２２において、ログイン判定部２２０は、ログイン識別子の試行回数が上限回数に達しているか判定する。
ステップＳ１３２２は、実施の形態１において説明した通りである（図１０参照）。
ログイン識別子の試行回数が上限に達している場合、処理はステップＳ１３２３に進む。
ログイン識別子の試行回数が上限に達していない場合、処理はステップＳ３００に進む。
【０１０１】
ステップＳ１３２３において、実在アカウントロック部２３１は、ログイン識別子に対応するロック状態フラグに「ロック中」を設定する。
ステップＳ１３２４において、実在アカウントロック部２３１は、アカウントロックを応答する。
ステップＳ１３２３およびステップＳ１３２４は、実施の形態１で説明した通りである（図１０参照）。
【０１０２】
ステップＳ３００において、上限操作部２６０は上限操作処理を行う。
上限操作処理（Ｓ３００）については後述する。
【０１０３】
上限操作処理（Ｓ３００）において上限回数が変更された場合、処理はステップＳ３１１に進む。
上限操作処理（Ｓ３００）において上限回数が変更されなかった場合、処理はステップＳ１３２５に進む。
【０１０４】
ステップＳ３１１において、ログイン判定部２２０は、ログイン識別子の試行回数が上限回数に達しているか判定する。
ステップＳ３１１の処理は、ステップＳ１３２２の処理と同じである。
ログイン識別子の試行回数が上限に達している場合、処理はステップＳ１３２３に進む。
ログイン識別子の試行回数が上限に達していない場合、処理はステップＳ１３２５に進む。
【０１０５】
ステップＳ１３２５において、応答部２４０は認証失敗を応答する。
ステップＳ１３２５は、実施の形態１において説明した通りである（図１０参照）。
【０１０６】
図２０に基づいて、仮想アカウント処理（Ｓ１３３）を説明する。
ステップＳ１３３１において、ログイン判定部２２０は、ログイン識別子の試行回数を取得する。
ステップＳ１３３１は、実施の形態１において説明した通りである（図１１参照）。
【０１０７】
ステップＳ１３３２において、ログイン判定部２２０は、ログイン識別子の試行回数が上限回数に達しているか判定する。
ステップＳ１３３２は、実施の形態１において説明した通りである（図１１参照）。
ログイン識別子の試行回数が上限回数に達している場合、処理はステップＳ１３３３に進む。
ログイン識別子の試行回数が上限回数に達していない場合、処理はステップＳ３００に進む。
【０１０８】
ステップＳ３００において、上限操作部２６０は上限操作処理を行う。
上限操作処理（Ｓ３００）については後述する。
【０１０９】
上限操作処理（Ｓ３００）において上限回数が変更された場合、処理はステップＳ３１２に進む。
上限操作処理（Ｓ３００）において上限回数が変更されなかった場合、処理はステップＳ１３３４に進む。
【０１１０】
ステップＳ３１２において、ログイン判定部２２０は、ログイン識別子の試行回数が上限回数に達しているか判定する。
ステップＳ３１２の処理は、ステップＳ１３３２の処理と同じである。
ログイン識別子の試行回数が上限回数に達している場合、処理はステップＳ１３３３に進む。
ログイン識別子の試行回数が上限回数に達していない場合、処理はステップＳ１３３４に進む。
【０１１１】
ステップＳ１３３４において、応答部２４０は認証失敗を応答する。
ステップＳ１３３４は、実施の形態１において説明した通りである（図１１参照）。
【０１１２】
図２１に基づいて、上限操作処理（Ｓ３００）を説明する。
ステップＳ３０１において、変更判定部２６１は、変更条件を満たすか判定する。
例えば、変更判定部２６１は、失敗ログイン管理ファイル２９１の中に試行回数が上限回数に達している試行識別子が存在するか判定する。試行回数が上限回数に達している試行識別子が存在する場合、変更条件を満たす。
【０１１３】
例えば、変更判定部２６１は、失敗ログイン管理ファイル２９１に基づいて、試行回数が上限回数に達していない試行識別子の数が閾値より多いか判定する。試行回数が上限回数に達していない試行識別子の数が閾値より多い場合、変更条件を満たす。
【０１１４】
例えば、変更判定部２６１は、単位時間当たりのログインの試行回数が閾値より多いか判定する。単位時間当たりのログインの試行回数が閾値より多い場合、変更条件を満たす。
【０１１５】
変更条件を満たす場合、処理はステップＳ３０２に進む。
変更条件を満たさない場合、上限回数は変更されず、上限操作処理（Ｓ３００）は終了する。
【０１１６】
ステップＳ３０２において、上限変更部２６２は、新たな上限回数を決定する。
例えば、上限変更部２６２は、ユーザ識別子毎のログインの失敗回数に基づいて、新たな上限回数を決定する。具体的には、上限変更部２６２は、失敗ログイン管理ファイル２９１に登録されている試行回数の平均を算出する。算出される平均が新たな上限回数となる。
【０１１７】
ステップＳ３０３において、上限変更部２６２は、既定の上限回数を新たな上限回数に変更する。
【０１１８】
上限操作処理（Ｓ３００）について補足する。
上限回数が１回になって頻繁にアクセスロックが発生してしまうことを防ぐためには、上限回数のリセットが必要となる。
例えば、ウェブサーバ２００に管理部を備える。そして、管理部は、認証成功時のログイン識別子を失敗ログイン管理ファイル２９１から削除する。または、管理部は、定期的に、失敗ログイン管理ファイル２９１の中の試行回数をリセットする。管理部は、上限回数をリセットするためのその他の処理を行ってもよい。これらの処理は、人手によって行われてもよい。
【０１１９】
＊＊＊実施の形態３の効果＊＊＊
実施の形態１および実施の形態２では、攻撃者にアカウントロックの上限回数が判明してしまう恐れがある。アカウントロックの上限回数が判明すると、攻撃者は、上限回数に満たない回数でログイン試行を行うことができる。この場合、管理者は、攻撃されていることに気付かない可能性がある。
実施の形態３では、アカウントロックの上限回数が動的に変更される。これにより、アカウントロックの上限回数が判明し難くなる。そのため、攻撃者は、上限回数に満たない回数でログイン試行を行うことが困難となる。
【０１２０】
＊＊＊他の構成＊＊＊
実施の形態３において実施の形態２を適用してもよい。つまり、実施の形態３において、ウェブサーバ２００は攻撃判定部２５０を備えてもよい。
【０１２１】
実施の形態４．
認証制御システム１００の構成例について、主に実施の形態１から実施の形態３と異なる点を図２２に基づいて説明する。
【０１２２】
認証制御システム１００（図１参照）において、ウェブサーバ２００と認証サーバ３００とは、アプライアンス製品などに適用する場合、１つの筐体の中に搭載されてもよい。
また、認証制御システム１００は、ウェブサーバ２００と認証サーバ３００との組の代わりに、１つの認証制御装置を備えてもよい。
【０１２３】
認証制御システム１００は、ウェブサーバ２００の代わりに、複数の装置を備えてもよい。
【０１２４】
図２２に示すように、認証制御システム１００は、ウェブサーバ２００の代わりに、ウェブサーバ４１０と認証制御装置４２０とを備えてもよい。
ウェブサーバ４１０は、ウェブサーバ２００と同様に各種のハードウェアを備えるコンピュータである。
認証制御装置４２０は、ウェブサーバ２００と同様に各種のハードウェアを備えるコンピュータである。
認証サーバ３００は、認証部３１０という要素を備える。認証サーバ３００の記憶装置には、アカウント管理ファイル３９１が記憶される。
ウェブサーバ４１０は、受付部２１０とログイン判定部２２０と応答部２４０といった要素を備える。
認証制御装置４２０は、アカウントロック部２３０という要素を備える。認証制御装置４２０の記憶装置には、失敗ログイン管理ファイル２９１およびログイン試行データ２９２などが記憶される。アカウントロック部２３０は、ウェブアプリケーションから切り離すことが可能である。
【０１２５】
＊＊＊実施の形態の補足＊＊＊
図２３に基づいて、ウェブサーバ２００のハードウェア構成を説明する。
ウェブサーバ２００は処理回路２０９を備える。
処理回路２０９は、受付部２１０とログイン判定部２２０とアカウントロック部２３０と応答部２４０と攻撃判定部２５０と上限操作部２６０とを実現するハードウェアである。
処理回路２０９は、専用のハードウェアであってもよいし、メモリ２０２に格納されるプログラムを実行するプロセッサ２０１であってもよい。
【０１２６】
処理回路２０９が専用のハードウェアである場合、処理回路２０９は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
ウェブサーバ２００は、処理回路２０９を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路２０９の役割を分担する。
【０１２７】
処理回路２０９において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０１２８】
このように、処理回路２０９はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１２９】
図２４に基づいて、認証サーバ３００のハードウェア構成を説明する。
認証サーバ３００は処理回路３０９を備える。
処理回路３０９は、認証部３１０を実現するハードウェアである。
処理回路３０９は、専用のハードウェアであってもよいし、メモリ３０２に格納されるプログラムを実行するプロセッサ３０１であってもよい。
【０１３０】
処理回路３０９が専用のハードウェアである場合、処理回路３０９は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
認証サーバ３００は、処理回路３０９を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路３０９の役割を分担する。
【０１３１】
処理回路３０９において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０１３２】
このように、処理回路３０９はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１３３】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【０１３４】
１００  認証制御システム、１０１  ネットワーク、１１０  ユーザ端末、２００  ウェブサーバ、２０１  プロセッサ、２０２  メモリ、２０３  補助記憶装置、２０４  入出力インタフェース、２０９  処理回路、２１０  受付部、２２０  ログイン判定部、２３０  アカウントロック部、２３１  実在アカウントロック部、２３２  仮想アカウントロック部、２４０  応答部、２５０  攻撃判定部、２５１  アドレス監視部、２５２  アドレス管理部、２５３  アドレス決定部、２６０  上限操作部、２６１  変更判定部、２６２  上限変更部、２９０  記憶部、２９１  失敗ログイン管理ファイル、２９２  ログイン試行データ、２９３  アドレステーブル、３００  認証サーバ、３０１  プロセッサ、３０２  メモリ、３０３  補助記憶装置、３０４  入出力インタフェース、３０９  処理回路、３１０  認証部、３１１  受付部、３１２  識別子判定部、３１３  ロック状態判定部、３１４  パスワード判定部、３１５  応答部、３９０  記憶部、３９１  アカウント管理ファイル、４１０  ウェブサーバ、４２０  認証制御装置。
【図１】
2020016985.tif 000003
【図２】
2020016985.tif 000004
【図３】
2020016985.tif 000005
【図４】
2020016985.tif 000006
【図５】
2020016985.tif 000007
【図６】
2020016985.tif 000008
【図７】
2020016985.tif 000009
【図８】
2020016985.tif 000010
【図９】
2020016985.tif 000011
【図１０】
2020016985.tif 000012
【図１１】
2020016985.tif 000013
【図１２】
2020016985.tif 000014
【図１３】
2020016985.tif 000015
【図１４】
2020016985.tif 000016
【図１５】
2020016985.tif 000017
【図１６】
2020016985.tif 000018
【図１７】
2020016985.tif 000019
【図１８】
2020016985.tif 000020
【図１９】
2020016985.tif 000021
【図２０】
2020016985.tif 000022
【図２１】
2020016985.tif 000023
【図２２】
2020016985.tif 000024
【図２３】
2020016985.tif 000025
【図２４】
2020016985.tif 000026
【国際調査報告】
2020016985.tif 000027
2020016985.tif 000028