(57)【要約】      （修正有）【課題】大規模なアプリケーション、または多数のシステムが互いに通信する動的な環境でも複雑にならないキー管理の方法を提供する。【解決手段】分散型ソフトウェアアプリケーションのためのキー管理システムは、通信ネットワーク１０４と、通信ネットワークに結合された１つまたは複数のソフトウェアアプリケーション１０６、１０８、１１０とを含む。１つまたは複数のソフトウェアアプリケーションは各ソフトウェアアプリケーションを識別する識別符号と、キーペアプロバイダに公開キーおよび秘密キーを含むキーペアを要求する登録モジュール１２８、１３０、１３２とを含む。キー管理システムは管理コンソール１０２を含み、第１ソフトアプリケーションに関連した公開キーを保存し、第２ソフトアプリケーションから第１ソフトアプリケーションに対するサブスクリプション要求を受信すると前記公開キーを第２ソフトアプリケーションに提供する。【選択図】図１
2012151843.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク（１０４）と、
前記通信ネットワーク（１０４）に結合された１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）であって、前記１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）の各々が各ソフトウェアアプリケーションを識別する識別符号と、キーペアプロバイダにキーペアを要求する登録モジュール（１２８、１３０、１３２）とを含み、前記キーペアが公開キーと秘密キーとを含む、１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）と、
前記通信ネットワーク（１０４）を介して、前記１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）のうちの少なくともいくつかに結合された管理コンソール（１０２）であって、前記１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）のうちの第１ソフトウェアアプリケーション（１０６）に関連した前記公開キーを保存し、第２ソフトウェアアプリケーション（１０８）から前記第１ソフトウェアアプリケーション（１０６）に対するサブスクリプション要求を受信すると、前記第１ソフトウェアアプリケーション（１０６）に関連した前記公開キーを、前記１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）のうちの前記第２ソフトウェアアプリケーション（１０８）へ与えるように構成された管理コンソール（１０２）と
を備える、分散型ソフトウェアアプリケーションのためのキー管理システム（１００）。
【請求項２】
前記１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）の各々は、異なるサーバに配置される請求項１記載のシステム（１００）。
【請求項３】
前記１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）のうちの少なくとも２つは、同じサーバに配置される請求項１記載のシステム（１００）。
【請求項４】
前記管理コンソール（１０２）に結合され、前記１つまたは複数のソフトウェアアプリケーション（１０６、１０８、１１０）に関連した公開キーを保存する中央キーストアをさらに備える請求項１記載のシステム（１００）。
【請求項５】
前記登録モジュール（１２８、１３０、１３２）は、前記管理コンソール（１０２）に前記キーペアを要求し、前記キーペアを前記管理コンソール（１０２）に登録する請求項１記載のシステム（１００）。
【請求項６】
前記登録モジュール（１２８、１３０、１３２）は、前記管理コンソール（１０２）の外部に与えられる第三者のキーペアからのキーペアを要求する請求項１記載のシステム（１００）。
【請求項７】
前記管理コンソール（１０２）は第１サーバに配置され、前記ソフトウェアアプリケーション（１０６、１０８、１１０）のうちの少なくとも１つは前記第１サーバに配置される請求項１記載のシステム（１００）。
【請求項８】
分散型ソフトウェアアプリケーションを含むシステム（１００）でキー分配を管理する方法であって、
キー管理コンソール（１０２）で、前記分散型ソフトウェアアプリケーションの第１ソフトウェアアプリケーション（１０６）から登録要求を受信するステップであって、前記要求は、前記第１ソフトウェアアプリケーション（１０６）を識別する識別符号を含むステップと、
前記キー管理コンソール（１０２）で、前記識別符号と、前記第１ソフトウェアアプリケーション（１０６）に関連した公開キーとを保存するステップと、
前記キー管理コンソール（１０２）で、前記分散型ソフトウェアアプリケーションの第２ソフトウェアアプリケーション（１０８）から前記第１ソフトウェアアプリケーション（１０６）に対するサブスクリプション要求を受信するステップと、
前記第２ソフトウェアアプリケーション（１０８）が前記第１ソフトウェアアプリケーション（１０６）と通信することを承認されていると判定するステップと、
前記公開キーを前記第２ソフトウェアアプリケーション（１０８）に与えるステップと
を備える方法。
【請求項９】
前記キー管理コンソール（１０２）で前記第１ソフトウェアアプリケーション（１０６）から新しい公開キーを受信するステップと、
前記公開キーを前記新しい公開キーと交換するステップと、
前記第２ソフトウェアアプリケーション（１０８）に、前記公開キーが交換されていることを警告するステップとをさらに備える請求項８記載の方法。
【請求項１０】
前記新しい公開キーのために前記第２ソフトウェアアプリケーション（１０８）から要求を受信するステップと、
前記新しい公開キーを前記第２ソフトウェアアプリケーション（１０８）に与えるステップとをさらに備える請求項９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する主題はセキュリティに関し、特には分散型ソフトウェアを含むシステムでのキー管理に関する。
【背景技術】
【０００２】
（例えばサービス指向アークテクチャ（ＳＯＡ）の中で）分散型ソフトウェアアプリケーション間でメッセージを保護することは、通常アプリケーション間での公開／秘密キーペアの交換を必要とする。キーは通常、認証局（ＣＡ）によって公開キーが各々のユーザ識別に結び付けられている公開キー基盤（ＰＫＩ）の中で分散している。しかしながら大規模なアプリケーション、または多数のシステムが互いに通信する動的な環境では、キー管理は複雑になる。通信が異なるハードウェア／ソフトウェア／技術プラットフォームで生じる場合、複雑さはさらにひどくなる。
【０００３】
サーバのシステム上に大型の分散型ソフトウェアアプリケーションを持つ組織については、キー管理のために通常２つの方法が実施されてきた。第１の方法は内部ＣＡの利用を含む。内部ＣＡは１つのサーバ上にあり、システム内の各々のその他サーバには認証局からサーバ証明を割り当てられる。名前が示すように、サーバ証明はサーバ上の特定のアプリケーションにではなく、サーバ全体に適用される。このように、第１の方法は特定の公開キーを特定のアプリケーションに結び付けることはできない。代替として、要求を出すアプリケーションが自己署名した証明を作り出すか、または第３者ＣＡから個別に証明を購入し、ＣＡに割り当てられた公開キーを他のアプリケーションと交換することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７，３３０，９６８号明細書
【発明の概要】
【０００５】
本発明の１つの態様によって、分散型ソフトウェアアプリケーションのためのキー管理システムが開示される。この態様では、キー管理システムは通信ネットワークと、通信ネットワークに結合された１つまたは複数のソフトウェアアプリケーションとを含む。１つまたは複数のソフトウェアアプリケーションのうちの各々は、各ソフトウェアアプリケーションを識別する識別符号と、キーペアプロバイダにキーペアを要求する登録モジュールとを含む。このシステムはまた、通信ネットワークを介して１つまたは複数のソフトウェアアプリケーションのうちの少なくともいくつかに結合された管理コンソールであって、１つまたは複数のソフトウェアアプリケーションのうちの第１ソフトウェアアプリケーションに関連した公開キーを保存し、第２ソフトウェアアプリケーションから第１ソフトウェアアプリケーションに対するサブスクリプション要求を受信すると、第１ソフトウェアアプリケーションに関連した公開キーを１つまたは複数のソフトウェアアプリケーションのうちの第２ソフトウェアアプリケーションに提供するように構成された管理コンソールを含む。
【０００６】
本発明の他の態様によって、分散型ソフトウェアアプリケーションを含むシステム内でキーの分配を管理する方法が開示される。この態様の方法は、キー管理コンソールで、第１ソフトウェアアプリケーションを識別する識別符号を含む登録要求を、分散型ソフトウェアアプリケーションの第１ソフトウェアアプリケーションから受信することと、キー管理コンソールで、識別符号および第１ソフトウェアアプリケーションに関連した公開キーを保存することと、キー管理コンソールで、分散型ソフトウェアアプリケーションの第２ソフトウェアアプリケーションから第１ソフトウェアアプリケーションに対するサブスクリプション要求を受信することと、第２ソフトウェアアプリケーションが第１ソフトウェアアプリケーションと通信することを承認されていると判定することと、公開キーを第２ソフトウェアアプリケーションに提供することとを含む。
【０００７】
本発明の他の態様によって、分散型ソフトウェアシステムの中で第１ソフトウェアアプリケーションと第２ソフトウェアアプリケーションが通信する方法が開示される。この態様の方法は、第１ソフトウェアアプリケーションを識別する識別符号と、第１ソフトウェアアプリケーションに関連した公開キーか、または公開キーを第１ソフトウェアアプリケーションへ割り当てた結果生じる公開キーを求める要求のいずれかを含む登録要求を、第１サーバで動作する第１ソフトウェアアプリケーションから中央サーバのキー管理コンソールへ送信することと、第１ソフトウェアアプリケーションに対するサブスクリプション要求を、第２サーバで動作する第２ソフトウェアアプリケーションからキー管理コンソールへ送信すること、公開キーを第２ソフトウェアアプリケーションで受信することと、第２ソフトウェアアプリケーションから第１ソフトウェアアプリケーションへのメッセージを暗号化するために、公開キーを利用することとを含む。
【０００８】
これらおよびその他の利点、ならびに特徴は、図面と併せて以下の説明からより明らかになるであろう。
【０００９】
本発明とみなされる主題は、本明細書の結論で具体的に指摘され、特許請求の範囲の中で明確に主張される。本発明の上記およびその他の特徴、ならびに利点は、添付の図面とともに以下の詳細な説明から明らかである。
【図面の簡単な説明】
【００１０】
【図１】本発明によるシステムを示す図である。
【図２】本発明の１つの実施形態による方法を示す流れ図である。
【図３】本発明の他の実施形態による方法を示す流れ図である。
【図４】本発明の実施形態が実施されうるシステムを示す図である。
【発明を実施するための形態】
【００１１】
この詳細な説明では、利点および特徴とともに、図面を参照しながら例として本発明の実施形態を説明する。
【００１２】
本発明の実施形態は、分散型ソフトウェアを含むシステムでのキー管理のためのシステムおよび方法に関する。１つの実施形態では、このシステムおよび方法は、分散型ソフトウェアシステムの中で、（例えばソフトウェアなどの）アプリケーションのために公開／秘密キーペアを生成、登録、分配、再発行、取り消しを管理するための既存の相互運用性基準に準拠して利用されることが可能である。既存の解決策とは異なり、本発明によれば、キーはアプリケーションを含むサーバに対してではなく、特定のアプリケーションに対して固有のものである。さらに本明細書で説明するシステムおよび方法は、１つのソフトウェアアプリケーションから、そのソフトウェアアプリケーションにサブスクライブしている他のソフトウェアアプリケーションへ新しいキーを分配することを自動化することができる。さらに本明細書のシステムおよび方法は、特定のアプリケーションの中の任意のソフトウェア構成ファイルを更新するＪＡＶＡ（商標）キーストアなどのネイティブキー管理ツールと統合することが可能である。本明細書で開示するシステムおよび方法は、分散型ソフトウェアアプリケーションを含むシステム内でＰＫＩ機能を開発する時間を削減する技術的効果を持つ。
【００１３】
図１は、本発明による分散型システム１００を示す。分散型システム１００は、管理コンソール１０２を含む。以下でより詳細に説明するように、管理コンソール１０２は、システム１００の中でソフトウェアアプリケーション間でのキーペアの分配を管理する。このように、管理コンソール１０２は、１つの実施形態ではＰＫＩ管理コンソールである。１つの実施形態で、キーはアプリケーションが常駐するサーバにではなく、個々のソフトウェアアプリケーションに与えられる。管理コンソール１０２は、サーバまたはその他のコンピューティングデバイスの中で実装されることが可能である。
【００１４】
図１に示したシステム１００もまた、通信ネットワーク１０４を含む。通信ネットワーク１０４は、現在知られているか、または後に開発される任意の型の通信ネットワークであることが可能である。例えば、通信ネットワーク１０４はインターネット、プライベートネットワーク、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）であることが可能である。通信ネットワーク１０４は、１つ以上のネットワークを含むことができるということを理解されたい。例えば、通信ネットワーク１０４は１つの実施形態では、ＷＡＮと通信するＬＡＮを含むことが可能である。他の実施形態では、通信ネットワーク１０４は単一のサーバ内の内部バス、または任意のその他ネットワークの組み合わせを含むことが可能である。そのような実施形態は、同じサーバ上に１つまたは複数のソフトウェアアプリケーションが常駐する場合に存在してもよい。
【００１５】
システム１００はまた、複数のソフトウェアアプリケーション１０６、１０８、１１０を含む。ソフトウェアアプリケーション１０６、１０８、１１０はそれらが互いに、また管理コンソール１０２と通信することができるように、通信ネットワーク１０４に通信可能に結合される。システム１００の中のソフトウェアアプリケーション１０６、１０８、１１０の数は様々であり、限定されておらず、背景によって決まる。１つの実施形態では、ソフトウェアアプリケーション１０６、１０８、１１０はすべて異なるサーバに配置されることが可能である。他の実施形態では、少なくとも１つのソフトウェアアプリケーション１０６、１０８、１１０は、他のソフトウェアアプリケーション１０６、１０８、１１０と同じサーバに配置される。
【００１６】
１つの実施形態では、ソフトウェアアプリケーション１０６、１０８、１１０のうちの１つまたは複数は、暗号化された情報をソフトウェアアプリケーション１０６、１０８、１１０のうちの他の１つに通信すること、およびそこから暗号化された情報を受信することを必要とする場合がある。そのような実施形態では、ソフトウェアアプリケーション１０６、１０８、１１０は、互いに公開キーを交換する必要がある。ソフトウェアアプリケーション１０６、１０８および１１０は、デジタル署名されたメッセージを互いに送信しなければならない場合があることを理解されたい。そのような場合、また例として、ソフトウェアアプリケーション１０６はその公開キーを管理コンソール１０２に登録することが可能であり、次いでソフトウェアアプリケーション１０８はその公開キーにサブスクライブすることが可能である。動作中、ソフトウェアアプリケーション１０６は、その公開キーを用いてソフトウェアアプリケーション１０８に送信されるメッセージに署名することができる。ソフトウェアアプリケーション１０８はその後、管理コンソール１０２から受信した公開キーを使用して、署名を確認することができる。
【００１７】
１つの実施形態によって、管理コンソール１０２は、ソフトウェアアプリケーション１０６、１０８、１１０間でのキーの交換を管理するように構成される。そのようにして、１つの実施形態では、管理コンソール１０２はソフトウェアアプリケーション１０６、１０８、１１０のうちのいくつかまたは全てのための公開キー、および保存された公開キーに関連した任意の情報を保存する中央キーストア１１２に結合される。この関連情報は、例えばキーの有効期限が切れる場合になどに、公開キーを受信することを許可された他のソフトウェアアプリケーションを識別することを含むことができる。
【００１８】
一般に、中央キーストア１１２はデータベースであり、管理コンソール１０２に含まれるか、またはそこから独立したエンティティであることが可能である。中央キーストア１１２は、図１では直接管理コンソール１０２に結合するように示しているが、この接続は代替実施形態では通信ネットワーク１０４を介してもよいということを理解されたい。１つの実施形態では、中央キーストア１１２は軽量ディレクトリアクセスプロトコル（ＬＤＡＰ）を利用するデータベースとして実装される。
【００１９】
１つの実施形態では、管理コンソール１０２は、（例えばシステム管理者などの）ユーザが情報を管理コンソール１０２に提供することを可能にするユーザ端末１１４に結合される。１つの実施形態では、システム管理者は、公開キーを管理コンソール１０２に登録／保存することができる、またはキーペアを作り出し、結果として生じる公開キーを保存するために管理コンソール１０２を使用することができる特定のソフトウェアアプリケーションについての情報を管理コンソール１０２に提供する。キーペアの生成は、知られている方法で実施されることが可能である。代替実施形態では、管理コンソール１０２を利用することができる特定のソフトウェアアプリケーションについての情報は、他のソースから受信されることが可能である。
【００２０】
図示されているように、各ソフトウェアアプリケーション１０６、１０８、１１０は各々アプリケーションキーストア１１６、１１８、１２０に結合されている。アプリケーションキーストア１１６、１１８、１２０は各々、任意の知られている、または後に開発されるキーツール１２２、１２４、１２６によって維持されることが可能である。キーツールは、キーおよび証明管理ユーティリティである。これによってソフトウェアアプリケーション１０６、１０８、１１０はそれら自身の公開／秘密キーペア、およびデジタル署名を使用した（ソフトウェアアプリケーションが他のソフトウェアアプリケーションに対して自身を認証する）自己認証、またはデータの保全性および認証サービスで使用するための関連した証明を管理することができる。またソフトウェアアプリケーション１０６、１０８、１１０が、他のソフトウェアアプリケーションの公開キーを（必要に応じて、証明の形で）キャッシュすることも可能にする。キーツール１２２、１２４、１２６は知られている方法によって実装されることが可能である。上述のように、管理コンソール１０２は公開キーの分配を制御する。
【００２１】
システム１００の動作の例は、参考となるものである。第１ソフトウェアアプリケーション１０６は、すでに第２および第３ソフトウェアアプリケーション１０８、１１０を含むシステム１００に追加されるものとする。ユーザ端末１１４を利用して、システム管理者などのユーザは、第１ソフトウェアアプリケーション１０６のために管理コンソール１０２の中に新しい項目を作成する。この項目は、例えば（サーバ名などの）第１ソフトウェアアプリケーション１０６の場所および第１ソフトウェアアプリケーション１０６の名前を含んでもよい。名前はアプリケーションの型を記述することが可能であるか、または特定のソフトウェアアプリケーションに固有のものであることが可能である。１つの実施形態では、項目は後に、第１ソフトウェアアプリケーション１０６にサブスクライブしている全ての他のソフトウェアアプリケーションのリストに与えられてもよい。１つの実施形態では、項目は同様に、または代替として、第１ソフトウェアアプリケーション１０６がサブスクライブしている他のソフトウェアアプリケーションのリストを含んでもよい。
【００２２】
この例では、項目が作成された後、管理コンソール１０２は識別符号を第１ソフトウェアアプリケーション１０６に割り当てる。この符号は、第１ソフトウェアアプリケーション１０６がインストールされる前か、またはそのときに、電子的または手動で第１ソフトウェアアプリケーションに与えられてもよい。
【００２３】
１つの実施形態では、第１ソフトウェアプリケーション１０６は登録モジュール１２８を含む。登録モジュール１２８によって、第１ソフトウェアアプリケーションは管理コンソール１０２に登録される。１つの実施形態では、登録のプロセスは、上述の識別符号を利用して、第１ソフトウェアプリケーション１０６に、管理コンソール１０２に対して自己を識別させることを含むことが可能である。１つの実施形態では、登録はまた公開キーを管理コンソール１０２に与えることも含む。そのような実施形態では、登録モジュール１２８は、第１ソフトウェアアプリケーション１０６が、外部キーペアジェネレータ１５０にキーペアを要求し受け取るようにする。代替実施形態では、管理コンソール１０２はキーペアを作り出すことができる。そのような実施形態では、登録モジュール１２８は、同様にキーペアを求める要求を含む登録要求を作り出す。どのように作成したかには関係なく、第１ソフトウェアアプリケーション１０６のための公開キーは管理コンソール１０２によって保存され、第１ソフトウェアアプリケーション１０６のために管理コンソール１０２によって維持される項目に関連付けられる。このようにして、公開キーはアプリケーションが常駐するサーバにではなく、特定のソフトウェアアプリケーションに関連付けられる。当然、公開キーは第１ソフトウェアアプリケーション１０６に与えられる。
【００２４】
図１に示すように、第２ソフトウェアアプリケーション１０８および第３ソフトウェアアプリケーション１１０もまた、各々登録モジュール１３０、１３２を含む。これらの登録モジュールは、１つの実施形態では、登録モジュール１２８と同じか、または類似の方法で動作する。
【００２５】
ここで、第１ソフトウェアアプリケーション１０６は、第２ソフトウェアアプリケーション１０８と通信しなければならないものとする。そのような状況では、第１ソフトウェアアプリケーション１０６が、管理コンソール１０２にサブスクリプション要求を渡す。サブスクリプション要求は名前、型もしくは識別番号、またはそれらの組み合わせによって第２ソフトウェアアプリケーション１０８を識別することができる。第１ソフトウェアアプリケーション１０６が第２ソフトウェアアプリケーション１０８と通信することを承認されていると仮定すると、サブスクリプション要求は許可され、第２ソフトウェアアプリケーション１０８のための公開キーが第１ソフトウェアアプリケーション１０６に与えられる。第１ソフトウェアアプリケーション１０６が承認されるかどうかは、第２ソフトウェアアプリケーション１０８のための管理コンソール１０２の項目が作成されたときに与えられる情報によって決まる。さらにサブスクリプション要求を許可することによって：１）第１ソフトウェアアプリケーション１０６のための項目に保存されるべきサブスクリプションと、２）第２ソフトウェアアプリケーション１０８のための項目に保存されるべきサブスクリプションのうちの１つまたは両方が生じる。
【００２６】
ここで、（第２ソフトウェアアプリケーション１０８のための項目が、それに関連した有効期限を含んでいたと仮定して）どちらか一方の第２ソフトウェアアプリケーション１０８のための公開キーの期限が切れるとする。そのような場合、第１ソフトウェアアプリケーション１０６のためのアプリケーションキーストア１１６は、第２ソフトウェアアプリケーション１０８と通信するための無効な公開キーを含む。第２ソフトウェアアプリケーション１０８がその公開キーを無効にする、またはキャンセルするか、もしくは公開キーをその他に変更する場合に、同じ結果が生じる可能性がある。
【００２７】
１つの実施形態で、管理コンソール１０２はキー有効期限モジュール１５２を含む。キー有効期限モジュール１５２は管理コンソール１０２によって（例えば公開キーストア１１２の中に）保存された公開キーの有効期限を監視し、特定のアプリケーションのキーがそのアプリケーションに対して期限切れになるという指示を与える。特定のアプリケーションはキーを期限切れにする、延長する、または新しいキーを与えることができる。特定のアプリケーションが新しいキーを与える場合、管理コンソール１０２は、そのアプリケーションにサブスクライブしている他のアプリケーションを判定し、それらに新しい公開キーを与えることができる。当業者には、この判定がサブスクリプションの保存方法によって異なる方法で行われうるということが認識されよう。１つの実施形態では、その後新しい公開キーはサブスクライブを行うソフトウェアアプリケーションのキーツール１２２、１２４、１２６に与えられえ、それらのストアの中に保存される。キーツール１２２、１２４、１２６は新しいキーをキーストア１１６、１１８、１２０の中に保存し、必要に応じて任意の構成ファイルを更新することができるということを理解されたい。
【００２８】
図２は、１つの実施形態による方法を示す流れ図である。図２に示した流れ図は、１つの実施形態による分散型ソフトウェアアプリケーションを含むシステムの中でキー分配を管理する方法の、管理コンソールから見た例である。この実施形態の方法は、分散型ソフトウェアアプリケーションの第１ソフトウェアアプリケーションからの登録要求がキー管理コンソールで受信されるブロック２０２を含む。上述のように、この要求は第１ソフトウェアアプリケーションを識別する識別符号を含むことが可能である。識別符号は、１つの実施形態では管理コンソールによって作成される。
【００２９】
ブロック２０４で、第１ソフトウェアアプリケーションに関連した識別符号および公開キーは、キー管理コンソールに保存される。上述のように、この要求は公開キーを含むことが可能であるか、または管理コンソールは公開キーを作り出すことが可能である。１つの実施形態では、そのような情報は第１ソフトウェアアプリケーションに関連したデータベースの中の項目に保存される。１つの実施形態では、この項目はその他の情報を含むか、または含むことが可能である。そのようなその他情報は、例えば、第１ソフトウェアアプリケーションにサブスクライブすることが可能な他のソフトウェアアプリケーションのリストまたはその他の表示を含む。そのようなリストは、例えばシステム管理者が第１ソフトウェアアプリケーションのための項目を作成する場合に作成されることが可能である。さらに、このその他情報は、例えば第１アプリケーションにサブスクライブしているソフトウェアアプリケーションおよび第１アプリケーションがサブスクライブしている他のソフトウェアプログラムのリストを含むことが可能である。
【００３０】
ブロック２０６で、第１ソフトウェアアプリケーションに対するサブスクリプション要求が第２ソフトウェアアプリケーションから受信される。サブスクリプション要求は名前、型もしくは識別番号、またはそれらの組み合わせによって、要求側の識別を含むことが可能である。ブロック２０８で第２ソフトウェアアプリケーションが第１ソフトウェアアプリケーションと通信することを承認されていると判定されるのであれば、ブロック２１０で第１ソフトウェアアプリケーションのための公開キーは、第２ソフトウェアアプリケーションに提供される。そのような承認は、第１ソフトウェアアプリケーションに関連した項目を調べることを含むことが可能である。
【００３１】
図３は、本発明の他の実施形態による２つのソフトウェアアプリケーションの間の通信方法を示す流れ図である。図３に示した方法は、キーの分配を管理する管理コンソールを含むシステムの中の２つの異なるソフトウェアアプリケーションから見たものである。これらのソフトウェアアプリケーションは、それぞれ同じサーバ上か、または異なるサーバ上にあることが可能である。
【００３２】
ブロック３０２で、第１ソフトウェアアプリケーションは登録要求をキー管理コンソールへ送信する。キー管理コンソールは、１つの実施形態では中央サーバにあることが可能である。１つの実施形態では、登録要求は第１ソフトウェアアプリケーションを識別する識別符号、および第１ソフトウェアアプリケーションに関連した公開キーを含む。他の実施形態では、登録要求は第１ソフトウェアアプリケーションを識別する識別符号、および公開キーを含むキーペアを求める要求を含む。
【００３３】
ブロック３０４で、第２ソフトウェアアプリケーションは第１ソフトウェアアプリケーションに対するサブスクリプション要求をキー管理コンソールへ送信する。第２ソフトウェアアプリケーションは承認されていると仮定して、ブロック３０６で、第１ソフトウェアアプリケーションのための公開キーは第２ソフトウェアアプリケーションで受信される。ブロック３０８で、公開キーは、第２ソフトウェアアプリケーションから第１ソフトウェアアプリケーションへのメッセージを暗号化するために利用される。当然、この公開キーは、１つの実施形態ではメッセージを暗号化するためにではなく、公開キーを検証するために利用されることが可能である。
【００３４】
ここで図４を参照すると、本明細書の教示を実装するための処理システム４００の実施形態が示されている。処理システム４００は、管理コンソール１０２が実装されてもよいか、またはソフトウェアアプリケーション１０６、１０８、１１０が動作することができるサーバまたはその他のコンピューティングデバイス（図１）の例である。
【００３５】
この実施形態では、システム４００は１つまたは複数の中央処理ユニット（プロセッサ）４０１ａ、４０１ｂ、４０１ｃ等（まとめて、または一般にプロセッサ４０１と呼ばれる）を有する。１つの実施形態では、各プロセッサ４０１は縮小命令セットコンピュータ（ＲＩＳＣ）のマイクロプロセッサを含んでもよい。プロセッサ４０１は、システムバス４１３を介して、システムメモリ４１４および様々なその他の構成要素に結合される。読み出し専用メモリ（ＲＯＭ）４０２はシステムバス４１３に結合され、システム４００の特定の基本機能を制御する基本入出力システム（ＢＩＯＳ）を含んでもよい。
【００３６】
図４はさらに、システムバス４１３に結合された入力／出力（Ｉ／Ｏ）アダプタ４０７およびネットワークアダプタ４０６を示す。Ｉ／Ｏアダプタ４０７は、ハードディスク１０３および／またはテープストレージデバイス４０５または任意のその他同様の構成要素と通信する小型コンピュータシステムインターフェース（ＳＣＳＩ）アダプタであってもよい。Ｉ／Ｏアダプタ４０７、ハードディスク４０３およびテープストレージデバイス４０５は、本明細書ではまとめて大容量ストレージ４０４と呼ぶ。ネットワークアダプタ４０６はバス１１３を、（例えば図１の通信ネットワーク１０４などの）外部ネットワーク４１６と相互接続し、システム４００が他のそのようなシステムと通信することができるようにする。（例えばディスプレイモニタなどの）スクリーン４１５は、グラフィックを多用するアプリケーションおよびビデオコントローラの性能を向上させるグラフィックアダプタを含んでもよいディスプレイアダプタ４１２によって、システムバス４１３に接続されることが可能である。１つの実施形態では、アダプタ４０７、４０６および４１２は、中間バスブリッジ（図示せず）を介してシステムバス４１３に接続された１つまたは複数のＩ／Ｏバスに接続されてもよい。ハードディスクコントローラ、ネットワークアダプタおよびグラフィックアダプタなどの周辺機器を接続するために適したＩ／Ｏバスは典型的に、周辺コンポーネントインターフェース（ＰＣＩ）などの共通プロトコルを含む。さらなる入力／出力デバイスは、ユーザインターフェースアダプタ４０８およびディスプレイアダプタ４１２を介してシステムバス４１３に接続されて示されている。キーボード４０９、マウス４１０およびスピーカ４１１はすべて、例えば多数のデバイスアダプタを単一の集積回路に統合するＩ／Ｏチップなどを含んでもよいユーザインターフェースアダプタ４０８を介して、バス４１３に相互接続される。
【００３７】
システム４００は、任意の適切なコンピュータまたはコンピューティングプラットフォームであることが可能であり、端末、ワイヤレスデバイス、情報機器、デバイス、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、サーバ、携帯情報端末（ＰＤＡ）またはその他のコンピューティングデバイスを含んでもよいということを理解されたい。システム１００は、通信ネットワークによってともに結合された多数のコンピューティングデバイスを含んでもよいことを理解されたい。例えば、２つのシステムの間でクライアント−サーバの関係が存在してもよく、この２つの間で処理が分割されてもよい。
【００３８】
システム４００によって、任意のコンピュータオペレーティングシステムが利用されてもよい。図示されているように、システム４００は、ネットワーク４１６を介して通信するためのネットワークインタフェース４０６もまた含む。ネットワーク４１６はローカルエリアネットワーク（ＬＡＮ）、メトロエリアネットワーク（ＭＡＮ）、またはインターネットもしくはワールドワイドウェブなどのワイドエリアネットワーク（ＷＡＮ）であることが可能である。
【００３９】
本明細書で開示するように、システム４００は、１つまたは複数の本明細書で開示する方法を実行するために、（例えばハードディスク４０４などの）機械可読媒体に保存された機械可読命令を含んでもよい。本明細書で説明するように、この命令は「ソフトウェア」４２０と呼ばれてもよい。ソフトウェア４２０は、当技術分野で知られているソフトウェア開発ツールを使用して製造されてもよい。ソフトウェア４２０は、当技術分野で知られているユーザと対話する機能を提供するための様々なツールおよび特徴を含んでもよい。
【００４０】
ほんの限られた数の実施形態とともに本発明を詳細に説明してきたが、本発明がそのような開示された実施形態に限定されないということは容易に理解されよう。むしろ本発明は、任意の数の改変、修正、置換、またはこれまでに説明していないが、本発明の精神および範囲に相当する同等の配置を組み込むために変更されることが可能である。さらに、本発明の様々な実施形態を説明してきたが、本発明の態様は、説明した実施形態のいくつかだけを含んでもよいということを理解されたい。したがって、本発明は上述の説明によって限定されると見なされず、添付の特許請求の範囲によってのみ限定される。
【符号の説明】
【００４１】
１００  分散型システム
１０２  管理コンソール
１０４  通信ネットワーク
１０６  ソフトウェアアプリケーション
１０８  ソフトウェアアプリケーション
１１０  ソフトウェアアプリケーション
１１２  中央キーストア
１１４  ユーザ端末
１１６  アプリケーションキーストア
１１８  アプリケーションキーストア
１２０  アプリケーションキーストア
１２２  キーツール
１２４  キーツール
１２６  キーツール
１２８  登録モジュール
１３０  登録モジュール
１３２  登録モジュール
１５０  キーペアジェネレータ
１５２  キー有効期限モジュール
２０２  ブロック
２０４  ブロック
２０６  ブロック
２０８  ブロック
２１０  ブロック
３０２  ブロック
３０４  ブロック
３０６  ブロック
３０８  ブロック
４００  処理システム
４０１  プロセッサ
４０１ａ  中央処理ユニット
４０１ｂ  中央処理ユニット
４０１ｃ  中央処理ユニット
４０２  読み出し専用メモリ（ＲＯＭ）
４０３  ハードディスク
４０４  大容量ストレージ
４０５  テープストレージデバイス
４０６  ネットワークアダプタ
４０７  入力／出力アダプタ
４０８  インターフェースアダプタ
４０９  キーボード
４１０  マウス
４１１  スピーカ
４１２  ディスプレイアダプタ
４１３  システムバス
４１４  システムメモリ
４１５  スクリーン
４１６  外部ネットワーク
４２０  ソフトウェア
【図１】
2012151843.tif 000003
【図２】
2012151843.tif 000004
【図３】
2012151843.tif 000005
【図４】
2012151843.tif 000006
【外国語明細書】
2012151843000001.pdf