説明

プロキシ証明書の生成によるグリッド相互認証

【課題】 プロキシ証明書の生成によるグリッド相互認証のための方法、装置、及びプログラムを提供すること。
【解決手段】 リソース・コンピュータのグリッド内にある二次リソースの相互認証のための機構が提供される。一次リソースがグリッド・コンピューティング・ジョブをオフロードしたいと願うとき、一次リソースは、プロキシ証明書要求をユーザ・マシンに送る。プロキシ証明書要求に応答して、ユーザ・マシンは、二次リソースとの間の認証を行う。二次リソースとの間の認証がうまくいった場合、ユーザ・マシンは、有効プロキシ証明書を生成し、戻す。次に、一次リソースは、二次リソースとの間の相互認証を行う。二次リソースとの間の認証に失敗した場合、ユーザ・マシンは、無効プロキシ証明書を生成し、戻す。無効プロキシ証明書であるために、一次リソースと二次リソースとの間の相互認証に失敗する。一次リソースは、別の二次リソースを選択し、ユーザ・マシンとの間の相互認証をパスするリソースが見つかるまでプロセスを繰り返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理に関し、具体的には、グリッド・コンピューティングに関する。さらに具体的には、本発明は、プロキシ証明書の生成によるグリッド相互認証のための方法、装置、及びプログラムを提供する。
【背景技術】
【0002】
グリッド・コンピューティングは、複数のマシンが1つの大きなスーパーコンピュータとして機能するように、ネットワーク全体にわたって中央演算処理ユニット(CPU)リソースを共有するというものである。ピア・ツー・ピア型コンピューティング又は分散型コンピューティングとも呼ばれるグリッド・コンピューティングは、いずれかのマシンのCPUに未使用容量がある場合、それを、要求される処理ジョブ全体に割り振ることを可能にする。
【0003】
大企業においては、いずれの時点においても、何百又は何千ものデスクトップ・マシンがアイドル状態で置かれている可能性がある。CPUは、ユーザが画面を読んでおり、マシンと対話していない場合でも、アイドル状態にあると考えられることがある。他のコンピューティング・リソースは、一日の様々な時間にアイドル状態とすることができる。例えば、データベース・サーバのクラスタ又はそのサブセットは、例えば、真夜中等の営業時間外において未使用状態とすることができる。好適例として、ニューヨーク・シティの営業時間のピーク時には、インドではほとんどの人が就寝中であると思われる。したがって、一日のうちのいずれの時間においても未使用状態の処理サイクルが存在し、これらを大きな計算問題のために用いることができる。
【0004】
所定のユーザは、グリッド技術を用いて多くの計算を要するジョブを実行することができる。例えば、ユーザは、ヒューマンゲノム研究プロジェクトのような、バイオテクノロジーを行うことができる。ジョブは、2日間実行することができる任意のプログラムであってもよく、又は単にリソース・マシンに一日のうちの時間帯を要求することができる任意のプログラムであってもよい。しかしながら、グリッド・コンピューティングは、一般に、極めて多くの計算を要するジョブのために用いられる。ユーザは、ジョブをリソース・マシンに送り、夜間又は週末に帰宅することができる。次に、リソース・マシンは、ジョブを処理し、結果をユーザに戻す。
【0005】
ジョブを実行するために、ユーザは、グリッド内の特定のマシンを選択することができる。ユーザは、ユーザが信頼する特定のマシンのことを知ることができる。例えば、ユーザは、セキュリティ・パッチ、セキュア・オペレーティング・システム等を更新した、未使用の容量を有するマシンのことを知ることができる。代替的に、ユーザは、ジョブを処理するためにホスト(リソース)を選択するグリッド・スケジューラに、ジョブを実行依頼することができる。ユーザがジョブをグリッド・スケジューラに送る場合、ユーザは、ジョブを正しいホストを送ることに関してスケジューラを信頼していると推定される。
【発明の開示】
【発明が解決しようとする課題】
【0006】
もちろん、グリッド・コンピューティングが、セキュリティ上の問題をもたらすことがある。例えば、リソース・マシンに過度の負荷がかかることがある。この場合、一次リソース・マシンは、作業を二次リソース・マシンにオフロードすることができる。ジョブを実行依頼したユーザが、必ずしも二次リソース又はホストを信頼できるわけではない。ジョブのIP、実行中のプログラム、入力データ、出力データ等は全て、信頼できない二次ホストでも利用できる。このことは、セキュリティに関して、ユーザに不当なリスク又はコストをもたらすことになる。しかしながら、一次リソースにジョブが実行依頼されると、ユーザは、グリッド内のどのマシンが最終的にジョブを処理するかを制御するわけではない。したがって、ジョブを処理する二次リソース・マシンに、所望のセキュリティ・レベル又は必要なセキュリティ・レベルが十分にないことがある。マシンが、ウィルス攻撃又はスパイウェアに弱いオペレーティング・システムを有することがある。或いは、二次リソースに悪意があり、グリッド・ジョブの結果又はインターネット・プロトコル(IP)アドレスを盗む可能性もある。
【課題を解決するための手段】
【0007】
本発明の一態様によると、請求項1に記載されるような方法が提供される。
【0008】
本発明の一態様によると、請求項9に記載されるような装置が提供される。
【0009】
本発明の一態様によると、請求項10に記載されるようなコンピュータ・プログラムが提供される。
【0010】
本発明は、従来技術の欠点を認識し、リソース・コンピュータのグリッド内にある二次リソースの相互認証のための機構を提供する。ユーザを識別するために、多くの場合、グリッドのセキュリティには、証明書及びプロキシ証明書が使用される。一次リソース・マシンがグリッド・コンピューティングのジョブをオフロードしたいと願うとき、一次リソース・マシンは、プロキシ証明書要求をユーザ・マシンに送る。プロキシ証明書要求に応答して、ユーザ・マシンは、二次リソース・マシンとの間の認証ジョブを行う。二次リソース・マシンとの間の認証がうまくいった場合、ユーザ・マシンは、有効プロキシ証明書を生成し、戻す。次に、一次リソース・マシンは、プロキシ証明書を用いて二次リソース・マシンとの間の相互認証を行う。しかしながら、二次リソースとの間の認証がうまくいかなかった場合、ユーザ・マシンは、無効プロキシ証明書を生成し、戻す。次に、一次リソース・マシンは、二次リソース・マシンとの間の相互認証を行うが、無効プロキシ証明書であるために認証に失敗する。次に、一次リソースは、別の二次リソースを選択し、ユーザ・マシンとの間の相互認証をパスするリソースが見つかるまでプロセスを繰り返す。
【発明を実施するための最良の形態】
【0011】
本発明の特徴であると考えられる新規な特徴は、添付の特許請求の範囲に述べられる。しかしながら、本発明自体、及び使用の好ましい形態、その更なる目的及び利点は、添付の図面と共に読むときに、次の例証となる実施形態の詳細な説明を参照することによって、最も良く理解されるであろう。
【0012】
本発明は、リソース・コンピュータのグリッド内にある二次リソースの相互認証のための方法、装置、及びコンピュータ・プログラムを提供する。データ処理装置は、本発明の種々の態様を実行するために多数のコンピューティング装置を用いる分散型データ処理システムとすることができる。したがって、次の図1−図3は、本発明を実施することができるデータ処理環境の例示的な図として提供される。図1−図3は例示的なものに過ぎず、本発明を実施することができる環境に関して、何らかの制限を明示的に又は黙示的に認めることを意図するものではないことが認識されるべきである。本発明の精神及び範囲から逸脱することなく、示される環境に対する多くの変更を行うことができる。
【0013】
ここで図を参照すると、図1は、本発明を実施することができるデータ処理システムのネットワークの図形表示を示す。ネットワーク・データ処理システム100は、本発明を実施することができるコンピュータのネットワークである。ネットワーク・データ処理システム100は、ネットワーク・データ処理システム100内で互いに接続される種々の装置とコンピュータとの間の通信リンクを提供するのに用いられる媒体であるネットワーク102を含む。このネットワーク102は、有線通信リンク、無線通信リンク、又は光ファイバ・ケーブルのような接続を含むことができる。
【0014】
示される例において、サーバ104が、格納ユニット106と共にネットワーク102に接続される。さらに、クライアント108、110、及び112が、ネットワーク102に接続される。これらのクライアント108、110、及び112は、例えば、パーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。示される例において、サーバ104は、クライアント108−112に、ブート・ファイルのようなデータ、オペレーティング・システム画像、及びアプリケーションを提供する。クライアント108、110、及び112は、サーバ104に対するクライアントである。ネットワーク・データ処理システム100は、付加的なサーバ、クライアント、及び図示されていない他の装置を含むこともできる。
【0015】
より特定的には、ネットワーク・データ処理システム100は、コンピューティング・システムのグリッドであるグリッド120を含む。グリッド・コンピューティングは、複数のマシンが1つの大きなスーパーコンピュータとして機能するように、ネットワークにわたって中央演算処理ユニット(CPU)リソースを共有するというものである。ピア・ツー・ピア型コンピューティング又は分散型コンピューティングとも呼ばれるグリッド・コンピューティングは、いずれかのマシンのCPUに未使用容量がある場合、それを、要求される処理ジョブ全体に割り振ることを可能にする。
【0016】
図1に示されるように、グリッド120は、クライアント・コンピュータとサーバ・コンピュータの組み合わせで形成することができる。未使用のリソースをもつどのようなコンピュータ・システムも、ネットワーク・データ処理システム100を通してグリッド・ジョブを受け入れるように構成することができる。グリッド120内のグリッド・コンピュータは、世界中を領域とするものであり、例えば、制限なく、私的ネットワーク、ダイアルアップ接続、インターネット専用接続、ゲートウェイ・サービス等によりネットワーク102に接続することができる。
【0017】
所定のユーザは、図1のクライアント108のようなワークステーションを用いて、グリッド120内のリソース・マシンの1つにジョブを実行依頼することによって、グリッド技術を用いて多くの計算を要するジョブを実行することができる。次に、リソース・マシンは、ジョブを処理し、その結果をユーザに戻す。ユーザは、ジョブを実行するために、グリッド120内の特定のマシンを選択することができる。代替的に、ユーザは、ジョブを処理するためにホスト(リソース)を選択するグリッド・スケジューラに、ジョブを実行依頼することができる。例えばサーバ104等のサーバといった、ネットワーク・データ処理システム100内のマシン上に、グリッド・スケジューラを組み込むことができる。ユーザがジョブをグリッド・スケジューラに送る場合、ユーザは、ジョブを正しいホストに送ることに関してスケジューラを信頼していると推定される。
【0018】
示される例において、ネットワーク・データ処理システム100は、相互通信のために、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)のプロトコル一式を用いる、ネットワーク及びゲートウェイの世界的な集合をもつ、ネットワーク102を有するインターネットである。インターネットの心臓部は、主要なノードすなわちホスト・コンピュータ間の高速データ通信ラインのバックボーンであり、これは、データ及びメッセージを送る、何千もの商業用、政府機関用、教育用、その他のコンピュータ・システムにより構成される。当然のことながら、ネットワーク・データ処理システム100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)又は広域エリア・ネットワーク(WAN)等の多数の異なるタイプのネットワークとして実施することができる。図1は、例示的なものであることを意図し、本発明のための構造的な制限を意図するものではない。
【0019】
図2を参照すると、本発明の好ましい実施形態による、図1のサーバ104等のサーバとして実装できるデータ処理システムのブロック図が示される。データ処理システム200は、システム・バス206に接続された複数のプロセッサ202及び204を含む、対称型マルチプロセッサ(SMP)システムとすることができる。代替的に、単一のプロセッサ・システムを用いることもできる。ローカル・メモリ209とのインターフェースを提供するメモリ・コントローラ/キャッシュ208もまた、システム・バス206に接続される。I/Oバス・ブリッジ210が、システム・バス206に接続され、I/Oバス212とのインターフェースを提供する。示されるように、メモリ・コントローラ/キャッシュ208及びI/Oバス・ブリッジ210を統合することができる。
【0020】
I/Oバス212に接続された周辺機器相互接続(peripheral component interconnect、PCI)バス・ブリッジ214は、PCIローカル・バス216とのインターフェースを提供する。多数のモデムをPCIローカル・バス216に接続することができる。一般的なPCIバスの実装は、4つのPCI拡張スロット又は増設コネクタに対応する。増設コネクタを通してPCIローカル・バスに接続されたモデム218及びネットワーク・アダプタ220によって、図1のクライアント108−112との間の通信リンクを提供することができる。
【0021】
付加的なPCIバス・ブリッジ222及び224は、付加的なPCIローカル・バス226及び228のためにインターフェースを提供し、それにより付加的なモデム又はネットワーク・アダプタをサポートすることができる。このように、データ処理システム200は、多数のネットワーク・コンピュータへの接続を可能にする。示されるように、メモリ・マップ・グラフィックス・アダプタ230及びハードディスク232を、直接的に又は間接的に、I/Oバス212に接続することもできる。
【0022】
当業者であれば、図2に示されるハードウェアを変更できることを理解するであろう。例えば、光ディスク・ドライブ等といった他の周辺装置を、示されるハードウェアに加えて又はその代わりに用いることもできる。示される例は、本発明に対する構造的な制限を暗示することを意図するものではない。
【0023】
図2に示されるデータ処理システムは、例えば、Advanced Interactive Executive、AIX)オペレーティング・システム又はLINUXオペレーティング・システムを作動させる、New York、Armonk所在のInternational Business Machines Corporation社の製品である、IBM eServer pSeriesシステムとすることができる。
【0024】
ここで図3を参照すると、本発明を実施することができる、データ処理システムのブロック図が示される。データ処理システム300は、本発明のプロセスを実施するコード又は命令を配置することができる、図1のクライアント108のようなコンピュータの一例である。示される例において、データ処理システム300は、ノース・ブリッジ・メモリコントローラ・ハブ(MCH)308及びサウス・ブリッジ入力/出力(I/O)コントローラ・ハブ(ICH)310を含むハブ・アーキテクチャを用いる。プロセッサ302、メイン・メモリ304、及びグラフィックス・プロセッサ318は、MCH308に接続される。グラフィックス・プロセッサ318は、例えば、高速グラフィック・ポート(accelerated graphics port、AGP)によりMCHに接続することができる。
【0025】
示される例において、ローカル・エリア・ネットワーク(LAN)アダプタ312、音声アダプタ316、キーボード及びマウス・アダプタ320、モデム322、読み出し専用メモリ(ROM)324、ハードディスク・ドライブ(HDD)326、CD−ROMドライバ330、ユニバーサル・シリアル・バス(universal serial bus、USB)ポート及び他の通信ポート332、及びPCI/PCIe装置334を、ICH310に接続することができる。PCI/PCIe装置は、例えば、イーサネット・アダプタ、増設カード、ノートブック型コンピュータのためのPCカード等を含むことができる。PCIは、カードバス・コントローラを使用するが、PCIeはこれをしようしない。ROM324は、例えば、フラッシュ・バイナリ入力/出力システム(BIOS)とすることができる。ハードディスク・ドライブ326及びCD−ROMドライブ330は、例えば、integrated drive electronics(IDE)又はserial advanced technology attachment(SATA)インターフェースを用いることができる。スーパーI/O(SIO)装置336をICH310に接続することもできる。
【0026】
オペレーティング・システムは、プロセッサ302上で稼動し、図3のデータ処理システム300内の種々のコンポーネントを調整し、かつ、制御するように用いられる。オペレーティング・システムは、Microsoft Corporation社から入手可能な、Windos XPのような商業的に入手可能なオペレーティング・システムとすることができる。Javaのようなオブジェクト指向プログラミング・システムは、オペレーティング・システムとの組み合わせで作動し、データ処理システム300上で実行されているJavaプログラム又はアプリケーションからオペレーティング・システムへの呼び出しを行うようにすることができる。「Java」は、Sun Microsystems Inc.社の登録商標である。オペレーティング・システム、オブジェクト指向プログラミング・システム、及びアプリケーション又はプログラムに対する命令は、ハードディスク・ドライブ326のような格納装置上に配置され、プロセッサ302による実行のためにメイン・メモリ304にロードすることができる。本発明のプロセスは、例えば、メイン・メモリ304、メモリ324のようなメモリ内に、或いは1つ又は複数の周辺装置326及び330内に配置することができる、コンピュータにより実施される命令を用いて、プロセッサ302によって実行される。
【0027】
当業者であれば、図3のハードウェアは、実施によって変更できることを認識するであろう。フラッシュ・メモリ、等価な不揮発性メモリ、或いは、光ディスク・ドライブ等といった他の内部ハードウェア又は周辺装置を、図3に示されるハードウェアに加えて又はこれの代わりに用いることができる。また、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用することもできる。データ処理システム300はまた、PDAの形態をとることに加えて、タブレット型コンピュータ又はラップトップ型コンピュータとすることもできる。
【0028】
グリッド内のリソース・マシンに過度の負荷がかかることがある。この場合、一次リソース・マシンは、作業を二次リソース・マシンにオフロードすることができる。図4は、一次リソースから二次リソースにグリッド・ジョブをオフロードするためのプロセスを示す。ユーザは、一次リソースとの間の認証を行う。一般的に、この認証は、ユーザがジョブをホストに送るという単純な事実によって行われる。ユーザがホストを信頼しなかった場合、ユーザは、ジョブをホストに送らなかったであろう。つまり、ユーザは最初に一次リソースを信頼するか、又はグリッド・スケジューラを信頼し、グリッド・ジョブを適切な一次リソースに割り当てる。リソースは、ユーザの識別(ID)を認証リスト又はグリッドマップ・ファイルと比較することによって、ユーザを認証する。グリッド内のリソースの各々は、そのリソース上でジョブを実行する権限を有する各ユーザのID及び他の属性を格納する認証リスト又はグリッドマップ・ファイルを保持する。多くの場合、グリッドの管理者は、リストが変更される度に、リストをグリッド内の全てのリソースに押しつける。ユーザのプロキシ証明書と一次リソースのホスト証明書を交換することによる相互認証の後、ユーザ410は、グリッド・ジョブを一次リソース420に送る。
【0029】
図4に示されるように、作動1において、一次リソース420は、ユーザ・マシン410との間の相互認証を行う。例えば、X509証明書のようなデジタル証明書を用いて、相互認証を行うことができる。ユーザ410は、例えば、証明書「/home/<user>/.globus/user_cert.pem.」を格納することができる。
【0030】
一般的なデジタル証明書は、例えば、(C=US、O=IBM、OU=AIX、CN=JohnUser)のような識別名によって、ユーザのようなエンド・エンティティを説明する。この例において、デジタル証明書は、国(C)、組織(O)、組織のユニット(OU)、及び一般名(common name:CN)を識別する。デジタル証明書はまた、エンド・エンティティの公開鍵も含み、信頼できる証明書認証機関(certificate authority:CA)の秘密鍵によって署名される。したがって、デジタル証明書を受け取ったときには、信頼できるCAの署名を検証して、そのCAが、ユーザの識別を適切に点検したものと信用することができる。
【0031】
作動2において、一次リソース420は、グリッド・ジョブが二次リソース430にオフロードされるべきであることを判断することができる。処理リソースが十分に使用されていない状態ではない場合、一次リソースは、グリッド・ジョブをオフロードすることができる。例えば、一次リソースは、該リソースが意図する作業負荷を受け取り、該一次リソースがもはや余分のCPUリソースをもたないようにすることができる。
【0032】
作動3において、一次リソースは、証明書要求をユーザ・マシンに送る。次に、ユーザ・マシン410は、二次リソースとの間の認証に用いるために、一次リソースについてのプロキシ証明書を自動的に生成する。これらのグリッド・ジョブ又はプログラムは、何日間も稼動できるので、これらのプロセスを自動化することが好ましい。言い換えれば、これらの要求を可能にするために、又は拒否するために、ユーザがいることは実際的ではない。次に、ユーザ・マシン410は、例えば、「/tmp/X509proxycert.」のようなプロキシ証明書を格納することができる。
【0033】
プロキシ証明書の識別名は、添付される「/proxy,」のような文字列を有する証明書と類似している。例えば、(C=US、O=IBM、OU=AIX、CN=JohnUser/proxy)。プロキシ証明書は、CAによってではなく、証明書によって署名される。言い換えれば、CAは証明書に署名し、証明書がプロキシ証明書に署名する。プロキシ証明書が遠隔のグリッド・リソースによって受け取られたとき、一連の信頼は、次のとおりである。すなわち、1)自分は信頼できるCAを信頼し、信頼できるCAは、証明書に署名する、2)したがって、自分は証明書を信頼する、3)自分は証明書を信頼するので、その証明書によって署名されたプロキシ証明書を信頼する、4)したがって、自分はプロキシ証明書を信頼する。
【0034】
作動4において、ユーザ・マシン410は、プロキシ証明書を一次リソース420に送る。その後、一次リソースは、ジョブを二次リソース430に実行依頼する。次に、作動5において、相互認証が行われ、二次リソース430は、ジョブを実行するためにプロキシを介してユーザを認証する。
【0035】
図4に示されるプロセスの利点は、プロキシ証明書に短い寿命が割り振られることである。一般的な寿命は、例えば、24時間とすることができる。プロキシ証明書は、グリッド・ジョブを伴う。したがって、プロキシ証明書に障害が起きた場合、該プロキシ証明書は、短期間内に終了し、よって潜在的損害が制限される。また、必要に応じて付加的なプロキシ証明書を自動的に生成できるので、グリッド・ジョブは、ユーザが注意を払わなくても、グリッド全体にわたって移動することができる。このことにより、グリッド内でグリッド・ジョブがどのように分散されても、ユーザが、シングル・サインオンを有するグリッド・ジョブを実行依頼することが可能になる。言い換えれば、ユーザは、単にグリッド・ジョブを実行依頼し、立ち去ることができる。
【0036】
一次リソースは、1組の基準に基づいて二次リソースを選択することができる。この点で、一次リソースは、二次リソースとの間の認証の形態をとることができる。しかしながら、ジョブを実行依頼したユーザが、必ずしも二次リソース又はホストを信頼できるとは限らない。したがって、ジョブを処理する二次リソース・マシンは、たとえ必要であっても、所望のセキュリティ・レベルを欠いていることがある。マシンが、ウィルス攻撃又はスパイウェアに弱いオペレーティング・システムを有することもある。或いは、二次リソースに悪意があり、グリッド・ジョブの結果又はインターネット・プロトコル(IP)アドレスを盗むこともある。
【0037】
図5は、本発明の好ましい実施形態による、プロキシ証明書の生成によるグリッド相互認証を用いて、グリッド・ジョブを一次リソースから二次リソースにオフロードするためのプロセスを示す。プロキシ証明書の生成によるグリッド相互認証の背後にある前提は、次の情報、すなわち、
1.ジョブが一次リソースを超えてオフロード又は分散されようとしていること、
2.このことが起こる正確な時点、
3.二次リソースの生成されたIPアドレス
を確認するために、相互認証プロセスを利用すること又は遮断することである。
【0038】
この情報を用いて、自動化プロセスを実行しているユーザ・マシンは、二次リソースについての詳細な情報を発見し、二次リソースがジョブを実行する権限を有するかどうかを決定し、必要に応じて二次認証プロセスを終了又は妨害し、よって、相互認証機構を形成する。
【0039】
ユーザ510は、グリッド・ジョブを一次リソース520に送る。ユーザは、一次リソースとの間の認証を行う。つまり、ユーザは、最初に一次リソースを信頼するか又はグリッド・スケジューラを信頼し、グリッド・ジョブを適切な一次リソースに割り当てる。作動1において、一次リソース520は、ユーザ・マシン510との間の相互認証を行う。例えば、X509証明書のようなデジタル証明書を用いて相互認証を行うことができる。
【0040】
作動2において、一次リソース520は、グリッド・ジョブが二次リソース530にオフロードされることになることを判断することができる。作動3において、一次リソースは、証明書要求をユーザ・マシンに送る。ユーザ・マシン510は、一次リソース520によってオフロードされる現在のグリッド・ジョブに関係なく、一次リソース520からの証明書要求に応答して、作動3Aにおける認証ジョブを、新しく識別された二次リソース530に直接実行依頼(directly submit)する。
【0041】
この認証ジョブは、二次リソース・マシン上で実行され、二次リソースのセキュリティ要素を識別する。例えば、認証ジョブは、二次リソースが最新のオペレーティング・システム及びセキュリティ更新を有するかどうか、二次リソースが信頼できるオペレーティング・システムを有するかどうか、このリソース上で同じく実行されている何らかの矛盾するグリッド・ジョブがあるかどうか等を判断することができる。認証ジョブによって集められたセキュリティ情報は、実施によって変更できる。例えば、あるユーザは、二次リソースが1つの実行中に行っているジョブを列挙したいと願うかもしれないが、あるユーザは、チャネルの変換により重要な情報及び/又は戦略的な情報が漏れるのを回避するために、このコマンドをディスエーブルにしたリソースの方をより好むことがある。
【0042】
ユーザ・マシンは、例えば、ブラックリスト及び/又はホワイトリストを有するといった、より静的な判断を用いて相互認証を行うことができる。ユーザ・マシンは、グリッドの仮想組織によって信頼されるあらゆるリソースを信頼するが、あまり監視されていない営業時間後の特定のリソースを信頼しないといった、規則を用いることができる。上述のように、二次リソースは、ユーザIDを認証リストと比較することによってユーザを認証するので、二次リソースを用いる認証は、相互的なものである。
【0043】
二次リソースとの間の相互認証がうまくいった場合、ユーザ・マシン510は、二次リソースとの間の認証に用いるために、一次リソースについての有効プロキシ証明書を生成する。しかしながら、二次リソースが認証プロセスに失敗した場合、ユーザ・マシン510は、無効プロキシ証明書を生成する。
【0044】
作動4において、ユーザ・マシン510は、プロキシ証明書を一次リソース520に送る。その後、一次リソース520は、ジョブを二次リソース530に実行依頼する。次に、作動5において相互認証が行われ、二次リソース530は、ジョブを実行するためにプロキシを介してユーザを認証する。しかしながら、一次リソース520が、二次リソース530に無効プロキシ証明書を示した場合、二次リソースは、ユーザがグリッド・ジョブを実行することを許容しない。一次リソースは、このエラーを確かめ、次に、別の二次リソースを探してジョブをオフロードし、作動2に戻る。このように、ユーザ・マシンは、二次リソースに、有効プロキシ証明書又は無効プロキシ証明書の生成によってグリッド・ジョブを受諾又は拒否させることによって、二次リソースとの間の相互認証を行う。
【0045】
ここで図6を参照すると、本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のマシンを示すブロック図が示される。ユーザ・マシン610は、認証モジュール612、証明書生成モジュール614、及び認証モジュール612を含む。一次リソース・マシン620は、認証モジュール622及び作業負荷均衡化モジュール624を含む。二次リソース・マシン630は、認証モジュール632及び作業負荷均衡化モジュール634を含む。
【0046】
一次リソース・マシン620がユーザ・マシン610からグリッド・ジョブを受け取ると、一次リソース・マシン620は、認証モジュール622を用いて、ユーザ・マシンとの間の認証を行う。一次リソース・マシン620は、該一次リソース・マシン内の認証モジュール622及び二次リソース・マシン内の認証モジュール632を通して、二次リソース630との間の相互認証を行うこともできる。
【0047】
作業負荷均衡化モジュール624を用いて、一次リソース・マシン620は、作業を他のリソースにオフロードすることを決定することができる。例えば、一次リソース・マシン620は、ユーザ・マシン610から二次リソース・マシン630に受け取ったグリッド・ジョブをオフロードすることができる。同様に、次に、二次リソース・マシン630は、作業負荷均衡化モジュール634を用いて、その同じグリッド・ジョブを別のリソース・マシン(図示せず)にオフロードすることができる。
【0048】
一次リソース・マシン620が、ユーザ・マシン610から二次リソース・マシン630に受け取ったグリッド・ジョブをオフロードすることを決定すると、一次リソース・マシン620は、証明書要求をユーザ・マシン610に送る。本発明の例示的な実施形態によると、ユーザ・マシン610は、一次リソース・マシン620からの証明書要求に応答して、二次リソース・マシン630との間の相互認証を行う。
【0049】
証明書要求は、例えば、IPアドレス等によって、二次リソース・マシンを識別することができる。代替的に、ユーザ・マシン610は、クエリ・グリッド・ジョブを一次リソース・マシン620に実行依頼し、二次リソースのIPアドレスについて尋ねることができる。次に、ユーザ・マシン610は、認証モジュール614を用いて、二次リソース・マシンに基づいた認証判断を行う。ユーザ・マシン610は、認証ジョブを、新しく識別された二次リソース630に実行依頼することができる。この認証ジョブは、二次リソース・マシン上で実行され、二次リソースのセキュリティ要素を識別することが可能である。認証モジュール614はまた、例えば、ブラックリスト及び/又はホワイトリストを有するといった、より静的な判断を用いて相互認証を行うこともできる。
【0050】
二次リソース・マシン630との相互認証がうまくいった場合、ユーザ・マシン610は、証明書生成(certificate generation)モジュール616を用いて有効プロキシ証明書を生成する。しかしながら、二次リソース・マシン630が認証プロセスに失敗した場合、ユーザ・マシン610は、証明書生成モジュール616を用いて無効プロキシ証明書を生成する。
【0051】
ユーザ・マシン610は、プロキシ証明書を一次リソース・マシン620に送る。その後、一次リソース・マシン620は、ジョブを二次リソース・マシン630に実行依頼する。次に、認証モジュール622と認証モジュール632との間で相互認証が行われ、二次リソース630は、ジョブを実行するためにプロキシを介してユーザを認証する。しかしながら、一次リソース・マシン620が二次リソース・マシン630に無効プロキシ証明書を示した場合、二次リソース・マシンは、ユーザのグリッド・ジョブの実行を許容しない。一次リソース・マシンは、このエラーを確かめ、作業負荷均衡化(workload balancing)モジュール624を用いて、別の二次リソースを探し、ジョブをオフロードする。
【0052】
図7は、本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のリソース・マシンの作動を示すフローチャートである。プロセスは、グリッド・ジョブの処理要求を受け取ったときに始まり、ユーザ・マシンとの間の相互認証が行われる(ブロック702)。次に、認証がうまくいったかどうかについての判断がなされる(ブロック704)。認証がうまくいかなかった場合、プロセスはグリッド・ジョブを否認し(ブロック706)、終了する。
【0053】
ブロック704において認証がうまくいった場合、プロセスはユーザを認証し(ブロック708)、認証がうまくいったかどうかの判断がなされる(ブロック710)。認証がうまくいかなかった場合、プロセスはグリッド・ジョブを否認し(ブロック706)、終了する。
【0054】
ブロック710において認証がうまくいった場合、プロセスは、ユーザ・マシンからグリッド・ジョブを受け取り(ブロック712)、グリッド・ジョブをオフロードするかどうかの判断がなされる(ブロック714)。グリッド・ジョブが一次リソース・マシンによって処理される前のどの時点においても、ブロック714における判断をなすことができる。グリッド・ジョブがオフロードされない場合、プロセスはグリッド・ジョブを実行し(ブロック716)、プロセスは終了する。
【0055】
ブロック714において、グリッド・ジョブがオフロードされる場合、プロセスは、グリッド・ジョブを送るための二次リソース・マシンを選択する(ブロック718)。次に、プロセスは、証明書要求(certificate request)をユーザ・マシンに送り(ブロック720)、ユーザ・マシンからプロキシ証明書を受け取る(ブロック722)。その後、プロセスは、プロキシ証明書を用いて、二次リソースとの間の相互認証(mutual authentication)を行う(ブロック724)。
【0056】
二次リソースとの間の認証がうまくいったかどうかの判断がなされる(ブロック726)。認証がうまくいかなかった場合、プロセスはブロック718に戻り、別の二次リソースを選択する。しかしながら、ブロック726において二次リソースとの間の認証がうまくいった場合、プロセスは、グリッド・ジョブを二次リソースにオフロードし(ブロック728)、プロセスは終了する。
【0057】
図8は、本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のユーザ・マシンの作動を示すフローチャートである。プロセスは、グリッド・ジョブがグリッド・コンピューティング・システム内のリソースに実行依頼されたときに始まる。プロセスは、一次リソースを識別し(ブロック802)、一次リソースとの間の相互認証を行う(ブロック804)。認証がうまくいったかどうかについての判断がなされる(ブロック806)。認証がうまくいかなかった場合、プロセスはブロック802に戻り、別の一次リソースを識別する。
【0058】
ブロック806において認証がうまくいった場合、プロセスは、一次リソースとの間の認証を行う(ブロック808)。次に、一次リソースとの間の認証がうまくいったかどうかの判断がなされる(ブロック810)。認証がうまくいかなかった場合、プロセスはブロック802に戻り、別の一次リソースを識別する。
【0059】
ブロック810において認証がうまくいった場合、プロセスは、グリッド・ジョブを一次リソースに送る(ブロック812)。終了条件が存在するかどうかについての判断がなされる(ブロック814)。例えば、ユーザ・マシンが停止されるとき、又はユーザ・マシン上でグリッド・コンピューティング・ソフトウェアが閉じられるとき、終了条件が存在する。グリッド・ジョブについての結果を受け取ったときも、終了条件が存在する。終了条件が存在する場合、プロセスは終了する。
【0060】
しかしながら、ブロック814において終了条件が存在しない場合、一次リソースから証明書要求を受け取ったかどうかについての判断がなされる(ブロック816)。証明書要求を受け取っていない場合、プロセスはブロック814に戻り、終了条件が存在するかどうかを判断する。
【0061】
ブロック816において一次リソースから証明書要求を受け取った場合、プロセスは二次リソースとの間の認証を行う(ブロック818)。次に、二次リソースとの間の認証がうまくいったかどうかについての判断がなされる(ブロック820)。ブロック820において認証がうまくいった場合、プロセスは、有効プロキシ証明書を生成し(ブロック822)、他の場には、プロセスは、無効プロキシ証明書を生成する(ブロック824)。ブロック822及び824の一方において有効プロキシ証明書又は無効プロキシ証明書(valid or invalid proxy certification)が生成された後、プロセスは、プロキシ証明書を一次リソースに戻す。その後、プロセスはブロック814に戻り、終了条件が存在するかどうかを判断する。
【0062】
このように、本発明は、プロキシ証明書の生成によるグリッド相互認証のための機構を提供することによって、従来技術の欠点を解決するものである。グリッド内のリソース・マシンは、ユーザIDを認証リスト又はグリッドマップ・ファイルと比較することによって、ユーザを認証することができる。本発明は、グリッド・リソース・マシン上のグリッド・ソフトウェアを変えることなく、依然として既存のグリッド相互認証及び一方向の認証の流れの中で働く、グリッド・ジョブの分散の認証を制御するように、ユーザ・マシンを構成することを可能にする。本発明の機構は、グリッド・ユーザがジョブを実行依頼し、立ち去ることを可能にしながら、シングル・サインオン・パラダイムを維持する。
【0063】
本発明は、完全に機能するデータ処理システムに関連して説明されたが、当業者であれば、本発明のプロセスは、コンピュータ可読媒体の命令形態及び種々の形態で配布できること、及び、本発明は、配布を行うために実際に用いられる信号保持媒体の特定形態に関係なく、等しく適用できるものと認識するであろうという点は重要なことである。コンピュータ可読媒体の例は、フロッピィ・ディスク、ハードディスク・ドライブ、RAM、CD−ROM、DVD−ROM等の書込み可能媒体、及び、デジタル通信リンク及びアナログ通信リンク、例えばラジオ周波数及び光波伝送等の伝送形態といった伝送形態を用いる有線通信リンク又は無線通信リンク等の伝送型媒体を含む。コンピュータ可読媒体は、特定のデータ処理システムにおいて実際に用いるために復号化される、符号化フォーマットの形態をとることができる。
【0064】
本発明の説明は、例示及び説明の目的で提示されるものであり、包括的であること、又は、本発明を開示される形態に限定することを意図するものではない。多くの変更及び変形が当業者には明らかであろう。実施形態は、本発明の原理、実用的な用途を最適に説明するために、また、他の当業者が、意図する特定の用途に適したように種々の修正を行って種々の実施形態で実施する場合に本発明を理解できるように、選択され、説明されたものである。
【図面の簡単な説明】
【0065】
【図1】本発明を実施することができる、データ処理システムのネットワークの図形表示を示す。
【図2】本発明の好ましい実施形態による、サーバとして実装することができるデータ処理システムのブロック図である。
【図3】本発明を実施することができる、データ処理システムのブロック図である。
【図4】グリッド・ジョブを一次リソースから二次リソースにオフロードするためのプロセスを示す。
【図5】本発明の好ましい実施形態による、プロキシ証明書の生成によるグリッド相互認証を用いて、グリッド・ジョブを一次リソースから二次リソースにオフロードするためのプロセスを示す。
【図6】本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のマシンを示すブロック図である。
【図7】本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のリソース・マシンの作動を示すフローチャートである。
【図8】本発明の例示的な実施形態による、グリッド・コンピューティング・システム内のユーザ・マシンの作動を示すフローチャートである。

