説明

ネットワーク資源に対するシングルサインオン及び安全なアクセスのためのポリシ駆動の証明情報委譲

【課題】
【解決手段】
証明情報セキュリティサポートプロバイダ(Cred SSP)によって、任意のアプリケーションが、クライアントからクライアント側セキュリティサポートプロバイダ(SSP)ソフトウェアを介して、ターゲットサーバに、サーバ側SSPソフトウェアを介してユーザの証明情報を安全に委譲することができる。Cred SSPは、部分的にポリシのセットに基づいて安全なソリューションを提供する。ポリシはあらゆるタイプの証明情報に対するものとすることができ、所与の委譲状況、ネットワーク状態、信頼レベル等に対して適切な委譲を行うことができるように、種々のポリシが広範囲の攻撃を軽減するように設計される。さらに、信頼されたサブシステム、たとえばローカルセキュリティ機関(LSA)の信頼されたサブシステムのみが平文の証明情報にアクセスすることができ、それによって、サーバ側のCred SSP APIの呼出しアプリケーションもクライアント側のCred SSP APIの呼出しアプリケーションも、平文の証明情報にアクセスすることができない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークコンピューティング環境におけるアプリケーション、資源及び/又はサービスに対するシングルサインオン及び安全なアクセスのためのポリシ駆動の証明情報(credential)委譲(delegation)に関する。
【背景技術】
【0002】
クライアントを介してアクセスされるサーバアプリケーションでは、そのサーバアプリケーションによって使用可能となるシナリオをサポートするために、クライアントのユーザの証明情報がサーバに委譲されることが必要である場合がある。このような委譲状況では、サーバアプリケーションが、ユーザが単純にサーバアプリケーションのローカルユーザとしてログインするときに利用可能な機能をエミュレートするために、リモート端末のユーザのパスワードがサーバ側で必要となる。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、サーバアプリケーションの機能にアクセスするために証明情報をクライアントからサーバアプリケーションに委譲する現行のシステムは、十分に安全ではなく、すなわち、ユーザの証明情報をクライアントからサーバに委譲する/送信するときの保護が不十分であり、ユーザの証明情報は特定の形態の攻撃を受け易いままである。現在、たとえば、サーバ側又はクライアント側のいずれかにおける呼出しアプリケーションは、ユーザの平文の証明情報にアクセスできる場合があり、そのため、ユーザの証明情報は幾分か安全でない。さらに、目下、いかなるタイプのユーザ証明情報、すなわちユーザ名/パスワード、スマートカードPIN、ワインタイムパスコード(OTP)等にも適用される、クライアントからユーザへのユーザ証明情報の委譲を制御及び制限するポリシ駆動の方法はない。
【課題を解決するための手段】
【0004】
本発明に関して後により詳細に説明するように、現行の技術水準のこれらの欠点及び他の欠点に対し改良を行うことが望ましい。
【0005】
上記を鑑みて、本発明は、ネットワークコンピューティング環境において、任意のアプリケーションが、ユーザの証明情報を、クライアントからクライアント側セキュリティサポートプロバイダ(SSP)ソフトウェアを介して、ターゲットサーバにサーバ側SSPソフトウェアを介して安全に委譲するのを可能にする、証明情報セキュリティサポートプロバイダ(Cred SSP)を提供する。一実施形態では、Cred SSPは、クライアントのオペレーティングシステムの一部として含まれてもよい、セキュリティサポートプロバイダインタフェース(SSPI)ソフトウェアを介してユーザに利用可能となる。本発明のCred SSPは、部分的に、ユーザ証明情報のクライアントからサーバへの委譲を制御及び制限するの使用される、広範囲の攻撃に対して安全なデフォルトポリシを含むポリシのセットに基づく、安全なソリューションを提供する。それらのポリシは、あらゆるタイプのユーザ証明情報に対するものとすることができ、所与の委譲状況、ネットワーク状態、信頼レベル等に対して適切な委譲を行うことができるように、広範囲の攻撃を軽減するように、種々のポリシが設計される。さらに、信頼されたサブシステム、たとえばローカルセキュリティ機関(LSA)の信頼されたサブシステムのみが、平文の証明情報にアクセスすることができ、それによって、サーバ側のCred SSPを使用するSSPI APIの呼出しアプリケーションも、クライアント側のCred SSPを使用するSSPI APIの呼出しアプリケーションも、平文の証明情報にアクセスすることができない。
【0006】
本発明の他の特徴については後述する。
【0007】
ネットワークコンピューティング環境における資源に対するシングルサインオン及び安全なアクセスのためのポリシ駆動の証明情報委譲について、添付図面に関連してさらに説明する。
【発明を実施するための最良の形態】
【0008】
概説
背景技術において述べたたように、サーバシナリオをサポートするためにユーザの証明情報をサーバに委譲する必要のあるクライアント/サーバアプリケーションがある。ターミナルサーバは、1つのこのような例であり、そこでは、サーバの機能をクライアント側でエミュレートするために、ユーザのパスワードがサーバ側で使用される場合がある。しかしながら、上述したように、従来技術による委譲技法は、ユーザの証明情報がサーバに送信されるとき、ユーザの証明情報に対し十分な保護を提供しない。
【0009】
本発明のCred SSPは、クライアントのオペレーティングシステムの既存のセキュリティサポートプロバイダインタフェース(SSPI)インフラストラクチャを介して利用可能となり得る、「セキュリティサービスプロバイダ」と称されることもある新たな「セキュリティサポートプロバイダ」である。本発明のCred SSPによって、アプリケーションは、クライアントから、たとえばクライアント側SSPソフトウェアを介して、ターゲットサーバに、たとえばサーバ側SSPソフトウェアを介して、ユーザの証明情報を委譲することができる。例示的な非限定的実施形態では、本発明のCred SSPを、ターミナルサーバに含めることができる。しかしながら、本発明のCred SSPを、他のアプリケーションが利用してもよく、適用可能なオペレーティングシステムのSSPIを使用して任意の内部のアプリケーション又はサードパーティアプリケーションに利用可能となるようにしてもよい。
【0010】
Cred SSPソリューションは、ユーザの証明情報のクライアントからサーバへの委譲を制御及び制限するのに使用することができるポリシのセットを提供する、より安全なソリューションである。ポリシは、クライアントのマシンで実行しているマルウェアを含む、広範囲の攻撃に対処するように設計されている。本発明のCred SSPは、クライアントマシンがデフォルトで広範囲の攻撃を軽減することができるようにするポリシ設定を介する特定の構成である、「デフォルトで安全な」ポリシを含む。本発明のポリシのセットは、限定されないがユーザ名/パスワード、スマートカードPIN、ワンタイムパスコード(OTP)等を含む、いかなるタイプのユーザ証明情報を保護することにも適用可能である。信頼されたサブシステムのみが平文の証明情報にアクセスすることができるため、本発明のCred SSPは、サーバ側又はクライアント側の(Cred SSP APIの)呼出しアプリケーションが、平文の証明情報にアクセスすることができないように、ユーザの証明情報を保護する。
【0011】
たとえば、Microsoftのターミナルサーバ(TS)は、端末/クライアントに対してMicrosoftのWindows(登録商標)オペレーティングシステム製品のアプリケーション及び「デスクトップ」体験の提供を許可するために、ユーザに対し、端末/クライアントにおけるサインオン証明情報を提供し、それらのサインオン証明情報をサーバに委譲するように要求する場合がある、サーバ/クライアント製品の一例である。TSを、概して3つの主な部分、すなわちマルチユーザコアサーバと、Windows(登録商標)デスクトップインタフェースがサーバによって端末に送信されることを可能にするリモートデスクトッププロトコル(RDP)と、各端末で実行するクライアントソフトウェアとを含むものとして考えることができる。本発明の1つの非限定的実施形態では、本発明の証明情報セキュリティサポートプロバイダのプロトコルを、ターミナルサーバソフトウェアに関連して実施してもよい。
補足的状況
本明細書では、さまざまな実施形態のうちのいくつかを、認証及び証明情報委譲の技術分野の当業者に一般に理解される用語に関連して説明する。このセクションは、当業者の知識を代用することは意図されておらず、非網羅的な概説とみなされるべきであるが、後により詳細に説明するように、本発明のさまざまな実施形態の動作の状況において利用されるいくつかの用語に対し、いくつかの追加の状況及び背景を有利に提供するものと考えられる。
【0012】
このため、本明細書では、当業者によって一般的に既知である以下の用語に対する追加の状況及び背景について提供する。すなわち、ケルベロス、Windows(登録商標) NTローカルエリアネットワーク(LAN)マネージャ(NTLM)、単純な保護されている汎用セキュリティサービスアプリケーションプログラムインタフェース(GSSAPI)ネゴシエーションメカニズム(略してSPNEGO)、ローカルセキュリティ機関(LSA)、セキュリティサポートプロバイダインタフェース(SSPI)及びセキュアソケットレイヤ(SSL)プロトコル並びに例示的なWindows(登録商標)認証インフラストラクチャである。
ケルベロス
ケルベロスは、コンピュータネットワークにおけるサービスへの要求を認証する安全な方法である。ケルベロスは、地獄への入口の番をする神話上の頭が3つある犬からその名前を借りており、ユーザに、認証プロセスから、後にサーバから特定のサービスを要求するのに使用することができる暗号化「チケット」を要求させ、それによって、ユーザのパスワードがネットワークを通過する必要がないようにする。ケルベロスは、クライアントと、クライアントにおけるユーザによるログイン要求を含む、サーバへのアクセスを許可するサーバ側ソフトウェアとを含む。しかしながら、サーバは、そのアプリケーション、資源及び/又はサービスへのアクセスの要求に応じる前に、ケルベロス「チケット」を要求する。適切なケルベロスチケットを取得するために、クライアントによって認証サーバ(AS)に対して認証要求がなされる。ASは、ユーザ名から取得されるユーザのパスワードと、要求されたサービスを表すランダム値とに基づいて、暗号鍵でもある「セッションキー」を作成する。この意味で、セッションキーは、実質的には「チケット認可チケット(ticket-granting ticket)」である。
【0013】
次に、取得されたチケット認可チケットがチケット認可サーバ(ticket-granting server)(TGS)に送信される。TGSは、ASと物理的に同じサーバであってもよいが、機能的に異なるサービスを実行する。TSGは、要求されたサービスに対してサーバに送信することができるチケットを返す。サービスは、チケットが無効である場合にそのチケットを拒否するか、又はそのチケットを有効なチケットとして受け入れてサービスを実行する。TGSから受け取られるチケットにはタイムスタンプが刻印されているため、チケットによって、一定時間期間内に、サーバのサービスのユーザの使用を再認証する必要なく、同じチケットを使用して追加の要求を行うことが可能である。他方で、限られた時間期間チケットを有効にすることによって、許可されたユーザ以外の誰かがチケットを再使用することができる可能性を低減する。当業者は、インタフェース、プロトコル、ペイロード及びドライバレベルでのケルベロス認証プロセスの詳細がはるかに複雑であり得ること、及びユーザ手続きが実施態様によって幾分異なる場合があることを理解することができる。
Windows(登録商標) NT LANマネージャ(NTLM)
ケルベロスの代替物であるNTLMは、さまざまなMicrosoftネットワークプロトコル実施態様で使用され、NTLMセキュリティサポートプロバイダ(NTLMSSP)によってサポートされる、認証プロトコルである。NTLMは、最初は、安全な分散コンピューティング環境(DCE)/リモートプロシージャコール(RPC)通信の認証及びネゴシエーションに使用されたが、統合されたシングルサインオンメカニズムとしても使用される。
【0014】
NTLMは、認証のためにチャレンジ・レスポンスメカニズムを採用し、そこでは、クライアントが、サーバにパスワードを送信することなく自身の身元を証明することができる。チャレンジ・レスポンスメカニズムは、一般にタイプ1(ネゴシエーション)、タイプ2(チャレンジ)及びタイプ3(認証)とも称される3つのメッセージを含む。高レベルでは、NTLMによって、まず、クライアントはサーバに対し、クライアントによってサポートされサーバに要求される機能のリストを含むタイプ1メッセージを送信する。サーバは、サーバによってサポートされ合意された特徴のリストと、サーバによって生成されるチャレンジとを含むタイプ2メッセージで、クライアントに応答する。クライアントは、クライアントユーザのドメイン及びユーザ名を含むクライアントに関するいくつかの情報とタイプ2チャレンジに対する1つ又は複数の応答とを含むタイプ3メッセージで、チャレンジに応答する。タイプ3メッセージにおける応答(複数可)は、サーバに対し、クライアントユーザがアカウントパスワードを知っていることを証明するため、重要なものである。
セキュアチャネル(Schannel)
Schannelとしても知られるセキュアチャネルは、暗号化を通じて身元認証及び強化された通信セキュリティを提供するセキュリティプロトコルのセットを含む、セキュリティサポート/サービスプロバイダ(SSP)である。Schannelは、主に、ハイパーテキスト転送プロトコル(HTTP)通信のためにセキュリティの強化を必要とするインターネットアプリケーションに使用されている。Schannelセキュリティプロトコルによって、サーバがその身元の証明をクライアントに提供するサーバ認証が要求される。そのため、Schannelプロトコルは、サーバ及び任意選択でクライアントを認証するのに使用することができるSchannl証明情報を利用する。クライアント認証は、サーバによって常に要求される可能性がある。Schannel証明情報はX.509証明書である。証明書からの公開鍵及び秘密鍵情報を使用して、サーバ及び任意選択でクライアントが認証される。これらの鍵はまた、クライアント及びサーバがセッションキーを生成し交換するのに必要な情報を交換する間に、メッセージ完全性を提供するのにも使用される。Schannelは、後により詳細に参照するSSLプロトコル及びTLSプロトコルを実装する。
単純で保護されたGSSAPIネゴシエーションメカニズム(SPNEGO)
SPNEGOは、ピアが、いずれのGSSAPIメカニズムが共有されるかを確定し、1つを選択し、次に、共有GSSAPIメカニズムによってセキュリティコンテキストを確立する、標準汎用セキュリティサービスアプリケーションプログラムインタフェース(GSSAPI)擬似メカニズムである。SPNEGOの仕様は、1998年12月付けの「GSS-API Negotiation Mechanism」と題するインターネット技術タスクフォース(Internet Engineering Task Force)の草案RFC2478に見ることができる。
【0015】
SPNEGOの使用は、たとえば、最初に閲覧ソフトウェアInternet Explorerで実装され、Windows(登録商標)統合認証として知られるシングルサインオン機能を提供した、認証拡張機能である、「HTTPネゴシエート」に見ることができる。SPNEGOのネゴシエート可能なサブメカニズムにはNTLM及びケルベロスがあり、それらは共にアクティブディレクトリを使用する可能性がある。
【0016】
GSSAPIは、異なるセキュリティメカニズムの上に階層化されることが可能な汎用インタフェースを提供し、それによって、通信しているピアが同じセキュリティメカニズムに対するGSSAPI証明情報を取得すると、それらの間にセキュリティコンテキストを確立することができる。しかしながら、GSSAPIは、GSSAPIピアが共通のセキュリティメカニズムを有するか否かを確立することができるようにする方法について規定していない。
【0017】
SPNEGOによって、GSSAPIピアは、それらの証明情報が共通のGSSAPIセキュリティメカニズム(複数可)を共有するか否かを帯域内で確定し、共有する場合、選択された共通のセキュリティメカニズムに対し通常のセキュリティコンテキスト確立を呼び出すことができ、それによって、異なるセキュリティメカニズム、所与のセキュリティメカニズム内での異なるオプション、又はいくつかのセキュリティメカニズムからの異なるオプションのネゴシエーションが可能になる。これは、複数のセキュリティメカニズムをサポートするGSSAPI実施態様に基づくアプリケーションに対して最も有用である。共通のセキュリティメカニズムが識別されると、それは、そのコンテキスト確立中にメカニズムに固有のオプションをネゴシエートしてもよい。
【0018】
SPNEGOによって、ネゴシテーションデータは、コンテキストレベルトークンにカプセル化される。このため、GSSAPIの呼出し側は、ネゴシテーショントークンの存在に気付く必要はなく、擬似セキュリティメカニズムの存在にのみ気付けばよい。
【0019】
SPNEGOのネゴシエーションモデルは以下のように作用する。イニシエータは、1つのセキュリティメカニズムか又はセキュリティメカニズムの順序付きリストを提案し、ターゲットは、提案されたセキュリティメカニズムを受け入れるか、若しくは提供されたセットから1つを選択するか、又は提案された値(複数可)を拒否する。そして、ターゲットは、イニシエータに対してその選択を通知する。
【0020】
このプロトコルは、その基本形式において、余分なラウンドトリップが必要である。ネットワークコネクションセットアップは、いかなるネットワークインフラストラクチャにおいても重要な性能特性であり、WANリンク、パケット無線ネットワーク等にわたる余分なラウンドトリップが実際に重大である場合がある。このような余分なラウンドトリップを回避するために、イニシエータに対する好ましいメカニズムの初期セキュリティトークンを、初期トークンに埋め込むことができる。ターゲットの好ましいメカニズムがイニシエータの好ましいメカニズムと一致する場合、ネゴシエーションプロトコルを使用することによっていかなる追加のラウンドトリップももたらされない。
【0021】
SPENGOはまた、ターゲットによって選択される基礎となるメカニズムが、完全性保護が可能である場合、ネゴシエーションを保護する技法も提供する。イニシエータによって提案されるメカニズムが完全性保護をサポートする場合、又は選択されたメカニズムが完全性保護をサポートする場合、ネゴシエーションメカニズムは保護される。それは、これが、両ピアによってサポートされる適切なメカニズムが選択されたことを保証するためである。
ローカルセキュリティ機関(LSA)
LSAは、一般化された概念ではあるが、ローカルログオン及びリモートログオン両方に対してユーザを確認する役割を担う、MicrosoftのWindows(登録商標)オペレーティングシステム技術のログオンプロセスの重要な要素である。LSAはまた、ローカルセキュリティポリシも維持する。
【0022】
マシンに対するローカルの対話型ログオンの間に、人は、ログオンダイアログに対して自身の名前及びパスワードを入力する。この情報はLSAに渡され、次にLSAは、適切な認証パッケージを呼び出す。パスワードは、一方向ハッシュ関数を使用して、非可逆秘密鍵フォーマットで送信される。次に、LSAは、セキュリティアカウントマネージャ(SAM)データベースに対しユーザのアカウント情報を問い合わせる。提供された鍵がSAMの鍵と一致する場合、SAMは、ユーザのセキュリティ識別子(SID)とユーザが属する任意のグループのSIDとを返す。そして、LSAは、これらのSIDを使用して、セキュリティアクセストークン(複数可)を生成する。この説明は、ユーザがローカルアカウントを有する場合に当てはまり、マシンに対してユーザを認証するためにケルベロスサービスチケットが取得されるドメインアカウントとは対照的である。
セキュリティサポートプロバイダインタフェース(SSPI)
SSPIは、ユーザを認証する、すなわち、ユーザが、自身が本人であると主張する者であること、又は最低限、ユーザが、特定のユーザアカウントに関連付けられる秘密、たとえばパスワードを知っていることを確認するメカニズムを定義する。
【0023】
このような認証されたコネクションに対して使用される証明情報は、以下のものがあり得る。すなわち、(1)クライアントマシンとサーバマシンとの間の既存の認証されたリンク(たとえば、既存のドライブマッピング)の証明情報、(2)サーバがこのアカウントに関連付けられるSIDを理解する場合の、クライアントユーザのアカウントの証明情報、すなわち、これは、クライアント及びサーバの両方が同じドメインを信頼し、ユーザアカウントがそのドメインからのものであることを意味する、(3)クライアントユーザ名及びパスワードと一致する場合(この場合、クライアントユーザのアカウントとユーザがサーバで使用するアカウントとは別個である)の、サーバにおけるローカルアカウントの生の証明情報(たとえば、名前及びパスワード)及び(4)ユーザによって明示的に渡される証明情報(たとえば名前及びパスワード)である。SSPIは、呼出しアプリケーション(クライアントプロセス及びサーバプロセス)に対し、基礎となるセキュリティプロバイダが満足するまでデータブロックを往復して送信するように要求することによって作用する。
【0024】
クライアントは、セキュリティダイナミックリンクライブラリ(DLL)をロードし、パッケージ(NTLM、ケルベロス等、セキュリティプロバイダに対する別の用語)を選択した後、ローカル又はクライアントSSPIを初期化し、第1のデータのセットを検索してサーバに送信する。一方、サーバは、サーバSSPIを初期化し、第1のデータのセットを受け取った後、それをサーバSSPIに供給し、サーバSSPIは、その第1のデータのセットを処理して、その結果第2のデータのセットが生じる。折り返し、サーバはその結果としての第2のデータのセットに対してチェックを実行し、データが0より大きい場合、クライアントに第2のデータのセットを送信し、クライアントは次にそれをクライアントSSPIに供給する。次に、クライアントSSPIは、第3のデータのセットがサーバに送信されることを要求するか、又はアプリケーションに対し認証が完了したことを通知する。これは、クライアントSSPI及びサーバSSPIの両方が、他方から受け取られるデータに満足するまで続く。
【0025】
この時点で、サーバは、(特に)クライアントのユーザ名を問い合わせされることができる、コンテキストハンドルを保持する。クライアントによって使用されるオプションに応じて、サーバはまた、コンテキストを使用してクライアントに成り済ますこと、メッセージに署名するか又はメッセージを暗号化すること等が可能になってもよい。もう1つの任意選択のステップが実行されてもよい。送受信サイクルを終了するために、セキュリティプロバイダによっては、CompleteAuthToken(CAT)と称される事前定義された終了ステップを要求してもよい。
セキュアソケットレイヤ(SSL)プロトコル及びトランスポート層セキュリティ(TLS)プロトコル
共にSchannelによって実装される、セキュアソケットレイヤ(SSL)プロトコル及びその後続プロトコルであるトランスポート層セキュリティ(TLS)プロトコルは、インターネット上で安全な通信を提供する暗号法プロトコルである。SSL3.0とTLS1.0との間にはわずかな相違があるが、プロトコルは実質的に同じままである。「SSL」という用語は、文脈によって明確にされない限り、両プロトコルを指す場合がある。
【0026】
SSL/TSLプロトコルは、暗号法を使用してインターネットを介してエンドポイント認証及び通信プライバシを提供する。通常の使用では、サーバは認証され(すなわち、その身元は保証され)、一方、クライアントは認証されないままであるが、相互の認証はクライアントに対し公開鍵インフラストラクチャ(PKI)展開を介して実行され得る。これらのプロトコルによって、クライアント/サーバアプリケーションは、盗聴、改ざん及びメッセージ偽造を防止するように設計された方法で通信することができる。
例示的な非限定的Windows(登録商標)認証インフラストラクチャ
1つの例示的な非限定的認証インフラストラクチャは、セキュリティサービス/サポートプロバイダ(SSP)ソフトウェアを介して異なる認証方法をサポートするWindows(登録商標)オペレーティングシステム技術によって提供される。
【0027】
一実施態様では、Windows(登録商標)は、上述した3つの主なSSPをサポートする。すなわち、ケルベロス、NTLMチャレンジ/レスポンス及びSChannelセキュリティプロトコルである。ケルベロスはWindows(登録商標)2000におけるデフォルト認証方法であるが、セキュリティサポートプロバイダインタフェースすなわちSSPIを通じて他の方法を使用してもよい。さらに、たとえば、Windows(登録商標)は、以下のネットワークSSPを使用することによって、デジタル証明書を用いて認証サービスを提供することができる。すなわち、分散パスワード認証(DPA)(インターネット認証プロトコル)、拡張認証プロトコル(EAP)(ポイント・ツー・ポイント(PPP)プロトコルへの拡張)、並びに、SSL、TLS及びプライベート通信技術を含む公開鍵ベースのプロトコルである。
ネットワーク資源に対するシングルサインオン及び安全なアクセスのためのポリシ駆動の証明情報委譲
上述したように、本発明は、アプリケーションが、ユーザの証明情報をクライアントから、たとえばクライアント側SSPソフトウェアを介して、ターゲットサーバに、たとえばサーバ側SSPソフトウェアを介して委譲することを可能にする、拡張証明情報セキュリティサポートプロバイダ(Cred SSP)ソフトウェアを提供する。本発明のCred SSPを、適用可能なSSPI、たとえばオペレーティングシステムアプリケーションプラットフォームと統合されるSSPIを使用して、オペレーティングシステムの任意のネイティブアプリケーション又は任意のサードパーティアプリケーションによって利用することができる。
【0028】
図1は、平文の証明情報を呼出しアプリケーション(複数可)に晒すことなく、証明情報のクライアントからサーバへの安全な委譲を可能にする、本発明のCred SSPアーキテクチャの概略ブロック図である。一実施形態では、Cred SSPは、2つのパッケージのセットとして実装される。すなわち、クライアントコンピューティング装置又はサーバコンピューティング装置のための、装置Dのクライアント(又はアプリケーション)側CredSSPパッケージClient-Side_CredSSP及びLSA側CredSSPパッケージLSA_CredSSPである。
【0029】
クライアント側パッケージClient-side_CredSSPは、クライアント側セキュリティサポートプロバイダインタフェースClient-side_CredSSPインタフェースI1の呼出し側に晒され、Schannelネゴシエーションを提供すると共に、Schennelパッケージ機能、及びLSA-side Cred SSPインタフェースI2を介するLSA側パッケージLSA_CredSSPとの通信を晒す、クライアント側セキュリティサポートプロバイダソフトウェアである。本発明によれば、ユーザプロセスにおいてSchannelネゴシエーション及び機能を処理することによって、LSAによる実行と比較して、より高速なencryptMessage操作及びdecryptMeesage操作が容易になる。
【0030】
本発明によれば、LSAパッケージLSA_CredSSPは、SPNEGOネゴシエーションと証明情報暗号化/解読及び証明情報転送を提供すると共に、本発明のポリシの上述したセットに従って定義されるポリシに対するポリシチェックを実行する。
【0031】
上述したように、且つ例示的な非限定的実施形態において図2A及び図2Bに示すように、本発明は、証明情報をターミナルサーバ250に委譲するターミナルサーバクライアント200と関連して実施される。
【0032】
図2Aに示すように、ターミナルサーバクライアント200の実施態様は、ローカルプロシージャコール(LPC)215を利用して、セキュア認証ライブラリ205を介してLSAサーバプロセス225と対話し、それはプロセス境界220を越えてデータを送信することを含む。関数210は、セキュア認証ライブラリ205で実行し、セキュアソケットレイヤ/セキュリティコンテキスト初期化(SSL.ISC)関数とセキュアソケットレイヤ/メッセージ暗号化(SSL.EM)関数とを含む、CredSSPセキュリティコンテキスト初期化(CredSSP.ISC)関数を含むことができる。関数230は、LSAサーバプロセス225で実行し、SPNEGO/セキュリティコンテキスト初期化(SPNEGO.ISC)関数とSPNEGO/メッセージ暗号化(SPNEGO.EM)関数とを含む、CredSSPセキュリティコンテキスト初期化(CredSSP.ISC)関数を含むことができる。
【0033】
図2Bに示すように、ターミナルサーバ250の実施態様は、ローカルプロシージャコール(LPC)265を利用して、セキュア認証ライブラリ255を介してLSAサーバプロセス275と対話し、それはプロセス境界270を横断することを含む。関数260は、セキュア認証プロセス205で実行し、セキュアソケットレイヤ/セキュリティコンテキスト受入れ(SSL.ASC)関数とセキュアソケットレイヤ/メッセージ解読(SSL.DM)関数とを含む、CredSSPセキュリティコンテキスト受入れ(CredSSP.ASC)関数を含むことができる。関数280は、LSAサーバプロセス275で実行し、SPNEGO/セキュリティコンテキスト受入れ(SPNEGO.ASC)関数とSPNEGO/メッセージ解読(SPNEGO.DM)関数とを含む、CredSSPセキュリティコンテキスト受入れ(CredSSP.ASC)関数を含むことができる。
【0034】
本発明のCredSSPによって利用される例示的な非限定的プロトコルを、図3の流れ図において例示的に示す。300において、クライアントとサーバとの間で最初のSSL/TLSハンドシェイクが行われる。305において、SPNEGOネゴシエーションが発生して、認証メカニズム(たとえば、ケルベロス若しくはNTLM、又はクライアント及びサーバによって理解される他の適切なネゴシエーションメカニズム)が選択される。310及び315において、ネゴシエートされた認証メカニズムを使用して、サーバがクライアントに認証され、クライアントがサーバに認証される。
【0035】
320において、ステップ310及び/又は315に従ってクライアントとサーバとの間で適切な認証が達成された場合、次に330において、すべてのさらなるトラフィックに関して共有秘密(たとえば共有鍵)が確立される。しかしながら、有利には、320において、クライアントとサーバとの間で適切な認証が確立されなかった場合、325においてセッションは作成されず、多量の計算コスト及びトラフィックは回避される。従来は、たとえば、ターミナルサーバの従来の実施態様では、セッションが作成された後に認証を実行する試みが開始されたため、認証の実行にはよりコストがかかった。対照的に、本発明のCred SSPのプロトコルによれば、クライアントとサーバとの間のセッションは、SPNEGO選択認証メカニズムによるクライアント及びサーバの認証が達成されない限り作成されない。
【0036】
このため、320において、選択された認証メカニズムを使用して適切な認証が実行されたとすると、330においてクライアントとサーバとの間のすべてのさらなるトラフィックに対し、共有鍵が確立される。しかしながら、閾値認証が発生したというだけでは、依然としてサーバが必ずしもクライアントに信頼されていることを意味するわけではない。このため、この時点で、クライアントとサーバとの間でセッションが作成されているが、サーバは信頼されているとみなされる場合もあれば、信頼されていないとみなされる場合もある。したがって、本発明のグループポリシ335を使用して、クライアントマシンのLSA Cred SSPは、340においてポリシチェックを実行して、ユーザ証明情報を委譲すべきか否かを判断する。サーバが信頼されていない場合、345において、証明情報は委譲されない。340のポリシチェックによってサーバ関係が信頼される場合、350において、サーバの公開鍵が認証されることによって、不正(rogue)ソフトウェアオブジェクトが、サーバの挙動及び公開鍵を模倣する「中間者(man-in-the-middle)」攻撃の回避に役立つ。このため、350においてサーバの公開鍵が認証されない場合、355において中間者攻撃の危険に従って証明情報が委譲されない。360において、LSAの信頼されたサブシステムによってのみ理解される証明情報に対し、暗号化フォーマットが適用される。465において、暗号化された証明情報は、クライアントからサーバに委譲される。暗号化フォーマットを、LSAの信頼されたサブシステムによってのみ理解されるようにすることによって、有利には、本発明のLSA及びCred SSPに対するクライアント及びサーバの呼出しアプリケーションは、平文の証明情報に対し不適切なアクセスを行うことができない。
【0037】
図4は、本発明の証明情報委譲プロトコルのより詳細な実施態様を、例示的な非限定的流れ図として示す。400において、クライアントとサーバとの間でSSL/TLSハンドシェイクが完了し、クライアントとサーバとの間でSSL/TLS暗号化鍵KSSL/TLSが確立される。Kpubは、サーバの証明書における公開鍵である。次に、410において、暗号化されたSSL/TLSチャネルを介して、SPNEGOパッケージを使用して、クライアント及びサーバの相互認証が完了する。クライアント/サーバ信頼関係に応じて、ケルベロス又はNTLMパッケージのいずれかがネゴシエートされ使用される。NTLMがネゴシエートされる場合、サーバは、クライアントに対しパスワードを知っていることを証明するが、同じドメインの他のサーバはパスワードにアクセスすることができる。Kspnegoは、ケルベロスサブセッションキーか又はNTLMセッションキーのいずれかであり、SPNEGO交換の完了時に両側によって共有される。
【0038】
420において、クライアントマシンのLSA Cred SSPは、サーバのサービスプリンシパル名(SPN)、サーバ認証情報(PKI/KRB対NTLM)及びグループポリシ設定に基づいてポリシチェックを実行して、ユーザの証明情報をサーバに委譲すべきか否かを判断する。そして、430において、以下の例示的な認証交換を実行することによって、KSSL/TLSがターゲットサーバに属し中間者に属していないことを確認する。
【0039】
C→S:{{Kpub}Kspnego}KSSL/TLS
S→C:{{Kpub+1}Kspnego}KSSL/TLS
SSL/TLSは、すべてのクライアント/サーバ通信を暗号化するのに使用されることに留意されたい。さらに、このサーバ認証ステップは、PKIベースの信頼がない場合、ケルベロス又はNTLMに基づいてもよい。上述したように、ケルベロスベース認証に対するSSL/TLS認証されたチャネルの安全なバインディングを、SSL/TLSの最上位で実行してもよい。言い換えれば、本発明は、SSL/TLSネゴシエートされたマスタ/セッションキーを認証するために、ケルベロスベースの証明情報を安全に利用してもよく、それは、SSL/TLSクライアントとSSL/TLSサーバとの間にPKI信頼がない場合に特に有用であり得る。
【0040】
最後に、440において、ユーザの証明情報(たとえばパスワード)を、以下のシンボリックなデータ交換に従って本発明の信頼されたLSAサブシステムによる以外の平文の証明情報レビューを防止する方法で、サーバに委譲してもよい。
【0041】
C→S:{{パスワード}Kspnego}KSSL/TLS
上述したように、たとえば図3のステップ340(及びグループポリシ335)及び図4のステップ420において、本発明によるクライアントの証明情報の委譲を制御及び制限して、広範囲のセキュリティ攻撃を軽減するのに、ポリシが利用される。上述したように、本発明のLSAパッケージは、SPNEGOネゴシエーションと、証明情報暗号化/解読と、証明情報転送とを提供する。本発明のLSAパッケージはまた、本発明によって定義されるポリシに対しポリシチェックも実行する。本発明のグループポリシ設定の目的は、ユーザの証明情報が、認証されていないサーバ、たとえば不正者の管理制御下にあるか又は攻撃者に晒されているマシンに委譲されないことを確実にすることである。信頼は、たとえばPKI、ケルベロス又はNTLM認証に基づいて、クライアントとサーバとの間の認証を容易にするように存在する可能性があるが、このような信頼は、ターゲットサーバがユーザの証明情報によって信頼されていることを意味するものではないことに留意されたい。このため、本発明は、ターゲットサーバを委譲された証明情報によって信頼することができることを確実にするポリシ調査(consultation)を含む。
【0042】
図5は、呼出しアプリケーション(複数可)に平文の証明情報を晒すことなく、クライアントからサーバへの証明情報の安全な委譲を可能にする、本発明のCred SSPアーキテクチャの例示的な非限定的ブロック図である。図1と同様に、Cred SSPは、クライアントC及びサーバSの両方における2つのパッケージのセット、すなわちクライアント側パッケージ及びLSA側パッケージとして実装される。クライアントCでは、これはクライアント側CredSSP及びLSA側CredSSPになる。サーバSでは、これはクライアント側CredSSP’及びLSA側CredSSP’になる。図5は、本発明によって、ユーザの平文の証明情報が、サーバ510のサーバアプリケーション、資源又はサービスARSを要求しているクライアント500の呼出しアプリケーションCAに決して格納されず且つそれによってアクセス可能でないことを示す。LSAの信頼されたサブシステム部分を区分している点線は、LSAの信頼されたサブシステム部分のみが、ユーザの平文の証明情報にアクセスすることができる、すなわち解読/暗号化する能力を有することを示す。さらに、図5は、クライアントマシンのLSA側CredSSPが、後により詳細に説明するように、本発明のグループポリシGPを調査することを示す。
【0043】
これに関して、表IIIにおいて後に示すグループポリシ設定は、ユーザの証明情報によっていずれのサーバが信頼されているかを定義しており、各設定は、サービスプリンシパル名(SPN)のリストであり、一実施形態では、ワイルドカードが許容される。文字列認識技術における当業者が理解することができるように、ワイルドカードは、SPNのアルファベットにおいて許容可能な任意の文字又は文字列を表すことができる、「*」等の文字を言う。このため、本発明によれば、たとえば、以下の表IIIに示すグループポリシ(GP)設定によって定義されるように、サーバがクライアントに認証され、且つサーバのSPNがポリシチェックに合格する場合にのみ、ユーザの証明情報を委譲する。
【0044】
表IIIにおいて以下に定義されるユーザ証明情報を委譲するポリシ設定は、限定されないが表Iに列挙する攻撃を含む種々の攻撃を軽減するように設計されている。
【0045】
【表1】

