(58)【調査した分野】(Int.Cl.,DB名)
前記ホストシステム上の第2のゲストオペレーティングシステムに対する第2のデバイスとの第2のセキュアな接続についてのリクエストを前記ホストシステムの前記サポートシステムが受信することと、
前記第2のゲストオペレーティングシステムと関連付けられた第2の1組の認証情報を前記サポートシステムが取り出すことと、
前記サポートシステムが前記第2のゲストオペレーティングシステムの代わりに、前記第2の1組の認証情報を用いて、前記第2のデバイスとの第2のセキュアな接続を確立することであって、前記サポートシステムは、前記第2のゲストオペレーティングシステムの代わりに前記第2のセキュアな接続のエンドポイントとして機能することと、
前記サポートシステムが前記第2のセキュアな接続を介して前記第2のゲストオペレーティングシステムと前記第2のデバイスとの間の1つ以上の第2の通信を送信することと
をさらに含む、請求項1に記載のコンピュータで実行される方法。
前記サポートシステムはハイパーバイザであり、前記ホストシステムに取り付けられたハードウェアセキュリティモジュールであるか、前記ホストシステムへ取り付けられたネットワークインターフェースカード内に埋設されるか、または前記ホストシステム内の別個のプロセッサである、請求項1に記載のコンピュータで実行される方法。
1つ以上の通信を送信することは、前記1つ以上の通信をセキュアなプロトコルを用いて暗号化することをさらに含む、請求項1に記載のコンピュータで実行される方法。
ハードウェアセキュリティモジュールをさらに含み、前記ハードウェアセキュリティモジュールは、前記1つ以上のプロセッサと通信し、前記ハードウェアセキュリティモジュールは、暗号化サービスおよび復号化サービスを前記1つ以上のプロセッサのうち少なくとも1つへ提供し、前記ハードウェアセキュリティモジュールは、前記メッセージの復号化のために、前記サポートシステムにアクセス可能である、請求項10に記載のシステム。
前記サポートシステムはネットワークデバイスであり、前記サポートシステムは、前記1つ以上のゲストシステムと、前記セキュア通信の受信元であるネットワークとの間に配置される、請求項10に記載のシステム。
【発明を実施するための形態】
【0004】
以下の記載において、多様な実施形態について説明する。説明目的のため、実施形態の深い理解のために、特定の構成および詳細について説明する。しかし、当業者にとっては、これらの実施形態は特定の詳細無しに実行することが可能であることが明らかであろう。さらに、周知の特徴については、実施形態の説明を不明瞭にしないために、省略または簡略化する場合がある。
【0005】
本明細書中に記載および提案される技術は、ゲストオペレーティングシステム
の代わりであるサポートシステムにおけるセキュア通信を実行するためのシステムおよび方法を含む。例えば、仮想化環境中のサポートシステム(例えば、ハイパーバイザ)は、ホスト上の1つ以上のゲストオペレーティングシステムのうちのゲストオペレーティングシステム
の代わりに、通信について交渉、暗号化および復号化することができる。1つ以上のゲストオペレーティングシステムの通常の管理義務のうち最上位において、ハイパーバイザは、宛先コンピューティングシステムとゲストオペレーティングシステムとの間のメッセージも処理し得る。ハイパーバイザは、ゲストオペレーティングシステムを特定する認証情報を用いて、宛先コンピューティングシステムと共にセキュア通信チャンネルを生成および維持し得る。セキュア通信チャンネルが開いている間、ハイパーバイザは、関連付けられた鍵、秘密および他の状態情報を各セキュア通信セッションについて保存し得る。各入来通信または発出通信の経路設定を調査することにより、ハイパーバイザは、通信の処理に用いることが可能な状態(例えば、通信の暗号化または復号化)を整合させることができる。ハイパーバイザによるメッセージの処理により、セキュア通信をゲストオペレーティングシステムに対してトランスペアレントとすることができる。例えば、ゲストオペレーティングシステムは、ハイパーバイザによって取得されホストから出る前に暗号化される復号化メッセージを仮想ドライバを通じて送り得る。セキュア通信を提供することにより、ハイパーバイザは、ゲストオペレーティングシステムの秘密をゲストオペレーティングシステムの障害から保護し、また、ゲストオペレーティングシステムの構成の負荷を低減することができる。また、セキュア通信により、メッセージのインテグリティ、真正性および/または機密性の恩恵も得られる。
【0006】
図1に示す環境100の一例において、サポートシステム内におけるセキュア通信の実行を少なくとも1つの実施形態に従って行うことができる。物理的マシン104上のハイパーバイザ102は、ゲストオペレーティングシステム106にサービス提供し得る。ゲストオペレーティングシステム106は、他のコンピューティングデバイス(例えば、ラップトップ108、デスクトップ110およびモバイルデバイス112(例えば、携帯電話))とのメッセージの送受信を行い得る。例えば、
図2〜
図4は、セキュアメッセージの送信および/または受信に用いることが可能なプロセスの例示を示す。ハイパーバイザ102は、コンピューティングデバイス108、110および112とセキュアな接続について交渉し、各セキュアな接続と関連付けられた状態情報114を保存することができる。クリアテキストメッセージ120(またはゲストオペレーティングシステム106内において実行するより高レベルのアプリケーションによって暗号化されたメッセージ)は、ゲストオペレーティングシステム106によって送信され得、ハイパーバイザ102によって取得され得る。ハイパーバイザ102は、ゲストオペレーティングシステム106および宛先コンピューティングデバイスと関連付けられた状態情報114を用いて、セキュアメッセージ122をクリアテキストメッセージ120から作成し得る。その後、セキュアメッセージ122は、宛先コンピューティングデバイス108、110および112へと送られ得る。
【0007】
入来セキュアメッセージも、ハイパーバイザによって処理され得る。入来セキュアメッセージ122がハイパーバイザによって調査されることにより、宛先ゲストオペレーティングシステムと、ソースコンピューティングデバイス108、110および112とが決定され得る。決定された宛先およびソースを用いて、その後、ハイパーバイザ102は、関連付けられた状態情報114を用いて、クリアテキストメッセージ120の作成および/またはセキュアメッセージ122のインテグリティの確認を行い得る。その後、クリアテキストメッセージ120がゲストオペレーティングシステム106へと送られ得る。
【0008】
ハイパーバイザ102について、ゲストオペレーティングシステムのためのサポートシステムの一例として述べてきたが、他の構成も可能である(例えば、他のハードウェアおよび/またはソフトウェア実行)。ハイパーバイザは、ゲストオペレーティングシステムに対する仮想化サポートシステム(例えば、Xen(登録商標)システム中のDom0、Hyper−Vシステム中の親パーティション、および仮想化システムによって提供されるサービス)としてみなすことができる。一実施形態において、セキュリティコンポーネント(例えば、暗号プロセッサまたはハードウェアセキュリティモジュール(HSM))を用いることができる。複数のゲストオペレーティングシステムが106がHSMによってサポートされているかに応じて、ハイパーバイザは、HSMおよびゲストオペレーティングシステムとの通信を促進し得る。例えば、ハイパーバイザ102は、セキュアメッセージをゲストオペレーティングシステム宛先と共にHSMへと経路設定し得る。その後、HSMから受信されたクリアテキストメッセージがハイパーバイザ102によって受信され、ゲストオペレーティングシステム106へと経路設定され得る。別の実施形態において、サポートシステムは、仮想化ドライバであり得る。仮想化ドライバにより、ハッシュメッセージ認証コード(HMAC)および暗号化の利用を通じて、セキュアな接続の恩恵を得ることができる(例えば、メッセージインテグリティ、真正性および機密性)。例えば、ゲストオペレーティングシステムによる仮想化ドライバの使用は、セキュアな接続の使用を示し得る。ドライバは、HMACおよび暗号化発出メッセージに署名し得る。HMACは、メッセージインテグリティおよび機関を証明することができる。なぜならば、メッセージに署名できるのは秘密鍵の所有者だけであり、署名によってもハッシュ関数を通じてメッセージのインテグリティが確認されるからである。暗号化された後は、メッセージの秘密が合理的に保持されているものとみなすことができる。別の実施形態において、サポートシステム(単数または複数)により、ゲストシステム(例えば、オペレーティングシステムがコンピュータシステムのハードウェア上において直接実行しているコンピュータシステム)のためのセキュア通信が可能になる。例えば、サポートシステムは、コンピューティングリソースであり得、他のコンピューティングリソースであり得るゲストシステム
の代わりに、メッセージを受信する。コンピューティングシステムは、クリアテキストメッセージをゲストシステムから受信し、これらのメッセージをセキュアなプロトコルによって送信できるように処理する。受信されたメッセージを処理して、クリアテキストとして宛先ゲストシステムへと送る。1つの利点として、アクセスしている認証情報からゲストシステムを保護できる点がある。例えば、ユーザが認証情報へのアクセスを許可する設定を選択しない限り、ゲストシステムは認証情報へ直接アクセスすることはできない。いくつかの実施形態において、サービスプロバイダのみが認証情報へアクセスすることができ、ゲストシステムはアクセスすることができない。
【0009】
クリアテキストメッセージは信頼境界を残さないため、少なくともいくつかの状況において、メッセージがセキュアであるかについて検討する必要があり得る。信頼境界は、全てのサブシステムが信頼性を有するシステムにより、定義され得る。クリアテキストメッセージは、物理的マシン境界においてまたはHSMへの信頼性のある接続を介して作成されるため、クリアテキストメッセージは、信頼性のあるコンピューティングデバイス(例えば、ネットワークデバイス)の境界を残さない場合がある。ゲストオペレーティングシステムがサポートシステムよりもセキュアではないと見なされた場合(例えば、アプリケーションまたはシステムが常に展開している場合)、秘密は、実際はサポートシステムにおいてよりセキュアであるとみなされ得る。例えば、アプリケーションが脆弱性を持つ場合、この脆弱性を侵入者が利用して、ゲストオペレーティングシステム内へ侵入する場合がある。しかし、プライベート情報はハイパーバイザに保存されているため、侵入者はプライベート情報(例えば、秘密鍵)にアクセスすることはできない。なぜならば、プライベート情報は、ゲストオペレーティングシステムからはアクセスできないからである。いくつかの実施形態において、ゲストオペレーティングシステムにアクセスできるのは、ユーザのみであり得る。なぜならば、ハイパーバイザおよび他のコンピューティングリソースは、エンティティによって管理されている場合があるからである。エンティティが強化システムにおいてユーザよりも経験が長い場合、ユーザは、エンティティにプライベート情報およびセキュアな接続を管理してもらうことを望み得る。
【0010】
セキュアな通信の責任をゲストオペレーティングシステムからサポートシステム(例えば、ハイパーバイザ)へと移した場合、いくつかの利点が実現され得る。例えば、セキュア通信のオペレーティングシステムへの依存性を無くすことができる。セキュア通信をハイパーバイザによって実行することにより、多様なバージョンおよびブランドのゲストオペレーティングシステムがセキュア通信を利用することが可能になる。セキュア通信プロトコルのバージョンは、ハイパーバイザにおいて更新することができ、ゲストオペレーティングシステムへの影響も低減する。セキュア通信構成の複雑性増加または矛盾の可能性をほとんど引き起こすことなく、ゲストオペレーティングシステムを更新することができる。サポートシステムにおける実行により、自動化がより実際的になり得る。ハイパーバイザの構成は複数のホスト上において類似しているため、ゲストオペレーティングシステム間の差が同じではない場合でも、自動化は、ハイパーバイザをターゲットとするだけでよい。セキュア通信の自動構成(例えば、SSLおよび/またはTLS)が望ましい。なぜならば、このような自動構成により、サーバ管理者は、サーバの手動での構成を自身で学ばなくて済む。アプリケーションプログラミングインターフェース(API)自動化によるSSL/TLSのイネーブルおよび/または証明および他の秘密のリサイクルも、自動化によってイネーブルされ得る。自動化により、セキュア通信を最小の構成で開発者に対してよりトランスペアレントとすることができる。なぜならば、クリアテキストによって送られるメッセージは、(ゲストオペレーティングシステムではなく)サポートシステムによってセキュアされるからである。例えば、開発者は、通信チャンネル(例えば、ドライバ、アダプタ、IPアドレスまたはゲストオペレーティングシステム上において視認可能なポート)を用いて通信してセキュア通信をリクエストせよと、アプリケーションに命令するだけでよい。サポートシステム(例えば、ハイパーバイザ)は、チャンネルを通じてメッセージを受信し、アプリケーションによって指定された宛先デバイスとのセキュア通信をゲストオペレーティングシステム上において実行することができる。セキュア通信機能をサポート層へ移すことによる他の利点を非限定的に挙げると、任意のアプリケーション特有の再構成または変更(暗号アジリティ)の必要無くプロトコルをその場で更新できる点、オペレーティングシステムまたはアプリケーション特有のサポートを必要とすることなく任意のハードウェア暗号加速を標準的方法でレバレッジできる点がある。
【0011】
一実施形態において、
図1に示すようなホストマシン上のハイパーバイザは、ゲストオペレーティングシステム
の代わりに、セキュア通信プロセス200を通じて通信をセキュアにし得る。プロセス200のうち一部または全て(または本明細書中に記載の他の任意のプロセスまたはその変更例および/または組み合わせ)を、1つ以上のコンピュータシステムの制御下において行うことができる。これら1つ以上のコンピュータシステムは、実行可能な命令によって構成され、1つ以上のプロセッサ上において集合的に実行するか、ハードウェアによって集合的に実行するかまたはその組み合わせによって集合的に実行するコードとして実行することができる(例えば、実行可能な命令、1つ以上のコンピュータプログラムまたは1つ以上のアプリケーション)。コードは、コンピュータで読み出し可能な記憶媒体上に(例えば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で)保存することができる。コンピュータで読み出し可能な記憶媒体は、非一時的であり得る。
【0012】
ハイパーバイザは、入来メッセージ201を受信し得る。メッセージがさらなるセキュリティ処理を必要とする場合(202)、ハイパーバイザは、リクエストをゲストオペレーティングシステムおよび外部コンピューティングシステムとのセキュア通信のリクエストとして受信し得る(203)。そうではない場合、ハイパーバイザは、メッセージを未処理のまま転送し得る(222)。ハイパーバイザは、ゲストオペレーティングシステム
の代わりに、ゲストオペレーティングシステム認証情報(例えば、IPアドレス、鍵および/または証明情報)を用いてセキュアなプロトコルについて交渉し得る(204)。プロトコルおよびその状態(例えば、交換鍵、秘密および他の状態データ)に関連する情報は、保存され得(206)、ゲストオペレーティングシステムと関連付けられ得る。その後、メッセージは、外部コンピューティングシステムおよび/またはゲストオペレーティングシステムからハイパーバイザにより受信され得る(208)。メッセージが入来する(210)と、ハイパーバイザは、ゲストオペレーティングシステム宛先および外部コンピューティングシステムソースを決定し得る(212)。宛先およびソースを用いて、ハイパーバイザは、状態情報およびゲストオペレーティングシステム認証情報を参照して、入来メッセージを復号化(214)および確認し得る。確認により、メッセージのインテグリティおよび真正性を確認することができる。その後、クリアテキストメッセージがゲストオペレーティングシステムへと送られ得る(216)。通信が完了する(218)と、ハイパーバイザは、外部コンピューティングシステムへの通信リンクを終了させ、関連付けられた状態情報を除去することにより、通信を終了させ得る(220)。そうではない場合(218)、システムは、より多数のメッセージを待機し得る(208)。
【0013】
クリアテキスト発出メッセージがゲストオペレーティングシステムから受信される(210)と、ハイパーバイザは、ゲストオペレーティングシステムソースをメッセージの関連付けられた宛先と共に用いて、状態情報を取り出すことができる(224)。状態情報を用いて、ハイパーバイザは、HMACクリアテキスト発出メッセージの暗号化および/またはHMACクリアテキスト発出メッセージへの署名を行い得る(226)。その後、暗号化発出メッセージは、宛先へと送られ得る(228)。通信が完了する(218)と、ハイパーバイザは、セッションを終了させ得る(220)。そうではない場合、ハイパーバイザは、次のメッセージを待機し得る(208)。
【0014】
図2に示すプロセス200において、いくつかの利点を得ることができる。新規の入来セキュア通信メッセージは、ゲストオペレーティングシステムにとってトランスペアレントとなり得る。新規入来通信により、ハイパーバイザは、宛先ゲストオペレーティングシステムに接触する必要無く、リクエストの発行元と交渉することができる。ハイパーバイザが交渉を完了した後、セキュアメッセージを発行元とゲストオペレーティングシステムとの間において送達することができる。複数のゲストオペレーティングシステムに対し、各ゲストオペレーティングシステムについての認証情報へのアクセスを有する単一のハイパーバイザによってサービス提供をすることも可能である。各ゲストオペレーティングシステムは、自身の認証情報を持ち得る(例えば、証明、IPアドレス、鍵および他の個々の情報)。これらの認証情報は、ハイパーバイザによって制御される物理的ホストへ分解され得る。ハイパーバイザがゲストオペレーティングシステムと外界との間のゲートウェイとして機能するため、ハイパーバイザは、交渉に参加する外部システムによる構成または知識を必要とすることなく、ゲストオペレーティングシステムそれぞれの
代わりに交渉することができる。例えば、入来通信は、ハードウェアインターフェースを通じて進入し得る。ハイパーバイザは、ハードウェアインターフェースからの通信を受信し、通信がセキュア通信であると決定し得る。ゲストオペレーティングシステムの認証情報を用いて、ハイパーバイザは、ゲストオペレーティングシステムの役割を担って、セキュアな接続を生成および維持することができる。ハイパーバイザが常にゲストオペレーティングシステムへのルートの一部となっているため、セキュアな接続を用いたコンピューティングデバイスは、ハイパーバイザがゲストオペレーティングシステムの
代わりにメッセージを交渉およびセキュアにしていることを認識できない。
【0015】
ハイパーバイザの構成は、発出および入来するセキュアな接続について選択肢を選択することを含み得る。一実施形態において、管理者は、セキュアにすべき通信を決定するための複数の選択肢中から選択することができる(例えば、全接続をセキュアにすること、セキュアなポートおよび非セキュアなポートを定義すること、メッセージをセキュアなものとして取り扱うべきかを自動検出すること、セキュアなIPアドレスおよび非セキュアなIPアドレスを定義すること、セキュアなアダプタおよび非セキュアなアダプタを定義すること)。例えば、ポート22および80上のネットワークトラフィックは非セキュアなものとして取り扱うが、ポート443上のトラフィックはセキュアにされ得る。別の実施形態において、ゲストオペレーティングシステムは、2つのIPアドレスを持ち得る。IPアドレスのうち1つを用いて非セキュアメッセージを受信することができ、第2のアドレスは、セキュアな接続を形成および維持するようハイパーバイザに通知し得る。ハイパーバイザは、通信を明示的情報または暗示的情報によってセキュアにすべきか否かを決定し得る。一実施形態において、入来ネットワークトラフィックが暗示的に(例えば、検査により)定義され得る。例えば、入来トラフィックがプロトコル(例えば、SSL/TLS)を通じてセキュアにされたように見える場合、ハイパーバイザは、決定されたセキュアなプロトコルを用い得る。別の実施形態において、入来ネットワークトラフィックが明示的に定義され得る(例えば、指定されたポートまたはIPアドレス上のトラフィック)。
【0016】
図3を参照して、コンピュータシステム(例えば、
図1の物理的マシン104)によって実行することが可能なプロセスが図示される。一実施形態において、ホストマシン上のハイパーバイザは、受信プロセスを通じて受信されたセキュアメッセージを処理し得る(300)。ハイパーバイザは、入来メッセージを受信し得る(302)。メッセージがセキュアメッセージではない場合(304)、およびメッセージがセキュア通信制御メッセージである場合(306)、セキュア通信制御プロセスに追随することができる。制御メッセージの例を挙げると、ハンドシェーキングまたは再交渉があり得る。ハイパーバイザ制御プロセスは、交渉においてゲストオペレーティングシステム認証情報を用いる宛先ゲストオペレーティングシステムを決定することができる(308)。状態情報と関連付けられる送信者が決定され得る(310)。決定された情報を用いて、ハイパーバイザは、ゲストオペレーティングシステム
の代わりに、セキュアな接続についての変更または作成を送信者と共に交渉し得る(312)。新規状態情報および変更された状態情報を保存し、ゲストオペレーティングシステムおよび送信者と関連付けることができる(314)。別の例において、ハイパーバイザは、リクエストを傍受して、セキュアな接続を再確立することができる。保存された状態情報(例えば、セッション情報)を用いて、通信を再開することができる。
【0017】
メッセージがセキュアなメッセージである場合(304)、ハイパーバイザは、ゲストオペレーティングシステム宛先の決定(316)および送信者情報の決定(318)を行うことにより、メッセージ受信プロセスを開始することができる。宛先および送信者情報を用いて、ハイパーバイザは、関連付けられた状態情報を検索することができる。状態情報を用いて、ハイパーバイザは、メッセージの復号化(320)および/または確認を行い得る。その後、復号化メッセージは、ゲストオペレーティングシステムへと送られ得る(322)。復号化(322)および/または確認が失敗した場合、ハイパーバイザは、失敗に応答し得る(別のメッセージをリクエストすること、失敗を報告すること、接続を終了することおよび/または接続を再交渉すること)。
【0018】
メッセージがセキュアメッセージではないと決定された場合(304)、およびセキュア通信制御メッセージではないと決定された場合(306)、メッセージを非セキュアメッセージとして取り扱うことができる(324)。ユーザ設定に応じて、非セキュアメッセージを許可または非許可にすることができる。いくつかの実施形態において、全ての非セキュアメッセージが拒否され得る。他の実施形態において、非セキュアメッセージが、非セキュアメッセージ取り扱いプロセスへ付与され得る。例えば、ハイパーバイザは、ゲストオペレーティングシステム上の定義されたポートに対する全メッセージをセキュアにすることができ、他の定義されたポートは非セキュアメッセージを受信し得ると決定することができる。一実施形態において、規則をファイアウォールと協調させることにより、非セキュアメッセージルートを信頼性のあるネットワークの外部において遮断し、セキュアにされたメッセージはファイアウォールを通過することができる。
【0019】
ここで
図4を参照して、
図4は、コンピュータシステム(例えば、
図1の物理的マシン104)によって実行することが可能なプロセスを示す。
図4に示すように、ホストマシン上のハイパーバイザは、ゲストオペレーティングシステムからメッセージを受信した場合、セキュアな送信プロセス(例えば、送信プロセス400)を用い得る。ハイパーバイザは、発出メッセージをゲストオペレーティングシステムから受信し得る(402)。メッセージが現在のセキュアな接続の一部ではなく(406)、セキュアな接続を必要としている場合(408)、セキュアな接続について交渉することができる。例えば、セキュアな接続を確立または再交渉することが必要となり得る。ゲストオペレーティングシステムの認証情報を用いて、ゲストオペレーティングシステム
の代わりに、ハイパーバイザがセキュアな接続について交渉することができる(410)。接続の状態は、セキュアな接続のゲストオペレーティングシステムおよび受信者と関連付けられたものとして保存され得る(412)。動作後にセキュアな接続を作成したか(412)または現在の接続を有する(406)場合、状態情報を用いて、受信されたメッセージを暗号化することができる(414)。その後、暗号化メッセージを受信者へ送ることができる(416)。いくつかの実施形態において、非セキュアメッセージが許可され得、現在のセキュアな接続は持たず(406)、セキュアな接続も不要である(408)。非セキュアメッセージは、ユーザ設定に従ってこのように処理され得る(418)。一実施形態において、全ての通信をセキュアにする必要がある。任意の非セキュア通信が落下しかつ/またはエラーを発生し得る。
【0020】
ハイパーバイザは、メッセージの送信をセキュアにするかを決定し得る。ハイパーバイザは、セキュア通信の必要性を明示的または暗示的に決定し得る。例えば、接続が現在宛先コンピューティングシステムへ開かれている場合、当該宛先との通信は、セキュア通信を用いているものとして暗示的に推定される。別の例において、各入来メッセージを検査することにより、セキュアにみえるメッセージまたはセキュアにする必要があるメッセージがハイパーバイザによって処理され得る。いくつかの実施形態において、全ての発出通信がセキュアにされたと推定される。別の実施形態において、ゲストオペレーティングシステムは、新規のセキュア通信チャンネルをAPI呼を通じて宛先と共に開くようリクエストし得る。そうではない場合、通信は、通常の通信チャンネルを通じて行われ得る。他の実施形態において、ゲストオペレーティングシステムは、通信チャンネル(例えば、ドライバ、仮想アダプタ、IPアドレスまたはポート)を用いることにより、セキュア通信を明示的に選択し得る。
【0021】
よって、サポートシステム(例えば、ハイパーバイザ)は、複数のコンピューティングデバイスと、ホストマシン上の複数のゲストオペレーティングシステムとの間の接続をセキュアにし得る。セキュアな接続について、初期入来リクエストおよび初期発出リクエスト双方に対応することができる。ゲストオペレーティングシステムへ割り当てられた認証情報を用いて、サポートシステムは、セキュアな接続の生成および維持において、ゲストオペレーティングシステムの
代わりに機能することができる。サポートシステムは、通信チャンネルを用いて、ゲストオペレーティングシステムそれぞれについて、セキュアにすべき通信または通過させるべき通信を決定することができる。一実施形態において、サポートシステムは、メッセージヘッダ(例えば、HTTPヘッダ)を変更して、通信がセキュアな接続を通じて受信されたことを示すことができる。
【0022】
ハイパーバイザは、制御面によって管理され得るデータ面内のホストシステム内に常駐し得る。変更についてのリクエストが、制御面によって受信され得、データ面中のコンピューティングリソース上において行われ得る。例えば、
図5に示すように、ユーザは、コンピューティングリソース上のセキュア通信をイネーブルするよう、制御面にリクエストし得る。制御面は、ユーザからこのリクエストを受信し得る(502)。これに応答して、制御面は、鍵およびリクエストを生成し得、コンピューティングリソースについて証明を発行するようリクエストし得る(504)。証明情報は、取り付け、保存および必要な場合の使用のために、コンピューティングリソースのサポートシステム(例えば、ハイパーバイザ)へと送達され得る(506)。ユーザから提供された設定を用いて、セキュア通信がイネーブルされ得る(508)。
【0023】
ユーザによって指定された構成が、複数のチャンネル(例えば、API呼、アプリケーションおよびウェブサイト)を通じて受信され得る。サポートシステム中にセキュア通信を構成するためのウェブサイト600の例を
図6に示す。ウェブサイト600は、ウェブブラウザ602によってアクセスされ得る。このウェブサイトは、現在の構成情報(例えば、サーバの名称604、現在の証明情報606および現在のセキュアなプロトコル構成情報608)を含み得る。値と交換でセキュア通信を追加してくださいとの申し出610が、ユーザへのサービスとして提供され得る。ユーザは、セキュア通信サービスを構成するために、複数の選択肢612から選択することができる。図示の実施形態において、ユーザは、複数の選択肢から、セキュアにすべき通信を選択することができる。これらの選択肢を挙げると、「常にセキュア通信を用いる」、「特定のポートのみをセキュア通信に用いる」、「セキュア通信を自動検出する」、「特定のIPアドレスをセキュア通信のためまたは仮想Ethernet(登録商標)アダプタによって用いる」などがある。所望であれば、ユーザは、メッセージ(例えば、HTTPヘッダ)を変更することにより、通信がセキュアにされた旨の通知もリクエストし得る。その後、ユーザは、ボタンをクリックして、選択されたゲストオペレーティングシステム上のセキュア通信をイネーブルし得る(616)。図示の実施形態において、セキュア通信は、設定されている最中である。進捗インジケータ618は、自動設定プロセスの進捗を示し得、これにより、ハイパーバイザが選択されたゲストオペレーティングシステムの
代わりに通信をセキュアにすることが可能になる。
【0024】
ユーザがボタン616をクリックしてセキュア通信をイネーブルした後、制御面は、選択されたゲストオペレーティングシステムのためのセキュア通信を設定するプロセスを開始し得る。例えば、制御面は、ゲストオペレーティングシステムのためのセキュア通信を設定せよとのリクエストを受信し得る。制御面は、ゲストオペレーティングシステムの
代わりに、公開/プライベート鍵対を生成し得る。ゲストオペレーティングシステムについての識別情報および公開鍵を用いて、制御面は、ゲストオペレーティングシステムへデジタル証明を発行せよとリクエストする。その後、制御面は、セキュア通信設定情報(例えば、デジタル証明、鍵および他のセキュアな情報)を信頼性のあるネットワークを通じてハイパーバイザへと送達し得る。ハイパーバイザは、ゲストオペレーティングシステムの
代わりに、セキュア通信の作成に用いられるセキュアな設定情報を保存し得る。完了後、ハイパーバイザは、設定が完了した旨を制御面へ通知し得る。その後、制御面は、設定が完了し、セキュア通信をイネーブルすることができる旨をユーザに通知し得る。いくつかの実施形態において、このプロセスは、ボタン616のクリックによるさらなるユーザによる介入を必要とすることなく、実行され得る。他の実施形態において、ユーザは、介入することができる(例えば、ユーザのためにデジタル証明および/または鍵対情報を生成するのではなく、デジタル証明および/または鍵対情報をインポートする)。
【0025】
サービスプロバイダ712は、サポートシステムのイネーブルを通じてセキュア通信をイネーブルして、ゲストシステム706および728との通信を傍受およびセキュアにすることができる。ゲストシステムの例を挙げると、物理的コンピュータシステムのハードウェア上において直接実行するオペレーティングシステムを含む物理的コンピュータシステムである。サービスプロバイダ認証情報の生成および使用(700)の例を
図7に示す。顧客は、コンピューティングリソース702を通じて、顧客によって維持されているゲストシステム706上のセキュア通信をイネーブルするようリクエストし得る。制御面内のサーバ704は、セキュア通信をイネーブルせよとのリクエストを受信し得、ゲストシステム706の認証情報710を生成せよとのリクエストを生成し得る。制御面は、コンピューティングリソースをデータ面(例えば、ゲストシステム706)内において管理し得る。認証情報生成器708は、認証情報710を生成および設定し得る。この認証情報生成は、有効なデジタル証明を得るための証明機関と接触することを含み得る。認証情報710を受信すると、サーバ704は、ゲストシステム706のセキュア通信を担当するサポートシステムへ認証情報を送り得る。一実施形態において、サポートシステムは、ネットワークデバイスであり得る(例えば、ネットワークに取り付けられたセキュリティコンポーネント718)。
図7に示す実施形態において、ネットワークに取り付けられたセキュリティコンポーネント718はスイッチ716内に含まれるが、ネットワークに取り付けられたセキュリティコンポーネント718は、他の実施形態において独立型にしてもよい。ネットワークに取り付けられたセキュリティコンポーネント718は、認証情報710および構成を受信して、ゲストシステム706へ到着かつゲストシステム706から発出される通信をセキュアにし得る。例えば、入来セキュアメッセージ720は、ゲートウェイ721によってサービスプロバイダ712へと受信され得、内部ネットワーク714を通じてスイッチ716へと経路設定され得、これにより、セキュア通信サービスがゲストシステム706へと提供される。ネットワークに取り付けられたセキュリティコンポーネント718は、入来セキュアメッセージ720を復号化および/または確認し得、その結果、クリアテキストメッセージ722が得られる。その後、クリアテキストメッセージ722は、宛先ゲストシステム706へと送られ得る。ゲストシステム706からの発出メッセージは、ネットワークに取り付けられたセキュリティコンポーネント718によって傍受され得る。発出メッセージは、セキュアにされ(暗号化を含む)、その後内部ネットワーク714を通じてゲートウェイ721から送られ、インターネット724を通過して宛先システムに到着する。
【0026】
図7に示す別の実施形態において、セキュリティコンポーネント730は、ホストコンピュータ728(例えば、高度ネットワークインターフェースカード(NIC)またはセキュリティコプロセッシングハードウェア)中に常駐し得る。セキュリティコンポーネント730は、ホストコンピュータ728への入来通信を傍受し、入来セキュアメッセージ720を復号化することができる。復号化されたクリアテキストメッセージ722は、仮想化されていてもされていなくても、ホストコンピュータ728内のゲストシステムへと送られ得る。発出クリアテキスト通信も、傍受されてセキュアにされ(暗号化を含む)、その結果、セキュア通信が得られる。
【0027】
本開示の例示的実施形態は、以下の記載を鑑みて説明することができる。
1.セキュア通信を提供するための、コンピュータで実行される方法であって、実行可能な命令と共に構成された1つ以上のコンピュータシステムによる制御下において、ゲストオペレーティングシステムと関連付けられた1組の認証情報をハイパーバイザによって受信することと、ゲストオペレーティングシステム
の代わりであるハイパーバイザが1組の認証情報を用いて、コンピューティングデバイスとのセキュアな接続をセキュアなプロトコルによって確立することであって、ハイパーバイザは、セキュアな接続のローカルエンドポイントとして機能する、ことと、ゲストオペレーティングシステムからコンピューティングデバイスへの1つ以上の発出メッセージをハイパーバイザによって受信することと、ゲストオペレーティングシステム
の代わりであるハイパーバイザが、セキュアなプロトコルおよび1組の認証情報を用いて、ゲストオペレーティングシステムからコンピューティングデバイスへの1つ以上の発出メッセージを暗号化することであって、1つ以上の発出メッセージは、1つ以上の発出暗号化メッセージとなる、ことと、ハイパーバイザがセキュアなプロトコルを用いて発出暗号化メッセージをコンピューティングデバイスへと送信することと、コンピューティングデバイスからの1つ以上の入来暗号化メッセージをハイパーバイザによって受信することと、ゲストオペレーティングシステム
の代わりであるハイパーバイザにより、セキュアなプロトコルおよび1組の認証情報を用いて復号化を行って、コンピューティングデバイスからの1つ以上の入来暗号化メッセージを1つ以上の入来復号化メッセージとすることと、1つ以上の入来復号化メッセージをゲストオペレーティングシステムへと送信することと、を含む。
2.節1のコンピュータで実行される方法において、交渉することは、ゲストオペレーティングシステムおよびコンピューティングデバイスと関連付けられたものとしてプロトコル状態情報を保存することを含み、プロトコル状態情報は、ゲストオペレーティングシステムの識別情報およびコンピューティングデバイスを用いて取り出すことができ、プロトコル状態情報は、1つ以上の発出メッセージの暗号化時および1つ以上の暗号化入来メッセージの復号化時において用いられる。
3.節2のコンピュータで実行される方法において、復号化することは、1つ以上の暗号化入来メッセージを調査して、入来通信において参照されたコンピューティングデバイスおよびゲストオペレーティングシステムの識別情報を決定することと、ゲストオペレーティングシステムおよびコンピューティングデバイスの決定された識別情報を用いて、プロトコル状態情報を取り出すことと、取り出されたプロトコル状態情報を用いて、1つ以上の暗号化入来メッセージを復号化することとを含む。
4.節2のコンピュータで実行される方法において、暗号化は、ゲストオペレーティングシステムから1つ以上の発出メッセージを受信することであって、ゲストオペレーティングシステムは識別情報を有する、ことと、1つ以上の発出メッセージを調査して、1つ以上の発出メッセージにおいて参照されたコンピューティングデバイスの識別情報を決定することと、ゲストオペレーティングシステムおよびコンピューティングデバイスの識別情報を用いて、プロトコル状態情報を取り出すことと、取り出されたプロトコル状態情報を用いて、1つ以上の発出メッセージを暗号化することとを含む。
5.節1のコンピュータで実行される方法において、復号化することは、1つ以上の入来復号化メッセージをゲストオペレーティングシステムへと経路設定することであって、ゲストオペレーティングシステムは、ハイパーバイザによって管理される1組の2つ以上のゲストオペレーティングシステムに含まれる。
6.節1のコンピュータで実行される方法において、復号化することは、1つ以上の入来暗号化メッセージのインテグリティおよび真正性を確認した後、1つ以上の入来復号化メッセージをゲストオペレーティングシステムへ提供することを含む。
7.セキュア通信を提供するための、コンピュータで実行される方法であって、実行可能な命令と共に構成された1つ以上のコンピュータシステムによる制御下において、デバイスとのセキュアな接続について、ホストシステム上のゲストオペレーティングシステムへのリクエストをホストシステムのサポートシステムによって受信することであって、ホストシステムは、サポートシステムを有し、少なくとも1つのゲストオペレーティングシステムをホストするように構成される、ことと、ゲストオペレーティングシステムと関連付けられた1組の認証情報をサポートシステムによって受信することと、サポートシステムがゲストオペレーティングシステム
の代わりに1組の認証情報を用いて、デバイスとのセキュアな接続を確立することであって、サポートシステムは、ゲストオペレーティングシステムの代わりにセキュアな接続のエンドポイントとして機能する、ことと、サポートシステムがゲストオペレーティングシステムとデバイスとの間の1つ以上の通信をセキュアな接続を介して送信することであって、サポートシステムは、1つ以上の通信を処理して、セキュアな接続をイネーブルする、こととを含む。
8.節7のコンピュータで実行される方法において、方法は、ホストシステム上の第2のゲストオペレーティングシステムに対する第2のデバイスとの第2のセキュアな接続についてのリクエストをホストシステムのサポートシステムによって受信することと、第2のゲストオペレーティングシステムと関連付けられた第2の1組の認証情報をサポートシステムによって取り出すことと、サポートシステムが第2のゲストオペレーティングシステム
の代わりに第2の1組の認証情報を用いて、第2のデバイスとの第2のセキュアな接続を確立することであって、サポートシステムは、第2のゲストオペレーティングシステムの代わりに第2のセキュアな接続のエンドポイントとして機能する、ことと、サポートシステムから第2のセキュアな接続を介して第2のゲストオペレーティングシステムと第2のデバイスとの間の1つ以上の第2の通信を送信することとをさらに含む。
9.節7のコンピュータで実行される方法において、1組の認証情報を用いることは、サポートシステムがゲストオペレーティングシステム
の代わりに1組の認証情報を保存することであって、1組の認証情報は、ゲストオペレーティングシステムにとって読み出し不可能である、ことをさらに含む。
10.節7のコンピュータで実行される方法において、サポートシステムはハイパーバイザである。
11.節7のコンピュータで実行される方法において、1つ以上の通信を送信することは、1つ以上の通信をセキュアなプロトコルを用いて暗号化することをさらに含む。
12.節11のコンピュータで実行される方法において、セキュアなプロトコルは、トランスポート層セキュリティである。
13.節7のコンピュータで実行される方法において、サポートシステムは、ハードウェアセキュリティモジュールである。
14.節7のコンピュータで実行される方法において、サポートシステムは、ホストシステム内の別個のプロセッサである。
15.節7のコンピュータで実行される方法において、サポートシステムは、通信のうち少なくとも一部をセキュアな接続を介して暗号化する。
16.セキュアな接続をイネーブルするためのコンピュータシステムであって、1つ以上のプロセッサと、1つ以上のプロセッサによって実行可能な命令を含むメモリであって、命令により、コンピュータシステムは、少なくとも以下を行う:1組のゲストシステムを有するサポートシステムが、1組のゲストシステムからゲストシステムへ方向付けられたセキュア通信を受信することと、サポートシステムが、セキュア通信が方向付けられた1組のゲストシステムからゲストシステムを選択することと、ホストシステムが選択されたゲストオペレーティングシステムの識別情報を示す1組の認証情報を用いて復号化メッセージを選択されたゲストオペレーティングシステムへ提供することであって、復号化メッセージはセキュア通信から作成され、認証情報は、選択されたゲストシステムにとって利用不可能である、こと。
17.節16のシステムにおいて、システムは、ハードウェアセキュリティモジュールをさらに含み、ハードウェアセキュリティモジュールは、1つ以上のプロセッサと通信し、ハードウェアセキュリティモジュールは、暗号化サービスおよび復号化サービスを1つ以上のプロセッサのうち少なくとも1つへ提供し、ハードウェアセキュリティモジュールは、メッセージの復号化のために、サポートシステムにとってアクセス可能である。
18.節16のシステムにおいて、サポートシステムは、ハードウェアセキュリティモジュールである。
19.節16のシステムにおいて、サポートシステムはネットワークデバイスであり、サポートシステムは、1つ以上のゲストシステムと、セキュア通信の受信元であるネットワークとの間に配置される。
20.節17のシステムにおいて、復号化メッセージを提供することは、セキュア通信をハードウェアセキュリティモジュールへ送信することと、復号化メッセージをハードウェアセキュリティモジュールから受信することとをさらに含む。
21.節16のシステムにおいて、復号化メッセージを提供することは、セキュア通信を第1の通信チャンネルを通じて受信することであって、第1のチャンネルを通じた受信により、サポートシステムはセキュア通信を復号化し、サポートシステムは、第1のチャンネルを通じて受信された通信を復号化するように構成される、ことと、第2の通信チャンネルを通じて受信された1つ以上の通信をゲストシステムへと送ることであって、サポートシステムは、第2のチャンネルを通じて受信された通信を通過するように構成される、こととをさらに含む。
22.節16のシステムにおいて、復号化メッセージを提供することは、復号化メッセージが以前暗号化された旨を示すように、復号化メッセージをを変更することをさらに含む。
23.節16のシステムにおいて、1組の認証情報は、ゲストオペレーティングシステムに割り当てられた秘密鍵を含む。
24.1つ以上のコンピュータで読み出し可能な記憶媒体であって、記憶媒体上には、実行可能な命令が集合的に保存され、命令がコンピュータシステムの1つ以上のプロセッサによって実行されると、コンピュータシステムは、少なくとも以下を行う:ゲストシステムに対する、デバイスとのセキュアな接続についてのリクエストをサポートシステムが受信することと、ゲストシステムと関連付けられた1組の認証情報をサポートシステムが取り出すことであって、認証情報は、ゲストシステムによるアクセスから保護される、ことと、サポートシステムがゲストシステム
の代わりに1組の認証情報を用いてデバイスとのセキュアな接続を確立することであって、サポートシステムは、ゲストシステムの代わりにセキュアな接続のエンドポイントとして機能する、ことと、サポートシステムがセキュアな接続を介してゲストシステムとデバイスとの間の1つ以上の通信を送ること。
25.節24のコンピュータで読み出し可能な記憶媒体において、媒体は命令をさらに含み、命令がコンピュータシステムの1つ以上のプロセッサによって実行されると、コンピュータシステムは、少なくとも以下を行う:ゲストシステムへセキュアな接続サービスを付加せよとのリクエストを受信することであって、サービスは、ゲストシステム
の代わりに、サポートシステムを用いてセキュアな接続を管理する、ことと、ゲストシステムについての1組の認証情報の生成をリクエストすることと、サポートシステムが1組の認証情報を保存すること。
26.節25のコンピュータで読み出し可能な記憶媒体において、媒体は命令をさらに含み、コンピュータシステムの1つ以上のプロセッサによって命令が実行された場合、コンピュータシステムは、少なくとも以下を行う:セキュアな接続サービスを有料でゲストシステムへ追加するとの申し出をユーザへ送ることと、セキュアな接続サービスの付加の対価として料金をユーザから受領することであって、値の受領は、セキュアな接続サービスをゲストシステムへ付加せよとのリクエストを示す、こと。
27.節26のコンピュータで読み出し可能な記憶媒体において、サポートシステムは、ネットワークハードウェア、ネットワークカード、ドライバおよびハイパーバイザからなる群から選択される。
28.節24のコンピュータで読み出し可能な記憶媒体において、セキュアな接続についてのリクエストは、通信チャンネルの利用を通じて発生し、通信チャンネルを通じた接続は、セキュアにされるように構成される。
29.節28のコンピュータで読み出し可能な記憶媒体において、通信チャンネルは、ポート、仮想アダプタおよびソースIPアドレスからなる群から選択される。
30.節24のコンピュータで読み出し可能な記憶媒体において、サポートシステムは、ゲストシステムへ取り付けられたネットワークインターフェースカード内に埋設される。
【0028】
図8は、多様な実施形態による態様を実行するための例示的環境800の態様を示す。理解されるように、説明目的のためにウェブベースの環境を用いているが、多様な実施形態を実行するために適宜異なる環境も利用可能である。この環境は、電子クライアントデバイス802を含む。電子クライアントデバイス802は、リクエスト、メッセージまたは情報を適切なネットワーク804を介して送受信し、情報をデバイスのユーザへと搬送するように動作可能な任意の適切なデバイスを含み得る。このようなクライアントデバイスの例を挙げると、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子ブックリーダなどがある。ネットワークは、任意の適切なネットワークを含み得る(例えば、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または他の任意のそのようなネットワークまたはその組み合わせ)。このようなシステムに用いられるコンポーネントは、選択されたネットワークおよび/または環境の種類に少なくとも部分的に依存し得る。このようなネットワークを介した通信のためのプロトコルおよびコンポーネントは周知であり、本明細書中においては説明を控える。ネットワークを介した通信は、有線接続または無線接続ならびにその組み合わせによってイネーブルされ得る。この例において、ネットワークはインターネットを含む。なぜならば、環境は、リクエストの受信およびこの受信に応答してコンテンツ提供を行うウェブサーバ806を含むからである。しかし、他のネットワークの場合、類似の目的のための別のデバイスを用いることが当業者にとって明らかである。
【0029】
例示的環境は、少なくとも1つのアプリケーションサーバ808およびデータ記憶部810を含む。いくつかのアプリケーションサーバ、層または他の要素、プロセスまたはコンポーネントを連鎖または構成し、タスク(例えば、適切なデータ記憶部からのデータ入手)を行うように相互作用することが可能であることが理解される。本明細書中において用いられる「データ記憶部」という用語は、データの保存、アクセスおよび取り出しが可能な任意のデバイスまたはデバイスの組み合わせを指す(例えば、任意の標準的環境、分散環境またはクラスター環境における任意の組み合わせおよび数のデータサーバ、データベース、データ記憶装置、およびデータ記憶媒体)。アプリケーションサーバは、データ記憶部と必要に応じて一体化してクライアントデバイスのための1つ以上のアプリケーションの態様を実行し、データアクセスおよびアプリケーションのための事業論理のほとんどを取り扱う任意の適切なハードウェアおよびソフトウェアを含み得る。アプリケーションサーバは、アクセス制御サービスをデータ記憶部と協調して提供し、コンテンツ(例えば、ユーザへ転送すべきテキスト、グラフィック、音声および/またはビデオ)を生成することができる。このコンテンツは、ウェブサーバにより、HTML、XMLまたは本例においては別の適切なの構造化言語の形態でユーザへ提供され得る。全てのリクエストおよび応答ならびにクライアントデバイス802とアプリケーションサーバ808との間のコンテンツ送達の取り扱いは、ウェブサーバによって取り扱われ得る。ウェブサーバおよびアプリケーションサーバは不要であり、あくまで例示的なコンポーネントであることが理解される。なぜならば、本明細書中に記載される構造化コードは、本明細書中の別の箇所において述べた任意の適切なデバイスまたはホストマシン上において実行することが可能であるからである。
【0030】
データ記憶部810は、いくつかの別個のデータ表、データベースまたは特定の態様に関連するデータを保存する他のデータ保存機構および媒体を含み得る。例えば、図示のデータ記憶部は、生成側のコンテンツを提供するために用いられ得る、生成データ812およびユーザ情報816を保存する機構を含む。また、データ記憶部がログデータ814を保存する機構を含む様子が図示されている。ログデータ814は、報告、分析または他のそのような目的に用いられ得る。データ記憶部中に保存される必要があり得る他の多数の態様があり得る(例えば、ページ画像情報のためのものおよび正しい情報へのアクセスのためのものであって、上記に羅列した機構のうち任意のものに適宜保存することができるかまたはデータ記憶部810中のさらなる機構中に保存することができるもの)ことが理解される。データ記憶部810は、自身と関連付けられた論理を通じて、アプリケーションサーバ808からの命令を受信し、これに応答してデータの入手、更新または処理を行うように動作可能である。一例において、ユーザは、特定の種類のアイテムについて、検索リクエストを提出し得る。この場合、データ記憶部は、ユーザ情報にアクセスしてユーザの識別情報を確認することができ、カタログ詳細情報にアクセスして、その種類のアイテムについての情報を入手することができる。その後、この情報は、(ユーザデバイス802上のブラウザを介してユーザが視認することが可能なウェブページ上の結果リスティング中の情報として)ユーザへと返送され得る。特定の対象アイテムについての情報は、専用ページ内において視認してもよいし、あるいはブラウザの窓内において視認してもよい。
【0031】
各サーバは典型的には、一般的管理およびそのサーバの動作についての実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的には、命令を保存している、コンピュータで読み出し可能な記憶媒体を含む(例えば、ハードディスク、ランダムアクセスメモリ、リードオンリーメモリ)。これらの命令がサーバのプロセッサによって実行された場合、サーバは、意図される機能を行う。オペレーティングシステムの適切な実行およびサーバの一般的機能は公知であるかまたは市販されており、当業者であれば、特に本明細書中の開示内容を鑑みれば容易に実行することができる。
【0032】
一実施形態における環境は、分散型コンピューティング環境であり、通信リンクを介して1つ以上のコンピュータネットワークまたは直接接続を用いて相互接続されたいくつかのコンピュータシステムおよびコンポーネントを用いる。しかし、当業者であれば、このようなシステムは、より少数またはより多数の
図8に示すコンポーネントを有するシステムにおいても同様に機能することができることを理解する。よって、
図8中のシステム800の記載は本質的に例示的なものとしてとられるべきであり、本開示の範囲を制限するものではない。
【0033】
多様な実施形態は、広範な多様な動作環境においてさらに実行することができる。これらの動作環境は、いくつかの場合において、多数のアプリケーションのうち任意のものを作動させるために用いることが可能な1つ以上のユーザコンピュータ、コンピューティングデバイスまたは処理デバイスを含み得る。ユーザまたはクライアントデバイスは、多数の汎用パーソナルコンピュータのうち任意のものを含み得る(例えば、標準オペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ、ならびにモバイルソフトウェアを実行しかつ多数のネットワーキングプロトコルおよびメッセージングプロトコルをサポートすることが可能なセルラーデバイス、無線デバイスおよびハンドヘルドデバイス)。このようなシステムは、開発およびデータベース管理などの目的のための多様な市販のオペレーティングシステムおよび他の公知のアプリケーションのうち任意のものを実行する多数のワークステーションも含み得る。これらのデバイスは、他の電子デバイスも含み得る(例えば、ダミー端末、シンクライアント、ゲーミングシステム、およびネットワーク経由での通信が可能な他のデバイス)。
【0034】
ほとんどの実施形態においては、多様な市販のプロトコル(例えば、TCP/IP、OSI、FTP、UPnP、NFS、CIFSおよびAppleTalk)のうち任意のものを用いて通信をサポートする当業者にとって周知の少なくとも1つのネットワークが用いられる。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワークおよびこれらの任意の組み合わせであり得る。
【0035】
ウェブサーバを用いる実施形態において、ウェブサーバは、多様なサーバまたはミッドティアアプリケーションのうち任意のものを実行し得る(例えば、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、および事業アプリケーションサーバ)。サーバ(単数または複数)は、ユーザデバイスからのリクエストに応答して、例えば、任意のプログラミング言語(例えば、Java(登録商標)、C、C#またはC++、または任意のスクリプト記述言語(例えば、Perl、Python、またはTCL、ならびにこれらの組み合わせ))で記述された1つ以上のスクリプトまたはプログラムとして実行され得る1つ以上のウェブアプリケーションを実行することにより、プログラムまたはスクリプトを実行することもできる。サーバ(単数または複数)は、データベースサーバも含み得る(例を非限定的に挙げると、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)およびIBM(登録商標)から市販されているもの)。
【0036】
環境は、上記したような多様なデータ記憶部および他のメモリおよび記憶媒体を含み得る。これらは、多様な位置に常駐し得る(例えば、コンピュータのうち1つ以上に対してローカルな(かつ/または常駐する)記憶媒体またはネットワーク上のコンピュータのうち任意のものまたは全てから遠隔位置にあるもの)。特定の1組の実施形態において、情報は、当業者にとって周知のストレージエリアネットワーク(「SAN」)中に常駐し得る。同様に、コンピュータ、サーバまたは他のネットワークデバイスに起因する機能を行うための任意の必要なファイルをローカルかつ/またはリモートに適宜保存することができる。システムがコンピュータ化されたデバイスを含む場合、そのようなデバイスはそれぞれ、バスを介して電気的に接続されたハードウェア要素を含み得、これらの要素は、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、ならびに少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタまたはスピーカ)を含み得る。このようなシステムは、1つ以上の記憶装置も含み得る(例えば、ディスクドライブ、光学記憶デバイスおよび固体記憶デバイス(例えば、ランダムアクセスメモリ(「RAM」)またはリードオンリーメモリ(「ROM」)、およびリムーバブル媒体デバイス、メモリカード、フラッシュカード)。
【0037】
このようなデバイスは、コンピュータで読み出し可能な記憶媒体リーダー、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス)、および上述したようなワーキングメモリも含み得る。コンピュータで読み出し可能な記憶媒体リーダーは、コンピュータで読み出し可能な記憶媒体と接続することもできるし、あるいは、このような記憶媒体を受容するように構成することもできる。この記憶媒体は、リモート記憶装置、ローカル記憶装置、固定記憶装置および/またはコンピュータで読み出し可能な情報を一時的にかつ/またはより永続的に収容、保存、送信および取り出すためのリムーバブル記憶装置ならびに記憶媒体を示す。システムおよび多様なデバイスは典型的には、多数のソフトウェアアプリケーション、モジュール、サービスまたは少なくとも1つのワーキングメモリデバイス内に含まれる他の要素も含む(例えば、オペレーティングシステムおよびアプリケーションプログラム(例えば、クライアントアプリケーションまたはウェブブラウザ))。別の実施形態は、上記と異なる多数の変更例を含み得ることが理解される。例えば、カスタマイズされたハードウェアを用いてもよいし、かつ/または、特定の要素をハードウェア、ソフトウェア(例えば、ポータブルソフトウェア(例えば、アプレット))あるいは両方において実行してもよい。さらに、他のコンピューティングデバイス(例えば、ネットワーク入力/出力デバイス)への接続も利用可能である。
【0038】
コードまたはコードの一部を収容する記憶媒体およびコンピュータで読み出し可能な媒体は、当該分野において公知のまたは利用される任意の適切な媒体を含み得る(例えば、記憶媒体および通信媒体(例を非限定的に挙げると、情報(例えば、コンピュータで読み出し可能な命令、データ構造、プログラムモジュールまたは他のデータ)の保存および/または送信のための任意の方法または技術で実行される揮発性媒体および不揮発性媒体、リムーバブル媒体および非リムーバブル媒体がある(例えば、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル汎用ディスク(DVD)または他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶装置、あるいは所望の情報の保存に用いることができかつシステムデバイスによるアクセスが可能な他の任意の媒体))。本明細書中に記載の開示内容および教示内容に基づいて、当業者であれば、多様な実施形態を実行するための他の様態および/または方法が存在することを理解する。
【0039】
よって、本明細書および図面は、限定的なものとしてではなく、例示的なものとしてみなされるべきである。しかし、本明細書および図面において、特許請求の範囲中に記載のような多様な実施形態のより広い意図および範囲から逸脱することなく、多様な変更例および改変例が可能であることが明らかである。
【0040】
他の変更例が、本開示の意図の範囲内にある。よって、開示の技術は多様な変更例および代替的構造が可能であるものの、その特定の例示の実施形態を図面中に示し、詳細に上述してきた。しかし、特許請求の範囲を開示の特定の形態(単数または複数)に限定することは意図されておらず、逆に、本発明は、全ての変更例、代替的構造および添付の特許請求の範囲中に定義されるような多様な実施形態の意図および範囲内に収まる均等例を網羅することが理解される。
【0041】
開示の実施形態を記述する文脈において(特に、以下の特許請求の範囲の文脈において)「a」および「an」および「the」などの用語が用いられた場合、本明細書中に明記無き限りまたは文脈と矛盾しない限り、単数および複数双方を網羅するものとして解釈されるべきである。「comprising」、「having」、「including」および「containing」などの用語は、他に明記無き限り、オープンエンドの用語として解釈されるべきである(すなわち、「〜を非限定的に含む」という意味の用語として解釈されるべきである)。「接続される」という用語は、途中に中断が有る場合でも、部分的または全体的に含まれるか、取り付けられるか、または共に接合されているものとして解釈されるべきである。本明細書中、値の範囲について言及する場合、本明細書中に他に明記無き限り、あくまで各別個の値が範囲内に収まることを個別に述べるための手短な方法を意図したものであり、各別個の値を本明細書中においてあたかも個々に言及しているかのように援用する。本明細書中に記載される全ての方法は、本明細書中に他に明記無き限りまたは文脈と明らかに矛盾しない限り、任意の適切な順序で行うことができる。本明細書中、任意の例および全ての例または例示的な言い回し(例えば、「例えば、など」)が用いられた場合、ひとえに多様な実施形態をより深く例示するために用いたものであり、他に明記無き限り、特許請求の範囲を限定するものではない。本明細書中、いかなる言い回しも、本発明の実行にとって必須の特許請求の範囲に記載されていない要素として解釈されるべきではない。
【0042】
本発明者らが本発明を実行するための最適な態様を含む本開示の好適な実施形態について、本明細書中において記載してきた。当業者であれば、上記の記載を読めば、これらの好適な実施形態の変更例を理解する。本発明者らは、当業者がこのような変更例を適切に用いることを期待し、本発明者らは、本発明が本明細書中に具体的に記載した様態と異なる様態で実行されることが可能であることを意図する。よって、本発明は、特許請求の範囲に記載される内容について、適用可能な法律によって許される全ての改変例および均等例を含む。さらに、その全ての可能な変更例における上記の要素の任意の組み合わせは、本明細書中に他に明記無き限りまたは文脈と明らかに矛盾しない限り、本発明によって包含される。
【0043】
本明細書中引用される全ての参考文献(例えば、公開文献、特許出願および特許)を、本明細書中全体において各参考文献が個々に具体的に記載されているかのように、ここに参考により援用する。