【特許請求の範囲】
【請求項1】
グリッド・コンピューティング・システムにおけるグリッド・ジョブのオフロードを認証する方法であって、前記方法が、
グリッド・ジョブを一次グリッド・リソースに実行依頼するステップと、
前記一次グリッド・リソースからの証明書要求に応答して、前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するステップと、
前記二次グリッド・リソースとの間の認証を行うステップと、
前記グリッド・リソースとの間の認証に失敗した場合、無効プロキシ証明書を生成し、前記無効プロキシ証明書を前記一次グリッド・リソースに送るステップと
を含む方法。
【請求項2】
前記グリッド・リソースとの間の認証に失敗した場合、有効プロキシ証明書を生成するステップと、
前記有効プロキシ証明書を前記一次グリッド・リソースに送るステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
グリッド・ジョブを一次グリッド・リソースに実行依頼するステップが、前記グリッド・ジョブをグリッド・スケジューラに実行依頼するステップを含み、前記グリッド・スケジューラは、一次グリッド・リソースを選択し、前記グリッド・ジョブを前記一次グリッド・リソースに送る、請求項1又は請求項2に記載の方法。
【請求項4】
前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するステップは、クエリ・グリッド・ジョブを前記一次グリッド・リソースに実行依頼し、前記二次グリッド・リソースの識別について尋ねるステップを含む、請求項1、請求項2、又は請求項3に記載の方法。
【請求項5】
前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するステップは、前記証明書要求において前記二次グリッド・リソースのアドレスを検知するステップを含む、請求項1から請求項4までのいずれか1項に記載の方法。
【請求項6】
前記二次グリッド・リソースとの間の認証を行うステップは、認証ジョブを前記二次グリッド・リソースに実行依頼するステップを含む、請求項1から請求項5までのいずれか1項に記載の方法。
【請求項7】
前記認証ジョブは、前記二次グリッド・ジョブのセキュリティ要素を識別するステップ、該二次グリッド・リソースのオペレーティング・システムの少なくとも1つ、該二次グリッド・リソース上にインストールされたセキュリティの更新、該二次リソースが信頼できるオペレーティング・システムを有するかどうか、及び、該二次グリッド・リソース上にいずれかの競合するグリッド・ジョブが実行されているかどうかを判断するステップ、或いは、所定のコマンドが該二次グリッド・リソース上でディスエーブルにされるかどうかを判断するステップのうちの1つを含む、請求項6に記載の方法。
【請求項8】
前記二次グリッド・リソースとの間の認証を実行するステップは、該二次グリッド・リソースがブラックリスト内に含まれるかどうかを判断するステップ、該二次グリッド・リソースがホワイトリスト内に含まれるかどうかを判断するステップ、或いは、1つ又は複数の規則を用いて該二次グリッド・リソースとの間の認証を行うステップのうちの1つを含む、請求項1から請求項7までのいずれか1項に記載の方法。
【請求項9】
グリッド・コンピューティング・システムにおいてグリッド・ジョブのオフロードを認証するための装置であって、前記装置は、
グリッド・ジョブを一次グリッド・リソースに実行依頼するための手段と、
前記一次グリッド・リソースからの証明書要求に応答して、前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するための手段と、
前記二次グリッド・リソースとの間の認証を行うための手段と、
前記グリッド・リソースとの間の認証に失敗した場合、無効プロキシ証明書を生成し、前記無効プロキシ証明書を前記一次グリッド・リソースに送るための手段と
を備える装置。
【請求項10】
グリッド・コンピューティング・システムにおいてグリッド・ジョブのオフロードを認証するため、コンピュータに、
グリッド・ジョブを一次グリッド・リソースに実行依頼するための命令と、
前記一次グリッド・リソースからの証明書要求に応答して、前記グリッド・ジョブを実行することになる二次グリッド・リソースを識別するための命令と、
前記二次グリッド・リソースとの間の認証を行うための命令と、
前記グリッド・リソースとの間の認証に失敗した場合、無効プロキシ証明書を生成し、前記無効プロキシ証明書を前記一次グリッド・リソースに送るための命令と
を実行させるコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2007−531093(P2007−531093A)
【公表日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2007−504415(P2007−504415)
【出願日】平成17年3月22日(2005.3.22)
【国際出願番号】PCT/EP2005/051321
【国際公開番号】WO2005/094034
【国際公開日】平成17年10月6日(2005.10.6)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.イーサネット
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】