(57)【特許請求の範囲】
【請求項１】
処理ユニットと、オペレーティングシステムを記憶する記憶部とを有するクライアントコンピュータで実行される方法であって、
前記処理ユニットが、前記記憶部に記憶された１又は複数のブート証明書の中からブート証明書を前記オペレーティングシステムをブートするときに前記クライアントコンピュータのユーザの指示に基づいて選択するステップであって、前記ブート証明書は、ブートされる前記オペレーティングシステムの妥当性を証明するブート機関によって発行および署名された証明書である、ステップと、
前記処理ユニットが、前記オペレーティングシステムまたは前記オペレーティングシステムのクラスを一意に決定するデータと前記ブート証明書とから妥当性を検証済みのオペレーティングシステムアイデンティティを作成するステップと、
前記処理ユニットが、前記ブート証明書に含まれるブート規則セットに従って、前記記憶部から前記オペレーティングシステムを構成する複数の部品である複数のオペレーティングシステムコンポーネントをそれぞれ１つずつロードするステップと
を備え、
前記複数のオペレーティングシステムコンポーネントのそれぞれは、前記ブート証明書に署名した同一のブート機関によって発行および署名されたコンポーネント証明書であって、前記記憶部に記憶された証明書であるコンポーネント証明書に関連付けられており、
前記ブート規則セットは、
前記ブート証明書を発行したブート機関によって各コンポーネント証明書が署名されていること、
前記ブート証明書の発行日時点で各コンポーネント証明書が有効であること、及び、
前記ブート証明書に関連付けられた廃棄リストに各オペレーティングシステムコンポーネントがリストされていないこと
の条件を満たす場合に前記オペレーティングシステムコンポーネントをロードすることを許可する規則を含むこと
を特徴とする方法。
【請求項２】
前記クライアントコンピュータは通信部を備え、
前記処理ユニットは、前記コンポーネント証明書が満了している場合、前記通信部を介して新しいコンポーネント証明書を取得して前記満了しているコンポーネント証明書の代わりに前記記憶部に格納するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記クライアントコンピュータは通信部を備え、
前記廃棄リストは、オペレーティングシステムコンポーネントの更新済みバージョンをダウンロードするためのサイトのＵＲＬ含み、
前記処理ユニットが、前記通信部を介して前記ＵＲＬが示すサイトから新しいオペレーティングシステムコンポーネントを取得して前記記憶部に記憶するステップと、
前記処理ユニットが、前記通信部を介して前記ＵＲＬが示すサイトから前記新しいオペレーティングシステムコンポーネントについて関連付けられたコンポーネント証明書を取得して前記記憶部に記憶するステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
処理ユニットと、オペレーティングシステムを記憶する記憶部と、通信部とを有するクライアントコンピュータで実行される方法であって、
前記処理ユニットが、前記記憶部に記憶された１又は複数のブート証明書の中からブート証明書を前記オペレーティングシステムをブートするときに前記クライアントコンピュータのユーザの指示に基づいて選択するステップであって、前記ブート証明書は、ブートされる前記オペレーティングシステムの妥当性を証明するブート機関によって発行および署名された証明書である、ステップと、
前記処理ユニットが、前記オペレーティングシステムまたは前記オペレーティングシステムのクラスを一意に決定するデータと前記ブート証明書とから妥当性を検証済みのオペレーティングシステムアイデンティティを作成するステップと、
前記処理ユニットが、前記ブート証明書に含まれるブート規則セットに従って、前記記憶部から前記オペレーティングシステムを構成する複数の部品である複数のオペレーティングシステムコンポーネントをそれぞれ１つずつロードするステップと、
前記処理ユニットが、前記オペレーティングシステムの前記検証済みのオペレーティングシステムアイデンティティに基づく鍵を使用して、前記記憶部に記憶されたオペレーティングシステムコンポーネントを安全に保護するステップと、
前記処理ユニットが、前記通信部を介して新しいブート証明書を取得するステップと、
前記処理ユニットが、前記オペレーティングシステムまたは前記オペレーティングシステムのクラスを一意に決定するデータと前記新しいブート証明書とから新しい検証済みのオペレーティングシステムアイデンティティを作成するステップと、
前記処理ユニットが、前記新しい検証済みのオペレーティングシステムアイデンティティを使って前記記憶部に記憶されたオペレーティングシステムコンポーネントを再度安全に保護するステップと
を備え、
前記ブート規則セットは、
前記ブート証明書を発行したブート機関によって各コンポーネント証明書が署名されていること、
前記ブート証明書の発行日時点で各コンポーネント証明書が有効であること、及び、
前記ブート証明書に関連付けられた廃棄リストに各オペレーティングシステムコンポーネントがリストされていないこと
の条件を満たす場合に前記オペレーティングシステムコンポーネントをロードすることを許可する規則を含むこと
を特徴とする方法。
【請求項５】
前記処理ユニットが、前記複数のオペレーティングシステムコンポーネントのうち１つが前記ブート規則セットを満たさない場合に、前記検証済みのオペレーティングシステムアイデンティティを未検証のオペレーティングシステムアイデンティティを示す値に設定するステップをさらに備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記記憶部に記憶されたオペレーティングシステムコンポーネントを再度安全に保護するステップは、
前記新しいブート証明書がブート証明書を発行したブート機関と同一のブート機関によって発行されたことを検証すること、
前記新しいブート証明書が、ブート証明書よりも後の日付で発行されたことを検証すること、
前記オペレーティングシステムコンポーネントが満了していないことを検証すること、
前記オペレーティングシステムコンポーネントを検証済みのオペレーティングシステムアイデンティティを使って開封（unseal）すること、
前記オペレーティングシステムコンポーネントをコピーすること、及び、
前記新しい検証済みのオペレーティングシステムアイデンティティを使って前記オペレーティングシステムコンポーネントの該コピーを密封（seal）すること
を含むことを特徴とする請求項４に記載の方法。
【請求項７】
コンピュータ化されたシステムであって、
処理ユニットと、
システムバスを介して前記処理ユニットに結合されたシステムメモリと、
システムバスを介して前記処理ユニットに結合されたコンピュータ読取り可能媒体と、
前記処理ユニットによって前記コンピュータ読取り可能媒体から実行されて、前記処理ユニットに、ソフトウェアコンポーネントをブートするときに本システムのユーザに対してブート証明書を選択するように要求させるブートマネージャと、
前記処理ユニットによって前記コンピュータ読取り可能媒体から実行されて、前記ユーザの指示に基づいて選択された前記ブート証明書のブート規則セットに基づいて前記処理ユニットにソフトウェアコンポーネントをブートさせるブートローダであって、前記ブート規則が満たされているとき、前記システムのオペレーティングシステムを一意に決定するデータと前記ブート証明書とから検証済みのオペレーティングシステムアイデンティティを前記処理ユニットに作成させるブートローダと、
前記処理ユニットに結合されたワイドエリアネットワーク接続と
を備え、
前記ブート証明書は、ブートされる前記オペレーティングシステムの妥当性を証明するブート機関によって発行および署名され、前記コンピュータ読取り可能媒体に記憶された証明書であり、
前記オペレーティングシステムは、前記ブート規則に従ってブートされ、前記処理ユニットに、前記検証済みのオペレーティングシステムアイデンティティ及び前記ブート証明書をサーバコンピュータに伝送させ、前記オペレーティングシステムはさらに、前記ワイドエリアネットワーク接続を介して前記サーバコンピュータからダウンロードされたデータを検証済みのオペレーティングシステムアイデンティティを用いて安全に保護して前記コンピュータ読取り可能媒体に記憶させる検証済みのオペレーティングシステムであり、
前記ブート規則セットは、
前記ブート証明書を発行したブート機関によって各コンポーネント証明書が署名されていること、
前記ブート証明書の発行日時点で各コンポーネント証明書が有効であること、及び、
前記ブート証明書に関連付けられた廃棄リストに前記オペレーティングシステムを構成する部品である各オペレーティングシステムコンポーネントがリストされていないこと
の条件を満たす場合に前記オペレーティングシステムコンポーネントをロードすることを許可する規則を含むこと
を特徴とするコンピュータ化されたシステム。
【請求項８】
前記検証済みのオペレーティングシステムは、さらに前記処理ユニットに、新しいブート証明書を取得させ、前記新しいブート証明書から新しい検証済みのオペレーティングシステムアイデンティティを作成させ、前記検証済みのオペレーティングシステムアイデンティティで安全に保護されたダウンロード済みのデータを開封させ、さらに前記ダウンロード済みのデータを前記新しい検証済みのオペレーティングシステムアイデンティティを用いて再度密封させることを特徴とする請求項７に記載のコンピュータ化されたシステム。
【請求項９】
処理ユニットと、オペレーティングシステムを記憶する記憶部とを有するクライアントコンピュータに、
前記処理ユニットが、前記記憶部に記憶された１又は複数のブート証明書の中からブート証明書を前記オペレーティングシステムをブートするときに前記クライアントコンピュータのユーザの指示に基づいて選択するステップであって、前記ブート証明書は、ブートされる前記オペレーティングシステムの妥当性を証明するブート機関によって発行および署名された証明書である、ステップと、
前記処理ユニットが、前記オペレーティングシステムまたは前記オペレーティングシステムのクラスを一意に決定するデータと前記ブート証明書とから妥当性を検証済みのオペレーティングシステムアイデンティティを作成するステップと、
前記処理ユニットが、前記ブート証明書に含まれるブート規則セットに従って、前記記憶部から前記オペレーティングシステムを構成する複数の部品である複数のオペレーティングシステムコンポーネントをそれぞれ１つずつロードするステップと
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記複数のオペレーティングシステムコンポーネントのそれぞれは、前記ブート証明書に署名した同一のブート機関によって発行および署名されたコンポーネント証明書であって、前記記憶部に記憶された証明書であるコンポーネント証明書に関連付けられており、
前記ブート規則セットは、
前記ブート証明書を発行したブート機関によって各コンポーネント証明書が署名されていること、
前記ブート証明書の発行日時点で各コンポーネント証明書が有効であること、及び、
前記ブート証明書に関連付けられた廃棄リストに各オペレーティングシステムコンポーネントがリストされていないこと
の条件を満たす場合に前記オペレーティングシステムコンポーネントをロードすることを許可する規則を含むこと
を特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１０】
さらに前記処理ユニットは、前記複数のオペレーティングシステムコンポーネントのうち１つが前記ブート規則セットを満たしていない場合に、前記検証済みのオペレーティングシステムアイデンティティを未検証のオペレーティングシステムアイデンティティを示す値に設定することを特徴とする請求項９に記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
処理ユニットと、オペレーティングシステムを記憶する記憶部と、通信部とを有するコンピュータに、
前記処理ユニットが、前記記憶部に記憶された１又は複数のブート証明書の中からブート証明書を前記オペレーティングシステムをブートするときに前記クライアントコンピュータのユーザの指示に基づいて選択するステップであって、前記ブート証明書は、ブートされる前記オペレーティングシステムの妥当性を証明するブート機関によって発行および署名された証明書である、ステップと、
前記処理ユニットが、前記オペレーティングシステムまたは前記オペレーティングシステムのクラスを一意に決定するデータと前記ブート証明書とから妥当性を検証済みのオペレーティングシステムアイデンティティを作成するステップと、
前記処理ユニットが、前記ブート証明書に含まれるブート規則セットに従って、前記記憶部から前記オペレーティングシステムを構成する複数の部品である複数のオペレーティングシステムコンポーネントをそれぞれ１つずつロードするステップと、
前記処理ユニットが、前記通信部を介して新しいブート証明書を取得するステップと、
前記処理ユニットが、前記オペレーティングシステムまたは前記オペレーティングシステムのクラスを一意に決定するデータと前記新しいブート証明書とから新しい検証済みのオペレーティングシステムアイデンティティを作成するステップと、
前記処理ユニットが、前記新しい検証済みのオペレーティングシステムアイデンティティを使って前記記憶部に記憶されたオペレーティングシステムコンポーネントを安全に保護するステップと
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記ブート規則セットは、
前記ブート証明書を発行したブート機関によって各コンポーネント証明書が署名されていること、
前記ブート証明書の発行日時点で各コンポーネント証明書が有効であること、及び、
前記ブート証明書に関連付けられた廃棄リストに各オペレーティングシステムコンポーネントがリストされていないこと
の条件を満たす場合に前記オペレーティングシステムコンポーネントをロードすることを許可する規則を含むこと
を特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記処理ユニットが、前記複数のオペレーティングシステムコンポーネントのうち１つが前記ブート規則セットを満たさない場合に、前記検証済みのオペレーティングシステムアイデンティティを未検証のオペレーティングシステムアイデンティティを示す値に設定するステップをさらに実行させるためのプログラムを記録した請求項１１に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータのオペレーティングシステムに関し、より具体的には、オペレーティングシステムによってロードされたコンポーネントを検証することに関する。
【背景技術】
【０００２】
コンテンツがますますデジタル形式で送達されるようになり、デジタルコンテンツは、ますますイントラネット、インターネット、ケーブルＴＶネットワークなど専用ネットワークおよび公衆ネットワークを介してオンラインで送達されるようになっている。クライアントにとっては、デジタル形式によってより複雑化されたコンテンツが可能となり、オンライン送達によって適時性および利便性が向上する。発行者にとってデジタルコンテンツは、送達コストを引き下げてくれるものでもある。残念なことに発行者の考えでは、これらの価値ある特性よりも、オンラインでの情報送達によって、発行者側の負担および損害をもたらしてオリジナルと遜色のないデジタルコンテンツの取得およびコンテンツの違法コピーが比較的容易に行われるという、相対する欠点の方が重視されることが多い。
【０００３】
コンテンツの盗難や不正使用を防ぐために、コンテンツプロバイダは、信用できるソフトウェアに、したがって加入者コンピュータ上で実行するソフトウェアが信用できることを証明可能な加入者コンピュータにのみ、コンテンツをダウンロードさせることになる。この信用という概念は、その性質上、信用できるコンポーネントのみをロードし、何らかの種類の安全保護記憶装置（secure storage）を提供するコンピュータ上で実行中の、信用できるオペレーティングシステムを有することを前提としている。そこで、コンテンツプロバイダがオペレーティングシステムを信用してコンテンツを与えるかどうかを聡明に判断できるような特性を使用して、オペレーティングシステムを識別することが１つの問題となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７，１７４，４５７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１は、オペレーティングシステムによってロードされるすべてのソフトウェアコンポーネントの暗号ダイジェスト（digest）である一意のオペレーティングシステム識別子の一実施形態について開示している。ただし、コンピュータには、膨大な数の異なるハードウェアコンポーネントが含まれており、対応するサポートソフトウェアコンポーネントは、機能強化および問題解決のために頻繁に更新され、その結果、オペレーティングシステムのアイデンティティ（identity）数はほぼ無限となる。コンテンツプロバイダは、信用できるこうしたアイデンティティのリストを維持するか、またはこうしたリストの維持を第三者に委託することができるが、当分野で必要とされるのは、ユーザが入手可能なソフトウェアコンポーネントの選択肢を制限することなく、信用できるオペレーティングシステムの識別数を減らす方法である。
【０００６】
本発明は、前述の欠点、短所、および問題点を対象とするものであり、以下の明細書を読み、研究することによって理解されよう。
【課題を解決するための手段】
【０００７】
クライアントコンピュータ上の検証済みのオペレーティングシステムによってロードされる各ソフトウェアコンポーネントは、ブート証明書に関するブート規則セットを満たすものでなければならない。適切なブート証明書は、コンピュータのブートごとに、ユーザによってあるいはデフォルトで選択される。検証済みオペレーティングシステムの識別子は、ブート証明書から作成される。ブート証明書は、ブート証明書の下でブートされるオペレーティングシステムの妥当性を証明するブート機関（boot authority）によって発行（publish）および署名される。オペレーティングシステムの各ソフトウェアコンポーネントは、ブート証明書に署名した同一のブート機関によって発行および署名されたコンポーネント証明書と関連付けられる。ブート規則は、コンポーネントおよびブート証明書の内容に基づいて、ソフトウェアコンポーネントの妥当性を決定する。
【０００８】
クライアントコンピュータは、検証済みオペレーティングシステムのアイデンティティおよびブート証明書を、コンテンツプロバイダなどのサーバコンピュータに伝送し、コンテンツプロバイダは、そのコンテンツを与える検証済みオペレーティングシステムが信用できるかどうかを判定する。ダウンロードされたデータは、検証済みオペレーティングシステムの識別子から導出された鍵を介して、パーマネント記憶装置上で安全に保護される。ブート証明書、コンポーネント証明書、および安全保護されたコンテンツによってブートドメインが定義される。
【０００９】
２つまたはそれ以上のブートコンポーネントの組み合わせを使用して、検証済みのオペレーティングシステムをブートすることができる。ブート証明書およびコンポーネント証明書の更新、基礎となるコンポーネント、並びに検証済みオペレーティングシステムのアイデンティティおよびそのブートドメインに与える影響などについても説明する。
【００１０】
コンテンツプロバイダは、どのブート機関およびそれらの機関からのどのブート証明書を信用するかを決めるだけでよいため、少数のアイデンティティを追跡するだけでよい。クライアントコンピュータが制限されているのは、検証済みオペレーティングシステムによってロードされたコンポーネントが、コンテンツプロバイダによって信用されたブート機関のうち１つによって証明されなければならないことだけである。クライアントコンピュータは、検証済みでないオペレーティングシステムの下で動作することができるが、検証済みブートドメインの下で格納されたデータにはアクセスすることができない。
【００１１】
本発明では、様々な範囲のシステム、クライアント、サーバ、メソッド、およびコンピュータ読取り可能媒体について説明する。図面を参照し、以下の詳細な説明を読めば、この概要で説明した本発明の態様および利点に加えて、本発明のその他の態様および利点が明らかになろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】共に使用すると本発明の実施形態が実施可能となるハードウェアおよび動作環境を示す図である。
【図１Ｂ】本発明の例示的実施形態で使用するためのクライアントコンピュータを示す図である。
【図２】本発明の例示的実施形態のシステムレベルの概要を示す図である。
【図３】図２に示された本発明の例示的実施形態で使用されるブート証明書とコンポーネント証明書との間の対話を示す時間線図である。
【図４】本発明の例示的実施形態により、ブート時にクライアントが実行するメソッドを示す流れ図である。
【図５】本発明の例示的実施形態により、新しいコンポーネント証明書を取得する際にクライアントが実行するメソッドを示す流れ図である。
【図６】本発明の例示的実施形態により、更新されたコンポーネント証明書を取得する際にクライアントが実行するメソッドを示す流れ図である。
【図７Ａ】本発明の例示的実施形態により、ダウンロードされたコンテンツを取得する際にクライアントが実行するメソッドを示す流れ図である。
【図７Ｂ】本発明の例示的実施形態により、ダウンロードされたコンテンツを取得する際にクライアントが実行するメソッドを示す流れ図である。
【図８Ａ】本発明の例示的実施で使用するための、ブート証明書のデータ構造を示す図である。
【図８Ｂ】本発明の例示的実施で使用するための廃棄リストエントリのデータ構造を示す図である。
【図９】本発明の例示的実施で使用するための、コンポーネント証明書のデータ構造を示す図である。
【図１０】本発明の例示的実施で使用するための時間証明書のデータ構造を示す図である。
【発明を実施するための形態】
【００１３】
以下の、本発明の例示的実施形態の詳細な説明では、本明細書の一部を形成する添付の図面を参照しており、本発明が実施可能な特有の例示的実施形態が例として示されている。これらの実施形態は、当業者であれば本発明が実施できる程度に詳細に記載されており、他の実施形態が利用可能であること、並びに本発明の精神または範囲を逸脱することなく論理的、機械的、電気的、および他の変更が実施可能であることが理解されよう。したがって、以下の詳細な説明は、限定的な意味を持つものではない。
【００１４】
詳細な説明は、５つのセクションに分けられている。第１のセクションでは、共に使用すると本発明の実施形態が実施可能となるハードウェアおよび動作環境について説明する。第２のセクションでは、本発明のシステムレベルの概要が示される。第３のセクションでは、本発明の例示的実施形態に関するメソッドが提供される。第４のセクションでは、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｃｏｒｐｏｒａｔｉｏｎのオペレーティングシステムである「ＷＩＮＤＯＷＳ（登録商標）」ファミリで使用するための、本発明の特定の実施形態について説明する。最後に第５のセクションでは、詳細な説明の結論が示される。
【００１５】
ハードウェアおよび動作環境
図１Ａは、共に使用すると本発明の実施形態が実施可能となるハードウェアおよび動作環境を示す図である。図１Ａの記述は、共に使用すると本発明が実施可能となる好適なコンピュータハードウェアおよび好適なコンピューティング環境の簡単な概要について説明することを意図するものである。必須ではないが、本発明は、パーソナルコンピュータなどのコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈で説明される。一般に、プログラムモジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。
【００１６】
さらに、当業者であれば、本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な大衆消費電子製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成でも実施可能であることを理解されよう。本発明は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される分散型コンピューティング環境でも実施可能である。分散型コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのどちらのメモリ記憶デバイスに配置することも可能である。
【００１７】
本発明を実施するための図１Ａの例示的なハードウェアおよび動作環境には、コンピュータ２０の形式の汎用コンピューティングデバイスが含まれており、これが、処理ユニット２１、システムメモリ２２、並びに、システムメモリを含む様々なシステムコンポーネントを処理ユニット２１に結合するように動作可能なシステムバス２３を含む。処理ユニット２１は１つだけでも複数でもよいため、コンピュータ２０の処理装置には、単一の中央処理ユニット（ＣＰＵ）、または一般に並列処理環境と呼ばれる複数の処理ユニットが含まれる。コンピュータ２０は、従来型コンピュータ、分散型コンピュータ、または任意の他のタイプのコンピュータであってよく、本発明はこれに限定されるものではない。
【００１８】
システムバス２３は、メモリバスまたはメモリ制御装置、周辺バス、および任意のバスアーキテクチャの変形を使用するローカルバスを含む、いくつかのタイプのバス構造のうちいずれであってもよい。システムメモリは、単にメモリと呼ぶことも可能であり、読み取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。起動時などにコンピュータ２０内の要素間で情報を転送するのを助ける、基本ルーチンを含む基本入力出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４に格納される。さらにコンピュータ２０には、図示されていないハードディスクとの間で読取りおよび書込みを実行するためのハードディスクドライブ２７、取外し可能磁気ディスク２９との間で読取りまたは書込みを実行するための磁気ディスクドライブ２８、並びにＣＤ−ＲＯＭまたは他の光媒体などの取外し可能光ディスク３１との間で読取りまたは書込みを実行するための光ディスクドライブ３０が含まれる。
【００１９】
ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれ、ハードディスクドライブインターフェース３２、磁気ディスクドライブインターフェース３３、および光ディスクドライブインターフェース３４によって、システムバス２３に接続される。ドライブおよびそれらの関連付けられたコンピュータ読取り可能媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびコンピュータ２０に関する他のデータの不揮発性記憶装置を提供する。当業者は、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）などの、コンピュータがアクセス可能なデータを格納できる任意のタイプのコンピュータ読取り可能媒体が例示的な動作環境で使用できることを理解されたい。
【００２０】
オペレーティングシステム３５、１つ以上のアプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８を含むいくつかのプログラムモジュールが、ハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に格納可能である。ユーザは、キーボード４０およびポインティングデバイス４２などの入力デバイスを介して、コマンドおよび情報をパーソナルコンピュータ２０に入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用アンテナ、スキャナなどが含まれる。これらおよび他の入力デバイスは、システムバスに結合されたシリアルポートインターフェース４６を介して処理ユニット２１に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェースによって接続することもできる。モニタ４７または他のタイプのディスプレイデバイスも、ビデオアダプタ４８などのインターフェースを介してシステムバス２３に接続される。典型的にコンピュータには、モニタに加えて、スピーカおよびプリンタなどの他の周辺出力デバイス（図示せず）が含まれる。
【００２１】
コンピュータ２０は、リモートコンピュータ４９などの１つ以上のリモートコンピュータへの論理接続を使用するネットワーク化された環境で動作可能である。これらの論理接続は、コンピュータ２０に結合されたかまたはその一部である通信デバイスによって達成されるが、本発明は、特定タイプの通信デバイスに限定されるものではない。リモートコンピュータ４９は、他のコンピュータ、サーバ、ルータ、ネットワークＰＣ、クライアント、ピアデバイス、または他の共通ネットワークノードであってよく、図１ではメモリ記憶デバイス５０のみが記載されているが、典型的には、コンピュータ２０に関して上記で述べた要素の多くまたはすべてを含む。図１Ａに示された論理接続には、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２が含まれる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでよく見られるものである。
【００２２】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ２０は、通信デバイスの一種であるネットワークインターフェースまたはアダプタ５３を介してローカルネットワーク５１に接続される。ＷＡＮネットワーキング環境で使用される場合、典型的にコンピュータ２０には、インターネットなどのワイドエリアネットワーク５２を介した通信を確立するための、モデム５４、一種の通信デバイス、または任意の他のタイプの通信デバイスが含まれる。モデム５４は内蔵型でも外付けでもよく、シリアルポートインターフェース４６を介してシステムバス２３に接続される。ネットワーク化された環境では、パーソナルコンピュータ２０に関して、あるいはその一部として示されたプログラムモジュールをリモートメモリ記憶デバイスに格納することができる。図示されたネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立するためには、他の手段および通信デバイスが使用可能であることを理解されよう。
【００２３】
以上、共に使用すると本発明の実施形態が実施可能となるハードウェアおよび動作環境について説明してきた。共に使用すると本発明の実施形態が実施可能となるコンピュータは、従来型コンピュータ、分散型コンピュータ、または任意の他のタイプのコンピュータであってよく、本発明はこれらに限定されるものではない。こうしたコンピュータには、典型的に、処理装置として１つ以上の処理ユニットと、メモリとしてコンピュータ読取り可能媒体とが含まれる。コンピュータは、ネットワークアダプタまたはモデムなどの通信デバイスを含むことも可能であるため、他のコンピュータと通信上で結合することができる。
【００２４】
好適なクライアントコンピュータの一実施形態例は、特許文献１に記載されており、図１Ｂでは加入者ユニット１２４として図示されている。加入者ユニット１２４のＣＰＵ１４０は、次に簡単に説明するように、コンピュータにロードされているブートブロックおよびＯＳコンポーネントのアイデンティティを認証し、このアイデンティティに基づいて、引用符付け（quoting）および安全保護記憶装置動作を提供することができる。加入者ユニット１２４に関する様々な実施形態の詳細な説明は、関連する出願に記載されている。
【００２５】
ＣＰＵ１４０は処理装置１６０を備えており、暗号化アクセラレータ１６２を備えることもできる。ＣＰＵ１４０は、一般に暗号化機能に関連する集中的な数学計算を支援するアクセラレータ１６２を使用するかまたは使用せずに、署名、暗号化、復号、および認証などの暗号化機能を実施することができる。
【００２６】
ＣＰＵ製造業者は、ＣＰＵ１４０に、ＣＰＵに固有の公開鍵と秘密鍵のペア１６４を備え付ける。考察のために、ＣＰＵの公開鍵を「ＫCPU」と呼び、対応する秘密鍵を「ＫCPU-1」と呼ぶ。他の物理的実施には、メインＣＰＵがアクセス権を有する外部デバイス上に鍵を格納することが含まれる（格納された秘密情報には、任意アプリケーションまたはオペレーティングシステムコードがアクセスすることはできない）。秘密鍵は決して明らかにされることがなく、以下で論じるように、コンテンツプロバイダからのチャレンジ（challenge）に応じるときなどに、様式化されたステートメントに署名するという特有の目的のためにのみ使用される。
【００２７】
製造業者は、周知の仕様に従ってＣＰＵを生産したことを保証する署名済み証明書１６６も発行する。一般に、証明書は、製造業者が鍵ペア１６４を作成し、その鍵ペアをＣＰＵ１４０に配置し、その後秘密鍵「ＫCPU-1」の独自の知識を破棄したことを保証するものである。この方法では、ＣＰＵのみがＣＰＵの秘密鍵ＫCPU-1を知っており、同じ鍵は他のＣＰＵに発行されず、製造業者はその記録をいっさい保持しない。証明書は、原則的に、処理装置に関連付けられた別の物理デバイス上に格納することが可能であるが、論理的には対応する鍵を備えた処理装置に属したままである。
【００２８】
製造業者は公開および秘密の署名鍵、ＫMFRおよびＫMFR-1のペアを有する。秘密鍵ＫMFR-1を知っているのは製造業者だけであるが、公開鍵ＫMFRは大衆が入手することができる。製造業者の証明書１６６には、製造業者の公開鍵ＫMFR、ＣＰＵの公開鍵ＫCPU、および前述の証拠が含まれる。製造業者は、その秘密署名鍵ＫMFR-1を使用して、以下のように証明書に署名する。
【００２９】
Ｍｆｒ．Ｃｅｒｔｉｆｉｃａｔｅ＝（ＫMFR，Ｃｅｒｔｉｆｉｅｓ−ｆｏｒ−Ｂｏｏｔ，ＫCPU），ｓｉｇｎｅｄ  ｂｙ  ＫMFR-1
述語（predicate）「ｃｅｒｔｉｆｉｅｓ−ｆｏｒ−ｂｏｏｔ」は、ＣＰＵおよびＣＰＵ鍵ペアが周知の仕様に従って作成されたことを、製造業者が誓約するものである。この誓約は、さらに、以下でより詳細に説明するように、ＣＰＵが認証済みのブート手順を正しく実行できることを言明するものである。製造業者証明書１６６には大衆がアクセス可能であるが、製造業者の秘密鍵ＫMFR-1を知らなければ偽造することはできない。
【００３０】
証明書のチェーンは、中間証明書および追加の鍵ペアを使用して、製造業者の証明書から拡張することができる。製造業者の証明書の代わりにチェーン内の中間証明書を使用して検証が実行されると、重要な「ルート」鍵ペア、すなわちＫCPU／ＫCPU-1およびＫMFR／ＫMFR-1を頻繁に使用することが極めて少なくなるため、ルート鍵が盗まれる確率も少なくなる。
【００３１】
ＣＰＵ１４０は、内部ソフトウェアアイデンティティレジスタ（ＳＩＲ）１６８を有し、これが、認証済みオペレーティングシステム１８０のアイデンティティ、またはオペレーティングシステム１８０の認証が不可能であるとＣＰＵが判断した場合は所定の偽の値（例えばゼロ）を含む。オペレーティングシステム（ＯＳ）１８０はメモリ１４２に格納され、ＣＰＵ１４０で実行される。オペレーティングシステム１８０は、ブート動作時にＣＰＵに対してオペレーティングシステムを認証するのに使用されるコードブロック１８２を有する。ブートブロック１８２は、オペレーティングシステムまたはオペレーティングシステムのクラス（例えば同一の製造業者によって署名されたもの）を一意に決定する。
【００３２】
システムレベルの概要
本発明の例示的実施形態の動作のシステムレベルの概要について、図２の参照によって説明する。図１Ａのクライアントコンピュータ２０などの加入者コンピュータ２００が、ＷＡＮ５２などのワイドエリアネットワークを介してリモートコンピュータ４９などのコンテンツプロバイダのサーバコンピュータ２２０に接続される。図２では、加入者コンピュータ２００およびコンテンツプロバイダ２２０のコンポーネントによって実施されるプロセスが、矢印で示されている。これらプロセスの多くには、公開／秘密鍵ペア、デジタル署名、デジタル証明書、および／または暗号アルゴリズム、あるいはこれら標準の暗号化機能の組み合わせのいずれかが組み込まれている。こうした機能は、以下の記述にある加入者コンピュータのＣＰＵによって提供されるものと想定されるが、当業者であればすぐに理解されるように、他の周知の暗号メカニズムによって提供される場合もある。
【００３３】
図２に示された例示的実施形態では、加入者コンピュータ２００で実行中のオペレーティングシステムのアイデンティティをコンテンツプロバイダ２２０に対して証明するために、コンポーネント証明書およびブート証明書の組合せが使用される。各コンポーネント証明書は、対応するコンポーネントの妥当性およびセキュリティをブート機関が保証していることを示すために、秘密鍵を使用して、ブート機関によって発行および署名される。各ブート機関は、コンポーネント証明書上の署名を検証するのに必要な公開鍵を含むブート証明書も発行する。クライアントコンピュータ２００がブートされると、ロードされたコンポーネントを検証するために、ブート機関の特定の組合せが選択される。図２では、以下の考察をわかりやすくするために、２つのコンポーネント証明書および２つのブート証明書のみが示されている。当業者であれば、実際には、通常２つより多くのコンポーネント証明書が使用されること、および異なる数のブート証明書が等しく適用可能であることが容易に理解されよう。
【００３４】
オペレーティングシステム２１１のブートブロック（基本コンポーネント）は、オペレーティングシステムのベンダによって署名され、ベンダによって発行されたブート証明書２０１を使用して検証されたコンポーネント証明書２０５に関連付けられる。ハードウェアデバイスドライバなど、コンピュータ２００を動作させるのに必要な追加のソフトウェアコンポーネントは、コンポーネント証明書２０７に関連付けられる。ソフトウェアコンポーネントのコンポーネント証明書２０７は、独立したブート機関によって署名され、独立したブート機関によって発行されたブート証明書２０３を使用して検証される。
【００３５】
クライアントコンピュータ２００がブートされると、オペレーティングシステム２１１用のブートローダ２０９が、ブート証明書２０１、２０３に対して、ロードされる各コンポーネントのコンポーネント証明書を検証する。結果として生じるオペレーティングシステム２１１のアイデンティティは、ブートブロックとブート証明書２０１、２０３の組合せの暗号ダイジェストであり、以前に図１ＢでＳＩＲ１６８について説明したように、内部ソフトウェアアイデンティティレジスタ（ＳＩＲ）２１３に記録される。検証できないコンポーネントがロードされると、アイデンティティは、未検証オペレーティングシステムであることを示すデフォルト値に設定される。
【００３６】
加入者コンピュータ２００がプロバイダ２２０にコンテンツ２２１のダウンロードを要求すると、コンテンツプロバイダ２２０は、現在のオペレーティングシステム２１１のコンポーネントを検証するのに使用されるブート証明書を要求するチャレンジメッセージ（「ｎｏｎｃｅ」）を加入者コンピュータ２００に伝送する。加入者コンピュータ２００は、ブート証明書２０１、２０３、ＳＩＲ２１３の現在の値、およびｎｏｎｃｅを含む認証メッセージを伝送する。加入者コンピュータは、そのＣＰＵの秘密鍵を使用して値に署名することにより、ＳＩＲ２１３のアイデンティティを保証する。
【００３７】
コンテンツプロバイダ２２０は、加入者コンピュータ２００との信用関係を確立するべきであるかどうかを判定するために、証明書２０１、２０３およびアイデンティティを検査する。確立すべきである場合、コンテンツプロバイダ２２０はコンテンツを加入者コンピュータ２００にダウンロードする。コンテンツが永久に加入者コンピュータ２００に格納されるものである場合、オペレーティングシステム２１１はコンテンツを記憶デバイス２１５に書き込み、コンテンツへの未許可のアクセスを防ぐために、格納されたコンテンツすなわち「秘密情報」２１７のアイデンティティへのアクセスに鍵を掛ける。デバイス２１５は、ディスクドライブとして図２に示されているが、こうした図は、デバイスの範囲を安全保護された記憶装置として働くことに限定する意図で示されたものではない。
【００３８】
例示的実施形態では、各コンポーネント証明書は限定期間内で有効であり、各ブート証明書には発行日が記載されている。証明書間の対話は、図３で時間線を使用して示されているように、相対日付に基づいている。ブート証明書３０１には時間マーク１の発行日があり、ブート証明書３０２には時間マーク４の発行日がある。コンポーネント証明書３０３は時間マーク５、コンポーネント証明書３０４は時間マーク３、コンポーネント証明書３０５は時間マーク２、コンポーネント証明書３０６は時間マーク６で満了する。時間マーク１から４の間の任意の時間に加入者コンピュータ２００がブートされると、ロードされるコンポーネントに関する各コンポーネント証明書の満了日を、ブート証明書の発行日に照らしてチェックする。コンポーネント証明書が発行日時点で有効である限り、コンポーネントはロードされる。したがって、コンポーネント証明書３０３、３０４、３０５、３０６に関連付けられたコンポーネントは、ブート証明書３０１を使用しているときには常時ロードされ、コンピュータは、検証済みオペレーティングシステムに常時ブート可能となる。
【００３９】
ただし、ブート証明書３０２を使用してブートする場合、コンポーネント証明書３０４、３０５の有効期間がブート証明書３０２の発行日以前に満了しているため、これらに関連付けられたコンポーネントを検証することはできない。これらのコンポーネントをロードしなければならない場合、オペレーティングシステムのアイデンティティは、未検証オペレーティングシステムの値に設定される。新しいコンポーネント証明書は、ブート証明書３０２の下で、検証済みオペレーティングシステム内のコンポーネントをロードする必要がある。新しいコンポーネント証明書を取得するプロセスはオペレーティングシステムによって自動的に処理され、これについては次のセクションで説明する。
【００４０】
関連付けられたコンポーネント証明書の満了日以前は、特定バージョンのコンポーネントが脆弱（vulnerability）であることがわかっているため、本発明の代替実施形態では、各ブート証明書に廃棄リストを関連付けている。廃棄リストにコンポーネントが掲載された場合、ブート証明書はそのコンポーネントの更新済みバージョンが取得されるまで、そのコンポーネントを検証しない。以前と同様に、未検証コンポーネントがロードされる場合、アイデンティティは未検証値に設定される。一実施形態では、廃棄リストに、更新済みバージョンのコンポーネントのオンラインアドレス（ＵＲＬ）も含まれるため、次のセクションで説明するように、オペレーティングシステムは新しいバージョンを自動的に取得できる。脆弱な各コンポーネントがその名前およびバージョンまたはその暗号ダイジェストで識別される廃棄リストの一実施形態例については、以下でより詳細に説明する。
【００４１】
１つ以上のブート証明書の有効期間が満了しているために、コンテンツプロバイダがコンテンツのダウンロードを拒否した場合、現行のオペレーティングシステムは、後で発行されたブート証明書を取得して、新しいブート証明書の下でそれ以降のブート時に使用することができる。既存のコンテンツは、オペレーティングシステムのアイデンティティを介して安全保護されているため、新しいブート証明書を使用してブートすると、コンテンツにアクセスできないことになる。したがって現行のオペレーティングシステムは、システムがリブートされる前に、新しいアイデンティティを使用してコンテンツを格納しなおす。後で発行されたブート証明書を取得してコンテンツの安全保護をやり直すプロセスについても、次のセクションで説明する。
【００４２】
以上、本発明の例示的実施形態の動作のシステムレベルの概要について、詳細に述べてきた。ブートドメインはクライアントの加入者コンピュータ上で作成され、ブート証明書、コンポーネント証明書、および格納された秘密情報によって定義される。加入者コンピュータにロードされるソフトウェアコンポーネントは、指定されたブート規則に従って、証明書を使用して検証される。オペレーティングシステムのアイデンティティは、コンポーネントの検証に使用されるブート証明書を反映するように作成される。コンテンツプロバイダは、オペレーティングシステムのアイデンティティおよびブート証明書に基づいて、そのオペレーティングシステムを信用してもよいかどうかを判定する。本発明はブート証明書とコンポーネント証明書のいずれかの特定の組合せに限定されるものではないが、わかりやすくするために、オペレーティングシステムが２つのブート証明書および２つのコンポーネント証明書を使用しているものとして説明してきた。
【００４３】
本発明の例示的実施形態のメソッド
前のセクションでは、本発明の例示的実施形態の動作のシステムレベルの概要について説明した。このセクションでは、こうした例示的実施形態のクライアント、すなわち加入者コンピュータによって実行される特定のメソッドについて、一連の流れ図を参照しながら説明する。クライアントによって実行されるメソッドは、コンピュータ実行可能命令からなるコンピュータプログラムを構成する。流れ図を参照しながらメソッドについて説明していくことで、当業者であれば、好適にコンピュータ化されたクライアント（コンピュータ読取り可能媒体からの命令を実行するクライアントの処理装置）でメソッドを実施するためのこうした命令を含む、こうしたプログラムを開発することができるようになる。
【００４４】
初めに図４を参照すると、本発明の例示的実施形態に従って加入者コンピュータによって実行されるメソッドの流れ図が示されている。このメソッドには、ブートプロセスの一部として実行する必要のある行為が含まれている。ブートプロセスが開始されると、ブートマネージャがユーザに対して、オペレーティングシステムコンポーネントを検証するのに使用できるブート証明書を選択するように提示する（ブロック４０１）。ユーザが所望のブート証明書を選択すると、ブートローダは、ブートブロックおよび選択されたブート証明書に基づいて、検証済みオペレーティングシステムのアイデンティティを作成する（ブロック４０３）。ロードされる各コンポーネントは、そのコンポーネント証明書をブート証明書の１つと照合することによって検証される（ブロック４０５）。検証プロセスでは、コンポーネント証明書の署名（ブロック４０７）、コンポーネント証明書の満了日（ブロック４０９）、および廃棄リスト（ブロック４１１）をチェックして、コンポーネントがロードできるかどうかを判定する。コンポーネント証明書が３つのテストすべてに合格した場合、すなわち、ブート規則を満たしている場合に、対応するコンポーネントがロードされる（ブロック４１３）。
【００４５】
コンポーネント証明書がブート規則の１つを満たしていない場合、ブートローダはユーザに対して、対応するコンポーネントのローディング選択を提示し、未検証のオペレーティングシステムにブートするか、またはそのコンポーネントをロードしない（ブロック４１５）。コンポーネントが必要であれば、ブートローダは、そのオペレーティングシステムのアイデンティティを、未検証オペレーティングシステムであることを示す値に設定し（ブロック４１７）、コンポーネントをロードする（ブロック４１３）。ユーザがコンポーネントをロードしないことを選択すると、検証済みアイデンティティは保存される。
【００４６】
ブートプロセスは、すべてのコンポーネントがロードされるまで、ブート規則に従って進められる（ブロック４１９）。
【００４７】
オペレーティングシステムのブートが完了したときに、１つ以上のコンポーネントが検証できていない場合、図５および６にそれぞれ示されているように、有効なコンポーネント証明書または更新済みコンポーネントのいずれかが取得できる機会がユーザに与えられる。
【００４８】
コンポーネント証明書が満了しており、ユーザが新しい証明書を取得することを選択した場合（図５のブロック５０１）、オペレーティングシステムは、満了した証明書に署名したブート機関に対して新しいコンポーネント証明書を要求する（ブロック５０３）。新しいコンポーネント証明書を受け取ると、後続のブートで使用するために、満了した証明書の代わりに格納される（ブロック５０５）。
【００４９】
コンポーネントのバージョンが廃棄リストに掲載されており、ユーザが更新済みバージョンの取得を選択した場合（図６のブロック６０１）、オペレーティングシステムは、コンポーネントに関連付けられたダウンロードサイトに対して更新済みバージョンを要求する（ブロック６０３）。一実施形態では、サイトのＵＲＬが廃棄リストに格納されている。更新済みバージョンの新しいコンポーネント証明書もダウンロードされる。更新済みコンポーネントの証明書および新しいコンポーネントの証明書は、次回ブート時の検証およびロードのために格納される（ブロック６０５）。
【００５０】
図７Ａおよび７Ｂは、プロバイダにコンテンツを要求する際に、加入者コンピュータが実行するプロセスを示す図である。加入者コンピュータは、プロバイダに要求メッセージを送り（ブロック７０１）、応答でチャレンジｎｏｎｃｅを受け取る（ブロック７０３）。加入者コンピュータは、ブート証明書、オペレーティングシステムアイデンティティ、およびｎｏｎｃｅを含む認証メッセージを、プロバイダに返送する（ブロック７０５）。
【００５１】
プロバイダは、ブート証明書およびオペレーティングシステムアイデンティティに基づいてオペレーティングシステムを信用した場合（ブロック７０７）、加入者コンピュータにコンテンツをダウンロードし（ブロック７０９）、加入者コンピュータは、このオペレーティングシステムアイデンティティに基づいて、パーマネント記憶装置上でコンテンツを安全に保護する（ブロック７１１）。
【００５２】
プロバイダが、コンポーネントを検証するのに使用されるブート証明書が満了日を過ぎていると判断した場合、加入者コンピュータはユーザに対して、新しいブート証明書を取得する機会を提示する（ブロック７１３）。加入者コンピュータは、対応するブート機関に対して新しいブート証明書を要求し（ブロック７１５）、古いバージョンを上書きせずに新しいブート証明書を格納する（ブロック７１７）。
【００５３】
現行のオペレーティングシステムは、新しいブート証明書を発行したブート機関によって署名されたそれぞれのコンポーネント証明書を検証することによって、新しいブート証明書によって定義されたオペレーティングシステムがブートするかどうかを判定する（ブロック７１９）。新しいブート証明書と照合した際に、１つ以上のコンポーネント証明書が満了しているため（ブロック７３５）、あるいは、１つ以上のコンポーネントが新しいブート証明書に関連付けられた廃棄リストに掲載されているバージョンであるため（ブロック７３７）に、新しいオペレーティングシステムが不合格になる場合がある。新しいコンポーネント証明書は、図５に関連して上述したプロセスを使用して取得され、更新済みコンポーネントは、図６に関連して上述したプロセスを使用して取得される。
【００５４】
現行のオペレーティングシステムは、新しいオペレーティングシステムがブートされると判断した場合、新しいブートコンポーネントに基づいて新しいオペレーティングシステムアイデンティティを作成する（ブロック７２１）。それぞれのオペレーティングシステムアイデンティティは関連付けられたブートドメインにある秘密情報を制御するので、新しいオペレーティングシステムアイデンティティに対して新しいブートドメインを作成しなければならない。それぞれの秘密情報は、新しいブートドメインの一部となるかどうかを判定するために評価される（ブロック７２３）。新しいブートドメインに関する秘密情報の選択は、新しいブート証明書を現行のブート証明書としてブート機関から取得すること（ブロック７２５）、新しいブート証明書を現行のブート証明書の後に発行すること（ブロック７２７）、並びに、コンテンツが新しいブート証明書の発行日以前に満了しないこと（ブロック７２９）という、３つの規則で管理される。資格付与された秘密情報が現行のオペレーティングシステムアイデンティティを使用して開封（unseal）され、コンテンツのコピーが作成され、そのコピーが新しいオペレーティングシステムアイデンティティを使用して再度密封（re-seal）される（ブロック７３１）。このプロセスは、適切な秘密情報がすべて新しいブートドメイン内に密封（seal）されるまで続行する（ブロック７３３）。特定のブート証明書の組合せの下で次に加入者コンピュータがブートされたときに、新しいブート証明書が有効となり、新しいブートドメイン内の秘密情報にアクセスできるようになる。当業者であれば、この手順が通常のオペレーティングシステム更新プロセスの一部として自動化できるものであることを、容易に理解されよう。
【００５５】
一実施形態では、古いブートドメイン内の秘密情報は、新しいブート証明書の下で最初にブートが成功した時点で削除される。代替実施形態では、満了となったコンテンツだけが削除される。
【００５６】
以上、本発明の例示的実施形態のクライアントによって実行される特定のメソッドについて説明した。クライアントコンピュータによって実行されるメソッドは、４００〜４１７、５０１〜５０５、６０１〜６０５、および７０１〜７３７のすべての行為を含む流れ図を参照しながら示した。
【００５７】
１．Ｍｉｃｒｏｓｏｆｔ（登録商標）「ＷＩＮＤＯＷＳ（登録商標）」での実施
この詳細な説明のセクションでは、本発明の特定の実施について、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｃｏｒｐｏｒａｔｉｏｎのオペレーティングシステムである「ＷＩＮＤＯＷＳ（登録商標）」ファミリに関して説明する。Ｍｉｃｒｏｓｏｆｔ（登録商標）は、様々なバージョンの「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムのブートブロックに関するブート証明書およびコンポーネント証明書を発行することで、ブート機関としての役割を果たす。「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムのブートマネージャおよびブートローダは、前のセクションで説明したメソッドに従って動作するように拡張される。「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムの実施で使用するためのブート証明書およびコンポーネント証明書の例示的実施形態は、それぞれ、図８Ａおよび９に示されている。廃棄リストエントリの例示的実施形態は、図８Ｂに示されている。追加の証明書、時間証明書の例示的実施形態は、図１０に示されている。
【００５８】
初めに図８Ａを見ると、ブート証明書８００の一実施形態には、５つの定数フィールドと３つのオプションフィールドが含まれる。定数フィールドには、ブート機関の識別子８０１、証明書の発行日８０２、証明書のダイジェスト８０３、ブート機関の公開鍵８０４、および証明書８００を発行したブート機関、すなわちフィールド８０１で識別されたブート機関のデジタル署名８０８が含まれる。公開鍵８０４は、ブート証明書８００上のデジタル署名８０８を検証する場合、並びに同一のブート機関によって署名されたコンポーネント証明書を検証する場合に使用される。
【００５９】
一実施形態では、ブート証明書８００にはブート証明書の満了日８０５が含まれる。「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムは、この満了日８０５を使用して、コンテンツプロバイダからの通知がなくとも、新しいブート証明書が必要であるときを判定する。
【００６０】
代替実施形態では、ブート証明書８００には廃棄リスト８０６が含まれる。廃棄リストの機能については前のセクションで説明した。廃棄リスト８０６のエントリの例示的実施形態が、図８Ｂに示されている。各エントリ８１０には、廃棄されたコンポーネントの名前およびバージョン８１１、廃棄されたコンポーネントの暗号ダイジェスト８１２、並びにコンポーネントの更新済みバージョンを含むダウンロードサイトのＵＲＬ８１３が含まれる。
【００６１】
他の実施形態では、ブート証明書８００に、フィールド８０１によって識別されたブート機関が署名した各コンポーネントをロードする前に、ブートプロセスによって実行されるコマンドスクリプト形式のブート規則８０７が含まれる。他の代替実施形態では、ブート規則８０７は一連のオペレーティングシステムコマンドである。
【００６２】
図９に示されるコンポーネント証明書の例示的実施形態は、「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムにロードするためのコンポーネントを保証するすべてのブート機関によって実施される。コンポーネント証明書９００には、ブート機関のアイデンティティ９０１、対応するコンポーネントの名前およびバージョン９０２、コンポーネントのダイジェスト９０３、コンポーネント証明書の発行日９０４、証明書の満了日９０４、およびブート機関のデジタル署名９０６が含まれる。ブート機関のブート証明書８００にある公開鍵は、コンポーネント証明書のデジタル署名９０６を検証する際に使用される。
【００６３】
ブート証明書８００に廃棄リスト８０６が含まれる場合、「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムは、コンポーネント証明書にある名前およびバージョン９０２並びにダイジェスト９０３と、廃棄リスト８０６にあるそれぞれのエントリ８１０とを照合して、コンポーネントが廃棄されたものかどうかを判定する。コンポーネントが廃棄されている場合、ユーザが選択したときに、エントリ８１０にあるＵＲＬアドレスから新しいバージョンが取得される。
【００６４】
「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムの実施では、コンテンツの時間制限をブート証明書のみを使用した場合に可能な期間よりも短く設定することができる。図１０に示した時間証明１０００の例示的実施形態には、ブート証明書８００と同じ定数フィールドが含まれるが、時間証明書には発行日および発行時間１００２が含まれる点は異なっている。時間証明書１０００は、ブート証明書と共にオペレーティングシステムアイデンティティに折り込まれ、認証メッセージの一部としてコンテンツプロバイダに送信される。時間証明書１０００を使用することは、発行日および発行時間１００２より後の日付および時間にコンピュータがブートされたことを、「ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムが保証するのと等価である。
【００６５】
コンテンツプロバイダは、すぐに満了してしまうコンテンツをダウンロードする前に、現行の時間証明書があれば、それが古すぎるかどうかを判定する。古すぎる場合、または現行の時間証明書がない場合、加入者コンピュータは新しい時間証明書を獲得し、新しい時間証明書を含むオペレーティングシステムアイデンティティの下でリブートしなければならない。時間証明書はオペレーティングシステムアイデンティティの一部であるため、古いアイデンティティの下で密封された秘密情報は、ブート証明書に関して前のセクションで説明したように、新しいブートドメインにコピーするために評価しなければならない。この場合、既存のコンテンツの満了日は、時間証明書の発行日および発行時間に基づいて決定される。さらに、新しいオペレーティングシステムアイデンティティが有効になった時点で、満了済みのコンテンツは削除される。
【００６６】
結論
以上、クライアントのブートドメインおよびブート規則について説明した。本明細書では、特定の実施形態について図示および説明してきたが、当業者であれば、図示された特定の実施形態が、同じ目的を達成するように計算された任意の配置構成に置き換えられることを理解されよう。
【００６７】
例えば、当業者であれば、任意の組織がブート機関としての役割を果たせることを理解されよう。どのブート機関を信用するかは、それぞれ個々のコンテンツプロバイダが決めることである。さらに、当業者であれば、ブート証明書のバージョンを変更するには、ブートドメイン内のすべての秘密情報を開封し、再度密封しなければならないことから、コンポーネント証明書の有効期間が典型的にはブート証明書のそれよりも短くなっていることを理解されよう。
【００６８】
さらに、本発明は、コンピュータの電源が投入された結果としてオペレーティングシステムをロードするという点に関して説明してきたが、当業者であれば、本発明が、既に実行中のオペレーティングシステムの制御下でオペレーティングシステムをロードするか、または未検証のオペレーティングシステムを実行中のコンピュータ上にある保護されたアドレス領域にオペレーティングシステムをロードするためにも使用できるものであることを理解されよう。
【００６９】
本明細書で使用された専門用語は、コンピュータを機能させるために異なるソフトウェアコンポーネントをロードしなければならないすべてのオペレーティングシステム環境を含むことを意味するものである。
【図１Ａ】
0004550147.tif 000002
【図１Ｂ】
0004550147.tif 000003
【図２】
0004550147.tif 000004
【図３】
0004550147.tif 000005
【図４】
0004550147.tif 000006
【図５】
0004550147.tif 000007
【図６】
0004550147.tif 000008
【図７Ａ】
0004550147.tif 000009
【図７Ｂ】
0004550147.tif 000010
【図８Ａ】
0004550147.tif 000011
【図８Ｂ】
0004550147.tif 000012
【図９】
0004550147.tif 000013
【図１０】
0004550147.tif 000014