(57)【特許請求の範囲】
【請求項１】
通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第１のトークンを含む通信データを受信する第１の通信処理手段と、
前記第１の通信処理手段が保持する前記第１のトークンを含む前記リクエストを生成し、当該生成した前記リクエストを前記サーバに対して送信可能な、前記第１の通信処理手段とは異なる第２の通信処理手段と、を備え、
前記第２の通信処理手段は、自装置において実行可能なアプリケーションであり、
前記第１の通信処理手段は、
前記アプリケーションの取得を要求する、前記第１のトークンを含む前記リクエストを生成し、
当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
当該取得した前記アプリケーションを自装置において実行する
情報処理装置。
【請求項２】
前記第１の通信処理手段は、前記第２の通信処理手段に対して、前記サーバから受信した前記第１のトークンを提供する、
請求項１に記載の情報処理装置。
【請求項３】
前記第２の通信処理手段は、
任意の前記リクエストの生成に関するデータの入力を受け付け、
当該受け付けたデータを用いて前記第１のトークンを含む前記リクエストを生成し、
当該生成した前記リクエストを前記サーバに対して送信する
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記第１の通信処理手段は、
前記サーバに対する認証要求を含む前記リクエストを送信し、
当該リクエストを受信した前記サーバにより生成された、前記サーバと、前記第１の通信処理手段との間の認証済みの通信セッションを表す第２のトークンと、前記第１のトークンとを含む前記通信データを前記サーバから受信し、
前記第２の通信処理手段は、
前記第１のトークンと、前記第２のトークンとを含む前記リクエストを前記サーバに対して送信する
請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第１のトークンを含む通信データを受信する第１の通信処理手段と、
前記第１のトークンを含む前記リクエストを生成し、当該リクエストを前記サーバに対して送信可能な前記第１の通信処理手段とは異なる第２の通信処理手段と、を備え、
前記第２の通信処理手段は、前記サーバに保持されるとともに、前記サーバにより前記第１のトークンが設定された、自装置において実行可能なアプリケーションであり、
前記第１の通信処理手段は、
前記アプリケーションの取得を要求する、前記第１のトークンを含む前記リクエストを生成し、
当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
当該取得した前記アプリケーションを自装置において実行する、情報処理装置。
【請求項６】
請求項１乃至請求項５のいずれかに記載の情報処理装置と、
通信回線を介して前記情報処理装置と通信可能に接続されたサーバ装置と、を備え、
前記サーバ装置は、
前記情報処理装置からの要求に応じて、当該情報処理装置から前記サーバ装置に対して送信されたリクエストの正当性を表す第１のトークンを含む通信データを当該情報処理装置に送信し、
前記情報処理装置に送信した前記第１のトークンと、前記情報処理装置における前記第２の通信処理手段から受信した他の前記リクエストに含まれる第１のトークンとを比較した結果に基づいて、当該受信した他の前記リクエストが不正なリクエストではないと判断した場合には、当該受信した他の前記リクエストに基づいて、前記情報処理装置からの要求に応じた処理を実行する、情報処理システム。
【請求項７】
請求項１乃至請求項５のいずれかに記載の情報処理装置と、
通信回線を介して前記情報処理装置と通信可能に接続されたサーバ装置と、を備え、
前記サーバ装置は、
前記情報処理装置からの要求に応じて、当該情報処理装置から前記サーバ装置に対して送信されたリクエストの正当性を表す第１のトークンを含む通信データを当該情報処理装置に送信し、
前記情報処理装置からの要求に応じて、前記情報処理装置において実行可能なアプリケーションを、前記情報処理装置に送信し、
前記情報処理装置に送信した前記第１のトークンと、前記情報処理装置において実行された前記アプリケーションから受信した他の前記リクエストに含まれる前記第１のトークンとを比較した結果に基づいて、当該受信した他の前記リクエストが不正なリクエストではないと判断した場合には、当該受信した他の前記リクエストに基づいて、前記情報処理装置からの要求に応じた処理を実行する、情報処理システム。
【請求項８】
情報処理装置が、
通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第１のトークンを含む通信データを第１の通信処理手段を用いて受信し、
前記第１の通信処理手段が保持する前記第１のトークンを含む前記リクエストを生成し、
前記第１の通信処理手段とは異なる第２の通信処理手段を用いて、生成した前記リクエストを前記サーバに対して送信し、
前記第２の通信処理手段は、自装置において実行可能なアプリケーションであり、
前記第１の通信処理手段は、
前記アプリケーションの取得を要求する、前記第１のトークンを含む前記リクエストを生成し、
当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
当該取得した前記アプリケーションを自装置において実行する、
情報処理方法。
【請求項９】
通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性表す第１のトークンを含む通信データを第１の通信処理手段を用いて受信する処理と、
前記第１の通信処理手段が保持する前記第１のトークンを含む前記リクエストを生成する処理と、
前記第１の通信処理手段とは異なる第２の通信処理手段を用いて、生成した前記リクエストを前記サーバに対して送信する処理と、をコンピュータに実行させ、
前記第２の通信処理手段は、自装置において実行可能なアプリケーションであり、
前記第１の通信処理手段は、
前記アプリケーションの取得を要求する、前記第１のトークンを含む前記リクエストを生成し、
当該生成した前記リクエストを前記サーバに送信することにより、前記サーバから前記アプリケーションを取得し、
当該取得した前記アプリケーションを自装置において実行する、
コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ対策が施されたサーバ装置に対して、任意のリクエストを送信可能とする情報処理装置等に関する。
【背景技術】
【０００２】
近年、通信ネットワーク技術の普及に伴い、様々なサービスがインターネット等の通信ネットワークを介して提供されおり、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）を用いて各種サービス（Ｗｅｂサービス）を提供するＷｅｂサイトが増大している。
【０００３】
このようなＷｅｂサイトの増加に伴い、係るＷｅｂサイトあるいは、Ｗｅｂサイトが提供するサービスのユーザを標的とした攻撃も増加傾向にある。このような攻撃の一つとして、リクエスト強要（Ｃｒｏｓｓ−ｓｉｔｅ  Ｒｅｑｕｅｓｔ  Ｆｏｒｇｅｒｙ、以下ＣＳＲＦと称する）と呼ばれる攻撃手法がある。
【０００４】
ＣＳＲＦ攻撃は、Ｗｅｂサイトに仕掛けられた罠（攻撃用）のリンク等をユーザにアクセスさせることにより、当該ユーザが接続している別のＷｅｂサイトに対して、意図しない通信データであるリクエスト（例えば、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｃｏｌ）リクエスト）の発行や、Ｗｅｂアプリケーションに対する操作の実行等を強要する攻撃手法である。
【０００５】
ＣＳＲＦ攻撃の具体例として、ユーザが利用するクライアント（Ｗｅｂブラウザ等）とＷｅｂサイトを構成するサーバ（以下単に「サーバ」と称する場合がある）との間のセッション情報を用いて、当該サーバに対して不正なＨＴＴＰリクエスト送信を行う攻撃がある。係るセッション情報は、例えば、クライアントとＷｅｂサイトとの間の通信セッションにおいて認証処理（以下「Ｗｅｂ認証」と称する）が実行済みであることを識別可能なデータであり、Ｃｏｏｋｉｅデータ等により、サーバとクライアントとの間で共有される。
【０００６】
このような攻撃を抑制し、ユーザが意図しない不正なリクエストを受け付けないように、ＷｅｂサイトにおいてＣＳＲＦ攻撃に対する対策が実施される場合がある。この場合、Ｗｅｂサイトを構成するサーバは、クライアントに対して、サーバが受信したリクエストの正当性を検証（認証）する際に用いられる情報である認証用トークン（以下「ＣＳＲＦトークン」と称する）を含むコンテンツを提供（通知）する。換言すると、係る認証用トークンは、クライアントからサーバに送信されたリクエストの正当性を表す情報であり、係る認証トークンを検証（認証）することにより、サーバは、リクエストの正当性を確認可能である。これにより、サーバと、クライアントとの間の通信においては、セッション情報とは別に、係る認証用トークン（ＣＳＲＦトークン）が送受信される。
【０００７】
より具体的には、例えば、サーバが、ＣＳＲＦトークンをｈｉｄｄｅｎフィールドとして含むコンテンツ（例えばＨＴＭＬにより記述されたドキュメント等）をクライアントに提供する。そして、サーバは、クライアントから受け付けるリクエストに正しいＣＳＲＦトークンが含まれているか否かに基づいて、係るリクエストの正当性を認証する。ＣＳＲＦトークンが不正である場合、サーバは、係る不正なＣＳＲＦトークンを含むリクエストを排除する。このようなＣＳＲＦ対策が行われることで、正しいＣＳＲＦトークンが含まれない任意のリクエストが、サーバ側で排除される。
【０００８】
このようなＣＳＲＦ対策に関連して、例えば、以下のような特許文献が開示されている。
【０００９】
特許文献１（特開２０１３−１３４６５５号公報）は、ウェブ・アプリケーションにおいて、ＣＳＲＦ攻撃に対する脆弱性対策を施す技術を開示する。特許文献１に開示された技術は、ＣＳＲＦ対策のためにコンテンツに設定される認証用トークンを、サーバとクライアントとの間で共有されるセッションＩＤ（Ｉｄｅｎｔｉｆｉｅｒ：識別情報）と、サーバ側で保持する管理値から算出する。これにより、特許文献１に開示された技術は、サーバ側で認証用のＩＤ自体をメモリに保持することなく、クライアントから送信されたリクエストに付与された認証用トークンの正当性を確認可能である。
【００１０】
特許文献２（特開２０１３−００３８２０号公報）は、上記特許文献１と同様、ＣＳＲＦ対策のためにコンテンツに埋め込まれるトークンを、サーバとクライアントとの間で共有されるＣｏｏｋｉｅと、サーバ側で保持する隠しキーとを用いて算出する技術を開示する。
【００１１】
特許文献３（特開２０１０−１６５０７９号公報）は、サーバと通信網を介して接続されたユーザ端末とを含む通信ネットワークにおいて、ユーザ端末が特定のサーバにログインしている場合に、当該ユーザ端末から他のサーバに対するリクエストを遮断する技術を開示する。特許文献３に開示された技術は、ユーザ端末が特定のサーバにログインしている場合、他のサーバに対するリクエストの送信を一律に制限することから、不正なリクエストの送信を一律に抑制可能である。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１３−１３４６５５号公報
【特許文献２】特開２０１３−００３８２０号公報
【特許文献３】特開２０１０−１６５０７９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記説明したように、Ｗｅｂサーバ又はＷｅｂアプリケーションにおいて、ＣＳＲＦ対策を実施することはセキュリティの観点から重要である。しかしながら、係る対策を実施した場合、ユーザが意図した正当なリクエストであっても、正しいＣＳＲＦトークンが含まれない場合には、係る正当なリクエストはサーバ側でガード（排除）されてしまう。
【００１４】
ユーザがサーバ（Ｗｅｂサイト）に対して任意のリクエストを発行（送信）する場合、当該リクエストに正しいＣＳＲＦトークンを含められるとは限らない。多くの場合、ＣＳＲＦトークンはサーバ側で生成され、攻撃者に推測されないような値（例えば、ランダムな値）が設定される。これより、ユーザが意図的に、ＣＳＲＦトークンが含まれるコンテンツを介さずに任意のリクエストをサーバに送信しようとしても、当該ＣＳＲＦトークンの取得が困難であり、結果として正当なリクエストを送信できない場合がある。この場合、ユーザの利便性が低下するという問題がある。また、ＣＳＲＦトークンが含まれるコンテンツを取得したＷｅｂブラウザ等において任意のリクエストを実行可能なアプリケーションを提供することは、他のセキュリティ問題（例えば、ＸＳＳ（Ｃｒｏｓｓ  Ｓｉｔｅ  Ｓｃｒｉｐｔｉｎｇ）等）に対する対策の観点から、必ずしも望ましいとはいえない。
【００１５】
これに対して、上記特許文献１及び特許文献２は、いずれも周知のＣＳＲＦ対策におけるＣＳＲＦトークンの算出及び検証方法に関する技術を開示するのみであり、上記説明したような問題を解決可能な技術ではない。また、上記特許文献３に開示された技術は、送信制限を実施する中継装置によって、クライアントからサーバに送信されるリクエストを遮断する技術であり、上記問題を解決可能な技術ではない。
【００１６】
本発明は、上記のような事情を鑑みてなされたものである。即ち、本発明は、サーバから提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、当該サーバに対して任意のリクエストを発行可能な情報処理装置等を提供することを主たる目的とする。
【課題を解決するための手段】
【００１７】
上記の目的を達成すべく、本発明の一態様に係る情報処理装置は、以下の構成を備える。即ち、本発明の一態様に係る情報処理装置は、通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第１のトークンを含む通信データを受信する第１の通信処理手段と、上記第１の通信処理手段が保持する上記第１のトークンを含む上記リクエストを生成し、当該生成した上記リクエストを上記サーバに対して送信可能な、上記第１の通信処理手段とは異なる第２の通信処理手段と、を備える。
【００１８】
また、本発明の一態様に係る情報処理方法は、以下の構成を備える。即ち、本発明の一態様に係る情報処理方法は、情報処理装置が、通信回線を介して通信可能に接続されたサーバから、当該サーバに送信されたリクエストの正当性を表す第１のトークンを含む通信データを第１の通信処理手段を用いて受信し、上記第１の通信処理手段が保持する上記第１のトークンを含む上記リクエストを生成し、上記第１の通信処理手段とは異なる第２の通信処理手段を用いて、生成した上記リクエストを上記サーバに対して送信する。
【００１９】
また、同目的は、上記構成を有する情報処理装置、並びに対応する情報処理方法を、コンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体等によっても達成される。
【発明の効果】
【００２０】
本発明によれば、サーバから提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、当該サーバに対して任意のリクエストを発行可能な情報処理装置等を提供可能である。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の第１の実施形態におけるユーザ端末及びサーバ装置の機能的な構成を例示するブロック図である。
【図２】図２は、本発明の第１の実施形態における第２のクライアント及びスクリプトが提供する機能を例示する図である。
【図３】図３は、本発明の第１の実施形態における第２のクライアントの機能的な構成を例示するブロック図である。
【図４】図４は、本発明の第１の実施形態におけるＷｅｂサーバの機能的な構成を例示するブロック図である。
【図５】図５は、本発明の第１の実施形態におけるユーザ端末及びサーバ装置の動作を例示するシーケンス（その１）である。
【図６】図６は、本発明の第１の実施形態におけるユーザ端末及びサーバ装置の動作を例示するシーケンス（その２）である。
【図７】図７は、本発明の第１の実施形態におけるユーザ端末及びサーバ装置の動作を例示するシーケンス（その３）である。
【図８】図８は、本発明の第２の実施形態における情報処理装置の機能的な構成を例示するブロック図である。
【図９】図９は、本発明の各実施形態に係る情報処理装置を実現可能なハードウェアの構成を例示する図である。
【発明を実施するための形態】
【００２２】
次に、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されている構成は単なる例示であり、本発明の技術範囲はそれらには限定されない。また、以下の各実施形態において説明する情報処理装置は、専用のハードウェア装置により実現されてもよく、１以上の物理的なコンピュータ又は仮想的なコンピュータ又はそれらの組合せを用いて実現されたシステムとして実現されてもよい。なお、係る情報処理装置を実現可能なハードウェア構成については後述する。
【００２３】
本発明の各実施形態に関する説明に先立って、本発明の理解を容易にするため、本発明に関する技術的背景及び課題について詳細に説明する。
【００２４】
情報通信技術の発達に伴い、上記説明したようなＷｅｂサービスあるいはＷｅｂアプリケーションが組み込まれた情報機器が普及している。より具体的には、例えば、各種サーバ装置などを構成する情報処理装置（コンピュータ等）を制御可能なＢＭＣ（Ｂａｓｅ  Ｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ：ベースボードマネージメントコントローラ）に、Ｗｅｂサーバ機能が実装される場合がある。
【００２５】
係るＢＭＣは、例えば、情報処理装置にファームウェア（例えば、ベースボードに組み込まれるファームウェア）等の形式で組み込まれ、情報処理装置に関する電源制御、センサ監視、及び、各種情報取得等を実行する。係るＢＭＣがＷｅｂサーバ機能を有する場合、当該Ｗｅｂサーバに対するリクエスト（ＨＴＴＰリクエスト）を用いて、係る情報処理装置の操作、あるいは、情報取得が可能である。この場合、係るリクエストには、例えば、ＢＭＣに対する各種制御コマンド等が含まれてもよい。
【００２６】
Ｗｅｂサーバ機能を有するＢＭＣにおいて、上記した周知のＣＳＲＦ対策が実施された場合、正当なＣＳＲＦトークンを含まないリクエストは、Ｗｅｂサーバによって排除される。即ち、係るＣＳＲＦ対策が実施された場合、ＢＭＣに対して任意のリクエスト（ＨＴＴＰリクエスト）を用いた各種コマンドの発行、及び、情報取得が自由に行えない場合がある。なお、この場合の任意のリクエストは、例えば、ＢＭＣサーバに対して、ＣＳＲＦトークンが設定されたコンテンツ（例えば、”ｈｉｄｄｅｎ”フィールドにＣＳＲＦトークンが設定されたＨＴＭＬのフォーム等）を介さずに送信するリクエストである。
【００２７】
より具体的には、この場合、Ｗｅｂサーバから直接ＣＳＲＦトークンを提供されたクライアント（例えばＷｅｂブラウザ等のアプリケーション）や、ＣＳＲＦトークンが設定コンテンツ等を介さずに、直接ＢＭＣのＷｅｂサーバに対して、任意のリクエストを送信することが困難になる。これにより、ユーザの利便性が損なわれる場合がある。
【００２８】
以上を鑑みて、以下に説明する各実施形態においては、Ｗｅｂサーバ機能を有するＢＭＣを具体例として、サーバから提供される、当該サーバに送信されたリクエストの正当性を表す情報（ＣＳＲＦトークン）を用いることにより、当該サーバに対して任意のリクエストを発行可能とする技術について説明する。なお、本発明はこれには限定されず、ＢＭＣ以外の任意のＷｅｂサーバに適用可能である。
【００２９】
＜第１の実施形態＞
以下、本発明の第１の実施形態について説明する。なお、以下においては、Ｗｅｂサーバ機能を提供するＢＭＣを有するサーバ装置と、当該Ｗｅｂサーバに対して各種リクエストを送信するクライアント装置（ユーザ端末）とにより構成されるシステムを具体例として説明する。
【００３０】
図１は、本実施形態におけるクライアント端末１０１及びサーバ装置１０２の機能的な構成の具体例を示すブロック図である。図１に例示するように、本実施形態においては、ユーザ端末１０１と、ＢＭＣ１０３を備えたサーバ装置１０２とが、任意の通信ネットワークを介して相互に通信可能に接続される。
【００３１】
ユーザ端末１０１とサーバ装置１０２とを接続する通信ネットワークは、インターネット等の広域ネットワークであってもよく、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の構内ネットワークであってもよい。なお、本実施形態においては、ユーザ端末１０１と、サーバ装置１０２との間はＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコルを用いて通信可能であることを仮定する。また、ユーザ端末１０１と、サーバ装置１０２（特には後述するＷｅｂサーバ１０３ａ）との間は、ＨＴＴＰプロトコルによる各種リクエストが送受信可能であることを仮定する。
【００３２】
ユーザ端末１０１は、後述するサーバ装置１０２と、通信ネットワーク（通信回線）を介して通信可能に接続された情報処理装置である。係るユーザ端末は、例えば、通信機能を有する任意の情報処理装置（例えば、各種コンピュータ、携帯情報端末等）であってもよい。
【００３３】
ユーザ端末１０１は、Ｗｅｂブラウザ１０１ａを有する。Ｗｅｂブラウザ１０１ａにおいて動作するＷｅｂクライアント１０１ｂ、スクリプト１０１ｃ、及び、ユーザ端末１０１ａにおいて実行される第２のクライアントプログラム（以下、単に「第２のクライアント」と称する）１０１ｄは、後述するサーバ装置１０２におけるＢＭＣ１０３から取得される。
【００３４】
Ｗｅｂブラウザ１０１ａは、Ｗｅｂサーバにより提供される各種コンテンツを解釈可能なソフトウェア・プログラム（各種のコンピュータ・プログラム）である。Ｗｅｂブラウザ１０１ａは、現在では広く知られた周知のブラウザ・アプリケーションであってよい。なお、Ｗｅｂブラウザ１０１ａは、後述するユーザ１０４が利用可能なＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ、ユーザインタフェース）を備えたアプリケーションとして提供されてもよい。また、Ｗｅｂブラウザ１０１ａは、通信処理及びコンテンツ解釈処理の機能を提供するライブラリとして提供されてもよい。
【００３５】
Ｗｅｂブラウザ１０１ａは、後述するＷｅｂサーバ１０３ａに対してＷｅｂクライアント１０１ｂ及び、スクリプト１０１ｃを取得するリクエストを発行することにより、これらを取得（受信）する。この際、Ｗｅｂブラウザ１０１ａと、Ｗｅｂサーバ１０３ａとの間では認証処理が実行され、認証済みのセッションであることを表すＣｏｏｋｉｅ（セッション情報）、及び、ＣＳＲＦトークンが発行されてもよい。係るＣｏｏｋｉｅは、Ｗｅｂブラウザ１０１ａに設定されてもよい。係るＣＳＲＦトークンは、取得されたコンテンツ（例えば、Ｗｅｂクライアント１０１ｂ）に設定されてもよい。Ｗｅｂブラウザ１０１ａが、Ｗｅｂサーバ１０３ａに対してリクエスト（ＨＴＴＰリクエスト）を送信する際には、係るＣｏｏｋｉｅとＣＳＲＦトークンとが通信データに付加される。なお、係る認証処理、Ｃｏｏｋｉｅ及びＣＳＲＦトークンの発行は、後述するＷｅｂクライアント１０１ｂとＷｅｂサーバ１０３ａとの間で実行されてもよい。
【００３６】
Ｗｅｂクライアント１０１ｂは、ユーザ１０４からの要求に応じて、後述するＷｅｂサーバ１０３ａとの間で各種リクエストの送信及びレスポンスの受信を実行する。また、Ｗｅｂクライアント１０１ｂは、後述するスクリプト１０１ｃを含み、係るスクリプト１０１ｃに実装された処理を実行する。Ｗｅｂクライアント１０１ｂは、例えば、サーバ装置１０２におけるＢＭＣ１０３においてコンテンツ１０３ｂとして保持され、上記Ｗｅｂブラウザ１０１ａにより、サーバ１０３ａを介して取得される。
【００３７】
Ｗｅｂクライアント１０１ｂは、例えば、Ｗｅｂブラウザ１０１ａにおいて解釈及び実行されるコンテンツとして実現可能である。この場合、係るコンテンツは、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等により記述されたドキュメントであってもよい。また、係るコンテンツは、例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｊａｖａ（登録商標）等のプログラム記述言語により記述された、ユーザ端末１０１側で実行されるプログラム（コンピュータ・プログラム）であってもよい。また、係るコンテンツは、例えば、Ｗｅｂサーバ１０３ａにおいて処理されるＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）、ＪＳＰ（Ｊａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）等を利用する処理を含んでもよい。
【００３８】
Ｗｅｂクライアント１０１ｂは、Ｗｅｂブラウザ１０１ａの機能を用いて、Ｗｅｂサーバ１０３ａとの間の通信処理を実行してもよい。
【００３９】
スクリプト１０１ｃは、Ｗｅｂクライアント１０１ｃに含まれるコンテンツであり、Ｗｅｂクライアント１０１ｃの一部として実現されてもよい。スクリプト１０１ｃは、例えば、ＢＭＣ１０３においてスクリプト１０３ｃとして保持され、上記Ｗｅｂブラウザ１０１ａにより、サーバ１０３ａを介して取得される。
【００４０】
スクリプト１０１ｃ（スクリプト１０３ｃ）は図２に例示するように、以下の機能を備える。これらの機能は、それぞれの機能を実現する処理を実装したプログラムにより実現可能である。なお、スクリプト１０１ｃとスクリプト１０３ｃとは同様としてよい。
【００４１】
・ＣＳＲＦトークンを取得する機能（図２の２０１）、
・第２のクライアントプログラムを取得する機能（図２の２０２）、
・ＣＳＲＦトークンを提供して、第２のクライアントプログラムを起動する機能（図２の２０３）。
【００４２】
Ｗｅｂクライアント１０１ｂは、上記説明したスクリプト１０１ｃの機能を用いて、ユーザ１０４からの要求に応じて、Ｗｅｂサーバ１０３ａから第２のクライアント１０１ｄを取得し、取得した第２のクライアント１０１ｄを起動する。この際、Ｗｅｂクライアント１０１ｂ（スクリプト１０１ｃ）は、第２のクライアント１０１ｄに対して上記ＣＳＲＦトークンを提供する。
【００４３】
例えば、第２のクライアント１０１ｄがＪａｖａ（登録商標）等により実装されたプログラムとして実現される場合、Ｗｅｂクライアント１０１ｂは、係るプログラムを起動する際に引数としてＣＳＲＦトークンを指定してもよい。より具体的には、例えば、Ｗｅｂクライアント１０１ｂは、Ｊａｖａ（登録商標）プログラム（アプレット等）の起動タグにＣＳＲＦトークンを含むＨＴＭＬを動的に生成し、係るＨＴＭＬをロードすることにより、第２のクライアント１０１ｄを起動してもよい。なお、本実施形態はこれには限定されず、第２のクライアント１０１ｄを起動する方法、及び、第２のクライアントに対してＣＳＲＦトークンを提供する方法は、当該第２のクライアントの具体的な実装等に応じて、適宜選択してよい。
【００４４】
第２のクライアント１０１ｄは、ユーザ端末１０１において実行可能なプログラム（コンピュータ・プログラム）であり、Ｗｅｂサーバ１０３ａとの間で各種リクエストの送信及びレスポンスの受信を実行する。第２のクライアント１０１ｄは、例えば、Ｊａｖａ（登録商標）などのプログラム記述言語により実装されたプログラムであってもよい。第２のクライアント１０１ｄは、例えば、ＢＭＣ１０３において第２のクライアント１０３ｄとして保持され、上記Ｗｅｂブラウザ１０１ａにより、サーバ１０３ａを介して取得される。
【００４５】
第２のクライアント１０１ｄ（第２のクライアント１０３ｄ）は、図２に例示するように、以下の機能を備える。なお、第２のクライアント１０１ｄと第２のクライアント１０３ｄとは同様としてよい。
【００４６】
・任意のクエスト（ＨＴＴＰリクエスト）の作成に用いる情報の入力を受け付ける機能（図２の２０４）、
・入力情報を元に任意のリクエストを生成する機能（図２の２０５）、
・任意のリクエスト発行（送信）時にＣＳＲＦトークンを付加する機能（図２の２０６）、
・リクエストに対するレスポンスを受信する機能（図２の２０７）。
【００４７】
これらの機能は、それぞれの機能を実現する処理を実装したプログラムにより実現可能である。ユーザ１０４は、第２のクライアント１０１ｄが実現するこれらの機能を用いて、サーバ装置１０２（特にはＢＭＣ１０３におけるＷｅｂサーバ１０３ａ）に対して、任意のリクエストを送信する。即ち、ユーザ１０４は、Ｗｅｂブラウザ１０１ａとは切り離された第２のクライアント１０１ｄを用いて、Ｗｅｂサーバ１０３ａに対し任意のリクエストを発行（送信）する。
【００４８】
図３は、第２のクライアント１０１ｄの機能的な構成の具体例を示す図である。なお、図３に例示する構成は一つの具体例であり、第２のクライアント１０１ｄをどのような構成要素に区分けするかは、適宜選択してよい。
【００４９】
情報入力部３０１は、ユーザ１０４からリクエストの作成に用いられる情報の入力を受け付ける情報入力インタフェースである。係る情報入力部３０１は、ユーザ１０４に対して、例えば、リクエストの生成に用いられる情報を設定可能なフィールド、リクエスト送信ボタン、及び、リクエストに対するレスポンスを表示するフィールド等を備えたＵＩを提供してもよい。係るＵＩをどのように構成するかは、任意に定めてよい。ユーザ１０４は、例えば、サーバ装置１０２に関する各種制御を実行するコマンドや、サーバ装置１０２の情報を取得するコマンド等を、情報入力部３０１に対して入力してもよい。
【００５０】
リクエスト作成部３０２は、情報入力部３０１に入力された情報を用いてリクエストを作成（生成）する。係るリクエストは、例えば、ＨＴＴＰにおけるＰＯＳＴリクエストによりＷｅｂサーバ１０３ａに送信される送信データである。係る送信データの具体的な形式は、サーバ装置１０２の仕様等に応じて、適宜選択してよい。
【００５１】
ＣＳＲＦトークン付加部３０３は、リクエスト作成部３０２において作成されたリクエストに対して、ＣＳＲＦトークンを付加する。上記したように、第２のクライアント１０１ｄが起動される際、Ｗｅｂクライアント１０１ｂ（スクリプト１０１ｃ）から、ＣＳＲＦトークンが提供される。これより、ＣＳＲＦトークン付加部３０３は、Ｗｅｂサーバ１０３ａから提供された正しいＣＳＲＦトークンを参照可能である。従って、ＣＳＲＦトークン付加部３０３は、Ｗｅｂサーバ１０３ａに対して送信されるリクエストに対して、正しいＣＳＲＦトークンを設定可能である。
【００５２】
通信部３０４は、ＣＳＲＦトークンが付加されたリクエストを、サーバ装置１０２（特には、Ｗｅｂサーバ１０３ａ）に対して送信する。また、通信部３０４は、サーバ装置１０２（特には、Ｗｅｂサーバ１０３ａ）から、上記送信したリクエストに対するレスポンスを受信する。
【００５３】
レスポンス解析部３０５は、通信部３０４がサーバ装置１０２から受信したレスポンスを解析する。レスポンス解析部３０５は、例えば、ＢＭＣ１０３が各種コマンドを実行した結果や、サーバ装置１０２から取得した各種情報等を、受信したレスポンスから抽出する。レスポンス解析部３０５は、係る解析結果を情報入力部３０１に通知してもよい。情報入力部３０１は、レスポンス解析部３０５の解析結果をＵＩに表示してもよい。
【００５４】
上記のように構成された、第２のクライアント１０１ｄは、スクリプト１０１ｃあるいはＷｅｂクライアント１０１ｂを参照することにより、ＣＳＲＦトークンを参照（取得）してもよい。一例として、スクリプト１０１ｃ及びＷｅｂクライアント１０１ｂがＨＴＭＬ及び各主スクリプト言語等を用いて記載されたコンテンツであり、第２のクライアント１０１ｄがＪａｖａ（登録商標）を用いて実装されたプログラム（例えばアプレット）である場合を仮定する。この場合、第２のクライアント１０１ｄは、スクリプト１０１ｃあるいはＷｅｂクライアント１０１ｂの実体であるコンテンツ（例えばＨＴＭＬ）の内容を参照可能である。これより、第２のクライアント１０１ｄは、例えば、係るコンテンツにおいてＣＳＲＦトークンが含まれるフィールドを参照することにより、ＣＳＲＦトークンを参照（取得）可能である。
【００５５】
以上のように構成されたユーザ端末１０１の具体的な動作については、後述する。
【００５６】
次に、サーバ装置１０２の機能的な構成について説明する。サーバ装置１０２は、コンピュータ等の情報処理装置を用いて構成される。図１に例示するように、サーバ装置１０２は、ＢＭＣ１０３を備える。
【００５７】
ＢＭＣ１０３は、サーバ装置１０２に関する各種制御を実行可能なコンポーネントである。ＢＭＣ１０３は、例えば、図示しない演算装置（プロセッサ）と、記憶装置（例えば、フラッシュメモリ等）等のハードウェアにより構成されてもよい。この場合、係る記憶装置にＢＭＣの機能が実装されたファームウェア（コンピュータ・プログラム）が格納され、係るファームウェアが、図示しない演算装置によって実行されることにより、ＢＭＣ１０３の機能が提供されてもよい。以下、ＢＭＣ１０３の機能的な構成について説明する。
【００５８】
ＢＭＣ１０３は、少なくともＷｅｂサーバ１０３ａを備える。また、ＢＭＣ１０３は、サービス処理部１０３ｅを備えてもよい。また、ＢＭＣ１０３は、コンテンツ１０３ｂ、スクリプト１０３ｃ、第２のクライアント１０３ｄを保持する。
【００５９】
Ｗｅｂサーバ１０３ａは、ユーザ端末１０１との間で、ＨＴＴＰを用いた通信を実行する。具体的には、Ｗｅｂサーバ１０３ａは、ユーザ端末１０１（特には、Ｗｅｂブラウザ１０１ａ、Ｗｅｂクライアント１０１ｂ、及び、第２のクライアント１０１ｄ）からリクエスト（ＨＴＴＰリクエスト）を受信し、それらに対してレスポンスを送信する。Ｗｅｂサーバ１０３ａは、上述したように、ユーザ端末１０１（特には、Ｗｅｂブラウザ１０１ａ、Ｗｅｂクライアント１０１ｂ）との間で認証処理を実行し、認証済みのセッションであることを表すＣｏｏｋｉｅ（セッション情報）、及び、ＣＳＲＦトークンを発行する。
【００６０】
図４は、Ｗｅｂサーバ１０３ａの機能的な構成を例示する図面である。なお、図４に例示する構成は一つの具体例であり、Ｗｅｂサーバ１０３ａをどのような構成要素に区分けするかは、適宜選択してよい。
【００６１】
通信部４０１は、ユーザ端末１０１から各種リクエスト（ＨＴＴＰリクエスト）を受信する。また、通信部４０１は、後述するレスポンス返却部４０５において生成されたレスポンス（ＨＴＴＰレスポンス）を、ユーザ端末１０１に送信する。
【００６２】
リクエスト解析部４０２は、通信部４０１において受信したリクエストを解析する。リクエスト解析部４０２は、例えば、受信したリクエストを解析することにより、係るリクエストに含まれるＣｏｏｋｉｅ及びＣＳＲＦトークンを抽出してもよい。
【００６３】
また、リクエスト解析部４０２は、ユーザ端末から受信したリクエストが認証処理に関するリクエストである場合、リクエスト処理部４０４に対して、認証処理の実行を通知してもよい。この場合、リクエスト処理部４０４は、サーバ装置１０２の仕様等に応じて適切な認証処理を実行してもよい。
【００６４】
ＣＳＲＦトークン認証部４０３は、リクエスト解析部４０２における解析結果に基づいて、ＣＳＲＦトークンの正当性を認証（検証）する処理を実行する。ＣＳＲＦトークン認証部４０３は、係るＣＳＲＦトークンが正常ではない（正当なＣＳＲＦトークンではない）場合は、係るリクエストを拒否するよう、リクエスト処理部４０４に通知してもよい。これにより、正常なＣＳＲＦトークンを含まない不正なリクエストは、Ｗｅｂサーバ１０３ａにおいて排除（拒否）される。
【００６５】
リクエスト処理部４０４は、リクエスト解析部４０２の解析結果に基づいて、ユーザ端末１０１から送信されたリクエストに関する処理を実行する。リクエスト処理部４０４は、サービス処理部１０３ｅに対して、ユーザ端末１０１から送信されたリクエストに関する処理の実行を依頼（通知）してもよい。
【００６６】
リクエスト処理部４０４は、ユーザ端末１０１から送信されたリクエストが認証処理に関するリクエストである場合、認証に関する処理を実行する。係る認証に関する処理は、例えば、ＢＭＣ１０３（Ｗｅｂサーバ１０３ａ）に対するログイン認証、認証済みセッションを表すＣｏｏｋｉｅの生成、及び、ＣＳＲＦトークンの生成等の処理を含んでもよい。なお、係るＣＳＲＦトークンは、ＣＳＲＦトークン認証部４０３において生成されてもよい。
【００６７】
また、リクエスト処理部４０４は、ユーザ端末１０１から受信したリクエストに含まれるＣＳＲＦトークンが正常ではない場合、係るリクエストに関する処理を拒否する（実行しない）。
【００６８】
次に、レスポンス返却部４０５は、リクエスト処理部４０４における処理の結果を用いて、ユーザ端末１０１に送信するレスポンス（ＨＴＴＰレスポンス）を生成する。上記したように、ＣＳＲＦトークンが正常ではない場合、レスポンス返却部４０５は、ユーザ端末１０１に対して、エラーを表すレスポンスを生成する。なお、生成されたレスポンスは、通信部４０１によりユーザ端末１０１に送信される。
【００６９】
Ｗｅｂサーバ１０３ａは、ユーザ端末１０１からのリクエストに応じて、コンテンツ１０３ｂ、スクリプト１０３ｃ、及び、第２のクライアント１０３ｄを、ユーザ端末１０１に送信可能である。コンテンツ１０３ｂ、スクリプト１０３ｃ、及び、第２のクライアント１０３ｄは、ＢＭＣ１０３における、図示しない記憶装置に保持されていてもよい。
【００７０】
コンテンツ１０３ｂは、上記説明したＷｅｂクライアント１０１ｂを含む、任意のコンテンツである。スクリプト１０３ｃは、上記説明したスクリプト１０１ｃと同様である。なお、スクリプト１０３ｃは、コンテンツ１０３ｂの一部に含まれてもよい。第２のクライアント１０３ｄは、上記説明した第２のクライアント１０１ｄと同様である。
【００７１】
ユーザ端末１０１から送信される、コンテンツ１０３ｂ、スクリプト１０３ｃ、又は、第２のクライアント１０３ｄの取得を要求するリクエストに関して、Ｗｅｂサーバ１０３ａは、ＣＳＲＦトークンを検証してもよい。
【００７２】
サービス処理部１０３ｅは、ユーザ端末１０１から送信された各種リクエストに応じて、サーバ装置１０２に対する各種制御を実行する。サービス処理部１０３ｅは、例えば、ユーザ端末１０１から送信された、ＢＭＣ１０３に対する制御コマンドを実行し、係る実行結果をＷｅｂサーバ１０３ａに通知してもよい。
【００７３】
次に、上記のように構成された、本実施形態におけるユーザ端末１０１、及び、サーバ装置１０２の動作について、図５乃至図７を参照して説明する。以下においては、ユーザ１０４の要求に基づいて、Ｗｅｂクライアント１０１ｂ及びスクリプト１０１ｃが、サーバ装置１０２からユーザ端末１０１に取得されていることを仮定する。この場合、例えば、ユーザ１０４が、Ｗｅｂブラウザ１０１ａを用いて、Ｗｅｂサーバ１０３ａから、Ｗｅｂクライアント１０１ｂ（コンテンツ１０３ｂ）及びスクリプト１０１ｃ（スクリプト１０３ｃ）を取得してもよい。
【００７４】
図５は、本実施形態におけるユーザ端末１０１及びサーバ装置１０２の動作を例示するシーケンス図である。より具体的には、図５は、Ｗｅｂクライアント１０１ｂとＷｅｂサーバ１０３ａとの間における認証処理（Ｃｏｏｋｉｅ及びＣＳＲＦトークンの取得処理を含む）のシーケンスと、Ｗｅｂクライアント１０１ｂからの、ＣＳＲＦトークンを含むリクエストの発行（送信）処理のシーケンスに関する具体例を例示する。
【００７５】
まず、ユーザ１０４は、ユーザ端末１０１を用いて、サーバ装置１０２（特には、Ｗｅｂサーバ１０３ａ）へのアクセスする（ステップＳ５０１）。より具体的には、ユーザ１０４は、Ｗｅｂクライアント１０１ｂを用いて、Ｗｅｂサーバ１０３ａにアクセスする処理を実行する。この場合、ユーザ１０４は、例えば、Ｗｅｂブラウザ１０１ａを介して、Ｗｅｂクライアント１０１ｂを操作してもよい。
【００７６】
Ｗｅｂクライアント１０１ｂは、Ｗｅｂサーバ１０３ａに対して、Ｗｅｂサーバに対するアクセス要求を送信する（ステップＳ５０２）。以下においては、Ｗｅｂクライアント１０１ｂが、Ｗｅｂサーバ１０３ａにおける認証を要するコンテンツに対するアクセスを要求したことを仮定する。
【００７７】
係るアクセス要求に対して、Ｗｅｂサーバ１０３ａはレスポンスを生成し、係るレスポンスをＷｅｂクライアント１０１ｂに送信する（ステップＳ５０３）。この場合、係るレスポンスは、例えば、Ｗｅｂサーバ１０３ａにおいて必要とする認証情報の入力を、Ｗｅｂクライアント１０１ｂに求めるものであってもよい。より具体的には、例えば、Ｗｅｂサーバ１０３ａは、ログイン認証において必要とする認証情報を入力させるコンテンツ（例えば認証ページ等）を、Ｗｅｂクライアント１０１ｂに送信してもよい。
【００７８】
次に、Ｗｅｂクライアント１０１ｂは、Ｗｅｂサーバ１０３ａに対して、認証情報を含む認証要求を送信する（ステップＳ５０４）。
【００７９】
係る認証要求を受信したＷｅｂサーバ１０３ａは、ログイン認証処理（ステップＳ５０５）を実行する。この場合、Ｗｅｂサーバ１０３ａは、Ｗｅｂクライアント１０１ｂから送信された認証情報に基づいて、Ｗｅｂクライアント１０１ｂからのログインを許可するか否かを判定してもよい。
【００８０】
Ｗｅｂサーバ１０３ａは、ステップＳ５０５におけるログイン認証処理が成功した場合、Ｗｅｂクライアント１０１ｂとの間のセッションが認証済みであることを表すＣｏｏｋｉｅを生成する（ステップＳ５０６）。
【００８１】
Ｗｅｂサーバ１０３ａは、ステップＳ５０５におけるログイン認証処理が成功した場合、Ｗｅｂクライアント１０１ｂとの間で送受信されるリクエストの正当性を表す情報であるＣＳＲＦトークンを生成する（ステップＳ５０７）。
【００８２】
ステップＳ５０５乃至ステップＳ５０７における処理を実行した後、Ｗｅｂサーバ１０３ａは、Ｗｅｂクライアント１０１ｂに対して、Ｃｏｏｋｉｅ及びＣＳＲＦトークンを返却する（ステップＳ５０８）。より具体的には、Ｗｅｂサーバ１０３ａは、Ｗｅｂクライアント１０１ｂに対して、Ｃｏｏｋｉｅ及びＣＳＲＦトークンを含むレスポンスを送信する。
【００８３】
係るレスポンスを受信したＷｅｂクライアント１０１ｂは、当該レスポンスに含まれるＣｏｏｋｉｅを保存する（ステップＳ５０９）。具体的には、Ｗｅｂクライアント１０１ｂは、Ｗｅｂブラウザ１０１ａに対して、係るＣｏｏｋｉｅを書き込む（保持させる）。Ｗｅｂブラウザ１０１ａにＣｏｏｋｉｅを保持させる方法は周知であることから、詳細な説明は省略する。
【００８４】
また、Ｗｅｂクライアント１０１ｂは、Ｗｅｂサーバ１０３ａから受信したレスポンスに含まれるＣＳＲＦトークンを保持する（ステップＳ５１０）。Ｗｅｂクライアント１０１ｂは、Ｗｅｂサーバ１０１ａからレスポンスとして受信した、ＣＳＲＦトークンを含むコンテンツ自体を保持してもよい。また、Ｗｅｂクライアント１０１ｂは、係るコンテンツからＣＳＲＦトークンを抽出して、係るＣＳＲＦトークンを保持してもよい。
【００８５】
図５に例示する具体例においては、Ｗｅｂクライアント１０１ｂがステップＳ５０２乃至Ｓ５１０の処理を実行するが、係る処理は、Ｗｅｂブラウザ１０１ａが実行してもよい。この場合、Ｗｅｂブラウザ１０１ａは、Ｗｅｂサーバ１０３ａから、Ｃｏｏｋｉｅ及びＣＳＲＦトークンが設定されたレスポンスとして、Ｗｅｂクライアント１０１ｂ（及びスクリプト１０１ｃ）を含むコンテンツを受信してもよい。
【００８６】
上記ステップＳ５０１乃至Ｓ５１０の後、ユーザ１０４が、ユーザ端末１０１を用いて、Ｗｅｂ操作を実行する（ステップＳ５１１）。ユーザ１０４は、係るＷｅｂ操作として、例えば、第２のクライアント１０３ｄの取得を要求してもよい。
【００８７】
次に、Ｗｅｂクライアント１０１ｂは、ステップＳ５１１におけるＷｅｂ操作の内容に応じて、Ｃｏｏｋｉｅ及びＣＳＲＦトークンを含むＨＴＴＰリクエストを生成する（ステップＳ５１２）。即ち、ステップＳ５１１以降のＷｅｂ操作に伴い、Ｗｅｂサーバ１０３ａに送信されるリクエストには、ＣＳＲＦトークンが付加される。
【００８８】
次に、Ｗｅｂクライアント１０１ｂは、ステップＳ５１２において生成したＨＴＴＰリクエストを、Ｗｅｂサーバ１０３ａに送信する（ステップＳ５１３）。
【００８９】
Ｗｅｂサーバ１０３ａは、ステップＳ５１３において送信されたリクエストに含まれる、ＣＳＲＦトークンを認証（検証）する（ステップＳ５１４）。Ｗｅｂサーバ１０３ａは、ステップＳ５０７において発行したＣＳＲＦトークンと、ステップＳ５１３において送信されたリクエストに含まれるＣＳＲＦトークンとが一致した場合に、当該リクエストを正当なリクエストとして認証してもよい（認証成功）。
【００９０】
ステップＳ５１４においてＣＳＲＦトークンを認証した結果、正当なリクエストである場合、Ｗｅｂサーバ１０３ａは、係るリクエストに関する処理を実行する（ステップＳ５１５）。
【００９１】
次に、Ｗｅｂサーバ１０３ａは、ステップＳ５１５における処理の結果に基づいてレスポンスを生成し、係るレスポンスをＷｅｂクライアント１０１ｂに返却（送信）する（ステップＳ５１６）。
【００９２】
Ｗｅｂクライアント１０１ｂは、ステップＳ５１６において送信されたレスポンスを受信する（ステップＳ５１７）。係るレスポンスは、例えば、Ｗｅｂブラウザ１０１ａに表示されてもよい。
【００９３】
以上説明したステップＳ５０１乃至ステップＳ５１７は、ＣＳＲＦ対策が実施されたＷｅｂサーバ１０３ａと、Ｗｅｂクライアント１０１ｂとの間で実行される、リクエスト及びレスポンスの送受信処理である。
【００９４】
次に、図６を参照して、ＣＳＲＦ攻撃により、Ｗｅｂブラウザ１０１ａから、Ｗｅｂサーバ１０３ａに対して直接リクエストが発行される場合の動作について説明する。以下の説明においては、Ｗｅｂクライアント１０１ｂ（あるいはＷｅｂブラウザ１０１ａ）と、Ｗｅｂサーバ１０３ａとの間で認証処理が実行済みであることを仮定する（ステップＳ６０１）。係る認証処理は、例えば、図５におけるステップＳ５０２乃至Ｓ５１０と同様としてよい。
【００９５】
まず、ユーザ１０４の操作により、意図しない不正なＨＴＴＰリクエストの送信がＷｅｂブラウザに通知される（ステップＳ６０２）。例えば、ユーザ１０４が、攻撃者が用意した攻撃用のリンクに誤ってアクセスすることにより、不正なＨＴＴＰリクエストが実行される。
【００９６】
係るＨＴＴＰリクエストが実行された場合、Ｗｅｂブラウザ１０１ａは、Ｗｅｂブラウザ１０１ａにおいて保持しているＣｏｏｋｉｅを含むリクエストを生成する（ステップＳ６０３）。そして、Ｗｅｂブラウザ１０１ａは、係るリクエストを、ＨＴＴＰリクエストとしてＷｅｂサーバ１０３ａに発行（送信）する（ステップＳ６０４）。上記ステップＳ６０３乃至ステップＳ６０４の処理によって、Ｗｅｂブラウザ１０１ａが保持するＣｏｏｋｉｅは、不正なＨＴＴＰリクエストに利用されてしまう。しかしながら、通常不正なＨＴＴＰリクエスト操作においては、正しいＣＳＲＦトークンが不明であることから、ステップＳ６０３において生成されるリクエストには、正しいＣＳＲＦトークンが含まれない。
【００９７】
ステップＳ６０４において送信されたリクエストを受信したＷｅｂサーバ１０３ａは、係るリクエストに対するＣＳＲＦ認証処理を実行する（ステップＳ６０５）。係る処理は、図５におけるステップＳ５１４と同様としてよい。
【００９８】
この場合、Ｗｅｂサーバ１０３ａは、ステップＳ６０４において送信されたリクエストに含まれるＣＳＲＦトークンと、Ｗｅｂクライアント１０１ｂ（あるいはＷｅｂブラウザ１０１ａ）に対してＣＳＲＦトークンとが一致しないことを確認する。結果として、Ｗｅｂサーバ１０３ａは、係るリクエストが正当なリクエストではないと判定する。Ｗｅｂサーバ１０３ａは、ステップＳ６０４において送信されたリクエストにＣＳＲＦトークンが含まれない場合も、係るリクエストが正当なリクエストではないと判定してよい。これにより、Ｗｅｂサーバ１０３ａは、不正なＨＴＴＰ操作に伴うリクエストを排除する。
【００９９】
次に、Ｗｅｂサーバ１０３ａは、受信したリクエストが不正であることを表すレスポンスをＷｅｂブラウザ１０１ａに通知する（ステップＳ６０６）。Ｗｅｂブラウザ１０１ａは、Ｗｅｂサーバ１０３ａからのレスポンスに基づいて、リクエストが失敗した場合の処理を実行する（ステップＳ６０７）。この場合、Ｗｅｂブラウザ１０１ａは、例えば、リクエストの失敗を表すコンテンツを表示してもよい。
【０１００】
以上説明した動作により、正しいＣＳＲＦトークンを保持するＷｅｂクライアント１０１以外からの不正なリクエストが、Ｗｅｂサーバ１０３ａにおいて排除される。
【０１０１】
次に、図７を参照して、本実施形態における第２のクライアント１０１ｄを用いた、Ｗｅｂサーバ１０３ａに対するリクエストの送信について説明する。以下の説明においては、Ｗｅｂクライアント１０１ｂ（あるいはＷｅｂブラウザ１０１ａ）と、Ｗｅｂサーバ１０３ａとの間で認証処理が実行済みであることを仮定する（ステップＳ７０１）。係る認証処理は、例えば、図５におけるステップＳ５０２乃至Ｓ５１０と同様としてよい。
【０１０２】
まず、ユーザ１０４は、ユーザ端末１０１を用いて、第２のクライアント１０１ｄを取得する操作を実行する（ステップＳ７０２）。
【０１０３】
係る操作を受け付けたＷｅｂクライアント１０１ｂは、Ｗｅｂサーバ１０３ａに対して、第２のクライアント１０１ｄ（ＢＭＣ１０３が保持する第２のクライアント１０３ｄ）の取得（ダウンロード）を要求するリクエストを送信する（ステップＳ７０３）。なお、この際送信されるリクエスト（ＨＴＴＰリクエストにもＣＳＲＦトークンが付与されてよく、Ｗｅｂサーバ１０３ａは係るＣＳＲＦトークンを認証（検証）してもよい。
【０１０４】
ステップＳ７０３において送信されたリクエストを受け付けたサーバ１０３ａは、ＢＭＣ１０３が保持する第２のクライアント１０３ｄを、レスポンスとして送信する（ステップＳ７０４）。
【０１０５】
次に、Ｗｅｂクライアント１０１ｂは、Ｗｅｂサーバ１０３ａから取得した第２のクライアントを起動する（ステップＳ７０５）。具体的には、Ｗｅｂクライアント１０１ｂが、スクリプト１０１ｃを実装された機能（図２における２０３）を実行することにより、第２のクライアント１０１ｄを実行する。この際、Ｗｅｂクライアント１０１ｂは、認証処理（ステップＳ７０１）においてＷｅｂサーバ１０３ａより発行されたＣｏｏｋｉｅ及びＣＳＲＦトークンを、第２のクライアント１０１ｄに提供する。具体的には、Ｗｅｂクライアント１０１ｂは、Ｃｏｏｋｉｅ及びＣＳＲＦトークンを起動時のパラメータ（引数）として、第２のクライアント１０１ｄを実行（起動）してもよい。また、第２のクライアント１０１ｄは、スクリプト１０１ｃを参照することにより、Ｃｏｏｋｉｅ及びＣＳＲＦトークンを取得してもよい。
【０１０６】
ステップＳ７０５の結果、第２のクライアント１０１ｄが実行（起動）される（ステップＳ７０６）。
【０１０７】
次に、ユーザ１０４は、第２のクライアント１０１ｄに対して、任意のリクエストの送信を要求する操作を実行する（ステップＳ７０７）。係るリクエストは、例えば、サーバ装置１０２に対する各種制御リクエスト（ＢＭＣ１０３に対するコマンド）、あるいは、サーバ装置１０２の情報を取得するリクエスト等を含んでもよい。
【０１０８】
次に、第２のクライアント１０１ｄは、ステップＳ７０７において要求されたリクエストに応じて、Ｃｏｏｋｉｅ及びＣＳＲＦトークンを含むＨＴＴＰリクエストを生成する（ステップＳ７０８）。即ち、ステップＳ７０９において生成されるＨＴＴＰリクエストには、正しいＣＳＲＦトークンが含まれる。
【０１０９】
次に、第２のクライアント１０１ｄは、ステップＳ７０８において生成されたＨＴＴＰリクエストを、Ｗｅｂサーバ１０３ａに対して送信する（ステップＳ７０９）。
【０１１０】
Ｗｅｂサーバ１０３ａは、ステップＳ７０９において送信されたリクエストに含まれる、ＣＳＲＦトークンを認証（検証）する（ステップＳ７１０）。Ｗｅｂサーバ１０３ａは、認証処理（ステップＳ７０１）において発行したＣＳＲＦトークンと、ステップＳ７０９において送信されたリクエストに含まれるＣＳＲＦトークンとが一致した場合に、当該リクエストを正当なリクエストとして認証してもよい（認証成功）。
【０１１１】
ステップＳ７１０においてＣＳＲＦトークンを認証した結果、正当なリクエストである場合、Ｗｅｂサーバ１０３ａは、係るリクエストに関する処理を実行する（ステップＳ７１１）。
【０１１２】
次に、Ｗｅｂサーバ１０３ａは、ステップＳ７１１における処理の結果に基づいてレスポンスを生成し、係るレスポンスを第２のクライアント１０１ｄに返却（送信）する（ステップＳ７１２）。
【０１１３】
上記ステップＳ７１０乃至Ｓ７１２は、それぞれ図５におけるステップＳ５１４乃至Ｓ５１６と同様としてもよい。
【０１１４】
次に、第２のクライアント１０１ｄは、ステップＳ７１２において送信されたレスポンスを受信する（ステップＳ７１３）。第２のクライアントは、例えば、係るレスポンスをＵＩに表示してもよい。
【０１１５】
上記説明した処理により、ユーザ１０４は、Ｗｅｂブラウザ１０１ａ及びＷｅｂクライアント１０１ｂとは独立した第２のクライアント１０１ｄを用いて、任意のリクエストをＷｅｂサーバ１０３ａに送信可能である。
【０１１６】
以上説明した本実施形態におけるユーザ端末１０１（特には、Ｗｅｂクライアント１０１ｂ及び第２のクライアント１０１ｄ）によれば、ＣＳＲＦ対策が実施されたＷｅｂサーバ（Ｗｅｂサーバ１０３ａ等）に対して、任意のリクエストを送信可能である。なぜならば、ＣＳＲＦ対策が実施されたサーバ装置１０２（特には、Ｗｅｂサーバ１０３ａ）から取得されたセキュアな通信に用いられる情報（ＣＳＲＦトークン等）が、ユーザ端末１０１（特には、Ｗｅｂクライアント１０１ｂ及び第２のクライアント１０１ｄ）から送信されるリクエストに含まれるからである。上記したように、係るＣＳＲＦトークンは、サーバに送信されたリクエストの正当性を表す情報である。
【０１１７】
より具体的には、本実施形態によれば、第２のクライアント１０１ｄが実行される際、Ｗｅｂクライアント１０１ｂからＣＳＲＦトークンが提供される。第２のクライアント１０１ｄは、係るＣＳＲＦトークンを参照することにより、正しいＣＳＲＦトークンを含んだリクエストを、Ｗｅｂサーバ１０３ａに送信可能である。これにより、ユーザ端末１０１からサーバ装置１０２に送信される各リクエストには、正しいＣＳＲＦトークンが含まれる。
【０１１８】
また、本実施形態によれば、ユーザ端末１０１からサーバ装置１０２に対してリクエストを送信する経路がＷｅｂブラウザ１０１ａあるいはＷｅｂクライアント１０１ｂに限定されない。即ち、本実施形態によれば、Ｗｅｂブラウザ１０１ａあるいはＷｅｂクライアント１０１ｂとは独立した第２のクライアント１０１ｄから、サーバ装置１０２（特にはＷｅｂサーバ１０３ａ）に対してリクエストを送信可能である。これより、ＣＳＲＦ攻撃だけでなくクロスサイトスクリプティング（ＸＳＳ）等、Ｗｅｂブラウザ１０１ａを標的とした他の攻撃に対する安全性が高まる。
【０１１９】
以上より、本実施形態によれば、サーバ（サーバ装置１０２）から提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、当該サーバに対して任意のリクエストを発行可能な情報処理装置（ユーザ端末１０１）等を提供可能である。
【０１２０】
＜第１の実施形態の変形例＞
上記説明した第１の実施形態の変形例について説明する。本変形例におけるユーザ端末１０１、及び、サーバ装置１０２の機能的な構成は上記第１の実施形態と同様としてよい。
【０１２１】
上記説明した第１の実施形態においては、Ｗｅｂクライアント１０１ｂは、第２のクライアント１０１ｄを実行（起動）する際に、ＣＳＲＦトークン及びＣｏｏｋｉｅ等の情報を提供する。
【０１２２】
これに対して、本変形例においては、Ｗｅｂサーバ１０３ａが、第２のクライアント１０１ｄ（ＢＭＣ１０３における第２のクライアント１０３ｄ）を送信する際（図７におけるステップＳ７０４）、係る第２のクライアント１０１ｄに、ＣＳＲＦトークンを設定する（埋め込む）。換言すると、ステップＳ７０３及びステップＳ７０４においてＷｅｂクライアント１０１ｂが取得する第２のクライアント１０１ｄには、ＣＳＲＦトークンが含まれている（埋め込まれている）。
【０１２３】
以上のように構成された本変形例によれば、上記第１の実施形態と同様、第２のクライアント１０１ｄは、設定されたＣＳＲＦトークンを参照することで、正しいＣＳＲＦトークンを含んだリクエストを、Ｗｅｂサーバ１０３ａに送信可能である。これにより、ユーザ端末１０１からサーバ装置１０２に送信される各リクエストに、ＣＳＲＦトークンが含まれる。また、本変形例は、上記第１の実施形態と同様の構成を有することから、上記第１の実施形態と同様の効果を奏する。
【０１２４】
以上より、本実施形態によれば、サーバ（サーバ装置１０２）から提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより任意のリクエストを発行可能な情報処理装置（ユーザ端末１０１）等を提供可能である。
【０１２５】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。
【０１２６】
図８は、本実施形態における情報処理装置８０１の機能的な構成を例示するブロック図である。図８に例示するように、本実施形態における情報処理装置８０１は、第１の通信処理部８０２と、第２の通信処理部８０３とを備える。また、情報処理装置８０１は、サーバ８０４と任意の通信回線を介して通信可能に接続されている。以下、情報処理装置８０１の構成要素について説明する。
【０１２７】
第１の通信処理部８０２は、通信回線を介して通信可能に接続されたサーバ８０４から、当該サーバに送信されたリクエストの正当性を表す第１のトークンを含む通信データを受信する。係る第１の通信処理部８０２は、例えば、上記第１の実施形態におけるＷｅｂクライアント１０１ｂと同様としてもよい。
【０１２８】
第２の通信処理部８０３は、上記第１の通信処理部が保持する上記第１のトークンを含む他のリクエストを生成する。そして、第２の通信処理部８０３は、当該生成したリクエストを、上記サーバに対して送信する。係る第２の通信部８０３は、通信データを上記サーバに対して送信可能な、上記第１の通信処理部８０２とは異なる送信手段である。係る第２の通信処理部８０３は、例えば、上記第１の実施形態における第２のクライアント１０１ｄと同様としてもよい。
【０１２９】
具体例として、サーバ装置８０４においてＣＳＲＦ対策が実施されている場合を仮定する。この場合、第１の通信処理部８０２は、例えば、当該サーバ８０４に送信された通信データの正当性を表す情報であるＣＳＲＦトークン（第１のトークン）を、サーバ８０４から受信する。そして、第２の通信処理部８０３は、上記第１の通信処理具８０２が受信したＣＳＲＦトークンを含むリクエストを生成し、当該生成したリクエストをサーバ８０４に対して送信する。この場合、第１の通信処理部８０２は、例えば、係る第１のトークンを保持するとともに、第２の通史処理部８０３に対して当該第１のトークンを提供してもよい。これにより、第２の通信処理部８０３は、サーバ８０４から提供される、サーバ８０４に対して送信されたリクエストの正当性を表す情報（ＣＳＲＦトークン）を用いて、任意のリクエストをサーバ８０４に対して送信可能である。
【０１３０】
以上より、本実施形態における情報処理装置８０１は、サーバ（サーバ８０４）から提供される、当該サーバに送信されたリクエストの正当性を表す情報を用いることにより、任意のリクエストを発行可能である。なぜならば、上記第１の通信処理部８０２がサーバ８０４から受信した第１のトークンを含むリクエストを、上記第２の通信処理部８０３がサーバ８０４に対して可能であるからである。
【０１３１】
＜ハードウェア及びソフトウェア・プログラム（コンピュータ・プログラム）の構成＞
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
【０１３２】
以下の説明において、上記各実施形態において説明したユーザ端末１０１、情報処理装置８０１、及びサーバ装置１０２をまとめて、単に「情報処理装置」と称する。また、ユーザ端末１０１、情報処理装置８０１、及びサーバ装置１０２の構成要素を、単に「情報処理装置の構成要素」と称する。
【０１３３】
上記各実施形態において説明した情報処理装置は、専用のハードウェア装置により構成してもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア（処理ロジックを実装した集積回路等）として実現してもよい。
【０１３４】
例えば、各構成要素をハードウェアにより実現する場合、各構成要素は、それぞれの機能を提供可能な集積回路をＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等により実装されてもよい。この場合、例えば、各構成要素が保持するデータは、ＳｏＣとして統合されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域やフラッシュメモリ領域に記憶されてもよい。
【０１３５】
また、この場合、各構成要素を接続する通信回線としては、周知の通信バスを採用してもよい。また、各構成要素を接続する通信回線はバス接続に限らず、それぞれの構成要素間をピアツーピアで接続してもよい。
【０１３６】
また、上述した情報処理装置は、図９に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。
【０１３７】
図９における演算装置９０１は、汎用のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ等の演算処理装置である。演算装置９０１は、例えば後述する不揮発性記憶装置９０３に記憶された各種ソフトウェア・プログラムを記憶装置９０２に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるＷｅｂクライアント１０１ｂ、第２のクライアント１０１ｄ、Ｗｅｂサーバ１０３ａ、第１の通信処理部８０２、第２の通信処理部８０３等は、演算装置９０１により実行されるソフトウェア・プログラムとして実現可能である。
【０１３８】
記憶装置９０２は、演算装置９０１から参照可能な、ＲＡＭ等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置９０２は、揮発性のメモリ装置であってもよい。
【０１３９】
不揮発性記憶装置９０３は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置９０３は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
【０１４０】
ネットワークインタフェース９０６は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）接続用インタフェース装置等を採用してもよい。上記各実施形態において、ユーザ端末１０１はネットワークインタフェース９０６を介して、サーバ装置１０２と接続されてもよい。また、情報処理装置８０１は、ネットワークインタフェース９０６を介して、サーバ８０４と接続されてもよい。
【０１４１】
ドライブ装置９０４は、例えば、後述する記憶媒体９０５に対するデータの読み込みや書き込みを処理する装置である。
【０１４２】
記憶媒体９０５は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
【０１４３】
入出力インタフェース９０７は、外部装置との間の入出力を制御する装置である。
【０１４４】
上述した各実施形態を例に説明した本発明は、例えば、図９に例示したハードウェア装置により情報処理装置を構成し、係るハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより実現されてもよい。この場合、係る装置に対して供給したソフトウェア・プログラムを、演算装置９０１が実行することによって、本発明が実現されてもよい。
【０１４５】
上述した各実施形態において、上記各図（例えば、図１、図３、図４、及び図８）に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能（処理）単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
【０１４６】
例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールを不揮発性記憶装置９０３に記憶しておき、演算装置９０１がそれぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置９０２に読み出すよう構成してもよい。
【０１４７】
また、これらのソフトウェアモジュールの間は、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成してもよい。このような構成により、これらのソフトウェアモジュールの間は、相互に通信可能に接続可能である。
【０１４８】
更に、上記各ソフトウェア・プログラムを記憶媒体９０５に記録しておき、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置９０４を通じて当該ソフトウェア・プログラムを不揮発性メモリ９０３に格納するよう構成してもよい。
【０１４９】
なお、上記の場合において、上記情報処理装置への各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
【０１５０】
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【０１５１】
また、上述した情報処理装置、あるいは、当情報処理装置の構成要素は、図９に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、図９に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図９に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
【０１５２】
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【符号の説明】
【０１５３】
１０１  ユーザ端末
１０１ａ  Ｗｅｂブラウザ
１０１ｂ  Ｗｅｂクライアント
１０１ｃ  スクリプト
１０１ｄ  第２のクライアント
１０２  サーバ装置
１０３  ＢＭＣ
１０３ａ  Ｗｅｂサーバ
１０３ｂ  コンテンツ
１０３ｃ  スクリプト
１０３ｄ  第２のクライアント
１０３ｅ  サービス処理部
３０１  情報入力部
３０２  リクエスト作成部
３０３  ＣＳＲＦトークン付加部
３０４  通信部
３０５  レスポンス解析部
４０１  通信部
４０２  リクエスト解析部
４０３  ＣＳＲＦトークン認証部
４０４  リクエスト処理部
４０５  レスポンス返却部
８０１  情報処理装置
８０２  第１の通信処理部
８０３  第２の通信処理部
８０４  サーバ
９０１  演算装置
９０２  記憶装置
９０３  不揮発性記憶装置
９０４  ドライブ装置
９０５  記憶媒体
９０６  ネットワークインタフェース
９０７  入出力インタフェース
【図１】
0006394326.tif 000002
【図２】
0006394326.tif 000003
【図３】
0006394326.tif 000004
【図４】
0006394326.tif 000005
【図５】
0006394326.tif 000006
【図６】
0006394326.tif 000007
【図７】
0006394326.tif 000008
【図８】
0006394326.tif 000009
【図９】
0006394326.tif 000010