(57)【要約】【課題】正規ユーザの利便性の低下を抑制しつつ、パスワード認証の安全性を高める。【解決手段】桁コード生成部４２は、正規ユーザが登録したパスワードの各桁に対して、複数の記号の中から特定の記号を桁記号として割り当てる。桁コード通知部４４は、パスワードの各桁の桁記号を正規ユーザへ通知する。エラー処理部５４は、被認証ユーザが入力した文字列がパスワードと不一致の場合に、不一致の状況を桁記号により示すエラー情報を被認証ユーザへ通知する。エラー処理部５４は、エラー情報の通知後に被認証ユーザが再入力した文字列が、パスワードと不一致、かつ、過去一致した桁が今回不一致である場合に、被認証ユーザを不正ユーザと判定する。【選択図】図２
2014164672.tif 000002
【特許請求の範囲】
【請求項１】
正規ユーザが登録したパスワードを記憶するパスワード保持部と、
前記パスワードの各桁に対して割り当てた記号を桁記号として記憶する桁記号保持部と、
前記パスワードの各桁の桁記号を正規ユーザへ通知する桁記号通知部と、
被認証ユーザが入力した文字列が前記パスワードと不一致の場合に、不一致の状況を前記桁記号により示すエラー情報を前記被認証ユーザへ通知するエラー処理部と、
を備え、
前記エラー処理部は、前記エラー情報を通知後に前記被認証ユーザが再入力した文字列が、前記パスワードと不一致、かつ、過去一致した桁が今回不一致である場合に、前記被認証ユーザを不正ユーザと判定することを特徴とする認証装置。
【請求項２】
正規ユーザが登録したパスワードを記憶するパスワード保持部と、
前記パスワードの各桁に対して割り当てた記号を桁記号として記憶する桁記号保持部と、
前記パスワードの各桁の桁記号を正規ユーザへ通知する桁記号通知部と、
被認証ユーザが入力した文字列が前記パスワードと不一致の場合に、不一致の状況を前記桁記号により示すエラー情報を前記被認証ユーザへ通知するエラー処理部と、
を備え、
前記エラー処理部は、前記エラー情報を通知後に前記被認証ユーザが再入力した文字列が、前記パスワードと不一致、かつ、過去一致した桁が今回も一致する場合に、前記被認証ユーザによる文字列のさらなる再入力を許可することを特徴とする認証装置。
【請求項３】
正規ユーザが登録したパスワードの各桁に対して、複数の記号の中から特定の記号を桁記号として割り当てるステップと、
前記パスワードの各桁の桁記号を正規ユーザへ通知するステップと、
被認証ユーザが入力した文字列が前記パスワードと不一致の場合に、不一致の状況を前記桁記号により示すエラー情報を前記被認証ユーザへ通知するステップと、
前記エラー情報の通知後に前記被認証ユーザが再入力した文字列が、前記パスワードと不一致、かつ、過去一致した桁が今回不一致である場合に、前記被認証ユーザを不正ユーザと判定するステップと、
を情報処理装置が実行することを特徴とする認証方法。
【請求項４】
正規ユーザが登録したパスワードの各桁に対して、複数の記号の中から特定の記号を桁記号として割り当てるステップと、
前記パスワードの各桁の桁記号を正規ユーザへ通知するステップと、
被認証ユーザが入力した文字列が前記パスワードと不一致の場合に、不一致の状況を前記桁記号により示すエラー情報を前記被認証ユーザへ通知するステップと、
前記エラー情報の通知後に前記被認証ユーザが再入力した文字列が、前記パスワードと不一致、かつ、過去一致した桁が今回も一致する場合に、前記被認証ユーザによる文字列のさらなる再入力を許可するステップと、
を情報処理装置が実行することを特徴とする認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理技術に関し、特に、パスワードを用いた認証技術に関する。
【背景技術】
【０００２】
現在、パスワードを用いてユーザの本人確認を行うパスワード認証が広く普及している。パスワード認証の主な手法として、パスワード文字列をユーザが記憶し、認証が必要な際に、ユーザがパスワード文字列をシステムに入力する手法がある。例えば以下の特許文献１では、利用者が誤ったパスワード文字列を入力した場合に、誤りのある桁の位置を示す情報を利用者へ提供する技術を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１４９３８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、他人のパスワードを窃取しようとする攻撃者が採る手法として、総当たり攻撃がよく知られている。既述したように、上記の特許文献１の技術では、ユーザの利便性を維持するために誤り桁の位置をログイン試行者へ提供する。しかし、ログイン試行者が攻撃者であった場合、攻撃者が誤り桁の文字を何度も変更することで正規ユーザのパスワードを特定することが可能になってしまうと本発明者は考えた。
【０００５】
本発明は本発明者の上記課題認識にもとづきなされたものであり、その主な目的は、正規のユーザの利便性低下を抑制しつつ、パスワード認証の安全性を効果的に高める技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の認証装置は、正規ユーザが登録したパスワードを記憶するパスワード保持部と、パスワードの各桁に対して割り当てた記号を桁記号として記憶する桁記号保持部と、パスワードの各桁の桁記号を正規ユーザへ通知する桁記号通知部と、被認証ユーザが入力した文字列がパスワードと不一致の場合に、不一致の状況を桁記号により示すエラー情報を被認証ユーザへ通知するエラー処理部と、を備える。エラー処理部は、エラー情報を通知後に被認証ユーザが再入力した文字列が、パスワードと不一致、かつ、過去一致した桁が今回不一致である場合に、被認証ユーザを不正ユーザと判定する。
【０００７】
本発明の別の態様もまた、認証装置である。この装置は、正規ユーザが登録したパスワードを記憶するパスワード保持部と、パスワードの各桁に対して割り当てた記号を桁記号として記憶する桁記号保持部と、パスワードの各桁の桁記号を正規ユーザへ通知する桁記号通知部と、被認証ユーザが入力した文字列がパスワードと不一致の場合に、不一致の状況を桁記号により示すエラー情報を被認証ユーザへ通知するエラー処理部と、を備える。エラー処理部は、エラー情報を通知後に被認証ユーザが再入力した文字列が、パスワードと不一致、かつ、過去一致した桁が今回も一致する場合に、被認証ユーザによる文字列のさらなる再入力を許可する。
【０００８】
本発明のさらに別の態様は、認証方法である。この方法は、正規ユーザが登録したパスワードの各桁に対して、複数の記号の中から特定の記号を桁記号として割り当てるステップと、パスワードの各桁の桁記号を正規ユーザへ通知するステップと、被認証ユーザが入力した文字列がパスワードと不一致の場合に、不一致の状況を桁記号により示すエラー情報を被認証ユーザへ通知するステップと、エラー情報の通知後に被認証ユーザが再入力した文字列が、パスワードと不一致、かつ、過去一致した桁が今回不一致である場合に、被認証ユーザを不正ユーザと判定するステップと、を情報処理装置が実行する。
【０００９】
本発明のさらに別の態様もまた、認証方法である。この方法は、正規ユーザが登録したパスワードの各桁に対して、複数の記号の中から特定の記号を桁記号として割り当てるステップと、パスワードの各桁の桁記号を正規ユーザへ通知するステップと、被認証ユーザが入力した文字列がパスワードと不一致の場合に、不一致の状況を桁記号により示すエラー情報を被認証ユーザへ通知するステップと、エラー情報の通知後に被認証ユーザが再入力した文字列が、パスワードと不一致、かつ、過去一致した桁が今回も一致する場合に、被認証ユーザによる文字列のさらなる再入力を許可するステップと、を情報処理装置が実行する。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、正規ユーザの利便性の低下を抑制しつつ、パスワード認証の安全性を効果的に高めることができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態の情報処理システムの構成を示す図である。
【図２】図１の認証サーバの機能構成を示すブロック図である。
【図３】エラー履歴の構成を示す図である。
【図４】認証サーバの動作を示すフローチャートである。
【図５】アカウント登録画面を示す図である。
【図６】桁コード通知画面を示す図である。
【図７】認証サーバの動作を示すフローチャートである。
【図８】ログイン画面を示す図である。
【図９】ログイン画面を示す図である。
【図１０】誤り桁の推移と判定結果の例を示す図である。
【発明を実施するための形態】
【００１３】
実施の形態の構成を説明する前に概要を説明する。
パスワード認証の主な手法の１つに、パスワード文字列をユーザに記憶させ、システムへのログイン時等、認証が必要な際に、ユーザにパスワード文字列をシステムへ入力させる手法がある。この手法について、本発明者は以下の問題点を認識した。
（１）パスワードの入力フィールドに入力した文字は、多くの場合、伏字（例えば「＊」等）で表示されるため、どの部分で誤ったかがわかりづらい。
（２）攻撃者により総当たり攻撃を受けるとパスワードが判明してしまう。
【００１４】
ところで、ユーザが申告したパスワードを用いてユーザ認証を実行するシステムでは、認証の失敗回数に制限を設けることがある。例えば、認証の失敗回数が３回に達するとユーザのアカウントを自動的にロックし、以降のログインを拒否するシステムもある。その一方、スマートフォン等の携帯情報端末が急速に普及する中、携帯情報端末は一般的に情報入力の操作性が高くなく、正規のユーザであっても意図せず間違ったパスワードを入力することは今後も発生すると見込まれる。正規のユーザに対してアカウントをロックしてしまうと、正規のユーザの利便性を損なってしまうと考えられる。
【００１５】
そこで実施の形態の認証装置では、ユーザによるパスワード登録時に、パスワードの各文字桁に対応する何らかの記号（以下、「桁コード」とも呼ぶ。）をランダムに生成し、パスワードの各文字桁に対応する桁コードをユーザへ提示する。その後の認証処理において、ユーザ（以下、「ログイン試行者」とも呼ぶ。）がパスワードとして入力した文字列が登録済みのパスワードと不一致であれば、不一致の桁を示す桁コードをログイン試行者に提示する。これにより、入力したパスワードが誤っている箇所を、予め桁コードを通知した正規ユーザのみが判別可能な形で示すことができる。
【００１６】
また実施の形態の認証装置では、連続認証失敗回数が２回以上の場合に、入力パスワードについて、過去の認証処理において登録済みのパスワードと一致した桁が、今回の比較で不一致となっていないかを確認する。そして、過去にない誤り桁が未発生であれば再度の認証を許可する一方、過去にない誤り桁が発生した場合は、認証要求元が正規ユーザでなく攻撃者であると判定して以降の認証を拒否する。
【００１７】
これにより、正規ユーザに対しては、誤ったパスワードを入力しても、再度の認証を許可しつつ、誤り位置を桁コードで提示することで正しいパスワードの入力を支援し、パスワード認証における正規ユーザの利便性の低下を抑制する。また、攻撃者を迅速に特定でき、攻撃者によるパスワード窃取をブロックできる。例えば、総当たり攻撃によって正規ユーザのパスワードが特定されてしまうことを防止できる。
【００１８】
図１は、実施の形態の情報処理システムの構成を示す。情報処理システム１００は、ユーザ端末１０で総称されるユーザ端末１０ａ、ユーザ端末１０ｂ、ユーザ端末１０ｃと、認証サーバ１２と、業務サーバ１４を備える。図１の各装置は、ＬＡＮ・ＷＡＮ・インターネット等を含む通信網１６を介して接続される。
【００１９】
ユーザ端末１０は、ユーザが操作する情報機器である。ユーザ端末１０は、認証サーバ１２や業務サーバ１４から提供された情報を所定のディスプレイに表示させる。典型的には、ユーザ端末１０にはウェブブラウザがインストールされており、ログイン画面やサービス画面を示すウェブページを表示させる。ユーザ端末１０は、スマートフォンや、携帯電話機、タブレット端末、一般的なＰＣであってもよい。
【００２０】
認証サーバ１２は、業務サーバ１４へのアクセスを要求する（以下では「認証サーバ１２へのログインを要求する」とも言う。）ユーザに対する本人確認処理を実行する情報処理装置である。認証サーバ１２は、パスワード認証により、ログイン試行者が正規ユーザか否かを確認する。認証サーバ１２が、ログイン試行者が正規ユーザであると認定したことを認証に成功したとも言い、ログイン試行者が正規ユーザでないと認定したことを認証に失敗したとも言う。
【００２１】
業務サーバ１４は、認証サーバ１２によるパスワード認証が成功した正規ユーザに対して所定のサービスを提供する。例えば、正規ユーザのユーザ端末１０に対して、正規ユーザへの提供が許可された種々の情報（例えば商品の購入画面や、ユーザの個人情報、会社の業務情報等）を記載したウェブページを送信して表示させる。
【００２２】
実施の形態の説明における「正規ユーザ」は、業務サーバ１４に対する正当なアクセス権限を有するユーザである。認証サーバ１２に対して正規の手続でアカウントを登録した（ＩＤとパスワードを登録した）ユーザであるとも言える。また実施の形態の「ログイン試行者」は、認証サーバ１２へのログインを要求するユーザであり、認証サーバ１２による認証を受ける被認証ユーザと言える。ログイン試行者は、正規ユーザであるかもしれないし、正規ユーザを騙り、すなわち正規ユーザのＩＤを指定して不正なログインを行おうとする攻撃者であるかもしれない。
【００２３】
図２は、図１の認証サーバ１２の機能構成を示すブロック図である。認証サーバ１２は、パスワード認証のための各種データ処理を実行する制御部２０と、各種設定情報や、制御部２０による処理対象のデータを記憶する領域であるデータ保持部２２を備える。図２には不図示だが、認証サーバ１２は、所定の通信プロトコルにしたがって外部装置と通信する通信処理部も備える。制御部２０は、通信処理部を介して、外部装置と適宜データを送受する。
【００２４】
本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２５】
例えば、図２の各機能ブロックに対応するプログラムモジュールが認証サーバ１２のストレージに格納されてよい。そして認証サーバ１２のＣＰＵがそれらのプログラムモジュールをメインメモリへ読み出して実行することにより、制御部２０の機能が実現されてよい。また、データ保持部２２は、ストレージやメインメモリ等の記憶装置により実現されてよい。
【００２６】
データ保持部２２は、パスワード保持部３０と、桁コード保持部３２と、エラー履歴保持部３４を含む。パスワード保持部３０は、正規ユーザが登録したユーザＩＤとパスワード文字列（以下、「登録パスワード」とも呼ぶ。）を対応づけて保持する。桁コード保持部３２は、正規ユーザが登録したパスワード文字列に対して後述の桁コード生成部４２が割り当てた桁コードを保持する。具体的には、ユーザＩＤと、各桁の識別情報と、各桁の桁コードとを対応づけて保持する。
【００２７】
エラー履歴保持部３４は、ログイン試行者に対する認証処理の状況を蓄積する。特に、ログイン試行者がパスワードとして入力したパスワード文字列と、登録パスワードとの不一致の状況の推移を示す情報をエラー履歴として蓄積する。図３は、エラー履歴の構成を示す。エラー履歴保持部３４は、エラー履歴として、あるログイン試行者に対する一連の認証処理の識別情報である認証ＩＤと、ログイン試行者が入力したユーザＩＤと、認証回数と、不一致箇所を示す誤り桁の識別情報を対応づけて保持する。
【００２８】
図２に戻り、制御部２０は、アカウント登録部４０と、桁コード生成部４２と、桁コード通知部４４と、ログイン画面提供部４６と、入力文字列取得部４８と、認証判定部５０と、認証成功処理部５２と、エラー処理部５４を含む。
【００２９】
アカウント登録部４０は、アカウント登録画面をユーザ端末１０へ送信して表示させる。そして、アカウント登録画面に対してユーザが入力したユーザＩＤとパスワードのデータをユーザ端末１０から受信する。アカウント登録部４０は、ユーザ端末１０から受信したユーザＩＤとパスワードを対応づけてパスワード保持部３０へ記録する。このように自身のアカウントを認証サーバ１２へ登録したユーザを実施の形態では正規ユーザと呼ぶ。
【００３０】
桁コード生成部４２は、アカウント登録部４０が取得した正規ユーザのパスワード文字列について、その複数の桁のそれぞれに対して、予め定められた複数の記号の中からランダムに特定の記号を割り当てる。その際、互いに異なる記号を各桁に割り当てる。また、同じ桁（例えば１桁目）であっても、ユーザ毎に異なる記号を割り当てることが望ましく、実施の形態ではユーザ毎にランダムに各桁に対して記号を選択する。パスワード文字列の各桁に割り当てた記号を以下「桁コード」と呼ぶ。
【００３１】
桁コードは、任意の文字（アルファベットや漢字、平仮名等）でもよく、任意の数字でもよく、任意の絵柄やイラストでもよい。また、１桁に対して複数個の記号を割り当ててもよい。例として、桁コード生成部４２は、４桁のパスワード「ｔａｒｏ」に対して、その１桁目を示す記号として「Ａ」、２桁目を示す記号として「Ｑ」、３桁目を示す記号として「ｒ」、４桁目を示す記号として「８」を割り当ててもよい。
【００３２】
ただし桁コードは、パスワードを登録した本人以外には何番目の桁を示すものかの判別が困難であることが望ましい。したがって、例えばパスワードの１桁目に割り当てる記号として「１桁目」「１番目」「１」を明示的に示す文字や数字、イラストは除外することが望ましい。言い換えれば、特定の記号について、パスワードの登録者以外の人が特定の桁位置との関連を想起すると想定される場合、その特定の記号は、その特定の桁位置を示す記号から除外することが望ましい。桁コード生成部４２は、生成した桁コード（例えば記号「Ａ」）を、正規ユーザのＩＤおよび桁の識別情報（例えば「１桁目」）と対応づけて桁コード保持部３２へ格納する。
【００３３】
桁コード通知部４４は、桁コード生成部４２が生成した桁コードを、アカウントを登録した正規ユーザのユーザ端末１０へ通知する。実施の形態では、アカウント登録要求への応答として、パスワードの各桁に割り当てた桁コードを示す桁コード通知画面をユーザ端末１０へ送信して表示させる。このように、桁コードは、パスワードの桁位置との対応関係をパスワードの登録者のみが知りうる符丁と言える。
【００３４】
ログイン画面提供部４６は、認証サーバ１２へのログイン画面をユーザ端末１０へ送信して表示させる。例えば、正規ユーザもしくは攻撃者（以下、「ログイン試行者」とも呼ぶ。）がユーザ端末１０を介して業務サーバ１４にアクセスした場合に、認証サーバ１２に未ログイン（認証サーバ１２による認証が未実施）であれば、業務サーバ１４は認証サーバ１２のログイン画面へリダイレクトさせてもよい。このログイン画面には、ユーザＩＤの入力フィールドとパスワードの入力フィールドが設けられる。
【００３５】
入力文字列取得部４８は、ログイン画面に対してログイン試行者が入力したユーザＩＤ（以下、「入力ＩＤ」と呼ぶ。）およびパスワード（以下、「入力パスワード」とも呼ぶ。）の文字列をユーザ端末１０から受信する。認証判定部５０は、パスワード保持部３０において入力ＩＤに対応づけられた登録パスワードを特定し、入力パスワードと登録パスワードが一致するか否かを判定する。一致する場合、認証の成功を示す情報をユーザＩＤに対応づけて認証成功処理部５２に渡す。
【００３６】
入力パスワードと登録パスワードが不一致の場合、認証判定部５０は、入力パスワードと登録パスワードの不一致の箇所を特定する。具体的には、入力パスワードの何桁目が登録パスワードと不一致かを特定する。言い換えれば、登録パスワードの何桁目が正しく入力されなかったかを特定する。認証判定部５０は、認証の失敗を示す情報と、ユーザＩＤと、不一致箇所を示す誤り桁の情報をエラー処理部５４に渡す。
【００３７】
認証成功処理部５２は、認証判定部５０から認証の成功が通知された場合に、ログイン試行者に対する予め定められた認証成功時処理を実行する。例えば、ログインに成功した旨を示すウェブページをログイン試行者のユーザ端末１０へ送信して表示させてもよい。また、認証サーバ１２へのログインに成功した旨のデータを含み、業務サーバ１４へのリダイレクト命令を含むウェブページ（ＨＴＭＬコード）をユーザ端末１０へ送信してもよい。なお認証成功処理部５２は、認証に成功したユーザＩＤと対応づけられたエラー履歴がエラー履歴保持部３４に存在する場合、そのエラー履歴を削除する。
【００３８】
エラー処理部５４は、認証判定部５０から認証失敗が通知された場合に、ログイン試行者に対する認証失敗時の処理を実行する。エラー処理部５４は、エラー履歴更新部６０と、攻撃者判定部６２と、エラー情報生成部６４と、認証失敗処理部６６を含む。
【００３９】
エラー履歴更新部６０は、認証判定部５０から渡されたユーザＩＤと誤り桁の情報を、認証ＩＤと対応づけてエラー履歴保持部３４に格納する。図３で示すように、認証判定部５０から渡されたユーザＩＤ（すなわち入力ＩＤ）と同じユーザＩＤが設定されたエラー履歴が既に存在する場合、エラー履歴更新部６０は、既存のエラー履歴の認証回数を増加させ、誤り桁の情報を追加的に記録する。
【００４０】
変形例として、ユーザＩＤにより既存のエラー履歴の存在を判定することに代えて、セッションＩＤにより既存のエラー履歴の存在を判定してもよい。例えば、ログイン画面を提供したログイン試行者のユーザ端末１０にセッションＩＤを発行し、認証判定部５０は認証の失敗をセッションＩＤとともに通知し、エラー履歴更新部６０はセッションＩＤをエラー履歴に含めて記録してもよい。エラー履歴更新部６０は、認証判定部５０から渡されたセッションＩＤと同じセッションＩＤが設定されたエラー履歴が既に存在する場合に、既存のエラー履歴の認証回数を増加させ、誤り桁の情報を追加的に記録してもよい。
【００４１】
攻撃者判定部６２は、エラー履歴更新部６０に記録されたエラー履歴のうち、入力ＩＤに対応づけられたエラー履歴を参照して、認証に失敗したログイン試行者が攻撃者か否かを判定する。言い換えれば、認証に失敗したログイン試行者が、攻撃者と認定するための所定基準に合致するか否かを判定し、その基準に合致する場合にログイン試行者を攻撃者と認定する。
【００４２】
具体的には、ログイン試行者に対する認証失敗回数が１回であれば、ログイン試行者に対する再認証処理の実行を許可する。言い換えれば、ログイン試行者がパスワードを再度入力することを許可し、ログインのチャンスを再度与える。この場合、攻撃者判定部６２は、エラー情報の生成をエラー情報生成部６４に指示する。
【００４３】
その一方、ログイン試行者に対する認証失敗回数が２回以上であれば、攻撃者判定部６２は、入力パスワードの誤り桁（登録パスワードと不一致の桁）について、過去の認証処理での誤り桁と、今回の認証処理での誤り桁とを比較する。言い換えれば、過去一致した桁と今回一致した桁との異同を判定する。
【００４４】
攻撃者判定部６２は、過去一致した桁が今回不一致である場合、言い換えれば、過去になかった新たな誤り桁が生じた場合、ログイン試行者を攻撃者と判定し、その旨を認証失敗処理部６６へ通知する。この場合、ログイン試行者に対する以後の認証処理を拒否することになる。過去一致した桁が今回も一致する場合、言い換えれば、過去になかった新たな誤り桁が生じていない場合、ログイン試行者を攻撃者とは認定せず、ログイン試行者に対する再度の認証を許可する。この場合、認証失敗回数が１回の時と同様に、エラー情報の生成をエラー情報生成部６４に指示する。
【００４５】
エラー情報生成部６４は、攻撃者判定部６２からエラー情報の生成指示を受け付けると、パスワード認証エラーの内容を少なくとも一部の桁コードにより示すエラー情報を生成する。そして、生成したエラーコードをログイン試行者に提示する。
【００４６】
具体的には、エラー情報生成部６４は、ログイン試行者の入力ＩＤに対応づけられた桁コードを桁コード保持部３２から取得する。そして、登録パスワードの各桁に対応する桁コードのうち、入力パスワードの誤り桁に対応する桁コードをエラーコードとして抽出する。エラー情報生成部６４は、抽出したエラーコードをログイン画面提供部４６に渡す。ログイン画面提供部４６は、ログイン試行者に再度パスワードを入力させるためのログイン画面であり、エラーコードを設定したログイン画面のデータをユーザ端末１０へ送信して表示させる。
【００４７】
認証失敗処理部６６は、攻撃者判定部６２からログイン試行者を攻撃者と判定した旨が通知された場合に、攻撃者に対する予め定められた処理を実行する。実施の形態では、ログイン試行者に対する以降の認証処理を拒否するための処理を実行する。例えば、ログイン試行者が入力したユーザＩＤに対するアカウントロック処理を実行し、そのユーザＩＤを用いた以降のログインを入力パスワードに関わらず拒否するよう設定してもよい。また、ログイン試行者のユーザ端末１０のＩＰアドレスを拒否アドレスとして記録し、そのＩＰアドレスが設定された装置からの認証要求を常に拒否するよう設定してもよい。
【００４８】
以上の構成による認証サーバ１２の動作を以下説明する。
図４は、認証サーバ１２の動作を示すフローチャートである。同図は、認証サーバ１２におけるユーザアカウント登録に関する動作を示している。アカウント登録部４０は、アカウント登録画面の提供をユーザ端末１０から要求されると、アカウント登録画面のデータをユーザ端末１０へ送信する。図５はアカウント登録画面を示す。アカウント登録を希望するユーザが所望のユーザＩＤとパスワードを入力して登録ボタンを押下すると、ユーザ端末１０は、入力されたユーザＩＤとパスワードを指定したアカウント登録の要求電文を認証サーバ１２へ送信する。
【００４９】
アカウント登録部４０は、アカウント登録の要求電文を受け付けると（Ｓ１０のＹ）、その電文で指定されたユーザＩＤとパスワードをパスワード保持部３０へ格納する（Ｓ１２）。桁コード生成部４２は、登録パスワード（例えば「ｔａｒｏ」）の各桁に対応する桁コード（例えば「ＡＱｒ８」）を生成して桁コード保持部３２へ格納する（Ｓ１４）。桁コード通知部４４は、生成された桁コードをユーザ端末１０へ通知する（Ｓ１６）。アカウント登録要求を受け付けなければ（Ｓ１０のＮ）、Ｓ１２〜Ｓ１６をスキップする。
【００５０】
図６は桁コード通知画面を示す。ここでは図５の「ｔａｒｏ」が登録パスワードであることとし、図６では、パスワードの１桁目〜４行目を示すコードとして、それぞれ「Ａ」「Ｑ」「ｒ」「８」が割り当てられたことを示している。なお図の「Ｏｖｅｒ」は、入力パスワードの文字数が、登録パスワードの文字数を超過したことを示すものであり、この例では桁コード「９」を割り当てている。
【００５１】
図７も、認証サーバ１２の動作を示すフローチャートである。同図は、認証サーバ１２におけるユーザ認証処理に関する動作を示している。認証サーバ１２へのログインを希望する、言い換えれば、業務サーバ１４へのアクセスを希望するログイン試行者のユーザ端末１０は、ログイン画面の提供を認証サーバ１２へ要求する。その要求を受け付けると（Ｓ２０のＹ）、ログイン画面提供部４６は、ログイン画面のデータをユーザ端末１０へ送信する（Ｓ２２）。
【００５２】
図８はログイン画面を示す。本来のパスワードは「ｔａｒｏ」であるところ、ここではログイン試行者が「ｊｉｒｏ」と入力したこととする。また図８のログイン画面ではパスワードフィールドへの入力文字を伏字で表示している。ユーザがログインボタンを押下すると、ユーザ端末１０は、ログイン画面に入力されたユーザＩＤとパスワードを指定した認証要求電文（言い換えればログイン要求電文）を認証サーバ１２へ送信する。
【００５３】
図７に戻り、入力文字列取得部４８は、ユーザ端末１０からの認証要求電文を待ち（Ｓ２４のＮ）、認証要求電文を受け付けると（Ｓ２４のＹ）、その電文で指定された入力ＩＤと入力パスワードのデータを認証判定部５０に渡す。認証判定部５０は、入力ＩＤと入力パスワードの組み合わせがパスワード保持部３０に存在する場合、言い換えれば、入力ＩＤに対応づけられた登録パスワードと、入力パスワードとが一致する場合に、ログイン試行者の認証に成功したと判定する。認証に成功すると（Ｓ２６のＹ）、認証成功処理部５２は、ログイン試行者に対して所定の認証成功時処理を実行する（Ｓ２８）。例えば、ログイン試行者のユーザ端末１０を業務サーバ１４へリダイレクト接続させるための処理を実行する。
【００５４】
認証に失敗すると（Ｓ２６のＮ）、認証判定部５０は誤り桁を特定し（Ｓ３０）、エラー履歴更新部６０はエラー履歴保持部３４にエラー履歴を記録する（Ｓ３２）。例えばエラー履歴更新部６０は、入力ＩＤと同じＩＤを指定したエラー履歴が記録済みであれば、既存のエラー履歴の認証回数をインクリメントして誤り桁を記録する。また入力ＩＤと同じＩＤを指定したエラー履歴が未記録であれば、その入力ＩＤを指定した新規のエラー履歴をエラー履歴保持部３４に記録する。
【００５５】
攻撃者判定部６２は、ログイン試行者の入力ＩＤに対応づけられたエラー履歴を参照して認証失敗回数を特定する。認証失敗回数が１回であれば（Ｓ３４のＮ）、エラー情報生成部６４は、入力パスワードと登録パスワードの不一致の状況を、入力ＩＤに対応づけられた桁コードを用いて示すエラーコードを作成し、ログイン画面提供部４６に渡す（Ｓ３６）。以降Ｓ２２に戻り、ログイン画面提供部４６は、エラーコードを含むログイン画面のデータをユーザ端末１０へ送信して表示させる。
【００５６】
図９はログイン画面を示す。図８で既述したように、登録パスワードが「ｔａｒｏ」であるところ、入力パスワードは「ｊｉｒｏ」である。すなわち、入力パスワードの１桁目と２桁目とが不正である。そのため図９のログイン画面では、図６の桁コードのうち１桁目を示す「Ａ」と、２桁目を示す「Ｑ」をエラーコードとして示している。ログイン試行者が正規ユーザであれば、パスワード登録時に桁コードを通知済みであるため、エラーコード「Ａ」「Ｑ」を見て、誤り桁を把握することができる。このように、正規ユーザにのみ把握可能な態様で入力パスワードの誤り桁を示すことで、ログイン試行者が正規ユーザである場合に、正しいパスワードを入力することを支援できる。その一方、ログイン試行者が不正な攻撃者であれば、エラーコードを見ても誤り桁を判別することはできない。
【００５７】
図７に戻り、認証失敗回数が２回以上であれば（Ｓ３４のＹ）、攻撃者判定部６２は、過去正解した桁（入力パスワードと登録パスワードとが一致した桁）に、今回の認証で誤りが発生したか否かを確認する。過去正解した桁に誤りがなければ、（Ｓ３８のＮ）、Ｓ３６へ移行する。その一方、過去正解した桁に誤りが発生した場合（Ｓ３８のＹ）、攻撃者判定部６２は、ログイン試行者を不正なユーザと認定する。そして認証失敗処理部６６は、ログイン試行者に対して所定の認証失敗時処理を実行する（Ｓ４０）。例えば、認証を拒否する旨を記載したウェブページをログイン試行者のユーザ端末１０へ提供して表示させる。ユーザ端末１０からログイン画面の提供要求を受け付けなければ（Ｓ２０のＮ）、以降の処理をスキップして本図のフローを終了する。
【００５８】
なお図７には不図示だが、認証時の入力パスワードが登録パスワードより長い場合、認証判定部５０は、その旨をエラー処理部５４へ通知し、エラー処理部５４のエラー履歴更新部６０は、エラー履歴に「Ｏｖｅｒ」を記録する。攻撃者判定部６２は、エラー履歴に「Ｏｖｅｒ」が存在する場合に、その後の認証失敗時に再度「Ｏｖｅｒ」が検出されると、言い換えれば、再入力されたパスワードも登録パスワードより長ければ、その時点でログイン試行者を攻撃者と判定する。すなわち、「Ｏｖｅｒ」が複数回連続して記録されると、即時に攻撃者と判定する。
【００５９】
図１０は、誤り桁の推移と判定結果の例を示す。同図の認証ＩＤ、ユーザＩＤ、認証回数、誤り桁のデータは、エラー履歴保持部３４に保持されるエラー履歴を示している。入力ＩＤ「ｓａｔｏ」に対する認証処理では、３回認証に失敗しているが、２回目以降の誤り桁はいずれも前回の誤り桁に含まれる。言い換えれば、認証２回目では、認証１回目の誤り桁にない新たな誤り桁は発生しておらず、認証３回目でも、認証２回目の誤り桁にない新たな誤り桁は発生していない。したがって攻撃者判定部６２は、ログイン試行者を攻撃者と認定することはなく再認証を許可し、エラー情報生成部６４は、エラーコードをログイン試行者へ提示する。この例では４回目に認証成功となっている。なお、認証１回目で「Ｏｖｅｒ」が検出されているため、仮に認証２回目以降で「Ｏｖｅｒ」が検出された場合は、その時点でログイン試行者を攻撃者と認定し、ログイン試行者に対する以後の認証処理を拒否する。
【００６０】
その一方、入力ＩＤ「ｔａｎａｋａ」に対する認証処理では、２回認証に失敗しており、認証２回目では、認証１回目の誤り桁にない新たな誤り桁「４」が発生している。したがって攻撃者判定部６２は、ログイン試行者を攻撃者と認定する。その結果、エラーコードをログイン試行者へ提示して再度パスワード入力の機会を与えることはなく、ログイン試行者に対する以後の認証処理を拒否する。
【００６１】
また、入力ＩＤ「ｙａｍａｄａ」に対する認証処理では、３回認証に失敗しており、誤り桁「１」が、認証２回目で一旦解消されながら、認証３回目で再び生じている。攻撃者判定部６２は、最新のエラー履歴（図の例では認証１回目ではなく認証２回目のエラー履歴）にもとづいて攻撃者を認定する。具体的には、ある認証失敗時の誤り桁が、その直前の認証失敗時の誤り桁に含まれなければ、ログイン試行者を攻撃者として認定する。「ｙａｍａｄａ」の例では、認証３回目の誤り桁「１」は、認証１回目では検出されたものの、直前の認証２回目では未検出であったため、認証３回目において攻撃者として認定する。
【００６２】
このように認証サーバ１２は、１回目の認証失敗時に、ログイン試行者へエラーコードを通知する。その後、ログイン試行者が再度ログインを試行した場合に、これまでにない誤り桁が発生した場合、ログイン試行者は桁コードを知らない不正ユーザと考えられる。そこで認証サーバ１２は、エラーコード通知後の入力パスワードの認証において、これまでにない新たな誤り桁が発生すると、ログイン試行者に対する以降の認証を拒否する。例えば、アカウントレベルもしくはＩＰアドレスレベルで認証要求の受け付けを拒否する。
【００６３】
これにより、正規ユーザに対しては、パスワード入力に誤りがあっても、エラーコードを提示しつつ再度のログイン試行を許可することで、ログインの利便性低下を抑制する。その一方、パスワード認証において過去にない誤り桁が発生した時点で以後の認証を拒否することで、桁コードを知らない攻撃者によるログイン試行を迅速に排除でき、攻撃者の総当たり攻撃によるパスワードの漏洩を効果的に防止できる。
【００６４】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下変形例を示す。
【００６５】
第１の変形例を説明する。上記実施の形態では、登録パスワードに対して予め生成した桁コードの中から、入力パスワードと登録パスワードが不一致の桁を示す桁コードを抽出してログイン試行者へ提示することとした。変形例として、桁コードの中から、入力パスワードと登録パスワードが一致する桁を示す桁コードを抽出してログイン試行者へ提示してもよい。別の変形例として、各桁の桁コードを並べ、そのうち不一致の箇所もしくは一致の箇所の桁コードを別の記号に変換した桁コード列をログイン試行者へ提示してもよい。すなわちエラー処理部５４は、入力パスワードと登録パスワードの不一致の状況であり、逆に言えば一致の状況を、桁コードの少なくとも一部を用いてログイン試行者へ提示してよい。この変形例においても、ログイン試行者が正規ユーザであれば、入力パスワードの誤り桁を認識させ、正しいパスワードの入力を支援できる。
【００６６】
第２の変形例を説明する。上記実施の形態では言及していないが、攻撃者判定部６２は、認証処理の失敗回数が予め定められた規定回数に達した場合も、ログイン試行者を攻撃者と判定してよく、以後の認証処理を拒否することを決定してもよい。ただし、上記の規定回数は、認証処理失敗の一般的な許容回数（例えば３回）より大きい値に設定される。例えば１０回や２０回等に設定されてもよい。
【００６７】
第３の変形例を説明する。上記実施の形態の桁コード通知部４４は、登録パスワードに対応する桁コードを、アカウント登録の応答画面にてパスワード登録者のユーザに提示した。変形例として、桁コード通知部４４は、桁コードを記載した電子メールを登録者の端末へ送信してもよい。また、桁コードは手紙等のオフラインで登録者へ通知されてもよく、この場合、桁コード通知部４４は、桁コードを通知すべき正規ユーザの情報を記憶する装置やファイル等に桁コードを記録してもよく、言い換えれば、正規ユーザへの桁コード通知を支援する所定の処理を実行してもよい。
【００６８】
第４の変形例を説明する。上記実施の形態では、ユーザの認証に成功した場合、そのユーザＩＤ（既述したようにセッションＩＤでもよい）に対応づけられたエラー履歴を削除した。変形例として、認証成功時に、認証成功処理部５２は、パスワード認証に成功したユーザに関するエラー履歴をその後の攻撃者判定では無効としつつ、所定の記憶領域に保存してもよい。例えば、認証成功時に、エラー履歴を削除することに代えて、攻撃者判定に使用しないことを示す無効フラグをエラー履歴に設定してもよい。また、エラー履歴は削除せずに、その後の認証での攻撃者判定には使用しない態様でエラー履歴保持部３４とは別の記憶領域に退避させてもよい。これにより、認証サーバ１２やその管理者は、過去の認証エラーの実績を活用した処理を実行できる。
【００６９】
例えば、認証サーバ１２は、認証成功後に残されたエラー履歴（すなわち過去の認証エラーの実績）を参照して、パスワードの変更をユーザに促すパスワード変更処理部をさらに備えてもよい。パスワード変更処理部は、過去認証エラーが発生したパスワードの桁位置を特定し、「現在のパスワードの○桁目が誤りやすいので、パスワードを変更しませんか」等を記載したパスワード変更依頼メッセージ（パスワード変更促進メッセージ）をユーザ端末１０へ送信し、ユーザに確認させてもよい。これにより、正規ユーザによる以後のパスワード認証の成功率を高めやすくなり、パスワード認証における正規ユーザの利便性を向上させることができる。
【００７０】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【符号の説明】
【００７１】
１０  ユーザ端末、  １２  認証サーバ、  ３０  パスワード保持部、  ３２  桁コード保持部、  ３４  エラー履歴保持部、  ４０  アカウント登録部、  ４２  桁コード生成部、  ４４  桁コード通知部、  ４６  ログイン画面提供部、  ４８  入力文字列取得部、  ５０  認証判定部、  ５４  エラー処理部、  ６０  エラー履歴更新部、  ６２  攻撃者判定部、  ６４  エラー情報生成部、  １００  情報処理システム。
【図１】
2014164672.tif 000003
【図２】
2014164672.tif 000004
【図３】
2014164672.tif 000005
【図４】
2014164672.tif 000006
【図５】
2014164672.tif 000007
【図６】
2014164672.tif 000008
【図７】
2014164672.tif 000009
【図８】
2014164672.tif 000010
【図９】
2014164672.tif 000011
【図１０】
2014164672.tif 000012