(57)【要約】  送信部（２０８１０）は、固定値を送信する。受信部（２０８１１）は、固定値の送信先から、ユーザのパスワードと固定値とから得られるハッシュ値と、ユーザ識別情報とを受信する。不正アクセス管理部（２０８０９）は、受信部（２０８１１）により受信されたハッシュ値とユーザ識別情報との組み合わせを蓄積する。不正アクセス管理部（２０８０９）は、蓄積しているハッシュ値とユーザ識別情報との組み合わせにおいて、ハッシュ値が共通するユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する。
2020021608.tif 000002
【特許請求の範囲】
【請求項１】
固定値を送信する送信部と、
前記固定値の送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信する受信部と、
前記受信部により受信されたハッシュ値とユーザ識別情報との組み合わせを蓄積する組み合わせ蓄積部と、
前記組み合わせ蓄積部により蓄積されているハッシュ値とユーザ識別情報との組み合わせにおいて、ハッシュ値が共通するユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する判定部とを有するサーバ装置。
【請求項２】
前記判定部は、
ハッシュ値が共通するユーザ識別情報の個数が閾値以上である場合に、攻撃が発生していると判定する請求項１に記載のサーバ装置。
【請求項３】
前記組み合わせ蓄積部は、
前記受信部により受信されたハッシュ値とユーザ識別情報との組み合わせを受信時刻とともに蓄積し、
前記判定部は、
受信時刻が単位時間内に収まる、ハッシュ値が共通するユーザ識別情報の個数が閾値以上である場合に、攻撃が発生していると判定する請求項１に記載のサーバ装置。
【請求項４】
前記受信部は、
クライアント装置から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信し、
前記判定部は、
前記受信部により受信されたハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、前記クライアント装置による攻撃が発生しているか否かを判定する請求項１に記載のサーバ装置。
【請求項５】
前記受信部は、
前記固定値の送信先から、前記ハッシュ値と、前記ユーザ識別情報と、ユーザ認証に用いる認証情報とを受信し、
前記組み合わせ蓄積部は、
ユーザ認証に失敗した認証情報とともに前記受信部により受信されたハッシュ値とユーザ識別情報との組み合わせを蓄積する請求項１に記載のサーバ装置。
【請求項６】
前記判定部は、
リバースブルートフォース攻撃の有無又はパスワードスプレー攻撃の有無を判定する請求項１に記載のサーバ装置。
【請求項７】
コンピュータが、固定値を送信し、
前記コンピュータが、前記固定値の送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信し、
前記コンピュータが、受信されたハッシュ値とユーザ識別情報との組み合わせを蓄積し、
前記コンピュータが、蓄積されているハッシュ値とユーザ識別情報との組み合わせにおいて、ハッシュ値が共通するユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する攻撃判定方法。
【請求項８】
固定値を送信する送信処理と、
前記固定値の送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信する受信処理と、
前記受信処理により受信されたハッシュ値とユーザ識別情報との組み合わせを蓄積する組み合わせ蓄積処理と、
前記組み合わせ蓄積処理により蓄積されているハッシュ値とユーザ識別情報との組み合わせにおいて、ハッシュ値が共通するユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する判定処理とをコンピュータに実行させる攻撃判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ認証に関する。
【背景技術】
【０００２】
ユーザ識別情報（ユーザＩＤ等）とパスワードによるユーザ認証の方式に、チャレンジ・アンド・レスポンス方式がある。チャレンジ・アンド・レスポンス方式では、サーバ装置が、「チャレンジ」と呼ばれる乱数を、クライアント装置に送信する。そして、クライアント装置が、チャレンジとパスワードとのハッシュ値を、「レスポンス」としてサーバ装置に送信する。チャレンジ・アンド・レスポンス方式では、サーバ装置が、予め登録されているパスワードと、送信したチャレンジとのハッシュ値を、クライアント装置からのレスポンスと比較し、両者が同一であれば、正規のユーザとして認証する。【０００３】
チャレンジ・アンド・レスポンス方式によるユーザ認証に対し、パスワードを破ることを目的とした攻撃がある。このような攻撃には、総当たり（ブルートフォース）による攻撃、逆総当たり（リバースブルートフォース）による攻撃、リバースブルートフォース攻撃に似たパスワードスプレー攻撃等がある。
ブルートフォース攻撃は、ユーザ識別情報を固定して、パスワードを総当たり的に変更して、ユーザ認証を試行する攻撃方法である。
一方、リバースブルートフォース攻撃及びパスワードスプレー攻撃は、パスワードを固定して、ユーザ識別情報を総当たり的に、若しくは選択的に変更して、ユーザ認証を試行する攻撃方法である。【０００４】
ブルートフォース攻撃に対しては、同一のユーザ識別情報で、連続して一定回数以上、ユーザ認証の試行に失敗した場合には、当該ユーザ識別情報のアカウントをロックし、使用できなくする、技術的な対策がある。サーバ装置が、ユーザ識別情報毎の認証試行を記録することにより不正な認証試行回数を管理して、アカウントのロックを行うことができる。本対策技術は、チャレンジ・アンド・レスポンス方式を始めとし、様々な認証方式に、適用することができる。【０００５】
一方、チャレンジ・アンド・レスポンス方式のユーザ認証への、リバースブルートフォース攻撃及びパスワードスプレー攻撃に対しては、ブルートフォース攻撃への対策と同じような対策を行うことができない。これは、チャレンジ・アンド・レスポンス方式では、毎回チャレンジ（乱数）が異なるため、同じパスワードと乱数とのハッシュ値であっても、毎回ハッシュ値（レスポンス）が異なる。そのため、同一のパスワードで、連続して一定回数以上、ユーザ認証の試行に失敗していることを検知することができず、対策を行うことができない。【０００６】
そのため、チャレンジ・アンド・レスポンス方式へのリバースブルートフォース攻撃又はパスワードスプレー攻撃への対策は、次のようなものになる。
第一は、ユーザ識別情報及びパスワードを、予測不能なものにする、方法である。しかし、この方法では、ユーザ識別情報及びパスワードが複雑になり、ユーザの利便性が低下する。
第二は、ＷＡＦ（Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｉｒｅｗａｌｌ）等で、同一のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスからのアクセスで、連続して認証エラーが発生した場合には、当該ＩＰアドレスからのアクセスをブロックする、方法である。しかし、この方法では、ｂｏｔネットからの分散した攻撃（異なるＩＰアドレスからの攻撃）には対応できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１６９０９号公報
【特許文献２】特開２０１１−１３５４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の第一の方法では、ユーザ識別情報及びパスワードを予測不能なものにすることのよって、ユーザの利便性が下がり、運用が困難である。
また、第二の方法では、ｂｏｔネットなどからの、チャレンジ・アンド・レスポンス方式のユーザ認証に対するリバースブルートフォース攻撃及びパスワードスプレー攻撃を検知し、対策を行うことができない。【０００９】
特許文献１では、生体認証のリトライ回数を適切に制御可能な生体認証技術が述べられている。より具体的には、特許文献１の技術では、認証エラー時のユーザ識別情報と、生体特徴情報とが記録される。そして、類似する生体特徴情報によるユーザ認証試行をグルーピングすることで、異なるユーザ識別情報によるユーザ認証の試行回数が、閾値を超えている場合に、認証のリトライがブロックされる。
特許文献１の技術は、ユーザ認証で渡される生体特徴情報に類似性があることを前提としている。そのため、特許文献１の技術は、生体特徴情報に相当するパスワード（レスポンス）間の類似性がハッシュ処理によりなくなる、チャレンジ・アンド・レスポンス方式には適用できない。【００１０】
特許文献２では、ハッシュ値の衝突回避の向上を図った認証技術が述べられている。特許文献２の技術では、異なる２つ以上の固定値がチャレンジとして送信され、固定値毎のパスワードと固定値とのハッシュ値が、レスポンスとして返信される。特許文献２は、全てとのハッシュ値が衝突する可能性は０に近いため、ハッシュ値の衝突を回避することが可能であると述べている。しかしながら、特許文献２の技術では、リバースブルートフォース攻撃及びパスワードスプレー攻撃への対策は考えられていない。このため、特許文献２の技術をリバースブルートフォース攻撃及びパスワードスプレー攻撃への対策として用いることはできない。【００１１】
本発明は、このような点に鑑み、リバースブルートフォース攻撃及びパスワードスプレー攻撃の発生を有効に検知できる構成を得ることを主な目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るサーバ装置は、
固定値を送信する送信部と、
前記固定値の送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信する受信部と、
前記受信部により受信されたハッシュ値とユーザ識別情報との組み合わせを蓄積する組み合わせ蓄積部と、
前記組み合わせ蓄積部により蓄積されているハッシュ値とユーザ識別情報との組み合わせにおいて、ハッシュ値が共通するユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する判定部とを有する。
【発明の効果】
【００１３】
本発明によれば、リバースブルートフォース攻撃及びパスワードスプレー攻撃の発生を有効に検知することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係るサーバ装置のハードウェア構成例を示す図。
【図３】実施の形態１に係るサーバ装置の機能構成例を示す図。
【図４】実施の形態１に係る認証情報テーブルの例を示す図。
【図５】実施の形態１に係る乱数管理テーブルの例を示す図。
【図６】実施の形態１に係る不正アクセスリストの例を示す図。
【図７】実施の形態１に係る固定値生成処理を示すフローチャート。
【図８】実施の形態１に係る通信シーケンスの例を示す図。
【図９】実施の形態１に係るサーバ装置の動作例を示すフローチャート。
【図１０】実施の形態１に係るサーバ装置の動作例を示すフローチャート。
【図１１】実施の形態１に係るユーザ認証処理を示すフローチャート。
【図１２】実施の形態２に係る不正アクセスリストの例を示す図。
【図１３】実施の形態２に係るサーバ装置の動作例を示すフローチャート。
【図１４】実施の形態２に係るサーバ装置の動作例を示すフローチャート。
【図１５】実施の形態２に係るサーバ装置の動作例を示すフローチャート。
【図１６】実施の形態２に係るアクセス頻度確認処理を示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中において、同一または相当する部分には、同一の符号を付す。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。また、これらの実施の形態は、本発明の好適な態様を説明するためのものであり、ここで示すものに限定するものではない。
【００１６】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係るシステムの構成例を示す。
本実施の形態では、複数のクライアント装置１０２ａ、１０２ｂ、１０２ｃ・・・は、インターネットなどのネットワーク１０３を介してサーバ装置１０１と接続されている。
以下、複数のクライアント装置１０２ａ、１０２ｂ、１０２ｃ・・・を総称して、クライアント装置１０２と呼ぶ。
クライアント装置１０２は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、スマートフォン等である。
クライアント装置１０２は、サーバ装置１０１に接続し、サーバ装置１０１によって提供されるサービスを受ける。クライアント装置１０２は、ＰＣ、スマートフォンのような独立した機器ではなく、サーバ装置１０１と同一の機器上に存在してもよい。
【００１７】
ここで、本実施の形態に係るユーザ認証方法の概要を説明する。
【００１８】
始めに、サーバ装置１０１は、乱数とともに、固定値をチャレンジとしてクライアント装置１０２に送信する。クライアント装置１０２は、乱数とパスワードとのハッシュ値、及び固定値とパスワードとのハッシュ値をサーバ装置１０１に返す。
次に、サーバ装置１０１は、クライアント装置１０２から受信した固定値とパスワードとのハッシュ値に基づき、過去に、同一のハッシュ値と、異なるユーザ識別情報（以下、単に識別情報ともいう）との組み合わせで、ユーザ認証の試行に失敗していないかを、確認する。
ユーザ認証の試行失敗の回数が閾値を超えている場合には、サーバ装置１０１は、リバースブルートフォース攻撃又はパスワードスプレー攻撃が行われている、と判定する。
このような方法により、本実施の形態では、チャレンジ・アンド・レスポンス方式のユーザ認証におけるリバースブルートフォース攻撃及びパスワードスプレー攻撃を検知することができ、これらの攻撃に対する対策を行うことが可能となる。
なお、サーバ装置１０１により行われる動作は、攻撃判定方法及び攻撃判定プログラムに相当する。
【００１９】
図２は、サーバ装置１０１のハードウェア構成例を示す。
サーバ装置１０１はコンピュータである。
サーバ装置１０１では、ハードウェアとして、バス２０７に、プロセッサ２０１、主記憶装置２０２、補助記憶装置２０３、入出力装置２０４及び通信装置２０５が接続されている。
プロセッサ２０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
主記憶装置２０２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
補助記憶装置２０３は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
入出力装置２０４は、例えば、キーボード、マウス及びディスプレイである。
通信装置２０５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１０３に接続されている。
サーバ装置１０１は、通信装置２０５を用いて、ネットワーク１０３に接続されたクライアント装置１０２と通信を行い、リモート接続サービスやＷｅｂアプリケーションサービスなどをクライアント装置１０２に提供する。
【００２０】
図３は、サーバ装置１０１の機能構成例を示す。
【００２１】
サービス提供部２０６は、クライアント装置１０２にサービスを提供する。サービス提供部２０６により提供されるサービスの種類は問わない。
サービス提供部２０６は、例えば、プログラムにより実現される。より具体的には、サービス提供部２０６は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
サービス提供部２０６は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェアにより実現されてもよい。
【００２２】
ユーザ認証部２０８は、クライアント装置１０２を利用するユーザが、ネットワーク１０３を介して、サービス提供部２０６へアクセスする際に、当該ユーザについての認証を行う。また、ユーザ認証部２０８は、ユーザ認証とともに、リバースブルートフォース攻撃又はパスワードスプレー攻撃が行われていることを検知する。
なお、以下では、リバースブルートフォース攻撃及びパスワードスプレー攻撃を、まとめて「攻撃」という。
【００２３】
ユーザ認証装置２０８は、固定値生成部２０８０１、固定値記憶部２０８０２、認証情報管理部２０８０３、乱数生成部２０８０４、乱数管理部２０８０５、ハッシュ値算出部２０８０６、ハッシュ値比較部２０８０７、認証情報ＤＢ２０８０８、不正アクセス管理部２０８０９、送信部２０８１０、及び受信部２０８１１で構成される。
【００２４】
固定値生成部２０８０１は、後述する固定値を生成する。
固定値生成部２０８０１は、例えば、プログラムにより実現される。より具体的には、固定値生成部２０８０１は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
固定値生成部２０８０１は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００２５】
固定値記憶部２０８０２は、固定値生成部２０８０１によって生成された固定値を記憶する。
固定値記憶部２０８０２は、主記憶装置２０２又は補助記憶装置２０３により実現される。
また、固定値記憶部２０８０２は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００２６】
認証情報管理部２０８０３は、後述の認証情報ＤＢ２０８０８に登録されるユーザ識別情報３０２ａ、３０２ｂ・・・、及びパスワード３０３ａ、３０３ｂ・・・の対を、管理する。
認証情報管理部２０８０３は、例えば、プログラムにより実現される。より具体的には、認証情報管理部２０８０３は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、認証情報管理部２０８０３は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００２７】
乱数生成部２０８０４は、後述する乱数を生成する。
乱数生成部２０８０４は、例えば、プログラムにより実現される。より具体的には、乱数生成部２０８０４は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、乱数生成部２０８０４は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００２８】
乱数管理部２０８０５は、乱数生成部２０８０４で生成された乱数４０３ａ、４０３ｂ・・・を、ユーザからのアクセス要求（セッション４０２ａ、４０２ｂ・・・）毎に管理する。
乱数管理部２０８０５は、例えば、プログラムにより実現される。より具体的には、乱数管理部２０８０５は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、乱数管理部２０８０５は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００２９】
ハッシュ値算出部２０８０６は、固定値記憶部２０８０２に記憶された固定値や、乱数管理部２０８０５によって管理される乱数４０３ａ、４０３ｂ・・・と、認証情報管理部２０８０３によって管理されるパスワード３０３ａ、３０３ｂ・・・とのハッシュ値を算出する。
ハッシュ値算出部２０８０６は、例えば、プログラムにより実現される。より具体的には、ハッシュ値算出部２０８０６は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、ハッシュ値算出部２０８０６は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００３０】
ハッシュ値比較部２０８０７は、ハッシュ値算出部２０８０６によって算出されるハッシュ値と、クライアント装置１０２からネットワーク１０３経由でサービス提供部２０６へ送信されてくるハッシュ値を比較する。
ハッシュ値比較部２０８０７は、例えば、プログラムにより実現される。より具体的には、ハッシュ値比較部２０８０７は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、ハッシュ値比較部２０８０７は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００３１】
認証情報ＤＢ２０８０８は、ユーザ識別情報３０２ａ、３０２ｂ・・・、及びパスワード３０３ａ、３０３ｂ・・・の対からなる認証情報テーブル３０１を保有及び管理する。
認証情報ＤＢ２０８０８は、例えば、プログラムにより実現される。より具体的には、認証情報ＤＢ２０８０８は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、認証情報ＤＢ２０８０８は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
【００３２】
不正アクセス管理部２０８０９は、クライアント装置１０２から送信されてくる固定値とパスワードとのハッシュ値５０２ａ、５０２ｂ・・・とユーザ識別情報５０３ａ、５０３ｂ・・・からなる不正アクセスリスト５０１を保有し、認証エラーが発生した不正アクセスを管理する。つまり、不正アクセス管理部２０８０９は、ハッシュ値とユーザ識別情報との組み合わせを不正アクセスリスト５０１として蓄積する。
また、不正アクセス管理部２０８０９は、不正アクセスリスト５０１を基に、過去に、同じ固定値とパスワードとのハッシュ値５０２ａ、５０２ｂ・・・と、異なるユーザ識別情報５０３ａ、５０３ｂ・・・でのアクセスが、規定回数以上発生しているかを確認し、攻撃を検知する。つまり、不正アクセス管理部２０８０９は、不正アクセスリスト５０１で蓄積されているハッシュ値とユーザ識別情報との組み合わせにおいて、ハッシュ値が共通するユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する。
不正アクセス管理部２０８０９は、例えば、プログラムにより実現される。より具体的には、不正アクセス管理部２０８０９は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、不正アクセス管理部２０８０９は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
不正アクセス管理部２０８０９は、組み合わせ蓄積部及び判定部に相当する。また、不正アクセス管理部２０８０９により行われる処理は、組み合わせ蓄積処理及び判定処理に相当する。
【００３３】
送信部２０８１０は、受信部２０８１１がクライアント装置１０２からのアクセス要求を受信した際に、固定値とチャレンジ値（乱数）とをクライアント装置１０２に送信する。
送信部２０８１０は、例えば、プログラムにより実現される。より具体的には、送信部２０８１０は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、送信部２０８１０は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
送信部２０８１０により行われる処理は、送信処理に相当する。
【００３４】
受信部２０８１１は、クライアント装置１０２からアクセス要求を受信する。また、受信部２０８１１は、クライアント装置１０２から、ユーザ識別情報、固定値とパスワードとのハッシュ値、認証情報たるレスポンス（乱数とパスワードとのハッシュ値）を受信する。
受信部２０８１１は、例えば、プログラムにより実現される。より具体的には、受信部２０８１１は、プロセッサ２０１が、主記憶装置２０２にロードされたプログラムを実行することにより実現される。
また、受信部２０８１１は、ＬＳＩ、ＡＳＩＣ等のハードウェアにより実現されてもよい。
受信部２０８１１により行われる処理は、受信処理に相当する。
【００３５】
前述のように、固定値記憶部２０８０２を除くユーザ認証部２０８の構成要素及びサービス提供部２０６は、プログラムにより実現される。
当該プログラムは、補助記憶装置２０３に記憶されており、補助記憶装置２０３から主記憶装置２０２にロードされる。そして、プロセッサ２０１が当該プログラムを実行する。
図２では、プロセッサ２０１がユーザ認証部２０８（固定値記憶部２０８０２を除く）及びサービス提供部２０６の機能を実現するプログラムを実行している状態を模式的に表している。
【００３６】
図４は、認証情報ＤＢ２０８０８によって保有及び管理される認証情報テーブル３０１の例を示す。
認証情報テーブル３０１は、正規ユーザのユーザ識別情報３０２ａ、３０２ｂ・・・、及びユーザ識別情報３０２ａ、３０２ｂ・・・に対応するパスワード３０３ａ、３０３ｂ・・・の対からなる。
以下、複数のユーザ識別情報３０２ａ、３０２ｂ・・・を総称して、ユーザ識別情報３０２と呼ぶ。また、複数のパスワード３０３ａ、３０３ｂ・・・を総称して、パスワード３０３と呼ぶ。
ユーザ識別情報３０２とパスワード３０３は、正規ユーザがサービス提供部２０６の提供サービスを利用するに先立ち作成される。そして、作成されたユーザ識別情報３０２とパスワード３０３は、認証情報テーブル３０１に登録される。
認証情報テーブル３０１は、主記憶装置２０２又は補助記憶装置２０３で記憶される。また、認証情報テーブル３０１は、ＬＳＩ、ＡＳＩＣ等に内蔵される記憶装置で記憶されていてもよい。
【００３７】
図５は、乱数管理部２０８０５によって保有及び管理される、乱数管理テーブル４０１の例を示す。
乱数管理テーブル４０１には、クライアント装置１０２からのアクセス要求（セッション４０２ａ、４０２ｂ・・・）毎に、乱数生成部２０８０４で生成された乱数４０３ａ、４０３ｂ・・・が登録されている。
以下、複数のセッション４０２ａ、４０２ｂ・・・を総称して、セッション４０２と呼ぶ。また、複数の乱数４０３ａ、４０３ｂ・・・を総称して乱数４０３と呼ぶ。
乱数管理テーブル４０１は、主記憶装置２０２又は補助記憶装置２０３で記憶される。また、乱数管理テーブル４０１は、ＬＳＩ、ＡＳＩＣ等に内蔵される記憶装置で記憶されていてもよい。
【００３８】
図６は、不正アクセス管理部２０８０９によって保有及び管理される、不正アクセスリスト５０１の例を示す。
不正アクセスリスト５０１には、クライアント装置１０２からの不正なアクセスで使用された、固定値とパスワードとのハッシュ値５０２ａ、５０２ｂ・・・、及びユーザ識別情報５０３ａ、５０３ｂ・・・が登録される。
以下、固定値とパスワードとの複数のハッシュ値５０２ａ、５０２ｂ・・・を総称して、固定値とパスワードとのハッシュ値５０２と呼ぶ。また、複数のユーザ識別情報５０３ａ、５０３ｂ・・・を総称して、ユーザ識別情報５０３と呼ぶ。
不正アクセスリスト５０１には、一つの固定値とパスワードとのハッシュ値５０２（例えば、ハッシュ値＿α）に対し、複数のユーザ識別情報５０３（ユーザ識別情報＿Ｉ、ユーザ識別情報＿ＩＩ・・・）が登録される。不正アクセスリスト５０１には、有効な固定値とパスワードとのハッシュ値５０２や、有効なユーザ識別情報５０３も登録されることがある。
不正アクセスリスト５０１は、主記憶装置２０２又は補助記憶装置２０３で記憶される。また、不正アクセスリスト５０１は、ＬＳＩ、ＡＳＩＣ等に内蔵される記憶装置で記憶されていてもよい。
【００３９】
＊＊＊動作の説明＊＊＊
次に、図７〜図１１を参照して、サーバ装置１０１の動作例を説明する。
図７は、固定値生成処理を示す。図８は、システム全体の通信シーケンスを示す。図９及び図１０は、サーバ装置１０１の動作例を示す。図１１は、ユーザ認証処理を示す。
【００４０】
先ず、図７を用いて、固定値生成処理を説明する。
【００４１】
まず、サーバ装置１０１の固定値生成部２０８０１は、起動時又は定期的に、固定値を生成する（ステップＳ６０１）。
次に、固定値生成部２０８０１は、生成した固定値を固定値記憶部２０８０２に保存する（ステップＳ６０２）。
その後、サーバ装置１０１の不正アクセス管理部２０８０９が、不正アクセスリスト５０１をオールクリアする（ステップＳ６０３）。
固定値記憶部２０８０２に保存された固定値は、ユーザ認証部２０８が処理を終了するまで、もしくは一定期間が経過するまで、ユーザ認証部２０８で使用される。
【００４２】
次に、図８、図９及び図１０を用いて、本実施の形態に係る通信シーケンス及びサーバ装置１０１の動作例を説明する。
【００４３】
まず、ユーザ７０１は、サーバ装置１０１のサービス提供部２０６が提供するサービスへアクセスするため、クライアント装置１０２からアクセス要求を行う（ステップＳ７０２）。
ユーザ７０１からのアクセス要求を受けたクライアント装置１０２は、サーバ装置１０１へ、アクセス要求を送信する（ステップＳ７０３）。
【００４４】
サーバ装置１０１では、受信部２０８１１が、通信装置２０５を介して、クライアント装置１０２からのアクセス要求を受信する（ステップＳ８０１）。
そして、受信部２０８１１は、アクセス要求（セッション４０２）を乱数生成部２０８０４に出力する。
乱数生成部２０８０４は、乱数４０１（チャレンジ）を生成する（ステップＳ８０２）。
次に、乱数生成部２０８０４は、セッション４０２と生成した乱数４０１（チャレンジ）の対を、乱数管理部２０８０５に渡す。
乱数管理部２０８０５は、セッション４０２と乱数４０１（チャレンジ）の対を乱数管理テーブル４０１に登録する（ステップＳ８０３）。
【００４５】
更に、乱数管理部２０８０５は、固定値記憶部２０８０２に保存されている固定値と、生成した乱数４０１（チャレンジ）を、送信部２０８１０に出力する。
送信部２０８１０は、通信装置２０５を介して、固定値と乱数４０１（チャレンジ）を、クライアント装置１０２へ送信する（ステップＳ８０４）。
【００４６】
固定値と乱数４０１（チャレンジ）を受信したクライアント装置１０２は、ユーザ７０１によって入力（ステップＳ７０４）されるユーザ識別情報３０２とパスワード３０３を受け取る。
次に、クライアント装置１０２は、ユーザによって入力されたパスワード３０３と、サーバ装置１０１から受信した固定値と乱数４０１（チャレンジ）とを用い、固定値とパスワード３０３とのハッシュ値５０２、及び乱数４０１（チャレンジ）とパスワード３０３とのハッシュ値（レスポンス）を算出する（ステップＳ７０５）。
その後、クライアント装置１０２は、ユーザによって入力（ステップＳ７０４）されたユーザ識別情報３０２、固定値とパスワード３０３とのハッシュ値５０２、及び乱数４０１（チャレンジ）とパスワード３０３とのハッシュ値（レスポンス）を、サーバ装置１０１へ送信する（ステップＳ７０６）。
【００４７】
サーバ装置１０１では、受信部２０８１１が通信装置２０５を介して、ユーザ識別情報３０２、固定値とパスワード３０３とのハッシュ値５０２、及び乱数４０１（チャレンジ）とパスワード３０３とのハッシュ値（レスポンス）を受信する（ステップＳ８０５）。
そして、受信部２０８１１は、ユーザ識別情報３０２、固定値とパスワード３０３とのハッシュ値５０２、及び乱数４０１（チャレンジ）とパスワード３０３とのハッシュ値（レスポンス）を不正アクセス管理部２０８０９に出力する。
不正アクセス管理部２０８０９は、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２が、既に不正アクセスリスト５０１に登録されており、かつユーザ識別情報５０１の登録数が、閾値以上になっているか否か、を判定する（ステップＳ８０６）。
【００４８】
ユーザ識別情報５０１の登録数が、閾値以上である場合（ステップＳ８０６でＹＥＳ）、不正アクセス管理部２０８０９は、リバースブルートフォース攻撃又はパスワードスプレー攻撃が発生していると判定する（ステップＳ８０７）。
つまり、不正アクセス管理部２０８０９は、受信部２０８１１により受信されたハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を不正アクセスリスト５０１において計数し、計数結果に基づき、クライアント装置１０２による攻撃が発生しているか否かを判定する。
そして、不正アクセス管理部２０８０９は、サービス提供部２０６に、攻撃の発生を通知する。通知を受けたサービス提供部２０６は、攻撃に対する対策を行う（ステップＳ８０８）。リバースブルートフォース対策又はパスワードスプレー対策の内容は、提供するサービスによって異なるため、本明細書では言及しない。
【００４９】
ユーザ識別情報５０１の登録数が、閾値未満である場合（ステップＳ８０６でＮＯ）、不正アクセス管理部２０８０９は、ユーザ認証をハッシュ値算出部２０８０６に指示する。
ハッシュ値比較部２０８０７は、ユーザ認証を行う（ステップＳ８０９）。
【００５０】
ここで、図１１を用いて、ステップＳ８０９のユーザ認証処理の詳細を説明する。
【００５１】
まず、ハッシュ値算出部２０８０６は、認証情報管理部２０８０３が管理する認証情報ＤＢ２０８０８の認証情報テーブル３０１から、クライアント装置１０２からのユーザ識別情報３０２に対応するパスワード３０３を取得する（ステップＳ９０１）。
次に、ハッシュ値算出部２０８０６は、乱数管理部２０８０５が管理する乱数管理テーブル４０１から、クライアント装置１０２からのアクセス要求（セッション４０２）に対応する乱数４０３を取得する（ステップＳ９０２）。
更に、ハッシュ値算出部２０８０６は、固定値記憶部２０８０１に保存された固定値を取得し、ステップＳ９０１で取得したパスワード３０３と固定値とのハッシュ値を算出する（ステップＳ９０３）。
また、ハッシュ値算出部２０８０６は、ステップＳ９０２で取得した乱数４０３と、ステップＳ９０１で取得したパスワード３０３とのハッシュ値を算出する（ステップＳ９０４）。
その後、ハッシュ値比較部２０８０７が、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２と、ハッシュ値算出部２０８０６よって算出された固定値とパスワードとのハッシュ値とを比較し、両者が一致するか否かを検証する（ステップＳ９０５）。
更に、ハッシュ値比較部２０８０７は、クライアント装置１０２からの乱数４０１（チャレンジ）とパスワード３０３とのハッシュ値（レスポンス）と、ハッシュ値算出部２０８０６よって算出された乱数４０３とパスワード３０３とのハッシュ値とを比較し、両者が一致するか否かを検証する（ステップＳ９０６）。
ユーザ認証装置２０８は、固定値とパスワード３０３とのハッシュ値、及び乱数４０１とパスワード３０３とのハッシュ値が、共に一致する場合（ステップＳ９０７でＹＥＳ）には、ハッシュ値算出部２０８０６は、ユーザ認証成功と判定する（ステップＳ９０８）。
一方、少なくともいずれかが一致しない場合（ステップＳ９０７でＮＯ）には、ハッシュ値算出部２０８０６は、ユーザ認証失敗と判定する（ステップＳ９０９）。
【００５２】
不正アクセス管理部２０８０９は、ステップＳ８０９のユーザ認証が成功した場合（ステップＳ８１０でＹＥＳ）は、不正アクセスリスト５０１から、固定値とパスワード３０３とのハッシュ値５０２に該当するユーザ識別情報５０３を削除する（ステップＳ８１１）。
その後、送信部２０８１０が、ユーザ認証の成功を通知するメッセージを、通信装置２０５を介して、クライアント装置１０２へ送信する（ステップＳ８１４）。
【００５３】
ユーザ認証が失敗している場合（ステップＳ８１０でＮＯ）は、不正アクセス管理部２０８０９は、不正アクセスリスト５０１を確認し、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２に該当するユーザ識別情報５０３に、クライアント装置１０２からのユーザ識別情報３０２が登録されているか否かを確認する（ステップＳ８１２）。
ユーザ識別情報３０２が既に登録されている場合（ステップＳ８１２でＹＥＳ）は、送信部２０８１０がユーザ認証の失敗を通知するメッセージを通信装置２０５を介して、クライアント装置１０２へ送信する（ステップＳ８１５）。
【００５４】
一方、ユーザ識別情報３０２が未登録の場合（ステップＳ８１２でＮＯ）は、不正アクセス管理部２０８０９は、不正アクセスリスト５０１で、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２に該当するユーザ識別情報５０３に、クライアント装置１０２からのユーザ識別情報３０２を登録する（ステップＳ８１３）。
クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２が、不正アクセスリスト５０１に登録されていない場合には、不正アクセス管理部２０８０９は、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２と、クライアント装置１０２からのユーザ識別情報３０２を、不正アクセスリスト５０１に登録する。
その後、送信部２０８１０がユーザ認証の失敗を通知するメッセージを通信装置２０５を介して、クライアント装置１０２へ送信する（ステップＳ８１５）。
【００５５】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態によれば、同じ固定値とパスワードとのハッシュ値と、異なるユーザ識別情報によるアクセスを管理することにより、チャレンジ・アンド・レスポンス方式のユーザ認証に対するリバースブルートフォース攻撃又はパスワードスプレー攻撃を検知することができる。このため、本実施の形態によれば、リバースブルートフォース攻撃又はパスワードスプレー攻撃に対する有効な対策を行うことができる。また、定期的に固定値を変更することにより、レインボーテーブルを用いたパスワード攻撃を難しくすることが可能となる。
【００５６】
なお、本実施の形態では、ユーザ認証時に、固定値とパスワード３０３とのハッシュ値５０２と、乱数４０３とパスワード３０３とのハッシュ値の両方を用い、両方が一致した場合にのみユーザ認証に成功したと判定した。これに代えて、乱数４０３とパスワード３０３とのハッシュ値のみを用い、乱数４０３とパスワード３０３とのハッシュ値が一致すれば、ユーザ認証に成功したと判定してもよい。
【００５７】
実施の形態２．
以上の実施の形態１では、同じ固定値とパスワード３０３とのハッシュ値５０２と、異なるユーザ識別情報５０１によるアクセスが、規定回数以上行われているか否かで、リバースブルートフォース攻撃又はパスワードスプレー攻撃が発生しているか否かが判定される。
本実施の形態では、同じ固定値とパスワード３０３とのハッシュ値５０２と、異なるユーザ識別情報５０１によるアクセスが、規定頻度以上行われているか否かで、リバースブルートフォース攻撃又はパスワードスプレー攻撃が発生しているか否かが判定される例を示す。
【００５８】
＊＊＊構成の説明＊＊＊
本実施の形態では、システムの構成例、サーバ装置１０１のハードウェア構成例、サーバ装置１０１の機能構成例、認証情報テーブル、乱数管理テーブルは、実施の形態１の図１〜図５で示したものと同じであるため、説明を省略する。
なお、本実施の形態では、主に実施の形態１との差異を説明する。以下で説明していない事項は、実施の形態１と同様である。
【００５９】
図１２は、本実施の形態で使用する不正アクセスリスト１００１を示す。
本実施の形態に係る不正アクセスリスト１００１は、不正アクセス管理部２０８０９によって保有及び管理される。
不正アクセスリスト１００１には、クライアント装置１０２からの不正なアクセスで使用された、固定値とパスワードとのハッシュ値５０２ａ、５０２ｂ・・・、及びユーザ識別情報５０３ａ‐１、５０３ａ‐２、５０３ｂ‐１・・・、アクセス時刻１００２ａ‐１、１００２ａ‐２、１００２ｂ‐１・・・が登録される。
以下、ユーザ識別情報５０３ａ‐１、５０３ａ‐２、５０３ｂ‐１・・・を総称して、ユーザ識別情報５０３と呼ぶ。また、アクセス時刻１００２ａ‐１、１００２ａ‐２、１００２ｂ‐１・・・を総称して、アクセス時刻１００２と呼ぶ。
不正アクセスリスト１００１には、一つの固定値とパスワードとのハッシュ値５０２（例えば、ハッシュ値＿α）に対し、複数のユーザ識別情報５０３（ユーザ識別情報＿Ｉ、ユーザ識別情報＿ＩＩ・・・）とアクセス時刻１００２（時刻＿Ｉ、時刻＿ＩＩ・・・）が登録される。
アクセス時刻１００２は、固定値とパスワードとのハッシュ値５０２とユーザ識別情報５０３を用いてアクセスされた最終時刻を示す。つまり、アクセス時刻１００２は、ハッシュ値５０２とユーザ識別情報５０３のクライアント装置１０２からの受信時刻である。
【００６０】
＊＊＊動作の説明＊＊＊
以降では、図７、図８、図１１、図１３、図１４、図１５及び図１６を用い、システム全体の処理の流れを説明する。
図７は、固定値生成処理を示す。図８は、システム全体の通信シーケンスを示す。図１１は、ユーザ認証処理を示す。図１３、図１４及び図１５は、サーバ装置１０１の動作例を示す。図１６は、アクセス頻度確認処理を示す。
【００６１】
図７のステップＳ６０１〜Ｓ６０３は、実施の形態１で説明した通りであるため、説明を省略する。
図８のステップＳ７０２〜Ｓ７０６は、実施の形態１で説明した通りであるため、説明を省略する。
また、図１３のステップＳ８０１〜Ｓ８０５は、実施の形態１で説明した通りであるため、説明を省略する。
以下では、図１３のステップＳ１１０１以降の処理を説明する。
【００６２】
まず、不正アクセス管理部２０８０９は、不正アクセスリスト１００１から、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２を用いたアクセスの頻度を確認する（ステップＳ１１０１）。
図１６を用いて、ステップＳ１１０１の詳細を説明する。
【００６３】
まず、不正アクセス管理部２０８０９は、固定値とパスワード３０３とのハッシュ値５０２に該当する不正アクセスリスト１００１の、アクセス時刻１００２を確認し、最終アクセス時刻１００２（最も直近のアクセス時刻１００２）を特定する（ステップＳ１２０１）。
次に、不正アクセス管理部２０８０９は、固定値とパスワード３０３とのハッシュ値５０２に該当する不正アクセスリスト１００１から、最終アクセス時刻１００２よりも単位時間前のアクセス情報（ユーザ識別情報５０３及びアクセス時刻１００２）を削除する（ステップＳ１２０２）。
その後、不正アクセス管理部２０８０９は、固定値とパスワード３０３とのハッシュ値５０２に該当する不正アクセスリスト１００１から、アクセス頻度（例えば、単位時間当たりのユーザ識別情報の件数）を算出する（ステップＳ１２０３）。
【００６４】
更に、不正アクセス管理部２０８０９は、算出したアクセス頻度が、閾値以上になっているか否かを確認する（ステップＳ１１０２）。
アクセス頻度が、閾値以上になっている場合（ステップＳ１１０２でＹＥＳ）は、不正アクセス管理部２０８０９は、リバースブルートフォース攻撃又はパスワードスプレー攻撃が発生していると判定する（ステップＳ８０７）。
つまり、不正アクセス管理部２０８０９は、受信時刻が単位時間内に収まる、ハッシュ値が共通するユーザ識別情報の個数が閾値以上である場合に、攻撃が発生していると判定する。
そして、不正アクセス管理部２０８０９は、サービス提供部２０６に、攻撃の発生を通知する。通知を受けたサービス提供部２０６は、攻撃に対する対策を行う（ステップＳ８０８）。リバースブルートフォース対策又はパスワードスプレー対策の内容は、提供するサービスによって異なるため、本明細書では言及しない。
【００６５】
一方、アクセス頻度が、閾値未満の場合（ステップＳ１１０２でＮＯ）は、ユーザ認証が行われる（ステップＳ８０９）。ユーザ認証処理（Ｓ９０１〜Ｓ９０９）は、実施の形態１と同じであるため、説明を省略する。
【００６６】
不正アクセス管理部２０８０９は、ステップＳ８０９のユーザ認証が成功した場合（ステップＳ８１０でＹＥＳ）は、不正アクセスリス１１０１から、固定値とパスワード３０３とのハッシュ値５０２に該当するユーザ識別情報５０３とアクセス時刻１００２を削除する（ステップＳ１１０５）。
その後、送信部２０８１０が、ユーザ認証の成功を通知するメッセージを、通信装置２０５を介して、クライアント装置１０２へ送信する（ステップＳ８１４）。
【００６７】
ユーザ認証が失敗している場合（ステップＳ８１０でＮＯ）は、不正アクセス管理部２０８０９は、不正アクセスリスト１００１を確認し、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２に該当するユーザ識別情報５０３に、クライアント装置１０２からのユーザ識別情報３０２が登録されているか否かを確認する（ステップＳ８１２）。
ユーザ識別情報３０２が既に登録されている場合（ステップＳ８１２でＹＥＳ）は、不正アクセス管理部２０８０９は、当該ユーザ識別情報３０２によるアクセス時刻１００２を、現アクセスの時刻に更新する（ステップＳ１１０４）。
その後、送信部２０８１０がユーザ認証の失敗を通知するメッセージを通信装置２０５を介して、クライアント装置１０２へ送信する（ステップＳ８１５）。
【００６８】
一方、ユーザ識別情報３０２が未登録の場合（ステップＳ８１２でＮＯ）は、不正アクセス管理部２０８０９は、不正アクセスリスト１００１で、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２に該当するユーザ識別情報５０３にクライアント装置１０２からのユーザ識別情報３０２を登録し、アクセス時刻１００２に現アクセスの時刻を登録する（ステップＳ１１０３）。
クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２が、不正アクセスリスト１００１に登録されていない場合には、不正アクセス管理部２０８０９は、クライアント装置１０２からの固定値とパスワード３０３とのハッシュ値５０２と、クライアント装置１０２からのユーザ識別情報３０２と、現アクセスのアクセス時刻１００２とを、不正アクセスリスト１００１に登録する。
その後、送信部２０８１０がユーザ認証の失敗を通知するメッセージを通信装置２０５を介して、クライアント装置１０２へ送信する（ステップＳ８１５）。
【００６９】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態によれば、同じ固定値とパスワードとのハッシュ値と、異なるユーザ識別情報によるアクセスの頻度を管理することにより、チャレンジ・アンド・レスポンス方式のユーザ認証に対するリバースブルートフォース攻撃又はパスワードスプレー攻撃を検知することができる。このため、本実施の形態によれば、リバースブルートフォース攻撃又はパスワードスプレー攻撃に対する有効な対策を行うことができる。
【００７０】
以上、本発明の実施の形態について説明したが、これら２つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら２つの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これら２つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【００７１】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、サーバ装置１０１のハードウェア構成の補足説明を行う。
補助記憶装置２０３には、サービス提供部２０６及びユーザ認証部２０８（固定値記憶部２０８０２を除く）の機能を実現するプログラムの他に、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ２０１により実行される。
プロセッサ２０１はＯＳの少なくとも一部を実行しながら、サービス提供部２０６及びユーザ認証部２０８（固定値記憶部２０８０２を除く）の機能を実現するプログラムを実行する。
プロセッサ２０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、サービス提供部２０６及びユーザ認証部２０８（固定値記憶部２０８０２を除く）の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置２０２、補助記憶装置２０３、プロセッサ２０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、サービス提供部２０６及びユーザ認証部２０８（固定値記憶部２０８０２を除く）の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。
【００７２】
また、サービス提供部２０６及びユーザ認証部２０８の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、サーバ装置１０１は、処理回路により実現されてもよい。処理回路は、前述したＬＳＩ及びＡＳＩＣである。また、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等も処理回路に含まれる。
なお、本明細書では、プロセッサと、処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【００７３】
１０１  サーバ装置、１０２  クライアント装置、１０３  ネットワーク、２０１  プロセッサ、２０２  主記憶装置、２０３  補助記憶装置、２０４  入出力装置、２０５  通信装置、２０６  サービス提供部、２０７  バス、２０８  ユーザ認証部、２０８０１  固定値生成部、２０８０２  固定値記憶部、２０８０３  認証情報管理部、２０８０４  乱数生成部、２０８０５  乱数管理部、２０８０６  ハッシュ値算出部、２０８０７  ハッシュ値比較部、２０８０８  認証情報ＤＢ、２０８０９  不正アクセス管理部、２０８１０  送信部、２０８１１  受信部、３０１  認証情報テーブル、３０２  ユーザ識別情報、３０３  パスワード、４０１  乱数管理テーブル、４０２  セッション、４０３  乱数、５０１  不正アクセスリスト、５０２  固定値とパスワードとのハッシュ値、５０３  ユーザ識別情報、７０１  ユーザ、１００１  不正アクセスリスト。
【図１】
2020021608.tif 000003
【図２】
2020021608.tif 000004
【図３】
2020021608.tif 000005
【図４】
2020021608.tif 000006
【図５】
2020021608.tif 000007
【図６】
2020021608.tif 000008
【図７】
2020021608.tif 000009
【図８】
2020021608.tif 000010
【図９】
2020021608.tif 000011
【図１０】
2020021608.tif 000012
【図１１】
2020021608.tif 000013
【図１２】
2020021608.tif 000014
【図１３】
2020021608.tif 000015
【図１４】
2020021608.tif 000016
【図１５】
2020021608.tif 000017
【図１６】
2020021608.tif 000018
【手続補正書】
【提出日】平成30年11月16日(2018.11.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハッシュ値とユーザ識別情報との組み合わせを不正アクセスリストとして蓄積する組み合わせ蓄積部と、
固定値を送信する送信部と、
前記固定値の送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信する受信部と、
前記不正アクセスリストにおいて、前記受信部により受信されたハッシュ値である受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する判定部と、
前記判定部により攻撃が発生していると判定されなかった場合に、前記受信ハッシュ値を用いてユーザ認証を行うハッシュ値比較部とを有し、
前記判定部は、
前記ハッシュ値比較部による前記受信ハッシュ値を用いたユーザ認証が成功した場合は、前記受信ハッシュ値とともに前記受信部により受信されたユーザ識別情報である受信ユーザ識別情報が前記不正アクセスリストに存在していれば、前記不正アクセスリストから前記受信ユーザ識別情報を削除し、前記ハッシュ値比較部による前記受信ハッシュ値を用いたユーザ認証が失敗した場合は、前記受信ユーザ識別情報が前記不正アクセスリストに存在していなければ、前記不正アクセスリストに前記受信ユーザ識別情報を追加するサーバ装置。
【請求項２】
前記判定部は、
ユーザ識別情報の個数が閾値以上である場合に、攻撃が発生していると判定する請求項１に記載のサーバ装置。
【請求項３】
前記組み合わせ蓄積部は、
前記受信部により受信されたハッシュ値とユーザ識別情報との組み合わせを受信時刻とともに前記不正アクセスリストとして蓄積し、
前記判定部は、
前記受信ハッシュ値の受信時刻から単位時間内に収まる受信時刻の、前記受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数が閾値以上である場合に、攻撃が発生していると判定する請求項１に記載のサーバ装置。
【請求項４】
前記受信部は、
クライアント装置から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信し、
前記判定部は、
前記不正アクセスリストにおいて、前記受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、前記クライアント装置による攻撃が発生しているか否かを判定する請求項１に記載のサーバ装置。
【請求項５】
前記判定部は、
リバースブルートフォース攻撃の有無又はパスワードスプレー攻撃の有無を判定する請求項１に記載のサーバ装置。
【請求項６】
コンピュータが、ハッシュ値とユーザ識別情報との組み合わせを不正アクセスリストとして蓄積し、
前記コンピュータが、固定値を送信し、
前記コンピュータが、前記固定値の送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信し、
前記コンピュータが、前記不正アクセスリストにおいて、受信されたハッシュ値である受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定し、
攻撃が発生していると判定されなかった場合に、前記コンピュータが、前記受信ハッシュ値を用いてユーザ認証を行い、
前記受信ハッシュ値を用いたユーザ認証が成功した場合は、前記受信ハッシュ値とともに受信されたユーザ識別情報である受信ユーザ識別情報が前記不正アクセスリストに存在していれば、前記コンピュータが、前記不正アクセスリストから前記受信ユーザ識別情報を削除し、前記受信ハッシュ値を用いたユーザ認証が失敗した場合は、前記受信ユーザ識別情報が前記不正アクセスリストに存在していなければ、前記コンピュータが、前記不正アクセスリストに前記受信ユーザ識別情報を追加する攻撃判定方法。
【請求項７】
ハッシュ値とユーザ識別情報との組み合わせを不正アクセスリストとして蓄積する組み合わせ蓄積処理と、
固定値を送信する送信処理と、
前記固定値の送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、ユーザ識別情報とを受信する受信処理と、
前記不正アクセスリストにおいて、前記受信処理により受信されたハッシュ値である受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する判定処理と、
前記ハッシュ値比較処理による前記受信ハッシュ値を用いたユーザ認証が成功した場合は、前記受信ハッシュ値とともに前記受信処理により受信されたユーザ識別情報である受信ユーザ識別情報が前記不正アクセスリストに存在していれば、前記不正アクセスリストから前記受信ユーザ識別情報を削除し、前記ハッシュ値比較処理による前記受信ハッシュ値を用いたユーザ認証が失敗した場合は、前記受信ユーザ識別情報が前記不正アクセスリストに存在していなければ、前記不正アクセスリストに前記受信ユーザ識別情報を追加する不正アクセスリスト更新処理とをコンピュータに実行させる攻撃判定プログラム。
【手続補正書】
【提出日】平成31年3月28日(2019.3.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハッシュ値とユーザ識別情報との組み合わせを不正アクセスリストとして蓄積する組み合わせ蓄積部と、
固定値と乱数であるチャレンジとを送信する送信部と、
前記固定値及び前記チャレンジの送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、前記ユーザのパスワードと前記チャレンジとから得られるハッシュ値であるレスポンスと、ユーザ識別情報とを受信する受信部と、
前記不正アクセスリストにおいて、前記受信部により受信されたハッシュ値である受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する判定部と、
前記判定部により攻撃が発生していると判定されなかった場合に、前記受信ハッシュ値と前記レスポンスとを用いてユーザ認証を行うハッシュ値比較部とを有し、
前記判定部は、
前記ハッシュ値比較部による前記受信ハッシュ値と前記レスポンスとを用いたユーザ認証が成功した場合は、前記受信ハッシュ値及び前記レスポンスとともに前記受信部により受信されたユーザ識別情報である受信ユーザ識別情報が前記不正アクセスリストに存在していれば、前記不正アクセスリストから前記受信ユーザ識別情報を削除し、前記ハッシュ値比較部による前記受信ハッシュ値と前記レスポンスとを用いたユーザ認証が失敗した場合は、前記受信ユーザ識別情報が前記不正アクセスリストに存在していなければ、前記不正アクセスリストに前記受信ユーザ識別情報を追加するサーバ装置。
【請求項２】
前記判定部は、
ユーザ識別情報の個数が閾値以上である場合に、攻撃が発生していると判定する請求項１に記載のサーバ装置。
【請求項３】
前記組み合わせ蓄積部は、
前記受信部により受信されたハッシュ値とユーザ識別情報との組み合わせを受信時刻とともに前記不正アクセスリストとして蓄積し、
前記判定部は、
前記受信ハッシュ値の受信時刻から単位時間内に収まる受信時刻の、前記受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数が閾値以上である場合に、攻撃が発生していると判定する請求項１に記載のサーバ装置。
【請求項４】
前記受信部は、
クライアント装置から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、前記ユーザのパスワードと前記チャレンジとから得られるハッシュ値であるレスポンスと、ユーザ識別情報とを受信し、
前記判定部は、
前記不正アクセスリストにおいて、前記受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、前記クライアント装置による攻撃が発生しているか否かを判定する請求項１に記載のサーバ装置。
【請求項５】
前記判定部は、
リバースブルートフォース攻撃の有無又はパスワードスプレー攻撃の有無を判定する請求項１に記載のサーバ装置。
【請求項６】
コンピュータが、ハッシュ値とユーザ識別情報との組み合わせを不正アクセスリストとして蓄積し、
前記コンピュータが、固定値と乱数であるチャレンジとを送信し、
前記コンピュータが、前記固定値及び前記チャレンジの送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、前記ユーザのパスワードと前記チャレンジとから得られるハッシュ値であるレスポンスと、ユーザ識別情報とを受信し、
前記コンピュータが、前記不正アクセスリストにおいて、受信されたハッシュ値である受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定し、
攻撃が発生していると判定されなかった場合に、前記コンピュータが、前記受信ハッシュ値と前記レスポンスとを用いてユーザ認証を行い、
前記受信ハッシュ値と前記レスポンスとを用いたユーザ認証が成功した場合は、前記受信ハッシュ値及び前記レスポンスとともに受信されたユーザ識別情報である受信ユーザ識別情報が前記不正アクセスリストに存在していれば、前記コンピュータが、前記不正アクセスリストから前記受信ユーザ識別情報を削除し、前記受信ハッシュ値と前記レスポンスとを用いたユーザ認証が失敗した場合は、前記受信ユーザ識別情報が前記不正アクセスリストに存在していなければ、前記コンピュータが、前記不正アクセスリストに前記受信ユーザ識別情報を追加する攻撃判定方法。
【請求項７】
ハッシュ値とユーザ識別情報との組み合わせを不正アクセスリストとして蓄積する組み合わせ蓄積処理と、
固定値と乱数であるチャレンジとを送信する送信処理と、
前記固定値及び前記チャレンジの送信先から、ユーザのパスワードと前記固定値とから得られるハッシュ値と、前記ユーザのパスワードと前記チャレンジとから得られるハッシュ値であるレスポンスと、ユーザ識別情報とを受信する受信処理と、
前記不正アクセスリストにおいて、前記受信処理により受信されたハッシュ値である受信ハッシュ値と同じハッシュ値と組になっているユーザ識別情報の個数を計数し、計数結果に基づき、攻撃が発生しているか否か判定する判定処理と、
前記判定処理により攻撃が発生していると判定されなかった場合に、前記受信ハッシュ値と前記レスポンスとを用いてユーザ認証を行うハッシュ値比較処理と、
前記ハッシュ値比較処理による前記受信ハッシュ値と前記レスポンスとを用いたユーザ認証が成功した場合は、前記受信ハッシュ値及び前記レスポンスとともに前記受信処理により受信されたユーザ識別情報である受信ユーザ識別情報が前記不正アクセスリストに存在していれば、前記不正アクセスリストから前記受信ユーザ識別情報を削除し、前記ハッシュ値比較処理による前記受信ハッシュ値と前記レスポンスとを用いたユーザ認証が失敗した場合は、前記受信ユーザ識別情報が前記不正アクセスリストに存在していなければ、前記不正アクセスリストに前記受信ユーザ識別情報を追加する不正アクセスリスト更新処理とをコンピュータに実行させる攻撃判定プログラム。
【国際調査報告】
2020021608.tif 000019
2020021608.tif 000020
2020021608.tif 000021
2020021608.tif 000022