(57)【特許請求の範囲】
【請求項１】
複数のクライアント端末と通信可能に接続されたサーバ装置であって、
複数の値変換処理に関する情報を記憶する記憶手段と、
前記複数の値変換処理に含まれる値変換処理を特定の値変換処理として設定する設定手段と、
前記クライアント端末からの要求に応答して、前記特定の値変換処理の実行命令を前記クライアント端末に送信する送信手段と、
前記クライアント端末から所定のパラメータ値に対する前記特定の値変換処理の処理結果を含むログイン要求を受信する受信手段と、
当該受信した前記処理結果に少なくとも基づいて前記クライアント端末によるログインの許否を判定する判定手段と、
所定の条件が成立したときに、前記記憶手段に記憶されている複数の値変換処理の中から新たな前記特定の値変換処理の候補を選択する選択手段と、
不正ログインの状況を監視する監視手段と、
を備え、
前記記憶手段は、前記複数の値変換処理に関する情報の１つとして、当該値変換処理が属するグループを記憶する手段であり、
前記選択手段は、前記不正ログインの状況が第１の状況である場合には、現在の前記特定の値変換処理が属するグループと同一のグループに属する値変換処理の中から新たな前記特定の値変換処理の候補を選択し、前記不正ログインの状況が第２の状況である場合には、現在の前記特定の値変換処理が属するグループとは異なるグループに属する値変換処理の中から新たな前記特定の値変換処理の候補を選択する手段である、
サーバ装置。
【請求項２】
前記選択手段は、前記選択した新たな前記特定の値変換処理の候補に関する情報を管理者用表示装置に表示させる手段である請求項１記載のサーバ装置。
【請求項３】
前記設定手段は、前記選択手段によって選択された新たな前記特定の値変換処理の候補を前記特定の値変換処理として設定する手段である請求項１又は２記載のサーバ装置。
【請求項４】
前記選択手段は、前記所定の条件として、前記送信手段によって前記特定の値変換処理の実行命令を送信する都度に、新たな前記特定の値変換処理の候補を選択する手段である請求項１ないし３いずれか記載のサーバ装置。
【請求項５】
前記送信手段は、ログインページを前記クライアント端末に表示させるための情報であって、前記所定のパラメータの値と、前記特定の値変換処理の実行命令とを含むログインページ情報を当該クライアント端末に送信する手段である請求項１ないし４いずれか記載のサーバ装置。
【請求項６】
請求項５記載のサーバ装置であって、
前記クライアント端末からの要求に応答して、当該クライアント端末に対する認証用情報を生成し、当該認証用情報に基づいて、前記特定の値変換処理によって当該認証用情報となるような変換前認証用情報を生成する情報生成手段を備え、
前記送信手段は、前記変換前認証用情報を前記所定のパラメータの値として前記クライアント端末に送信する手段であり、
前記判定手段は、前記受信した前記処理結果と前記認証用情報との比較に少なくとも基づいて、前記クライアント端末によるログインの許否を判定する手段である、
サーバ装置。
【請求項７】
請求項５又は６記載のサーバ装置であって、
前記所定のパラメータは、文字列を値とするパラメータであり、
前記値変換処理は、文字列を操作する処理である、
サーバ装置。
【請求項８】
複数のクライアント端末と通信可能に接続され記憶手段を有するサーバ装置を用いたログインの管理方法であって、
（ａ）複数の値変換処理に関する情報を前記記憶手段に記憶し、
（ｂ）前記複数の値変換処理に含まれる値変換処理を特定の値変換処理として設定し、
（ｃ）前記クライアント端末からの要求に応答して、前記特定の値変換処理の実行命令を前記クライアント端末に送信し、
（ｄ）前記クライアント端末から所定のパラメータ値に対する前記特定の値変換処理の処理結果を含むログイン要求を受信し、
（ｅ）当該受信した前記処理結果に少なくとも基づいて前記クライアント端末によるログインの許否を判定し、
（ｆ）所定の条件が成立したときに、前記記憶手段に記憶されている複数の値変換処理の中から新たな前記特定の値変換処理の候補を選択し、
（ｇ）不正ログインの状況を監視し、
前記記憶するステップ（ａ）は、前記複数の値変換処理に関する情報の１つとして、当該値変換処理が属するグループを記憶し、
前記選択するステップ（ｆ）は、前記不正ログインの状況が第１の状況である場合には、現在の前記特定の値変換処理が属するグループと同一のグループに属する値変換処理の中から新たな前記特定の値変換処理の候補を選択し、前記不正ログインの状況が第２の状況である場合には、現在の前記特定の値変換処理が属するグループとは異なるグループに属する値変換処理の中から新たな前記特定の値変換処理の候補を選択する、
ログインの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、及び、ログインの管理方法に関し、詳しくは、複数のクライアント端末と通信可能に接続されたサーバ装置、及び、これを用いたログインの管理方法に関する。
【背景技術】
【０００２】
従来、この種のサーバ装置としては、インターネットなどのネットワークを介して接続されたクライアント端末のユーザに対して電子商取引などの様々なサービスを提供するサーバ装置が知られており、ユーザは、ユーザＩＤやパスワードを用いてサーバ装置にログインすることにより様々なサービスを利用することができる。例えば、電子商取引においてはクレジットカード情報などのユーザにとって秘匿性の高い情報が取り扱われることが多いこともあり、悪意のある第三者による不正ログインを防止する必要性がある。こうした不正ログインは、不正ログイン専用のプログラムツールを用いて行われることが多く、その対応策として、同一のＩＰアドレスからの連続的なログイン試行を制限するＩＰアドレス制限や画面上に表示された画像に含まれる文字列などをユーザが視認して入力する画像認証、ワンタイムパスワード生成装置によって発行される一時的に有効なパスワードを用いてログインする方法などが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２７５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＩＰアドレス制限は、ボットネットなどを利用してＩＰアドレスにランダム性を持たせることによって回避される可能性があり、また、過剰に制限してしまうと通常のユーザによるログインまで制限してしまう恐れが生じる。また、前述した画像認証やワンタイムパスワード生成装置による認証を採用すると、画像に含まれる文字列を視認して入力する必要が生じたり、ワンタイムパスワード生成装置の携帯をユーザに強いることになり、ユーザビリティの低下に繋がってしまう。
【０００５】
本発明は、ユーザビリティを著しく損なうことなく不正なログインを抑制することを目的の一つとする。本発明の他の目的は、本明細書全体を参照することにより明らかとなる。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係るサーバ装置は、複数のクライアント端末と通信可能に接続されたサーバ装置であって、複数の値変換処理に関する情報を記憶する記憶手段と、前記複数の値変換処理に含まれる値変換処理を特定の値変換処理として設定する設定手段と、前記クライアント端末からの要求に応答して、前記特定の値変換処理の実行命令を前記クライアント端末に送信する送信手段と、前記クライアント端末から所定のパラメータ値に対する前記特定の値変換処理の処理結果を含むログイン要求を受信する受信手段と、当該受信した前記処理結果に少なくとも基づいて前記クライアント端末によるログインの許否を判定する判定手段と、所定の条件が成立したときに、前記記憶手段に記憶されている複数の値変換処理の中から新たな前記特定の値変換処理の候補を選択する選択手段と、を備える。
【０００７】
本発明の一実施形態に係る不正ログインの管理方法は、複数のクライアント端末と通信可能に接続され記憶手段を有するサーバ装置を用いた不正ログインの管理方法であって、（ａ）複数の値変換処理に関する情報を前記記憶手段に記憶し、前記複数の値変換処理に含まれる値変換処理を特定の値変換処理として設定し、（ｂ）前記クライアント端末からの要求に応答して、前記特定の値変換処理の実行命令を前記クライアント端末に送信し、（ｃ）前記クライアント端末から所定のパラメータ値に対する前記特定の値変換処理の処理結果を含むログイン要求を受信し、（ｄ）当該受信した前記処理結果に少なくとも基づいて前記クライアント端末によるログインの許否を判定し、（ｅ）所定の条件が成立したときに、前記記憶手段に記憶されている複数の値変換処理の中から新たな前記特定の値変換処理の候補を選択する。
【発明の効果】
【０００８】
本発明の様々な実施形態によって、ユーザビリティを著しく損なうことなく不正なログインを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るサーバ装置を含むシステムのネットワーク構成を概略的に示すブロック図。
【図２】一実施形態における端末装置のアーキテクチャを概略的に示すブロック図。
【図３】一実施形態に係るサーバ装置の機能を示すブロック図。
【図４】一実施形態における値変換ルール管理テーブルの一例を示す説明図。
【図５】一実施形態におけるトークン管理テーブルの具体例を示す説明図。
【図６】一実施形態におけるログイン処理を示すフロー図。
【図７】一実施形態におけるログイン画面データの一例を示す説明図。
【図８】一実施形態におけるログイン画面の一例を示す説明図。
【図９】一実施形態における値変換ルール選択処理を示すフロー図。
【発明を実施するための形態】
【００１０】
以下、適宜図面を参照し、本発明の様々な実施形態を説明する。なお、図面において共通する構成要素には同一の参照符号が付されている。
【００１１】
図１は、本発明の一実施形態としてのサーバ装置１０−１、１０−２（以下、「サーバ装置１０」と総称することがある）を含む本発明の一実施形態としてのシステム１００を概略的に示すブロック図である。図１に示すように、一実施形態におけるシステム１００は、サーバ装置１０−１、１０−２を備え、インターネット等の通信網２０を介して、通信機能を備える複数の端末装置３０−１、３０−２、・・・、３０−Ｎ（以下、「端末装置３０」と総称することがある）と通信可能に接続されている。
【００１２】
一実施形態におけるサーバ装置１０は、図示のとおり、ＣＰＵ１１と、メインメモリ１２と、ユーザＩ／Ｆ１３と、通信Ｉ／Ｆ１４と、外部メモリ１５と、ディスクドライブ１６とを含み、これらの各構成要素がバス１７を介して互いに電気的に接続されている。ＣＰＵ１１は、外部メモリ１５からオペレーティングシステムや様々なプログラムをメインメモリ１２にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ１２は、ＣＰＵ１１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭによって構成される。
【００１３】
ユーザＩ／Ｆ１３は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、ＣＰＵ１１の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信Ｉ／Ｆ１４は、ハードウェア、ファームウェア、又はＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介して端末装置３０と通信可能に構成される。
【００１４】
外部メモリ１５は、例えば磁気ディスクドライブで構成され、様々なプログラムが記憶される。また、外部メモリ１５には、各種データも記憶され得る。外部メモリ１５に記憶され得る各種データは、サーバ装置１０と通信可能に接続される、サーバ装置１０とは物理的に別体のデータベースサーバに格納されてもよい。ディスクドライブ１６は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ等の各種の記憶メディアに格納されたデータを読み込み、又は、これらの記憶メディアにデータを書き込む。例えば、記憶メディアに格納されたアプリケーションやデータは、ディスクドライブ１６により読み込まれ、外部メモリ１５にインストールされる。
【００１５】
一実施形態において、サーバ装置１０は、端末装置３０とＨＴＴＰによる通信を行うウェブサーバとして機能し、階層構造の複数のウェブページから成るウェブサイトを管理すると共に端末装置３０に対して様々なサービスを提供する。端末装置３０は、ウェブページを表示するためのＨＴＭＬデータをサーバ装置１０から取得し、取得したＨＴＭＬデータを解析して、当該ウェブページを端末装置３０のユーザに提示することができる。外部メモリ１５には、このウェブページを表示するためのＨＴＭＬデータも記憶される。ＨＴＭＬデータは、ＨＴＭＬ等のマークアップ言語で記述されたＨＴＭＬ文書から成り、このＨＴＭＬ文書には、様々な画像が関連付けられる。また、ＨＴＭＬ文書には、ＡｃｔｉｏｎＳｃｒｉｐｔやＪａｖａＳｃｒｉｐｔ（登録商標）等のスクリプト言語等で記述されたプログラムが埋め込まれ得る。
【００１６】
外部メモリ１５には、端末装置３０においてブラウザソフトウェア以外の実行環境上で実行されるアプリケーションも格納され得る。このアプリケーションには、プログラムや当該プログラム実行時に参照される画像データ等の各種データを含めることができる。プログラムは、例えば、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｊａｖａ（登録商標）等のオブジェクト指向プログラミング言語で作成される。作成されたプログラムは、各種データとともに、アプリケーションソフトウェアとして外部メモリ１５に記憶される。外部メモリ１５に記憶されたアプリケーションソフトウェアは、配信要求に応じて、端末装置３０に配信される。サーバ装置１０から配信されたアプリケーションソフトウェアは、端末装置３０において、ＣＰＵ３１の制御に従って通信Ｉ／Ｆ３４を介して受信され、受信されたプログラムが外部メモリ３５に送信され記憶される。このアプリケーションソフトウェアは、プレイヤによる端末装置３０の操作に応じて起動され、端末装置３０に実装されたＮｇＣｏｒｅ（商標）やＡｎｄｒｏｉｄ（商標）等のプラットフォーム上で実行される。
【００１７】
このように、サーバ装置１０は、サービスを提供するウェブサイトを管理し、当該ウェブサイトを構成するウェブページを端末装置３０からの要求に応じて配信する。また、サーバ装置１０は、このようなブラウザを介したサービスとは代替的に、又は、ブラウザを介したサービスに加えて、端末装置３０で実行されるアプリケーションとの通信に基づいてサービスを提供することができる。サーバ装置１０は、いずれの態様でサービスを提供するにしても、各ユーザを識別する識別情報ごとにサービスの提供に必要なデータを記憶することができる。サーバ装置１０により提供されるサービスとしては、オンラインゲーム、ソーシャルネットワーキングサービス（ＳＮＳ）、電子商取引、または、音楽、電子書籍、若しくは、動画などのデジタルコンテンツの配信などを挙げることができるが、これらには限られない。
【００１８】
端末装置３０は、一実施形態において、サーバ装置１０から取得したウェブページをウェブブラウザ上で表示することができる任意の情報処理装置であり、例えば、携帯電話機、スマートフォン、ゲーム用コンソール、パーソナルコンピュータ、タッチパッド、及び電子書籍リーダーを含むがこれらには限られない。また、端末装置３０は、アプリケーションを実行するためのアプリケーション実行環境を実装した任意の情報処理装置でもあり得る。
【００１９】
端末装置３０のアーキテクチャについて図２を参照して説明する。図２は、端末装置３０のアーキテクチャを概念的に示すブロック図である。端末装置３０は、図示のとおり、ＣＰＵ３１と、メインメモリ３２と、ユーザＩ／Ｆ３３と、通信Ｉ／Ｆ３４と、外部メモリ３５と、を含み、これらの各構成要素がバス３６を介して互いに電気的に接続されている。
【００２０】
ＣＰＵ３１は、外部メモリ３５からオペレーティングシステム等の様々なプログラムをメインメモリ３２にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ３２は、ＣＰＵ３１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭによって構成される。
【００２１】
ユーザＩ／Ｆ３３は、例えば、ユーザの入力を受け付けるタッチパネル、キーボード、ボタンやマウス等の情報入力装置と、ＣＰＵ３１の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信Ｉ／Ｆ３４は、ハードウェア、ファームウェア、又は、ＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介してサーバ装置１０と通信可能に構成される。
【００２２】
外部メモリ３５は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムを記憶する。また、外部メモリ３５は、サーバ装置１０から通信Ｉ／Ｆ３４を介してアプリケーションを受信した場合には、この受信したアプリケーションを記憶する。
【００２３】
このようなアーキテクチャを有する端末装置３０は、例えば、ＨＴＭＬ形式のファイル（ＨＴＭＬデータ）を解釈して画面表示するためのブラウザソフトウェアを備えており、このブラウザソフトウェアの機能によりサーバ装置１０から取得したＨＴＭＬデータを解釈して、受信したＨＴＭＬデータに対応するウェブページを表示することができる。また、端末装置３０は、ブラウザソフトウェアに組み込まれるプラグインソフト（例えば、アドビシステムズ社から提供されているＦｌａｓｈ  Ｐｌａｙｅｒ）を備えており、ＨＴＭＬデータに埋め込まれたＳＷＦ形式のファイルをサーバ装置１０から取得し、当該ＳＷＦ形式のファイルをブラウザソフトウェア及びプラグインソフトを用いて実行することができる。
【００２４】
次に、図１に示した各構成要素によって実現されるサーバ装置１０の機能について説明する。図３は、本発明の一実施形態に係るサーバ装置１０の機能を示すブロック図である。この実施形態に係るサーバ装置１０は、図に示すように、情報を記憶する情報記憶部５１と、ログイン認証に用いる値変換ルールを設定する設定部５２と、端末装置３０からのログイン画面の表示要求に応答してログイン認証用の情報を生成する情報生成部５３と、端末装置３０にログイン画面を表示させるためのログイン画面データを送信する送信部５４と、端末装置３０からログイン情報を受信する受信部５５と、受信したログイン情報に基づいてログインの許否を判定する判定部５６と、サーバ装置１０に対する不正ログインの状況を監視する監視部５７と、不正ログインの状況に応じて新たな値変換ルールの候補を選択する選択部５８とを備える。これらの機能は、ＣＰＵ１１やメインメモリ１２、外部メモリ１５に記憶されている各種プログラムやテーブルなどが協働して動作することにより実現される。なお、上述した機能は、一実施形態に係るサーバ装置１０におけるログインの管理に関連する機能であり、これらの機能の他に、サーバ装置１０によって提供されるサービスを実現するための各種の機能を有する。
【００２５】
情報記憶部５１は、ログイン認証に用いる複数の値変換ルールに関する情報を管理する値変換ルール管理テーブル５１ａと、ログイン認証用の情報としてのトークンを管理するトークン管理テーブル５１ｂとを備える。値変換ルール管理テーブル５１ａの一例を図４に示す。値変換ルール管理テーブル５１ａは、図示するように、値変換ルールを識別する値変換ルールＩＤに対応付けて、この値変換ルールが属するグループを識別するグループＩＤと、この値変換ルールの名称である値変換ルール名等の情報を記憶する。トークン管理テーブル５１ｂの具体例を図５に示す。トークン管理テーブル５１ｂは、図示するように、端末装置３０を識別する端末ＩＤに対応付けて、情報生成部５３によって生成したトークンを記憶する。図５に例示するように、端末ＩＤとトークンは、共に、複数の英数字がランダムに配置された文字列として構成される。
【００２６】
次に、こうして構成された本発明の一実施形態としてのサーバ装置１０の動作について説明する。まず、端末装置３０によるログインに関する動作について説明し、次に、不正ログインの状況に応じた値変換ルールの選択に関する動作について説明する。図６は、サーバ装置１０により実行されるログイン処理の一例を示すフロー図である。このログイン処理は、端末装置３０からサーバ装置１０のログイン画面の表示要求があったときに実行される。具体的には、一実施形態においては、端末装置３０のＷｅｂブラウザやアプリケーションからサーバ装置１０が提供するサービスのログイン画面のＵＲＬを指定したＨＴＴＰリクエストを受信したときに実行される。ログイン処理では、まず、ログイン画面の表示要求の送信元の端末装置３０を識別する端末ＩＤとログイン認証に用いる認証用情報としてのトークンを発行しトークン管理テーブル５１ｂに記憶する（ステップＳ１０２）。端末ＩＤとトークンは、前述したように、複数の英数字がランダムに配置された文字列として構成されており、こうしたランダムな文字列は、乱数生成アルゴリズムを実装したＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）などを用いて生成することができる。端末ＩＤは、一実施形態においては、ＨＴＴＰにおけるクライアントとしての端末装置３０を識別する情報であり、サーバ装置１０と端末装置３０とのＨＴＴＰによる通信の際にクッキーとしてやり取りされる情報である。また、一実施形態においては、端末ＩＤとトークンとは別々のアルゴリズムを用いて生成することにより、相互に関連性を持たせないようにした。これは、相互に関連性を持たせると、一方の情報が悪意のある第三者に知られた場合に、もう一方の情報についても知られてしまう可能性が高くなることに基づく。
【００２７】
端末ＩＤとトークンを発行すると、次に、発行したトークンの値を変換する（ステップＳ１０４）。一実施形態においては、発行したトークンの値を、設定部５２によって設定されている値変換ルール（特定の値変換ルール）に基づいて変換した場合に元のトークンとなるように変換する。具体的に説明すると、例えば、設定されている値変換ルールが「文字列の順序を逆順にする」というルールである場合、順序を逆順にすると発行したトークンの値となるように、発行したトークンの値の順序を逆順にする（例えば、発行したトークンの値が「ＡＢＣ」の場合、この値の順序を逆順にした「ＣＢＡ」の順序をさらに逆順にすると元の発行したトークンの値「ＡＢＣ」となる）。他の例で説明すると、例えば、設定されている値変換ルールが「文字列の順序を右方向に１つシフトする」というルールである場合、順序を右方向に１つシフトすると発行したトークンの値となるように、発行したトークンの値の順序を左方向に１つシフトする（例えば、発行したトークンの値が「ＡＢＣ」の場合、この値の順序を左方向に１つスライドした「ＢＣＡ」の順序を右方向に１つスライドすると元の発行したトークンの値「ＡＢＣ」となる）。このように、設定部５２によって設定されている値変換ルールに基づいて変換した場合に元のトークンとなるように（言い換えると、設定されている値変換ルールとは逆方向の変換ルールで）トークンの値を変換する。こうした文字列の変換は、文字列操作用の関数などを実装したＣＧＩなどを用いて行なうことができる。なお、上述した値変換ルールは例示であり、これら以外の値変換ルールであっても構わないのは勿論である。
【００２８】
続いて、値を変換したトークン及び設定されている値変換ルールに基づく処理の実行命令を埋め込んだログイン画面データを端末装置３０に送信する（ステップＳ１０６）。図７は、サーバ装置１０から端末装置３０に送信されるログイン画面データ６０の一部の一例であり、図８は、ログイン画面データ６０を読み込んだ端末装置３０のＷｅｂブラウザなどによって表示されるログイン画面７０の一例である。この例のログイン画面データ６０は、図示するように、ＨＴＭＬデータとして構成され、ＪａｖａＳｃｒｉｐｔ（登録商標）により記述されたスクリプト・セクション６２と、ユーザによる入力項目などを定義するフォーム・セクション６４とを含む。値を変換したトークンは、スクリプト・セクション６２の「ｖａｒ  ｔｏｋｅｎ  ＝  “ｃｄｒＱ８ｄａＷｒ３４９ｆＰ”」と記述されている部分に埋め込まれている。また、スクリプト・セクション６２の「ｆｏｒｍ．ｔｏｋｅｎ．ｖａｌｕｅ  ＝  ｔｏｋｅｎ．ｓｐｌｉｔ（“”）．ｒｅｖｅｒｓｅ（）．ｊｏｉｎ（“”）；」と記述されている部分は、設定されている値変換ルールに基づく処理の実行命令を定義しており、図７の例では、トークンの文字列の順序を逆順にする処理の実行命令を定義している。即ち、ステップＳ１０４で変換されたトークンは、このスクリプト・セクション６２に定義されている処理が端末装置３０において実行されることによって、ステップＳ１０２で発行された元のトークンの値に戻されることになる。フォーム・セクション６４は、図７に例示するログイン画面７０における入力項目であるユーザＩＤ入力欄７１およびパスワード入力欄７２やログインボタン７３などを定義し、＜ｉｎｐｕｔ  ｔｙｐｅ＝“ｈｉｄｄｅｎ”  ｎａｍｅ  ＝“ｔｏｋｅｎ”  ｖａｌｕｅ＝“”／＞と記述されている部分では、トークンをログイン画面７０には表示されない隠し項目として定義している。隠し項目として定義されているトークンは、ログイン画面７０には表示されないが、ユーザＩＤ入力欄７１やパスワード入力欄７２に入力される値と共に、サーバ装置１０に送信される情報である。
【００２９】
こうしたログイン画面データを端末装置３０が受信すると、端末装置３０のＷｅｂブラウザなどによってログイン画面データが解析されログイン画面７０が表示される。端末装置３０のユーザがログイン画面７０のユーザＩＤ入力欄７１とパスワード入力欄７２にユーザＩＤとパスワードをそれぞれ入力し、ログインボタン７３を押下すると、ログイン画面データ６０のスクリプト・セクション６２に定義されているトークンを変換する処理が実行され、入力されたユーザＩＤとパスワードと共に、この変換されたトークンがサーバ装置１０に送信される。
【００３０】
端末装置３０がユーザＩＤ、パスワード、および、変換されたトークンを送信すると、サーバ装置１０はこれらの情報を受信し（ステップＳ１０８）、まず、受信した変換されたトークンの値に基づく認証を行なう（ステップＳ１１０）。具体的には、端末装置３０の端末ＩＤに対応するトークンをトークン管理テーブル５１ｂから取得して端末装置３０から受信した変換されたトークンと比較し、これらのトークンの値が一致する場合には認証ＯＫと判断し、これらのトークンの値が異なる場合には認証ＮＧと判断する。前述したように、トークン管理テーブル５１ｂで管理されているトークンは、ステップＳ１０２で発行された元のトークンであり、端末装置３０が送信するトークンは、設定されている値変換ルールに基づいて変換した場合に元のトークンとなるように一旦ステップＳ１０４で変換され、その後、ログイン画面データ６０のスクリプト・セクション６２で定義された実行命令に応じて端末装置３０によって変換されたものである。従って、上述した手順通りの動作をしていれば、トークン管理テーブル５１ｂで管理されているトークンの値と端末装置３０から受信するトークンの値とは一致し、認証ＯＫと判断される。
【００３１】
ここで、悪意のある第三者がサーバ装置１０への不正ログインを試みる場合について考える。不正ログイン専用のプログラムツールは、一般に、一実施形態におけるサーバ装置１０のログイン画面７０のようなログイン画面のＨＴＭＬデータに基づいて、ユーザＩＤやパスワードなどのログインに必要なログイン情報のサーバ装置への送信方法を解析することにより、ユーザの操作を完全に再現することなくログイン情報を送信することを可能とする（例えば、ログイン画面を介することなくログイン情報を送信することができる）。これにより、例えば、一組のユーザＩＤとパスワードを用いて多数のサイトにログインを試行したり、あるいは、１つのサイトに対して膨大な数のユーザＩＤとパスワードとの組み合わせを用いたログインを試行したりすることができるようになり、その結果、ユーザＩＤとパスワードとが正しい組み合わせとなったときに不正なログインを可能としてしまう。ログイン情報の送信方法の解析は、ＨＴＭＬデータを構成するタグなどの文字列の正規表現を用いた検索などを実行することによって行なわれ、例えば、ログイン画面データ６０の場合には、フォーム・セクション６２の＜ｉｎｐｕｔ  ｔｙｐｅ＝“ｈｉｄｄｅｎ”  ｎａｍｅ  ＝“ｔｏｋｅｎ”  ｖａｌｕｅ＝“”／＞との記載に基づき、隠し項目「ｔｏｋｅｎ」が必要なログイン情報の一つとして含まれると解析され、スクリプト・セクション６２の「ｖａｒ  ｔｏｋｅｎ  ＝  “ｃｄｒＱ８ｄａＷｒ３４９ｆＰ”」との記載に基づき、隠し項目「ｔｏｋｅｎ」の値が「ｃｄｒＱ８ｄａＷｒ３４９ｆＰ」であると解析される。しかし、一実施形態におけるサーバ装置１０では、ログイン画面データ６０に埋め込まれているトークンは、元のトークンの文字列を変換したものであり、そのままサーバ装置１０へ送信すると、トークン管理テーブル５１ｂで管理されているトークンの値と一致しない（上述した例では、プログラムツールから送信されるトークンの値は「ｃｄｒＱ８ｄａＷｒ３４９ｆＰ」であり、トークン管理テーブル５１ｂで管理されているトークンの値は「Ｐｆ９４３ｒＷａｄ８Ｑｒｄｃ」である）。この場合、認証ＮＧと判断され、ログイン処理は強制終了される（ステップＳ１１６）。
【００３２】
トークンの値に基づく認証によって認証ＯＫと判断された場合には、次に、ユーザＩＤとパスワードに基づく認証が行なわれる（ステップＳ１１２）。ユーザＩＤとパスワードに基づく認証は、例えば、サーバ装置１０が提供するサービスのユーザがユーザ登録する際などに入力したユーザＩＤとパスワードとの組み合わせを情報記憶部５１が有する図示しないテーブルなどに記憶しておき、この記憶したユーザＩＤとパスワードとの組み合わせと照合することによって行なうことができる。こうしたユーザＩＤとパスワードに基づく認証は、一般的な処理であるからこれ以上の詳細な説明は省略する。ユーザＩＤとパスワードに基づく認証の結果、認証ＮＧと判断された場合には、ステップＳ１０６に戻り、再度ログイン画面データ６０を送信し、認証ＯＫと判断された場合には、ログイン後の画面（例えば、提供するサービスのトップ画面など）の画面データを端末装置３０に送信し（ステップＳ１１４）、ログイン処理を終了する。  
【００３３】
以上、サーバ装置１０における端末装置３０によるログインに関する動作について説明した。次に、サーバ装置１０における不正ログインの状況に応じた値変換ルールの選択に関する動作について説明する。図９は、サーバ装置１０によって実行される値変換ルール選択処理の一例を示すフロー図である。この値変換ルール選択処理は、監視部５７によって、不正ログインを検出したときに実行される。監視部５７による不正ログインの検出は、サーバ装置１０に対する様々なアクセスを監視することにより行われ、例えば、前述したログイン処理においてトークンに基づいて認証ＮＧとなった回数、前述したログイン処理においてユーザＩＤとパスワードに基づいて認証ＮＧとなった回数、アクセス権限のないファイルへのアクセス試行回数、ＨＴＴＰリクエストに対するエラー回数等を監視することにより行われ、これらの不正なアクセスを示すパラメータが予め定めた閾値を超えたときに、監視部５７が不正ログインとして検出する。また、こうしたパラメータを通信の種類や通信の相手毎に管理することもできる。こうした不正ログインの検出処理は、当業者にとって一般的な処理であるから、これ以上の詳細な説明は省略する。
【００３４】
値変換ルール選択処理では、まず、監視部５８によって検出された不正ログインの状況を取得する（ステップＳ２０２）。一実施形態では、不正ログインの状況は、レベル１とレベル２の２段階のレベルとして検出される。例えば、トークンに基づいて認証ＮＧとなった単位時間当たりの回数が閾値を超えたときにレベル１として検出され、ユーザＩＤとパスワードに基づいて認証ＮＧとなった単位時間当たりの回数が閾値を超えたときにレベル２として検出される。また、例えば、ＨＴＴＰリクエストに対する単位時間当たりのエラー回数が第１の閾値を超えたときにレベル１として検出され、第１の閾値よりも大きい第２の閾値を超えたときにレベル２として検出される。このように、不正なアクセスを示すパラメータの種類に応じて不正ログインの状況を示すレベルを設定したり、不正なアクセスを示すパラメータの値の大きさに応じて不正ログインの状況を示すレベルを設定することができる。なお、こうしたレベルの設定方法は、ここに例示したものに限られないのは勿論である。
【００３５】
不正ログインの状況を取得すると、次に、不正ログインの状況のレベルに応じて新たな値変換ルールを選択する（ステップＳ２０４−Ｓ２０８）。不正ログインの状況がレベル１である場合には、現在設定されている値変換ルールが属するグループと同一のグループに属する値変換ルールの中から新たに設定する値変換ルールの候補を選択する（ステップＳ２０６）。前述したように、情報記憶部５１の値変換ルール管理テーブル５１ａにおいて各値変換ルールが属するグループが管理されており、このグループに基づいて各値変換ルールのグループが判断される。一実施形態においては、現在設定されている値変換ルールが属するグループと同一のグループに属する複数の値変換ルールの中からランダムに１つの値変換ルールを選択する。こうしたランダムな選択は、乱数値等を用いて行うことができる。なお、同一のグループに属する複数の値変換ルールの中から１つの値変換ルールを選択する方法はその他の方法であってもよく、例えば、同一グループ内の複数の値変換ルールに予め順序を設定しておき、この設定されている順序に従って値変換ルールを選択するようにしてもよい。この場合、値変換ルール管理テーブル５１ａにおいて、値変換ルールの順序を管理すればよい。
【００３６】
一方、不正ログインの状況がレベル２である場合には、現在設定されている値変換ルールが属するグループとは異なるグループに属する値変換ルールの中から新たに設定する値変換ルールの候補を選択する（ステップＳ２０８）。一実施形態においては、現在設定されている値変換ルールが属するグループとは異なるグループに属する複数の値変換ルールの中からランダムに１つの値変換ルールを選択する。なお、前述した同一のグループに属する値変換ルールを選択する場合と同様に、異なるグループに属する値変換ルールの選択も様々な方法で行うことができ、例えば、グループに対して予め順序を設定しておき、この設定されている順序に従って次のグループを特定し、この特定したグループに属する複数の値変換処理の中から１つの値変換ルールを選択するようにしてもよい。
【００３７】
こうして新たに設定する値変換ルールの候補を選択すると、選択した値変換ルールを設定部５２によって新たな値変換ルールとして設定し（ステップＳ２１０）、この値変換ルール選択処理を終了する。設定部５２による値変換ルールの設定は、例えば、値変換ルール管理テーブル５１ａにおいて現在設定されている値変換ルールを識別可能な情報を管理することによって行うことができる。こうして設定部５２によって新たな値変換ルールが設定されると、前述したログイン処理におけるトークンの変換処理（図６のステップＳ１０４）やログイン画面データの送信処理（図６のステップＳ１０６）が新たな値変換ルールに対応する処理となる。即ち、図６のステップＳ１０４においては新たに設定された値変換ルールに基づいて変換した場合に元のトークンとなるような値変換処理がなされ、図６のステップＳ１０６においては新たに設定された値変換ルールに基づく処理の実行命令を埋め込んだログイン画面データが端末装置３０に送信される。こうした値変換ルールの切り替えに応じた処理の変更は、予め各値変換ルールに対応するプログラムを準備しておき、新たに設定された値変換ルールに対応するプログラムが実行されるようにする処理を実装したＣＧＩなどを用いて行なうことができる。
【００３８】
このように、一実施形態におけるサーバ装置１０では、値変換ルール選択処理によって、ログイン認証に用いられる値変換ルールが、不正ログインの状況に応じて同一グループ内の値変換ルールへの切替が行われたり、異なるグループに属する値変換ルールへの切替（即ち、グループの切替）が行われたりする。例えば、同一のグループに属する複数の値変換ルールを切り替えて用いるうちに、これらの値変換ルールが解析されてしまった場合、グループを切り替えて他の値変換ルールが選択されるようになり、不正なログインをより困難とすることができる。
【００３９】
また、システム１００は、上述したログイン処理や値変換ルール選択処理を、サーバ装置１０−１とサーバ装置１０−２の各々において独立して実行するから、サーバ装置１０−１とサーバ装置１０−２とでは、設定されている値変換ルールや選択される値変換ルール（値変換ルール管理テーブル５１ａで管理する値変換ルールの内容）を異なるようにすることができ、一方のログイン画面におけるログイン情報の送信方法が解析されてしまった場合に、他方のログイン画面に対する不正ログインが可能となるのを防止することができる。例えば、同一の事業者が、サーバ装置１０−１とサーバ装置１０−２とを異なるサービスを提供するサーバとして運用する場合、一方のサービスに対する不正ログインが可能となっても、他方のサービスに対する不正ログインが可能となるのを防止することができる。
【００４０】
以上説明した本発明の一実施形態におけるサーバ装置１０によれば、端末装置３０からサーバ装置１０のログイン画面の表示要求があったときに、この端末装置３０に対してトークンを発行すると共に、設定されている値変換ルールに基づいて変換した場合に元のトークンとなるように発行したトークンを変換し、この変換したトークンと設定されている値変換ルールに基づく処理の実行命令とを含むログイン画面データを端末装置３０に送信し、端末装置３０からログイン情報の一部として変換されたトークンを受信すると、このトークンに基づく認証を行なう。したがって、ログイン画面データに含まれる文字列を検索して解析する一般的な不正ログイン用のプログラムツールなどによる不正ログインを抑制することができる。さらに、端末装置３０のユーザはこうしたログイン判定の仕組みを意識する必要がないから、ユーザビリティを著しく損なうことがない。また、不正ログインの状況に応じて値変換ルールを切り替えるから、不正ログインをより一層抑制することができる。
【００４１】
一実施形態のサーバ装置１０では、端末装置３０に対してトークンを発行すると共に、設定されている値変換ルールに基づいて変換した場合に元のトークンとなるように変換したトークンをログイン画面データに埋め込んだが、発行したトークンを変換することなく、そのままログイン画面データに埋め込むものとしても良い。この場合、端末装置３０からは元のトークンが設定されている値変換ルールに基づいて変換された値が送信されるから、ステップＳ１１０のトークンの値に基づく認証の際には、受信したトークンの値と、発行したトークンを設定されている値変換ルールに基づいて変換した値とを比較すれば良い。この態様であっても、不正ログイン用のプログラムツール等からは発行したトークンがそのまま送信されるから、トークンに基づく認証で検出することができ、不正ログインを抑制することができる。
【００４２】
一実施形態のサーバ装置１０では、変換したトークンと設定されている値変換ルールに基づく処理の実行命令とを含むログイン画面データを端末装置３０に送信するものとしたが、設定されている値変換ルールに基づく処理の実行命令のみを送信してもよい。この場合、トークンに代えて、端末装置３０側のパラメータ（例えば、ログイン画面に入力されるユーザＩＤ等）を値変換ルールに基づく処理で変換させて変換前後のパラメータを受信し、変換後のパラメータ値と、変換前のパラメータ値を設定されている値変換ルールに基づく処理で変換した値とを比較することによりログインの許否を判定すればよい。
【００４３】
一実施形態のサーバ装置１０では、トークンを複数の英数字がランダムに配置された文字列として構成したが、文字列でなくても構わない。例えば、トークンを数値とする場合には、値変換処理としては、文字列操作ではなく適当な演算処理などを適用することもできる。
【００４４】
一実施形態のサーバ装置１０では、図９に例示した値変換ルール選択処理において、選択した値変換ルールを設定部５２によって新たな値変換ルールとして設定したが、さらに、選択部５８によってサーバ装置１０のユーザＩ／Ｆ１３としての情報出力装置に選択した値変換ルールを表示させるようにしても良い。こうすれば、サーバ装置１０の管理者に選択した新たな値変換ルールの候補を通知することができる。また、選択した値変換ルールの設定部５２による設定を行わず、情報出力装置への表示のみを行うものとしても差し支えない。この場合、選択した値変換ルールの設定部５２による設定は、管理者等によるユーザＩ／Ｆ１３を介した入力操作に応答して行うようにすれば良い。
【００４５】
一実施形態のサーバ装置１０では、値変換ルール管理テーブル５１ａにおいて、値変換ルールの属するグループを管理するものとしたが、必ずしも値変換ルールをグループで管理する必要はない。この場合、値変換ルール管理テーブル５１ａで管理されている値変換ルールの中からランダム又は予め設定されている順序で値変換ルールの切替を行ってもよいし、その他の方法（例えば、値変換ルールと不正アクセスの状況（レベル）とを対応付けておき、検出された不正アクセスの状況（レベル）に対応する値変換ルールの中から選択する等）で値変換ルールの切替を行ってもよいのは勿論である。
【００４６】
一実施形態のサーバ装置１０では、監視部５７によって不正ログインを検出したときに新たな値変換ルールの候補を選択するものとしたが、新たな値変換ルールの候補の選択を行う契機はこれに限定されない。例えば、ログイン処理においてトークンに基づいて認証ＮＧが発生する都度、新たな値変換ルールの候補を選択するものとしてもよいし、定期的に（例えば、１週間毎、１ヶ月毎等）新たな値変換ルールの候補を選択するものとしてもよい。また、上述したログイン処理を実行する都度（例えば、ステップＳ１０６にてログイン画面データを送信する都度）、新たな値変換ルールの候補を選択する（即ち、端末装置３０からのログインの都度に値変換ルールを切り替える）ものとしても構わない。この場合、ログイン処理を実行する都度、同一のグループに属する値変換ルールの中から新たに設定する値変換ルールの候補を選択し、不正ログインを検出したときに、異なるグループに属する値変換ルールの中から新たに設定する値変換ルールの候補を選択する（グループを切り替える）ようにすることもできる。
【００４７】
一実施形態のシステム１００では、サーバ装置１０−１とサーバ装置１０−２とを備えるものとしたが、サーバ装置１０の数は２つより多くても構わないのは勿論である。また、サーバ装置１０が備える監視部５７を図示しない他のサーバ装置やファイヤウォール、プロキシサーバ等に備える等、各種のシステム構成を採用することができるのは勿論である。
【００４８】
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【００４９】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び／又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【００５０】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。
【符号の説明】
【００５１】
１０  サーバ装置
２０  通信網
３０  端末装置
５１  情報記憶部
５２  設定部
５３  情報生成部
５４  送信部
５５  受信部
５６  判定部
５７  監視部
５８  選択部
６０  ログイン画面データ
７０  ログイン画面
１００  システム
【要約】
【課題】  ユーザビリティを著しく損なうことなく不正なログインを抑制する。
【解決手段】  実施形態に係るサーバ装置は、情報を記憶する情報記憶部と、ログイン認証に用いる値変換ルールを設定する設定部と、端末装置からのログイン画面の表示要求に応答してログイン認証用の情報を生成する情報生成部と、端末装置にログイン画面を表示させるためのログイン画面データを送信する送信部と、端末装置からログイン情報を受信する受信部と、受信したログイン情報に基づいてログインの許否を判定する判定部と、サーバ装置に対する不正ログインの状況を監視する監視部と、不正ログインの状況に応じて新たな値変換ルールの候補を選択する選択部とを備える。
【選択図】  図３【図１】
0005514890.tif 000002
【図２】
0005514890.tif 000003
【図３】
0005514890.tif 000004
【図４】
0005514890.tif 000005
【図５】
0005514890.tif 000006
【図６】
0005514890.tif 000007
【図７】
0005514890.tif 000008
【図８】
0005514890.tif 000009
【図９】
0005514890.tif 000010