(57)【特許請求の範囲】
【請求項１】
ユーザの入力パスワードを取得する認証情報取得手段と、
前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証手段と、
前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断する判断手段と、
前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記判断手段による判断結果に応じて、前記ユーザ認証手段による前記ユーザの認証の手順を変更する認証手順変更手段と、
を含むユーザ認証システム。
【請求項２】
請求項１に記載のユーザ認証システムにおいて、
前記入力パスワードが前記ユーザの過去の真正パスワードと一致する場合に、前記認証手順変更手段による変更を制限する、ユーザ認証システム。
【請求項３】
請求項１又は２に記載のユーザ認証システムにおいて、
前記認証手順変更手段は、前記パスワード候補の内容に応じて、前記変更の内容を異ならせる、ユーザ認証システム。
【請求項４】
請求項１乃至３のいずれかに記載のユーザ認証システムにおいて、
前記認証手順変更手段は、前記ユーザの前記真正パスワードを変更する手段を含む、ユーザ認証システム。
【請求項５】
請求項１乃至４のいずれかに記載のユーザ認証システムにおいて、
前記ユーザ認証手段は、前記ユーザの認証に連続して所定の上限回数だけ失敗した場合に、前記ユーザの認証を停止し、
前記認証手順変更手段は、前記上限回数を減らす手段を含む、ユーザ認証システム。
【請求項６】
請求項１乃至５のいずれかに記載のユーザ認証システムにおいて、
前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記ユーザにメッセージを送信するメッセージ送信手段をさらに含む、ユーザ認証システム。
【請求項７】
請求項１乃至６のいずれかに記載のユーザ認証システムにおいて、
前記ユーザに関連づけられた情報に基づいて前記パスワード候補を生成するパスワード候補生成手段をさらに含む、ユーザ認証システム。
【請求項８】
請求項７に記載のユーザ認証システムにおいて、
前記ユーザに関連づけられた情報は少なくとも１つの情報項目を含み、
前記パスワード候補生成手段は、前記情報項目を複数の要素に分割し、一部の要素の選択又は前記複数の要素の置換により、前記パスワード候補を生成する、ユーザ認証システム。
【請求項９】
請求項７に記載のユーザ認証システムにおいて、
前記ユーザに関連づけられた情報は少なくとも２つの情報項目を含み、
前記パスワード候補生成手段は、前記各情報項目の少なくとも一部を結合することにより、前記パスワード候補を生成する、ユーザ認証システム。
【請求項１０】
請求項１乃至９に記載のユーザ認証システムにおいて、
不正アクセスの可能性を判断する不正アクセス判断手段を含み、
前記不正アクセス判断手段による判断結果に応じて、前記判断手段による判断、及び前記認証手順変更手段による変更を行う、ユーザ認証システム。
【請求項１１】
認証情報取得手段がユーザの入力パスワードを取得し、
ユーザ認証手段が前記入力パスワードに基づいて前記ユーザの認証を実行し、
判断手段が前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断し、
認証手順変更手段が前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記真正パスワードと前記パスワード候補とが一致又は類似するか否かに応じて、前記ユーザの認証の手順を変更する、
ユーザ認証方法。
【請求項１２】
ユーザの入力パスワードを取得する認証情報取得手段、
前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証手段、
前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断する判断手段、及び
前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記判断手段による判断結果に応じて、前記ユーザ認証手段による前記ユーザの認証の手順を変更する認証手順変更手段
としてコンピュータを機能させるためのプログラム。
【請求項１３】
ユーザの入力パスワードを取得する認証情報取得手段、
前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証手段、
前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断する判断手段、及び
前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記判断手段による判断結果に応じて、前記ユーザ認証手段による前記ユーザの認証の手順を変更する認証手順変更手段
としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体。
【請求項１４】
ユーザの入力パスワードを取得する認証情報取得部と、
前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証部と、
前記ユーザの認証に失敗し、更に前記パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似する場合に、前記ユーザの真正パスワードと、前記パスワード候補と、が一致又は類似するか否かに応じて、前記ユーザ認証部による前記ユーザの認証の手順を変更する認証手順変更部と、
を含むユーザ認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はユーザ認証システム、ユーザ認証方法、プログラム及び情報記憶媒体に関し、パスワードクラッキング対策に関する。
【背景技術】
【０００２】
インターネット上のサービス開始時や各種コンピュータの起動時などのタイミングで、正当ユーザによる利用であるかを判断するために、ユーザにユーザＩＤ及びパスワードの入力を求め、それらによりユーザ認証を行うことが多い。ここで、誤ったパスワードを何度入力しても構わないものとすると、正当ユーザでなくても、何度もパスワードを入力するうちにいつかユーザ認証に成功してしまう。そこで、パスワードの誤入力が上限回数を超えるとシステムがアカウントをロックすることが知られている（特開２００６−１７２１７１号公報）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、誕生日や電話番号などのユーザ情報に基づいてユーザがパスワードを設定している場合、当該ユーザ情報が他人に知られてしまうと、上記上限回数をよほど小さな値に設定しない限り、上限回数内の誤入力で当該他人がユーザ認証に成功してしまうリスクが否定できない。【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、ユーザ情報が他人に知られても当該他人がユーザ認証に成功してしまうことを抑制できるユーザ認証システム、ユーザ認証方法、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係るユーザ認証システムは、ユーザの入力パスワードを取得する認証情報取得手段と、前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証手段と、前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断する判断手段と、前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記判断手段による判断結果に応じて、前記ユーザ認証手段による前記ユーザの認証の手順を変更する認証手順変更手段と、を含む。【０００６】
また、本発明に係るユーザ認証方法は、ユーザの入力パスワードを取得し、前記入力パスワードに基づいて前記ユーザの認証を実行し、前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断し、前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記真正パスワードと前記パスワード候補とが一致又は類似するか否かに応じて、前記ユーザの認証の手順を変更する。【０００７】
また、本発明に係るプログラムは、ユーザの入力パスワードを取得する認証情報取得手段、前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証手段、  前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断する判断手段、及び前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記判断手段による判断結果に応じて、前記ユーザ認証手段による前記ユーザの認証の手順を変更する認証手順変更手段としてコンピュータを機能させるためのプログラムである。【０００８】
また、本発明に係る情報記憶媒体は、ユーザの入力パスワードを取得する認証情報取得手段、前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証手段、前記ユーザの真正パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似するか否かを判断する判断手段、及び前記ユーザの認証に失敗し、更に前記入力パスワードと、前記パスワード候補と、が一致又は類似する場合に、前記判断手段による判断結果に応じて、前記ユーザ認証手段による前記ユーザの認証の手順を変更する認証手順変更手段としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体である。【０００９】
また、本発明に係るユーザ認証システムは、ユーザの入力パスワードを取得する認証情報取得部と、前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証部と、前記ユーザの認証に失敗し、更に前記パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似する場合に、前記ユーザの真正パスワードと、前記パスワード候補と、が一致又は類似するか否かに応じて、前記ユーザ認証部による前記ユーザの認証の手順を変更する認証手順変更部と、を含む。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るユーザ認証システムを含むコンピュータネットワークを示す図である。
【図２】パスワードテーブルを模式的に示す図である。
【図３】ログインページの一例を示す図である。
【図４】再ログインページの一例を示す図である。
【図５】アカウントロック通知ページの一例を示す図である。
【図６】ユーザに送信される警告メッセージの一例を示す図である。
【図７】ユーザ認証システムの機能ブロック図である。
【図８】ユーザ情報記憶部の記憶内容を模式的に示す図である。
【図９】パスワード候補生成規則及び該規則に従って生成されたパスワード候補の例を示す図である。
【図１０】ユーザ認証システムの動作フロー図である。
【図１１】ユーザ認証システムの動作フロー図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【００１２】
図１は、本発明の実施形態に係るユーザ認証システムを含むコンピュータネットワークを示す図である。サーバ１０は、例えば電子商取引等、通信ネットワーク１２を利用してウェブサービスを多数のユーザに提供するためのサーバコンピュータシステムであり、本発明の実施形態に係るユーザ認証システムを含んでいる。サーバ１０は、インターネット等の通信ネットワーク１２に接続されている。通信ネットワーク１２には、サーバ１０が提供するサービスを受けるため、多数のユーザ装置１４も接続されている。ユーザ装置１４は、インターネットテレビ、パーソナルコンピュータ、タブレットコンピュータ、スマートフォン、フィーチャフォン等のコンピュータであり、ウェブブラウザがインストールされている。
【００１３】
上述のようにサーバ１０にはユーザ認証システムが含まれており、ユーザ装置１４からアクセスがあるとユーザＩＤ及びパスワードのペア（認証情報）の入力を求める。そして、該ユーザ装置１４のユーザが正当ユーザであるか否かの判断、すなわちユーザ認証を入力された認証情報に基づいて行っている。サーバ１０は、ユーザ認証システムによるユーザ認証に成功したユーザに対してのみ、通信ネットワーク１２を介したサービス提供を行う。
【００１４】
ユーザ認証のため、サーバ１０は、図２に示すパスワードテーブルを記憶している。同図に示すパスワードテーブルは、サーバ１０の正当なユーザを識別するユーザＩＤに関連づけて、該ユーザのパスワードのハッシュ値、誤った認証情報の連続入力によりユーザ認証に失敗してよい回数（失敗上限回数）、現在の連続失敗回数、及びアカウントがロックされているか否かを示すフラグを記憶するものである。アカウントロックのフラグが１であれば、ロックされていることが示されており、０であれば、ロックされていないことが示されている。アカウントがロックされていると、正しいユーザＩＤ及びパスワードが入力されても、サーバ１０は、もはやそのアカウントのユーザにサービスを提供しない。
【００１５】
図３乃至図５は、サーバ１０でのユーザ認証に関連してユーザ装置１４のディスプレイで表示されるウェブページを示している。これらのウェブページは、サーバ１０から送信されるデータに基づいてユーザ装置１４で表示される。図３は、ログインページを示しており、同図に示すようにログインページは、ユーザＩＤ及びパスワードを入力するためのフォームと、それらをサーバ１０に送信するためのボタンと、を含んでいる。図４は、再ログインページを示している。再ログインページは、ユーザ認証に失敗した場合においてユーザＩＤ及びパスワードを再度入力させるためのページである。再ログインページも、ユーザＩＤ及びパスワードを入力するためのフォームと、それらをサーバ１０に送信するためのボタンと、を含んでいる。図５は、アカウントロック通知ページを示しており、同図に示すようにアカウントロック通知ページには、ユーザのアカウントがロックされており、サーバ１０へのログインが禁止されている旨が記されている。
【００１６】
また図６は、ユーザに送信される警告メッセージの一例を示す図である。本実施形態では、サーバ１０に備えられるユーザ認証システムが、姓、名、生年月日などのユーザ情報に基づき、あるアカウントに対してパスワードクラッキングが行われている可能性があると判断される場合には、同図に示される警告メッセージを含む電子メールを正当なユーザに送信する。
【００１７】
図７は、サーバ１０に含まれるユーザ認証システムの機能ブロック図である。同図に示すように、ユーザ認証システムは、認証情報取得部２０、ユーザ認証部２２、ユーザ情報記憶部２４、パスワードクラッキング判断部２６、メッセージ送信部３０、認証手順変更部２８を含んでいる。ユーザ認証部２２は認証情報記憶部２２ａを含んでおり、パスワードクラッキング判断部２６はパスワード候補生成部２６ａを含んでいる。これらの要素は、サーバ１０において本発明の一実施形態に係るユーザ認証プログラムが実行されることにより実現されている。同プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリなどのコンピュータ可読記憶媒体に格納され、そこからサーバ１０にインストールされてもよいし、通信ネットワーク１２からダウンロードされてもよい。
【００１８】
認証情報取得部２０は、サーバ１０に含まれる通信インタフェース、ＣＰＵ及びメモリを中心に構成されており、ユーザＩＤ及びパスワードを取得する。具体的には、ユーザ装置１４から送信されるログインリクエストに応じて、図３に示されるログインページのデータをユーザ装置１４に送信する。そして、ユーザがログインページ内のフォームにユーザＩＤ及びパスワードを入力し、ログインボタンを押下すると、入力されたユーザＩＤ及びパスワードがサーバ１０に送信される。こうして、認証情報取得部２０は、ユーザ装置１４からユーザＩＤ及びパスワードを取得する。
【００１９】
ユーザ認証部２２は、サーバ１０に含まれるＣＰＵ、メモリ及びストレージ装置を中心に構成されており、認証情報取得部２０により取得されるユーザＩＤ及びパスワードに基づいてユーザ認証を実行する。認証情報記憶部２２ａは、ストレージ装置を中心に構成されており、図２に示されるパスワードテーブルを記憶している。ユーザ認証部２２は、ユーザＩＤ及びパスワードが取得されると、パスワードハッシュを計算するとともに、ユーザＩＤに対応するパスワードハッシュを認証情報記憶部２２ａから読み出す。そして、計算されたパスワードハッシュと、認証情報記憶部２２ａから読み出されたパスワードハッシュと、が一致するか否かを判断する。一致すればユーザ認証に成功したと判断し、不一致であればユーザ認証に失敗したと判断する。また、ユーザ認証に連続して失敗した回数（失敗回数）をパスワードテーブルで管理しており、この失敗回数が上限回数を超えると、アカウントをロックし、その旨のフラグ１をパスワードテーブルに記録する。
【００２０】
なお、アカウントのロックはサーバ１０の管理者により解除されてよい。すなわち、パスワードテーブルに記録されているアカウントロックのフラグを、管理者が任意に０に戻せるようにしてよい。或いはサーバ１０は、パスワードテーブルのアカウントロックのフラグが１に変更されてからの経過時間を計測しておき、該経過時間が所定のロック時間に達すると、アカウントロックのフラグを０に戻してよい。こうすれば、事前に定めたロック時間にわたりアカウントをロックし、その後は自動的にアカウントロックを解除できる。なお、アカウントロックを解除する場合、パスワードテーブルの失敗上限や失敗回数は初期値にリセットしてよい。
【００２１】
ユーザ情報記憶部２４は、ストレージ装置を中心に構成されており、図８に示されるユーザ情報を記憶している。同図に示されるように、ユーザ情報記憶部２４は、各ユーザのユーザＩＤに関連づけて、該ユーザの姓、名、生年月日、居住国、住所、電話番号といった複数の情報項目を記憶している。もちろん、該ユーザの記念日、出身校など、他の情報項目を記憶してもよい。さらに、図８に示されるような典型的な個人情報以外にも、例えば好きな歌手、好きな食べ物など、ユーザに関連するあらゆる情報を記憶してよい。これらの情報項目の一部又は全部は、他の目的、例えば電子商取引サービスにおける商品配送のためにユーザ自身により予め入力されたものであってよい。或いは、本ユーザ認証システムによるユーザ認証処理のためだけにユーザに入力させるようにしてもよい。
【００２２】
パスワードクラッキング判断部２６は、サーバ１０に含まれるＣＰＵ及びメモリを中心に構成されている。パスワード候補生成部２６ａも、サーバ１０に含まれるＣＰＵ及びメモリを中心に構成されている。パスワード候補生成部２６ａは、ユーザ情報記憶部２４に記憶されたユーザ情報に基づいてパスワード候補を生成する。また、パスワードクラッキング判断部２６は、ユーザ認証部２２がユーザ認証に失敗した場合に、認証情報取得部２０が取得したパスワードと、パスワード候補生成部２６ａが生成したパスワード候補と、が一致するかを判断する。パスワードクラッキング判断部２６は、両パスワードが一致した場合には、パスワードクラッキングが行われている可能性があると判断する。なお、両パスワードの類似度を計算し、類似度が所定閾値を超えた場合、すなわち両パスワードが類似した場合にも、パスワードクラッキングが行われている可能性があると判断してもよい。なお、パスワードクラッキング判断部２６は、ユーザにより入力されたパスワードが過去の真正パスワードと一致又は類似する場合には、例えそれらがユーザ情報に基づいて作成されたものであったとしても、パスワードクラッキングが行われている可能性がないと判断してよい。ユーザが勘違いにより、ユーザ本人が過去の真正パスワードを入力したと考えられるからである。
【００２３】
図９（ａ）（ｂ）は、パスワード候補生成部２６ａにより用いられるパスワード候補生成規則の一例を示している。パスワード候補生成部２６ａは、同図（ａ）（ｂ）に示されるパスワード候補生成規則の各行を順に読み出し、それに従ってパスワード候補を生成する。また、同図（ｃ）（ｄ）は、同図（ａ）（ｂ）に示される規則Ａ、Ｂに従って生成されたパスワード候補Ａ、Ｂの例をそれぞれ示している。同図（ｃ）（ｄ）は、同図（ａ）（ｂ）に示される規則Ａ、Ｂを、図８に示される、ユーザＩＤが００２であるユーザのユーザ情報に適用した結果を示している。ここで、同図（ａ）のパスワード候補生成規則Ａは、ハッキングが容易なパスワード候補Ａを生成する規則であり、同図（ｂ）のパスワード候補生成規則Ｂは、クラッキングが困難なパスワード候補Ｂを生成する規則である。パスワード候補Ｂは、パスワード候補Ａよりも多くのユーザ情報の要素から構成されており、また他人にとって入手困難な筈のユーザ情報の要素から構成されている。パスワード候補Ｂが第三者により入力される場合には、その者はユーザの極めて詳細な、かつ入手困難な情報を把握していると考えられ、パスワードクラッキングの蓋然性が高いといえる。
【００２４】
同図（ａ）の１〜２行目に記載のとおり、パスワード候補生成部２６ａは、１つの情報項目の全体をそのままパスワード候補としてよい。例えば、姓、名などの情報項目の全体をそのままパスワード候補としてよい。
【００２５】
次に、同図（ａ）の３〜４行目、同図（ｂ）の１〜２行目に記載のとおり、パスワード候補生成部２６ａは、ユーザ情報に含まれる各情報項目の少なくとも一部を結合することにより、パスワード候補を生成してよい。例えば、姓と名を結合して「YamadaTaro」とするように、複数の情報項目の各全体をそのまま結合することにより、パスワード候補を生成してよい。また、例えば、名の１文字目と性の１文字目と生年月日を結合して「TY20000520」とするように、１以上の情報項目の各一部、及び１以上の情報項目の各全体を結合することにより、パスワード候補を生成してよい。また、名の１文字目と生年月日の最初の４文字を結合して「T2000」とするように、複数の情報項目の各一部を抽出し、それらを結合することによりパスワード候補を生成してよい。また、例えば生年月日の最初の４文字と最後の４文字の入れ替えにより「05202000」とするように、パスワード候補生成部２６ａは、１つの情報項目を複数の要素に分割し、一部要素の選択又は複数要素の置換により、パスワード候補を生成してよい。
【００２６】
このようにパスワード候補生成部２６ａは、悪意者が他人のユーザ情報を入手した場合に試みると予想されるパスワードを、各ユーザのユーザ情報に基づいてパスワード候補として生成している。そして、パスワードクラッキング判断部２６は、こうして生成されるパスワードと、実際にユーザ装置１４から送信された誤ったパスワードと、が一致又は類似する場合に、パスワードクラッキングが行われている可能性があると判断する。ここで、上述のように本実施形態では、クラッキングの困難性の違いに応じて、複数のパスワード候補生成規則Ａ、Ｂを設けている。そして、入力パスワードがクラッキング困難なパスワード候補Ｂと一致又は類似する場合には、ユーザの詳細且つ入手困難な情報を把握している悪意者により、より深刻なパスワードクラッキングが行われている可能性があると判断し、クラッキング容易なパスワード候補Ａと一致又は類似する場合よりも、ユーザ認証の失敗上限回数を大きく下げるようにしている。すなわち、入力パスワードと一致又は類似するパスワード候補の内容に応じて、ユーザ認証の変更態様を異ならせている。これにより、よりアカウントロックが行われやすくなる。これにより、深刻なパスワードクラッキングが行われている可能性がある場合に、クラッキング防止のためのより強力な対策を講じることができる。
【００２７】
認証手順変更部２８は、サーバ１０に含まれるＣＰＵ及びメモリを中心に構成されており、パスワードクラッキング判断部２６が、パスワードクラッキングが行われている可能性があると判断した場合に、ユーザ認証部２２によるユーザ認証の手順を変更する。具体的には、認証情報記憶部２２ａに記憶されている失敗上限を減らす。例えば１や２などの初期値（ここでは４とする）よりも小さな値に設定する。或いは、失敗上限の値を、パスワードクラッキング判断部２６でパスワードクラッキングが行われている可能性があると判断されるたびに、初期値から所定値ずつ順に減らしてもよい。ただし、認証手順変更部２８は、ユーザの真正なパスワードがパスワード候補生成部２６ａで生成されるパスワード候補Ａ、Ｂのいずれかに一致又は類似する場合にのみ、ユーザ認証の手順を変更する。すなわち、認証手順変更部２８は、ハッシュ値に加えて、或はこれに代えて、ユーザの真正なパスワードの平文を保持しており、この真正パスワードがパスワード候補Ａ、Ｂと一致又は類似するか否かを判断する。そして、一致又は類似する場合に、ユーザ認証部２２によるユーザ認証の手順を変更する。こうすれば、パスワードクラッキングが成功してしまう可能性が高い場合のみ、ユーザ認証の手順を変更するようにできる。すなわち、真正パスワードがパスワード候補Ａ、Ｂのいずれかに一致又は類似する場合には、ユーザ情報に基づいて類推したパスワードを次々に入力することにより、いずれパスワードクラッキングが成功してしまう可能性が高い。本態様では、このような場合に限ってユーザ認証の手順を変更することにより、ユーザ利便性を向上させることができる。
【００２８】
また、認証手順変更部２８は、パスワードクラッキングが行われている可能性があると判断された場合に、真正パスワードを変更してよい。この場合、認証情報記憶部２２ａに記憶されているパスワードハッシュを書き換える。新しい真正パスワードは、ユーザ情報記憶部２４に記憶されているユーザ情報から類推困難なものが好ましい。例えば、認証手順変更部２８は、乱数に基づいて新パスワードを生成してよい。また、乱数に基づいて生成されるパスワードが、パスワード候補生成部２６ａで生成されるパスワード候補と一致していないか判断し、一致していない場合にのみ、生成されるパスワードを新パスワードとするのが好適である。こうすれば、悪意者がパスワードクラッキングに成功する可能性を減らすことができると考えられる。なお、ここでは認証情報記憶部２２ａに真正パスワードの情報としてそのパスワードハッシュを記憶しており、パスワードハッシュによりユーザ認証を行うが、認証情報記憶部２２ａに真正パスワードを平文で記憶しておき、平文によりユーザ認証を行ってよい。この場合、真正パスワードの変更の際、認証情報記憶部２２ａに記憶されている真正パスワードの平文を書き換える。
【００２９】
メッセージ送信部３０は、サーバ１０に含まれる通信インタフェース、ＣＰＵ及びメモリを中心に構成されており、パスワードクラッキング判断部２６によりパスワードクラッキングが行われている可能性があると判断される場合に、事前登録されているユーザのメールアドレスに対し、図６に示される警告メッセージを送信する。
【００３０】
図１０及び図１１は、サーバ１０に含まれるユーザ認証システムの動作フロー図である。同図に示される処理は、図３又は図４に示されるページを経由してユーザ装置１４からユーザＩＤ及びパスワードが送信された場合に、サーバ１０で実行される。まず、図１０に示すように、認証情報取得部２０がユーザＩＤ及びパスワードを取得すると（Ｓ１０１）、ユーザ認証部２２はパスワードテーブルを参照し、ユーザＩＤに関連づけられたアカウントロックのフラグが１（ロック済み）であるか否かを調べる（Ｓ１０２）。フラグが１であれば、ユーザ認証部２２は、図５に示すアカウントロック通知ページのデータをユーザ装置１４に送信し（図１１のＳ１２０）、処理を終了する。フラグが０であれば、ユーザ認証部２２は、ユーザ認証を行う（Ｓ１０３）。取得したパスワードのハッシュと、パスワードテーブルに記憶されているパスワードハッシュとが一致し、ユーザ認証に成功すれば（Ｓ１０４）、パスワードテーブルに記憶されている失敗回数をゼロにリセットする（Ｓ１２２）。このとき、失敗上限も初期値にリセットしてよい。その後、ウェブサービスのトップページ（不図示）のデータをユーザ装置１４に送信し（Ｓ１２３）、処理を終了する。
【００３１】
Ｓ１０４においてユーザ認証に失敗したと判断すると、ユーザ認証部２２はパスワードテーブルの失敗回数を１だけインクリメントする（Ｓ１０５）。次に、パスワードクラッキング判断部２６のパスワード候補生成部２６ａは、パスワード候補を生成する（Ｓ１０６）。
【００３２】
次に図１１に示すように、認証手順変更部２８はユーザの真正パスワードがパスワード候補Ａ、Ｂのいずれかに一致するか否かを判断する（Ｓ１０７）。いずれとも一致しない場合には、パスワードクラッキング判定部２６は、Ｓ１０１で取得された入力パスワードが、生成されたパスワード候補Ａ、Ｂのいずれかに一致するか否かを判断する（Ｓ１１６）。一致すれば、メッセージ送信部３０は、ユーザ装置１４に図６に示すメッセージを送信する（Ｓ１１７）。一方、Ｓ１１６において一致しないと判断すれば、Ｓ１１７をスキップして、Ｓ１１８に進む。
【００３３】
Ｓ１０７において、真正パスワードがパスワード候補Ａ、Ｂのいずれかと一致すると判断する場合には、パスワードクラッキング判定部２６は、Ｓ１０１で取得された入力パスワードがユーザの過去の真正パスワードと一致するか否かを判断する（Ｓ１０８）。一致すれば、Ｓ１２１に進み、一致しなければＳ１０９に進む。
【００３４】
Ｓ１０９において、パスワードクラッキング判定部２６は、Ｓ１０１で取得された入力パスワードが、生成されたパスワード候補Ａのいずれかに一致するか否かを判断する。一致すれば、メッセージ送信部３０は、ユーザ装置１４に図６に示すメッセージを送信する（Ｓ１１０）。また、認証手順変更部２８は、ユーザ認証の手順を変更する。すなわち、Ｓ１０１で取得されるユーザＩＤに関連づけてパスワードテーブルに記憶されている失敗上限を数値ＮＡだけ減らす（Ｓ１１１）。
【００３５】
一方、Ｓ１０１で取得されたパスワードが、生成されたパスワード候補Ａのいずれかにも一致しなければ、パスワードクラッキング判定部２６は、Ｓ１０１で取得された入力パスワードが、生成されたパスワード候補Ｂのいずれかに一致するか否かを判断する（Ｓ１１３）。一致すれば、メッセージ送信部３０は、ユーザ装置１４に図６に示すメッセージを送信する（Ｓ１１４）。また、認証手順変更部２８は、ユーザ認証の手順を変更する。すなわち、Ｓ１０１で取得されるユーザＩＤに関連づけてパスワードテーブルに記憶されている失敗上限を数値ＮＢだけ減らす（Ｓ１１５）。ここで、数値ＮＡ、ＮＡは、デフォルトの失敗上限よりも小さな値であり、ＮＡはＮＢよりも小さな値である。例えばデフォルトの失敗上限が３であり、ＮＡは１であり、ＮＢは２である。すなわち、クラッキング困難な筈のパスワード候補Ｂが実際に入力されている場合には、比較的大きな数値ＮＢだけ失敗上限を減らし、直ちにアカウントがロックされるようにしている。
【００３６】
一方、Ｓ１０１で取得されたパスワードが、生成されたパスワード候補Ｂのいずれかにも一致しなければ（Ｓ１１３）、Ｓ１１４及びＳ１１５の処理をスキップし、Ｓ１１８に進む。
【００３７】
なお、Ｓ１１１において認証手順変更部２８は、Ｓ１０１で取得されるユーザＩＤに関連づけてパスワードテーブルに記憶されているパスワードハッシュを、新パスワードのハッシュに書き換えてよい。この場合、Ｓ１１０においてメッセージ送信部３０は、ユーザ装置１４に新パスワードを内容に含むメッセージを送信してよい。同様に、Ｓ１１５において認証手順変更部２８は、Ｓ１０１で取得されるユーザＩＤに関連づけてパスワードテーブルに記憶されているパスワードハッシュを、新パスワードのハッシュに書き換えてよい。この場合、Ｓ１１４においてメッセージ送信部３０は、ユーザ装置１４に新パスワードを内容に含むメッセージを送信してよい。また、このような真正パスワードの強制変更は、Ｓ１１１では行わず、Ｓ１１５でのみ行ってよい。そうすれば、クラッキング蓋然性に応じて、必要最小限と考えられる範囲で、真正パスワードの強制変更ができる。
【００３８】
その後、ユーザ認証部２２は、パスワードテーブルに記憶された失敗回数と失敗上限とを比較する（Ｓ１１８）。そして、失敗回数が失敗上限以上であれば、パスワードテーブルのアカウントロックのフラグを１に変更し（Ｓ１１９）、図５に示すパスワードロック通知ページのデータをユーザ装置１４に送信してから（Ｓ１２０）、処理を終了する。また、失敗回数が失敗上限未満であれば、図４に示す再ログインページのデータをユーザ装置１４に送信し（Ｓ１２１）、処理を終了する。
【００３９】
以上説明したユーザ認証システムによれば、ユーザ情報に基づいて悪意者が試みると予想されるパスワード候補を生成し、パスワード候補と実際にユーザ装置１４から送信されるパスワードとが一致又は類似するかを判断するので、パスワードクラッキングが行われている可能性があるか否かを好適に判断できる。また、パスワードクラッキングが行われている可能性がある場合に、パスワードやユーザ認証の失敗上限を変更することによりユーザ認証手順を変更するので、悪意者によるログインを防ぐことができる。
【００４０】
なお、本発明は上記実施形態に限定されるものではなく、種々の変形が可能である。例えば、ユーザ装置１４からユーザＩＤ及びパスワードを取得した場合に、パスワードクラッキングの可能性に応じたユーザ認証手順の変更を常に実行する必要はない。例えば、ユーザＩＤ及びパスワードを取得した時刻、ユーザ装置１４のネットワークアドレス、ユーザ装置１４の機種など、種々の情報により不正アクセスの可能性を判断し、不正アクセスの可能性がある場合にのみ、そのような処理を実行してよい。
【００４１】
また、パスワードクラッキングが行われている可能性があると判断する場合に、アカウントロックの継続時間、すなわちロック時間を延長してもよい。例えば、図１１のＳ１０９、Ｓ１１３、Ｓ１１６でイエス（Ｙ）となった回数（クラッキング回数＝警告メッセージの送信回数）をアカウントごとに計測しておき、このクラッキング回数に応じてロック時間をアカウントごとに延長してよい。例えば、クラッキング回数が所定値に達した場合に、ロック時間を所定時間だけ延長してよい。或いは、クラッキング回数が増えるほどロック時間が延びるようにしてもよい。或いは、アカウントごとにロック時間又はロック時間に加算されるべき時間（加算時間）を管理しておき、図１０のＳ１０９、Ｓ１１３、Ｓ１１６でＹとなる度に、ロック時間又は加算時間を所定時間ずつ増やしてよい。なお、クラッキング回数、ロック時間、加算時間は、アカウントロックを解除する際、それぞれ初期値にリセットしてよい。
【００４２】
また、認証情報記憶部２２ａは、各アカウントについて補助パスワードを記憶しておいてよい。この場合、Ｓ１２１の処理の前に、図１１のＳ１０９、Ｓ１１３、Ｓ１１６で、既に１度でもイエス（Ｙ）となっていると判断されれば、或いは２以上の所定回数以上、既にイエスとなっていると判断されれば、補助パスワードの入力をユーザに求めてよい。そして、ユーザ認証部２２は、入力された補助パスワードによるユーザ認証を実行してよい。この場合、補助パスワードによるユーザ認証に成功しない限り、図４に示す再ログインページのデータをユーザ装置１４に送信しないし、ユーザＩＤ及び（本来の）パスワードを用いたユーザ認証は実行しない。こうすれば、パスワードクラッキングが行われている可能性がある場合に、悪意者がログインに成功してしまうことを、さらに強力に防止できる。
【要約】
ユーザ情報が他人に知られても当該他人がユーザ認証に成功してしまうことを抑制する。ユーザ認証システムは、ユーザの入力パスワードを取得する認証情報取得部（２０）と、前記入力パスワードに基づいて前記ユーザの認証を実行するユーザ認証部（２２）と、前記ユーザの認証に失敗し、更に前記パスワードと、前記ユーザに関連づけられた情報に基づくパスワード候補と、が一致又は類似する場合に、前記ユーザの真正パスワードと、前記パスワード候補とが一致又は類似するか否かに応じて、前記ユーザ認証部（２２）による前記ユーザの認証の手順を変更する認証手順変更部（２８）と、を含む。【図１】
0005700897.tif 000002
【図２】
0005700897.tif 000003
【図３】
0005700897.tif 000004
【図４】
0005700897.tif 000005
【図５】
0005700897.tif 000006
【図６】
0005700897.tif 000007
【図７】
0005700897.tif 000008
【図８】
0005700897.tif 000009
【図９】
0005700897.tif 000010
【図１０】
0005700897.tif 000011
【図１１】
0005700897.tif 000012