本発明によっていずれのポリシが定義されるか(以下の表IIIにおいて例示的な非限定的形式で定義される)に関してなされる判断は、図3〜図5及び証明情報のタイプに関連して上述したように、クライアントとサーバとの間でネゴシエートされる認証プロトコルによって決まる所与の状況に適用される。図6は、本発明による、ポリシが基づいてもよい、新規の証明情報と、デフォルト証明情報と、保存された証明情報とを含む、3つの例示的な証明情報のタイプを示す。新規の証明情報は、CredUI610等の証明情報ユーザインタフェースを介してリアルタイムに入力される証明情報である。保存された証明情報は、かつては新規の証明情報として入力され、CredMan600等の証明情報マネージャによってさらに再使用されるために、たとえば限られた期間格納されている証明情報である。保存された証明情報は、セキュリティの観点から、新規の証明情報より脆弱であるものとみなされる。さらに安全でないのはデフォルト証明情報であり、それは、名前が示唆するように、他の証明情報を使用する他の命令がない場合にLSA620によって使用されるように指定されているデフォルトの証明情報である。たとえば、デフォルト証明情報は、ログオン時刻に入力された証明情報を含んでもよい。デフォルト証明情報は、いくつかのWebサイト証明情報等、セキュリティの向上が必要でないいくつかの状況の場合に、十分であることもある。また、デフォルト証明情報は、それほど安全ではないが、LSA620に即時に利用可能であるという利点がある。このため、図6に示すようにターミナルサーバクライアントTSCによる要求に関連して利用してもよい3つのタイプの証明情報がある。表IIは、この例示的な非限定的実施形態で考えられる3つのタイプの証明情報、すなわち新規、保存及びデフォルトを示す。
【0046】
【表2】

