(57)【要約】【課題】Ｗｅｂサービスのための信頼できる第三者認証の拡張を提供する。【解決手段】Ｗｅｂサービスは、ユーザ認証責任を信頼し、信頼するＷｅｂサービスに対する識別情報プロバイダとして機能する信頼できる第三者に委任する。信頼できる第三者は、例えば、ユーザ名／パスワードおよびＸ．５０９証明書などの共通の認証メカニズムを通じてユーザを認証し、初期ユーザ認証を使用して、Ｗｅｂサービスとのその後の安全なセッションをブートストラップする。Ｗｅｂサービスは、信頼できる第三者により発行されたサービスセッショントークンを使用してユーザ識別情報コンテキストを構成し、サービスサイドの分散キャッシュを使用せずにセキュリティ状態を再構成する。【選択図】図１Ａ
2006260538.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいて、Ｗｅｂサービスコンポーネントを認証する方法であって、
認証要求を認証サービスに送信する行為と、
前記認証サービスから認証応答を受信する行為であって、前記認証応答は前記Ｗｅｂサービスコンポーネントとアクセス付与サービスとの間の通信のセキュリティを保護するための第１の対称セッション鍵の２つのインスタンスを含んでおり、前記第１の対称セッション鍵の前記第１のインスタンスは前記Ｗｅｂサービスクライアントへの配信のためセキュリティ保護され、第１の証明トークンに含まれており、前記第１の対称セッション鍵の前記第２のインスタンスは前記セキュリティトークンサービスの秘密対称鍵により暗号化され、トークン付与トークンに含まれていることと、
Ｗｅｂサービスへのアクセスの、前記トークン付与トークンを含むアクセス要求を前記アクセス付与サービスに送信する行為と、
前記アクセス付与サービスからアクセス付与応答を受信する行為であって、前記アクセス付与応答は前記Ｗｅｂサービスコンポーネントと前記Ｗｅｂサービスとの間の通信のセキュリティを保護するための第２の対称セッション鍵の２つのインスタンスを含んでおり、前記第２の対称セッション鍵の前記第１のインスタンスは前記第１の対称セッション鍵により暗号化され、第２の証明トークンに含まれており、前記第２の対称セッション鍵の前記第２のインスタンスは前記Ｗｅｂサービスに対応する公開／秘密鍵ペアからの公開鍵により暗号化され、サービストークンに含まれていることと、
を備えることを特徴とする方法。
【請求項２】
認証要求を認証サービスに送信する前記行為は、ユーザ名およびパスワードを前記認証サービスに送信する行為を含むことを特徴とする請求項１に記載の方法。
【請求項３】
認証要求を認証サービスに送信する前記行為は、デジタル署名入りＸ．５０９証明書を前記認証サービスに送信する行為を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記認証サービスから認証応答を受信する前記行為は、カスタムＸＭＬトークン付与トークンを含むＳＯＡＰメッセージを受信する行為を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記アクセス付与サービスからアクセス付与応答を受信する前記行為は、カスタムＸＭＬサービストークンを含むＳＯＡＰメッセージを受信する行為を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記Ｗｅｂサービスコンポーネントおよび前記サービストークンの識別情報を含むセキュリティトークン要求を前記Ｗｅｂサービスに送信する行為と、
前記Ｗｅｂサービスからセキュリティトークン応答を受信する行為であって、前記セキュリティトークン応答は、セキュリティコンテキストトークン、および前記Ｗｅｂサービスコンポーネントと前記Ｗｅｂサービスとの間の通信のセキュリティを保護するためのマスタ対称セッション鍵を含むことと、
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記マスタ対称セッション鍵から１つまたは複数の導出された対称セッション鍵を導出する行為と、
前記Ｗｅｂサービスにサービス要求を送信する行為であって、前記サービス要求は前記１つまたは複数の導出されたセッション鍵からの第１の導出された対称セッション鍵を使用して暗号化され、前記１つまたは複数の導出されたセッション鍵からの第２の導出された対称セッション鍵を使用して署名されることと、
をさらに備えることを特徴とする請求項６に記載の方法。
【請求項８】
前記Ｗｅｂサービスからサービス応答を受信する行為であって、前記サービス応答は前記１つまたは複数の導出されたセッションからの第３の導出された対称セッション鍵を使用して暗号化され、前記サービス応答は前記１つまたは複数の導出されたセッション鍵からの第４の導出された対称セッション鍵を使用してデジタル署名により署名されることと、
前記サービス応答を暗号解読するために、前記第３の導出された対称セッション鍵を使用する行為と、
前記デジタル署名の正当性を確認するために、前記第４の導出された対称セッション鍵を使用する行為と、
をさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
セキュリティトークンサービスを含むコンピュータシステムにおいて、Ｗｅｂサービスコンポーネントを認証する方法であって、
Ｗｅｂサービスコンポーネントから認証要求を受信する行為と、
前記認証要求に含まれる認証データの正当性を確認する行為と、
認証応答を前記Ｗｅｂサービスクライアントに送信する行為であって、前記認証応答は前記Ｗｅｂサービスコンポーネントとアクセス付与サービスとの間の通信のセキュリティを保護するための対称セッション鍵の２つのインスタンスを含んでおり、前記対称セッション鍵の前記第１のインスタンスは前記Ｗｅｂサービスコンポーネントへの配信のためセキュリティ保護され、第１の証明トークンに含まれており、前記対称セッション鍵の前記第２のインスタンスは前記セキュリティトークンサービスの秘密対称鍵により暗号化され、トークン付与トークンに含まれていることと、
前記ＷｅｂサービスコンポーネントからのＷｅｂサービスへのアクセスに対する、前記トークン付与トークンを含むアクセス要求を受信する行為と、
前記Ｗｅｂサービスコンポーネントが前記トークン付与トークンの内容に基づき前記セキュリティトークンサービスに対する認証セッションを持つことを検証する行為と、
前記Ｗｅｂサービスコンポーネントにアクセス付与応答を送信する行為であって、前記アクセス付与応答は前記Ｗｅｂサービスコンポーネントと前記Ｗｅｂサービスとの間の通信のセキュリティを保護するための第２の対称セッション鍵の２つのインスタンスを含んでおり、前記第２の対称セッション鍵の前記第１のインスタンスは前記第１の対称セッション鍵により暗号化され、第２の証明トークンに含まれており、前記第２の対称セッション鍵の前記第２のインスタンスは前記Ｗｅｂサービスに対応する公開／秘密鍵ペアからの公開鍵により暗号化され、サービストークンに含まれていることと、
を備えることを特徴とする方法。
【請求項１０】
Ｗｅｂサービスコンポーネントから認証要求を受信する前記行為は、前記Ｗｅｂサービスコンポーネントからユーザ名およびパスワードを受信する行為を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
Ｗｅｂサービスコンポーネントから認証要求を受信する前記行為は、前記Ｗｅｂサービスコンポーネントから署名入りＸ．５０９証明書を受信する行為を含むことを特徴とする請求項９に記載の方法。
【請求項１２】
認証応答を前記Ｗｅｂサービスクライアントに送信する前記行為は、カスタムＸＭＬトークン付与トークンを含むＳＯＡＰメッセージを送信する行為を含むことを特徴とする請求項９に記載の方法。
【請求項１３】
アクセス付与応答を前記Ｗｅｂサービスコンポーネントに送信する前記行為は、カスタムＸＭＬサービストークンを含むＳＯＡＰメッセージを送信する行為を含むことを特徴とする請求項９に記載の方法。
【請求項１４】
Ｗｅｂサービスを含むコンピュータシステムにおいて、Ｗｅｂサービスにアクセス権を付与する方法であって、
Ｗｅｂサービスコンポーネントからセキュリティトークン要求を受信する行為であって、前記要求はセキュリティトークンサービスから発行されたサービストークンを含み、前記サービストークンは前記Ｗｅｂサービスコンポーネントの識別情報および前記Ｗｅｂサービスクライアントと前記Ｗｅｂサービスとの間の通信のセキュリティを保護するための暗号化された対称セッション鍵を含み、前記暗号化された対称セッション鍵は前記Ｗｅｂサービスに対応する公開／秘密鍵ペアからの前記公開鍵を使用して暗号化されることと、
前記公開／秘密鍵ペアからの前記秘密鍵で前記暗号化されている対称セッション鍵を解読する行為と、
前記Ｗｅｂサービスコンポーネントが前記サービストークンの内容に基づき前記Ｗｅｂサービスにアクセスすることを許可する行為と、
前記Ｗｅｂサービスクライアントと前記Ｗｅｂサービスとの間の通信のセキュリティを保護するためマスタ対称セッション鍵を生成する行為と、
暗号化されたマスタ対称セッション鍵を生成するために、前記対称セッション鍵を使用して前記マスタ対称セッション鍵を暗号化する行為と、
前記暗号化されたマスタ対称セッション鍵をセキュリティコンテキストトークンとともにセキュリティトークン応答に含める行為と、
前記マスタ対称セッション鍵から導出された導出対称セッション鍵を使用して、前記Ｗｅｂサービスコンポーネントと前記Ｗｅｂサービスとの間の通信のセキュリティを保護するように、前記セキュリティトークン応答を前記Ｗｅｂサービスコンポーネントに送信する行為と、
を備えることを特徴とする方法。
【請求項１５】
セキュリティトークン要求を受信する前記行為は、信頼できる第三者から発行されたカスタムＸＭＬサービストークンを含むＳＯＡＰメッセージを受信する行為を含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記暗号化されたマスタ対称セッション鍵をセキュリティコンテキストトークンとともにセキュリティトークン応答に含める前記行為は、前記Ｗｅｂサービスが分散サービスサイドキャッシュを参照せずに前記バイナリ拡張から前記Ｗｅｂサービスクライアントに対するセキュリティセッション状態を再作成できるように、バイナリ拡張を含む拡張セキュリティコンテキストトークンをＳＯＡＰメッセージに含める行為を含むことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記Ｗｅｂサービスのインスタンスが、前記Ｗｅｂサービスクライアントから前記拡張セキュリティコンテキストトークンを含むＷｅｂサービス要求を受信する行為と、
前記インスタンスが、分散サービスサイドキャッシュを参照せずに前記Ｗｅｂサービスクライアントのセキュリティセッション状態を再作成するために、前記拡張セキュリティコンテキストトークンを使用する行為と、
をさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記セキュリティトークン応答を前記Ｗｅｂサービスコンポーネントに送信する前記行為は、拡張セキュリティコンテキストトークンを含むＳＯＡＰメッセージを送信する行為を含むことを特徴とする請求項１４に記載の方法。
【請求項１９】
前記Ｗｅｂサービスコンポーネントからサービス要求を受信する行為であって、前記サービス要求は前記マスタ対称セッション鍵から導出された第１の導出対称セッション鍵を使用して暗号化され、前記マスタ対称セッション鍵から導出された第２の導出対称セッション鍵を使用してデジタル署名で署名されること、
をさらに備えることを特徴とする請求項１４に記載の方法。
【請求項２０】
前記サービス要求を暗号解読するために、前記第１の導出された対称セッション鍵を使用する行為と、
前記デジタル署名の正当性を確認するために、前記第２の導出された対称セッション鍵を使用する行為と、
前記Ｗｅｂサービスコンポーネントに返す応答データを、サービス応答の中に含める行為と、
前記Ｗｅｂサービスコンポーネントに前記サービス応答を送信する行為であって、前記サービス応答は前記マスタ対称セッション鍵から導出された第３の導出対称セッション鍵を使用して暗号化され、前記マスタ対称セッション鍵から導出された第４の導出対称セッション鍵を使用してデジタル署名で署名されることと、
をさらに備えることを特徴とする請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ化された認証、より具体的には、Ｗｅｂサービスの信頼できる第三者認証に関する。
【背景技術】
【０００２】
コンピュータシステムおよび関係する技術は、社会の様々な側面に影響を及ぼしている。コンピュータシステムの情報処理能力は、実際にわれわれのライフスタイルと仕事のやり方を一変させた。例えば、コンピュータシステムは、コンピュータシステムの出現以前には通常は手作業で行われていた多数のタスク（例えば、文書処理、スケジューリング、およびデータベース管理など）を実行するためのソフトウェアアプリケーションを含む。コンピュータシステムは、さらに、コンピュータシステムが適切な動作状態を保つ、またはコンピュータシステムを適切な動作状態に戻せることを確実にできるメンテナンス、診断、およびセキュリティアプリケーション（例えば、バックアップアプリケーション、ヘルスチェッカー、ウイルス対策アプリケーション、ファイヤウォールなど）も含むことができる。例えば、ウイルス対策アプリケーションは、コンピュータシステムに危害が加えられる前にコンピュータウイルスを検出して除去することができる。
【０００３】
多くのコンピュータシステムは、さらに、通常、互いに結合され、また他の電子デバイスと結合され、コンピュータシステムおよび他の電子デバイスが電子データをやり取りできる有線と無線の両方のコンピュータネットワークを形成する。そのため、コンピュータシステムで実行される多くのタスク（例えば、音声通信、電子メールのアクセス、家庭用電子機器の制御、Ｗｅｂブラウジング、および文書の印刷）は、有線および／または無線コンピュータネットワークを介した多数のコンピュータシステムおよび／または他の電子デバイス間における電子メッセージの交換を含む。
【０００４】
ネットワークは、実際に、単純なネットワーク対応コンピュータシステムが、「インターネット」と呼ばれることが多いネットワーク集合体を経由して地球全体にわたって分散されている数百万台もの他のコンピューティングシステムのうちのどれかと通信できるという非常に生産性の高いものとなっている。このようなコンピューティングシステムとしては、デスクトップ、ラップトップ、またはタブレット型パーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、電話機、またはデジタルネットワーク経由で通信できる他のコンピュータまたはデバイスがある。
【０００５】
さらに、アプリケーションの機能は、数多くの異なるネットワーク接続コンピュータシステム間に広げる、つまり「分散」させることができる。つまり、アプリケーションの第１の部分は、第１のコンピュータシステムに常駐させ、アプリケーションの第２の部分は、第２のコンピュータシステムに常駐させる、というように配置でき、すべて共通のネットワークに接続される。これらの種類のアプリケーションは、通常、「分散アプリケーション」と呼ばれる。分散アプリケーションは、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（「Ｗｅｂ」）上において、特に広く行き渡っている。
【０００６】
異なるプラットフォーム間の相互運用性を発展させるために、Ｗｅｂ上の分散アプリケーションは、１つまたは複数の業界規格に従って開発されることが多い。特に、Ｗｅｂサービスでは、インターネット上で拡張マークアップ言語（「ＸＭＬ」）、簡易オブジェクトアクセスプロトコル（「ＳＯＡＰ」）、Ｗｅｂサービス記述言語（「ＷＳＤＬ」）、および汎用記述発見統合（「ＵＤＤＩ」）オープンスタンダードを使用してＷｅｂベースのアプリケーションを統合する標準化された方法を記述する。ＸＭＬは、データのタグ付けに使用され、ＳＯＡＰは、データの転送に使用され、ＷＳＤＬは、使用可能なサービスを記述するために使用され、ＵＤＤＩは、使用可能なサービスのリストを作成するために使用される。
【０００７】
Ｗｅｂサービスは、企業が互いにまたクライアントと通信するための手段として使用されることが多いが、Ｗｅｂサービスを利用すると、組織間で互いのＩＴシステムを詳細に知らなくてもデータを通信できる。Ｗｅｂサービスは、ネットワーク間のプログラムインターフェースを通じてビジネスロジック、データおよびプロセスを共有する。Ｗｅｂサービス使用すると、時間がかかるカスタムコーディングを行わずに、異なるソースからの異なるアプリケーション同士が通信することができる。Ｗｅｂサービスは通信はＸＭＬで行われるため、どのオペレーティングシステムまたはプログラミング言語にも縛られない。
【０００８】
しかし、Ｗｅｂサービス同士はネットワーク経由で、多くの場合、公衆通信回線によって通信するので、Ｗｅｂサービス間でデータを転送することに関連してセキュリティリスクが存在する。例えば、悪意あるユーザが、ネットワーク間でのデータ転送中にＷｅｂサービスデータの傍受を試みる場合がある。また、一方のＷｅｂサービスに偽装プログラムへのＷｅｂサービスデータの送信を実行させようと他方のＷｅｂサービスの素性を偽装するプログラムを実装する可能性がある。そこで、例えば、ＷＳ−ｓｅｃｕｒｉｔｙ、ＷＳ−ＳｅｃｕｒｅＣｏｎｖｅｒｓａｔｉｏｎ、およびＷＳ−Ｔｒｕｓｔなどの多数のＷｅｂサービス規格により、例えば、ＳＯＡＰメッセージの署名および暗号化、さらにセキュリティトークンの要求および受信など、これらのセキュリティ問題の一部を解決するための基礎的要素を実現する。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、Ｗｅｂサービス規格は、そのセキュリティ要件をすべて満たすためにＷｅｂサービスが依拠できるエンドツーエンドのセキュリティプロトコルを構成していない。つまり、共通アプリケーションセキュリティ要件を使用可能にするために異なるＷｅｂサービス規格を併用できる方法を記述する規範的方法がないということである。例えば、Ｗｅｂサービス群が、信頼するＷｅｂサービスの識別情報プロバイダ（ｉｄｅｎｔｉｔｙ  ｐｒｏｖｉｄｅｒ）として機能する信頼できる第三者に対しユーザ認証責任（ｕｓｅｒ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｒｅｓｐｏｎｓｉｂｉｌｉｔｙ）を信頼して委任することができる、もしあるとすれば、限られたメカニズムがある。さらに、信頼できる第三者が、例えば、ユーザ名／パスワードおよびＸ．５０９証明書などの共通の認証メカニズムを通じてユーザを認証し、初期ユーザ認証を使用して、Ｗｅｂサービスとのその後の安全なセッションをブートストラップできるようにする、もしあるとすれば、限られたメカニズムがある。さらに、Ｗｅｂサービスが信頼できる第三者により発行されたサービスセッショントークンを使用してユーザ識別情報コンテキストを構成し、サービスサイドの分散キャッシュを使用しなくてもセキュリティ状態を再構成できるようにする、もしあるとすれば、限られたメカニズムがある。
【００１０】
したがって、Ｗｅｂサービスに対する信頼できる第三者認証を使いやすくするようなシステム、方法、およびコンピュータプログラム製品があれば有益であろう。
【課題を解決するための手段】
【００１１】
従来技術の前記の問題点は、Ｗｅｂサービスの信頼できる第三者認証のための方法、システム、およびコンピュータプログラム製品を対象とする本発明の原理により克服される。Ｗｅｂサービスコンポーネントは、認証要求を認証サービスに送信する。認証サービスは、その要求を受信すると、認証要求に含まれる認証データの正当性を確認する。
【００１２】
認証サービスは、Ｗｅｂサービスコンポーネントに認証応答を送信する。認証応答は、Ｗｅｂサービスコンポーネントとアクセス権付与サービスとの間の通信のセキュリティを確実にするための第１の対称セッション鍵の２つのインスタンスを含む。セッション鍵の第１のインスタンスは、第１の証明トークンの中に含まれ、Ｗｅｂサービスクライアントへの配信に関してセキュリティを保証される。セッション鍵の第２のインスタンスは、トークン付与トークンに含まれ、セキュリティトークンサービスの秘密対称鍵で暗号化される。
【００１３】
Ｗｅｂサービスコンポーネントは、認証応答を受信する。Ｗｅｂサービスコンポーネントは、Ｗｅｂサービスへのアクセスについてトークン付与トークンを含むアクセス要求をアクセス付与サービスに送信する。アクセス付与サービスは、そのアクセス要求を受信すると、Ｗｅｂサービスコンポーネントがトークン付与トークンの内容に基づきセキュリティトークンサービスに対する認証セッションを持つことを検証する。
【００１４】
アクセス付与サービスは、Ｗｅｂサービスコンポーネントにアクセス付与応答を送信する。アクセス付与応答は、ＷｅｂサービスコンポーネントとＷｅｂサービスとの間の通信のセキュリティを確実にするための第２の対称セッション鍵の２つのインスタンスを含む。第２の対称セッション鍵の第１のインスタンスは、第１の対称セッション鍵で暗号化され、第２の証明トークンの中に入れられる。第２の対称セッション鍵の第２のインスタンスは、そのＷｅｂサービスに対応する公開／秘密鍵のペアからの公開鍵により暗号化され、サービストークンに含まれる。
【００１５】
Ｗｅｂサービスコンポーネントは、アクセス付与応答を受信する。Ｗｅｂサービスコンポーネントは、Ｗｅｂサービスコンポーネントおよびサービストークンの識別情報を含むセキュリティトークン要求をＷｅｂサービスに送信する。Ｗｅｂサービスは、セキュリティトークン要求を受信すると、公開／秘密鍵の対応する秘密鍵を使用して、サービストークンに含まれる第２の対称セッション鍵の第２のインスタンスを解読する。Ｗｅｂサービスでは、サービストークンの内容に基づきＷｅｂサービスコンポーネントがＷｅｂサービスにアクセスすることを許可する。
【００１６】
Ｗｅｂサービスは、ＷｅｂサービスクライアントとＷｅｂサービスとの間の通信のセキュリティを保護するため、マスタ対称セッション鍵を生成する。Ｗｅｂサービスは、暗号化されたマスタ対称セッション鍵を生成するため第２の対称セッション鍵を使用してマスタ対称セッション鍵を暗号化する。Ｗｅｂサービスは、暗号化されたマスタ対称セッション鍵をセキュリティコンテキストトークンとともにセキュリティトークン応答に含める。Ｗｅｂサービスは、セキュリティトークン応答をＷｅｂサービスコンポーネントに送信し、マスタ対称セッション鍵から導出された導出対称セッション鍵を使用してＷｅｂサービスコンポーネントとＷｅｂサービスとの間の通信のセキュリティが保護されるようにできる。Ｗｅｂサービスコンポーネントは、セキュリティトークン応答を受信すると、第２の対称セッション鍵を使用して、マスタ対称セッション鍵を解読する。
【００１７】
本発明のこれらおよび他の目的および特徴は、以下の説明および付属の請求項を読むとよりいっそう明らかになる。あるいは、以下で述べているように本発明を実施することで学ぶことができる。
【００１８】
本発明の上記およびその他の利点および特徴をさらに明確にするために、付属の図面に例示されている本発明の特定の実施形態を参照しながら、本発明についてさらに具体的に説明する。これらの図面は、本発明の典型的な実施形態のみを示しており、したがって、本発明の範囲を制限するものとみなされないことは理解されるであろう。本発明は、付属の図面を使用して付加的な特異性および詳細と併せて説明される。
【発明を実施するための最良の形態】
【００１９】
前述の従来技術における問題点は、Ｗｅｂサービスの信頼できる第三者認証のための方法、システム、およびコンピュータプログラム製品を対象とする本発明の原理により克服される。Ｗｅｂサービスコンポーネントは、認証要求を認証サービスに送信する。認証サービスは、その要求を受信すると、認証要求に含まれる認証データの正当性を確認する。
【００２０】
認証サービスは、Ｗｅｂサービスコンポーネントに認証応答を送信する。認証応答は、Ｗｅｂサービスコンポーネントとアクセス権付与サービスとの間の通信のセキュリティを確実にするための第１の対称セッション鍵の２つのインスタンスを含む。セッション鍵の第１のインスタンスは、第１の証明トークンの中に含まれ、Ｗｅｂサービスクライアントへの配信に関してセキュリティを保証される。セッション鍵の第２のインスタンスは、トークン付与トークンに含まれ、セキュリティトークンサービスの秘密対称鍵で暗号化される。
【００２１】
Ｗｅｂサービスコンポーネントは、認証応答を受信する。Ｗｅｂサービスコンポーネントは、Ｗｅｂサービスへのアクセスについてトークン付与トークンを含むアクセス要求をアクセス付与サービスに送信する。アクセス付与サービスは、そのアクセス要求を受信すると、Ｗｅｂサービスコンポーネントがトークン付与トークンの内容に基づきセキュリティトークンサービスに対する認証セッションを持つことを検証する。
【００２２】
アクセス付与サービスは、Ｗｅｂサービスコンポーネントにアクセス付与応答を送信する。アクセス付与応答は、ＷｅｂサービスコンポーネントとＷｅｂサービスとの間の通信のセキュリティを確実にするための第２の対称セッション鍵の２つのインスタンスを含む。第２の対称セッション鍵の第１のインスタンスは、第１の対称セッション鍵で暗号化され、第２の証明トークンの中に入れられる。第２の対称セッション鍵の第２のインスタンスは、そのＷｅｂサービスに対応する公開／秘密鍵のペアからの公開鍵により暗号化され、サービストークンに含まれる。
【００２３】
Ｗｅｂサービスコンポーネントは、アクセス付与応答を受信する。Ｗｅｂサービスコンポーネントは、Ｗｅｂサービスコンポーネントおよびサービストークンの識別情報を含むセキュリティトークン要求をＷｅｂサービスに送信する。Ｗｅｂサービスは、セキュリティトークン要求を受信すると、公開／秘密鍵の対応する秘密鍵を使用して、サービストークンに含まれる第２の対称セッション鍵の第２のインスタンスを解読する。Ｗｅｂサービスでは、サービストークンの内容に基づきＷｅｂサービスコンポーネントがＷｅｂサービスにアクセスすることを許可する。
【００２４】
Ｗｅｂサービスは、ＷｅｂサービスクライアントとＷｅｂサービスとの間の通信のセキュリティを保護するため、マスタ対称セッション鍵を生成する。Ｗｅｂサービスは、暗号化されたマスタ対称セッション鍵を生成するため第２の対称セッション鍵を使用して、マスタ対称セッション鍵を暗号化する。Ｗｅｂサービスは、暗号化されたマスタ対称セッション鍵をセキュリティコンテキストトークンとともにセキュリティトークン応答に含める。Ｗｅｂサービスは、セキュリティトークン応答をＷｅｂサービスコンポーネントに送信し、マスタ対称セッション鍵から導出された導出対称セッション鍵を使用して、ＷｅｂサービスコンポーネントとＷｅｂサービスとの間の通信のセキュリティが保護されるようにできる。Ｗｅｂサービスコンポーネントは、セキュリティトークン応答を受信すると、第２の対称セッション鍵を使用して、マスタ対称セッション鍵を解読する。
【００２５】
本発明の範囲内の実施形態は、格納されているコンピュータ実行可能命令またはデータ構造体を搬送するまたは保持するためのコンピュータ読取り可能媒体も含む。そのようなコンピュータ読取り可能媒体は、汎用または専用コンピュータシステムからアクセスできる、使用可能な媒体とすることができる。例えば、限定はしないが、このようなコンピュータ読取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＣＤ−ＲＯＭ、または光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、またはコンピュータ実行可能命令、コンピュータ可読命令、またはデータ構造の形で所望のプログラムコード手段を搬送または格納するために使用でき、汎用または専用コンピュータシステムによりアクセス可能なその他の媒体を含むことができる。
【００２６】
この説明および請求項では、「ネットワーク」は、コンピュータシステムおよび／またはモジュール間での電子データの移送を可能にする１つまたは複数のデータリンクとして定義される。ネットワークまたは他の通信接続（有線、無線、または有線と無線の組合せ）を介して、情報がコンピュータシステムに転送または供給される場合、その接続はコンピュータ読取り可能媒体として適切にみなされる。したがって、そのような接続は、コンピュータ読取り可能媒体と呼んで差し支えない。上記の組合せも、コンピュータ読取り可能媒体の範囲に含めなければならない。コンピュータ実行可能命令は、例えば、汎用コンピュータシステムまたは専用コンピュータシステムに、特定の機能または機能群を実行させる命令およびデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形式命令であるか、またはソースコードであってもよい。
【００２７】
この説明および請求項では、「コンピュータシステム」は、電子データに対しオペレーションを実行するために連携動作する、１つもしくは複数のソフトウェアモジュール、１つもしくは複数のハードウェアモジュール、またはそれらの組合せとして定義される。例えば、コンピュータシステムの定義は、パーソナルコンピュータのハードウェアコンポーネントだけでなく、パーソナルコンピュータのオペレーティングシステムなどのソフトウェアモジュールも含む。これらのモジュールの物理的なレイアウトは、重要ではない。コンピュータシステムは、ネットワークを介して結合された１つまたは複数のコンピュータを含むことができる。同様に、コンピュータシステムは、内部モジュール（メモリおよびプロセッサなど）が連携して電子データに対しオペレーションを実行する単一の物理的デバイス（携帯電話またはＰＤＡなど）を含むことができる。
【００２８】
当業者であれば、本発明がパーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ポケベルなどを含む様々な種類のコンピュータシステム構成とともに、ネットワークコンピューティング環境内で実施できることを理解するであろう。また、本発明は、通信ネットワークを通じて（有線データリンク、無線データリンク、または有線と無線データリンクの組合せにより）リンクされているローカルおよびリモートコンピュータシステムの両方がタスクを実行する分散システム環境において実施することもできる。分散システム環境では、プログラムモジュールは、ローカルおよびリモートの両方のメモリ記憶デバイス内に配置され得る。
【００２９】
図１Ａは、Ｗｅｂサービスの信頼できる第三者認証を容易にするコンピュータアーキテクチャ１００の一実施例を示す図である。コンピュータアーキテクチャ１００に示されているように、Ｗｅｂサービスクライアント１０１、セキュリティトークンサービス１０２、およびＷｅｂサービス１０８は、ネットワーク１０５に接続されている。ネットワーク１０５は、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）とすることができ、さらにはインターネットとすることさえもできる。ネットワーク１０５に接続されたコンピュータシステムおよびモジュールは、ネットワーク１０５に接続されている他のコンピュータシステムおよびモジュールとの間でデータの送受信を行うことができる。したがって、Ｗｅｂサービスクライアント１０１、セキュリティトークンサービス１０２、およびＷｅｂサービス１０８だけでなく、他の接続されているコンピュータシステムおよびモジュール（図に示されていない）は、メッセージ関係データを作成し、ネットワーク１０５を経由してメッセージ関係データ（例えば、インターネットプロトコル（「ＩＰ」）データグラムおよび伝送制御プロトコル（「ＴＣＰ」）、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）、簡易メール転送プロトコル（「ＳＭＴＰ」）などのＩＰデータグラムを使用する他の上位層のプロトコル）を交換することができる。例えば、Ｗｅｂサービスクライアント１０１およびＷｅｂサービス１０８は、ＳＯＡＰエンベロープを作成し、ネットワーク１０５経由でＳＯＡＰエンベロープ（拡張可能マークアップ言語（「ＸＭＬ」）データを含む）を交換することができる。
【００３０】
コンピュータアーキテクチャ１００内では、ラベル部分「Ｐｕ」を含む図面ラベルは、公開／秘密鍵ペアの公開鍵を示すために使用され、またラベル部分「Ｐｒ」を含む図面ラベル、公開／秘密鍵ペアの秘密鍵を示すために使用されることは理解されるであろう。さらに、ラベル部分ＰｕまたはＰｒを含む類似の番号が振られている図面ラベルは、同じ公開／秘密鍵ペアのそれぞれの公開鍵または対応する秘密鍵を指す。そのため、２つの異なる公開／秘密鍵ペアが、コンピュータアーキテクチャ１００内に示される。一方の公開／秘密鍵ペアは、公開鍵１６３Ｐｕ／秘密鍵１６３Ｐｒとして示され、他方の公開／秘密鍵ペアは、公開鍵１６４Ｐｕ／秘密鍵１６４Ｐｒとして示される。公開／秘密鍵ペアは、公開鍵インフラストラクチャ（「ＰＫＩ」）の一部とすることができる。
【００３１】
秘密鍵１６３Ｐｒは、セキュリティトークンサービス１０２に対応する秘密鍵とすることができる。したがって、Ｗｅｂサービスクライアント１０１およびＷｅｂサービス１０８に対し、対応する公開鍵である公開鍵１６３Ｐｕへのアクセス権を与えることができる。同様に、秘密鍵１６４Ｐｒは、Ｗｅｂサービス１０８に対応する秘密鍵とすることができる。したがって、Ｗｅｂサービスクライアント１０１およびセキュリティトークンサービス１０２に対し、対応する公開鍵である公開鍵１６４Ｐｕへのアクセス権を与えることができる。したがって、セキュリティトークンサービス１０２、Ｗｅｂサービスクライアント１０１、Ｗｅｂサービス１０８は、公開／秘密鍵ペア公開鍵１６３Ｐｕ／秘密鍵１６３Ｐｒおよび公開鍵１６４Ｐｕ／秘密鍵１６４Ｐｒを使用してデータの署名、署名の正当性の確認、データの暗号化、およびデータの解読を適宜行うようにできる。
【００３２】
コンピュータアーキテクチャ１００内では、ラベル部分「Ｄｒ」を含む描画ラベルは、他の対称鍵から導出されなければならない導出された対称鍵を指すために使用されることは理解されるであろう。例えば、図１Ｂを簡単に参照すると、導出されたクライアント／ＳＴＳセッション鍵１１４Ｄｒは、クライアント／ＳＴＳセッション鍵１１４から導出される。したがって、セキュリティトークンサービス１０２、Ｗｅｂサービスクライアント１０１、Ｗｅｂサービス１０８は、さらに、（場合によっては導出される）対称鍵（例えば、セッション鍵）を使用してデータの署名、署名の正当性の確認、データの暗号化、およびデータの解読を行うようにもできる。対称鍵は、コンピュータアーキテクチャ１００内のコンポーネント間で共有することができるし、または特定のコンポーネントへの秘密を維持することもできる。例えば、セキュリティトークンサービス１０２は、秘密の対称鍵１６１を保持できる。
【００３３】
セキュリティトークンサービス１０２は、認証サービス１０３およびアクセス付与サービス１０６を含む。認証サービス１０３は、Ｗｅｂサービスコンポーネント（例えば、Ｗｅｂサービスクライアント１０１）から認証要求を受信し、Ｗｅｂサービスコンポーネントを認証し、認証応答を要求側Ｗｅｂサービスコンポーネントに返すように構成される。認証モジュール１０３は、Ｗｅｂサービスコンポーネントを認証するために、例えば、信用証明データベースまたは証明書正当性確認データなどの認証データ１０４を参照することができる。アクセス付与サービス１０６は、Ｗｅｂサービスコンポーネントからアクセス付与要求を受信し、アクセス権をＷｅｂサービスに付与すべきかどうかを判定し、アクセス付与応答を要求側Ｗｅｂサービスコンポーネントに返すように構成される。アクセス付与サービス１０６は、アクセスを付与すべきかどうかを判定するために、例えば、Ｗｅｂサービス管理者により設定されたポリシーセットなどのポリシーデータ１０７を参照することができる。
【００３４】
Ｗｅｂサービスクライアント１０１は、分散アプリケーションのクライアント部分とすることができる。信頼１９１は、Ｗｅｂサービスクライアント１０１がセキュリティトークンサービス１０２との確立された信頼関係を持つことを表す。つまり、Ｗｅｂサービスクライアント１０１は、セキュリティトークンサービス１０２を信頼する。信頼１９１は、事前に設定できる、および／または帯域外の通信から得られる。例えば、信頼１９１は、対称鍵信頼またはＸ．５０９証明書信頼とすることができる。
【００３５】
Ｗｅｂサービス１０８は、分散アプリケーションのサーバ部分とすることができる。いくつかの実施形態では、Ｗｅｂサービス１０８は、例えば、インスタンス１０８Ａ、１０８Ｂ、および１０８Ｃなどの複数のＷｅｂサービスインスタンスを含む、Ｗｅｂサービスファームである。それぞれのインスタンス１０８Ａ、１０８Ｂ、および１０８Ｃに接続されているＷｅｂサービスクライアントの状態情報を、状況に応じて分散キャッシュ１０９内に保持し、Ｗｅｂサービスクライアントがインスタンス１０８Ａ、１０８Ｂ、および１０８Ｃの間の遷移を効率よく行えるようにできる。
【００３６】
信頼１９２は、Ｗｅｂサービス１０８がセキュリティトークンサービス１０２との確立された信頼関係を持つことを表す。つまり、Ｗｅｂサービス１０８は、セキュリティトークンサービス１０２を信頼する。信頼１９２は、事前に設定できる、および／または帯域外の通信から得られる。例えば、信頼１９２は、対称鍵信頼またはＸ．５０９証明書信頼とすることができる。
【００３７】
図１Ｂは、コンピュータアーキテクチャ１００からＷｅｂサービスクライアント１０１およびセキュリティトークンサービス１０２の別の記述を示している。図１Ｂは、さらに、Ｗｅｂサービスクライアント１０１とセキュリティトークンサービス１０２との間で（例えば、ネットワーク１０５を介して）交換される多数の電子メッセージも表す。示されているように、図１Ｂのデータ要素の一部には、かっこで囲まれた説明が付随している。例えば、署名１１９は、かっこで囲まれた説明「（秘密対称鍵１６１）」を含む。これらのかっこで囲まれた説明は、暗号化されたデータの暗号化または署名入りデータの署名に使用された鍵またはデータのセキュリティ保護方法を示すために使用される。
【００３８】
したがって、署名１１９に戻ると、かっこで囲まれた説明「（秘密対称鍵１６１）」は、秘密対称鍵１６１が署名１１９の生成に使用されたことを示す。同様に、暗号化されたクライアントサービスセッション鍵１３１Ｂを参照すると、そこでは、かっこで囲まれた説明「（公開鍵１６４Ｐｕ）」は、公開鍵１６４Ｐｕが暗号化されたクライアントサービスセッション鍵１３１Ｂを暗号化するために使用されたことを示す。次に、セキュリティ保護されているクライアント／ＳＴＳセッション鍵１１４Ａを参照すると、かっこで囲まれた説明「（セキュアチャネルまたはＸ．５０９）」は、セキュリティ保護されたクライアント／ＳＴＳセッション鍵１１４が、セキュアチャネルを経由してまたはＸ．５０９証明書内で公開鍵を使用してセキュリティ保護されていることを示す。
【００３９】
図２は、Ｗｅｂサービスにアクセスするためのサービストークンを取得する方法２００の例のフロー図である。方法２００は、図１Ｂ内のコンポーネントおよびデータに関して説明される。
【００４０】
方法２００は、認証要求を送信する行為（ａｃｔ）を含む（行為２０１）。例えば、Ｗｅｂサービスクライアント１０１は、認証要求１１１を認証サービス１０３に送信することができる。認証要求１１１は、例えば、ＨＴＴＰＳなどのセキュアチャネルを使用して保護されているユーザ名およびパスワードを含むことができる。それとは別に、認証要求１１１は、Ｗｅｂサービスクライアント１０１に対応する秘密鍵（図に示されていない）で署名されているＸ．５０９証明書を含むことができる。
【００４１】
方法２００は、認証要求を受信する行為を含む（行為２０５）。例えば、認証サービス１０３は、認証要求１１１を受信することができる。方法２００は、認証データの正当性を確認する行為を含む（行為２０６）。例えば、認証サービス１０３は、認証要求１１１に含まれるユーザ名およびパスワードを認証データ１０４（例えば、信用証明データベース）と比較することができる。それとは別に、認証サービス１０３は、認証データ１０４（例えば、ＰＫＩ）を参照して、Ｗｅｂサービスクライアント１０１の公開鍵を特定し、その公開鍵を使用して認証要求１１１上の署名の正当性を確認することができる。
【００４２】
方法２００は、対称セッション鍵を含む認証応答を送信する行為を含む（行為２０７）。例えば、セキュリティトークンサービス１０２は、認証応答１１２をＷｅｂサービスクライアント１０１に送信することができる。認証応答１１２は、証明トークン１１３およびトークン付与トークン１１６を含む。証明トークン１１３およびトークン付与トークン１１６は両方とも、Ｗｅｂサービスクライアント１０１とアクセス付与サービス１０６との間の通信のセキュリティを保護するために使用できるクライアント／ＳＴＳセッション鍵１１４（対称鍵）のインスタンスを含む。証明トークン１１３は、セキュアチャネルを経由して、またはＸ．５０９証明書内の公開鍵を通じて暗号化されたセキュリティ保護されたクライアント／ＳＴＳセッション鍵１１４Ａを含む。
【００４３】
トークン付与トークン１１６は、秘密対称鍵１６１を使用して暗号化された暗号化クライアント／ＳＴＳセッション鍵１１４Ｂを含む。トークン付与トークン１１６は、さらに、トークン付与トークン１１８がいつ発行されたかを示すタイムスタンプ１１８を含む。改ざんを防止するため、トークン付与トークン１１６は、さらに、秘密対称鍵１６１を使用して生成された署名１１９も含む。それとは別に、異なる秘密対称鍵を使用して、署名１１９を生成することができる。
【００４４】
認証応答１１２は、秘密鍵１６３Ｐｒ（セキュリティトークンサービス１０２の秘密鍵）を使用して生成された署名１２１を含む。署名１２１は、セキュリティトークンサービス１０２が認証応答１１２を作成したことを受信側コンポーネントに指示する。
【００４５】
方法２００は、対称セッション鍵を含む認証応答を受信する行為を含む（行為２０２）。例えば、Ｗｅｂサービスクライアント１０１は、認証応答１１２を受信することができる。Ｗｅｂサービス１０１は、公開鍵１６３Ｐｕを使用して署名１２１の正当性を確認する（それによって認証応答１１２の正当性を確認する）。Ｗｅｂサービスクライアント１０１は、証明トークン１１３からクライアント／ＳＴＳセッション鍵１１４Ａを抽出し、クライアント／ＳＴＳセッション鍵１１４のコピーを保持することができる。
【００４６】
Ｗｅｂサービスクライアント１０１は、例えば、導出されたクライアント／ＳＴＳセッション鍵１１４Ｄｒなどの他のセッション鍵を、クライアント／ＳＴＳセッション鍵１１４から導出することができる。その後、Ｗｅｂサービスクライアント１０１がＷｅｂサービスと通信する場合に、Ｗｅｂサービスクライアント１０１は、（場合によっては導出される）セッション鍵を使用して、アクセス付与サービス１０６との通信のセキュリティを保護する。また、セキュリティトークンサービス１０２は、クライアント／ＳＴＳセッション鍵１１４から他のセッション鍵を導出することもありえる。
【００４７】
Ｗｅｂサービスクライアント１０１およびセキュリティトークンサービス１０２は、Ｗｅｂサービスクライアント１０１およびセキュリティトークンサービス１０２で導出された鍵が導出後もいぜんとして対称的であるように、同一の鍵導出アルゴリズムを使用することができる。したがって、セキュリティトークンサービス１０２は、さらに、クライアント／ＳＴＳセッション鍵１１４から導出クライアント／ＳＴＳセッション鍵１１４Ｄｒを導出することもできる。
【００４８】
方法２００は、Ｗｅｂサービスへのアクセスのアクセス要求を送信する行為を含む（行為２０３）。例えば、Ｗｅｂサービスクライアント１０１は、アクセス付与サービス１０６にアクセス付与要求１２２を送信することができる。アクセス付与要求１２２は、トークン付与トークン１１６を含む。アクセス付与要求１２２は、導出されたクライアント／ＳＴＳセッション鍵１１４Ｄｒを使用して生成された署名１２７を含む。署名１２２は、アクセス付与要求１２２がＷｅｂサービスクライアント１０１とセキュリティトークンサービス１０２との間の認証セッションに含まれることを示す。
【００４９】
方法２００は、Ｗｅｂサービスへのアクセスのアクセス要求を受信する行為を含む（行為２０８）。例えば、アクセス付与サービス１０６は、Ｗｅｂサービスクライアント１０１からアクセス付与要求１２２を受信することができる。方法２００は、認証セッションを検証する行為を含む（行為２０９）。例えば、アクセス付与サービス１０６は、Ｗｅｂサービスクライアント１０１がセキュリティトークンサービス１０２に対する認証されたセッションを持つことを検証できる。アクセス付与要求１２２の受信後に、アクセス付与サービス１０６は、導出されたクライアント／ＳＴＳセッション鍵１１４Ｄｒを使用して署名１２７の正当性を確認できる（それにより、アクセス付与要求１２２の正当性を確認する）。
【００５０】
アクセス付与サービス１０６は、その後、秘密対称鍵１６１を使用して署名１１９の正当性を確認できる（それにより、トークン付与トークン１１６の正当性を確認する）。アクセス付与サービス１０６は、さらに、秘密対称鍵１１６を使用して暗号化されたクライアント／ＳＴＳセッション鍵１１４Ｂを解読して、クライアント／ＳＴＳセッション鍵１１４を公開することもできる。クライアント／ＳＴＳセッション鍵１１４のインスタンスを含むトークン付与トークン１１６に基づき、アクセス付与サービスでは、Ｗｅｂサービスクライアント１０１がセキュリティトークンサービス１０２への認証セッションを持つことを判定する。
【００５１】
方法２００は、アクセス応答を送信する行為を含む（行為２１１）。例えば、アクセス付与サービス１０６は、Ｗｅｂサービスクライアント１０１にアクセス付与応答１２８を送信することができる。アクセス付与応答１２８は、証明トークン１２９およびサービストークン１３２を含む。証明トークン１２８およびサービストークン１３２は両方とも、Ｗｅｂサービスクライアント１０１とＷｅｂサービス１０８との間の通信のセキュリティを保護するために使用できるクライアントサービスセッション鍵１３１（対称鍵）のインスタンスを含む。証明トークン１２９は、クライアント／ＳＴＳセッション鍵１１４（またはその導出）を使用して暗号化されている暗号化クライアントサービスセッション鍵１３１Ａを含む。したがって、Ｗｅｂサービスクライアント１０１は、（クライアント／ＳＴＳセッション鍵１１４またはその導出したものを使用して）暗号化クライアントサービスセッション鍵１３１Ａを解読して、クライアントサービスセッション鍵１３１を公開することができる。
【００５２】
サービストークン１３２は、公開鍵１６４Ｐｕ（Ｗｅｂサービス１０８の公開鍵）を使用して暗号化されている暗号化クライアントサービスセッション鍵１３１Ｂを含む。サービストークン１３２がセキュリティトークンサービス１０２からのものであることを示すために、サービストークン１３２は、秘密鍵１６３Ｐｒ（セキュリティトークンサービス１０２用の秘密鍵）を使用して生成された署名１３４を含む。したがって、Ｗｅｂサービス１０８は、公開鍵１６３Ｐｕ（セキュリティトークンサービス１０２の対応する公開鍵）を使用して署名１３４の正当性を確認し、サービストークン１３２がセキュリティトークンサービス１０２から送信されたことを検証することができる。Ｗｅｂサービス１０８は、さらに、秘密鍵１６４Ｐｒ（Ｗｅｂサービス１０８の対応する秘密鍵）を使用して、暗号化クライアントサービスセッション鍵１３１Ｂを解読することもできる。
【００５３】
したがって、クライアントサービスセッション鍵は、セキュリティ保護された方法でクライアントとサービスの両方に転送できる。
【００５４】
方法２００は、アクセス応答を受信する行為を含む（行為２０４）。例えば、Ｗｅｂサービスクライアント１０１は、アクセス付与応答１２８を受信することができる。証明トークン１２９から、Ｗｅｂサービスクライアント１０１は、（クライアント／ＳＴＳセッション鍵１１４またはその導出を使用して）暗号化クライアントサービスセッション鍵１３１Ａを解読して、クライアントサービスセッション鍵１３１を公開することができる。Ｗｅｂサービスクライアント１０１は、クライアントサービスセッション鍵１３１を格納することで、Ｗｅｂサービス１０８とのその後通信をやりやすくできる。Ｗｅｂサービスクライアント１０１は、さらに、サービストークン１３２を格納しておいて、後で、Ｗｅｂサービス１０８に転送することができる。
【００５５】
図１Ｃは、コンピュータアーキテクチャ１００からのＷｅｂサービスクライアント１０１、セキュリティトークンサービス１０２およびＷｅｂサービス１０８の他の記述を示している。図１Cは、さらに、Ｗｅｂサービスクライアント１０１とＷｅｂサービス１０８との間で（例えば、ネットワーク１０５を介して）交換される多数の電子メッセージも表す。図３は、ＷｅｂサービスコンポーネントおよびＷｅｂサービスとの間の通信のセキュリティを保護する方法３００の例のフロー図である。方法３００は、図１Ｃ内のコンポーネントおよびデータに関して説明される。
【００５６】
方法３００は、セキュリティトークン要求を送信する行為を含む（行為３０１）。例えば、Ｗｅｂサービスクライアント１０１は、Ｗｅｂサービス１０８のインスタンス１０８Ａにセキュリティトークン要求１３６を送信することができる。セキュリティトークン要求１３６は、（セキュリティトークンサービス１０２から発行された）サービストークン１３２を含む。セキュリティトークン要求１３６は、クライアントサービスセッション鍵１３１を使用して生成された署名１４１を含む。セキュリティトークン要求１３６は、さらに、Ｗｅｂサービス１０１に対応する識別情報も含むことができる。
【００５７】
方法３００は、セキュリティトークン要求を受信する行為を含む（行為３０４）。例えば、インスタンス１０８Ａは、Ｗｅｂサービスクライアント１０１からセキュリティトークン要求１３６を受信することができる。方法３００は、秘密鍵を使用して暗号化されたセッション鍵を解読する行為を含む（行為３０５）。例えば、インスタンス１０８Ａは、秘密鍵１６４Ｐｒを使用して暗号化クライアントサービスセッション鍵１３１Ｂを解読して、クライアントサービスセッション鍵１３１を公開することができる。インスタンス１０８Ａは、さらに、公開鍵１６３Ｐｕを使用して署名１３４の正当性を確認して、サービストークン１３２がセキュリティトークンサービス１０２から送信されたことを検証することもできる。その後、インスタンス１０８Ａは、（すでに公開されている）クライアントサービスセッション鍵１３１を使用して署名１４１の正当性を確認することができる。
【００５８】
方法３００は、ＷｅｂサービスコンポーネントがＷｅｂサービスにアクセスすることを許可する行為を含む（行為３０６）。例えば、Ｗｅｂサービス１０８は（指定されたポリシーに基づき）、Ｗｅｂサービスクライアント１０１がＷｅｂサービス１０８にアクセスすることを許可することができる。方法３００は、マスタ対称セッション鍵を生成する行為を含む（行為３０７）。例えば、Ｗｅｂサービス１０８は、Ｗｅｂサービスクライアント１０１とＷｅｂサービス１０８のインスタンスとの間の通信のセキュリティを保護するためマスタクライアントサービスセッション鍵１９３を生成することができる。
【００５９】
方法３００は、マスタ対称セッション鍵を暗号化する行為を含む（行為３０８）。例えば、インスタンス１０８Ａは、クライアントサービスセッション鍵１３１を使用してマスタクライアントサーバセッション鍵１９３を暗号化して、暗号化されたマスタクライアントサーバセッション鍵１９３Ａを生成することができる。インスタンス１０８Ａは、セキュリティトークン応答１４２内にセキュリティコンテキストトークン１４６とともに暗号化されたマスタクライアントサーバセッション鍵１９３Ａを含めることができる。セキュリティトークンコンテキストは、Ｗｅｂサービスクライアント１０１とＷｅｂサービス１０８のインスタンスとの間の通信のセキュリティを保護するためのセキュリティコンテキストデータを含む。
【００６０】
いくつかの実施形態においては、セキュリティコンテキストトークン１４６は、オプションのバイナリ拡張１４７を含む。バイナリ拡張１４７を受信するＷｅｂサービスインスタンスは、バイナリ拡張１４７に含まれるデータを使用して、サービスサイドの分散キャッシュを参照しなくても、セキュリティ状態を再構築できる。したがって、バイナリ拡張１４７を使用する実施形態では、Ｗｅｂサービスは、サービスサイドの分散キャッシュを維持する作業から解放される。さらに、セキュリティコンテクスト情報をバイナリ形式で表すことで、大量のリソースを使う可能性のある、ＸＭＬ正規化を実行することなく、セキュリティコンテキストトークンの処理を簡単に行えるようになる。
【００６１】
方法３００は、セキュリティトークン応答を送信する行為を含む（行為３０９）。例えば、インスタンス１０８Ａは、Ｗｅｂサービスクライアント１０１にセキュリティトークン応答１４２を送信することができる。方法３００は、セキュリティトークン応答を受信する行為を含む。例えば、Ｗｅｂサービスクライアント１０１は、インスタンス１０８Ａからセキュリティトークン応答１４２を受信することができる。Ｗｅｂサービスクライアント１０１は、クライアントサービスセッション鍵１３１を使用して暗号化マスタクライアントサーバセッション鍵１９３Ａを解読して、マスタクライアントサーバセッション鍵１９３を公開することができる。したがって、Ｗｅｂサービスクライアント１０１とＷｅｂサービス１０８とのその後の通信は、マスタクライアントサービスセッション鍵またはその導出したものを使用してセキュリティを保護できる。
【００６２】
共通鍵導出アルゴリズムに従って、Ｗｅｂサービスクライアント１０１およびＷｅｂサービス１０８は両方とも、例えば、マスタクライアントサーバセッション鍵１９３Ｄｒ１、１９３Ｄｒ２、１９３Ｄｒ３、および１９３Ｄｒ４などの追加対称セッション鍵をマスタクライアントサーバセッション鍵１９３から導出できる。Ｗｅｂサービスクライアント１０１およびＷｅｂサービス１０８は、その後、相互の通信のセキュリティを保護するために導出された鍵を使用することができる。
【００６３】
方法３００は、導出された鍵を使用してデータを交換する行為を含む（行為３０３および行為３１０）。例えば、Ｗｅｂサービスクライアント１０１は、導出された鍵１９３Ｄｒ１を使用して暗号化されたサービス要求１４８を生成することができる。暗号化されたサービス要求１４８は、セキュリティコンテキストトークン１４６および要求データ１９４を含む。暗号化されたサービス要求１４８は、さらに、導出された鍵１９３Ｄｒ３を使用して生成された署名１５２も含む。
【００６４】
インスタンス１０８Ｃは、暗号化されたサービス要求１４８を受信することができる。インスタンス１０８Ｃは、導出された鍵１９３Ｄｒ１を使用して、暗号化されたサービス要求１４８を解読して、セキュリティコンテキストトークン１４６および要求データ１９４を公開できる。インスタンス１０８Ｃは、さらに、導出された鍵１９３Ｄｒ３を使用して署名１５２の正当性を確認し、暗号化されたサービス要求１４８がＷｅｂサービスクライアント１０１０とＷｅｂサービス１０８との間のセキュリティ保護された通信の一部であることを検証することもできる。インスタンス１０８Ｃは、セキュリティコンテキストトークン１４６および要求データ１０４を処理して、Ｗｅｂサービスクライアント１０１に対応する仕方を決定することができる。
【００６５】
インスタンス１０８Ｃは、導出された鍵１９３Ｄｒ２を使用して、暗号化されたサービス応答１５３を生成することができる。暗号化されたサービス応答１５３は、要求データ１９４に応答する応答データ１９６を含む。暗号化されたサービス応答１５３は、さらに、導出された鍵１９３Ｄｒ４を使用して生成された署名１５４も含む。
【００６６】
Ｗｅｂサービスクライアント１０１は、暗号化されたサービス応答１５３を受信することができる。Ｗｅｂサービスクライアント１０１は、導出された鍵１９３Ｄｒ２を使用して、暗号化されたサービス応答１５３を解読し、応答データ１９６を公開することができる。Ｗｅｂサービス１０１は、さらに、導出された鍵１９３Ｄｒ４を使用して署名１５４の正当性を確認し、暗号化されたサービス応答１５３がＷｅｂサービスクライアント１０１とＷｅｂサービス１０８との間のセキュリティ保護された通信の一部であることを検証することもできる。
【００６７】
したがって、本発明のいくつかの実施形態は、最初に、例えば、ＰＫＩなどの既存の鍵基盤を利用してセキュリティ保護された通信に対し公開／秘密鍵ペア（例えば、公開鍵１６３Ｐｕ／秘密鍵１６３Ｐｒと公開鍵１６３Ｐｕ／秘密鍵１６３Ｐｒ）を使用できる。その後、セキュリティ保護された通信に対称セッション鍵（例えば、マスタクライアントサービスセッション鍵１９３およびその導出）を使用への移行を実行できる。したがって、本発明のいくつかの実施形態では、既存の公開鍵基盤の鍵管理特徴を利用し、その後、効率の面から対称鍵に移行することができる。
【００６８】
トークン付与トークン（例えば、トークン付与トークン１１６）およびサービストークン（例えば、サービストークン１３２）は、カスタムＸＭＬトークンとして表すことができる。以下のＸＭＬ命令は、本発明の原理によるカスタムＸＭＬトークンの記述例である。
【００６９】
【表１】
2006260538.tif 000003
【００７０】
【表２】
2006260538.tif 000004
【００７１】
１行目では、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼＠ＴｏｋｅｎＩｄ属性で、ＵＲＩを使用してセキュリティトークンを識別する。データ型はｘｓｄ：ＩＤである。それぞれのセキュリティトークンＵＲＩは、送信者と受信者の両方にとって一意的とすることができる。ＵＲＩ値は、時間と空間において世界的に一意のものである。また、１行目では、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼＠ＭａｊｏｒＶｅｒｓｉｏｎ属性により、このカスタムトークンの大バージョンを識別し、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼＠ＭｉｎｏｒＶｅｒｓｉｏｎ属性により、このカスタムトークンの小バージョンを識別する。１行目では、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼＠Ｉｓｓｕｅｒ属性で、ＵＲＩを使用してこのトークンの発行者を識別する。また、１行目では、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼＠ＩｓｓｕｅＴｉｍｅ属性は、そのトークンが発行される時刻（例えば、ＵＴＣ形式）を表す。この値に対するＸＭＬスキーマはｘｓｄ：ｄａｔｅＴｉｍｅである。
【００７２】
また、１行目では、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼＠Ｐｕｒｐｏｓｅ属性で、ＱＮａｍｅを使用してこのカスタムトークンの目的を識別する。値は以下のとおりである。
【００７３】
【表３】
2006260538.tif 000005
【００７４】
２行目で、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼ｃｏｎｔｏｓｏ：Ｃｏｎｄｉｔｉｏｎｓ要素は、このトークンが有効である条件を指定する。また、２行目で、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼Ｃｏｎｄｉｔｉｏｎｓ＼＠ＮｏｔＢｅｆｏｒｅ属性は、このトークンが有効になった最も早い時刻を指定する（例えば、ＵＴＣ形式）。この値に対するスキーマはｘｓｄ：ｄａｔｅＴｉｍｅである。また、２行目で、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼Ｃｏｎｄｉｔｉｏｎｓ＼＠ＮｏｔＯｎＯｒＡｆｔｅｒ属性は、このトークンが無効になった最も早い時刻を指定する（例えば、ＵＴＣ形式）。この値に対するスキーマはｘｓｄ：ｄａｔｅＴｉｍｅである。
【００７５】
３〜７行目で、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼ｗｓｐ：ＡｐｐｌｉｅｓＴｏ要素は、このトークンが有効であるエンドポイントを指定する。４〜６行目で、IdentityTokenEx＼AppliesTo＼wsa:EndpointReference要素は、このトークンが有効であるエンドポイントへの参照を含む。５行目で、IdentityTokenEx＼AppliesTo＼EndpointReference＼wsa:Address要素は、エンドポイントのＵＲＩを指定する。
【００７６】
８〜２７行目で、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼ＴｏｋｅｎＳｔａｔｅｍｅｎｔ要素は、認証および認証されたセッションに関係する識別情報を含む。また、８行目では、IdentityTokenEx＼TokenStatement＼@Authentication.Mechanism属性は、ＱＮａｍｅを使用して、対象を認証するために使用される認証メカニズムを識別する。値は以下のとおりである。
【００７７】
【表４】
2006260538.tif 000006
【００７８】
また、８行目では、IdentityTokenEx＼TokenStatement＼@AuthenticationTime要素は、認証が実行されたときの時刻（例えば、ＵＴＣ形式）を識別する。この値に対するＸＭＬスキーマはｘｓｄ：ｄａｔｅＴｉｍｅである。
【００７９】
９行目で、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼ＴｏｋｅｎＳｔａｔｅｍｅｎｔ＼ＳｕｂｊｅｃｔＮａｍｅ要素は、すでに認証されているパーティを識別する。１０〜２６行目で、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼ＴｏｋｅｎＳｔａｔｅｍｅｎｔ＼ｄｓ：ＫｅｙＩｎｆ要素は、このトークンを通じて交換されるセッション鍵を含む。１１〜２５行目では、IdentityTokenEx＼TokenStatement＼KeyInfo＼xenc:EncryptedKey要素は、暗号化されたセッション鍵を含む。２８〜４８行目では、ＩｄｅｎｔｉｔｙＴｏｋｅｎＥｘ＼ｄｓ：Ｓｉｇｎａｔｕｒｅ要素は、カスタムＸＭＬトークン上のエンベロープ署名を含む。
【００８０】
いくつかの実施形態においては、ＷｅｂサービスコンポーネントおよびＷｅｂサービスは、拡張セキュリティコンテキストトークン（例えば、セキュリティコンテキストトークン１４６）を交換することができる。以下のＸＭＬ命令は、本発明の原理による拡張セキュリティコンテキストトークンの記述例である。
【００８１】
【表５】
2006260538.tif 000007
【００８２】
６２〜６４行目で、ＳｅｃｕｒｉｔｙＣｏｎｔｅｘｔＴｏｋｅｎ＼ｃｏｎｔｏｓｏ：ＳｃｔＥｘｔｅｎｓｉｏｎ要素は、ｂａｓｅ６４バイナリ形式で符号化されたＳＣＴカスタム拡張を含む。
【００８３】
トークン付与トークン、サービストークン、および拡張セキュリティコンテキストトークンを記述するＸＭＬ命令は、例えば、コンピュータアーキテクチャ１００のコンポーネント間で交換される認証応答１１２、アクセス付与応答１２８、およびセキュリティトークン応答１４２などのＳＯＡＰメッセージに格納することができる。
【００８４】
図４は、本発明の原理に関する好適な動作環境を示す図である。図４および以下の説明は、本発明を実施できる適当なコンピューティング環境について簡潔に述べた一般的な説明である。必要というわけではないが、コンピュータシステムによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において本発明を説明する。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令、関連するデータ構造体、およびプログラムモジュールは、本明細書で開示された方法の行為を実行するプログラムコード手段の実施例を表している。
【００８５】
図４を参照すると、本発明を実装する例示的なシステムは、処理ユニット４２１、システムメモリ４２２、およびシステムメモリ４２２を含む様々なシステムコンポーネントを処理ユニット４２１に結合するシステムバス４２３を備える、コンピュータシステム４２０の形をとる汎用コンピューティングデバイスを備える。処理ユニット４２１は、本発明の機能を含む、コンピュータシステム４２０の機能を実装するように設計されたコンピュータ実行可能命令を実行することができる。システムバス４２３は、メモリバスまたはメモリコントローラ、周辺機器バス、および様々なバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のうちのいずれでもよい。システムメモリは、読み取り専用メモリ（「ＲＯＭ」）４２４およびランダムアクセスメモリ（「ＲＡＭ」）４２５を含む。起動時などにコンピュータシステム４２０内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム（「ＢＩＯＳ」）４２６は、ＲＯＭ  ４２４に格納することができる。
【００８６】
コンピュータシステム４２０は、さらに、磁気ハードディスク４３９への読み書きを行うための磁気ハードディスクドライブ４２７、取り外し可能磁気ディスク４２９への読み書きを行うための磁気ディスクドライブ４２８、および例えば、ＣＤ−ＲＯＭまたはその他の光媒体などの取り外し可能光ディスク４３１への読み書きを行うための光ディスクドライブ４３０を備えることもできる。磁気ハードディスクドライブ４２７、磁気ディスクドライブ４２８、および光ディスクドライブ４３０は、ハードディスクドライブインターフェース４３２、磁気ディスクドライブインターフェース４３３、および光ドライブインターフェース４３４によりそれぞれシステムバス４２３に接続される。ドライブおよび関連するコンピュータ読取り可能媒体は、コンピュータシステム４２０用のコンピュータ実行可能命令、データ構造体、プログラムモジュール、およびその他のデータを格納する不揮発性記憶装置を実現する。本明細書で説明されている例示的な環境では磁気ハードディスク４３９、取り外し可能磁気ディスク４２９、および取り外し可能光ディスク４３１を採用しているが、磁気カセット、フラッシュメモリカード、デジタル多目的ディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなどの、データを格納するための他の種類のコンピュータ読取り可能媒体を使用することもできる。
【００８７】
ハードディスク４３９、磁気ディスク４２９、光ディスク４３１、ＲＯＭ  ４２４、またはＲＡＭ  ４２５には、オペレーティングシステム４３５、１つまたは複数のアプリケーションプログラム４３６、その他のプログラムモジュール４３７、およびプログラムデータ４３８など１つまたは複数のプログラムモジュールを含むプログラムコード手段を格納できる。ユーザは、キーボード４４０、ポインティングデバイス４４２、または例えば、マイク、ジョイスティック、ゲームパッド、スキャナなどの他の入力デバイス（図に示されていない）を通じてコンピュータシステム４２０にコマンドおよび情報を入力することができる。これらの入力デバイスおよびその他の入力デバイスは、システムバス４２３に結合された入出力インターフェース４４６を通じて処理ユニット４２１に接続されることが多い。入出力インターフェース４４６は、例えば、シリアルポートインターフェース、ＰＳ／２インターフェース、パラレルポートインターフェース、ユニバーサルシリアルバス（「ＵＳＢ」）インターフェース、またはInstitute of Electrical and Electronics Engineers（「ＩＥＥＥ」）１３９４インターフェース（つまり、ＦｉｒｅＷｉｒｅインターフェース）などの様々な種類の異なるインターフェースのどれかを論理的に表しているか、または異なるインターフェースの組合せを論理的に表すことさえもできる。
【００８８】
モニタ４４７または他のディスプレイデバイスも、ビデオインターフェース４４８などのインターフェースを介して、システムバス４２３に接続される。例えば、スピーカおよびプリンタなどの他の周辺出力デバイス（図には示されていない）も、コンピュータシステム４２０に接続できる。
【００８９】
コンピュータシステム４２０は、例えば、オフィス規模または企業規模のコンピュータネットワーク、ホームネットワーク、イントラネット、および／またはインターネットなどのネットワークにも接続可能である。コンピュータシステム４２０は、そのようなネットワーク上で、例えば、リモートコンピュータシステム、リモートアプリケーション、および／またはリモートデータベースなどの外部ソースとデータを交換することができる。
【００９０】
コンピュータシステム４２０は、コンピュータシステム４２０が外部ソースからデータを受信し、および／またはデータを外部ソースに送信するためのネットワークインターフェース４５３を含む。図４に示されているように、ネットワークインターフェース４５３を使用すると、リンク４５１を介してリモートコンピュータシステム４８３とのデータ交換がしやすくなる。ネットワークインターフェース４５３は、例えば、ネットワークインターフェースカードおよび対応するネットワークドライバインターフェース規約（「ＮＤＩＳ」）スタックなどの１つまたは複数のソフトウェアおよび／またはハードウェアモジュールを論理的に表すことができる。リンク４５１は、ネットワーク（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）セグメント）の一部を表し、リモートコンピュータシステム４８３は、ネットワークの１つのノードを表す。
【００９１】
同様に、コンピュータシステム４２０は、コンピュータシステム４２０が外部ソースからデータを受信し、および／またはデータを外部ソースに送信するための入出力インターフェース４４６を含む。入出力インターフェース４４６は、リンク４５９を介してモデム４５４（例えば、標準モデム、ケーブルモデム、またはデジタル加入者回線（「ＤＳＬ」）モデム）に結合され、それにより、コンピュータシステム４２０は外部ソースとの間でデータを受信し、および／または送信する。図４に示されているように、入出力インターフェース４４６およびモデム４５４を使用すると、リンク４５２を介してリモートコンピュータシステム４９３とのデータ交換がしやすくなる。リンク４５２は、ネットワークの一部を表し、リモートコンピュータシステム４９３は、ネットワークの１つのノードを表す。
【００９２】
図４は、本発明の好適な動作環境を表しているが、本発明の原理は、必要ならば適当な修正を加えることにより、本発明の原理を実装することができるシステムにおいて採用することができる。図４に例示されている環境は、例示のみを目的としており、本発明の原理を実装することが可能な様々な環境のわずかな部分さえも決して表していない。
【００９３】
本発明によれば、セキュリティトークンサービス、認証サービス、アクセス付与サービス、Ｗｅｂサービスクライアント、Ｗｅｂサービス、およびＷｅｂサービスインスタンスを含むモジュール、さらに、認証データ、ポリシーデータ、証明トークン、トークン付与トークン、サービストークン、セキュリティコンテキストトークン、バイナリ拡張、対称鍵、公開鍵、秘密鍵、および導出された鍵を含む関連するデータを格納することができ、またコンピュータシステム４２０に関連付けられているコンピュータ読取り可能媒体のどれかからアクセスすることができる。例えば、このようなモジュールの一部および関連するプログラムデータの一部を、オペレーティングシステム４３５、アプリケーションプログラム４３６、プログラムモジュール４３７、および／またはプログラムデータ４３８に含めて、システムメモリ４２２に格納することができる。
【００９４】
例えば、磁気ハードディスク４３９などの大容量記憶デバイスがコンピュータシステム４２０に結合された場合、そのようなモジュールおよび関連するプログラムデータも、大容量記憶デバイスに格納することができる。ネットワーク接続された環境において、コンピュータシステム４２０またはその一部に関して示されているプログラムモジュールは、リモートコンピュータシステム４８３および／またはリモートコンピュータシステム４９３に関連するシステムメモリおよび／または大容量記憶デバイスなどのリモートメモリ記憶デバイスに格納することができる。このようなモジュールの実行は、すでに説明されているように分散環境において実行できる。
【００９５】
本発明は、本発明の精神または本質的特徴から逸脱することなく他の特定の形式で実現することが可能である。説明されている実施形態は、すべての点で、説明のみを目的としており、限定することを目的としていないとみなすべきである。したがって、本発明の範囲は、上記の説明ではなく付属の請求項により指示される。請求項の同等性の意味および範囲内にある変更はすべて、本発明の範囲に含まれるものとする。
【００９６】
米国特許状により請求され、望むとおりに保証される内容は請求項に記載される。
【図面の簡単な説明】
【００９７】
【図１Ａ】Ｗｅｂサービスの信頼できる第三者認証を容易にするコンピュータアーキテクチャの一実施例を示す図である。
【図１Ｂ】図１Ａのコンピュータアーキテクチャの実施例の第１の部分を示す別の図である。
【図１Ｃ】図１Ａのコンピュータアーキテクチャの実施例の第２の部分を示す別の図である。
【図２】Ｗｅｂサービスにアクセスするためのサービストークンを取得する方法例のフロー図である。
【図３】ＷｅｂサービスコンポーネントおよびＷｅｂサービスとの間の通信のセキュリティを保護する方法例のフロー図である。
【図４】本発明の原理に関する好適な動作環境を示す図である
【符号の説明】
【００９８】
１００  コンピュータアーキテクチャ
４２０  コンピュータシステム
４２７  磁気ハードディスクドライブ
４２８  磁気ディスクドライブ
４３０  光ディスクドライブ
【図１Ａ】
2006260538.tif 000008
【図１Ｂ】
2006260538.tif 000009
【図１Ｃ】
2006260538.tif 000010
【図２】
2006260538.tif 000011
【図３】
2006260538.tif 000012
【図４】
2006260538.tif 000013