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