上述したように、以下の表IIIは、本発明による、クライアントによるサーバへのユーザ証明情報の委譲を制御/制限するグループポリシ(GP)設定の例示的な非限定的セットを含む。コンピュータネットワーキング技術における当業者が理解することができるように、Termsrv/*は、サービスがTermsrvであり、スラッシュ「/」の後に指定されているホストマシンが、*ワイルドカードに一致するいかなるターゲットサーバであってもよい、SPNのセットを表す。
【0047】
【表3−1】

【0048】
【表3−2】

【0049】
【表3−3】

要約すると、本発明のCred SSPソリューションは、クライアントからサーバへのユーザ証明情報の委譲を制御及び制限するのに使用することができるポリシのセットを提供することによって、従来より安全なソリューションを提供する。表IIIのポリシの例示的な非限定的セットが示すように、ポリシは、クライアントのマシンで実行しているマルウェアを含む広範囲の攻撃に対処するように設計される。さらに、本発明のCred SSPは、「デフォルトで安全な」ポリシを含み、それは、クライアントマシンがデフォルトで広範囲の攻撃を軽減することができるようにするポリシ設定を介する特定の構成である。さらに、本発明のポリシのセットは、限定されないがユーザ名/パスワード、スマートカードPIN、ワンタイムパスコード(OTP)等を含むいかなるタイプのユーザ証明情報の保護にも適用可能である。本発明のCred SSPは、LSAの信頼されたサブシステムのみが平文の証明情報にアクセスすることができるため、サーバ又はクライアント側の(Cred SSP APIの)呼出しアプリケーションはユーザの平文の証明情報へのアクセスを決して与えられないため、ユーザ証明情報に対しさらなる保護を提供する。
例示的なネットワーク環境及び分散環境
当業者は、本発明を、コンピュータネットワークの一部として又は分散コンピューティング環境において配備することができる、任意のコンピュータ又は他のクライアント装置若しくはサーバ装置に関連して実施することができることを理解することができる。これに関して、本発明は、本発明によるクライアントからサーバへ証明情報を委譲するプロセスに関連して使用することができる、いかなる数のメモリ又は記憶ユニット、及びいかなる数の記憶ユニット又はボリュームにわたって発生するいかなる数のアプリケーション及びプロセスを有する、いかなるコンピュータシステム又は環境にも関連する。本発明は、サーバコンピュータ及びクライアントコンピュータが、リモート記憶装置又はローカル記憶装置を有する、ネットワーク環境又は分散コンピューティング環境に配備される環境に適用され得る。本発明はまた、リモート又はローカルサービス及びプロセスに関連して情報を生成、受信、及び送信する、プログラミング言語機能、解釈及び実行機能を有する、スタンドアロンコンピューティング装置にも適用可能である。
【0050】
分散コンピューティングは、コンピューティング装置とシステムとの間の交換による、コンピュータ資源及びサービスの共有を提供する。これらの資源及びサービスには、情報の交換、キャッシュ記憶、及び、ファイル等のオブジェクトのディスク記憶が含まれる。分散コンピューティングは、ネットワーク接続性を利用し、クライアントがそれらの集合的な力を活用して企業全体の利益を得ることができるようにする。これに関して、種々の装置が、本発明の証明情報をクライアントからサーバに委譲するシステム及び方法を関与させ得るアプリケーション、オブジェクト又は資源を有することができる。
【0051】
図7Aは、例示的なネットワークコンピューティング環境又は分散コンピューティング環境の概略図を提供する。分散コンピューティング環境は、コンピューティングオブジェクト10a、10b等と、コンピューティングオブジェクト又は装置110a、110b、110c等とを含む。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジック等を含むことができる。オブジェクトは、PDA、オーディオ/ビデオ装置、MP3プレイヤ、パーソナルコンピュータ等のような、同じか又は異なる装置の部分を含んでもよい。各オブジェクトは、通信ネットワーク14を用いて互いに通信することができる。このネットワークは、それ自体が図7Aのシステムにサービスを提供する他のコンピューティングオブジェクト及びコンピューティング装置を含んでもよく、それ自体が複数の相互接続されたネットワークを表してもよい。本発明の一態様によれば、各オブジェクト10a、10b等、又は110a、110b、110c等は、本発明による証明情報をクライアントからサーバに委譲するシステム及び方法と共に使用するのに適している、API、又は他のオブジェクト、ソフトウェア、ファームウェア及び/若しくはハードウェアを利用することができる、アプリケーションを含んでもよい。
【0052】
110c等のオブジェクトを、別のコンピューティング装置10a、10b等又は110a、110b等でホストしてもよいということも理解することができる。このため、図示する物理的環境は接続された装置をコンピュータとして示している可能性があるが、このような図は単に例示的なものであり、物理的環境は、代替的に、PDA、テレビ、MP3プレイヤ等のようなさまざまなデジタル装置、インタフェース等のソフトウェアオブジェクト、COMオブジェクト等を含むように示すか又は説明されてもよい。
【0053】
分散コンピューティング環境をサポートする種々のシステム、コンポーネント及びネットワーク構成がある。たとえば、コンピューティングシステムを、有線システム又は無線システムによって、ローカルネットワーク又は広く分散したネットワークによって、互いに接続することができる。目下、ネットワークの多くはインターネットに結合されており、インターネットは、広く分散したコンピューティングに対するインフラストラクチャを提供し、多くの異なるネットワークを包含する。本発明による証明情報をクライアントからサーバへの委譲に付随することになる例示的な通信のために、インフラストラクチャのうちのいずれを使用してもよい。
【0054】
ホームネットワーキング環境には、電力線、データ(無線及び有線両方)、音声(たとえば電話)、及びエンターテイメントメディア等、各々が一意のプロトコルをサポートすることができる、少なくとも4つの異なるネットワーク移送媒体が存在する。光スイッチ及び器具等の大部分の家庭用制御装置は、接続のために電力線を使用することができる。データサービスは、ブロードバンド(たとえばDLS又はケーブルモデムのいずれか)として家庭に入ることができ、無線(たとえばHomeRF又は802.11B)接続又は有線(たとえばHome PNA、Cat 5、イーサネット(登録商標)、さらには電力線)接続を使用して、家庭内でアクセス可能である。音声トラフィックは、有線(たとえばCat 3)又は無線(たとえば携帯電話)として家庭に入ることができ、Cat 3配線を使用して家庭内で分配されることが可能である。エンターテイメントメディア、又は他のグラフィカルデータは、衛星又はケーブルによって家庭に入ることができ、通常、家庭において同軸ケーブルを使用して分配される。IEEE1394及びDVIもまた、メディア装置のクラスタ用のデジタル相互接続である。これらのネットワーク環境のすべて、及びプロトコル標準規格として出現し得るか又はすでに出現している他のネットワーク環境を、インターネット等の広域ネットワークによって外部の世界に接続され得る、イントラネット等のネットワークを形成するように相互接続することができる。要約すれば、データの格納及び伝送のために、種々の異なる資源が存在し、したがって、進歩しているコンピューティング装置には、本発明による証明情報のクライアントからサーバへの委譲中等、プログラムオブジェクトに付随してアクセスされるか又は利用されるデータ等のデータを共有する方法が必要になる。
【0055】
インターネットは、一般に、コンピュータネットワーキングの技術において既知である、伝送制御プロトコル/インターネットプロトコル(TCP/IP)のプロトコル一式を利用するネットワーク及びゲートウェイの集まりを指す。インターネットを、ユーザがネットワーク(複数可)を介して情報と対話し情報を共有することができるようにするネットワーキングプロトコルを実行しているコンピュータによって相互接続される、地理的に分散したリモートコンピュータネットワークのシステムとして述べることができる。したがって、このような広範にわたる情報共有のために、一般にインターネット等のリモートネットワークは、これまで、開発者が、専用の動作又はサービスを実行するソフトウェアアプリケーションを本質的に制限なく設計することができる、オープンシステムにまで発展してきた。
【0056】
このため、ネットワークインフラストラクチャによって、クライアント/サーバ、ピア・ツー・ピア又はハイブリッドアーキテクチャ等のネットワークトポロジのホストが可能になる。「クライアント」は、関連していない別のクラス又はグループのサービスを使用するクラス又はグループのメンバである。このため、コンピューティングにおいて、クライアントは、別のプログラムによって提供されるサービスを要求する、プロセス、すなわち大まかには命令又はタスクのセットである。クライアントプロセスは、他のプログラム又はサービス自体に関するいかなる作業詳細も「知る」必要なく、要求したサービスを利用する。クライアント/サーバアーキテクチャ、特にネットワークシステムでは、クライアントは、通常、別のコンピュータ、たとえばサーバによって提供される共有ネットワーク資源にアクセスするコンピュータである。図7Aの図では、例として、コンピュータ110a、110b等をクライアントと考えることができ、コンピュータ10a、10b等をサーバと考えることができ、その場合、サーバ10a、10b等は、後にクライアントコンピュータ110a、110b等に複製されるデータを保持するが、環境に応じて、いかなるコンピュータも、クライアント、サーバ又はその両方とみなすことができる。これらのコンピューティング装置のいずれもが、本発明による証明情報のクライアントからサーバへの委譲を含む可能性のあるデータを処理しているか又はサービス若しくはタスクを要求していてもよい。
【0057】
サーバは、通常、インターネット等のリモートネットワーク又はローカルネットワークにわたってアクセス可能なリモートコンピュータシステムである。クライアントプロセスは、第1のコンピュータシステムにおいてアクティブであってもよく、サーバプロセスは第2のコンピュータシステムにおいてアクティブであってもよく、それらは通信媒体を介して互いに通信し、それによって分散機能が提供され、複数のクライアントがサーバの情報収集能力を利用することができるようになる。本発明の証明情報をクライアントからサーバに委譲する技法に従って利用される任意のソフトウェアオブジェクトを、複数のコンピューティング装置又はオブジェクトにわたって分散することができる。
【0058】
クライアント(複数可)及びサーバ(複数可)は、プロトコル層(複数可)によって提供される機能を利用して互いに通信する。たとえば、ハイパーテキスト転送プロトコル(HTTP)は、ワールドワイドウェブ(WWW)又は「Web」と共に使用される一般的なプロトコルである。通常、インターネットプロトコル(IP)アドレス等のコンピュータネットワークアドレス、又はユニバーサルリソースロケータ(URL)等の他の参照を使用して、サーバコンピュータ又はクライアントコンピュータを互いに対して識別することができる。ネットワークアドレスを、URLアドレスと称することができる。通信を、通信媒体によって提供してもよく、たとえば、クライアント(複数可)及びサーバ(複数可)を、大容量通信のためにTCP/IP接続(複数可)を介して互いに結合してもよい。
【0059】
このため、図7Aは、本発明を実施することができる、サーバ(複数可)がネットワーク/バスを介してクライアントコンピュータ(複数可)と通信する、例示的なネットワーク環境又は分散環境を示す。より詳細には、複数のサーバ10a、10b等が、LAN、WAN、イントラネット、インターネット等であることができる通信ネットワーク/バス14を介して、ポータブルコンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワークアプライアンス、又は本発明によるVCR、TV、オーブン、照明、ヒータ等のような、他の装置等の複数のクライアント又はリモートコンピューティング装置110a、110b、110c、110d、110e等と相互接続される。このため、本発明は、共にユーザ証明情報をサーバに委譲することが望ましい、いかなるコンピューティング装置にも適用され得ることが企図される。
【0060】
通信ネットワーク/バス14がインターネットであるネットワーク環境では、たとえば、サーバ10a、10b等はWebサーバであってもよく、クライアント110a、110b、110c、110d、110e等は、HTTP等の複数の既知のプロトコルのうちのいずれかを介してそれと通信する。分散コンピューティング環境の特徴であり得るように、サーバ10a、10b等はまた、クライアント110a、110b、110c、110d、110e等としての役割を果たしてもよい。
【0061】
上述したように、適切な場合は、通信は有線若しくは無線、又は組合せであってもよい。クライアント装置110a、110b、110c、110d、110e等は、通信ネットワーク/バス14を介して通信してもしなくてもよく、独立した通信が関連してもよい。たとえば、TV又はVCRの場合、その制御に対してネットワーク化態様があってもなくてもよい。各クライアントコンピュータ110a、l10b、110c、110d、110e等及びサーバコンピュータ10a、10b等に、さまざまなアプリケーションプログラムモジュール又はオブジェクト135a、135b、135c等を備えてもよく、且つファイル又はデータストリームを格納してもよく、又はファイル又はデータストリームの一部(複数可)をダウンロード、伝送又は移行してもよい、さまざまなタイプの記憶要素又はオブジェクトへの接続又はアクセスを備えてもよい。コンピュータ10a、10b、110a、110b等のうちの任意の1つ又は複数は、本発明によって処理されるか又は保存されるデータを格納するデータベース又はメモリ20等、データベース20又は他の記憶要素の保守及び更新に関与してもよい。このため、本発明を、コンピュータネットワーク/バス14にアクセスしそれと対話することができるクライアントコンピュータ110a、110b等と、クライアントコンピュータ110a、110b等及び他の同様の装置並びにデータベース20と対話することができるサーバコンピュータ10a、10b等とを有するコンピュータネットワーク環境で利用することができる。
例示的なコンピューティング装置
上述したように、本発明は、一次アプリケーションを装置の二次アプリケーションからの干渉から保護することが望まれ得るいかなる装置にも適用される。したがって、本発明に関連して、すなわち装置がサーバに証明情報を委譲するよう望む可能性のある任意の場所(たとえば、携帯電話等のポータブル装置を介するGSMネットワーク)で使用するために、ハンドヘルド装置、ポータブル装置及び他のコンピューティング装置並びにすべての種類のコンピューティングオブジェクトが考えられることを理解されたい。したがって、図7Bにおいて後述する以下の汎用リモートコンピュータは単なる一例であり、本発明を、ネットワーク/バス相互運用性及び対話を有するいかなるクライアントで実施してもよい。このため、本発明を、ごくわずかな又は最低限のクライアント資源が関与するネットワークホストサービスの環境、たとえば、クライアント装置が、アプライアンスに配置されたオブジェクト等、単にネットワーク/バスに対するインタフェースとしての役割を果たすネットワーク環境で実施してもよい。
【0062】
必須ではないが、本発明を、部分的に、装置又はオブジェクトに対するサービスの開発者によって使用されるために、オペレーティングシステムを介して実施してもよく、且つ/又は本発明の構成要素(複数可)に関連して動作するアプリケーションソフトウェア内に含めてもよい。ソフトウェアを、クライアントワークステーション、サーバ又は他の装置等、1つ又は複数のコンピュータによって実行されている、プログラムモジュール等のコンピュータ実行可能命令の一般的な状況で説明することができる。当業者は、本発明を、他のコンピュータシステム構成及びプロトコルで実施してもよいということを理解するであろう。
【0063】
このため、図7Bは、本発明を実施することができる適切なコンピューティングシステム環境100aの一例を示すが、先に明らかにしたように、コンピューティングシステム環境100aは、コンピューティング装置に対する適切なコンピューティング環境の単なる一例であり、本発明の使用又は機能の範囲に関していかなる限定も示唆するように意図されていはいない。コンピューティング環境100aは、例示的な動作環境100aに例示する構成要素のうちのいずれか1つ又は組合せに関連する任意の依存性又は要件を有するものとしても解釈されるべきではない。
【0064】
図7Bを参照すると、本発明を実施する例示的なリモート装置は、コンピュータ110aの形態の汎用コンピューティング装置を備える。コンピュータ110aの構成要素には、限定されないが、処理ユニット120aと、システムメモリ130aと、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット120aに結合するシステムバス121aとが含まれることができる。システムバス121aは、さまざまなバスアーキテクチャのうちの任意のものを使用する、メモリバス又はメモリコントローラ、周辺バス、及びローカルバスを含む、いくつかのタイプのバス構造のうちの任意のものであることができる。
【0065】
コンピュータ110aは、通常、種々のコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ110aがアクセスすることができるいかなる利用可能媒体であってもよい。限定としてではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含んでもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を格納する任意の方法又は技術で実装される、揮発性及び不揮発の両方、取外し可能及び取外し不可能の両方の媒体を含む。コンピュータ記憶媒体は、限定されないが、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CDROM、デジタル多用途ディスク(DVD)若しくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は、所望の情報を格納するのに使用することができると共にコンピュータ110aがアクセスすることができる他の任意の媒体を含む。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータを、搬送波又は他の搬送メカニズム等の変調データ信号で具現化し、任意の情報配信媒体を含む。
【0066】
システムメモリ130aは、読出し専用メモリ(ROM)及び/又はランダムアクセスメモリ(RAM)等の揮発性及び/又は不揮発性メモリの形態のコンピュータ記憶媒体を備えることができる。立ち上げ時等にコンピュータ110a内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム(BIOS)をメモリ130aに格納することができる。メモリ130aは、通常、処理ユニット120aによって即座にアクセス可能であり且つ/又は処理ユニット120aで目下動作しているデータ及び/又はプログラムモジュールも含む。限定としてではなく例として、メモリ130aはまた、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール及びプログラムデータを含むことができる。
【0067】
コンピュータ110aはまた、他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体を備えることができる。たとえば、コンピュータ110aは、取外し不可能な不揮発性磁気媒体に対し読出し又は書込みを行うハードディスクドライブ、取外し可能な不揮発性磁気ディスクに対し読出し又は書込みを行う磁気ディスクドライブ、及び/又はCD−ROM若しくは他の光媒体等、取外し可能な不揮発性光ディスクに対し読出し又は書込みを行う光ディスクドライブを含んでもよい。例示的な動作環境で使用することができる他の取外し可能/取外し不可能な揮発性/不揮発性コンピュータ記憶媒体には、限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROM等が含まれる。ハードディスクドライブは、通常、インタフェース等の取外し不可能なメモリインタフェースを通じてシステムバス121aに接続され、磁気ディスクドライブ又は光ディスクドライブは、通常、インタフェース等の取外し可能なメモリインタフェースによってシステムバス121aに接続される。
【0068】
ユーザは、キーボード、及び一般にマウス、トラックボール又はタッチパッドと称されるポインティングデバイス等の入力装置を通じて、コンピュータ110aにコマンド及び情報を入力することができる。他の入力装置には、マイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ等が含まれ得る。これらの及び他の入力装置は、システムバス121aに結合されたユーザ入力140a及び関連インタフェース(複数可)を通じて処理ユニット120aに接続されることが多いが、パラレルポート、ゲームポート又はユニバーサルシリアルバス(USB)等の他のインタフェース及びバス構造によって接続されてもよい。システムバス121aにグラフィックスサブシステムもまた接続してもよい。モニタ又は他のタイプの表示装置もまた、出力インタフェース150a等のインタフェースを介してシステムバス121aに接続され、出力インタフェース150aはビデオメモリと通信することができる。モニタに加えて、コンピュータもまた、出力インタフェース150aを通じて接続され得るスピーカ及びプリンタ等の他の周辺出力装置を含んでもよい。
【0069】
コンピュータ110aは、装置110aとは異なる、メディア機能等の機能を有することができる、リモートコンピュータ170a等の1つ又は複数の他のリモートコンピュータとの論理接続を使用する、ネットワーク環境又は分散環境において動作することができる。リモートコンピュータ170aは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置若しくは他の一般的なネットワークノード、又は他の任意のリモートメディア消費若しくは伝送装置であってもよく、コンピュータ110aに対して上述した要素のうちの任意のもの又はすべてを含んでもよい。図7Bに示す論理接続は、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)等のネットワーク171aを含むが、他のネットワーク/バスを含んでもよい。このようなネットワーキング環境は、家庭、オフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネットにおいて一般的である。
【0070】
LANネットワーキング環境で使用される場合、コンピュータ110aは、ネットワークインタフェース又はアダプタを通じてLAN171aに接続される。WANネットワーキング環境で使用される場合、コンピュータ110aは、通常、インターネット等のWANを介した通信を確立するためのネットワークコンポーネント(ネットワークカード、モデム等)又は他の手段を備える。内蔵であっても外付けであってもよい、ネットワークに接続する手段を、入力140aのユーザ入力インタフェース又は他の適切なメカニズムを介してシステムバス121aに接続することができる。ネットワーク環境では、コンピュータ110aに対して示すプログラムモジュール又はその一部を、リモートメモリ記憶装置に格納することができる。図示し説明するネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいということが理解されよう。
例示的な分散コンピューティングフレームワーク又はアーキテクチャ
パーソナルコンピューティング及びインターネットの収束に鑑みて、さまざまな分散ンコンピューティングフレームワークが開発されている。個人及びビジネスユーザにも同様に、アプリケーション及びコンピューティング装置に対するシームレスに相互運用可能且つウェブ対応インタフェースが提供され、コンピューティングアクティビティがますますWebブラウザ又はネットワーク志向になってきている。
【0071】
たとえば、MICROSOFT(登録商標)の管理コードプラットフォーム、すなわち.NETは、サーバと、Webベースのデータ記憶及びダウンロード可能デバイスソフトウェア等のビルディングブロックサービスとを含む。概して、NETプラットフォームは、(1)コンピューティング装置の全範囲を合わせて機能させ、それらのすべてにおいてユーザ情報を自動的に更新及び同期させる機能、(2)HTMLではなくXMLを多用することで可能となるWebページ用の強化された対話機能、(3)たとえば電子メール又はOffice.NET等のソフトウェア等のさまざまなアプリケーションを管理するための、製品及びサービスに対するカスタマイズされたアクセス、及び中央の起点からユーザへのそれらの送達を特徴とするオンラインサービス、(4)情報へのアクセスの効率及び容易さと共に、ユーザ及び装置間での情報の同期を向上させる集中データストレージ、(5)電子メール、ファックス及び電話等のさまざまな通信媒体を統合する機能、(6)再使用可能なモジュールを作成し、それによって生産性を向上させると共に、プログラミングエラーの数を低減する機能、並びに(7)同様に多くの他のクロスプラットフォーム及び言語の統合機能を提供する。
【0072】
本明細書において、いくつかの例示的な実施形態を、コンピューティング装置に常駐するアプリケーションプログラミングインタフェース(API)等のソフトウェアに関して説明しているが、本発明の1つ又は複数の部分を、オペレーティングシステム、又は「仲介人(middle man)」オブジェクト、コントロールオブジェクト、ハードウェア、ファームウェア、中間言語命令又はオブジェクト等を介して実装してもよく、それによって、本発明による証明情報をクライアントからサーバに委譲する方法を、NETコード等の管理コードによって使用可能となる言語及びサービスのすべてに含めてもよく、それらにおいてサポートしてもよく、又はそれらを介してアクセスしてもよく、他の分散コンピューティングフレームワークでも同様である。
【0073】
アプリケーション及びサービスが、本発明の証明情報をクライアントからサーバに委譲するシステム及び方法を使用することを可能にする、たとえば、適切なAPI、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロンソフトウェアオブジェクト又はダウンロード可能ソフトウェアオブジェクト等、本発明を実施する複数の方法がある。本発明は、API(又は他のソフトウェアオブジェクト)の観点から、同様に、本発明に従ってダウンロードされたプログラムを受け取るソフトウェアオブジェクト又はハードウェアオブジェクトから、本発明を使用することを企図している。このため、本明細書に記載した本発明のさまざまな実施態様は、全体としてハードウェアに、部分的にハードウェアに且つ部分的にソフトウェアに、且つソフトウェアにある態様を有してもよい。
【0074】
上述したように、本発明の例示的な実施形態を、さまざまなコンピューティング装置及びネットワークアーキテクチャに関連して説明したが、基礎となる概念を、証明情報をクライアントからサーバに委譲することが望ましい、いかなるコンピューティング装置又はシステムにも適用することができる。たとえば、本発明のアルゴリズム(複数可)及びハードウェアインプリメンテーションを、コンピューティング装置のオペレーティングシステムに適用してもよく、装置上の別個のオブジェクトとして、別のオブジェクトの一部として、再使用可能なコントロールとして、サーバからダウンロード可能なオブジェクトとして、装置又はオブジェクトとネットワークとの間の「仲介人」として、分散オブジェクトとして、ハードウェアとして、メモリ内で、上述したもののうちのいずれかの組合せ等として提供してもよい。本明細書において例示的なプログラミング言語、名前及び例をさまざまな選択肢の代表として選択しているが、これらの言語、名前及び例は、限定するものとして意図されていない。当業者は、本発明のさまざまな実施形態によって達成される機能と同じか、同様か又は等価な機能を達成する、オブジェクトコード及び命名法を提供する多数の方法があることを理解するであろう。
【0075】
上述したように、本明細書に記載したさまざまな技法を、ハードウェア若しくはソフトウェア、又は適切な場合はそれらの両方の組合せに関連して実装してもよい。このため、本発明の方法及び装置、又はそのいくつかの態様又は一部は、フロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、又は他の任意の機械可読記憶媒体等の有形媒体で具現化されるプログラムコード(すなわち命令)の形態をとってもよく、プログラムコードがコンピュータ等の機械にロードされ、その機械によって実行されるとき、機械は、本発明を実施する装置となる。プログラムコードをプログラム可能コンピュータで実行する場合、コンピューティング装置は一般に、プロセッサと、プロセッサによって読出し可能な記憶媒体(揮発性及び不揮発性メモリ並びに/又は記憶要素を含む)と、少なくとも1つの入力装置と、少なくとも1つの出力装置とを含む。たとえばデータ処理API、再使用可能コントロール等を使用して、本発明の証明情報をクライアントからサーバに委譲する方法を実装するか又は利用することができる1つ又は複数のプログラムは、コンピュータシステムと通信する高水準手続き型又はオブジェクト指向プログラミング言語で実施されることが好ましい。しかしながら、望ましい場合、プログラム(複数可)を、アセンブリ言語又は機械言語で実装することができる。いずれの場合も、言語はコンパイル型言語であってもインタプリタ型言語であってもよく、ハードウェアインプリメンテーションと結合されてもよい。
【0076】
本発明の方法及び装置を、電気的配線又はケーブル布線を介して、光ファイバを通じて、又は他の任意の伝送形態を介して等、何らかの伝送媒体によって伝送されるプログラムコードの形式で具現化された通信を介して実施してもよく、プログラムコードが、EPROM、ゲートアレイ、プログラマブルロジックデバイス(PLD)、クライアントコンピュータ等のような、機械によって受け取られロードされるとき、機械は、本発明を実施する装置となる。汎用プロセッサで実装される場合、プログラムコードはプロセッサと結合して、本発明の機能を呼び出すように動作する一意の装置を提供する。さらに、本発明に関連して使用される任意の記憶技法は、常にハードウェア及びソフトウェアの組合せであってもよい。
【0077】
本発明を、さまざまな図の好ましい実施形態に関連して説明したが、本発明から逸脱することなく、本発明の同じ機能を実行するために、他の同様の実施形態を使用してもよく、又は説明した実施形態に対し変更及び追加を行ってもよいことが理解されるであろう。たとえば、本発明の例示的なネットワーク環境を、ピア・ツー・ピアネットワーク環境等のネットワーク環境の状況で説明しているが、当業者は、本発明がそれに限定されず、本明細書で説明したような方法を、ゲームコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータ等の任意のコンピューティング装置又は環境に、有線であるか無線であるかに関わらず適用してもよく、通信ネットワークを介して接続されると共にネットワークにわたって対話するいかなる数のこのようなコンピューティング装置に適用してもよいということを理解するであろう。さらに、特に無線ネットワーク装置の数が急増し続けているため、ハンドヘルド装置オペレ−ティングシステム及び他のアプリケーション特定オペレーティングシステムを含む種々のコンピュータプラットフォームが企図されるということが強調されるべきである。
【0078】
例示的な実施形態は、特定のプログラミング言語制約の文脈で本発明を利用することに言及しているが、本発明はそのように限定されるものではなく、証明情報をクライアントからサーバに委譲する方法を提供するための任意言語で実装することができる。さらに、本発明を複数の処理チップ又は装置内で又はそれらにわたって実施してもよく、同様に格納を複数の装置にわたって行ってもよい。したがって、本発明は、いかなる単一の実施形態にも限定されるべきではなく、添付の特許請求の範囲による広さ及び範囲内で解釈されるべきである。
【図面の簡単な説明】
【0079】
【図1】証明情報のクライアントからサーバへの安全な委譲を可能にする、本発明の証明情報セキュリティサポートプロバイダアーキテクチャの概略ブロック図である。
【図2A】証明情報をターミナルサーバに委譲する、証明情報セキュリティサポートプロバイダアーキテクチャの例示的な非限定的実施態様を示す図である。
【図2B】証明情報をターミナルサーバに委譲する、証明情報セキュリティサポートプロバイダアーキテクチャの例示的な非限定的実施態様を示す図である。
【図3】本発明の証明情報セキュリティサポートプロバイダアーキテクチャによって利用される、例示的な非限定的プロトコルの流れ図である。
【図4】本発明の証明情報セキュリティサポートプロバイダアーキテクチャによって利用されるプロトコルの例示的な非限定的実施態様の流れ図である。
【図5】本発明による、グループポリシに基づく証明情報のクライアントからサーバへの安全な委譲を可能にする、証明情報セキュリティサポートプロバイダの概略ブロック図である。
【図6】本発明による、攻撃の脅威によってポリシレベルで考慮され得る3つの異なるタイプの証明情報の概略ブロック図である。
【図7A】本発明を実施することができる例示的なネットワーク環境を表すブロック図である。
【図7B】本発明を実施することができる例示的な非限定的コンピューティングシステム環境を表すブロック図である。

【特許請求の範囲】
【請求項1】
ネットワークコンピューティング環境においてユーザ証明情報をクライアントからサーバに委譲(delegate)する方法であって、
前記ネットワークコンピューティング環境におけるサーバのアプリケーション、サービス又は資源に対しクライアントから、前記クライアントから前記サーバへのユーザ証明情報の委譲に関係する要求を行うステップ、
前記クライアントと前記サーバとの間のハンドシェイクを開始するステップ、
前記クライアントと前記サーバとの間の通信を認証する認証メカニズムとして利用するために、前記クライアントと前記サーバとの間で共有される認証パッケージを選択するようにネゴシエートするステップ、
前記認証メカニズムとしての前記選択された認証パッケージを利用して前記サーバ及び前記クライアントを相互に認証するステップ、
該相互に認証するステップに従って相互認証が発生したか否かを判断すると共に、相互認証が発生した場合、前記クライアントと前記サーバとの間で通信されるメッセージの暗号化に対し共有秘密を確立することを含め、前記クライアントと前記サーバとの間でセッションを確立するステップ、
前記要求に対する前記証明情報の送信に先立って、ユーザ証明情報に対して定義された少なくとも1つの事前定義ポリシに従ってポリシチェックを実行し、前記サーバが前記ユーザの証明情報によって信頼することができるか否かを確定するステップ、及び
前記サーバを信頼することができる場合、前記ユーザの証明情報を前記サーバに送信し、前記クライアントからの前記サーバの前記要求されたアプリケーション、サービス又は資源へのアクセスを取得するステップ、
を含む、方法。
【請求項2】
請求項1に記載の方法において、前記少なくとも1つの事前定義ポリシは、ユーザ証明情報のクライアントからサーバへの前記委譲を制御及び制限するように使用される複数のポリシである、方法。
【請求項3】
請求項2に記載の方法において、前記複数のポリシは、前記クライアントで実行しているトロイ又はマルウェア、デフォルトグループポリシ設定及び前記クライアントの管理者によって構成可能なグループポリシ値、及びドメインネームサービス(DNS)ポイズニングのうちの少なくとも1つを含む広範囲の攻撃の軽減に対処して、不正サーバへの転換及びサービス許否攻撃を回避する、方法。
【請求項4】
請求項2に記載の方法において、前記複数のポリシは、前記サーバのサービスプリンシパル名(SPN)のリストに基づいて委譲を許容するか又は拒否するかの少なくとも一方のポリシを含む、方法。
【請求項5】
請求項1に記載の方法において、前記実行するステップは、前記認証メカニズムの相対強度に従ってポリシチェックを実行するステップを含む、方法。
【請求項6】
請求項1に記載の方法において、前記実行するステップは、ユーザ証明情報のタイプに基づいて定義される少なくとも1つの事前定義ポリシに従ってポリシチェックを実行するステップを含む、方法。
【請求項7】
請求項6に記載の方法において、前記実行するステップは、前記ユーザ証明情報が新規の証明情報であるか、保存されている証明情報であるか、又はデフォルト証明情報であるかに基づいて定義される少なくとも1つの事前定義ポリシに従ってポリシチェックを実行するステップを含む、方法。
【請求項8】
請求項1に記載の方法において、前記ユーザの証明情報を送信するステップは、ローカルセキュリティシステムの信頼されたサブシステムのみが平文フォーマットでの前記ユーザの証明情報にアクセスすることができるフォーマットで前記ユーザの証明情報を送信するステップを含む、方法。
【請求項9】
請求項8に記載の方法において、前記ポリシチェックを実行するステップは、ローカルセキュリティ機関(LSA)によって実行され、前記信頼されたサブシステムは、前記LSAの信頼されたサブシステムである、方法。
【請求項10】
請求項1に記載の方法であって、前記クライアントと前記サーバとの間の前記セッションを確立した後、前記サーバの公開鍵を認証するステップをさらに含む、方法。
【請求項11】
請求項1に記載の方法において、前記各ステップは、セキュリティサポートプロバイダインタフェース(SSPI)を介して前記要求を行っている前記クライアントに利用可能となる証明情報セキュリティサポートプロバイダコンポーネントを介して実行される、方法。
【請求項12】
請求項1に記載の方法において、前記冒頭のハンドシェイクは、セキュアソケットレイヤ(SSL)プロトコル又はトランスポート層セキュリティ(TLS)プロトコルに従うハンドシェイクである、方法。
【請求項13】
請求項1に記載の方法において、前記ネゴシエートするステップは、単純な保護されている汎用セキュリティサービスアプリケーションプログラムインタフェース(Simple and Protected Generic Security Service Application Program Interface)(GSSAPI)ネゴシエーションメカニズム(SPNEGO)ネゴシエーションを使用してネゴシエートするステップを含む、方法。
【請求項14】
請求項1に記載の方法において、前記選択される認証パッケージは、ケルベロス又はNTローカルエリアネットワーク(LAN)マネージャ(NTLM)のうちのいずれか1つである、方法。
【請求項15】
請求項1に記載の方法において、前記共有秘密は共有セッションキーである、方法。
【請求項16】
請求項1に記載の方法を実行するコンピュータ実行可能命令を有するコンピュータ実行可能インタフェースモジュールを含む、アプリケーションプログラミングインタフェース。
【請求項17】
クライアントコンピューティング装置であって、
ネットワークコンピューティング環境におけるサーバのアプリケーション、サービス又は資源に対する該クライアントコンピューティング装置からの要求を処理する証明情報セキュリティサポートプロバイダコンポーネントであって、前記要求は、当該クライアントコンピューティング装置から前記サーバへのユーザ証明情報の委譲を関与させる、証明情報セキュリティサポートプロバイダコンポーネントを具備し、
前記証明情報セキュリティサポートプロバイダコンポーネントは、前記クライアントと前記サーバとの間のハンドシェイクを開始し、前記クライアントと前記サーバとの間の通信を認証するための認証パッケージとして利用する、前記クライアントと前記サーバとの間で共有されるセキュリティサポートプロバイダの選択をネゴシエートし、前記認証パッケージを利用して前記サーバ及び前記クライアントを相互に認証するステップを実行し、
相互認証が発生した場合、前記証明情報セキュリティサポートプロバイダコンポーネントは、前記クライアントと前記サーバとの間のセッションと、該セッションに従って前記クライアントと前記サーバとの間で通信されるメッセージの暗号化のための共有秘密とを確立し、該クライアントコンピューティング装置から前記サーバへのユーザ証明情報の前記委譲を制御及び制限するのに使用される少なくとも1つの事前定義ポリシに従ってポリシチェックを実行し、前記ポリシチェックに合格した場合、前記ユーザの証明情報を前記サーバに送信して、該クライアントのみからの前記サーバの前記要求されたアプリケーション、サービス又は資源へのアクセスを取得する、クライアントコンピューティング装置。
【請求項18】
請求項17に記載のクライアントコンピューティング装置において、前記証明情報セキュリティサポートプロバイダコンポーネントは、ローカルセキュリティ機関(LSA)の信頼されたサブシステムのみが平文フォーマットに復号することができるフォーマットで、前記ユーザの証明情報を送信する、クライアントコンピューティング装置。
【請求項19】
請求項17に記載のクライアントコンピューティング装置において、前記少なくとも1つの事前定義ポリシは、前記クライアントで実行しているトロイ又はマルウェア、デフォルトグループポリシ設定及び前記クライアントの管理者によって構成可能なグループポリシ値、及びドメインネームサービス(DNS)ポイズニングを含む広範囲の攻撃のうちの任意の1つ又は複数の軽減に対処して、不正サーバへの転換及びサービス許否攻撃を回避する、クライアントコンピューティング装置。
【請求項20】
請求項17に記載のクライアントコンピューティング装置において、前記少なくとも1つの事前定義ポリシは、前記認証メカニズムの相対強度に基づく委譲ポリシを含む、クライアントコンピューティング装置。
【請求項21】
請求項17に記載のクライアントコンピューティング装置において、前記少なくとも1つの事前定義ポリシは、前記ユーザ証明情報が新規の証明情報であるか、保存されている証明情報であるか、又はデフォルト証明情報であるかに基づく委譲ポリシを含む、クライアントコンピューティング装置。
【請求項22】
ネットワークコンピューティング環境においてサーバの資源へのシングルサインの一部としてユーザ証明情報をクライアントからサーバに委譲する方法であって、
クライアントのユーザインタフェースコンポーネントのシングルサインを介して、ユーザの証明情報を受け取り、前記サーバの資源のセットにアクセスするステップ、及びそれに応じて、
トランスポート層セキュリティ(TLS)プロトコルに従って前記クライアントと前記サーバとの間のハンドシェイクを開始するステップ、
前記クライアントと前記サーバとの間の通信を認証する認証メカニズムとして利用するために、前記クライアントと前記サーバとの間で共有される認証パッケージを選択するようにネゴシエートするステップ、
前記認証メカニズムとして前記選択された認証パッケージを利用して前記サーバ及び前記クライアントを相互に認証するステップ、
相互認証が発生した場合、前記クライアントと前記サーバとの間で通信されるメッセージの暗号化のために共有秘密を確立するステップを含む前記クライアントと前記サーバとの間でセッションを確立するステップ、及び
前記ユーザの証明情報を前記サーバに安全に委譲し、前記資源のセットへのアクセスを取得するステップ、
を含む、方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate


【公表番号】特表2009−538478(P2009−538478A)
【公表日】平成21年11月5日(2009.11.5)
【国際特許分類】
【出願番号】特願2009−512167(P2009−512167)
【出願日】平成19年5月25日(2007.5.25)
【国際出願番号】PCT/US2007/012512
【国際公開番号】WO2007/139944
【国際公開日】平成19年12月6日(2007.12.6)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
2.EEPROM
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】