(57)【要約】【課題】企業内秘匿情報のセキュリティ対策をアプリケーション提供会社側でも行わせつつ、クラウドサービスの利用の促進を図ることができる情報処理システム及び情報処理方法を提供すること。【解決手段】インターネットに接続されたサーバ上で動作する第１及び第２仮想マシンを備える。第１仮想マシンは、クライアント端末装置からのリクエストを受け付け、リクエストに応じた処理を前記第２仮想マシンに要求する。第２仮想マシンは、クライアント端末装置から前記第１仮想マシンを介して鍵情報を取得しており、第１仮想マシンが要求する処理が記憶手段への所定データの登録要求であるとき、所定データを取得した鍵情報に基づいて暗号化して記憶手段に記憶する。【選択図】図１
2011076505.tif 000002
【特許請求の範囲】
【請求項１】
インターネットに接続されたサーバ上で動作する第１及び第２仮想マシンを備えた情報処理システムにおいて、
前記第１仮想マシンは、
前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付手段と、
前記リクエストに応じた処理を前記第２仮想マシンに要求する要求手段と、
前記要求に対して前記第２仮想マシンから受信した情報を前記クライアント端末装置に送信する送信手段と、を備え、
前記第２仮想マシンは、
前記クライアント端末装置から前記第１仮想マシンを介して鍵情報を取得する鍵取得手段と、
前記第１仮想マシンが要求する前記リクエストに応じた処理が記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理手段と、
前記復号化されたデータを前記第１仮想マシンへ送信する送信手段と、を備えた
ことを特徴とする情報処理システム。
【請求項２】
前記記憶処理手段は、前記第１仮想マシンが要求する前記リクエストに応じた処理が前記記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得手段で取得した鍵情報に基づいて暗号化して前記記憶手段に記憶する、ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第２仮想マシンは、
前記鍵取得手段で取得された鍵情報を記憶する鍵記憶手段と、
前記第１仮想マシンが前記クライアント端末装置と接続してからその接続を切断するまでの間、前記鍵情報を前記鍵記憶手段に記憶している状態を維持し、前記第１仮想マシンが前記クライアント端末装置との接続を切断したときに、前記鍵取得手段で取得した鍵情報を鍵記憶手段から削除する鍵記憶処理手段と、を備えたことを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記第１仮想マシンは、前記クライアント端末装置との通信が所定時間ないときに、前記クライアント端末装置との接続を切断することを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記第２仮想マシンのリソースの利用率が所定閾値以上となったとき、増設用の第２仮想マシンを前記サーバ上に追加して動作させ、前記第２仮想マシンのリソースの利用率が所定閾値未満となったとき、前記増設用の第２仮想マシンを前記サーバ上から削除することを特徴とする請求項１〜４のいずれか１項に記載の情報処理システム。
【請求項６】
前記第１仮想マシンの前記要求手段は、同一のクライアント端末装置からのリクエストに応じた処理の要求は、同一の第２仮想マシンに対して行うことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記記憶手段に記憶するデータには、前記クライアント端末装置を使用しているユーザに関するデータを含む秘匿データを含み、
前記記憶処理手段は、前記秘匿データのみを暗号化して記憶することを特徴とする請求項１〜６のいずれか１項に記載の情報処理システム。
【請求項８】
前記クライアント端末装置と前記第１仮想マシンとの間の通信と、前記第１仮想マシンと前記第２仮想マシンとの間の通信とは、暗号化通信で行われることを特徴とする請求項１〜７のいずれか１項に記載の情報処理システム。
【請求項９】
前記第２仮想マシンは、前記第１仮想マシンから行われる前記リクエストに応じた処理の要求の履歴を記憶する履歴記憶手段を備えたことを特徴とする請求項１〜８のいずれか１項に記載の情報処理システム。
【請求項１０】
インターネットに接続されたサーバ上で動作する第１及び第２仮想マシンを備えた情報処理システムにおける情報処理方法において、
前記第１仮想マシンが、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付ステップと、
前記第１仮想マシンが、前記リクエストに応じた処理を前記第２仮想マシンに要求する要求ステップと、
前記第２仮想マシンが、前記クライアント端末装置から前記第１仮想マシンを介して鍵情報を取得する鍵取得ステップと、
前記第２仮想マシンが、前記リクエストに応じた処理が記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得ステップで取得した鍵情報に基づいて暗号化して前記記憶手段に記憶し、前記リクエストに応じた処理が前記記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理ステップと、
前記第２仮想マシンが、前記復号化されたデータを前記第１仮想マシンへ送信する送信ステップと、
前記第１仮想マシンが、前記要求ステップで行った要求に対して前記第２仮想マシンから受信した情報を前記クライアント端末装置に送信する送信ステップと、を有する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットを介して接続されたサーバ上で動作する仮想マシンを備えた情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
従来、サーバコンピュータやデータベースなどのコンピュータ資源は、それらを使用する企業がそれぞれ自社で保有していた。しかし、ハードウェアやアプリケーションが複雑で高コストであり、また、コンピュータ資源を運用する専門の部門も必要となる。
【０００３】
そこで、インターネットを基本にした新しいコンピュータ資源の利用形態として、クラウド・コンピューティングというサービス形態（以下、「クラウドサービス」という）が注目されている。かかるクラウドサービスとしては、アマゾンが提供する「Elastic Compute Cloud（EC2）」が一例として挙げられる。
【０００４】
クラウドサービスでは、その利用者はコンピュータ資源の保有や管理を行う必要がなく、その利用料金を払うことでコンピュータ資源を利用することが可能となる。一方、クラウドサービス提供会社側では、１又は複数のサーバ上で利用者毎に仮想マシンを配置することで、サーバの利用効率や拡張性を向上させている。そのため、クラウドサービス提供会社は、比較的安価にコンピュータ資源をその利用者に提供することができる（例えば、特許文献１）。
【０００５】
このようにクラウドサービスでは、その利用者がコンピュータ資源を導入する必要がないことから、導入コストや運用コストが軽減され、また、拡張性などにも優れているため、今後、ますます利用者が増加していくものと考えられる。
【０００６】
特に、クラウドサービス提供会社から仮想マシンをレンタルして、クライアントにアプリケーションを提供するといった利用形態が増えるものと予測される。
【０００７】
すなわち、インターネット経由でアプリケーションをクライアントに提供しようとする企業（以下、「アプリケーション提供会社」とする）は、クラウドサービスの利用者として、クラウドサービス提供会社からアプリケーションのプラットフォームとなる仮想マシンをレンタルし、この仮想マシン上でアプリケーションを実行させる。アプリケーション提供会社は、アプリケーションのプラットフォームを保有及び管理する必要がないため、導入コスト及び運用コストが低減され、コスト的なハードルが下がる。そのため、アプリケーション提供会社は、アプリケーションサービスをクライアントに提供しやすくなる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００４−５０３０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
アプリケーション提供会社が提供するアプリケーションで使用されるデータには、アプリケーション提供会社内の機密情報やクライアント（すなわち、アプリケーション提供会社が提供するアプリケーションサービスのクライアント）の個人情報などの重要な情報（以下、「企業内秘匿情報」という）が含まれる。
【００１０】
しかし、上記クラウドサービスでは、アプリケーション提供会社は、提供するアプリケーションで使用されるデータをクラウドサービス提供会社に預けることになる。すなわち、提供するアプリケーションで使用されるデータのセキュリティ対策をクラウドサービス提供会社側に行わせることになる。
【００１１】
しかしながら、同一のサーバ上でアプリケーション提供会社のみならず他の利用者の仮想マシンが配置された場合、サーバプログラムの不具合をついたハッキングなどにより、他の利用者等からデータを盗まれるリスクがある。また、サーバの運用はクラウドサービス提供会社に任せてしまうため、クラウドサービス提供会社の内部からの不正アクセスにより不正コピーやディスクの盗難などが発生するリスクがある。このように、企業内秘匿情報をクラウドサービス提供会社に預けた場合には、アプリケーション提供会社側で企業内秘匿情報を管理できないセキュリティ上の問題がある。
【００１２】
このように、アプリケーション提供会社は、クライアントの情報等の企業内秘匿情報の管理をクラウドサービス提供会社に委ねることになり、情報流出に対する管理ができない。そのため、企業内秘匿情報をクラウドサービス提供会社に預けることに不安を抱き、クラウドサービスの利用を躊躇してしまう場合が多い。このように、クラウドサービスは、多数の利点を有しながらもその利用が十分に図られていないのが現状である。
【００１３】
本発明は、上述したような課題に鑑みてなされたものであり、企業内秘匿情報のセキュリティ対策をアプリケーション提供会社側でも行わせつつ、クラウドサービスの利用の促進を図ることができる情報処理システム及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を解決するために、請求項１に係る発明は、インターネットに接続されたサーバ上で動作する第１及び第２仮想マシンを備えた情報処理システムにおいて、前記第１仮想マシンは、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付手段と、前記リクエストに応じた処理を前記第２仮想マシンに要求する要求手段と、前記要求に対して前記第２仮想マシンから受信した情報を前記クライアント端末装置に送信する送信手段と、を備え、前記第２仮想マシンは、前記クライアント端末装置から前記第１仮想マシンを介して鍵情報を取得する鍵取得手段と、前記第１仮想マシンが要求する前記リクエストに応じた処理が記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理手段と、前記復号化されたデータを前記第１仮想マシンへ送信する送信手段と、を備えたことを特徴とする。
【００１５】
また、請求項２に係る発明は、請求項１に記載の情報処理システムであって、前記第１仮想マシンが要求する前記リクエストに応じた処理が前記記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得手段で取得した鍵情報に基づいて暗号化して前記記憶手段に記憶することを特徴とする。
【００１６】
また、請求項３に係る発明は、請求項１または２に記載の情報処理システムであって、前記第２仮想マシンは、前記鍵取得手段で取得された鍵情報を記憶する鍵記憶手段と、前記第１仮想マシンが前記クライアント端末装置と接続してからその接続を切断するまでの間、前記鍵情報を前記鍵記憶手段に記憶している状態を維持し、前記第１仮想マシンが前記クライアント端末装置との接続を切断したときに、前記鍵取得手段で取得した鍵情報を鍵記憶手段から削除する鍵記憶処理手段と、を備えたことを特徴とする。
【００１７】
また、請求項４に係る発明は、請求項３に記載の情報処理システムであって、前記第１仮想マシンは、前記クライアント端末装置との通信が所定時間ないときに、前記クライアント端末装置との接続を切断することを特徴とする。
【００１８】
また、請求項５に係る発明は、請求項１〜４のいずれか１項に記載の情報処理システムであって、前記第２仮想マシンのリソースの利用率が所定閾値以上となったとき、増設用の第２仮想マシンを前記サーバ上に追加して動作させ、前記第２仮想マシンのリソースの利用率が所定閾値未満となったとき、前記増設用の第２仮想マシンを前記サーバ上から削除することを特徴とする。
【００１９】
また、請求項６に係る発明は、請求項５に記載の情報処理システムであって、前記第１仮想マシンの前記要求手段は、同一のクライアント端末装置からのリクエストに応じた処理の要求は、同一の第２仮想マシンに対して行うことを特徴とする。
【００２０】
また、請求項７に係る発明は、請求項１〜６のいずれか１項に記載の情報処理システムであって、前記記憶手段に記憶するデータには、前記クライアント端末装置を使用しているユーザに関するデータを含む秘匿データを含み、前記記憶処理手段は、前記秘匿データのみを暗号化して記憶することを特徴とする。
【００２１】
また、請求項８に係る発明は、請求項１〜７のいずれか１項に記載の情報処理システムであって、前記クライアント端末装置と前記第１仮想マシンとの間の通信と、前記第１仮想マシンと前記第２仮想マシンとの間の通信とは、暗号化通信で行われることを特徴とする。
【００２２】
また、請求項９に係る発明は、請求項１〜８のいずれか１項に記載の情報処理システムであって、前記第２仮想マシンは、前記第１仮想マシンから行われる前記リクエストに応じた処理の要求の履歴を記憶する履歴記憶手段を備えたことを特徴とする。
【００２３】
また、請求項１０に係る発明は、インターネットに接続されたサーバ上で動作する第１及び第２仮想マシンを備えた情報処理システムにおける情報処理方法において、前記第１仮想マシンが、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付ステップと、前記第１仮想マシンが、前記リクエストに応じた処理を前記第２仮想マシンに要求する要求ステップと、前記第２仮想マシンが、前記クライアント端末装置から前記第１仮想マシンを介して鍵情報を取得する鍵取得ステップと、前記第２仮想マシンが、前記リクエストに応じた処理が記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得ステップで取得した鍵情報に基づいて暗号化して前記記憶手段に記憶し、前記リクエストに応じた処理が前記記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理ステップと、前記第２仮想マシンが、前記復号化されたデータを前記第１仮想マシンへ送信する送信ステップと、前記第１仮想マシンが、前記要求ステップで行った要求に対して前記第２仮想マシンから受信した情報を前記クライアント端末装置に送信する送信ステップと、を有することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、クラウドサービスの利用者であるアプリケーション提供会社は、インターネットを介して接続されたサーバ上で動作する仮想マシンを利用してコンピュータ資源の導入コストや運用コストを低減しつつ、企業内秘匿情報を含む情報をクラウドサービス提供会社に預けながらも、自社でもセキュリティ対策を行うことが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係る情報処理システムの構成を示す図である。
【図２】図１に示すクライアント端末装置の構成を示す図である。
【図３】図１に示すサーバシステムの構成を示す図である。
【図４】図３に示すブレードサーバ上のアーキテクチャを示す図である。
【図５】図３に示すブレードサーバ上で動作する第１仮想サーバの機能ブロック図である。
【図６】図３に示すブレードサーバ上で動作する第２仮想サーバの機能ブロック図である。
【図７】情報処理システムをデータベースサービスに適用したときの処理の流れを示す図である。
【図８】データアクセス処理の流れを示す図である。
【図９】ＳＱＬ解析の流れを示す図である。
【図１０】ユーザテーブルの一例を示す図である。
【図１１】カードテーブルの一例を示す図である。
【図１２】セッションテーブルの一例を示す図である。
【図１３】ログファイルのデータ構造の一例を示す図である。
【発明を実施するための形態】
【００２６】
［１．情報処理システムの概要］
本実施形態の情報処理システムは、インターネット経由でアプリケーションをクライアントに提供しようとする企業であるアプリケーション提供会社が、クラウドサービスを利用して、アプリケーションサービスをクライアントに提供することができる情報処理システムである。
【００２７】
このようにアプリケーション提供会社がクラウドサービスを利用して提供するアプリケーションサービスにおいては、このアプリケーションサービスを利用するクライアントは、クラウドサービスであることを意識することはない。クライアントは、通常のアプリケーションサービスと同様に、アプリケーション提供会社からのアプリケーションサービスを受けることとなる。なお、アプリケーションサービスとしては、例えば、後述するデータベースサービス、Ｗｅｂ会議サービス、ｅラーニングサービス、画像配信サービスなどがある。
【００２８】
クラウドサービスを提供する企業であるクラウドサービス提供会社は、アプリケーションのプラットフォームとなる仮想マシンをアプリケーション提供会社にレンタルする。アプリケーション提供会社は、仮想マシン上でアプリケーションプログラムを実行させ、クライアントにアプリケーションサービスを提供する。なお、以下においては、アプリケーション提供会社からアプリケーションサービスの提供を受けるクライアントの端末装置をクライアント端末装置と呼ぶ。
【００２９】
図１に示すように、クラウドサービス提供会社側のコンピュータシステム３は、インターネット２にＬＡＮ側入出力ポートを接続したルータ１０と、ルータ１０のＬＡＮ側入出力ポートに接続されたサーバシステム１１とストレージシステム１６を有している。
【００３０】
このサーバシステム１１は、複数のブレードサーバで構成され、これらのブレードサーバ上で多数の仮想マシンを動作させることができるようにしている。ここでは、多数の仮想マシンのうち、アプリケーション提供会社は二つの仮想マシンを用いて、クライアントにアプリケーションサービスを提供する。一つは、アプリケーションサーバ（以下、「ＡＰサーバ」とする）として用いる第１仮想サーバ（第１仮想マシン）であり、もう一つは、データベースサーバとして用いる第２仮想サーバ（第２仮想マシン）である。図１に示す例では、第１ブレードサーバ１２1上で動作する仮想マシンを第１仮想サーバ１３x1として用い、第７ブレードサーバ１２7上で動作する仮想マシンを第２仮想サーバ１３x2として用いる。第１仮想サーバ１３x1及び第２仮想サーバ１３x2は、それぞれクラウドサービス提供会社内の社内ネットワーク（ＬＡＮ）を介してインターネットに接続されている。
【００３１】
また、ストレージシステム１６を構成する多数のストレージのうち一つのストレージを、第２仮想サーバ１３x2が記憶制御を行うストレージ１４xとして用いる。また、このストレージ１４xは、記憶手段として機能する。
【００３２】
アプリケーション提供会社のアプリケーションサービスには、クライアント端末装置１ａ，１ｂ，１ｃ，…の使用者であるクライアントが加入しており、各クライアント端末装置１ａ，１ｂ，１ｃ，…から第１仮想サーバ１３x1にアクセスしてアプリケーション提供会社のアプリケーションサービスを受ける。なお、クライアント端末装置１ａ，１ｂ，１ｃ，…のうち何れかのクライアント端末装置又は全てのクライアント端末装置を示す場合には、便宜上、クライアント端末装置１という。
【００３３】
サーバシステム１１はクラウドサービス提供会社の社内ネットワークのクラウドサービス用のネットワーク領域に配置される。サーバシステム１１上で動作する第１仮想サーバ１３x1宛てに、クライアント端末装置１からインターネット経由での通信パケットが送信されたとき、ルータ１０は、クライアント端末装置１からの通信パケットを第１仮想サーバ１３x1に中継する。また、第１仮想サーバ１３x1からクライアント端末装置１への通信パケットもルータ１０によりクライアント端末装置１へ中継される。クライアント端末装置１は、第１仮想サーバ１３x1との間で、提供を受けるサービスに応じた通信パケットを送受信することで、アプリケーションサービスの提供を受ける。
【００３４】
第１仮想サーバ１３x1は、クライアント端末装置１からのリクエストを受け付けて、第２仮想サーバ１３x2と通信して、ストレージ１４xに記憶したデータの参照（読み出し）処理や、ストレージ１４xに記憶するデータの登録（記憶）、変更及び削除などを行う。また、第１仮想サーバ１３x1は、第２仮想サーバ１３x2から受信した情報を、クライアント端末装置１に送信する。
【００３５】
本実施形態に係る情報処理システムでは、クライアント端末装置１は、第１仮想サーバ１３x1を介して第２仮想サーバ１３x2にアクセス要求を行った後に、第２仮想サーバ１３x2と通信して、ストレージ１４xの利用要求を行うようにしている。
【００３６】
クライアント端末装置１から第２仮想サーバ１３x2に対してアクセス要求を行うと、クライアント端末装置１と第２仮想サーバ１３x2との間で、必要に応じて、鍵情報やセッションＩＤを送受信する。クライアント端末装置１は、第２仮想サーバ１３x2で生成されたセッションＩＤを取得し、第２仮想サーバ１３x2は、クライアント端末装置１で生成されたセッションＩＤを取得する。第２仮想サーバ１３x2は、鍵情報をセッションＩＤに関連づけて後述の記憶部４２２に記憶する。このセッションＩＤは所定期間内で有効であり、クライアント端末装置１は、所定期間内、第２仮想サーバ１３x2から第１仮想サーバ１３x1を介して取得した同一のセッションＩＤでアクセス要求を行って、第２仮想サーバ１３x2と通信し、ストレージ１４xへのアクセスを行う。第２仮想サーバ１３x2は、クライアント端末装置１から送信されるセッションＩＤに関連づけて記憶した鍵情報に基づいて、ストレージ１４xに記憶したデータの復号化やストレージ１４xへ記憶するデータの暗号化を行う。なお、本実施形態では、秘密鍵暗号方式を採用しており、鍵情報は、暗号化と復号化とで共通に用いられる秘密鍵の情報である。
【００３７】
ストレージ１４xには、クライアントのＩＤ、パスワードなどの個人情報を含む重要な情報が含まれており、第２仮想サーバ１３x2は、クライアント端末装置１から取得した鍵情報に基づいて暗号化したデータをストレージ１４xに記憶して管理する。また、アプリケーション提供会社は、クライアント端末装置１で上記鍵情報を生成するためのプログラムをクライアント端末装置１上で動作させるようにしており、アプリケーション提供会社で暗号化に対する管理を行うようにしている。そのため、クラウドサービス提供会社側での情報漏洩やクラウドサービスを受けている他の利用者からの盗聴などがある場合であっても、企業内秘匿情報等の重要な情報を秘匿することが可能となる。このように、重要な情報をアプリケーション提供会社側で管理することができるので、クラウドサービス提供会社側のセキュリティ対策を気にすることなく、クラウドサービスを利用することが可能となる。そのため、アプリケーション提供会社は、セキュリティ管理を厳密に行いつつも、社内にコンピュータ資源を配置することなく、比較的低コストで、アプリケーションサービスを運用することができる。
【００３８】
また、上述したように、データベースサーバである第２仮想サーバ１３x2は、サーバシステム１１のブレードサーバ上で動作するものであるが、第２仮想サーバ１３x2に割り当てられたリソース（ＣＰＵやメモリ）の利用率が高くなると、アプリケーションサービスの円滑な提供が難しくなる。そこで、第２仮想サーバ１３x2に割り当てられたリソースの利用率が予め規定した第１閾値以上となったとき、増設用の第２仮想サーバ１３x3をブレードサーバ上に追加して動作させるようにしている。増設用の第２仮想サーバ１３x3は第１仮想サーバ１３x1にその増設されたことを通知する。これにより、第１仮想サーバ１３x1からいずれの第２仮想サーバ１３x2，１３x3もアクセス可能として、各第２仮想サーバ１３x2，１３x3の利用率を下げ、アプリケーションサービスの円滑な提供を行うことができるようにしている。なお、第２仮想サーバ１３x2に割り当てられたリソースの利用率が予め規定した第２閾値未満となったとき、増設用の第２仮想サーバ１３x3をブレードサーバ上から削除する。このようにすることにより、サーバシステム１１全体のリソースを有効に活用するようにしている。アプリケーション提供会社側から見れば、必要なときだけ第２仮想サーバを増設するので、利用料金の低減を図ることができる。
【００３９】
また、増設用の第２仮想サーバ１３x3を設けた場合、第１仮想サーバ１３x1は、同一のクライアント端末装置１からのリクエストに応じた処理の要求は、同一の第２仮想マシンに対して行うようしている。このようにすることで、クライアント端末装置１は、第１仮想サーバ１３x1へアクセスする度に鍵情報を送信する処理を行う必要がなくなり、処理負荷が軽減される。また、鍵情報を第２仮想サーバ１３x2，１３x3間でやり取りする必要がなく、処理が複雑にならない。
【００４０】
また、第２仮想サーバ１３x2，１３x3は、第１仮想サーバ１３x1とクライアント端末装置１との間の接続が切断されるまでの間、鍵情報を記憶部４２２に記憶している状態を維持する。これにより、クライアント端末装置１は、第１仮想サーバ１３x1へアクセスする度に鍵情報を送信する処理を行う必要がなくなり、処理負荷が軽減される。一方、第２仮想サーバ１３x2，１３x3は、第１仮想サーバ１３x1とクライアント端末装置１との間の接続が切断されたときに、鍵情報を記憶部４２２から削除するようにしていることから、さらにセキュリティを向上させることができる。なお、以下の説明では、第２仮想サーバ１３x2について説明を行うが、第２仮想サーバ１３x3についても同様である。
［２．各構成要素の構成］
次に、情報処理システムを構成する各要素の構成についてそれぞれ説明する。
【００４１】
［２．１．クライアント端末装置１の構成］
まず、クライアント端末装置１の構成について説明する。このクライアント端末装置１は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能である。クライアント端末装置１は、このクライアント端末装置１を使用しているユーザ、すなわち、クライアントが所有するものである。図２に示すように、クライアント端末装置１は、制御部１０１と、記憶部１０２と、通信部１０３と、操作部１０４と、情報取得部１０５と、表示部１０６とを備えており、これらはシステムバス１０７を介して相互に接続されている。
【００４２】
制御部１０１は、クライアント端末装置１全体を制御するものであり、ＣＰＵ（Central Processing Unit）、内部メモリなどから構成される。記憶部１０２は、各種情報を記憶する記憶領域を有する書き換え可能な記憶装置であり、例えば、フラッシュメモリから構成される。通信部１０３は、他の装置とインターネット２を介して通信するための通信インターフェイスである。操作部１０４は、各種設定入力を行うための操作部である。情報取得部１０５は、撮像部や音声入力部から構成され、動画像情報や音声情報を取得することができる。表示部１０６は、液晶表示装置（ＬＣＤ）から構成されている。
【００４３】
［２．２．第１及び第２仮想サーバ１３x1〜１３x3の構成］
第１及び第２仮想サーバ１３x1〜１３x3は、上述したようにサーバシステム１１上に形成される仮想マシンである。
【００４４】
サーバシステム１１は、図３に示すように、複数のブレードサーバ１２1〜１２nと、ストレージ１４1〜１４nと、サーバ管理装置１５とから構成される。なお、ブレードサーバ１２1〜１２nのうち何れかのブレードサーバ又は全てのブレードサーバを示す場合には、便宜上、ブレードサーバ１２という。また、ストレージ１４1〜１４nのうち何れかのストレージ又は全てのストレージを示す場合には、便宜上、ストレージ１４という。
【００４５】
各ブレードサーバ１２は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、入出力部４０４と、通信部４０５と、ハードディスク（ＨＤＤ）４０６とを有しており、これらはシステムバス４０７を介して相互に接続されている。入出力部４０４は、サーバ管理装置１５とのデータの送受信を行うための通信インターフェイスであり、通信部４０５は、クラウドアプリケーション提供会社内のネットワークであるＬＡＮに接続するための通信インターフェイスである。
【００４６】
このように構成されたブレードサーバ１２1〜１２n上で、複数の仮想マシン１３1〜１３nが動作する。なお、複数の仮想マシン１３1〜１３nのうち何れかの仮想マシン又は全ての仮想マシンを示す場合には、便宜上、仮想マシン１３という。
【００４７】
図４にブレードサーバ１２上のアーキテクチャを示す。同図に示すように、ブレードサーバ１２では、そのベースプログラムでメインＯＳが動作する。そしてメインＯＳ上で仮想マシンを動作させるためのプログラムである仮想マシンプログラムが動作する。そして、この仮想マシンプログラム上で複数のゲストＯＳを動作することができるようにしている。各ゲストＯＳ上では、１以上のアプリケーションプログラムを動作させることができる。
【００４８】
サーバ管理装置１５は、各ブレードサーバ１２を制御及び管理する装置であり、ゲストＯＳに割り当てるリソース（ＣＰＵ４０１,ＲＯＭ４０２,ＲＡＭ４０３,ＨＤＤ４０６など）を管理する。例えば、サーバ管理装置１５は、仮想マシン１３によるリソースの利用率に応じて、仮想マシン１３に割り当てるリソースを変更することができる。また、サーバ管理装置１５は、アプリケーションプログラムの実行開始や実行停止などを制御することができる。さらに、各ブレードサーバ１２と通信を行って、ゲストＯＳやアプリケーションプログラムの登録、削除又は変更を行うことができる。
【００４９】
本実施形態では、ブレードサーバ１２上で動作する仮想マシン１３のうち、第１ブレードサーバ１２1上で動作する仮想マシンを第１仮想サーバ１３x1として用い、第７ブレードサーバ１２7上で動作する仮想マシンを第２仮想サーバ１３x2として用いる（図１参照）。
【００５０】
ブレードサーバ１２上で動作する第１仮想サーバ１３x1は、図５に示すように、ブレードサーバ１２のリソースを利用することで、制御部４１１、記憶部４１２、通信部４１３などとして機能し、アプリケーション用プログラムを実行する。制御部４１１は、受付手段、要求手段、送信手段等として機能する。
【００５１】
また、第２仮想サーバ１３x2は、図６に示すように、ブレードサーバ１２のリソースを利用することで、制御部４２１、記憶部４２２、通信部４２３などとして機能し、データベースサーバ用プログラムを実行する。第２仮想サーバ１３x2は、ストレージ１４1〜１４nのうち予め設定されたストレージ１４xからデータを読み出したり、ストレージ１４xへデータを記憶する処理を行う。このストレージ１４xには、後述するユーザテーブル、カードテーブル、セッションテーブルなどの情報が記憶される。また、クライアント端末装置１から第１仮想サーバ１３x1を介して取得された鍵情報は、記憶部４２２に記憶される。また、この鍵情報は、第１仮想サーバ１３x1がクライアント端末装置と接続してからその接続を切断するまでの間、記憶部４２２に記憶される。さらに、この鍵情報は、前記第１仮想マシンが前記クライアント端末装置との接続を切断したときに、記憶部４２２から削除される。また、第１仮想サーバ１３x1から行われるリクエストに応じた処理の要求の履歴は、ログファイルとして記憶部４２２に記憶される。なお、制御部２１１は、鍵取得手段、記憶処理手段、鍵記憶処理手段等として機能する。また、記憶部４２２は、鍵記憶手段、履歴記憶手段等として機能する。
【００５２】
［３．各構成要素の動作］
以上のように構成される情報処理システムを、データベースサービスを提供するシステムに適用した具体例における動作について図を参照して説明する。
【００５３】
このデータベースサービスでは、取得しているセッションＩＤの有効性が確認されたあとに、第２仮想サーバ１３x2の制御部４２１は、ストレージ１４xのユーザテーブルやカードテーブルへのデータアクセスが可能となる。具体的には、後述のセッションテーブルに記憶されているセッションＩＤに対応する鍵情報が記憶部４２２に記憶されている場合に、セッションＩＤは有効であると判断される。
【００５４】
まず、ステップＳ２１において、クライアント端末装置１の制御部１０１は、第１仮想サーバ１３x1に対し、通信部４１３を介してアクセス要求を送信する。制御部１０１は、セッションＩＤを記憶している場合には、このアクセス要求にセッションＩＤを含めて送信し、セッションＩＤを記憶していない場合にはセッションＩＤを含めずにアクセス要求を送信する。なお、クライアント端末装置１と第１仮想サーバ１３x1間の通信の内容は、ＳＳＬ等によって暗号化されているものとする。すなわち、クライアント端末装置１と第１仮想サーバ１３x1との間の通信は、暗号化通信で行われる。
【００５５】
ステップＳ２２において、第１仮想サーバ１３x1の制御部４１１は、クライアント端末装置１からアクセス要求を受信すると、このアクセス要求を第２仮想サーバ１３x2へ転送する。なお、第１仮想サーバ１３x1と第２仮想サーバ１３x2間の通信の内容は、ＳＳＬ等によって暗号化されているものとする。すなわち、第１仮想サーバ１３x1と第２仮想サーバ１３x2との間の通信は、暗号化通信で行われる。
【００５６】
一方、第２仮想サーバ１３x2の制御部４２１は、ステップＳ２３の判定を所定時間ごとに行う。すなわち、所定時間ごとに、第１仮想サーバ１３x1からアクセス要求を受信したか否かを判定する。アクセス要求を受信していないと判定すると（ステップＳ２３：ＮＯ）、制御部４２１は、ステップＳ２４において、タイムアウトとなるセッションＩＤを特定する。この処理は、図１２に示すセッションテーブルに基いて行われる。同図に示すように、セッションテーブルには、クライアント端末装置１に発行したセッションＩＤごとに、当該セッションＩＤを用いたデータアクセスの最終時刻と鍵情報の有無が記憶されている。制御部４２１は、ストレージ１４xにアクセスして当該セッションＩＤを用いたデータアクセスの最終時刻を取得すると共に、現時刻を不図示のタイマを参照して取得する。そして、制御部４２１は、現時刻と最終時刻との時間差が所定時間以上となっているセッションＩＤを、タイムアウトとなるセッションＩＤとして特定する。タイムアウトとなるセッションＩＤがある場合（ステップＳ２４：ＹＥＳ）、このセッションＩＤに対応づけられている鍵情報の有無の項目を「無」に設定し、また、記憶部４２２に記憶している鍵情報を削除する（ステップＳ２５）。例えば、図１２に示すセッションテーブルでは、セッションＩＤ「１００２」については、鍵情報が削除されていることを示している。
【００５７】
また、この鍵情報は、第１仮想サーバ１３x1がクライアント端末装置１と接続してからその接続を切断するまでの間、セッションテーブルに記憶されており、第１仮想サーバ１３x1がクライアント端末装置１との接続を切断したときに、記憶部４２２からこの鍵情報が削除される。なお、第１仮想サーバ１３x1は、クライアント端末装置１との接続を切断したときに、その旨を第２仮想サーバ１３x2に通知するものとする。また、第１仮想サーバ１３x1は、クライアント端末装置１との通信が所定時間ないときにも、クライアント端末装置１との接続を切断し、その旨を第２仮想サーバ１３x2に通知するものとする。
【００５８】
一方、ステップＳ２３において、アクセス要求を受信したと判定すると（ステップＳ２３：ＹＥＳ）、制御部４２１は、ストレージ１４xにアクセスして、セッションＩＤをキーとして、ストレージ１４xに記憶したセッションテーブルから、当該セッションＩＤに対応づけられている鍵情報の有無を検索し、その検索結果を取得する（ステップＳ２６）。この検索結果には、鍵情報が存在していることを示す情報である鍵有情報、または、存在していないことを示す情報である鍵無情報が含まれる。なお、鍵情報自体は、クライアント端末装置１には送信されない。例えば、図１２に示すセッションテーブルでは、セッションＩＤ「１００１」，「１００３」については、鍵情報が記憶されていることを示している。
【００５９】
その後、制御部４２１は、その検索結果を、第１仮想サーバ１３x1に送信する（ステップＳ２７）。第１仮想サーバ１３x1の制御部４１１は、第２仮想サーバ１３x2から検索結果を受信すると、この検索結果をクライアント端末装置１へ転送する（ステップＳ２８）。
【００６０】
ステップＳ２９において、受信した検索結果の内容が鍵有情報であった場合は、クライアント端末装置１の制御部１０１は、処理をステップＳ３８に移行させる。一方、ステップＳ２９において、受信した検索結果の内容が鍵無情報であった場合は、制御部１０１は、記憶部１０２に鍵情報を記憶しているか否かを判定する（ステップＳ３０）。鍵情報を記憶していると判定した場合は、制御部１０１は、処理をステップＳ３２に移行させる。一方、鍵情報を記憶していないと判定した場合は、制御部１０１は、鍵情報を新たに生成して（ステップＳ３１）、処理をステップＳ３２に移行させる。このとき、制御部１０１は、アプリケーション提供会社から提供される鍵生成プログラムに基づいて、鍵情報を生成する。なお、制御部１０１は、クライアントに鍵情報の入力を促す処理を行って、クライアントに入力させるようにしてもよい。
【００６１】
その後、ステップＳ３２において、制御部１０１は、第１仮想サーバ１３x1に鍵情報を送信する。第１仮想サーバ１３x1の制御部４１１は、クライアント端末装置１から鍵情報を受信すると、その鍵情報を、第２仮想サーバ１３x2へ転送する（ステップＳ３３）。
【００６２】
第２仮想サーバ１３x2の制御部４２１は、鍵情報を受信する（ステップＳ３４）と、受信した鍵情報に基いて新たなセッションＩＤを発行し、このセッションＩＤと受信した鍵情報とを記憶部４２２に記憶するとともに、ストレージ１４xのセッションテーブルを変更する。さらに、制御部４２１は、発行したセッションＩＤを、第１仮想サーバ１３x1に送信する（ステップＳ３５）。
【００６３】
第１仮想サーバ１３x1の制御部４１１は、第２仮想サーバ１３x2からセッションＩＤを受信すると、このセッションＩＤを、クライアント端末装置１へ転送する（ステップＳ３６）。クライアント端末装置１の制御部１０１は、第１仮想サーバ１３x1からセッションＩＤを受信し、ステップＳ３２で送信した鍵情報と共に記憶部１０２に記憶する（ステップＳ３７）。
【００６４】
ステップＳ３８において、クライアント端末装置１，第１仮想サーバ１３x1，第２仮想サーバ１３x2は、データの参照、登録、変更及び削除などの処理であるデータアクセス処理を実行する。
【００６５】
［データアクセス処理］
次に、データの参照、登録、変更及び削除などの処理であるデータアクセス処理について、クライアント端末装置１、第１仮想サーバ１３x1及び第２仮想サーバ１３x2の動作について図８を参照して説明する。
【００６６】
図８に示すように、クライアント端末装置１の制御部１０１は、ストレージ１４xへの利用要求を、第１仮想サーバ１３x1に送信する（ステップＳ５１）。この利用要求には、データ参照、データ登録、データ変更、データ削除のいずれかの要求に加え、セッションＩＤが含まれる。
【００６７】
また、利用要求が、データの参照要求である場合には、参照するデータ内容が含まれ、データの登録要求である場合には登録するデータ内容が含まれ、データの削除要求である場合には削除するデータ内容が含まれ、データの変更要求である場合には変更するデータ内容が含まれる。
【００６８】
第１仮想サーバ１３x1の制御部４１１は、利用要求を受信する（ステップＳ５２）と、受信した利用要求の内容に応じてＳＱＬ文を作成する（ステップＳ５３）。例えば、利用要求がデータの登録要求である場合には、ストレージ１４xに書き込む内容を規定したＳＱＬ文が生成される。制御部４１１は、このように作成したＳＱＬ文を、第２仮想サーバ１３x2に送信する（ステップＳ５４）。
【００６９】
第２仮想サーバ１３x2の制御部４２１は、第１仮想サーバ１３x1からＳＱＬ文を受信し（ステップＳ５５）、ＳＱＬ文の解析を行う（ステップＳ５６）。このＳＱＬ文の解析の詳細については、後述する。
【００７０】
制御部４２１は、ＳＱＬを実行する（ステップＳ５７）。その後、制御部４２１は、ＳＱＬの実行内容を、記憶部４２２のログファイルに記憶する（ステップＳ５８）。図１３は、ログファイルのデータ構造の一例を示している。同図に示すように、ログファイルには、実行した日時と、イベント内容と、実行内容と、ユーザ名と、処理時間とが記憶されている。このログファイルを参照することにより、例えば、不正アクセス等を検出することができる。
【００７１】
次に、制御部４２１は、ＳＱＬの実行結果を第１仮想サーバ１３x1に送信する（ステップＳ５９）。例えば、利用要求がデータの参照要求である場合には、参照結果のデータが、第１仮想サーバ１３x1に送信され、それ以外の要求である場合には、処理が正常完了したことを示すデータが、第１仮想サーバ１３x1に送信される。
【００７２】
第１仮想サーバ１３x1の制御部４１１は、実行結果を受信すると（ステップＳ６０）、実行結果を所定の形式に整形し（ステップＳ６１）、整形した実行結果を、クライアント端末装置１に送信する（ステップＳ６２）。クライアント端末装置１の制御部１０１は、整形した実行結果を受信する（ステップＳ６３）。
【００７３】
［ＳＱＬ文解析］
次に、ステップＳ５６で実行されるＳＱＬ文解析について図９を参照して説明する。
【００７４】
図９に示すように、まず、第２仮想サーバ１３x2の制御部４２１は、受信したＳＱＬ文に暗号化すべきデータが含まれているか否かを判定する（ステップＳ８１）。暗号化すべきデータが含まれていると判定すると（ステップＳ８１：ＹＥＳ）、制御部４２１は、受信したセッションＩＤに基いてストレージ１４xに記憶したセッションテーブルを参照し、記憶部４２２から鍵情報を取得する（ステップＳ８２）。その後、制御部４２１は、取得した鍵情報に基いて、暗号化対象のデータを暗号化して、ストレージ１４xに記憶したユーザテーブルやカードテーブルにデータを追加し、又はユーザテーブルやカードテーブルに記憶したデータの変更を行う（ステップＳ８３）。
【００７５】
図１０は、ストレージ１４xに記憶したユーザテーブルの一例を示している。同図に示すように、ユーザテーブルには、ユーザＩＤ，ユーザ名，パスワード，郵便番号，住所の各項目が記憶されている。また、各項目には、データ型及び制約が規定されている。この図において、制約に「encrypted」と規定されている「パスワード」については、データに暗号化が施されていることを示している。
【００７６】
したがって、制御部４２１は、ステップＳ８１の判定において、データの制約が「encrypted」となっている場合に、暗号化すべきデータであると判定する。例えば、ユーザテーブルに、新たに「Hanako」のデータを登録する場合、「パスワード」についてはそのままのデータでは、ストレージ１４xに記憶したユーザテーブルを登録できないので、暗号化を施す必要がある。
【００７７】
また、制御部４２１は、受信したＳＱＬ文に復号化すべきデータが含まれているか否かを判定する（ステップＳ８４）。復号化すべきデータが含まれていると判定すると（ステップＳ８４：ＹＥＳ）、制御部４２１は、セッションＩＤに基いてストレージ１４xに記憶したセッションテーブルを参照し、記憶部４２２から鍵情報を取得する（ステップＳ８５）。その後、制御部４２１は、取得した鍵情報に基いて、ストレージ１４xに記憶したユーザテーブルやカードテーブルなどに含まれる復号化対象のデータを復号化する（ステップＳ８６）。
【００７８】
図１１は、ストレージ１４xに記憶したカードテーブルの一例を示している。同図に示すように、カードテーブルには、カードＩＤ，ユーザＩＤ，カード番号，有効期限の各項目が記憶されている。また、各項目には、データ型及び制約が規定されている。この図において、制約に「encrypted」と規定されている「カード番号」及び「有効期限」については、データに暗号化が施されていることを示している。
【００７９】
したがって、制御部４２１は、ステップＳ８４の判定において、データの制約が「encrypted」となっている場合に、復号化すべきデータであると判定する。例えば、ユーザ名「Taro」の有効期限が切れていないカード番号を取得する場合、「有効期限」は暗号化されているために、そのままのデータではカードテーブルを参照することができないので、復号化を施す必要がある。
【００８０】
なお、データ削除の場合には、ステップＳ５６のＳＱＬ文解析において、暗号化及び復号化のいずれの処理も行われず、その後のステップＳ５７のＳＱＬがそのまま実行される。
【００８１】
以上のように、本実施形態に係る情報処理システムによれば、クラウドサービス提供会社に預けた秘匿情報を暗号化しておくことができる。クラウドサービスの利用者であるアプリケーション提供会社は、インターネットを介して接続されたサーバ上で動作する仮想マシンを利用してコンピュータ資源の導入コストや運用コストを低減しつつ、秘匿情報を含む情報をクラウドサービス提供会社に預けながらも、自社でもセキュリティ対策を行うことが可能となる。
【００８２】
なお、上述した各実施形態の説明は本発明の一例であり、本発明は上述の実施形態に限定されることはない。このため、上述した各実施形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【符号の説明】
【００８３】
１  クライアント端末装置
１３x1  第１仮想サーバ
１３x2，１３X3  第２仮想サーバ
１４  ストレージ
【図１】
2011076505.tif 000003
【図２】
2011076505.tif 000004
【図３】
2011076505.tif 000005
【図４】
2011076505.tif 000006
【図５】
2011076505.tif 000007
【図６】
2011076505.tif 000008
【図７】
2011076505.tif 000009
【図８】
2011076505.tif 000010
【図９】
2011076505.tif 000011
【図１０】
2011076505.tif 000012
【図１１】
2011076505.tif 000013
【図１２】
2011076505.tif 000014
【図１３】
2011076505.tif 000015