情報処理システム及び情報処理方法
【課題】企業内秘匿情報のセキュリティ対策をアプリケーション提供会社側でも行わせつつ、クラウドサービスの利用の促進を図ることができる情報処理システム及び情報処理方法を提供すること。
【解決手段】インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備える。第1仮想マシンは、クライアント端末装置からのリクエストを受け付け、リクエストに応じた処理を前記第2仮想マシンに要求する。第2仮想マシンは、クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得しており、第1仮想マシンが要求する処理が記憶手段への所定データの登録要求であるとき、所定データを取得した鍵情報に基づいて暗号化して記憶手段に記憶する。
【解決手段】インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備える。第1仮想マシンは、クライアント端末装置からのリクエストを受け付け、リクエストに応じた処理を前記第2仮想マシンに要求する。第2仮想マシンは、クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得しており、第1仮想マシンが要求する処理が記憶手段への所定データの登録要求であるとき、所定データを取得した鍵情報に基づいて暗号化して記憶手段に記憶する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネットを介して接続されたサーバ上で動作する仮想マシンを備えた情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
従来、サーバコンピュータやデータベースなどのコンピュータ資源は、それらを使用する企業がそれぞれ自社で保有していた。しかし、ハードウェアやアプリケーションが複雑で高コストであり、また、コンピュータ資源を運用する専門の部門も必要となる。
【0003】
そこで、インターネットを基本にした新しいコンピュータ資源の利用形態として、クラウド・コンピューティングというサービス形態(以下、「クラウドサービス」という)が注目されている。かかるクラウドサービスとしては、アマゾンが提供する「Elastic Compute Cloud(EC2)」が一例として挙げられる。
【0004】
クラウドサービスでは、その利用者はコンピュータ資源の保有や管理を行う必要がなく、その利用料金を払うことでコンピュータ資源を利用することが可能となる。一方、クラウドサービス提供会社側では、1又は複数のサーバ上で利用者毎に仮想マシンを配置することで、サーバの利用効率や拡張性を向上させている。そのため、クラウドサービス提供会社は、比較的安価にコンピュータ資源をその利用者に提供することができる(例えば、特許文献1)。
【0005】
このようにクラウドサービスでは、その利用者がコンピュータ資源を導入する必要がないことから、導入コストや運用コストが軽減され、また、拡張性などにも優れているため、今後、ますます利用者が増加していくものと考えられる。
【0006】
特に、クラウドサービス提供会社から仮想マシンをレンタルして、クライアントにアプリケーションを提供するといった利用形態が増えるものと予測される。
【0007】
すなわち、インターネット経由でアプリケーションをクライアントに提供しようとする企業(以下、「アプリケーション提供会社」とする)は、クラウドサービスの利用者として、クラウドサービス提供会社からアプリケーションのプラットフォームとなる仮想マシンをレンタルし、この仮想マシン上でアプリケーションを実行させる。アプリケーション提供会社は、アプリケーションのプラットフォームを保有及び管理する必要がないため、導入コスト及び運用コストが低減され、コスト的なハードルが下がる。そのため、アプリケーション提供会社は、アプリケーションサービスをクライアントに提供しやすくなる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2004−503011号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
アプリケーション提供会社が提供するアプリケーションで使用されるデータには、アプリケーション提供会社内の機密情報やクライアント(すなわち、アプリケーション提供会社が提供するアプリケーションサービスのクライアント)の個人情報などの重要な情報(以下、「企業内秘匿情報」という)が含まれる。
【0010】
しかし、上記クラウドサービスでは、アプリケーション提供会社は、提供するアプリケーションで使用されるデータをクラウドサービス提供会社に預けることになる。すなわち、提供するアプリケーションで使用されるデータのセキュリティ対策をクラウドサービス提供会社側に行わせることになる。
【0011】
しかしながら、同一のサーバ上でアプリケーション提供会社のみならず他の利用者の仮想マシンが配置された場合、サーバプログラムの不具合をついたハッキングなどにより、他の利用者等からデータを盗まれるリスクがある。また、サーバの運用はクラウドサービス提供会社に任せてしまうため、クラウドサービス提供会社の内部からの不正アクセスにより不正コピーやディスクの盗難などが発生するリスクがある。このように、企業内秘匿情報をクラウドサービス提供会社に預けた場合には、アプリケーション提供会社側で企業内秘匿情報を管理できないセキュリティ上の問題がある。
【0012】
このように、アプリケーション提供会社は、クライアントの情報等の企業内秘匿情報の管理をクラウドサービス提供会社に委ねることになり、情報流出に対する管理ができない。そのため、企業内秘匿情報をクラウドサービス提供会社に預けることに不安を抱き、クラウドサービスの利用を躊躇してしまう場合が多い。このように、クラウドサービスは、多数の利点を有しながらもその利用が十分に図られていないのが現状である。
【0013】
本発明は、上述したような課題に鑑みてなされたものであり、企業内秘匿情報のセキュリティ対策をアプリケーション提供会社側でも行わせつつ、クラウドサービスの利用の促進を図ることができる情報処理システム及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を解決するために、請求項1に係る発明は、インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおいて、前記第1仮想マシンは、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付手段と、前記リクエストに応じた処理を前記第2仮想マシンに要求する要求手段と、前記要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信手段と、を備え、前記第2仮想マシンは、前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得手段と、前記第1仮想マシンが要求する前記リクエストに応じた処理が記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理手段と、前記復号化されたデータを前記第1仮想マシンへ送信する送信手段と、を備えたことを特徴とする。
【0015】
また、請求項2に係る発明は、請求項1に記載の情報処理システムであって、前記第1仮想マシンが要求する前記リクエストに応じた処理が前記記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得手段で取得した鍵情報に基づいて暗号化して前記記憶手段に記憶することを特徴とする。
【0016】
また、請求項3に係る発明は、請求項1または2に記載の情報処理システムであって、前記第2仮想マシンは、前記鍵取得手段で取得された鍵情報を記憶する鍵記憶手段と、前記第1仮想マシンが前記クライアント端末装置と接続してからその接続を切断するまでの間、前記鍵情報を前記鍵記憶手段に記憶している状態を維持し、前記第1仮想マシンが前記クライアント端末装置との接続を切断したときに、前記鍵取得手段で取得した鍵情報を鍵記憶手段から削除する鍵記憶処理手段と、を備えたことを特徴とする。
【0017】
また、請求項4に係る発明は、請求項3に記載の情報処理システムであって、前記第1仮想マシンは、前記クライアント端末装置との通信が所定時間ないときに、前記クライアント端末装置との接続を切断することを特徴とする。
【0018】
また、請求項5に係る発明は、請求項1〜4のいずれか1項に記載の情報処理システムであって、前記第2仮想マシンのリソースの利用率が所定閾値以上となったとき、増設用の第2仮想マシンを前記サーバ上に追加して動作させ、前記第2仮想マシンのリソースの利用率が所定閾値未満となったとき、前記増設用の第2仮想マシンを前記サーバ上から削除することを特徴とする。
【0019】
また、請求項6に係る発明は、請求項5に記載の情報処理システムであって、前記第1仮想マシンの前記要求手段は、同一のクライアント端末装置からのリクエストに応じた処理の要求は、同一の第2仮想マシンに対して行うことを特徴とする。
【0020】
また、請求項7に係る発明は、請求項1〜6のいずれか1項に記載の情報処理システムであって、前記記憶手段に記憶するデータには、前記クライアント端末装置を使用しているユーザに関するデータを含む秘匿データを含み、前記記憶処理手段は、前記秘匿データのみを暗号化して記憶することを特徴とする。
【0021】
また、請求項8に係る発明は、請求項1〜7のいずれか1項に記載の情報処理システムであって、前記クライアント端末装置と前記第1仮想マシンとの間の通信と、前記第1仮想マシンと前記第2仮想マシンとの間の通信とは、暗号化通信で行われることを特徴とする。
【0022】
また、請求項9に係る発明は、請求項1〜8のいずれか1項に記載の情報処理システムであって、前記第2仮想マシンは、前記第1仮想マシンから行われる前記リクエストに応じた処理の要求の履歴を記憶する履歴記憶手段を備えたことを特徴とする。
【0023】
また、請求項10に係る発明は、インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおける情報処理方法において、前記第1仮想マシンが、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付ステップと、前記第1仮想マシンが、前記リクエストに応じた処理を前記第2仮想マシンに要求する要求ステップと、前記第2仮想マシンが、前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得ステップと、前記第2仮想マシンが、前記リクエストに応じた処理が記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得ステップで取得した鍵情報に基づいて暗号化して前記記憶手段に記憶し、前記リクエストに応じた処理が前記記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理ステップと、前記第2仮想マシンが、前記復号化されたデータを前記第1仮想マシンへ送信する送信ステップと、前記第1仮想マシンが、前記要求ステップで行った要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信ステップと、を有することを特徴とする。
【発明の効果】
【0024】
本発明によれば、クラウドサービスの利用者であるアプリケーション提供会社は、インターネットを介して接続されたサーバ上で動作する仮想マシンを利用してコンピュータ資源の導入コストや運用コストを低減しつつ、企業内秘匿情報を含む情報をクラウドサービス提供会社に預けながらも、自社でもセキュリティ対策を行うことが可能となる。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施形態に係る情報処理システムの構成を示す図である。
【図2】図1に示すクライアント端末装置の構成を示す図である。
【図3】図1に示すサーバシステムの構成を示す図である。
【図4】図3に示すブレードサーバ上のアーキテクチャを示す図である。
【図5】図3に示すブレードサーバ上で動作する第1仮想サーバの機能ブロック図である。
【図6】図3に示すブレードサーバ上で動作する第2仮想サーバの機能ブロック図である。
【図7】情報処理システムをデータベースサービスに適用したときの処理の流れを示す図である。
【図8】データアクセス処理の流れを示す図である。
【図9】SQL解析の流れを示す図である。
【図10】ユーザテーブルの一例を示す図である。
【図11】カードテーブルの一例を示す図である。
【図12】セッションテーブルの一例を示す図である。
【図13】ログファイルのデータ構造の一例を示す図である。
【発明を実施するための形態】
【0026】
[1.情報処理システムの概要]
本実施形態の情報処理システムは、インターネット経由でアプリケーションをクライアントに提供しようとする企業であるアプリケーション提供会社が、クラウドサービスを利用して、アプリケーションサービスをクライアントに提供することができる情報処理システムである。
【0027】
このようにアプリケーション提供会社がクラウドサービスを利用して提供するアプリケーションサービスにおいては、このアプリケーションサービスを利用するクライアントは、クラウドサービスであることを意識することはない。クライアントは、通常のアプリケーションサービスと同様に、アプリケーション提供会社からのアプリケーションサービスを受けることとなる。なお、アプリケーションサービスとしては、例えば、後述するデータベースサービス、Web会議サービス、eラーニングサービス、画像配信サービスなどがある。
【0028】
クラウドサービスを提供する企業であるクラウドサービス提供会社は、アプリケーションのプラットフォームとなる仮想マシンをアプリケーション提供会社にレンタルする。アプリケーション提供会社は、仮想マシン上でアプリケーションプログラムを実行させ、クライアントにアプリケーションサービスを提供する。なお、以下においては、アプリケーション提供会社からアプリケーションサービスの提供を受けるクライアントの端末装置をクライアント端末装置と呼ぶ。
【0029】
図1に示すように、クラウドサービス提供会社側のコンピュータシステム3は、インターネット2にLAN側入出力ポートを接続したルータ10と、ルータ10のLAN側入出力ポートに接続されたサーバシステム11とストレージシステム16を有している。
【0030】
このサーバシステム11は、複数のブレードサーバで構成され、これらのブレードサーバ上で多数の仮想マシンを動作させることができるようにしている。ここでは、多数の仮想マシンのうち、アプリケーション提供会社は二つの仮想マシンを用いて、クライアントにアプリケーションサービスを提供する。一つは、アプリケーションサーバ(以下、「APサーバ」とする)として用いる第1仮想サーバ(第1仮想マシン)であり、もう一つは、データベースサーバとして用いる第2仮想サーバ(第2仮想マシン)である。図1に示す例では、第1ブレードサーバ121上で動作する仮想マシンを第1仮想サーバ13x1として用い、第7ブレードサーバ127上で動作する仮想マシンを第2仮想サーバ13x2として用いる。第1仮想サーバ13x1及び第2仮想サーバ13x2は、それぞれクラウドサービス提供会社内の社内ネットワーク(LAN)を介してインターネットに接続されている。
【0031】
また、ストレージシステム16を構成する多数のストレージのうち一つのストレージを、第2仮想サーバ13x2が記憶制御を行うストレージ14xとして用いる。また、このストレージ14xは、記憶手段として機能する。
【0032】
アプリケーション提供会社のアプリケーションサービスには、クライアント端末装置1a,1b,1c,…の使用者であるクライアントが加入しており、各クライアント端末装置1a,1b,1c,…から第1仮想サーバ13x1にアクセスしてアプリケーション提供会社のアプリケーションサービスを受ける。なお、クライアント端末装置1a,1b,1c,…のうち何れかのクライアント端末装置又は全てのクライアント端末装置を示す場合には、便宜上、クライアント端末装置1という。
【0033】
サーバシステム11はクラウドサービス提供会社の社内ネットワークのクラウドサービス用のネットワーク領域に配置される。サーバシステム11上で動作する第1仮想サーバ13x1宛てに、クライアント端末装置1からインターネット経由での通信パケットが送信されたとき、ルータ10は、クライアント端末装置1からの通信パケットを第1仮想サーバ13x1に中継する。また、第1仮想サーバ13x1からクライアント端末装置1への通信パケットもルータ10によりクライアント端末装置1へ中継される。クライアント端末装置1は、第1仮想サーバ13x1との間で、提供を受けるサービスに応じた通信パケットを送受信することで、アプリケーションサービスの提供を受ける。
【0034】
第1仮想サーバ13x1は、クライアント端末装置1からのリクエストを受け付けて、第2仮想サーバ13x2と通信して、ストレージ14xに記憶したデータの参照(読み出し)処理や、ストレージ14xに記憶するデータの登録(記憶)、変更及び削除などを行う。また、第1仮想サーバ13x1は、第2仮想サーバ13x2から受信した情報を、クライアント端末装置1に送信する。
【0035】
本実施形態に係る情報処理システムでは、クライアント端末装置1は、第1仮想サーバ13x1を介して第2仮想サーバ13x2にアクセス要求を行った後に、第2仮想サーバ13x2と通信して、ストレージ14xの利用要求を行うようにしている。
【0036】
クライアント端末装置1から第2仮想サーバ13x2に対してアクセス要求を行うと、クライアント端末装置1と第2仮想サーバ13x2との間で、必要に応じて、鍵情報やセッションIDを送受信する。クライアント端末装置1は、第2仮想サーバ13x2で生成されたセッションIDを取得し、第2仮想サーバ13x2は、クライアント端末装置1で生成されたセッションIDを取得する。第2仮想サーバ13x2は、鍵情報をセッションIDに関連づけて後述の記憶部422に記憶する。このセッションIDは所定期間内で有効であり、クライアント端末装置1は、所定期間内、第2仮想サーバ13x2から第1仮想サーバ13x1を介して取得した同一のセッションIDでアクセス要求を行って、第2仮想サーバ13x2と通信し、ストレージ14xへのアクセスを行う。第2仮想サーバ13x2は、クライアント端末装置1から送信されるセッションIDに関連づけて記憶した鍵情報に基づいて、ストレージ14xに記憶したデータの復号化やストレージ14xへ記憶するデータの暗号化を行う。なお、本実施形態では、秘密鍵暗号方式を採用しており、鍵情報は、暗号化と復号化とで共通に用いられる秘密鍵の情報である。
【0037】
ストレージ14xには、クライアントのID、パスワードなどの個人情報を含む重要な情報が含まれており、第2仮想サーバ13x2は、クライアント端末装置1から取得した鍵情報に基づいて暗号化したデータをストレージ14xに記憶して管理する。また、アプリケーション提供会社は、クライアント端末装置1で上記鍵情報を生成するためのプログラムをクライアント端末装置1上で動作させるようにしており、アプリケーション提供会社で暗号化に対する管理を行うようにしている。そのため、クラウドサービス提供会社側での情報漏洩やクラウドサービスを受けている他の利用者からの盗聴などがある場合であっても、企業内秘匿情報等の重要な情報を秘匿することが可能となる。このように、重要な情報をアプリケーション提供会社側で管理することができるので、クラウドサービス提供会社側のセキュリティ対策を気にすることなく、クラウドサービスを利用することが可能となる。そのため、アプリケーション提供会社は、セキュリティ管理を厳密に行いつつも、社内にコンピュータ資源を配置することなく、比較的低コストで、アプリケーションサービスを運用することができる。
【0038】
また、上述したように、データベースサーバである第2仮想サーバ13x2は、サーバシステム11のブレードサーバ上で動作するものであるが、第2仮想サーバ13x2に割り当てられたリソース(CPUやメモリ)の利用率が高くなると、アプリケーションサービスの円滑な提供が難しくなる。そこで、第2仮想サーバ13x2に割り当てられたリソースの利用率が予め規定した第1閾値以上となったとき、増設用の第2仮想サーバ13x3をブレードサーバ上に追加して動作させるようにしている。増設用の第2仮想サーバ13x3は第1仮想サーバ13x1にその増設されたことを通知する。これにより、第1仮想サーバ13x1からいずれの第2仮想サーバ13x2,13x3もアクセス可能として、各第2仮想サーバ13x2,13x3の利用率を下げ、アプリケーションサービスの円滑な提供を行うことができるようにしている。なお、第2仮想サーバ13x2に割り当てられたリソースの利用率が予め規定した第2閾値未満となったとき、増設用の第2仮想サーバ13x3をブレードサーバ上から削除する。このようにすることにより、サーバシステム11全体のリソースを有効に活用するようにしている。アプリケーション提供会社側から見れば、必要なときだけ第2仮想サーバを増設するので、利用料金の低減を図ることができる。
【0039】
また、増設用の第2仮想サーバ13x3を設けた場合、第1仮想サーバ13x1は、同一のクライアント端末装置1からのリクエストに応じた処理の要求は、同一の第2仮想マシンに対して行うようしている。このようにすることで、クライアント端末装置1は、第1仮想サーバ13x1へアクセスする度に鍵情報を送信する処理を行う必要がなくなり、処理負荷が軽減される。また、鍵情報を第2仮想サーバ13x2,13x3間でやり取りする必要がなく、処理が複雑にならない。
【0040】
また、第2仮想サーバ13x2,13x3は、第1仮想サーバ13x1とクライアント端末装置1との間の接続が切断されるまでの間、鍵情報を記憶部422に記憶している状態を維持する。これにより、クライアント端末装置1は、第1仮想サーバ13x1へアクセスする度に鍵情報を送信する処理を行う必要がなくなり、処理負荷が軽減される。一方、第2仮想サーバ13x2,13x3は、第1仮想サーバ13x1とクライアント端末装置1との間の接続が切断されたときに、鍵情報を記憶部422から削除するようにしていることから、さらにセキュリティを向上させることができる。なお、以下の説明では、第2仮想サーバ13x2について説明を行うが、第2仮想サーバ13x3についても同様である。
[2.各構成要素の構成]
次に、情報処理システムを構成する各要素の構成についてそれぞれ説明する。
【0041】
[2.1.クライアント端末装置1の構成]
まず、クライアント端末装置1の構成について説明する。このクライアント端末装置1は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能である。クライアント端末装置1は、このクライアント端末装置1を使用しているユーザ、すなわち、クライアントが所有するものである。図2に示すように、クライアント端末装置1は、制御部101と、記憶部102と、通信部103と、操作部104と、情報取得部105と、表示部106とを備えており、これらはシステムバス107を介して相互に接続されている。
【0042】
制御部101は、クライアント端末装置1全体を制御するものであり、CPU(Central Processing Unit)、内部メモリなどから構成される。記憶部102は、各種情報を記憶する記憶領域を有する書き換え可能な記憶装置であり、例えば、フラッシュメモリから構成される。通信部103は、他の装置とインターネット2を介して通信するための通信インターフェイスである。操作部104は、各種設定入力を行うための操作部である。情報取得部105は、撮像部や音声入力部から構成され、動画像情報や音声情報を取得することができる。表示部106は、液晶表示装置(LCD)から構成されている。
【0043】
[2.2.第1及び第2仮想サーバ13x1〜13x3の構成]
第1及び第2仮想サーバ13x1〜13x3は、上述したようにサーバシステム11上に形成される仮想マシンである。
【0044】
サーバシステム11は、図3に示すように、複数のブレードサーバ121〜12nと、ストレージ141〜14nと、サーバ管理装置15とから構成される。なお、ブレードサーバ121〜12nのうち何れかのブレードサーバ又は全てのブレードサーバを示す場合には、便宜上、ブレードサーバ12という。また、ストレージ141〜14nのうち何れかのストレージ又は全てのストレージを示す場合には、便宜上、ストレージ14という。
【0045】
各ブレードサーバ12は、CPU401と、ROM402と、RAM403と、入出力部404と、通信部405と、ハードディスク(HDD)406とを有しており、これらはシステムバス407を介して相互に接続されている。入出力部404は、サーバ管理装置15とのデータの送受信を行うための通信インターフェイスであり、通信部405は、クラウドアプリケーション提供会社内のネットワークであるLANに接続するための通信インターフェイスである。
【0046】
このように構成されたブレードサーバ121〜12n上で、複数の仮想マシン131〜13nが動作する。なお、複数の仮想マシン131〜13nのうち何れかの仮想マシン又は全ての仮想マシンを示す場合には、便宜上、仮想マシン13という。
【0047】
図4にブレードサーバ12上のアーキテクチャを示す。同図に示すように、ブレードサーバ12では、そのベースプログラムでメインOSが動作する。そしてメインOS上で仮想マシンを動作させるためのプログラムである仮想マシンプログラムが動作する。そして、この仮想マシンプログラム上で複数のゲストOSを動作することができるようにしている。各ゲストOS上では、1以上のアプリケーションプログラムを動作させることができる。
【0048】
サーバ管理装置15は、各ブレードサーバ12を制御及び管理する装置であり、ゲストOSに割り当てるリソース(CPU401,ROM402,RAM403,HDD406など)を管理する。例えば、サーバ管理装置15は、仮想マシン13によるリソースの利用率に応じて、仮想マシン13に割り当てるリソースを変更することができる。また、サーバ管理装置15は、アプリケーションプログラムの実行開始や実行停止などを制御することができる。さらに、各ブレードサーバ12と通信を行って、ゲストOSやアプリケーションプログラムの登録、削除又は変更を行うことができる。
【0049】
本実施形態では、ブレードサーバ12上で動作する仮想マシン13のうち、第1ブレードサーバ121上で動作する仮想マシンを第1仮想サーバ13x1として用い、第7ブレードサーバ127上で動作する仮想マシンを第2仮想サーバ13x2として用いる(図1参照)。
【0050】
ブレードサーバ12上で動作する第1仮想サーバ13x1は、図5に示すように、ブレードサーバ12のリソースを利用することで、制御部411、記憶部412、通信部413などとして機能し、アプリケーション用プログラムを実行する。制御部411は、受付手段、要求手段、送信手段等として機能する。
【0051】
また、第2仮想サーバ13x2は、図6に示すように、ブレードサーバ12のリソースを利用することで、制御部421、記憶部422、通信部423などとして機能し、データベースサーバ用プログラムを実行する。第2仮想サーバ13x2は、ストレージ141〜14nのうち予め設定されたストレージ14xからデータを読み出したり、ストレージ14xへデータを記憶する処理を行う。このストレージ14xには、後述するユーザテーブル、カードテーブル、セッションテーブルなどの情報が記憶される。また、クライアント端末装置1から第1仮想サーバ13x1を介して取得された鍵情報は、記憶部422に記憶される。また、この鍵情報は、第1仮想サーバ13x1がクライアント端末装置と接続してからその接続を切断するまでの間、記憶部422に記憶される。さらに、この鍵情報は、前記第1仮想マシンが前記クライアント端末装置との接続を切断したときに、記憶部422から削除される。また、第1仮想サーバ13x1から行われるリクエストに応じた処理の要求の履歴は、ログファイルとして記憶部422に記憶される。なお、制御部211は、鍵取得手段、記憶処理手段、鍵記憶処理手段等として機能する。また、記憶部422は、鍵記憶手段、履歴記憶手段等として機能する。
【0052】
[3.各構成要素の動作]
以上のように構成される情報処理システムを、データベースサービスを提供するシステムに適用した具体例における動作について図を参照して説明する。
【0053】
このデータベースサービスでは、取得しているセッションIDの有効性が確認されたあとに、第2仮想サーバ13x2の制御部421は、ストレージ14xのユーザテーブルやカードテーブルへのデータアクセスが可能となる。具体的には、後述のセッションテーブルに記憶されているセッションIDに対応する鍵情報が記憶部422に記憶されている場合に、セッションIDは有効であると判断される。
【0054】
まず、ステップS21において、クライアント端末装置1の制御部101は、第1仮想サーバ13x1に対し、通信部413を介してアクセス要求を送信する。制御部101は、セッションIDを記憶している場合には、このアクセス要求にセッションIDを含めて送信し、セッションIDを記憶していない場合にはセッションIDを含めずにアクセス要求を送信する。なお、クライアント端末装置1と第1仮想サーバ13x1間の通信の内容は、SSL等によって暗号化されているものとする。すなわち、クライアント端末装置1と第1仮想サーバ13x1との間の通信は、暗号化通信で行われる。
【0055】
ステップS22において、第1仮想サーバ13x1の制御部411は、クライアント端末装置1からアクセス要求を受信すると、このアクセス要求を第2仮想サーバ13x2へ転送する。なお、第1仮想サーバ13x1と第2仮想サーバ13x2間の通信の内容は、SSL等によって暗号化されているものとする。すなわち、第1仮想サーバ13x1と第2仮想サーバ13x2との間の通信は、暗号化通信で行われる。
【0056】
一方、第2仮想サーバ13x2の制御部421は、ステップS23の判定を所定時間ごとに行う。すなわち、所定時間ごとに、第1仮想サーバ13x1からアクセス要求を受信したか否かを判定する。アクセス要求を受信していないと判定すると(ステップS23:NO)、制御部421は、ステップS24において、タイムアウトとなるセッションIDを特定する。この処理は、図12に示すセッションテーブルに基いて行われる。同図に示すように、セッションテーブルには、クライアント端末装置1に発行したセッションIDごとに、当該セッションIDを用いたデータアクセスの最終時刻と鍵情報の有無が記憶されている。制御部421は、ストレージ14xにアクセスして当該セッションIDを用いたデータアクセスの最終時刻を取得すると共に、現時刻を不図示のタイマを参照して取得する。そして、制御部421は、現時刻と最終時刻との時間差が所定時間以上となっているセッションIDを、タイムアウトとなるセッションIDとして特定する。タイムアウトとなるセッションIDがある場合(ステップS24:YES)、このセッションIDに対応づけられている鍵情報の有無の項目を「無」に設定し、また、記憶部422に記憶している鍵情報を削除する(ステップS25)。例えば、図12に示すセッションテーブルでは、セッションID「1002」については、鍵情報が削除されていることを示している。
【0057】
また、この鍵情報は、第1仮想サーバ13x1がクライアント端末装置1と接続してからその接続を切断するまでの間、セッションテーブルに記憶されており、第1仮想サーバ13x1がクライアント端末装置1との接続を切断したときに、記憶部422からこの鍵情報が削除される。なお、第1仮想サーバ13x1は、クライアント端末装置1との接続を切断したときに、その旨を第2仮想サーバ13x2に通知するものとする。また、第1仮想サーバ13x1は、クライアント端末装置1との通信が所定時間ないときにも、クライアント端末装置1との接続を切断し、その旨を第2仮想サーバ13x2に通知するものとする。
【0058】
一方、ステップS23において、アクセス要求を受信したと判定すると(ステップS23:YES)、制御部421は、ストレージ14xにアクセスして、セッションIDをキーとして、ストレージ14xに記憶したセッションテーブルから、当該セッションIDに対応づけられている鍵情報の有無を検索し、その検索結果を取得する(ステップS26)。この検索結果には、鍵情報が存在していることを示す情報である鍵有情報、または、存在していないことを示す情報である鍵無情報が含まれる。なお、鍵情報自体は、クライアント端末装置1には送信されない。例えば、図12に示すセッションテーブルでは、セッションID「1001」,「1003」については、鍵情報が記憶されていることを示している。
【0059】
その後、制御部421は、その検索結果を、第1仮想サーバ13x1に送信する(ステップS27)。第1仮想サーバ13x1の制御部411は、第2仮想サーバ13x2から検索結果を受信すると、この検索結果をクライアント端末装置1へ転送する(ステップS28)。
【0060】
ステップS29において、受信した検索結果の内容が鍵有情報であった場合は、クライアント端末装置1の制御部101は、処理をステップS38に移行させる。一方、ステップS29において、受信した検索結果の内容が鍵無情報であった場合は、制御部101は、記憶部102に鍵情報を記憶しているか否かを判定する(ステップS30)。鍵情報を記憶していると判定した場合は、制御部101は、処理をステップS32に移行させる。一方、鍵情報を記憶していないと判定した場合は、制御部101は、鍵情報を新たに生成して(ステップS31)、処理をステップS32に移行させる。このとき、制御部101は、アプリケーション提供会社から提供される鍵生成プログラムに基づいて、鍵情報を生成する。なお、制御部101は、クライアントに鍵情報の入力を促す処理を行って、クライアントに入力させるようにしてもよい。
【0061】
その後、ステップS32において、制御部101は、第1仮想サーバ13x1に鍵情報を送信する。第1仮想サーバ13x1の制御部411は、クライアント端末装置1から鍵情報を受信すると、その鍵情報を、第2仮想サーバ13x2へ転送する(ステップS33)。
【0062】
第2仮想サーバ13x2の制御部421は、鍵情報を受信する(ステップS34)と、受信した鍵情報に基いて新たなセッションIDを発行し、このセッションIDと受信した鍵情報とを記憶部422に記憶するとともに、ストレージ14xのセッションテーブルを変更する。さらに、制御部421は、発行したセッションIDを、第1仮想サーバ13x1に送信する(ステップS35)。
【0063】
第1仮想サーバ13x1の制御部411は、第2仮想サーバ13x2からセッションIDを受信すると、このセッションIDを、クライアント端末装置1へ転送する(ステップS36)。クライアント端末装置1の制御部101は、第1仮想サーバ13x1からセッションIDを受信し、ステップS32で送信した鍵情報と共に記憶部102に記憶する(ステップS37)。
【0064】
ステップS38において、クライアント端末装置1,第1仮想サーバ13x1,第2仮想サーバ13x2は、データの参照、登録、変更及び削除などの処理であるデータアクセス処理を実行する。
【0065】
[データアクセス処理]
次に、データの参照、登録、変更及び削除などの処理であるデータアクセス処理について、クライアント端末装置1、第1仮想サーバ13x1及び第2仮想サーバ13x2の動作について図8を参照して説明する。
【0066】
図8に示すように、クライアント端末装置1の制御部101は、ストレージ14xへの利用要求を、第1仮想サーバ13x1に送信する(ステップS51)。この利用要求には、データ参照、データ登録、データ変更、データ削除のいずれかの要求に加え、セッションIDが含まれる。
【0067】
また、利用要求が、データの参照要求である場合には、参照するデータ内容が含まれ、データの登録要求である場合には登録するデータ内容が含まれ、データの削除要求である場合には削除するデータ内容が含まれ、データの変更要求である場合には変更するデータ内容が含まれる。
【0068】
第1仮想サーバ13x1の制御部411は、利用要求を受信する(ステップS52)と、受信した利用要求の内容に応じてSQL文を作成する(ステップS53)。例えば、利用要求がデータの登録要求である場合には、ストレージ14xに書き込む内容を規定したSQL文が生成される。制御部411は、このように作成したSQL文を、第2仮想サーバ13x2に送信する(ステップS54)。
【0069】
第2仮想サーバ13x2の制御部421は、第1仮想サーバ13x1からSQL文を受信し(ステップS55)、SQL文の解析を行う(ステップS56)。このSQL文の解析の詳細については、後述する。
【0070】
制御部421は、SQLを実行する(ステップS57)。その後、制御部421は、SQLの実行内容を、記憶部422のログファイルに記憶する(ステップS58)。図13は、ログファイルのデータ構造の一例を示している。同図に示すように、ログファイルには、実行した日時と、イベント内容と、実行内容と、ユーザ名と、処理時間とが記憶されている。このログファイルを参照することにより、例えば、不正アクセス等を検出することができる。
【0071】
次に、制御部421は、SQLの実行結果を第1仮想サーバ13x1に送信する(ステップS59)。例えば、利用要求がデータの参照要求である場合には、参照結果のデータが、第1仮想サーバ13x1に送信され、それ以外の要求である場合には、処理が正常完了したことを示すデータが、第1仮想サーバ13x1に送信される。
【0072】
第1仮想サーバ13x1の制御部411は、実行結果を受信すると(ステップS60)、実行結果を所定の形式に整形し(ステップS61)、整形した実行結果を、クライアント端末装置1に送信する(ステップS62)。クライアント端末装置1の制御部101は、整形した実行結果を受信する(ステップS63)。
【0073】
[SQL文解析]
次に、ステップS56で実行されるSQL文解析について図9を参照して説明する。
【0074】
図9に示すように、まず、第2仮想サーバ13x2の制御部421は、受信したSQL文に暗号化すべきデータが含まれているか否かを判定する(ステップS81)。暗号化すべきデータが含まれていると判定すると(ステップS81:YES)、制御部421は、受信したセッションIDに基いてストレージ14xに記憶したセッションテーブルを参照し、記憶部422から鍵情報を取得する(ステップS82)。その後、制御部421は、取得した鍵情報に基いて、暗号化対象のデータを暗号化して、ストレージ14xに記憶したユーザテーブルやカードテーブルにデータを追加し、又はユーザテーブルやカードテーブルに記憶したデータの変更を行う(ステップS83)。
【0075】
図10は、ストレージ14xに記憶したユーザテーブルの一例を示している。同図に示すように、ユーザテーブルには、ユーザID,ユーザ名,パスワード,郵便番号,住所の各項目が記憶されている。また、各項目には、データ型及び制約が規定されている。この図において、制約に「encrypted」と規定されている「パスワード」については、データに暗号化が施されていることを示している。
【0076】
したがって、制御部421は、ステップS81の判定において、データの制約が「encrypted」となっている場合に、暗号化すべきデータであると判定する。例えば、ユーザテーブルに、新たに「Hanako」のデータを登録する場合、「パスワード」についてはそのままのデータでは、ストレージ14xに記憶したユーザテーブルを登録できないので、暗号化を施す必要がある。
【0077】
また、制御部421は、受信したSQL文に復号化すべきデータが含まれているか否かを判定する(ステップS84)。復号化すべきデータが含まれていると判定すると(ステップS84:YES)、制御部421は、セッションIDに基いてストレージ14xに記憶したセッションテーブルを参照し、記憶部422から鍵情報を取得する(ステップS85)。その後、制御部421は、取得した鍵情報に基いて、ストレージ14xに記憶したユーザテーブルやカードテーブルなどに含まれる復号化対象のデータを復号化する(ステップS86)。
【0078】
図11は、ストレージ14xに記憶したカードテーブルの一例を示している。同図に示すように、カードテーブルには、カードID,ユーザID,カード番号,有効期限の各項目が記憶されている。また、各項目には、データ型及び制約が規定されている。この図において、制約に「encrypted」と規定されている「カード番号」及び「有効期限」については、データに暗号化が施されていることを示している。
【0079】
したがって、制御部421は、ステップS84の判定において、データの制約が「encrypted」となっている場合に、復号化すべきデータであると判定する。例えば、ユーザ名「Taro」の有効期限が切れていないカード番号を取得する場合、「有効期限」は暗号化されているために、そのままのデータではカードテーブルを参照することができないので、復号化を施す必要がある。
【0080】
なお、データ削除の場合には、ステップS56のSQL文解析において、暗号化及び復号化のいずれの処理も行われず、その後のステップS57のSQLがそのまま実行される。
【0081】
以上のように、本実施形態に係る情報処理システムによれば、クラウドサービス提供会社に預けた秘匿情報を暗号化しておくことができる。クラウドサービスの利用者であるアプリケーション提供会社は、インターネットを介して接続されたサーバ上で動作する仮想マシンを利用してコンピュータ資源の導入コストや運用コストを低減しつつ、秘匿情報を含む情報をクラウドサービス提供会社に預けながらも、自社でもセキュリティ対策を行うことが可能となる。
【0082】
なお、上述した各実施形態の説明は本発明の一例であり、本発明は上述の実施形態に限定されることはない。このため、上述した各実施形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【符号の説明】
【0083】
1 クライアント端末装置
13x1 第1仮想サーバ
13x2,13X3 第2仮想サーバ
14 ストレージ
【技術分野】
【0001】
本発明は、インターネットを介して接続されたサーバ上で動作する仮想マシンを備えた情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
従来、サーバコンピュータやデータベースなどのコンピュータ資源は、それらを使用する企業がそれぞれ自社で保有していた。しかし、ハードウェアやアプリケーションが複雑で高コストであり、また、コンピュータ資源を運用する専門の部門も必要となる。
【0003】
そこで、インターネットを基本にした新しいコンピュータ資源の利用形態として、クラウド・コンピューティングというサービス形態(以下、「クラウドサービス」という)が注目されている。かかるクラウドサービスとしては、アマゾンが提供する「Elastic Compute Cloud(EC2)」が一例として挙げられる。
【0004】
クラウドサービスでは、その利用者はコンピュータ資源の保有や管理を行う必要がなく、その利用料金を払うことでコンピュータ資源を利用することが可能となる。一方、クラウドサービス提供会社側では、1又は複数のサーバ上で利用者毎に仮想マシンを配置することで、サーバの利用効率や拡張性を向上させている。そのため、クラウドサービス提供会社は、比較的安価にコンピュータ資源をその利用者に提供することができる(例えば、特許文献1)。
【0005】
このようにクラウドサービスでは、その利用者がコンピュータ資源を導入する必要がないことから、導入コストや運用コストが軽減され、また、拡張性などにも優れているため、今後、ますます利用者が増加していくものと考えられる。
【0006】
特に、クラウドサービス提供会社から仮想マシンをレンタルして、クライアントにアプリケーションを提供するといった利用形態が増えるものと予測される。
【0007】
すなわち、インターネット経由でアプリケーションをクライアントに提供しようとする企業(以下、「アプリケーション提供会社」とする)は、クラウドサービスの利用者として、クラウドサービス提供会社からアプリケーションのプラットフォームとなる仮想マシンをレンタルし、この仮想マシン上でアプリケーションを実行させる。アプリケーション提供会社は、アプリケーションのプラットフォームを保有及び管理する必要がないため、導入コスト及び運用コストが低減され、コスト的なハードルが下がる。そのため、アプリケーション提供会社は、アプリケーションサービスをクライアントに提供しやすくなる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2004−503011号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
アプリケーション提供会社が提供するアプリケーションで使用されるデータには、アプリケーション提供会社内の機密情報やクライアント(すなわち、アプリケーション提供会社が提供するアプリケーションサービスのクライアント)の個人情報などの重要な情報(以下、「企業内秘匿情報」という)が含まれる。
【0010】
しかし、上記クラウドサービスでは、アプリケーション提供会社は、提供するアプリケーションで使用されるデータをクラウドサービス提供会社に預けることになる。すなわち、提供するアプリケーションで使用されるデータのセキュリティ対策をクラウドサービス提供会社側に行わせることになる。
【0011】
しかしながら、同一のサーバ上でアプリケーション提供会社のみならず他の利用者の仮想マシンが配置された場合、サーバプログラムの不具合をついたハッキングなどにより、他の利用者等からデータを盗まれるリスクがある。また、サーバの運用はクラウドサービス提供会社に任せてしまうため、クラウドサービス提供会社の内部からの不正アクセスにより不正コピーやディスクの盗難などが発生するリスクがある。このように、企業内秘匿情報をクラウドサービス提供会社に預けた場合には、アプリケーション提供会社側で企業内秘匿情報を管理できないセキュリティ上の問題がある。
【0012】
このように、アプリケーション提供会社は、クライアントの情報等の企業内秘匿情報の管理をクラウドサービス提供会社に委ねることになり、情報流出に対する管理ができない。そのため、企業内秘匿情報をクラウドサービス提供会社に預けることに不安を抱き、クラウドサービスの利用を躊躇してしまう場合が多い。このように、クラウドサービスは、多数の利点を有しながらもその利用が十分に図られていないのが現状である。
【0013】
本発明は、上述したような課題に鑑みてなされたものであり、企業内秘匿情報のセキュリティ対策をアプリケーション提供会社側でも行わせつつ、クラウドサービスの利用の促進を図ることができる情報処理システム及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を解決するために、請求項1に係る発明は、インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおいて、前記第1仮想マシンは、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付手段と、前記リクエストに応じた処理を前記第2仮想マシンに要求する要求手段と、前記要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信手段と、を備え、前記第2仮想マシンは、前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得手段と、前記第1仮想マシンが要求する前記リクエストに応じた処理が記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理手段と、前記復号化されたデータを前記第1仮想マシンへ送信する送信手段と、を備えたことを特徴とする。
【0015】
また、請求項2に係る発明は、請求項1に記載の情報処理システムであって、前記第1仮想マシンが要求する前記リクエストに応じた処理が前記記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得手段で取得した鍵情報に基づいて暗号化して前記記憶手段に記憶することを特徴とする。
【0016】
また、請求項3に係る発明は、請求項1または2に記載の情報処理システムであって、前記第2仮想マシンは、前記鍵取得手段で取得された鍵情報を記憶する鍵記憶手段と、前記第1仮想マシンが前記クライアント端末装置と接続してからその接続を切断するまでの間、前記鍵情報を前記鍵記憶手段に記憶している状態を維持し、前記第1仮想マシンが前記クライアント端末装置との接続を切断したときに、前記鍵取得手段で取得した鍵情報を鍵記憶手段から削除する鍵記憶処理手段と、を備えたことを特徴とする。
【0017】
また、請求項4に係る発明は、請求項3に記載の情報処理システムであって、前記第1仮想マシンは、前記クライアント端末装置との通信が所定時間ないときに、前記クライアント端末装置との接続を切断することを特徴とする。
【0018】
また、請求項5に係る発明は、請求項1〜4のいずれか1項に記載の情報処理システムであって、前記第2仮想マシンのリソースの利用率が所定閾値以上となったとき、増設用の第2仮想マシンを前記サーバ上に追加して動作させ、前記第2仮想マシンのリソースの利用率が所定閾値未満となったとき、前記増設用の第2仮想マシンを前記サーバ上から削除することを特徴とする。
【0019】
また、請求項6に係る発明は、請求項5に記載の情報処理システムであって、前記第1仮想マシンの前記要求手段は、同一のクライアント端末装置からのリクエストに応じた処理の要求は、同一の第2仮想マシンに対して行うことを特徴とする。
【0020】
また、請求項7に係る発明は、請求項1〜6のいずれか1項に記載の情報処理システムであって、前記記憶手段に記憶するデータには、前記クライアント端末装置を使用しているユーザに関するデータを含む秘匿データを含み、前記記憶処理手段は、前記秘匿データのみを暗号化して記憶することを特徴とする。
【0021】
また、請求項8に係る発明は、請求項1〜7のいずれか1項に記載の情報処理システムであって、前記クライアント端末装置と前記第1仮想マシンとの間の通信と、前記第1仮想マシンと前記第2仮想マシンとの間の通信とは、暗号化通信で行われることを特徴とする。
【0022】
また、請求項9に係る発明は、請求項1〜8のいずれか1項に記載の情報処理システムであって、前記第2仮想マシンは、前記第1仮想マシンから行われる前記リクエストに応じた処理の要求の履歴を記憶する履歴記憶手段を備えたことを特徴とする。
【0023】
また、請求項10に係る発明は、インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおける情報処理方法において、前記第1仮想マシンが、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付ステップと、前記第1仮想マシンが、前記リクエストに応じた処理を前記第2仮想マシンに要求する要求ステップと、前記第2仮想マシンが、前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得ステップと、前記第2仮想マシンが、前記リクエストに応じた処理が記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得ステップで取得した鍵情報に基づいて暗号化して前記記憶手段に記憶し、前記リクエストに応じた処理が前記記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理ステップと、前記第2仮想マシンが、前記復号化されたデータを前記第1仮想マシンへ送信する送信ステップと、前記第1仮想マシンが、前記要求ステップで行った要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信ステップと、を有することを特徴とする。
【発明の効果】
【0024】
本発明によれば、クラウドサービスの利用者であるアプリケーション提供会社は、インターネットを介して接続されたサーバ上で動作する仮想マシンを利用してコンピュータ資源の導入コストや運用コストを低減しつつ、企業内秘匿情報を含む情報をクラウドサービス提供会社に預けながらも、自社でもセキュリティ対策を行うことが可能となる。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施形態に係る情報処理システムの構成を示す図である。
【図2】図1に示すクライアント端末装置の構成を示す図である。
【図3】図1に示すサーバシステムの構成を示す図である。
【図4】図3に示すブレードサーバ上のアーキテクチャを示す図である。
【図5】図3に示すブレードサーバ上で動作する第1仮想サーバの機能ブロック図である。
【図6】図3に示すブレードサーバ上で動作する第2仮想サーバの機能ブロック図である。
【図7】情報処理システムをデータベースサービスに適用したときの処理の流れを示す図である。
【図8】データアクセス処理の流れを示す図である。
【図9】SQL解析の流れを示す図である。
【図10】ユーザテーブルの一例を示す図である。
【図11】カードテーブルの一例を示す図である。
【図12】セッションテーブルの一例を示す図である。
【図13】ログファイルのデータ構造の一例を示す図である。
【発明を実施するための形態】
【0026】
[1.情報処理システムの概要]
本実施形態の情報処理システムは、インターネット経由でアプリケーションをクライアントに提供しようとする企業であるアプリケーション提供会社が、クラウドサービスを利用して、アプリケーションサービスをクライアントに提供することができる情報処理システムである。
【0027】
このようにアプリケーション提供会社がクラウドサービスを利用して提供するアプリケーションサービスにおいては、このアプリケーションサービスを利用するクライアントは、クラウドサービスであることを意識することはない。クライアントは、通常のアプリケーションサービスと同様に、アプリケーション提供会社からのアプリケーションサービスを受けることとなる。なお、アプリケーションサービスとしては、例えば、後述するデータベースサービス、Web会議サービス、eラーニングサービス、画像配信サービスなどがある。
【0028】
クラウドサービスを提供する企業であるクラウドサービス提供会社は、アプリケーションのプラットフォームとなる仮想マシンをアプリケーション提供会社にレンタルする。アプリケーション提供会社は、仮想マシン上でアプリケーションプログラムを実行させ、クライアントにアプリケーションサービスを提供する。なお、以下においては、アプリケーション提供会社からアプリケーションサービスの提供を受けるクライアントの端末装置をクライアント端末装置と呼ぶ。
【0029】
図1に示すように、クラウドサービス提供会社側のコンピュータシステム3は、インターネット2にLAN側入出力ポートを接続したルータ10と、ルータ10のLAN側入出力ポートに接続されたサーバシステム11とストレージシステム16を有している。
【0030】
このサーバシステム11は、複数のブレードサーバで構成され、これらのブレードサーバ上で多数の仮想マシンを動作させることができるようにしている。ここでは、多数の仮想マシンのうち、アプリケーション提供会社は二つの仮想マシンを用いて、クライアントにアプリケーションサービスを提供する。一つは、アプリケーションサーバ(以下、「APサーバ」とする)として用いる第1仮想サーバ(第1仮想マシン)であり、もう一つは、データベースサーバとして用いる第2仮想サーバ(第2仮想マシン)である。図1に示す例では、第1ブレードサーバ121上で動作する仮想マシンを第1仮想サーバ13x1として用い、第7ブレードサーバ127上で動作する仮想マシンを第2仮想サーバ13x2として用いる。第1仮想サーバ13x1及び第2仮想サーバ13x2は、それぞれクラウドサービス提供会社内の社内ネットワーク(LAN)を介してインターネットに接続されている。
【0031】
また、ストレージシステム16を構成する多数のストレージのうち一つのストレージを、第2仮想サーバ13x2が記憶制御を行うストレージ14xとして用いる。また、このストレージ14xは、記憶手段として機能する。
【0032】
アプリケーション提供会社のアプリケーションサービスには、クライアント端末装置1a,1b,1c,…の使用者であるクライアントが加入しており、各クライアント端末装置1a,1b,1c,…から第1仮想サーバ13x1にアクセスしてアプリケーション提供会社のアプリケーションサービスを受ける。なお、クライアント端末装置1a,1b,1c,…のうち何れかのクライアント端末装置又は全てのクライアント端末装置を示す場合には、便宜上、クライアント端末装置1という。
【0033】
サーバシステム11はクラウドサービス提供会社の社内ネットワークのクラウドサービス用のネットワーク領域に配置される。サーバシステム11上で動作する第1仮想サーバ13x1宛てに、クライアント端末装置1からインターネット経由での通信パケットが送信されたとき、ルータ10は、クライアント端末装置1からの通信パケットを第1仮想サーバ13x1に中継する。また、第1仮想サーバ13x1からクライアント端末装置1への通信パケットもルータ10によりクライアント端末装置1へ中継される。クライアント端末装置1は、第1仮想サーバ13x1との間で、提供を受けるサービスに応じた通信パケットを送受信することで、アプリケーションサービスの提供を受ける。
【0034】
第1仮想サーバ13x1は、クライアント端末装置1からのリクエストを受け付けて、第2仮想サーバ13x2と通信して、ストレージ14xに記憶したデータの参照(読み出し)処理や、ストレージ14xに記憶するデータの登録(記憶)、変更及び削除などを行う。また、第1仮想サーバ13x1は、第2仮想サーバ13x2から受信した情報を、クライアント端末装置1に送信する。
【0035】
本実施形態に係る情報処理システムでは、クライアント端末装置1は、第1仮想サーバ13x1を介して第2仮想サーバ13x2にアクセス要求を行った後に、第2仮想サーバ13x2と通信して、ストレージ14xの利用要求を行うようにしている。
【0036】
クライアント端末装置1から第2仮想サーバ13x2に対してアクセス要求を行うと、クライアント端末装置1と第2仮想サーバ13x2との間で、必要に応じて、鍵情報やセッションIDを送受信する。クライアント端末装置1は、第2仮想サーバ13x2で生成されたセッションIDを取得し、第2仮想サーバ13x2は、クライアント端末装置1で生成されたセッションIDを取得する。第2仮想サーバ13x2は、鍵情報をセッションIDに関連づけて後述の記憶部422に記憶する。このセッションIDは所定期間内で有効であり、クライアント端末装置1は、所定期間内、第2仮想サーバ13x2から第1仮想サーバ13x1を介して取得した同一のセッションIDでアクセス要求を行って、第2仮想サーバ13x2と通信し、ストレージ14xへのアクセスを行う。第2仮想サーバ13x2は、クライアント端末装置1から送信されるセッションIDに関連づけて記憶した鍵情報に基づいて、ストレージ14xに記憶したデータの復号化やストレージ14xへ記憶するデータの暗号化を行う。なお、本実施形態では、秘密鍵暗号方式を採用しており、鍵情報は、暗号化と復号化とで共通に用いられる秘密鍵の情報である。
【0037】
ストレージ14xには、クライアントのID、パスワードなどの個人情報を含む重要な情報が含まれており、第2仮想サーバ13x2は、クライアント端末装置1から取得した鍵情報に基づいて暗号化したデータをストレージ14xに記憶して管理する。また、アプリケーション提供会社は、クライアント端末装置1で上記鍵情報を生成するためのプログラムをクライアント端末装置1上で動作させるようにしており、アプリケーション提供会社で暗号化に対する管理を行うようにしている。そのため、クラウドサービス提供会社側での情報漏洩やクラウドサービスを受けている他の利用者からの盗聴などがある場合であっても、企業内秘匿情報等の重要な情報を秘匿することが可能となる。このように、重要な情報をアプリケーション提供会社側で管理することができるので、クラウドサービス提供会社側のセキュリティ対策を気にすることなく、クラウドサービスを利用することが可能となる。そのため、アプリケーション提供会社は、セキュリティ管理を厳密に行いつつも、社内にコンピュータ資源を配置することなく、比較的低コストで、アプリケーションサービスを運用することができる。
【0038】
また、上述したように、データベースサーバである第2仮想サーバ13x2は、サーバシステム11のブレードサーバ上で動作するものであるが、第2仮想サーバ13x2に割り当てられたリソース(CPUやメモリ)の利用率が高くなると、アプリケーションサービスの円滑な提供が難しくなる。そこで、第2仮想サーバ13x2に割り当てられたリソースの利用率が予め規定した第1閾値以上となったとき、増設用の第2仮想サーバ13x3をブレードサーバ上に追加して動作させるようにしている。増設用の第2仮想サーバ13x3は第1仮想サーバ13x1にその増設されたことを通知する。これにより、第1仮想サーバ13x1からいずれの第2仮想サーバ13x2,13x3もアクセス可能として、各第2仮想サーバ13x2,13x3の利用率を下げ、アプリケーションサービスの円滑な提供を行うことができるようにしている。なお、第2仮想サーバ13x2に割り当てられたリソースの利用率が予め規定した第2閾値未満となったとき、増設用の第2仮想サーバ13x3をブレードサーバ上から削除する。このようにすることにより、サーバシステム11全体のリソースを有効に活用するようにしている。アプリケーション提供会社側から見れば、必要なときだけ第2仮想サーバを増設するので、利用料金の低減を図ることができる。
【0039】
また、増設用の第2仮想サーバ13x3を設けた場合、第1仮想サーバ13x1は、同一のクライアント端末装置1からのリクエストに応じた処理の要求は、同一の第2仮想マシンに対して行うようしている。このようにすることで、クライアント端末装置1は、第1仮想サーバ13x1へアクセスする度に鍵情報を送信する処理を行う必要がなくなり、処理負荷が軽減される。また、鍵情報を第2仮想サーバ13x2,13x3間でやり取りする必要がなく、処理が複雑にならない。
【0040】
また、第2仮想サーバ13x2,13x3は、第1仮想サーバ13x1とクライアント端末装置1との間の接続が切断されるまでの間、鍵情報を記憶部422に記憶している状態を維持する。これにより、クライアント端末装置1は、第1仮想サーバ13x1へアクセスする度に鍵情報を送信する処理を行う必要がなくなり、処理負荷が軽減される。一方、第2仮想サーバ13x2,13x3は、第1仮想サーバ13x1とクライアント端末装置1との間の接続が切断されたときに、鍵情報を記憶部422から削除するようにしていることから、さらにセキュリティを向上させることができる。なお、以下の説明では、第2仮想サーバ13x2について説明を行うが、第2仮想サーバ13x3についても同様である。
[2.各構成要素の構成]
次に、情報処理システムを構成する各要素の構成についてそれぞれ説明する。
【0041】
[2.1.クライアント端末装置1の構成]
まず、クライアント端末装置1の構成について説明する。このクライアント端末装置1は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能である。クライアント端末装置1は、このクライアント端末装置1を使用しているユーザ、すなわち、クライアントが所有するものである。図2に示すように、クライアント端末装置1は、制御部101と、記憶部102と、通信部103と、操作部104と、情報取得部105と、表示部106とを備えており、これらはシステムバス107を介して相互に接続されている。
【0042】
制御部101は、クライアント端末装置1全体を制御するものであり、CPU(Central Processing Unit)、内部メモリなどから構成される。記憶部102は、各種情報を記憶する記憶領域を有する書き換え可能な記憶装置であり、例えば、フラッシュメモリから構成される。通信部103は、他の装置とインターネット2を介して通信するための通信インターフェイスである。操作部104は、各種設定入力を行うための操作部である。情報取得部105は、撮像部や音声入力部から構成され、動画像情報や音声情報を取得することができる。表示部106は、液晶表示装置(LCD)から構成されている。
【0043】
[2.2.第1及び第2仮想サーバ13x1〜13x3の構成]
第1及び第2仮想サーバ13x1〜13x3は、上述したようにサーバシステム11上に形成される仮想マシンである。
【0044】
サーバシステム11は、図3に示すように、複数のブレードサーバ121〜12nと、ストレージ141〜14nと、サーバ管理装置15とから構成される。なお、ブレードサーバ121〜12nのうち何れかのブレードサーバ又は全てのブレードサーバを示す場合には、便宜上、ブレードサーバ12という。また、ストレージ141〜14nのうち何れかのストレージ又は全てのストレージを示す場合には、便宜上、ストレージ14という。
【0045】
各ブレードサーバ12は、CPU401と、ROM402と、RAM403と、入出力部404と、通信部405と、ハードディスク(HDD)406とを有しており、これらはシステムバス407を介して相互に接続されている。入出力部404は、サーバ管理装置15とのデータの送受信を行うための通信インターフェイスであり、通信部405は、クラウドアプリケーション提供会社内のネットワークであるLANに接続するための通信インターフェイスである。
【0046】
このように構成されたブレードサーバ121〜12n上で、複数の仮想マシン131〜13nが動作する。なお、複数の仮想マシン131〜13nのうち何れかの仮想マシン又は全ての仮想マシンを示す場合には、便宜上、仮想マシン13という。
【0047】
図4にブレードサーバ12上のアーキテクチャを示す。同図に示すように、ブレードサーバ12では、そのベースプログラムでメインOSが動作する。そしてメインOS上で仮想マシンを動作させるためのプログラムである仮想マシンプログラムが動作する。そして、この仮想マシンプログラム上で複数のゲストOSを動作することができるようにしている。各ゲストOS上では、1以上のアプリケーションプログラムを動作させることができる。
【0048】
サーバ管理装置15は、各ブレードサーバ12を制御及び管理する装置であり、ゲストOSに割り当てるリソース(CPU401,ROM402,RAM403,HDD406など)を管理する。例えば、サーバ管理装置15は、仮想マシン13によるリソースの利用率に応じて、仮想マシン13に割り当てるリソースを変更することができる。また、サーバ管理装置15は、アプリケーションプログラムの実行開始や実行停止などを制御することができる。さらに、各ブレードサーバ12と通信を行って、ゲストOSやアプリケーションプログラムの登録、削除又は変更を行うことができる。
【0049】
本実施形態では、ブレードサーバ12上で動作する仮想マシン13のうち、第1ブレードサーバ121上で動作する仮想マシンを第1仮想サーバ13x1として用い、第7ブレードサーバ127上で動作する仮想マシンを第2仮想サーバ13x2として用いる(図1参照)。
【0050】
ブレードサーバ12上で動作する第1仮想サーバ13x1は、図5に示すように、ブレードサーバ12のリソースを利用することで、制御部411、記憶部412、通信部413などとして機能し、アプリケーション用プログラムを実行する。制御部411は、受付手段、要求手段、送信手段等として機能する。
【0051】
また、第2仮想サーバ13x2は、図6に示すように、ブレードサーバ12のリソースを利用することで、制御部421、記憶部422、通信部423などとして機能し、データベースサーバ用プログラムを実行する。第2仮想サーバ13x2は、ストレージ141〜14nのうち予め設定されたストレージ14xからデータを読み出したり、ストレージ14xへデータを記憶する処理を行う。このストレージ14xには、後述するユーザテーブル、カードテーブル、セッションテーブルなどの情報が記憶される。また、クライアント端末装置1から第1仮想サーバ13x1を介して取得された鍵情報は、記憶部422に記憶される。また、この鍵情報は、第1仮想サーバ13x1がクライアント端末装置と接続してからその接続を切断するまでの間、記憶部422に記憶される。さらに、この鍵情報は、前記第1仮想マシンが前記クライアント端末装置との接続を切断したときに、記憶部422から削除される。また、第1仮想サーバ13x1から行われるリクエストに応じた処理の要求の履歴は、ログファイルとして記憶部422に記憶される。なお、制御部211は、鍵取得手段、記憶処理手段、鍵記憶処理手段等として機能する。また、記憶部422は、鍵記憶手段、履歴記憶手段等として機能する。
【0052】
[3.各構成要素の動作]
以上のように構成される情報処理システムを、データベースサービスを提供するシステムに適用した具体例における動作について図を参照して説明する。
【0053】
このデータベースサービスでは、取得しているセッションIDの有効性が確認されたあとに、第2仮想サーバ13x2の制御部421は、ストレージ14xのユーザテーブルやカードテーブルへのデータアクセスが可能となる。具体的には、後述のセッションテーブルに記憶されているセッションIDに対応する鍵情報が記憶部422に記憶されている場合に、セッションIDは有効であると判断される。
【0054】
まず、ステップS21において、クライアント端末装置1の制御部101は、第1仮想サーバ13x1に対し、通信部413を介してアクセス要求を送信する。制御部101は、セッションIDを記憶している場合には、このアクセス要求にセッションIDを含めて送信し、セッションIDを記憶していない場合にはセッションIDを含めずにアクセス要求を送信する。なお、クライアント端末装置1と第1仮想サーバ13x1間の通信の内容は、SSL等によって暗号化されているものとする。すなわち、クライアント端末装置1と第1仮想サーバ13x1との間の通信は、暗号化通信で行われる。
【0055】
ステップS22において、第1仮想サーバ13x1の制御部411は、クライアント端末装置1からアクセス要求を受信すると、このアクセス要求を第2仮想サーバ13x2へ転送する。なお、第1仮想サーバ13x1と第2仮想サーバ13x2間の通信の内容は、SSL等によって暗号化されているものとする。すなわち、第1仮想サーバ13x1と第2仮想サーバ13x2との間の通信は、暗号化通信で行われる。
【0056】
一方、第2仮想サーバ13x2の制御部421は、ステップS23の判定を所定時間ごとに行う。すなわち、所定時間ごとに、第1仮想サーバ13x1からアクセス要求を受信したか否かを判定する。アクセス要求を受信していないと判定すると(ステップS23:NO)、制御部421は、ステップS24において、タイムアウトとなるセッションIDを特定する。この処理は、図12に示すセッションテーブルに基いて行われる。同図に示すように、セッションテーブルには、クライアント端末装置1に発行したセッションIDごとに、当該セッションIDを用いたデータアクセスの最終時刻と鍵情報の有無が記憶されている。制御部421は、ストレージ14xにアクセスして当該セッションIDを用いたデータアクセスの最終時刻を取得すると共に、現時刻を不図示のタイマを参照して取得する。そして、制御部421は、現時刻と最終時刻との時間差が所定時間以上となっているセッションIDを、タイムアウトとなるセッションIDとして特定する。タイムアウトとなるセッションIDがある場合(ステップS24:YES)、このセッションIDに対応づけられている鍵情報の有無の項目を「無」に設定し、また、記憶部422に記憶している鍵情報を削除する(ステップS25)。例えば、図12に示すセッションテーブルでは、セッションID「1002」については、鍵情報が削除されていることを示している。
【0057】
また、この鍵情報は、第1仮想サーバ13x1がクライアント端末装置1と接続してからその接続を切断するまでの間、セッションテーブルに記憶されており、第1仮想サーバ13x1がクライアント端末装置1との接続を切断したときに、記憶部422からこの鍵情報が削除される。なお、第1仮想サーバ13x1は、クライアント端末装置1との接続を切断したときに、その旨を第2仮想サーバ13x2に通知するものとする。また、第1仮想サーバ13x1は、クライアント端末装置1との通信が所定時間ないときにも、クライアント端末装置1との接続を切断し、その旨を第2仮想サーバ13x2に通知するものとする。
【0058】
一方、ステップS23において、アクセス要求を受信したと判定すると(ステップS23:YES)、制御部421は、ストレージ14xにアクセスして、セッションIDをキーとして、ストレージ14xに記憶したセッションテーブルから、当該セッションIDに対応づけられている鍵情報の有無を検索し、その検索結果を取得する(ステップS26)。この検索結果には、鍵情報が存在していることを示す情報である鍵有情報、または、存在していないことを示す情報である鍵無情報が含まれる。なお、鍵情報自体は、クライアント端末装置1には送信されない。例えば、図12に示すセッションテーブルでは、セッションID「1001」,「1003」については、鍵情報が記憶されていることを示している。
【0059】
その後、制御部421は、その検索結果を、第1仮想サーバ13x1に送信する(ステップS27)。第1仮想サーバ13x1の制御部411は、第2仮想サーバ13x2から検索結果を受信すると、この検索結果をクライアント端末装置1へ転送する(ステップS28)。
【0060】
ステップS29において、受信した検索結果の内容が鍵有情報であった場合は、クライアント端末装置1の制御部101は、処理をステップS38に移行させる。一方、ステップS29において、受信した検索結果の内容が鍵無情報であった場合は、制御部101は、記憶部102に鍵情報を記憶しているか否かを判定する(ステップS30)。鍵情報を記憶していると判定した場合は、制御部101は、処理をステップS32に移行させる。一方、鍵情報を記憶していないと判定した場合は、制御部101は、鍵情報を新たに生成して(ステップS31)、処理をステップS32に移行させる。このとき、制御部101は、アプリケーション提供会社から提供される鍵生成プログラムに基づいて、鍵情報を生成する。なお、制御部101は、クライアントに鍵情報の入力を促す処理を行って、クライアントに入力させるようにしてもよい。
【0061】
その後、ステップS32において、制御部101は、第1仮想サーバ13x1に鍵情報を送信する。第1仮想サーバ13x1の制御部411は、クライアント端末装置1から鍵情報を受信すると、その鍵情報を、第2仮想サーバ13x2へ転送する(ステップS33)。
【0062】
第2仮想サーバ13x2の制御部421は、鍵情報を受信する(ステップS34)と、受信した鍵情報に基いて新たなセッションIDを発行し、このセッションIDと受信した鍵情報とを記憶部422に記憶するとともに、ストレージ14xのセッションテーブルを変更する。さらに、制御部421は、発行したセッションIDを、第1仮想サーバ13x1に送信する(ステップS35)。
【0063】
第1仮想サーバ13x1の制御部411は、第2仮想サーバ13x2からセッションIDを受信すると、このセッションIDを、クライアント端末装置1へ転送する(ステップS36)。クライアント端末装置1の制御部101は、第1仮想サーバ13x1からセッションIDを受信し、ステップS32で送信した鍵情報と共に記憶部102に記憶する(ステップS37)。
【0064】
ステップS38において、クライアント端末装置1,第1仮想サーバ13x1,第2仮想サーバ13x2は、データの参照、登録、変更及び削除などの処理であるデータアクセス処理を実行する。
【0065】
[データアクセス処理]
次に、データの参照、登録、変更及び削除などの処理であるデータアクセス処理について、クライアント端末装置1、第1仮想サーバ13x1及び第2仮想サーバ13x2の動作について図8を参照して説明する。
【0066】
図8に示すように、クライアント端末装置1の制御部101は、ストレージ14xへの利用要求を、第1仮想サーバ13x1に送信する(ステップS51)。この利用要求には、データ参照、データ登録、データ変更、データ削除のいずれかの要求に加え、セッションIDが含まれる。
【0067】
また、利用要求が、データの参照要求である場合には、参照するデータ内容が含まれ、データの登録要求である場合には登録するデータ内容が含まれ、データの削除要求である場合には削除するデータ内容が含まれ、データの変更要求である場合には変更するデータ内容が含まれる。
【0068】
第1仮想サーバ13x1の制御部411は、利用要求を受信する(ステップS52)と、受信した利用要求の内容に応じてSQL文を作成する(ステップS53)。例えば、利用要求がデータの登録要求である場合には、ストレージ14xに書き込む内容を規定したSQL文が生成される。制御部411は、このように作成したSQL文を、第2仮想サーバ13x2に送信する(ステップS54)。
【0069】
第2仮想サーバ13x2の制御部421は、第1仮想サーバ13x1からSQL文を受信し(ステップS55)、SQL文の解析を行う(ステップS56)。このSQL文の解析の詳細については、後述する。
【0070】
制御部421は、SQLを実行する(ステップS57)。その後、制御部421は、SQLの実行内容を、記憶部422のログファイルに記憶する(ステップS58)。図13は、ログファイルのデータ構造の一例を示している。同図に示すように、ログファイルには、実行した日時と、イベント内容と、実行内容と、ユーザ名と、処理時間とが記憶されている。このログファイルを参照することにより、例えば、不正アクセス等を検出することができる。
【0071】
次に、制御部421は、SQLの実行結果を第1仮想サーバ13x1に送信する(ステップS59)。例えば、利用要求がデータの参照要求である場合には、参照結果のデータが、第1仮想サーバ13x1に送信され、それ以外の要求である場合には、処理が正常完了したことを示すデータが、第1仮想サーバ13x1に送信される。
【0072】
第1仮想サーバ13x1の制御部411は、実行結果を受信すると(ステップS60)、実行結果を所定の形式に整形し(ステップS61)、整形した実行結果を、クライアント端末装置1に送信する(ステップS62)。クライアント端末装置1の制御部101は、整形した実行結果を受信する(ステップS63)。
【0073】
[SQL文解析]
次に、ステップS56で実行されるSQL文解析について図9を参照して説明する。
【0074】
図9に示すように、まず、第2仮想サーバ13x2の制御部421は、受信したSQL文に暗号化すべきデータが含まれているか否かを判定する(ステップS81)。暗号化すべきデータが含まれていると判定すると(ステップS81:YES)、制御部421は、受信したセッションIDに基いてストレージ14xに記憶したセッションテーブルを参照し、記憶部422から鍵情報を取得する(ステップS82)。その後、制御部421は、取得した鍵情報に基いて、暗号化対象のデータを暗号化して、ストレージ14xに記憶したユーザテーブルやカードテーブルにデータを追加し、又はユーザテーブルやカードテーブルに記憶したデータの変更を行う(ステップS83)。
【0075】
図10は、ストレージ14xに記憶したユーザテーブルの一例を示している。同図に示すように、ユーザテーブルには、ユーザID,ユーザ名,パスワード,郵便番号,住所の各項目が記憶されている。また、各項目には、データ型及び制約が規定されている。この図において、制約に「encrypted」と規定されている「パスワード」については、データに暗号化が施されていることを示している。
【0076】
したがって、制御部421は、ステップS81の判定において、データの制約が「encrypted」となっている場合に、暗号化すべきデータであると判定する。例えば、ユーザテーブルに、新たに「Hanako」のデータを登録する場合、「パスワード」についてはそのままのデータでは、ストレージ14xに記憶したユーザテーブルを登録できないので、暗号化を施す必要がある。
【0077】
また、制御部421は、受信したSQL文に復号化すべきデータが含まれているか否かを判定する(ステップS84)。復号化すべきデータが含まれていると判定すると(ステップS84:YES)、制御部421は、セッションIDに基いてストレージ14xに記憶したセッションテーブルを参照し、記憶部422から鍵情報を取得する(ステップS85)。その後、制御部421は、取得した鍵情報に基いて、ストレージ14xに記憶したユーザテーブルやカードテーブルなどに含まれる復号化対象のデータを復号化する(ステップS86)。
【0078】
図11は、ストレージ14xに記憶したカードテーブルの一例を示している。同図に示すように、カードテーブルには、カードID,ユーザID,カード番号,有効期限の各項目が記憶されている。また、各項目には、データ型及び制約が規定されている。この図において、制約に「encrypted」と規定されている「カード番号」及び「有効期限」については、データに暗号化が施されていることを示している。
【0079】
したがって、制御部421は、ステップS84の判定において、データの制約が「encrypted」となっている場合に、復号化すべきデータであると判定する。例えば、ユーザ名「Taro」の有効期限が切れていないカード番号を取得する場合、「有効期限」は暗号化されているために、そのままのデータではカードテーブルを参照することができないので、復号化を施す必要がある。
【0080】
なお、データ削除の場合には、ステップS56のSQL文解析において、暗号化及び復号化のいずれの処理も行われず、その後のステップS57のSQLがそのまま実行される。
【0081】
以上のように、本実施形態に係る情報処理システムによれば、クラウドサービス提供会社に預けた秘匿情報を暗号化しておくことができる。クラウドサービスの利用者であるアプリケーション提供会社は、インターネットを介して接続されたサーバ上で動作する仮想マシンを利用してコンピュータ資源の導入コストや運用コストを低減しつつ、秘匿情報を含む情報をクラウドサービス提供会社に預けながらも、自社でもセキュリティ対策を行うことが可能となる。
【0082】
なお、上述した各実施形態の説明は本発明の一例であり、本発明は上述の実施形態に限定されることはない。このため、上述した各実施形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【符号の説明】
【0083】
1 クライアント端末装置
13x1 第1仮想サーバ
13x2,13X3 第2仮想サーバ
14 ストレージ
【特許請求の範囲】
【請求項1】
インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおいて、
前記第1仮想マシンは、
前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付手段と、
前記リクエストに応じた処理を前記第2仮想マシンに要求する要求手段と、
前記要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信手段と、を備え、
前記第2仮想マシンは、
前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得手段と、
前記第1仮想マシンが要求する前記リクエストに応じた処理が記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理手段と、
前記復号化されたデータを前記第1仮想マシンへ送信する送信手段と、を備えた
ことを特徴とする情報処理システム。
【請求項2】
前記記憶処理手段は、前記第1仮想マシンが要求する前記リクエストに応じた処理が前記記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得手段で取得した鍵情報に基づいて暗号化して前記記憶手段に記憶する、ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記第2仮想マシンは、
前記鍵取得手段で取得された鍵情報を記憶する鍵記憶手段と、
前記第1仮想マシンが前記クライアント端末装置と接続してからその接続を切断するまでの間、前記鍵情報を前記鍵記憶手段に記憶している状態を維持し、前記第1仮想マシンが前記クライアント端末装置との接続を切断したときに、前記鍵取得手段で取得した鍵情報を鍵記憶手段から削除する鍵記憶処理手段と、を備えたことを特徴とする請求項1または2に記載の情報処理システム。
【請求項4】
前記第1仮想マシンは、前記クライアント端末装置との通信が所定時間ないときに、前記クライアント端末装置との接続を切断することを特徴とする請求項3に記載の情報処理システム。
【請求項5】
前記第2仮想マシンのリソースの利用率が所定閾値以上となったとき、増設用の第2仮想マシンを前記サーバ上に追加して動作させ、前記第2仮想マシンのリソースの利用率が所定閾値未満となったとき、前記増設用の第2仮想マシンを前記サーバ上から削除することを特徴とする請求項1〜4のいずれか1項に記載の情報処理システム。
【請求項6】
前記第1仮想マシンの前記要求手段は、同一のクライアント端末装置からのリクエストに応じた処理の要求は、同一の第2仮想マシンに対して行うことを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記記憶手段に記憶するデータには、前記クライアント端末装置を使用しているユーザに関するデータを含む秘匿データを含み、
前記記憶処理手段は、前記秘匿データのみを暗号化して記憶することを特徴とする請求項1〜6のいずれか1項に記載の情報処理システム。
【請求項8】
前記クライアント端末装置と前記第1仮想マシンとの間の通信と、前記第1仮想マシンと前記第2仮想マシンとの間の通信とは、暗号化通信で行われることを特徴とする請求項1〜7のいずれか1項に記載の情報処理システム。
【請求項9】
前記第2仮想マシンは、前記第1仮想マシンから行われる前記リクエストに応じた処理の要求の履歴を記憶する履歴記憶手段を備えたことを特徴とする請求項1〜8のいずれか1項に記載の情報処理システム。
【請求項10】
インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおける情報処理方法において、
前記第1仮想マシンが、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付ステップと、
前記第1仮想マシンが、前記リクエストに応じた処理を前記第2仮想マシンに要求する要求ステップと、
前記第2仮想マシンが、前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得ステップと、
前記第2仮想マシンが、前記リクエストに応じた処理が記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得ステップで取得した鍵情報に基づいて暗号化して前記記憶手段に記憶し、前記リクエストに応じた処理が前記記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理ステップと、
前記第2仮想マシンが、前記復号化されたデータを前記第1仮想マシンへ送信する送信ステップと、
前記第1仮想マシンが、前記要求ステップで行った要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信ステップと、を有する
ことを特徴とする情報処理方法。
【請求項1】
インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおいて、
前記第1仮想マシンは、
前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付手段と、
前記リクエストに応じた処理を前記第2仮想マシンに要求する要求手段と、
前記要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信手段と、を備え、
前記第2仮想マシンは、
前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得手段と、
前記第1仮想マシンが要求する前記リクエストに応じた処理が記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理手段と、
前記復号化されたデータを前記第1仮想マシンへ送信する送信手段と、を備えた
ことを特徴とする情報処理システム。
【請求項2】
前記記憶処理手段は、前記第1仮想マシンが要求する前記リクエストに応じた処理が前記記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得手段で取得した鍵情報に基づいて暗号化して前記記憶手段に記憶する、ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記第2仮想マシンは、
前記鍵取得手段で取得された鍵情報を記憶する鍵記憶手段と、
前記第1仮想マシンが前記クライアント端末装置と接続してからその接続を切断するまでの間、前記鍵情報を前記鍵記憶手段に記憶している状態を維持し、前記第1仮想マシンが前記クライアント端末装置との接続を切断したときに、前記鍵取得手段で取得した鍵情報を鍵記憶手段から削除する鍵記憶処理手段と、を備えたことを特徴とする請求項1または2に記載の情報処理システム。
【請求項4】
前記第1仮想マシンは、前記クライアント端末装置との通信が所定時間ないときに、前記クライアント端末装置との接続を切断することを特徴とする請求項3に記載の情報処理システム。
【請求項5】
前記第2仮想マシンのリソースの利用率が所定閾値以上となったとき、増設用の第2仮想マシンを前記サーバ上に追加して動作させ、前記第2仮想マシンのリソースの利用率が所定閾値未満となったとき、前記増設用の第2仮想マシンを前記サーバ上から削除することを特徴とする請求項1〜4のいずれか1項に記載の情報処理システム。
【請求項6】
前記第1仮想マシンの前記要求手段は、同一のクライアント端末装置からのリクエストに応じた処理の要求は、同一の第2仮想マシンに対して行うことを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記記憶手段に記憶するデータには、前記クライアント端末装置を使用しているユーザに関するデータを含む秘匿データを含み、
前記記憶処理手段は、前記秘匿データのみを暗号化して記憶することを特徴とする請求項1〜6のいずれか1項に記載の情報処理システム。
【請求項8】
前記クライアント端末装置と前記第1仮想マシンとの間の通信と、前記第1仮想マシンと前記第2仮想マシンとの間の通信とは、暗号化通信で行われることを特徴とする請求項1〜7のいずれか1項に記載の情報処理システム。
【請求項9】
前記第2仮想マシンは、前記第1仮想マシンから行われる前記リクエストに応じた処理の要求の履歴を記憶する履歴記憶手段を備えたことを特徴とする請求項1〜8のいずれか1項に記載の情報処理システム。
【請求項10】
インターネットに接続されたサーバ上で動作する第1及び第2仮想マシンを備えた情報処理システムにおける情報処理方法において、
前記第1仮想マシンが、前記インターネットを介してクライアント端末装置からのリクエストを受け付ける受付ステップと、
前記第1仮想マシンが、前記リクエストに応じた処理を前記第2仮想マシンに要求する要求ステップと、
前記第2仮想マシンが、前記クライアント端末装置から前記第1仮想マシンを介して鍵情報を取得する鍵取得ステップと、
前記第2仮想マシンが、前記リクエストに応じた処理が記憶手段への所定データの登録要求であるとき、当該所定データを前記鍵取得ステップで取得した鍵情報に基づいて暗号化して前記記憶手段に記憶し、前記リクエストに応じた処理が前記記憶手段に記憶したデータの読み出しの要求であるとき、当該読み出し要求の対象である暗号化データを前記記憶手段から読み出して復号化する記憶処理ステップと、
前記第2仮想マシンが、前記復号化されたデータを前記第1仮想マシンへ送信する送信ステップと、
前記第1仮想マシンが、前記要求ステップで行った要求に対して前記第2仮想マシンから受信した情報を前記クライアント端末装置に送信する送信ステップと、を有する
ことを特徴とする情報処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−76505(P2011−76505A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−229105(P2009−229105)
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]