(57)【特許請求の範囲】
【請求項１】
コンピュータリソースを有し、かつ、プリンシパルを認証し権限付与データを提供するために資格認定情報をチェックするためのファシリティを有する分散システムにおいてプリンシパルの認証及び権限付与を行う方法であって、
前記分散システム内に存在するコンピュータが、前記資格認定情報を保持するパッケージをプリンシパルに提供するステップと、
前記プリンシパルが前記分散システムに接続し前記コンピュータリソースの少なくとも一部に対してアクセスするのに必要な資格認定情報が存在しない、前記分散システム内のあるロケーションにおいて、前記ファシリティが、前記分散システムに接続するためのプリンシパルリクエストを前記パッケージとともに前記プリンシパルから受け取るステップと、
前記ファシリティが、前記受け取った前記パッケージに含まれる資格認定情報にアクセスして、該パッケージ以外から前記資格認定情報を得ることなく、前記プリンシパルが前記分散システムに接続されるように認証および権限付与がなされるかどうかを決定するステップと、
前記プリンシパルが前記分散システムに接続する権限を付与されていず、かつ、認証されていない場合には、前記ファシリティが、前記分散システムに接続するための前記プリンシパルリクエストを拒否するステップと、
前記プリンシパルが前記分散システムへ接続する権限を付与され、かつ、認証されている場合には、前記ファシリティが、前記分散システムに接続するための前記プリンシパルリクエストを許可するステップと
を備えている方法。
【請求項２】
前記プリンシパルがユーザである請求項１に記載の方法。
【請求項３】
前記プリンシパルが携帯用コンピュータである、請求項１に記載の方法。
【請求項４】
前記分散システムが、メモリを有する携帯用コンピュータを含み、前記資格認定情報を保持する前記パッケージを前記プリンシパルに提供するステップが、前記資格認定書情報を保持する前記パッケージを、前記携帯用コンピュータの前記メモリにロードするステップをさらに備えている、請求項１に記載の方法。
【請求項５】
前記資格認定情報を保持する前記パッケージを前記プリンシパルに提供するステップが、前記パッケージを携帯用記憶媒体に格納するステップをさらに備えている、請求項１に記載の方法。
【請求項６】
前記携帯用記憶媒体がフレキシブル・ディスクであり、前記パッケージを前記携帯用記憶媒体に格納するステップが、前記フロッピィ・ディスクに前記パッケージを格納するステップを備えている、請求項５に記載の方法。
【請求項７】
前記資格認定情報を保持する前記パッケージを前記プリンシパルに提供するステップが、前記資格認定情報を保持する暗号化されたパッケージを前記プリンシパルに提供するステップを備えている、請求項１に記載の方法。
【請求項８】
前記資格認定情報を保持する前記パッケージを前記プリンシパルに提供するステップが、前記資格認定情報を保持するディジタル署名され封印されたパッケージを提供するステップを備えている、請求項１に記載の方法。
【請求項９】
ドメインに論理的に分割され、コンピュータリソースを有する分散システムであって、該分散システム内に存在する各ユーザ装置が、関連するホーム・ドメインを有する分散システムにおいて、
前記ホーム・ドメイン内に存在する第１のコンピュータが、資格認定情報を保持するパッケージを前記ユーザ装置に提供するステップと、
前記ユーザ装置に関連するホーム・ドメインとは異なるドメインであって、前記プリンシパルが前記分散システムに接続し前記コンピュータリソースの少なくとも一部に対してアクセスするのに必要な資格認定情報が存在しないドメイン内に存在する第２のコンピュータが、前記分散システムに接続するためのユーザ・リクエストを前記パッケージとともに前記ユーザ装置から受け取るステップと、
前記第２のコンピュータが、前記パッケージにアクセスして、該パッケージに保持される資格認定情報を検査するステップと、
前記第２のコンピュータが、前記資格認定情報に基づいて前記分散システムに接続することを前記ユーザ装置に許可するかどうかを決定するステップと
を備えている方法。
【請求項１０】
前記分散システムが、メモリを有する携帯用コンピュータを含み、前記資格認定情報を保持するパッケージを前記ユーザ装置に提供するステップが、前記資格認定情報を保持する前記パッケージを、前記携帯用コンピュータの前記メモリにロードするステップを備えている、請求項９に記載の方法。
【請求項１１】
前記資格認定情報を保持するパッケージを前記ユーザ装置に提供するステップが、前記パッケージを携帯用記憶媒体に蓄積するステップをさらに備えている、請求項９に記載の方法。
【請求項１２】
前記携帯用蓄積媒体がフレキシブル・ディスクであり、前記パッケージを前記携帯用記憶媒体に蓄積するステップが、前記パッケージを前記フロッピィ・ディスクに蓄積するステップを備えている、請求項１１に記載の方法。
【請求項１３】
前記資格認定情報を保持するパッケージを前記ユーザ装置に提供するステップが、前記資格認定情報を保持する暗号化されたパッケージを前記ユーザ装置に提供するステップを備えている、請求項９に記載の方法。
【請求項１４】
前記資格認定情報を保持するパッケージを前記ユーザ装置に提供するステップが、前記ユーザ装置の資格認定情報を保持する、ディジタル署名され封印されたパッケージを提供するステップを備えている、請求項９に記載の方法。
【請求項１５】
資格認定情報をチェックするためのファシリティを有する分散システムにおいて、
前記分散システム内に存在するコンピュータが、携帯用コンピュータの資格認定情報を保持するパッケージを前記携帯用コンピュータに提供するステップと、
前記携帯用コンピュータが前記分散システムに接続し前記コンピュータリソースの少なくとも一部に対してアクセスするのに必要な資格認定情報が存在しない、前記分散システム内のあるロケーションにおいて、前記携帯用コンピュータが前記分散システムへの接続を望むときに、前記ファシリティが、前記パッケージを提出するように前記携帯用コンピュータに要求するステップと、
前記ファシリティが、前記パッケージに含まれる資格認定情報を検査して、前記携帯用コンピュータが前記分散システムに接続する権限を付与されているかどうかを判断するステップと、
前記ファシリティが、前記携帯用コンピュータが前記分散システムに接続する権限を付与されている場合には、前記携帯用コンピュータに前記分散システムへの接続を許可するステップと、
前記ファシリティが、前記携帯用コンピュータが前記分散システムに接続する権限を付与されていない場合には、前記携帯用コンピュータに前記分散システムへの接続を許可しないステップと
を備えている方法。
【請求項１６】
ドメインに論理的に分割され、コンピュータリソースを有する分散システムであって、該分散システム内に存在する複数の各コンピュータが関連するホーム・ドメインを有する分散システムにおいて、
前記ホームドメイン内の装置が、前記ホーム・ドメインにおけるパッケージであって、選択されたコンピュータの資格認定情報を保持するパッケージを、前記選択されたコンピュータに提供するステップと、
前記選択されたコンピュータのホーム・ドメインとは異なる目的のドメインであって、前記選択されたコンピュータが前記分散システムに接続し前記コンピュータリソースの少なくとも一部に対してアクセスするのに必要な資格認定情報が存在しないドメインにおいて、権限検査用の装置が、前記分散システムに接続するための、前記選択されたコンピュータからのリクエストを受け取るステップと、
前記権限検査用の装置が、前記パッケージに含まれる前記資格認定情報を検査して、前記選択されたコンピュータが前記目的のドメインにおいて前記分散システムに接続する権限を付与されているかどうかを判断するステップと
を備えている方法。
【請求項１７】
ドメインに論理的に分割され、コンピュータリソースを有する分散システムであって、該分散システム内に存在する各ユーザ装置が関連するホーム・ドメインを有する分散システムにおいて、
前記ホーム・ドメイン内に存在するコンピュータが、ユーザ装置についての資格認定情報を暗号化して、暗号化された資格認定情報のブロックを生成するステップと、
前記コンピュータが、前記ホーム・ドメインの個人鍵を使用して、前記ユーザ装置の前記ホーム・ドメインにおいて、前記暗号化された資格認定情報のブロックにディジタル署名を添付するステップと、
前記コンピュータが、前記ユーザ装置からのセッション鍵を受け取るステップと、
前記コンピュータが、前記ディジタル署名および前記暗号化された資格認定情報のブロックを暗号化して、パッケージを生成するステップと、
前記コンピュータが、前記パッケージを前記ユーザ装置に提供することにより、前記ユーザ装置が、前記ホーム・ドメインとは異なる、前記コンピュータリソースの少なくとも一部に対して前記ユーザ装置がアクセスするための前記資格認定情報が存在しないドメインにおいて、前記分散システムに接続して前記コンピュータリソースの少なくとも一部にアクセスできるようにするステップと
を備えている方法。
【請求項１８】
前記暗号化された資格認定情報のブロックにディジタル署名を添付するステップが、
ハッシュ関数を使用して、前記資格認定情報のハッシュ値を生成するステップと、
暗号化鍵を選択するステップと、
前記ドメインの個人鍵を使用して、前記ハッシュ値および選択された暗号化鍵を暗号化して、前記ディジタル署名を生成するステップと
をさらに備えている請求項１７に記載の方法。
【請求項１９】
前記分散システムが、メモリを有する携帯用コンピュータを含み、前記パッケージを前記ユーザ装置に提供するステップが、前記パッケージを、前記携帯用コンピュータの前記メモリに格納するステップを備えている、請求項１７に記載の方法。
【請求項２０】
前記パッケージを前記ユーザ装置に提供するステップが、前記パッケージを、携帯用記憶媒体に格納するステップを備えている、請求項１７に記載の方法。
【請求項２１】
前記携帯用記憶媒体がフロッピィ・ディスクであり、前記パッケージを前記携帯用記憶媒体に格納する前記ステップが、前記フレキシブル・ディスクに前記パッケージを格納するステップを備えている、請求項２０に記載の方法。
【請求項２２】
各ドメインが、そのドメインの管理およびセキュリティを監督するドメイン・コントローラを含み、前記ユーザ装置についての資格認定情報を暗号化するステップが、そのホーム・ドメインにユニークな暗号化鍵を使用して実行されるものである、請求項１７に記載の方法。
【請求項２３】
暗号化された資格認定情報の前記ブロックの復号に使用するために、前記ユーザ装置のホーム・ドメインの公開鍵を、他のドメイン・コントローラにのみ分配するステップ、をさらに備えている請求項２２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、データ処理システムに関し、具体的には、分散システムにおけるログオン証明書（logon certificate ）の使用に関する。
【０００２】
【発明の背景】
従来の多くの分散システムは、移動するユーザ（roaming user）または移動するマシン（roaming machine ）をサポートしていない。移動するユーザは、その者のホーム・ドメインとは異なる他のドメインで分散システムにログオンしたい場合がある。同様に、移動するマシンは、そのマシンのホーム・ドメインの範囲外の場所で、分散システムに接続したい場合がある。移動するユーザが、移動するマシン（例えば、携帯用コンピュータ）を使用してログオンする場合もあるし、ログオンする場所において利用可能な接続されたコンピュータを代わりに使用する場合もある。このような移動するユーザおよびマシンをサポートしてきた従来のシステムは、効率化および増大される傷つき易さを犠牲にして、このサポートを提供してきた。例えば、従来の分散システムのあるものは、ユーザ／マシンのホーム・ドメインに資格認定情報を格納している。このホーム・ドメインに格納された資格認定情報は、ユーザ／マシンが異なるドメインにおいてシステムに接続しようとするときに検査される。この資格認定情報は、ユーザ／マシンが分散システムへの接続を許可されるかどうかを決定するために検査される。移動するユーザおよびマシンを援助するために、これらの従来の分散システムは、分散システムに潜在的に存在する各接続ドメイン（すなわち、各ドメイン）に資格認定情報を複製する。
【０００３】
システム中に資格認定情報を複製するこのアプローチは、いくつかの欠点を有する。第１に、資格認定情報の複製は、コストがかかり、時間を浪費する。第２に、任意のユーザまたはマシンの資格認定情報が変化するごとに、資格認定は更新されなければならないので、資格認定情報は、頻繁に複製される必要がある。第３に、資格認定情報の複製は、間欠的な故障のために成功しない場合があり、したがって、適切な資格認定情報が、分散システム内の対象とする目的地（デスティネーション）の全てに行き届かない場合がある。第４に、このアプローチは、分散システム内において、攻撃の影響を受けやすい場所（ロケーション）をより多く提供するので、安全保護（セキュリティ）に対する危険性を有する。
【０００４】
【発明の概要】
従来のシステムのこれらの欠点は、本発明によって克服される。本発明の第１の特徴によると、権限付与および認証情報（典型的には、資格認定情報と呼ばれる）をチェックするためのファシリティを有する分散システムにおいて、一方法が実行される。この方法において、プリンシパル（例えば、ユーザまたは携帯用コンピュータ）は、そのプリンシパルのための証明された資格認定情報を保持する安全なパッケージを提供される。この安全なパッケージは、暗号化されることがあるし、ディジタル署名を有することもあるし、その双方を有することもある。フロッピィ・ディスクのような携帯用記憶媒体にこの安全なパッケージを格納することにより、この安全なパッケージをプリンシパルに提供してもよい。選択的に、この安全なパッケージを、ユーザの携帯用コンピュータのメモリに格納することにより、この安全なパッケージをプリンシパルに提供してもよい。
【０００５】
プリンシパルに安全なパッケージが提供されると、プリンシパルは、分散システムにログオンするためのリクエストを、分散システムによって受け取られる資格認定証明書とともに送る。安全なパッケージはアクセスされ、これにより、資格認定情報をチェックするファシリティは、プリンシパルが分散システムに接続する権限を付与されているかどうかを判断できる。プリンシパルが、分散システムに接続する権限を付与されていない場合には、ログオンするためのプリンシパルのリクエストは拒否される。一方、プリンシパルが分散システムへ接続する権限を付与されている場合には、プリンシパルの接続リクエストは許可される。
【０００６】
本発明の第２の特徴によると、分散システムは、ドメインに論理的に分割されている。各ユーザは、関連するホーム・ドメインを有する。ユーザについての権限付与および認証情報は、暗号化され、暗号化された資格認定情報のブロックを生成する。ディジタル署名が、ユーザのホーム・ドメインにおいて、この暗号化された資格認定情報に添付される。ディジタル署名は、ホーム・ドメイン用の個人鍵を使用して生成される。セッション鍵がユーザから受け取られ、ディジタル署名および暗号化された資格認定情報のブロックを暗号化するために使用され、安全なパッケージが作成される。この安全なパッケージは、ユーザに提供され、ユーザは、ホーム・ドメインとは異なる別のドメインにおいて分散システムにログオンすることができる。
【０００７】
ディジタル署名は、資格認定情報のハッシュ値を生成するハッシュ関数を使用することにより生成されてもよい。暗号化鍵は、資格認定情報をバルク暗号化するために選択され、続いて、ハッシュ値およびこの選択された暗号化鍵は、ともに、ホーム・ドメインの個人鍵を用いて暗号化される。その結果物がディジタル署名である。
【０００８】
本発明の第３の特徴によると、資格認定情報を確認し正当性を証明するファシリティを有する分散システムにおいて、この方法は実行される。携帯用コンピュータは、そのコンピュータ用の資格認定情報を保持する安全なパッケージを提供される。この携帯用コンピュータが、そのホーム・ドメインと異なるドメインで分散システムに接続することを望むと、この安全なパッケージを提出するように要求される。資格認定情報を確認しその正当性を立証するファシリティは、安全なパッケージに含まれる資格認定情報を検査し、このコンピュータが分散システムに接続する権限を付与されているかどうかを判断する。携帯用コンピュータに権限が付与されているならば、このコンピュータは、分散システムへの接続を許可される。一方、携帯用コンピュータに権限が付与されていないならば、携帯用コンピュータは、分散システムへの接続を許可されない。
【０００９】
本発明の第４の特徴によると、複数のコンピュータを備え、ドメインに論理的に分割されている分散システムにおいて、一方法が実行される。分散システムにおける各コンピュータは、関連するホーム・ドメインを有する。安全なパッケージが、コンピュータのホーム・ドメインで提供される。安全なパッケージは、選択されたコンピュータのための資格認定情報を保持する。この選択されたコンピュータのホーム・ドメインの外部にある目的のドメインにおいて分散システムに接続するために、選択されたコンピュータからリクエストが受信される。この安全なパッケージは、選択されたコンピュータから受け取られ、安全なパッケージに含まれる資格認定情報は、検査されて、選択されたコンピュータが目的のドメインで分散システムに接続するための権限を付与されているかどうかが判断される。
【００１０】
本発明の第５の特徴によると、ユーザは、まず、分散システムにインタラクティブにログオンするオプションを提供される。この第１のオプションにおいて、資格認定証明書は要求されない。また、ユーザは、分散システムへログオンする第２のオプションを提供され、ここで、資格認定証明書が要求される。第２のオプションを用いてログオンするリクエストが、ユーザから受け取られると、それは、資格認定証明書によって随伴されていなければならない。このユーザ用の資格認定証明書は検査され、そのユーザがログオンを許可されるだけの十分な資格認定を有するかどうかが判断される。ユーザが十分な資格認定を有すると判断されると、ユーザはログオンを許可される。一方、ユーザが十分な資格認定を欠いていると判断されると、ユーザはログオンを禁止される。
【００１１】
本発明の第６の特徴によると、安全な資格認定証明書がユーザに提供され、ユーザは、そのユーザの関連したホーム・ドメインの範囲外で分散システムへのログオンを許可される。資格認定証明書が有効になるときを決定する開始時刻が、この資格認定証明書に対して設けられる。満了時刻が、この資格認定証明書に対して設けられる。満了時刻が過ぎると、ユーザは、満了した資格認定証明書を用いてログオンすることができず、この資格認定証明書を用いたユーザによる分散システムへのいかなるログオンの試みも、分散システムによって拒否される。
【００１２】
本発明の第７の特徴によると、ユーザがその関連したホーム・ドメインの外部において分散システムにログオンすることを可能にする安全な資格認定証明書を受け取るための、ユーザからリクエストが、受け取られると、ユーザは、パスワードを催促される。パスワードを表す情報は、資格認定証明書がユーザに発行される前に、資格認定証明書に符号化される。ユーザは、資格認定証明書を使用してログオンと試みるときに、このパスワードについての知識を示すように要求される。
【００１３】
本発明の第８の特徴によると、資格認定証明書がユーザに発行され、ユーザは、彼が適切で十分な資格認定を有することを示すために資格認定証明書を使用して、分散システムにログオンすることができる。資格認定証明書が分散システムへのログオンにもはや使用されないように、資格認定証明書を無効にすることもできる。
【００１４】
【発明の実施の形態または実施例】
本発明の好ましい実施形態（実施例）は、分散システムの環境において移動するユーザ（roaming user）および移動するマシン（roaming machine ）をサポートするための安全で効率的なアプローチを提供する。特に、この本発明の好ましい実施形態は、ユーザ／マシンのホーム・ドメインとは異なるロケーションにおいて分散システムに後に提供されることがあるユーザ／マシンに安全なログオン証明書を発行して、分散システムへの接続を可能にする。このログオン証明書は、ユーザ／マシンのための資格認定情報をカプセル化している。各ユーザ／マシンが、この資格認定情報を所望の接続ポイント、すなわちドメインに直接運ぶので、ログオン証明書によって保持される資格認定情報は、分散システムを通じて複製される必要はなく、ホーム・ドメインのドメイン・コントローラへ戻る直接接続を確立する必要もない。さらに、ログオン証明書は、システムへのアクセスを制御する便利な媒体を提供する。ログオン証明書は、無効にすることができ、予め定められた時間の経過後に満了する。また、暗号化がログオン証明書の内容に施され、その中身の安全が確保される。
【００１５】
図１は、本発明の好ましい実施形態を実現するのに適した分散システム100 のブロック図である。図１に示す構成は例示にすぎず、本発明が他の分散システムの構成によっても実現できるのはいうまでもない。図１の分散システム100 は、ワークステーション101 、入出力（Ｉ／Ｏ）デバイス102 、ネットワーク・サーバ103 および補助記憶装置104 を備えている。また、分散システム100 は、ドメイン・コントローラ106 （後に詳述する）を備えている。
【００１６】
分散システム100 は、論理的には、ドメイン108A、108Bおよび108Cに分割されている。各ドメイン108A、108Bおよび108Cは、管理、命名（ネーミング）および機密保護（セキュリティ）の目的のための単一の実体（エンティティ）として見える自己充足リソースの集合体である。各ドメインは、それ自身の管理とセキュリティ政策を実現する。ドメインは、分散システム内の論理ユニットへのリソースのスケーリングおよびカプセル化を容易にするために設けられている。
【００１７】
本発明の好ましい実施形態は、ドメインを使用するが、ドメインが、本発明を実現するために不可欠なコンポーネントでないことはいうまでもない。本発明は、ドメインを使用しない環境においても実現することができる。
【００１８】
各ドメイン108A、108Bおよび108Cは、少なくとも一つのドメイン・コントローラ106 を備えている。ドメイン・コントローラのリソースの利用可能性を向上させるために、一つのドメイン内に２以上のドメイン・コントローラ106 を設けてもよい。各ドメイン・コントローラ106 は、分散システム100 のネーム空間についての知識を記憶する集中ロケーションとして働く。各ドメイン・コントローラ106 に含まれるコンポーネントの中には、権限付与サービス（または許可サービス）（ＡＳ：Authorization Service ）107 、および鍵分配センタ（ＫＤＣ：Key Distribution Center ）109 として知られている認証サービス（Authentication Service）がある。ＡＳ107 は、クライアントに与えられる権限を制御し、サーバへのアクセスを得るためのリクエストを許可するサービスである。この場合のクライアントは、ユーザに代わってネットワーク・サービスを利用するプロセスである。ＫＤＣ109 は、プリンシパルの同一性（アイデンティティ）を認証するという点で、認証サービスとして働く。プリンシパルとは、ユニークに名前を付けられたクライアントまたはサーバのインスタンスである。サーバは、クライアントへリソースを提供するプリンシパルである。ユーザがシステム100 にログオンし、そのリソースを利用したい場合に、ＡＳ107 およびＫＤＣ109 は、権限付与および認証をそれぞれ実行するために連係して働く。
【００１９】
最初に、ログオン中に実行される認証について知ることが有益である。各ユーザ／マシンに対して、ユーザ／マシンは、マサチューセッツ工科大学によって開発されたケルベロス（Kerberos）・バージョン５・リリース５プロトコル（後に詳述）のような認証プロトコルに関与する。本発明について、我々は、ユーザ／マシンがそのホーム・ドメインの外部でシステムに接続しようとする場合に実行される認証にのみ関係している。このプロトコルによって、ユーザおよびマシンは、ユーザ／マシンの同一性を確認する資格認定として機能する共有された機密知識を提示する。
【００２０】
各ドメイン・コントローラ106 は、そのドメインがホーム・ドメインであるユーザおよびマシンについての情報を保持する。あるドメインのドメイン・コントローラ106 は、そのユーザおよびマシンのそれぞれについての認証資格認定情報および権限付与情報の双方を保持する。ログオン証明書は、ユーザ／マシンがホーム・ドメインと接続することなくホーム・ドメインでないドメインに接続するのに十分な資格認定を有することを証明するための媒体を提供する。したがって、ユーザ／マシンは、分散システム上を自由に移動することができ、全てのドメインに接続して、そのような接続に対して権限を付与される。しかしながら、このアプローチは、従来のシステムによって必要とされたような、分散システム全体に渡る資格認定情報の複製、を必要としない。
【００２１】
暗号メカニズムを使用して、ログオン証明書を部分的に生成してもよい。特に、ログオン証明書は、非対称暗号化方式（方法）を使用することにより、安全を確保される。非対称暗号化方式においては、公開鍵および個人鍵のペアがログオン証明書の部分部分を暗号化するために使用される。非対称暗号化方式の顕著な特徴は、暗号化と復号の双方に同じ鍵が使用される対称暗号系と異なり、暗号化と復号に異なる鍵の使用が認められるという点にある。これらの鍵は、公開鍵および個人鍵のペアと呼ばれる。各ドメインは、後に詳述するように、暗号化の際に使用される公開鍵および個人鍵を含んだ関連した鍵ペアを有する。公開鍵は、ドメイン・コントローラ106 のＫＤＣ109 によって提供されるロケーションおよび分配プロトコルを介して他のドメインのドメイン・コントローラ106 に排他的に公開される。公開は、ユーザが関与することなく、ドメインのインストール中に起きる。したがって、例えば、ドメイン108Aのドメイン・コントローラ106 は、ドメイン108Bおよび108Cのドメイン・コントローラ106 にその公開鍵を公開する。システムの保全性を高めるために、公開鍵は、他のドメインのドメイン・コントローラ106 にのみ公開され、他の実体（エンティティ）には公開されない。したがって、公開鍵は、完全には公開の知識にはされない。一方、個人鍵は、そのドメインのドメイン・コントローラ106 内で秘密状態にされる。
【００２２】
図２は、ログオン証明書110 の構成要素を示すブロック図である。ログオン証明書110 は、ディジタル署名され封印（調印）された資格認定証明書118 、セッション鍵120 およびオプションとしてのユーザまたはマシン特定データ122 を含んでいる封印されたパケットである。また、ログオン証明書110 は、このログオン証明書が発行された時間、このログオン証明書の満了時間およびこのログオン証明書が有効にある時間（すなわち、開始時間）のような情報も含んでいる。
【００２３】
ディジタル署名され封印された証明書118 は、（図３に示すように）特権を有する属性証明書（ＰＡＣ：Privileged Attribute Certificate）124 、およびセッション鍵126 のもう一つのコピーを少なくとも含んでいる。ＰＡＣ124 は、ユーザまたはマシン用の権限付与情報をカプセル化している。例えば、あるユーザのセキュリティＩＤ、およびそのユーザがメンバである全グループのセキュリティＩＤは、ユーザの特権などのような他の権限付与情報とともに、あるユーザ用のＰＡＣ内に含まれている。あるマシンの認証情報のみが、そのマシン用のログオン証明書内にカプセル化されている。本発明のこの好ましい実施形態においては、ディジタル署名され封印された証明書118 は、そのディジタル署名され封印された証明書内に含まれるべき内容のハッシュを最初に生成することにより作成される。ロン・リベストによって提案されたＭＤ５ハッシュ関数のような一方向ハッシュ関数が、ディジタル署名され封印された証明書118 の内容のハッシュを生成するために使用される。続いて、ランダム暗号化鍵が選択され、証明書118 に含まれるべきデータが、ロン・リベストによって提案されたＲＣ４暗号アルゴリズムのようなバルク暗号アルゴリズムを用いることにより、ランダムに選択された鍵を用いて暗号化される。最後に、このハッシュと暗号化鍵のペアをともに暗号化することにより、ディジタル署名が作成される。この暗号化は、ＲＳＡ暗号アルゴリズムのような非対称暗号アルゴリズムを用い、この証明書を発行するドメイン用のドメイン個人鍵によって行われる。ＭＤ５、ＲＣ４およびＲＳＡの使用は、本発明の実現にとって不可欠なものではなく、互換性のあるアルゴリズムを、これらのアルゴリズムに代わって代用してもよい。
【００２４】
セッション鍵126 は、所与の通信セッションに特有の動的に生成される鍵である。セッション鍵は、ユーザのマシンとＫＤＣ109 との間のように、クライアントとサーバとの間におけるセッション中の通信を暗号化するために使用されることがある。
【００２５】
セッション鍵、ディジタル署名、封印された資格認定証明書、および発行ドメインなどの他の情報を含むログオン証明書110 は、ユーザに提供されたパスワードを用いてさらに暗号化することによって封印（調印）される。ログオン証明書110 が後に使用されるドメインは、分配された公開復号鍵の受取者となっている。このドメインが、発行ドメインからの証明書を受け取るように構成されているならば、このドメインは、その内容を復元するためにログオン証明書を復号する。
【００２６】
ログオン証明書110 の内容が、図２および図３に示す情報とは異なる情報、または付加的な情報を含んでいてもよいことはいうまでもない。図２および図３に示す情報は、本発明の好ましい実施形態において含まれるものを構成するものであって、特許請求の範囲に定められる本発明の範囲を制限するものではない。
【００２７】
図４は、本発明の好ましい実施形態においてログオン証明書を使用する際に伴う基本的なステップを示すフローチャートである。このステップのシーケンスは例示にすぎず、これらのステップは、異なる順番で実行されてもよい。また、全てのステップが、本発明を実現するために実行される必要はない。
【００２８】
マシンが、そのホーム・ドメインでブートされるごとに、マシンは、そのマシンの同一性を証明するそのホーム・ドメインのドメイン・コントローラからログオン証明書110 を得る（ステップ128 ）。マシンが、分散システムに対してそれ自身を認証（本物であることを証明）することができた場合に、その場合に限って、この証明書は得られ、かつ、発行される。このマシンは、後に、ログオン証明書110 を、このマシンがブートしたときに接続されている別のドメインのドメイン・コントローラ106 に提出することができる。同様に、ユーザが、そのホーム・ドメインにログオンするごとに、ユーザは、その者のドメイン・コントローラ106 からログオン証明書110 を得る（図４のステップ130 ）。また、ユーザが、分散システムに対してユーザ自身を認証（本物であることを証明）することができた場合に、その場合に限って、この証明書は発行される。続いて、ログオン証明書110 は、後に、異なるドメインの場所でログオンするために使用することができる。ユーザがログオン証明書110 を使用してログオンを許可されるホーム・ドメインでないドメインは、「接続ドメイン」として知られており、接続性サービスをユーザに提供する。
【００２９】
ユーザは、フロッピィ・ディスクのような移動記憶媒体にログオン証明書110 をダウンロードするように要求することができる。ユーザが、このような移動可能記憶媒体にログオン証明書110 をダウンロードするように要求すると、ユーザは、パスワードを提供するように促される。一方向ハッシュ関数は、このパスワードをハッシュするために使用される。続いて、パスワードは、暗号化鍵を生成するために使用され、さらに、暗号化鍵は、ログオン証明書を暗号化するために使用される。このパスワードは、移動可能記憶媒体にあるログオン証明書を所有する任意の第三者が、そのログオン証明書が発行されたユーザとして、不正にログオンすることを防止するために必要なものである。
【００３０】
マシンおよびユーザが、ログオン証明書110 を受け取ると、一般に、ユーザは、分散システム100 内のリモート・ドメインにおいてマシンをブートしようとする。リモート・ドメインにおいてマシンをブートしている間、マシンは、それ自身を識別し、かつ、このマシンが分散システム100 に接続される権限を付与されていることを確認するために、分散システム100 にログオン証明書110 を提出する（図４のステップ132 ）。マシンが、適切な資格認定情報を提出すると、マシンは、分散システム100 に接続される（ステップ134 ）。続いて、ユーザは、分散システムにログオンすることができる。このログオン・プロセス（後の詳述する）の一部として、ユーザは、ログオン証明書110 を提出する（ステップ136 ）。ユーザが権限付与されたユーザであることを、ログオン証明書110 が示しているならば、そのユーザは、ログオンを許可され、分散システムの使用を許可される（ステップ138 ）。
【００３１】
図４のフローチャートに示すステップは、ユーザがリモート・ドメインでログオンするために携帯用マシンを携行している場合を示したものである。このような場合ではなく、ユーザが、リモート・ドメインにおいて分散システム100 に既に接続されているマシンを利用する場合もある。このような場合には、ユーザは、リモート・ドメインでログオンするためにログオン証明書110 を提出するように要求されることがあるが、ユーザが使用しているマシンには、ログオン証明書がないことがある。選択的に、携帯用コンピュータが、ユーザのホーム・ドメインにおいてユーザに使用される場合がある。このような場合には、携帯用コンピュータが、ログオン証明書110 を提出して、分散システム100 に接続されるが、ユーザは、そのようなログオン証明書を提出する必要はない。
【００３２】
分散システム100 にログオンする際に、ログオン証明書110 がどのように使用されるかを理解するために、ケルベロス・プロトコルの基本のいくつかをレビューすることが有益である。ケルベロスは、「チケット」を使用して、クライアントによるサーバへのアクセスを規制する。チケットは、レコードのようなデータ構造体であり、目的のサーバ名、クライアント名および権限付与データのようなデータを保持し、クライアントが、サーバに対して自身を認証することを援助する。チケットは、クライアントがサーバからのサービスを受けることを許可する。
【００３３】
認証子は、クライアント名およびタイム・スタンプを含み、オプションとしてセッション鍵も含むことがあるデータ構造体である。認証子は、セッション鍵で暗号化されたデータを含んでいる。このデータは、送り手がセッション鍵を知っていることの証明となる。さらに、タイム・スタンプは、盗聴者がコピーされたチケットと認証子のペアを使用する時間を最小化するのに役立つ。
【００３４】
ケルベロスにおいて、セッション鍵は、クライアントの資格認定が本物であることを証明するために使用され、所与の通信セッション中に、２つのパーティ（例えば、クライアントとサーバ）間におけるメッセージを暗号化するために使用されることもある。通信セッションが終了すると、セッション鍵は抹消される。セッション鍵は、この鍵を利用する２つのパーティ間でのみ共有される。
【００３５】
ケルベロスは、ユーザのようなクライアントを、それらクライアントの関連する秘密鍵と相関させる認証データベースを保有する。上述したように、秘密鍵は、典型的には、暗号化されたパスワードであり、すなわち、予め指定されたアルゴリズムを用いてパスワードから得られる。この認証データベースは、プロトコルの実行中に必要になると、クライアントの秘密鍵を取り出すために利用される。
【００３６】
上述したように、ログオン証明書110 は、ユーザが分散システム100 へログオンを試みるときに使用される。図５は、このような場合に実行されるステップのフローチャートである。図５のフローチャートのステップは、図６（ユーザの権限付与および認証を行う役割をもつ主な構成要素を示す）に示すシステム構成要素のブロック図と関連して以下に詳述される。移動するユーザがログオンを試みると、ユーザは、「証明書を介したログオン」を行うためのオプションを含むログオン・メニューを与えられる。このログオン・メニューは、ユーザ用のクライアントとして働くローカル・ログオン・プロセスの一部として提供される。ユーザがこのオプションを選択すると、ユーザは、移動可能記憶媒体（例えば、フロッピィ・ディスク）によって携行されたログオン証明書110 を利用してログオンすることを望むこともあるし、ユーザがログオンを試みているマシン上に記憶されたログオン証明書を使用してログオンを望むこともある。したがって、ステップ140 において、ユーザが、移動可能記憶媒体上の証明書を用いてログオンしているのか、それとも、そのユーザ用のユーザ・マシンに記憶された証明書を用いてログオンしているのかが判断される。ユーザが、移動可能記憶媒体に含まれるログオン証明書110 を使用してログオンすることを決定すると、証明書を移動可能記憶媒体にダウンロードする際にユーザが入力するように要求されたダウンロード・パスワードを、ユーザは提供しなければならず、システムが、このパスワードが正しいダウンロード・パスワードであることを確認する（ステップ142 ）。正しいダウンロード・パスワードの提供に失敗すると、ユーザは、移動可能記憶媒体に記憶されたログオン証明書110 の使用を妨げられる。ユーザが、マシン（多くの場合、ユーザがよく使用する携帯用コンピュータ）上に記憶されたログオン証明書を使用したいならば、ユーザは、自分の通常のログオン・パスワードを提供しなければならない。
【００３７】
いずれの場合にも、ログオン・プロセスは、このパスワードを使用して、予め指定された一定のアルゴリズムにより暗号化鍵を生成する。続いて、ログオン・プロセスは、この鍵を使用して、移動可能記憶媒体またはマシン自体から取り出されたログオン証明書を復号する。このようにして、クライアントは、暗号化されたセッション鍵を得る。このセッション鍵は、暗号化されたログオン証明書に格納されていたものであり、資格認定情報の暗号化ブロックにも格納されているものである。クライアントは、この暗号化されたセッション鍵を、クライアントが、ログオン証明書を使用しない通常のログオン・シーケンスの場合にユーザに提供されたパスワードから得られる鍵を使用するのと全く同様の方法で使用する。
【００３８】
システムは、ユーザ名およびパスワードをユーザに促すことによって、認証交換を開始する（ステップ144 ）。続いて、ログオン・プロセスは、チケット交付チケット（ＴＧＴ：Ticket Granting Ticket）のリクエストをＫＤＣ109 に送る（ステップ146 ）。このＫＤＣ109 は、ローカル・ドメインのドメイン・コントローラ106 上で実行されているものである。ログオン証明書110 は、ＴＧＴのリクエストとともに送られる。ＴＧＴのリクエストは、図６の矢印168 により表されている。ＫＤＣ109 は、このログオン・リクエストが、ある別のドメインのユーザによるものであると判断し、続いて、そのログオン証明書に指定されたドメインに関連した公開鍵を捜す。ＫＤＣ109 は、この公開鍵を使用して、資格認定証明書を開封する。そして、ＫＤＣ109 は、この証明書がログオン証明書110 の暗号化されていない部分で名前を挙げられているドメインによって確かに発行されたものであること、ログオン証明書が有効である（すなわち、満了していない）こと、および現時刻が証明書内に保持された開始時間を過ぎていることを確認する。また、ＫＤＣ109 は、封印された資格認定証明書118 から、暗号化されたセッション鍵を得る。そして、ＫＤＣ109 は、その認証データベース内にそれがエントリを有するユーザのためのそのデータベースに格納されたユーザ・パスワードの一方向ハッシュから得られた暗号化鍵を使用するのと全く同じ方法で、暗号化されたセッション鍵を使用する。ＫＤＣ109 が、ディジタル署名を確認することにより、証明書118 の真正であることを確認し、かつ、この証明書が正当なものであると結論すると（ステップ148 ）、ＫＤＣ109 は、ＴＧＴおよび新しいセッション鍵（さらに進んだ通信に使用される）を矢印170 に示すようにクライアント166 に送る（ステップ150 ）。この新セッション鍵は、封印された証明書から得られたセッション鍵によって暗号化されている。
【００３９】
クライアント166 は、（上述したように、クライアント166 は、ログオン証明書を復号することからセッション鍵を所有しているので）ＫＤＣによって送られたこの新セッション鍵を復号し、この新セッション鍵を今後の使用のために保存する（ステップ152 ）。続いて、クライアント166 は、資格認定チケット許可チケット（ＣＴＧＴ：Credentials Ticket Granting Ticket）のリクエストを、ＡＳ107 へのサービス・チケットをＫＤＣ109 に要求することにより開始する（ステップ154 ）。ＣＴＧＴは、権限付与情報を提供するようにクライアントに要求するサーバへのチケットを得るために使用される。このリクエストは、図６の矢印172 に示されている。このリクエストは、ＫＤＣ109 から先に受信されたＴＧＴを含んでいる。
【００４０】
ＫＤＣ109 は、クライアント166 からのリクエストを受け取り、ディジタル署名され封印された証明書118 を含むクライアント166 へＡＳ107 のチケットを返すことにより、このリクエストに応答する（ステップ156 ）。ＡＳ107 へのチケットの送信は、図６の矢印174 に表されている。
【００４１】
続いて、クライアント166 は、ＡＳ107 からのＰＡＣをリクエストする。このＰＡＣは、クライアント166 へ最後に発行されたＣＴＧＴに結局は組み込まれる（ステップ158 ）。このリクエストは、図６の矢印176 に示されている。ＡＳ107 は、権限付与データベースに普通にアクセスして、権限付与情報を得る。一方、この例では、ユーザはログオン証明書を使用してログオンしているので、ユーザはそのホーム・ドメインの外部におり、したがって、権限付与データベースはこのユーザについての情報を保有していない。したがって、ＰＡＣを提供するために、ＡＳ107 は、そのドメインの公開鍵を用いて、ディジタル署名を復号し、資格認定証明書の内容のハッシュ値および資格認定証明書を暗号化するために使用される対称鍵を得る。ＡＳ107 は、資格認定証明書を復号し、復号された内容のハッシュを再計算する。その値は、ディジタル署名から得られたハッシュ値と一致しなければならない。このことを確認し、また、証明書の他の点の正当性（有効性）についても確認すると、ＡＳ107 は、ユーザの権利および特権を作成するために、チケットに、ディジタル署名され封印された証明書118 の内容からＰＡＣを用意する。また、ＡＳ107 は、このＰＡＣを、ログオン証明書を介して生成されたものとしてマークを付け、目的のドメインのローカル・セキュリティ政策によって使用可能であることを示す。ＡＳ107 が、付加的な特権または制約によりＰＡＣの内容を増大することもできる。続いて、ＡＳ107 は、クライアントにＰＡＣを返す前に、ＰＡＣを秘密鍵で封印する。この秘密鍵は、ＡＳ107 がＫＤＣと共有しているものである。ＰＡＣは、それをＫＤＣ109 の秘密鍵で暗号化することにより封印され、クライアントがそれにアクセスできないようにする。ＡＳ107 は、封印されたＰＡＣをクライアント166 に返す（図６の矢印178 、ステップ160 ）。
【００４２】
クライアント166 は、封印されたＰＡＣとともにメッセージをＫＤＣ109 に送り（図６の矢印180 ）、ＫＤＣからＣＴＧＴを得る（ステップ162 ）。ＫＤＣ109 は、ＰＡＣを含むようにＣＴＧＴを作成し、このＣＴＧＴをクライアントに転送する（図６の矢印182 、ステップ148 ）。ＣＴＧＴは、ユーザのＩＤ、ユーザの特権、ユーザのグループ・メンバシップを含んでおり、ＰＳの秘密鍵を用いて暗号化することにより封印されている。この時、ユーザは、彼があたかも彼の接続されているドメインにアカウントを持っているように見える。ユーザがサーバへのアクセスを望むならば、ユーザは彼のＴＧＴまたはＣＴＧＴを使用することができる。
【００４３】
マシンが最初にブートされ、分散システム100 に接続されると、ステップ129 で開始する上記ステップが繰り返される。マシンは、これらのステップにおいてユーザの代わりをする。このように、マシンは、適切なマシンとして認定され、分散システム100 の一部となる。
【００４４】
上述したように、ログオン証明書110 は、無効にすることができるし、満了することもできる。ログオン証明書110 の満了するという性質については、各証明書は、それが有効になる開始時刻およびそれが無効になる満了時刻を備えている。ログオン証明書110 が有効になるためには、ログオン証明書の開始時刻が既に経過しており、かつ、ログオン証明書の満了時刻がまだ経過していない状態になければならない。
【００４５】
ログオン証明書110 は、無効にすることができ、明示的に無効にされることがある。アカウントが起動されないか、または、アドミニストレータがシステムに対してログオン証明書110 を無効にするように命令すると、発行ドメインのドメイン・コントローラ106 は、ログオン証明書を無効にさせる全ユーザＩＤを列挙するメッセージを循環させる。このメッセージは、発行ドメインの個人鍵によって署名される。他のドメイン・コントローラ106 は、このメッセージを利用して、ログオンを要求するどのパーティが十分な資格認定情報を有するかを判断する。ある場合には、あるドメインが、その公開鍵および個人鍵を変更し、かつ、この新しい公開鍵および個人鍵を他のドメイン・コントローラ106 に伝達することが必要な場合がある。その結果、そのドメインによって発行された既存のログオン証明書110 は、もはや有効ではなくなる。
【００４６】
各ドメイン・コントローラ106 は、ログオン証明書110 を介してログオンする訪問者に対してアクセス可能にすべきそのドメイン内のあるリソース群にマークを付けておくことができる。このような訪問者を取り扱うために、ドメインのネーム空間内に特別のアカウントを設けることもできる。
【００４７】
本発明について、好ましい実施形態（実施例）を参照しながら説明してきたが、特許請求の範囲に定められる本発明の精神および範囲から逸脱することなく、その形態をさまざまに変更し詳細化することができるのはいうまでもない。
【図面の簡単な説明】
【図１】本発明の好ましい実施形態を実現するのに適した分散システムのブロック図である。
【図２】本発明の好ましい実施形態によるログオン証明書の内容を示す。
【図３】図２のディジタル署名され封印された証明書の内容の詳細を示す。
【図４】本発明の好ましい実施形態におけるログオン証明書を得、かつ、使用するために実行されるステップを示すフローチャートである。
【図５】本発明の好ましい実施形態によるログオン証明書を使用して分散システムにログオンするために、ユーザに対して実行されるステップを示すフローチャートである。
【図６】本発明の好ましい実施形態によるログオンを行っているときに、分散システムの主な構成要素間で行われるインタラクションを示すブロック図である。
【符号の説明】
100   分散システム
106   ドメイン・コントローラ
107   権限付与サービス
108A、108B、108C  ドメイン
109   鍵分配センタ
110   ログオン証明書
118   ディジタル署名され封印された証明書
120 、126   セッション鍵
124   特権を有する属性証明書
【図１】
0004226665.tif 000002
【図２】
0004226665.tif 000003
【図３】
0004226665.tif 000004
【図４】
0004226665.tif 000005
【図５】
0004226665.tif 000006
【図６】
0004226665.tif 000007