(57)【特許請求の範囲】
【請求項１】
クライアントコンピューティングシステムにおいて、サーバコンピューティングシステムとの間の認証に参加する方法であって、
前記サーバコンピューティングシステムで配置された認証メカニズムの第１表示と、サーバナンスとを少なくとも含む第１サーバ要求を前記クライアントコンピューティングシステムが受信する動作と、
クライアントの公開鍵と、クライアントナンスと、前記サーバコンピューティングシステムから受信した認証メカニズムの第１表示に含まれ、前記クライアントコンピューティングシステムで配置された認証メカニズムとを含む第１応答を前記サーバコンピューティングシステムへ前記クライアントコンピューティングシステムが送信する動作と、
前記クライアントコンピューティングシステムとサーバコンピューティングシステムの間で転送されるコンテンツを暗号化するのに使用することができるトンネルキーを識別する動作であって、前記トンネルキーは前記サーバナンスおよび前記クライアントナンスとセッション鍵との連結のハッシュを含む、動作と、
前記トンネルキーで暗号化される暗号化認証コンテンツを含む第２サーバ要求を受信する動作であって、前記暗号化認証コンテンツは、サーバのチャレンジと、相互に配置された認証メカニズムと、トラストアンカとを含む、動作と、
前記暗号化認証コンテンツを前記トンネルキーで暗号化解除して非暗号化認証コンテンツを明らかにする動作であって、前記非暗号化認証コンテンツは、前記サーバのチャレンジと、前記相互に配置された認証メカニズムと、前記トラストアンカとを含む、動作と、
前記第２サーバ要求に対して、非暗号化認証コンテンツに応答する暗号化応答データを含む第２応答を送信する動作であって、前記第２応答は、クライアントのチャレンジと、前記サーバのチャレンジに対応するハッシュドメッセージ認証コードと、クライアントの認証シグニチャとのうち少なくとも１つを含み、前記暗号化応答データは、前記相互に配置された認証メカニズムに従って前記サーバコンピューティングシステムとの間で前記クライアントコンピューティングシステムを認証するのに使用される、動作と
を含むことを特徴とする方法。
【請求項２】
前記第１サーバ要求は、前記クライアントコンピューティングシステムおよび前記サーバコンピューティングシステム間に既存の以前のセッションに対応する、以前のパケットＩＤを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記サーバコンピューティングシステムで配置された認証メカニズムは、ＭＳ−ＣＨＡＰ  ｖ２、ＭＤ５を用いた認証、ジェネリックトークンカードを用いた認証、ケルベロスを用いた認証、Ｘ．５０９を用いた認証、およびＷＳセキュリティを用いた認証の中から選択された１つまたは複数の認証メカニズムを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記クライアントコンピューティングシステムで配置された認証メカニズムは、ＭＳ−ＣＨＡＰ  ｖ２、ＭＤ５を用いた認証、ジェネリックトークンカードを用いた認証、ケルベロスを用いた認証、Ｘ．５０９を用いた認証、およびＷＳセキュリティを用いた認証の中から選択された１つまたは複数の認証メカニズムを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１応答は、複数の公開鍵を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第２サーバ要求を受信する動作は、既存のユーザ名およびパスワードでのクライアントのブートストラッピング、Ｘ．５０９証明書でのクライアントのブートストラッピング、Ｘ．５０９証明書での認証、ケルベロストークンでの新しいクライアントのブートストラッピングの中から選択された認証方法に対応する暗号化認証コンテンツを受信することを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記第２サーバ要求は、以前のパケットＩＤを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記第２応答を送信する動作は、既存のユーザ名およびパスワードでのクライアントのブートストラッピング、Ｘ．５０９証明書でのクライアントのブートストラッピング、Ｘ．５０９証明書での認証、ケルベロストークンでの新しいクライアントのブートストラッピングの中から選択された認証方法に関する暗号化応答データを送信することを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記第２応答は、以前のパケットＩＤを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
サーバコンピューティングシステムにおいて、クライアントコンピューティングシステムとの間の認証に参加する方法であって、
前記サーバコンピューティングシステムで配置された認証メカニズムの第１表示と、サーバナンスとを少なくとも含む第１要求を前記サーバコンピューティングシステムが送信する動作と、
クライアントの公開鍵と、クライアントナンスと、前記サーバコンピューティングシステムにより配置された認証メカニズムの第１表示に含まれ、前記クライアントコンピューティングシステムで配置された認証メカニズムとを含む、前記第１要求に対する第１クライアント応答を前記サーバコンピューティングシステムが受信する動作と、
前記クライアントコンピューティングシステムとサーバコンピューティングシステムの間で転送されるコンテンツを暗号化するのに使用することができるトンネルキーを識別する動作であって、前記トンネルキーは前記サーバナンスおよび前記クライアントナンスとセッション鍵との連結のハッシュを含む、動作と、
暗号化認証コンテンツを含む第２要求を送信する動作であって、前記暗号化認証コンテンツが前記トンネルキーで暗号化され、前記暗号化認証コンテンツは、サーバのチャレンジと、相互に配置された認証メカニズムと、トラストアンカとを含む、動作と、
前記暗号化認証コンテンツに応答する暗号化応答データを含む第２クライアント応答を受信する動作であって、前記第２クライアント応答は、クライアントのチャレンジと、前記サーバのチャレンジに対応するハッシュドメッセージ認証コードと、クライアントの認証シグニチャとのうち少なくとも１つを含み、前記暗号化応答データは、前記相互に配置された認証メカニズムに従って前記サーバコンピューティングシステムとの間で前記クライアントコンピューティングシステムを認証するのに使用される、動作と
を含むことを特徴とする方法。
【請求項１１】
前記第１要求は、前記クライアントコンピューティングシステムおよび前記サーバコンピューティングシステム間に既存の以前のセッションに対応する、以前のパケットＩＤを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記サーバコンピューティングシステムで配置された認証メカニズムは、ＭＳ−ＣＨＡＰ  ｖ２、ＭＤ５を用いた認証、ジェネリックトークンカードを用いた認証、ケルベロスを用いた認証、Ｘ．５０９を用いた認証、およびＷＳセキュリティを用いた認証の中から選択された１つまたは複数の認証メカニズムを含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記クライアントコンピューティングシステムで配置された認証メカニズムは、ＭＳ−ＣＨＡＰ  ｖ２、ＭＤ５を用いた認証、ジェネリックトークンカードを用いた認証、ケルベロスを用いた認証、Ｘ．５０９を用いた認証、およびＷＳセキュリティを用いた認証の中から選択された１つまたは複数の認証メカニズムを含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
前記第１クライアント応答は、複数の公開鍵を含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記第２要求を送信する動作は、既存のユーザ名およびパスワードでのクライアントのブートストラッピング、Ｘ．５０９証明書でのクライアントのブートストラッピング、Ｘ．５０９証明書での認証、ケルベロストークンでの新しいクライアントのブートストラッピングの中から選択された認証方法に対応する暗号化認証コンテンツを送信することを含むことを特徴とする請求項１０に記載の方法。
【請求項１６】
前記第２要求は、以前のパケットＩＤを含むことを特徴とする請求項１０に記載の方法。
【請求項１７】
前記第２クライアント応答を受信する動作は、既存のユーザ名およびパスワードでのクライアントのブートストラッピング、Ｘ．５０９証明書でのクライアントのブートストラッピング、Ｘ．５０９証明書での認証、ケルベロストークンでの新しいクライアントのブートストラッピングの中から選択された認証方法に関する暗号化応答データを受信することを含むことを特徴とする請求項１０に記載の方法。
【請求項１８】
前記第２クライアント応答は、以前のパケットＩＤを含むことを特徴とする請求項１０に記載の方法。
【請求項１９】
前記第１応答は、複数のセキュリティアソシエーションをさらに含み、前記第２サーバ要求は、前記複数のセキュリティアソシエーションから選択された１つのセキュリティアソシエーションをさらに含むことを特徴とする請求項１に記載の方法。
【請求項２０】
前記第２応答は、前記クライアントのチャレンジを含むことを特徴とする請求項１に記載の方法。
【請求項２１】
前記第２応答は、前記ハッシュドメッセージ認証コードを含むことを特徴とする請求項１に記載の方法。
【請求項２２】
前記第２応答は、前記クライアントの認証シグニチャを含むことを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張可能な認証および証明書のプロビジョニングに関する。より詳細には、本発明は、認証メカニズムの自動ネゴシエーションと、追加の証明書をプロビジョニングするのに使用することができる限定使用証明書とに関する。
【背景技術】
【０００２】
コンピュータシステムおよび関連技術は社会の多くの面に影響を及ぼす。実際、情報を処理するコンピュータシステムの能力により、我々の生活様式および労働様式が一変した。現在、コンピュータシステムは一般に、コンピュータシステムの出現以前には手動で実施されていた作業（例えばワードプロセッシング、スケジューリング、およびデータベース管理）のホストを実施する。さらに最近では、コンピュータシステムが互いに結合されてコンピュータネットワークが形成されており、そのコンピュータネットワークを介して、コンピュータシステムは電子的に通信してデータを共有することができる。その結果、コンピュータシステムで実施される作業の多く（例えば電子メールへのアクセスやウェブブラウジング）は、コンピュータネットワーク（例えばインターネット）を介した１つまたは複数の他のコンピュータシステムとの電子通信を含む。
【０００３】
あるコンピュータシステムが別のコンピュータシステムと電子的に通信するためには、コンピュータシステムならびに対応するコンピュータシステムユーザが、他のコンピュータシステム（または他のコンピュータシステムへのアクセスを許可するコンピュータシステム）との間で認証を受ける（すなわち、その識別を他のコンピュータシステムに対して証明する）必要のある可能性がある。環境に応じて、例えばケルベロス、セキュアソケットレイヤ（「ＳＳＬ」）、ＮＴ  ＬＡＮマネージャ（「ＮＴＬＭ」）、および／またはダイジェスト認証などの多種多様なコンピュータ化認証メカニズムのいずれかを使用することができる。
【０００４】
一部の認証メカニズムは対話式ログオンを含む。例えば、コンピュータシステムがインターネット上で電子的に通信することができるようになる前に、コンピュータシステムのユーザはしばしば、インターネットへのアクセスを許可することができるインターネットサービスプロバイダ（以後「ＩＳＰ」と呼ぶ）にログインすることを求められる。ＩＳＰへのログインは通常、コンピュータシステムからＩＳＰへのユーザ証明書（例えばユーザ名およびパスワード）の提出を含む。証明書を受信した際に、ＩＳＰは、証明書を証明書データベースと比較し、証明書が適切である場合、コンピュータシステムはインターネットと通信することを許可される。
【０００５】
遺憾ながら、無許可ユーザが許可ユーザの証明書を得て、証明書を使用し、許可ユーザを装うことについて何らかの危険が常に存在する。許可ユーザの証明書は本質的に、特定のシステム上の許可ユーザ資源（例えば、ファイル、電子メッセージ、パーソナルデータ、金銭データなど）のすべてに対するフルアクセスを可能にするので、証明書が何らかの形で損なわれることにより、許可ユーザの資源をコピーおよび破壊する能力が無許可ユーザに与えられる可能性がある。具体的には、パスワードは、例えば辞書中の各語をパスワードとして順次発信するプログラムによるゲシングアタック（ｇｕｅｓｓｉｎｇ  ａｔｔａｃｋ，注．一般には「辞書アタック」と呼ばれる）に対して脆弱である。
【０００６】
他の認証メカニズムは対話式ログオンを含まず、したがって取得することのできるユーザ証明書が存在しない。例えば、ウェブサーバは、ＳＳＬを使用してその識別をウェブクライアントに対して証明することができる。ウェブクライアントがウェブサーバのセキュアなウェブページ（例えば「ｈｔｔｐｓ：」で始まるページ）と連絡するとき、ウェブサーバは応答し、ウェブサーバを認証するデジタル証明書を自動的に送信する。ウェブクライアントは、固有セッション鍵を生成して、ウェブサーバとのすべての通信を暗号化する。ウェブクライアントは、ウェブサーバだけがセッション鍵を読み取ることができるように、（例えば証明書中で参照される）ウェブサーバの公開鍵でセッションを暗号化する。したがって、ユーザアクションを何ら必要とせずにセキュアセッションが確立される。
【０００７】
対話式認証メカニズムおよび非対話式認証メカニズムの例を述べたが、対話式認証および非対話式認証の実装は、ネットワークおよびコンピュータシステムによって変化する可能性があることを理解されたい。例えば、あるネットワークはケルベロス認証を使用するように構成されることがあるが、別のネットワークは、何らかの他の対話式認証メカニズムを使用するように構成される。さらに、特定の認証メカニズムは、認証メカニズムを異なる方式で動作させる様々な構成オプションを有することができる。例えば、ＳＳＬのある実装は、セキュアセッションを確立するとき、異なる暗号化アルゴリズムを選択することを可能にする。
【０００８】
遺憾ながら、コンピュータシステムまたはネットワークが配置している認証メカニズムおよび／または構成オプションを判定することが難しいことがあり、さらには不可能であることがある。したがって、あるコンピューティングシステムは、別のコンピュータシステムで配置されない認証メカニズムおよび／または構成オプションを使用してその別のコンピュータシステムとの間で認証を受けることを試みる可能性がある。その結果、認証が失敗し、コンピューティングシステムの通信が妨げられる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
分散システムでは、未配置の認証メカニズムを使用して認証を試みる可能性が特に高い。分散システムの様々な部分が異なるエンティティの制御下にある場合、分散システムはしばしば、いくつかの相互接続されたコンピュータシステムおよびネットワークを含む。こうした異なるエンティティはそれぞれ異なる認証メカニズムを配置する可能性があり、配置する認証メカニズムの表示を必ずしも公示または公表しない可能性がある。したがって、分散システムの第１構成要素が、分散システムの第２構成要素で配置される認証メカニズムを知らない（判定する手段を持たない可能性がある）ので、第１構成要素が第２構成要素との間で認証を受けることを妨げられる可能性がある。
【００１０】
他の認証問題が、ワイヤレス環境で生じる可能性がある。例えば、混合有線／ワイヤレスネットワークとの間で装置がワイヤレスに認証を受けるためには、装置はネットワークに対応する証明書を有することが必要となる可能性がある。しかし、ネットワークは、認証された装置だけが証明書にアクセスすることを許可するように構成される可能性がある。したがって、装置が当初は有線接続を介してネットワークに接続することが必要となる可能性がある。証明書にアクセスするために有線接続を必要とすることは、ユーザの負担となる可能性があり（例えば、ユーザはネットワークタップの位置を見つける必要がある可能性がある）、ある環境ではそれが困難である可能性があり（例えば、ネットワークタップが制限されたアクセス位置にある可能性がある）、さらには不可能である可能性がある（例えば、一部の装置は有線ネットワークアクセス向けに構成されていない）。したがって、許可ユーザであってもネットワークにワイヤレスにアクセスすることが妨げられる可能性がある。
【００１１】
したがって、自動ネゴシエーティング認証方法のためのメカニズムおよびよりセキュアな証明書のプロビジョニング（提供、ｐｒｏｖｉｓｉｏｎ）があれば有利なはずである。
【課題を解決するための手段】
【００１２】
従来の現況技術に伴う上述の問題は、本発明の原理によって克服される。本発明は、コンピューティングシステムをより効率的かつセキュアに認証することを対象とする。ある実施形態では、クライアントコンピューティングシステムが限定使用証明書を受信する。クライアントコンピューティングシステムとサーバコンピューティングシステムは、互いの間でセキュアリンクを確立する。クライアントコンピューティングシステムは、確立したセキュアリンクを介してサーバコンピューティングシステムに限定使用証明書を発信する。
【００１３】
サーバコンピューティングシステムは、確立したセキュアリンクを介してクライアントコンピューティングシステムから限定使用証明書を受信する。サーバコンピューティングシステムは、受信した限定ユーザ証明書に基づいてクライアントコンピューティングシステムに対して追加の証明書をプロビジョニングする。サーバコンピューティングシステムは、確立したセキュアリンクを介してクライアントコンピューティングシステムに追加の証明書を送信する。クライアントコンピューティングシステムは、サーバコンピューティングシステムから追加の証明書を受信する。任意選択で、クライアントコンピューティングシステムはその後で、受信した追加の証明書を使用してサーバコンピューティングシステムとの間で認証を受ける。
【００１４】
他の実施形態では、サーバが、サーバコンピューティングシステムで配置された認証メカニズムを少なくとも含む第１要求を送信する。クライアントは、第１要求を受信し、クライアントコンピューティングシステムで配置された認証メカニズムを少なくとも含む第１応答を送信する。クライアントおよびサーバは、クライアントコンピューティングシステムとサーバコンピューティングシステムとの間で転送されるコンテンツを暗号化するのに使用することができるトンネルキーを識別する。
【００１５】
サーバは、相互に配置された認証メカニズムを示す（トンネルキーで暗号化された）暗号化認証コンテンツを含む第２要求を送信する。クライアントは、第２要求を受信し、トンネルキーを用いて暗号化認証コンテンツを暗号化解除し、非暗号化認証コンテンツを明らかにする。非暗号化認証コンテンツは、相互に配置された認証メカニズムを示す。クライアントは、非暗号化認証コンテンツに対する応答である暗号化応答データを含む第２応答を送信する。暗号化応答データは、相互に配置された認証メカニズムに従ってサーバとの間で認証を受けるための情報を含む。サーバは、相互に配置された認証メカニズムに従ってサーバとの間で認証を受けるための情報を含む暗号化応答データを含む第２応答を受信する。
【００１６】
以下の説明で本発明の追加の特徴および利点を説明する。本発明の追加の特徴および利点の一部はその説明から明らかとなり、または本発明を実施することによって理解することができよう。本発明の特徴および利点は、添付の特許請求の範囲で具体的に指摘される各機器と、各機器の組合せによって実現し、得ることができる。本発明の上記およびその他の特徴は、以下の説明と添付の特許請求の範囲からより完全に明らかとなり、または下記で説明する本発明を実施することによって理解することができよう。
【００１７】
本発明の上記で列挙した利点および特徴ならびにその他の利点および特徴を得る方法を説明するために、添付の図面に示される本発明の特定の実施形態を参照しながら、上記で簡潔に説明した本発明のより具体的な説明を行う。これらの図面は本発明の典型的な実施形態だけを示しており、したがって本発明の範囲を限定するものとみなすべきでないことを理解した上で、添付の図面を使用することにより、本発明をさらに具体的かつ詳細に説明する。
【発明を実施するための最良の形態】
【００１８】
本発明の原理は、コンピューティングシステムをより効率的かつセキュアに認証するシステム、方法、およびコンピュータプログラム製品に関する。本発明の範囲内の実施形態には、コンピュータ実行可能命令またはデータ構造を担持または格納するコンピュータ可読媒体が含まれる。このようなコンピュータ可読媒体は、汎用または特殊目的コンピューティングシステムでアクセス可能な、入手可能などんな媒体でもよい。例えば、限定はしないが、このようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＣＤ−ＲＯＭ、またはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気記憶装置などの物理記憶媒体、あるいはコンピュータ実行可能命令、コンピュータ可読命令、またはデータ構造の形態の所望のプログラムコード手段を担持または格納するのに使用することができ、汎用または特殊目的コンピューティングシステムでアクセスすることのできるその他のどんな媒体も含むことができる。
【００１９】
この説明および頭記の特許請求の範囲では、「ネットワーク」とは、コンピューティングシステムおよび／またはモジュール間で電子データの移送を可能にする１つまたは複数のデータリンクと定義される。情報がネットワークまたは別の通信接続（ハードワイヤード、ワイヤレス、またはハードワイヤードとワイヤレスの組合せ）を介してコンピューティングシステムに転送または供給されるとき、その接続をコンピュータ可読媒体とみなすのは適切である。したがって、そのようなどんな接続もコンピュータ可読媒体と呼ぶことは適切である。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。コンピュータ実行可能命令は、例えば、ある機能または１群の機能を汎用コンピューティングシステムまたは特殊目的コンピューティングシステムに実行させる命令およびデータを含む。コンピュータ実行可能命令は、例えばバイナリ命令、アセンブリ言語などの中間フォーマット命令、さらにはソースコードでよい。
【００２０】
この説明および頭記の特許請求の範囲において、「コンピューティングシステム」とは、一緒に働いて電子データに対するオペレーションを実行する１つまたは複数のソフトウェアモジュール、１つまたは複数のハードウェアモジュール、またはそれらの組合せと定義される。例えば、コンピューティングシステムの定義は、パーソナルコンピュータのハードウェア構成要素、ならびにパーソナルコンピュータのオペレーティングシステムなどのソフトウェアモジュールを含む。モジュールの物理レイアウトは重要ではない。コンピューティングシステムは、ネットワークを介して結合された１つまたは複数のコンピュータを含むことができる。同様に、コンピューティングシステムは、内部モジュール（メモリやプロセッサなど）が一緒に働いて電子データに対するオペレーションを実行する単一の物理装置（携帯電話や携帯情報端末「ＰＤＡ」など）を含むことができる。
【００２１】
本明細書では、「モジュール」または「構成要素」という語は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを指すことがある。本明細書で述べる様々な構成要素、モジュール、エンジン、およびサービスは、コンピューティングシステム上で実行されるオブジェクトまたはプロセスとして（例えば別々のスレッドとして）実装される可能性がある。本明細書で述べるシステムおよび方法は、ソフトウェアで実装されることが好ましいが、ソフトウェアおよびハードウェアまたはハードウェアとしての実装も可能であり、その実装も企図される。
【００２２】
パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャなどを含む多くのタイプのコンピュータシステム構成を用いてネットワークコンピューティング環境で本発明を実施できることを当業者は理解されよう。本発明は、（ハードワイヤードデータリンク、ワイヤレスリンク、またはハードワイヤードデータリンクとワイヤレスデータリンクの組合せによって）ネットワークを介してリンクされるローカル／リモートコンピューティングシステムが共にタスクを実行する分散コンピューティング環境でも実施することができる。分散システム環境では、プログラムモジュールは、ローカルメモリ記憶装置とリモートメモリ記憶装置のどちらにも位置することができる。
【００２３】
図１に、本発明によるコンピューティングシステムのより効率的かつセキュアな認証を実施する例示的コンピュータアーキテクチャ１００を示す。コンピュータアーキテクチャ１００で示すように、クライアントコンピューティングシステム１０１は鍵ペア１０３を含む。鍵ペア１０３は、公開鍵１０４および対応する秘密鍵１０６、例えばＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵ペアを含む。サーバコンピューティングシステム１１１は、証明書プロビジョニングモジュール１１２および鍵ペア１１３を含む。証明書プロビジョニングモジュール１１２は、例えば限定使用証明書などの第１タイプの証明書を受信し、第１タイプの証明書に基づいて、例えばより永続的な証明書などの第２タイプの証明書をプロビジョニングするように構成することができる。鍵ペア１０３と同様に、鍵ペア１１３は、公開鍵１１４および対応する秘密鍵１１６、例えばＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵ペアを含む。
【００２４】
図２に、本発明による証明書をプロビジョニングする例示的方法２００の流れ図を示す。コンピュータアーキテクチャ１００のコンピューティングシステムおよびモジュールに関して方法２００を説明する。方法２００は、限定使用証明書を受信する動作（動作２０１）を含む。例えば、クライアントコンピューティングシステム１０１が限定使用証明書１０２を受信することができる。
【００２５】
限定使用証明書の使用を多くの方式で限定することができる。例えば、限定使用証明書を、指定の使用回数、指定の期間、または指定のイベントの発生まで有効にすることができる。限定使用証明書を、適用可能なセキュリティポリシーに基づいて、任意の有効使用回数（例えば３回使用）に限定することができる。１度だけの認証に有効な限定使用証明書は「単一使用証明書」と呼ばれることがある。指定の使用回数の後、限定使用証明書はもはや有効な証明書として受諾されない。
【００２６】
限定使用証明書を、適用可能なセキュリティポリシーに基づいて、指定の任意の時間枠（例えば５分）に限定することができる。指定の時間枠が満了した後、限定使用証明書はもはや有効な証明書として受諾されない。指定の任意のイベントが、適用可能セキュリティポリシーに基づいて限定使用証明書の使用を限定することができる。例えば、限定使用証明書を、より永続的な証明書がプロビジョニングされた後に拒絶することができる。
【００２７】
例えば電話通信やメールなどの通信方法を介して帯域外で限定使用証明書を受信することができる。あるいは、トラステッドコンピュータ化通信方法を使用して限定使用証明書を受信することもできる（例えば、電子メールメッセージ内の限定使用証明書を暗号化する）。
【００２８】
方法２００は、クライアント側がセキュアリンクを確立する動作（動作２０２）と、サーバ側がセキュアリンクを確立する動作（動作２０５）とを含む。例えば、クライアントコンピューティングシステム１０１とサーバコンピューティングシステム１１１はセキュアリンク１２２を確立することができる。セキュアリンクの確立は、クライアントコンピューティングシステム１０１とサーバコンピューティングシステム１１１が公開鍵を交換してセッション鍵を確立することを含むことができる。例えば、公開鍵１０４および公開鍵１１４を交換してセッション鍵１３１を確立することができる。ある実施形態では、例えば、クライアントコンピューティングシステム１０１とサーバコンピューティングシステム１１１が静的Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵で構成されるときなど、セッション鍵の確立が後続の認証に十分であることがある。
【００２９】
代わりに、他の鍵を導出して他の証拠を提供することもできる。例えば、サーバコンピュータシステムからのチャレンジに応答して、クライアントコンピューティングシステムは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎセッション鍵およびパスワードから導出された暗号鍵を使用してパスワードを暗号化し、暗号鍵をサーバコンピュータシステムに送信することができる。したがって、サーバコンピューティングシステムが暗号化パスワードを受信したとき、サーバコンピューティングシステムは、パスワードを暗号化解除し、パスワードを証明書データベースと比較して、パスワードが有効であるかどうかを判定することができる。
【００３０】
同様に、クライアントコンピューティングシステムは、共有秘密鍵およびＤｉｆｆｉｅ−Ｈｅｌｌｍａｎセッション鍵から導出された暗号鍵を使用してトラストアンカを暗号化し、暗号化トラストアンカをサーバコンピューティングシステムに送信することができる。したがって、サーバコンピューティングシステムが暗号化トラストアンカを受信したとき、サーバコンピューティングシステムは、トラストアンカを暗号化解除および妥当性検査することができる。トラストアンカは、例えば証明書（例えばＸ．５０９証明書）、セキュリティトークン（例えばＷＳセキュリティトークン）、ハッシュ（例えばＳＨＡ−１）、および証明書のユニフォームリソース識別子（「ＵＲＩ」）（例えばユニフォームリソースロケータ（「ＵＲＬ」）、あるいはセキュリティトークンのハッシュおよびＵＲＩなどの認証関係のデータを含むことができる。
【００３１】
同様に、クライアントコンピューティングシステムは、以前に確立したトラストアンカのダイジェストで署名され、またはそれを含む新しいトラストアンカを送信することができる。したがって、サーバコンピューティングシステムは、以前に確立したトラストアンカの署名およびハッシュに基づいて、新しいトラストアンカを妥当性検査することができる。
【００３２】
図２に戻ると、方法２００は、確立したセキュアリンクを介して限定使用証明書を発信する動作（動作２０３）を含む。例えば、クライアントコンピューティングシステム１０１は、セキュアリンク１２２を介してサーバコンピュータシステム１１１に限定使用証明書１０２を発信することができる。前述のように、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎセッション鍵およびパスワードから導出された暗号鍵を使用して、パスワードを暗号化することができる。したがって、限定使用証明書１０２が、セッション鍵１３１および限定使用証明書１０２から導出された暗号鍵を使用して暗号化されることがある。
【００３３】
方法２００は、確立したセキュアリンクを介して限定使用証明書を受信する動作（動作２０６）を含むことができる。例えば、サーバコンピューティングシステム１１１は、セキュアリンク１２２を介してクライアントコンピューティングシステム１０１から限定使用証明書１０２を受信することができる。さらに、以前の要求に応答して、サーバコンピューティングシステム１１１は、クライアントコンピューティングシステム１０１から（例えば限定使用証明書１０２を暗号化するのに使用された）暗号鍵を受信することができる。
【００３４】
方法２００は、受信した限定使用証明書に基づいてクライアントに対して追加の証明書をプロビジョニングする動作（動作２０７）を含む。例えば、証明書プロビジョニングモジュール１１２が、限定使用証明書１０２に基づいてクライアントコンピューティングシステム１０１に対してより永続的な証明書をプロビジョニングすることができる。適切なら、サーバコンピューティングシステム１１１は、以前に受信した暗号鍵を使用して限定使用証明書１０２を暗号化解除することができる。
【００３５】
証明書プロビジョニングモジュール１１２は、限定使用証明書１０２を証明書データベースと比較し、限定使用証明書１０２が有効であるかどうかを判定する。限定使用証明書１０２が無効であるとき、サーバコンピューティングシステム１１１は、限定使用証明書１０２の処理を終了することができる。セキュリティポリシーに応じて、サーバコンピューティングシステム１１１は、限定使用証明書１０２の処理が終了したことをクライアントコンピューティングシステム１０１に通知することがあり、または通知しないことがある。一方、限定使用証明書１０２が有効であるとき、クライアントコンピューティングシステム１０１の識別の信頼性が高まる。したがって、サーバコンピューティングシステムは、クライアントコンピューティングシステム１０１に対してより永続的な証明書を生成することができる。例えば、証明書プロビジョニングモジュール１１２は、追加の証明書１１７を生成することができる。
【００３６】
追加の証明書１１７は、限定使用証明書１０２と同じタイプの証明書でよい。例えば、適切な単一使用パスワードを受信したことに応答して、サーバコンピューティングシステム１１１は、より永続的なパスワードを発行することができる。あるいは、追加の証明書１１７は異なるタイプの証明書でもよい。例えば、適切な単一使用パスワードを受信したことに応答して、サーバコンピューティングシステム１１１は、証明書、トークン（例えば、ＷＳセキュリティトークンまたはケルベロストークン）、証明書のハッシュおよびＵＲＩ、あるいはトークンのハッシュおよびＵＲＩを発行することができる。
【００３７】
証明書チェーン、証明書取消しリスト、オンライン証明書ステータスプロトコル応答、ＷＳセキュリティトークン、交換と関連付けるべきメタデータなどのデータをサポートする他の証明書も識別することができる。識別されるメタデータは、拡張可能マークアップ言語（「ＸＭＬ」）命令を含むことができる。
【００３８】
方法２００は、追加の証明書を送信する動作（動作２０８）を含む。例えば、サーバコンピューティングシステム１１１は、追加の証明書１１７をクライアントコンピューティングシステム１０１に送信することができる。方法２００は、追加の証明書を受信する動作（動作２０４）を含む。例えば、クライアントコンピューティングシステム１０１は、サーバコンピューティングシステム１１１から追加の証明書１１７を受信することができる。
【００３９】
したがって、本発明の実施形態は、普通ならアクセスが妨げられるときにネットワークへのアクセスを実施することができる。例えば、限定使用（または単一使用）証明書をワイヤレスコンピューティングシステムで使用して、ネットワークにワイヤレスにアクセスするのに使用される証明書へのアクセスを実施することができる。さらに、限定使用証明書は、辞書アタックに対するコンピューティングシステムの脆弱性を低減することができる。例えば、限定使用証明書は、悪意のあるユーザが限定使用証明書を最終的にクラッキングした時点でもはや有効ではないようにすることができる。具体的には、単一使用証明書は、それが１度使用された後は無効となるので、単一使用証明書は、辞書アタックに対する脆弱性を著しく低減することができる。
【００４０】
図３に、ネゴシエーション認証メカニズムに関するメッセージ交換３００を示す。メッセージ交換３００は、認証中の他のメッセージの交換前または交換後に行えることを理解されたい。例えば、クライアントコンピューティングシステムおよびサーバコンピューティングシステムは、クライアントコンピューティングシステムとサーバコンピューティングシステムを互いに予備的に識別する１つまたは複数の拡張可能認証プロトコル（「ＥＡＰ」）要求／応答ペアを交換することができる。
【００４１】
メッセージ交換３００に示す要求および応答は、認証プロトコルのメッセージでよい。各メッセージは、（例えばサポートされるペイロードタイプを表す）認証プロトコルのバージョン番号、メッセージ本文、およびメッセージ本文の一部のハッシュドメッセージ認証コード（「ＨＭＡＣ」）を含むことができる。ＨＭＡＣは、例えばＭＤ５、ＳＨＡ−１などの任意の暗号ハッシュ機能を使用して生成することができる。認証プロトコルのメッセージはＥＡＰメッセージ内に埋め込むことができる。
【００４２】
サーバ側３６０は、クライアント側３５０にサーバ要求３０１を送信することができる。サーバ要求３０１は、以前のパケットＩＤ３０２、ナンス３０３、および認証方法３０４を含む。以前のパケットＩＤ３０２は、クライアント側３５０とサーバ側３６０の間で交換された最後のパケットに対応するパケットＩＤ（例えば、前の要求／応答交換におけるパケットのパケットＩＤ）を示すことができる。ナンス３０３は、サーバ側３６０で生成されたランダムデータでよい。認証方法３０５は、サーバ側３６０でサポートされる、提案される認証メカニズムを含むことができる。サーバ側は、任意の数の異なる認証メカニズム（例えば、前述のチャレンジおよび応答、ＭＳ−ＣＨＡＰ  ｖ２、ＭＤ５を用いた認証、ジェネリックトークンカードを用いた認証、ケルベロスを用いた認証、Ｘ．５０９を用いた認証、およびＷＳセキュリティを用いた認証）をサポートすることができる。
【００４３】
サーバ要求３０１に応答して、クライアント側３５０は、サーバ側３６０にクライアント応答３０６を送信することができる。クライアント応答３０６は、以前のパケットＩＤ３０７、ナンス３０８、セキュリティアソシエーション３０９、公開鍵３１１、および認証方法３１２を含むことができる。以前のパケットＩＤ３０７は、サーバ要求３０１に対応するパケットＩＤを示すことができる。ナンス３０８は、クライアント側３６０で生成されたランダムデータでよい。セキュリティアソシエーション３０９は、クライアント側３５０でサポートされる、提案されるセキュリティアソシエーションを含むことができる。表１に、サポートすることのできるセキュリティアソシエーションの一部を示す。
【００４４】
【表１】
0004746333.tif 000002
【００４５】
公開鍵３１１は１つまたは複数の公開鍵を含むことができる。公開鍵３１１は、サポートされる各セキュリティアソシエーションについて適切な長さ（例えば１０２４ビット、２０４８ビットなど）の鍵を含むことができる。公開鍵３１１は、例えば公開鍵１０４を含む、１つまたは複数のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開鍵でよい。認証方法３１２は、クライアント側３５０でサポートされ、認証方法３０４に含まれる認証メカニズムの中から選ばれる認証メカニズムを含むことができる。
【００４６】
クライアント応答３０６に応答して、サーバ側３６０はサーバ要求３１３を送信することができる。サーバ要求３１３は、以前のパケットＩＤ３１４、セキュリティアソシエーション３１６、公開鍵３１７、および認証方法に基づくその他の認証データを含むことができる。前のパケットＩＤ３１４は、クライアント応答３０６に対応するパケットＩＤを示すことができる。セキュリティアソシエーション３１６は、サーバ側３６０でサポートされ、セキュリティアソシエーション３０９に含まれる認証方法の中から選ばれるセキュリティアソシエーションを示すことができる。公開鍵３１７は、セキュリティアソシエーション３１６で示されるセキュリティアソシエーションに対して適切な長さの鍵でよい。公開鍵３１７は、例えば公開鍵１１４などのＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開鍵でよい。
【００４７】
したがって、公開鍵３１１および公開鍵３１７からの適切な長さの鍵に基づいて、クライアント側３５０とサーバ側３６０の間でセキュアリンクを確立することができる。
【００４８】
一般に、クライアント側３５０とサーバ側３６０の間で送信される暗号化データは、トンネルキーを使用して暗号化される。トンネルキーは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ共有秘密鍵（例えばセッション鍵１３１）とクライアントナンスおよびサーバナンスとの連結をハッシングすることによって導出することができる。例えば、トンネルキーは、以下の式に従って導出することができる。
【００４９】
Ｔｕｎｎｅｌ  Ｋｅｙ＝ＨＡＳＨ［ＤＨＳＳ＋ＮＣ＋ＮＳ］
トンネルキーは対称鍵でよい。すなわち、トンネルキーを使用して暗号化された暗号化データを暗号化解除するのにトンネルキーを使用することができる。したがって、クライアント側３５０は、サーバ側３６０に送信すべきデータをトンネルキーで暗号化することができ、サーバ側３６０から受信したコンテンツをトンネルキーで暗号化解除することができる。同様にサーバ側３６０は、クライアント側３５０に送信すべきデータをトンネルキーで暗号化することができ、クライアント側３５０から受信されるコンテンツをトンネルキーで暗号化解除することができる。
【００５０】
クライアント側３５０とサーバ側３６０がネゴシエーションを実施しているとき、サーバ要求３１３は、ネゴシエーション暗号化コンテンツ３１８を含むことができる。ネゴシエーション暗号化コンテンツ３１８は、チャレンジ３１９、認証方法３２１、およびトラストアンカ３２２を含むことができる。チャレンジ３１９は、共有秘密鍵（セッション鍵１３１）を用いた前のパケットＩＤ（例えば前のパケットＩＤ３１４）のＨＭＡＣでよい。例えば、チャレンジ３１９は、以下の式に従って構成することができる。
【００５１】
Ｃｈａｌｌｅｎｇｅ＝ＨＭＡＣＳＳ［ＰＰｉｄ］
サーバ側３６０は、チャレンジに対する適切な応答を維持することができる。例えば、適切な応答は、共有秘密鍵を用いたチャレンジのＨＭＡＣでよい。適切な応答は、以下の式に従って構成することができる。
【００５２】
ＲｅｓｐｏｎｓｅＳ＝ＨＭＡＣＳＳ［Ｃｈａｌｌｅｎｇｅ］
認証方法３２１は、クライアント側３５０およびサーバ側３６０で相互にサポートされる認証方法を示すことができる。トラストアンカ３２２は前述のトラストアンカでよい。
【００５３】
クライアント側３５０がサーバ側３６０との間で再認証を受けているとき（例えばネゴシエーション後のある時に認証を受けているとき）、サーバ要求３１３は、別法として再認証暗号化コンテンツ３２８を含むこともできる。再認証暗号化コンテンツは、認証シグニチャ３２９および識別証明書３３１を含むことができる。認証シグニチャ３２９は、シグニチャＩＤタイプ（例えばＳＨＡ−１（キーＩＤ長＝２０オクテット）またはＳＨＡ２５６（キーＩＤ長＝３２オクテット））、シグニチャキーＩＤ、およびシグニチャタイプ（例えばＨＭＡＣ、ＲＳＡ  ＰＫＣＳ＃１、ＲＳＡ  ＰＳＳ、またはＤＳＡ）を含むことができる。識別証明書３３１は、例えばＸ．５０９証明書、ケルベロストークン、ＷＳセキュリティトークン、生公開鍵、Ｘ．５０９証明書のハッシュおよびＵＲＬ、ＷＳセキュリティトークンのハッシュおよびＵＲＬ、生公開鍵のハッシュおよびＵＲＬを含むことができる。
【００５４】
あるいは、（ネゴシエーション暗号化コンテンツ３１８または再認証暗号化コンテンツ３２８の代わりに）他のタイプの暗号化認証コンテンツをサーバ要求３１３に含めることもできることを理解されたい。例えば、既存のユーザ名およびパスワードを使用してクライアントをブートストラッピングするとき、サーバ要求３１３は、認証シグニチャ、識別証明書、および認証方法を含む暗号化コンテンツを有することができる。
【００５５】
Ｘ．５０９証明書で新しいクライアントをブートストラッピングするとき、サーバ要求３１３は、チャレンジ、トラストアンカ、認証方法、登録要求を含む暗号化コンテンツを有することができる。登録要求は、要求タイプ（例えば、ケルベロスＴＧＴ要求、ケルベロスＡＳ要求、ＰＣＫＳ＃１０要求、またはＣＭＣ要求）、キータイプ（例えば、ＲＳＡシグニチャ、ＤＳＡ、ＥＣＤＳＡ、またはＤＨ＋ＥＣＤＨ）、キーサブタイプ（例えば、ＰＳＡシグニチャキーまたはＤＨ＋ＥＣＤＨキー）、およびキーサイズ（例えば１０２４ビット）を含むことができる。Ｘ．５０９証明書で認証するとき、要求３１３は、認証シグニチャ、識別証明書、および認証方法を含む暗号化コンテンツを有することができる。
【００５６】
新しいクライアントをケルベロスチケットでブートストラッピングするとき、サーバ要求３１３は、チャレンジおよび登録要求を含む暗号化コンテンツを有することができる。
【００５７】
サーバ要求３１３に応答して、クライアント側３５０は、クライアント応答３３２を送信することができる。クライアント応答３３２は、以前のパケットＩＤ３３３、およびサーバ要求３１３に含まれる暗号化コンテンツに応答するデータを含むことができる。以前のパケットＩＤ３３３は、サーバ要求３１３に対応するパケットＩＤを示すことができる。クライアント側３５０およびサーバ側３６０がネゴシエーションを実施しているとき、クライアント応答３３２は、（トンネルキーで暗号化された）暗号化応答３３４を含むことができる。暗号化応答３３４は、チャレンジ３１９に対する応答でよい。
【００５８】
クライアント側３５０は、チャレンジ３１９に対する適切な応答を生成することができる。例えば、適切な応答は、共有秘密鍵を用いたチャレンジ１１９のＨＭＡＣでよい。適切な応答は、以下の式に従って構成することができる。
【００５９】
ＲｅｓｐｏｎｓｅＣ＝ＨＭＡＣＳＳ［Ｃｈａｌｌｅｎｇｅ］
クライアント側３５０がサーバ側３６０との間で再認証を受けているとき、クライアント応答３３２は認証シグニチャ３３６を含むことができる。
【００６０】
あるいは、（暗号化応答３３４または認証シグニチャ３３６の代わりに）暗号化認証コンテンツに応答する他のタイプのデータをクライアント応答３３２に含めることができることを理解されたい。例えば、既存のユーザ名およびパスワードを使用してクライアントをブートストラッピングするとき、クライアント応答３３２は、チャレンジ、エンドユーザ識別ペイロード、ドメイン識別ペイロードを含む暗号化応答データを有することができる。エンドユーザ識別ペイロードおよびドメイン識別ペイロードは、名前タイプ（例えば、完全修飾ＤＮＳ名、Ｅメールアドレス、ＩＰｖ４アドレス、ＩＰｖ６アドレス、ＤＥＲ符号化Ｘ．５００識別名、または領域名）を含むことができる。
【００６１】
Ｘ．５０９証明書で新しいクライアントをブートストラッピングするとき、クライアント応答３３２は、応答および証明書要求を含む暗号化応答データを有することができる。Ｘ．５０９証明書で認証するとき、クライアント応答３３２は、認証シグニチャおよび識別証明書を含む暗号化応答データを有することができる。ケルベロスチケットで新しいクライアントをブートストラッピングするとき、クライアント応答３３２は、応答および証明書要求を含む暗号化応答データを有することができる。
【００６２】
本発明の実施形態は、いくつかの異なる認証メカニズムの中からのネゴシエーティング認証メカニズムを実施する。クライアントコンピューティングシステムおよびサーバコンピューティングシステムは、相互にサポートされる認証メカニズムを識別することができ、識別したメカニズムを認証のために使用することができる。自動ネゴシエーションは、ネットワークに関して配置される可能性のある認証メカニズムをユーザが認識している必要を軽減する。したがって、認証をより効率的に実施することができる。
【００６３】
図４および以下の議論では、本発明を実施することのできる適切なコンピューティング環境の簡潔な一般的説明を与えることが意図される。必須ではないが、コンピュータシステムによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的状況で本発明を説明する。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令、関連するデータ構造、およびプログラムモジュールは、本明細書で開示される方法の動作を実行するプログラムコード手段の例を表す。
【００６４】
図４を参照すると、本発明を実施する例示的システムは、処理装置４２１と、システムメモリ４２２と、システムメモリ４２２を含む様々なシステム構成要素を処理装置４２１に結合するシステムバス４２３とを含む、コンピュータシステム４２０の形態の汎用コンピューティング装置を含む。処理装置４２１は、本発明の機能を含む、コンピュータシステム４２０の機能を実施するように設計されたコンピュータ実行可能命令を実行することができる。システムバス４２３は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれでもよい。システムメモリは、読取り専用メモリ（「ＲＯＭ」）４２４およびランダムアクセスメモリ（「ＲＡＭ」）４２５を含む。起動中などにコンピュータシステム４２０内の要素間で情報を転送する助けになる基本ルーチンを含む基本入出力システム（「ＢＩＯＳ」）４２６を、ＲＯＭ４２４に格納することができる。
【００６５】
コンピュータシステム４２０はまた、磁気ハードディスク４３９を読み書きする磁気ハードディスクドライブ４２７と、取外し可能磁気ディスク４２９を読み書きする磁気ディスクドライブ４２８と、例えばＣＤ−ＲＯＭやその他の光媒体などの取外し可能光ディスク４３１を読み書きする光ディスクドライブ４３０とを含むことができる。磁気ハードディスクドライブ４２７、磁気ディスクドライブ４２８、および光ディスクドライブ４３０は、それぞれハードディスクドライブインターフェース４３２、磁気ディスクドライブインターフェース４３３、および光ドライブインターフェース４３４によってシステムバス４２３に接続される。ドライブおよびその関連するコンピュータ可能媒体は、コンピュータシステム４２０に関するコンピュータ実行可能命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶を実現する。本明細書で説明する例示的環境は磁気ハードディスク４３９、取外し可能磁気ディスク４２９、および取外し可能光ディスク４３１を利用するが、磁気カセット、フラッシュメモリカード、デジタルバーサタイルディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなどを含む、データを格納するためのその他のタイプのコンピュータ可読媒体も使用することができる。ストレージ１３２は、記載のタイプのコンピュータ可読媒体の１つの一部でよい。
【００６６】
オペレーティングシステム４３５、１つまたは複数のアプリケーションプログラム４３６、他のプログラムモジュール４３７、およびプログラムデータ４３８を含む１つまたは複数のプログラムモジュールを有するプログラムコード手段を、ハードディスク４３９、磁気ディスク４２９、光ディスク４３１、ＲＯＭ４２４、またはＲＡＭ４２５上に格納することができる。ユーザは、キーボード４４０、ポインティングデバイス４４２、あるいはマイクロフォン、ジョイスティック、ゲームパッド、スキャナなどのその他の入力装置（図示せず）を介してコンピュータシステム４２０にコマンドおよび情報を入力することができる。上記およびその他の入力装置は、システムバス４２３に結合された入出力インターフェース４４６を介して処理装置４２１に接続することができる。入出力インターフェース４４６は、シリアルポートインターフェース、ＰＳ／２インターフェース、パラレルポートインターフェース、ユニバーサルシリアルバス（「ＵＳＢ」）インターフェース、米国電気電子学会（「ＩＥＥＥ」）１３９４インターフェース（すなわちＦｉｒｅＷｉｒｅインターフェース）などの多種多様な可能なインターフェースのいずれかを論理的に表し、さらには異なるインターフェースの組合せを論理的に表すことができる。
【００６７】
モニタ４４７または他のディスプレイ装置もビデオインターフェース４４８を介してシステムバス４２３に接続される。モニタ４４７は、コンピュータシステム４２０で生成された、テキストを含むモノクロームおよび／またはカラーグラフィカルオブジェクトを表示することができる。例えばスピーカ、プリンタ、スキャナなどの他の周辺装置（図示せず）もコンピュータシステム４２０に接続することができる。コンピュータシステム４４７に接続されたプリンタは、コンピュータシステム４２０で生成された、テキストを含むモノクロームおよび／またはカラーグラフィカルオブジェクトを印刷することができる。
【００６８】
コンピュータシステム４２０は、例えば、オフィス全体または企業全体のコンピュータネットワーク、ホームネットワーク、イントラネット、および／またはインターネットなどのネットワークに接続可能である。コンピュータシステム４２０は、そのようなネットワークを介して、例えばリモートコンピュータシステム、リモートアプリケーション、および／またはリモートデータベースなどの外部ソースとデータを交換することができる。
【００６９】
コンピュータシステム４２０は、コンピュータシステム４２０がそれを介して外部ソースからデータを受信し、かつ／または外部ソースにデータを送信するネットワークインターフェース４５３を含む。図４に示すように、ネットワークインターフェース４５３は、リンク４５１を介してリモートコンピュータシステム４８３とのデータの交換を実施する。ネットワークインターフェース４５３は、例えばネットワークインターフェースカードおよび対応するネットワークドライバインターフェース仕様（「ＮＤＩＳ」）スタックなどの１つまたは複数のソフトウェアおよび／またはハードウェアモジュールを論理的に表すことができる。リンク４５１は、ネットワークの一部（例えばイーサネット（登録商標）セグメント）を表し、リモートコンピュータシステム４８３は、ネットワークのノードを表す。
【００７０】
同様に、コンピュータシステム４２０は入出力インターフェース４４６を含み、コンピュータシステム４２０は、その入出力インターフェース４４６を介して外部ソースからデータを受信し、かつ／または外部ソースにデータを送信する。入出力インターフェース４４６はモデム４５４（例えば標準モデム、ケーブルモデム、またはデジタル加入者線（「ＤＳＬ」）モデム）に結合され、コンピュータシステム４２０は、そのモデム４５４を介して外部ソースからデータを受信し、かつ／または外部ソースにデータを送信する。図４に示すように、入出力インターフェース４４６およびモデム４５４は、リンク４５２を介してリモートコンピュータシステム４９３とのデータの交換を実施する。リンク４５２はネットワークの一部を表し、リモートコンピュータシステム４９３はネットワークのノードを表す。
【００７１】
図４は、本発明の適切な動作環境を表すが、必要なら適切な修正を行うことによって本発明の原理を実施することができるどんなシステムでも本発明の原理を利用することができる。図４に示す環境は単なる例であり、本発明の原理を実施することができる多種多様な環境の小部分さえも表しているというわけではない。
【００７２】
本発明によれば、例えば証明書プロビジョニングモジュール１１２などのモジュール、ならびに例えば限定使用証明書１０２、鍵ペア１０３および１１３、サーバ要求３０１および３１３、クライアント応答３０６および３３２などの関連するプログラムデータを、コンピュータシステム４２０に関連するコンピュータ可読媒体のいずれかに格納することができ、そこからアクセスすることができる。例えば、このようなモジュールの部分および関連するプログラムデータの部分を、システムメモリ４２２に格納するためにオペレーティングシステム４３５、アプリケーションプログラム４３６、プログラムモジュール４３７、および／またはプログラムデータ４３８に含めることができる。
【００７３】
例えば磁気ハードディスク４３９などの大容量記憶装置がコンピュータシステム４２０に結合されるとき、このようなモジュールおよび関連するプログラムデータを大容量記憶装置に格納することもできる。ネットワーク環境では、コンピュータシステム４２０に関して示したプログラムモジュールまたはその部分を、リモートコンピュータシステム４８３および／またはリモートコンピュータシステム４９３に関連するシステムメモリおよび／または大容量記憶装置などのリモートメモリ記憶装置に格納することができる。このようなモジュールの実行を分散環境で実行することができる。
【００７４】
本発明の精神および本質的な特徴から逸脱することなく、本発明を他の特定の形態で実施することができる。記載の実施形態は、すべての点で、限定的なものでなく例示的なものとみなすべきである。したがって本発明の範囲は、上記の説明ではなく添付の特許請求の範囲によって示される。特許請求の範囲の均等の意味および範囲内のすべての変更はその範囲内に包含されるべきである。
【図面の簡単な説明】
【００７５】
【図１】本発明によるコンピューティングシステムのより効率的かつセキュアな認証を実施する例示的コンピュータアーキテクチャを示す図である。
【図２】本発明による証明書をプロビジョニングする例示的方法を示す流れ図である。
【図３】自動ネゴシエーティング認証方法に関するメッセージ交換を示す図である。
【図４】本発明の原理を実施する適切なオペレーティング環境を示す図である。
【符号の説明】
【００７６】
１０１  クライアントコンピューティングシステム
１０２  限定使用証明書
１０３  鍵ペア
１０４  公開鍵
１０６  秘密鍵
１１１  サーバコンピューティングシステム
１１２  証明書プロビジョニングモジュール
１１３  鍵ペア
１１４  公開鍵
１１６  秘密鍵
１１７  追加の証明書
１２２  セキュアリンク
１３１  セッション鍵
【図１】
0004746333.tif 000003
【図２】
0004746333.tif 000004
【図３】
0004746333.tif 000005
【図４】
0004746333.tif 000006