(57)【要約】  本自動更新機構は、信頼される環境をサポートする更新を定期的にチェックするための方法を提供する。定期的チェック中、推奨される更新が存在する場合、更新サービスからの指示が、受信される。指示を受信すると、新たな取り消しリストが、更新サービスからダウンロードされて、保留中の取り消しリストとして保存される。すると、その保留中の取り消しリストは、保護されたコンテンツが、コンピューティングデバイス上の現在の保護レベルによって提供される保護よりも高いレベルの保護をコンピューティングデバイス上で要求する際に、オンデマンド更新のために利用可能である。【選択図】図９
2009503648.tif 000002
【特許請求の範囲】
【請求項１】
新たな取り消しリストが、更新サービスにおいて発行されているかどうかを定期的にチェックするステップと、
前記定期的チェック中、前記新たな取り消しリストに関する推奨される更新が存在するという指示を前記更新サービスから受信すると、前記新たな取り消しリストをダウンロードして、前記新たな取り消しリストを保留中の取り消しリストとして保存し、前記保留中の取り消しリストは、保護されたコンテンツが、コンピューティングデバイス上の現在の保護レベルによって提供される保護よりも高いレベルの保護を、該コンピューティングデバイス上で要求する際に、オンデマンド更新のために利用可能であるステップとを含むコンピュータによって実施される方法。
【請求項２】
定期的にチェックするステップは、前記コンピューティングデバイスが再起動されると、実行される請求項１に記載のコンピュータによって実施される方法。
【請求項３】
前記新たな取り消しリストは、現在の保留中の取り消しリストと入れ替わる請求項１に記載のコンピュータによって実施される方法。
【請求項４】
前記保留中の取り消しリストは、それまでにダウンロードされた複数の保留中の取り消しリストの１つとして保存される請求項１に記載のコンピュータによって実施される方法。
【請求項５】
前記更新サービスは、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）更新サービスを含む請求項１に記載のコンピュータによって実施される方法。
【請求項６】
前記指示を受信すると、前記新たな取り消しリスト内で取り消されたコンポーネントとしてリストアップされる各コンポーネントの更新されたバージョンをダウンロードするステップをさらに含む請求項１に記載のコンピュータによって実施される方法。
【請求項７】
前記取り消しリストは、Ｃａｒｄｅａスタイルの証明書取り消しリスト（ＣＲＬ）を含み、それぞれの取り消されたコンポーネントは、前記更新されたバージョンをダウンロードすべき前記更新サービス上のロケーションを特定するのに使用される証明書ハッシュで特定される請求項６に記載のコンピュータによって実施される方法。
【請求項８】
前記取り消しリストは、Ａｐｐ  証明書取り消しリスト（ＣＲＬ）を含み、それぞれの取り消されたコンポーネントは、前記更新されたバージョンをダウンロードすべき前記更新サービス上のロケーションを特定するのに使用される公開鍵で特定される請求項６に記載のコンピュータによって実施される方法。
【請求項９】
前記取り消されたコンポーネントは、前記更新バージョンのインストールの起点となる前記更新サービス上のロケーションを特定するのに使用されるＧＵＩＤによって特定される請求項６に記載のコンピュータによって実施される方法。
【請求項１０】
前記取り消されたコンポーネントは、前記取り消されたコンポーネントのハッシュによって特定される請求項６に記載のコンピュータによって実施される方法。
【請求項１１】
前記取り消されたコンポーネントは、前記取り消されたコンポーネントの証明書によって特定される請求項６に記載のコンピュータによって実施される方法。
【請求項１２】
前記更新サービスは、メディアアプリケーションに関連するカテゴリを提供し、新たな取り消しリストは、前記カテゴリ内で発行される請求項１に記載のコンピュータによって実施される方法。
【請求項１３】
複数のパッケージが、前記カテゴリ内で発行され、各パッケージは、前記新たな取り消しリストの１つに関連し、前記関連する取り消しリストの中で取り消されたものとしてリストアップされているコンポーネントの更新されたバージョンを含む請求項１２に記載のコンピュータによって実施される方法。
【請求項１４】
新たな取り消しリストが、更新サービスにおいて発行されているかどうかを、ネットワークを介して定期的にチェックするように構成された自動更新サービスと、
前記更新サービスから前記新たな取り消しリストをダウンロードした後、前記新たな取り消しリストをコンピューティングデバイスにインストールするように構成されたインストーラコンポーネントと、
前記新たな取り消しリストによって指定された保護レベルまでコンピューティングデバイスを、保護されたコンテンツの処理が、前記保護レベルを要求する場合に、更新するために利用可能な、保留中の取り消しリストとして、前記インストールされた新たな取り消しリストを格納するように構成された格納コンポーネントとを含むコンピュータ実行可能コンポーネントを有するコンピュータ可読記憶メディア。
【請求項１５】
前記自動更新サービスは、インターネットを介してサーバ更新サービスと通信するように構成される請求項１４に記載のコンピュータ可読記憶メディア。
【請求項１６】
前記サーバ更新サービスは、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）更新サービスを含む請求項１５に記載のコンピュータ可読記憶メディア。
【請求項１７】
前記格納コンポーネントは、対応する保護レベルまで前記コンピューティングデバイスを更新するために利用可能な複数の保留中の取り消しリストの１つとして、前記インストールされた新たな取り消しリストを格納するようにさらに構成される請求項１４に記載のコンピュータ可読記憶メディア。
【請求項１８】
プロセッサと、
複数のコンピュータ実行可能コンポーネントがロードされたメモリとを含み、前記複数のコンポーネントは、
新たな取り消しリストが、更新サービスにおいて発行されているかどうかを、ネットワークを介して定期的にチェックするように構成された自動更新サービスと、
前記更新サービスから前記新たな取り消しリストをダウンロードした後、前記新たな取り消しリストをコンピューティングデバイスにインストールするように構成されたインストーラコンポーネントと、
前記新たな取り消しリストによって指定された保護レベルまでコンピューティングデバイスを、保護されたコンテンツの処理が、前記保護レベルを要求する場合に、更新するために利用可能な、保留中の取り消しリストとして、前記インストールされた新たな取り消しリストを格納するように構成された格納コンポーネントとを含むコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
過去には、様々なタイプのコンテンツが、様々なタイプのメディアを使用して流通させられていた。例えば、音楽は、ＣＤ（コンパクトディスク）上で流通させられ、ＣＤプレーヤを使用して再生された。映画は、ＶＨＳ（ビデオホームシステム）テープ上、またはＤＶＤ（デジタルバーサタイルディスク）上で流通させられ、それぞれ、ＶＣＲ（ビデオカセットレコーダ）またはＤＶＤプレーヤを使用して再生された。ＣＤプレーヤ、ＶＣＲ、およびＤＶＤプレーヤは、或る特定のタイプのメディアのために設計された家庭用電子機器と分類された。これらの家庭用電子機器は、追加のソフトウェアがロードされることが可能でない閉じたシステムであった。したがって、これらの閉じたシステムは、コンテンツを許可なく複製することを許さなかった。
【０００２】
しかし、今日、コンピューティングデバイスは、通常、デバイス内部に組み込まれたＣＤ／ＤＶＤプレーヤ（すなわち、ドライブ）、およびその他のメディアプレーヤを有する。このため、コンピューティングデバイスは、家庭用電子機器が再生できるのと同一のＣＤまたはＤＶＤを再生することができる。加えて、コンピューティングデバイスは、開かれたプラットフォームとして設計されているため、追加のソフトウェアが、コンピューティングデバイスにロードされることが可能である。この追加のソフトウェアは、著作権で保護されているコンテンツを複製すること、および／またはそのコンテンツを、インターネットを介して他の人々と共有することを可能にする可能性がある。したがって、コンテンツの所有者は、コンピューティングデバイスが所有者のコンテンツを再生するのを許すことを躊躇する。
【０００３】
コンテンツ所有者の懸念に対応するため、コンピューティングデバイス上で処理されるコンテンツ（以降、デジタルメディアと呼ぶ）を保護し、コンピューティングデバイスを、デジタルメディアの安全なプレーヤとして推進するように設計された、いくつかの保護スキームが、存在してきた。１つの保護スキームは、ＭＰＡＡ（アメリカ映画協会）によって義務付けられた。この保護スキームは、ＤＶＤの流通を保護するＣＳＳ（Ｃｏｎｔｅｎｔ  Ｓｃｒａｍｂｌｉｎｇ  Ｓｙｓｔｅｍ）と呼ばれる暗号化アルゴリズムを使用した。ＤＶＤプレーヤは、映画コンテンツを解読する備えを有していたが、解読されたコンテンツを複製する、または格納することはできなかった。しかし、コンピュータハッカが、ＣＳＳを解読するコンピュータプログラムを開発した。次に、そのコンピュータプログラムが、インターネット上で公開された。このコンピュータプログラムを使用すると、コンピューティングデバイス内にＤＶＤドライブを有するエンドユーザは、映画コンテンツを解読して、標準のファイルフォーマットで格納することができた。すると、そのファイルは、他のコンピューティングデバイス上の他のユーザと容易に共有されることが可能であり、著作権保護の抜け道がつくられた。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コンピューティングデバイスは、開かれたシステムであるため、一部の個人は、デジタルメディアを保護するように設計された保護スキームを「破る」ことを絶えず試みる。デジタルメディアを絶えず保護するため、これらの保護スキームは、絶えず更新される必要がある。さもなければ、コンテンツ所有者が、或るコンテンツがコンピューティングデバイス上で処理されることを許さないというリスクが、存在する。絶え間ない更新、および或るコンテンツへのアクセスを有さないというリスクは、エンドユーザに影響を及ぼし、違法な行為を全く実行していないエンドユーザにさえ影響を及ぼす。したがって、保護スキームに何らかの仕方で違反が行われた場合、罪のないエンドユーザに不必要に影響を及ぼすことのない機構の必要性が、存在する。
【課題を解決するための手段】
【０００５】
本自動更新機構は、信頼される環境をサポートするように更新を定期的にチェックするための方法を提供する。その定期的チェック中、推奨される更新が存在するかどうかの、更新サービスからの指示が、受信される。指示が受信されると、新たな取り消しリストが、更新サービスからダウンロードされて、保留中の取り消しリストとして保存される。すると、その保留中の取り消しリストは、保護されたコンテンツが、或るコンピューティングデバイス上の現在の保護レベルによって提供される保護よりも高い保護レベルを、そのコンピューティングデバイス上で要求する場合、オンデマンド更新のために利用可能である。
【０００６】
この概略は、詳細な説明において後段でさらに説明される一群の概念の選択を紹介するために与えられる。この概略は、主張する主題の重要な特徴、または不可欠な特徴を明らかにすることは意図しておらず、主張する主題の範囲を決定する助けとして使用されることも意図していない。
【０００７】
限定的ではなく、網羅的ではない実施形態を、以下の図を参照して説明する。図では、特に明記しない限り、様々な図のすべてにおいて、同様の符号は、同様の部分を参照する。
【発明を実施するための最良の形態】
【０００８】
以下の説明は、コンテンツ保護スキームをサポートしてコンピュータ可読コンポーネントを更新するための自動更新機構を対象とする。自動更新機構は、エンドユーザの使いやすさの必要性と、コンテンツプロバイダのコンテンツ保護の必要性とのバランスをとる。自動更新機構は、信頼に基づくコンテンツ保護スキームと連携して動作する。信頼は、コンポーネントにコンテンツポリシーを順守させて、コンポーネントが、コンテンツプロバイダによって許可されたアクションを超えるアクションを全く実行しないことを確実にすること、およびコンテンツ所有者の保護されたコンテンツへの不正なアクセスから保護する環境を作ることにより、確立される。その後、自動更新機構は、根拠がある場合、コンピュータ可読コンポーネントの信頼を取り消し、その取り消されたコンピュータ可読コンポーネントの信頼性を自動的に再確立しようと試みる。自動更新機構が、自動更新機構の機能を実行する仕方は、エンドユーザが、特に、エクスプロイトが発見され、脆弱性が修正された後にリリースされたコンテンツに関して、長い期間にわたって保護スキームの脆弱性を悪用しつづけるのを防止する。これは、エンドユーザのデジタルメディアを正当な仕方で使用するエンドユーザに最小限の影響しか及ぼさずに、達せられる。次に、様々なコンピューティング環境において機能する自動更新概念の具体的な実施形態について説明する。
【０００９】
図１は、本明細書で説明される自動更新技術および自動更新機構を実施するのに使用されることが可能な例示的なコンピューティングデバイスである。システムは、コンピューティングデバイス１００のようなコンピューティングデバイスを含む。非常に基本的な構成では、コンピューティングデバイス１００は、通常、少なくとも１つの処理装置１０２と、システムメモリ１０４とを含む。コンピューティングデバイスの厳密な構成およびタイプに依存して、システムメモリ１０４は、揮発性（ＲＡＭのような）、不揮発性（ＲＯＭ、フラッシュメモリなどのような）、またはその２つの何らかの組合せであることが可能である。システムメモリ１０４は、通常、オペレーティングシステム１０６と、１つまたは複数のプログラムモジュール１０８とを含み、プログラムデータ１１０を含むことが可能である。本自動更新機構の場合、オペレーティングシステム１０６は、コンテンツ保護スキームを実施するための１つまたは複数のコンポーネント１４０と、自動更新機構を実施するための１つまたは複数のコンポーネント１４２とを含む。後段で説明するとおり、自動更新機構は、自動更新機構の機能を実行する際、コンテンツ保護スキームと対話する。以上の基本的な構成が、破線１１２内のコンポーネントによって図１に示される。
【００１０】
コンピューティングデバイス１００は、さらなるフィーチャまたは機能を有することが可能である。例えば、コンピューティングデバイス１００は、例えば、磁気ディスク、光ディスク、またはテープなどの、さらなる記憶装置（リムーバブルな記憶装置および／またはリムーバブルでない記憶装置）も含むことが可能である。そのようなさらなるストレージが、リムーバブルなストレージ１２０およびリムーバブルでないストレージ１２２によって図１に示される。コンピュータ記憶メディアには、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータなどの情報を格納するために任意の方法または技術で実施される揮発性メディアおよび不揮発性メディア、リムーバブルなメディアおよびリムーバブルでないメディアが含まれることが可能である。システムメモリ１０４、リムーバブルなストレージ１２０、およびリムーバブルでないストレージ１２２はすべて、コンピュータ記憶メディアの例である。このため、コンピュータ記憶メディアには、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタルバーサタイルディスク）、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは所望される情報を格納するのに使用されることが可能であり、コンピューティングデバイス１００によってアクセスされることが可能な他の任意のメディアが含まれるが、以上には限定されない。任意のそのようなコンピュータ記憶メディアが、デバイス１００の一部であることが可能である。また、コンピューティングデバイス１００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス１２４も有することが可能である。また、ディスプレイ、スピーカ、プリンタなどの出力デバイス１２６も、含められることが可能である。これらのデバイスは、当技術分野でよく知られており、本明細書で詳細に説明する必要はない。
【００１１】
また、コンピューティングデバイス１００は、デバイスが、ネットワークなどを介して、他のコンピューティングデバイス１３０と通信することを可能にする通信接続１２８も含むことが可能である。通信接続１２８は、通信メディアの一例である。通信メディアは、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構で、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実体化することが可能であり、通信メディアには、あらゆる情報配信メディアが含まれる。「変調されたデータ信号」という用語は、信号内に情報を符号化するような仕方で特性の１つまたは複数が設定または変更されている信号を意味する。例として、限定としてではなく、通信メディアには、有線ネットワークまたは直接有線接続などの有線メディア、ならびに音響メディア、ＲＦメディア、赤外線メディア、およびその他の無線メディアなどの無線メディアが含まれる。コンピュータ可読メディアは、コンピュータによってアクセスされることが可能な任意の利用可能なメディアであることが可能である。例として、限定としてではなく、コンピュータ可読メディアは、「コンピュータ記憶メディア」および「通信メディア」を含むことが可能である。
【００１２】
様々なモジュールおよび技術が、１つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で、本明細書において説明されることが可能である。一般に、プログラムモジュールには、特定のタスクを実行するため、または特定の抽象データ型を実装するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。これらのプログラムモジュール、および類似物は、ネイティブコードとして実行されてもよく、あるいは、仮想マシン環境、または他のジャストインタイムコンパイル実行環境などにおいて、ダウンロードされて、実行されてもよい。通常、プログラムモジュールの機能は、様々な実施形態において、所望に応じて、組み合わせられても、分散されてもよい。これらのモジュールおよび技術の実施形態は、何らかの形態のコンピュータ可読メディア上に格納されても、何らかの形態のコンピュータ可読メディアを介して伝送されてもよい。
【００１３】
図２は、本自動更新機構が対話して、図１に示されるコンピューティングデバイス内で処理されるコンテンツを保護することができる、コンテンツ保護スキームの一実施形態を示す。概要を述べると、本自動更新機構は、コンテンツにアクセスを有するコンピュータ可読コンポーネントの信頼性に基づき、コンテンツに関するセキュリティを実施する任意のコンテンツ保護スキームと対話する。コンテンツ保護スキームの様々な実施形態は、様々な仕方で、コンピュータ可読コンポーネントに関する信頼を確立することができる。一実施形態では、信頼は、「信頼される」バイナリに「信頼される」権限によって署名が行われる、コード署名技術に基づくことが可能である。信頼が確立されると、本自動更新機構は、信頼の根拠がないコンピュータ可読コンポーネントに関する信頼を取り消すように動作する。加えて、自動更新機構は、取り消されたコンピュータ可読コンポーネントの信頼を再確立するように試みる。これを行う際、本自動更新機構は、コンテンツ保護スキームと対話する。以下の説明は、コンテンツ保護スキームの一実施形態を説明し、次いで、このコンテンツ保護スキームと自動更新機構との間の対話を説明する。
【００１４】
前述したとおり、図２は、コンテンツ保護スキームに関する一実施形態を示す。コンテンツ保護スキームは、デジタルメディアが、関連するライセンス契約の対象となって処理されることが可能な、保護された環境を提供する。保護された環境は、システム上で実行されるソフトウェアコンポーネントが、保護されたコンテンツに、そのようなコンテンツが処理されるにつれてアクセスする能力を制限すること、メモリ空間および実行空間へのアクセスを制限することなどにより、ライセンス契約に違反しようと試みる攻撃を阻止しようと試みる。このため、コンテンツが処理されることが可能なコンピューティングデバイスの数を制限するライセンス契約、コンテンツが再生されることが可能な回数を制限するライセンス契約、コンテンツが複製されることが可能な回数を制限するライセンス契約などが、実施されることが可能である。コンテンツ保護スキームは、デジタルメディアに保護された環境を提供しようと試みるため、保護された環境という用語は、保護スキームを指すのにも使用される。
【００１５】
概要を述べると、保護された環境は、ライセンス契約に違反しようと試みる外部攻撃に対する「壁」を提供する。保護された環境は、図１に示されるシステムメモリ１０４のユーザ・モード・メモリ空間２００とカーネルモードメモリ空間２０２の両方の中にメディアコンポーネントを含む。メディアコンポーネントは、保護される必要のあるコンテンツ（例えば、保護されたコンテンツ）を処理するように構成される。このため、メディアアプリケーションは、保護されたコンテンツを直接に扱うのではなく、遠隔制御（例えば、再生、巻き戻し、一時停止、ＣＤ−ＲＯＭへの書き込み）機能を提供するだけでよい。また、保護された環境は、保護されたコンテンツにアクセスすることができる、署名されたサードパーティコンポーネントのためのサポートも提供する。
【００１６】
これを実現するのに、保護された環境は、ユーザモード保護プロセス２２０内で実行されるメディアパイプライン２２２を提供する。保護されたプロセス２２０は、メディアアプリケーション２１２が実行されるシステムプロセス２１０とは別個である。より具体的には、これらのプロセス（例えば、システムプロセス２１０およびその他のプロセス２３０）において実行されるソフトウェアは、保護されたプロセス２２０にアクセスすることができない。メディアアプリケーション２１２は、保護される必要のないコンテンツを処理することができる。しかし、メディアアプリケーション２１２が、保護されたコンテンツを処理しようと試みる場合、メディアアプリケーションは、メディアパイプライン２２２と対話して、保護されたコンテンツを処理する。保護された環境が、コンピュータ可読コンポーネントが更新される必要があることに気付いた場合、コンテンツ・イネーブラ・インタフェース２２８が、使用される。簡単に述べると、図５に関連して後段で詳細に説明するとおり、コンテンツ・イネーブラ・インタフェースは、保護されたコンテンツを処理するためのアクション（例えば、取り消しリストを更新すること、ライセンスを獲得することなど）の１つを実行するのに必要とされる情報をカプセル化する。メディアパイプライン２２２は、保護されたコンテンツの処理を実行する。
【００１７】
加えて、保護された環境は、カーネル・モード・コンポーネントＰＥＡｕｔｈ２４２を含む。概要を述べると、ＰＥＡｕｔｈ２４２は、ロードされたコンポーネント（例えば、ｂａｄ．ｅｘｅ２３２、他のｐｌｕｇｉｎ．ｄｌｌ２１４、およびｂａｄＤｒｉｖｅｒ．ｓｙｓ２４４）のそれぞれが、信頼されるコンポーネントであるかどうかをチェックすることを担う。カーネル・モード２０２におけるコンポーネントの１つが、信頼されない場合（例えば、ｂａｄＤｒｉｖｅｒ．ｓｙｓ２４４）、ＰＥＡｕｔｈ２４２は、保護されたコンテンツが処理されることを許さない。
【００１８】
ＰＥＡｕｔｈ２４２は、コンピュータ可読コンポーネントが、信頼されるかどうかを、コンポーネントに関連する署名されたバイナリ、署名されたバイナリ上の証明書、グローバル取り消しリスト（図示せず）などに基づいて判定することができる。コンピュータ可読コンポーネントが、このチェックに合格であった場合、ＰＥＡｕｔｈは、コンピュータ可読コンポーネントがロードされることを許す。しかし、コンピュータ可読コンポーネントが、このチェックに不合格であった場合、ＰＥＡｕｔｈは、ステータスをメディアアプリケーションに提供する。このステータスは、インタフェース２２８を介して提供される。次に、アプリケーションは、ステータスに関するユーザインタフェースをエンドユーザに提供するように構成される。また、メディアアプリケーションは、インタフェース２２８を介して更新を要求する。ＰＥＡｕｔｈ２４２は、保護されたプロセスが作成されるといつでも通知を受け、さらに、コンポーネントが保護されたプロセスにロードされるといつでも通知を受ける。ＰＥＡｕｔｈが、コンピュータ可読コンポーネントをロードするプロセスにある場合、ＰＥＡｕｔｈは、コンピュータ可読コンポーネントに関連するファイルをチェックして、そのファイルが、グローバル取り消しリストの中で取り消されたものとしてリストアップされているかどうかを調べる。
【００１９】
加えて、コンポーネント自体が、チェックされて、コンポーネントが、グローバル取り消しリストの中でリストアップされているかどうかが調べられることが可能である。コンポーネントが、グローバル取り消しリスト内で取り消されている場合、そのコンポーネントを更新するためのプロセスが、図８に関連して後段で説明するとおり、実行される。簡単に述べると、図３に関連して後段で説明するとおり、グローバル取り消しリストが、信頼されないアイテム（例えば、コンポーネント、証明書）を特定する。いずれのアイテムをグローバル取り消しリスト内に含めるかの決定は、個人のチームによって実行されることが可能である。このチームは、保護されたコンテンツの所有者、インターネット、および／または他の源から受け取られた情報を分析することを担う。この情報に基づき、チームは、疑わしいアイテムが、保護された環境に違反するかどうかを判定し、そのアイテムが、保護された環境にどのように違反するかを判定する。次に、この分析の結果が、図３に関連して後段で説明するグローバル取り消しリストに反映される。
【００２０】
図３は、本自動更新機構によって使用されるグローバル取り消しリストに関する例示的なフォーマット３００を示す図である。一般に、グローバル取り消しリストは、信頼情報が、不正操作できない、容易に更新可能なフォーマットで格納されることを可能にする。一実施形態では、フォーマット３００は、以下のいくつかのセクションを含む。すなわち、コアセクション３０２、拡張可能セクション３０４、更新セクション３０６、および署名セクション３０８である。セクション３０２〜３０８の構成は、効率的なルックアップを提供するように最適化されることが可能である。例えば、コアセクション３０２は、情報に断絶が全く生じることなく、並べ替えられることが可能であるように編成されることが可能である。これにより、カーネルコンポーネントが、コアセクション３０２をメモリに直接にロードすることが可能になる。このため、カーネルコンポーネントは、情報を解析してからでなくても、情報を使用することができる。グローバル取り消しリストは、リストの真正性を確実にするために、証明権限によってデジタル署名されることが可能である。フォーマット３００は、グローバル取り消しリストに関する１つの例示的なフォーマットである。他のフォーマットは、対応する他のサブセクションを伴って、より多くのセクションを有しても、より少ないセクションを有してもよい。加えて、他のフォーマットが、異なる仕方で構成されてもよい。
【００２１】
コアセクション３０２は、以下のいくつかのサブセクションを含む。すなわち、ヘッダ３１０、カーネルコンポーネントの取り消しリスト３２０、ユーザ・モード・コンポーネントの取り消しリスト３２２、証明書の取り消しリスト３２４、および信頼されるルートのリスト３２６である。次に、これらのサブセクションのそれぞれを、より詳細に説明する。
【００２２】
ヘッダ３１０は、バージョン番号３１２、強制再起動パラメータ３１４、プロセス再スタートパラメータ３１６、および時刻パラメータ３１８を含むことが可能である。時刻パラメータ３１８は、グローバル取り消しリストが作成された時刻を格納する。バージョン番号３１２は、ＧＲＬ（グローバル取り消しリスト）のバージョンに関する番号を特定する。新たなグローバル取り消しリストが公開されるたびに、バージョン番号３１２は、変更される。バージョン番号３１２は、保護されたコンテンツを処理するコンピューティングシステムが、その保護されたコンテンツのために設定された制限を遵守することを確実にするのに使用される。例えば、コンピューティングシステムは、グローバル取り消しリストのバージョン＃５を使用して写真を見ていることが可能である。しかし、同一のコンピューティングシステムが、今度は、或る従量料金制の映画を再生することを所望する場合、その従量料金制の映画（すなわち、保護されたコンテンツ）は、コンピューティングデバイスが、グローバル取り消しリストの少なくともバージョン＃８を使用すべきことを指定する可能性がある。コンピューティングデバイスを更新し、コンピューティングデバイスをバージョン＃８で信頼させるためのプロセスを、図６〜１０に関連して後段で説明する。
【００２３】
強制再起動パラメータ３１４は、自動更新機構によって、コンピューティングデバイス上のエンドユーザに対するバージョン更新の影響を最小限に抑えるのに使用される。これは、そのバージョンに関する取り消しリスト３２０〜３２４への追加のいずれかが、ロードされた後に自らを隠すコンポーネントを取り消すかどうかを、強制再起動パラメータ３１４で示すことによって達せられる。例えば、或るコンポーネントが、「ロードされたモジュール」のリストから自らを削除すること、または別のモジュールにコードを挿入した後、自らをアンロードすることにより、自らを隠す可能性がある。このため、「隠す」とは、スキャン技術が、そのコンポーネントをロードされたものとして検出することができないことを指す。新たなグローバル取り消しリストが、自らを隠そうと試みるコンポーネントを全く取り消さない場合、自動更新機構は、コンピューティングデバイスを再起動することなしに、取り消しリストを更新することができる。取り消しリストを更新した後、自動更新機構は、コンピューティングデバイスの信頼ステータスが、今や、新たなバージョンにあることを保証されることが可能である。このシナリオでは、取り消しリスト３２０〜３２４のいずれかの中でリストアップされるコンポーネントの１つが、検出されない（すなわち、隠されていない）場合、自動更新機構は、コンポーネントがロードされなかったことを保証されることが可能である。
【００２４】
しかし、新たなグローバル取り消しリストが、ロードされた後に自らを隠そうと試みるコンポーネントを取り消した場合、自動更新機構は、更新の後でさえ、隠れたコンポーネントが、依然としてロードされたままではないという確信が得ることができない。したがって、隠れたコンポーネントを検出するのに再起動が、必要である。自らを隠すコンポーネントが、ユーザ・モード・コンポーネントである場合、そのコンポーネントは、再起動の後、ロードされることを阻止される。しかし、そのコンポーネントが、カーネル・モード・コンポーネントである場合、コンポーネントは、ロードされるが、保護された環境は、保護されたコンテンツが処理されることを許さない。
【００２５】
取り消しリスト３２０〜３２４の中でリストアップされる取り消しの多くは、フィーチャを正しく実施しないことによって偶然、違反を生じさせたコンポーネントを取り消すため、強制再起動パラメータ３１４は、コンピューティングデバイスが再起動される必要がある回数を最小限に抑える。これにより、コンピューティングデバイス上のエンドユーザへの悪影響が大幅に小さくされる。
【００２６】
一実施形態では、強制再起動パラメータ３１４は、カウンタとして実施される。このカウンタは、グローバル取り消しリストが、自らを隠そうと試みるコンポーネントを取り消すといつでも、更新される。カウンタを強制再起動パラメータとして使用することは、コンピューティングデバイスが、グローバル取り消しリストのいくつかのバージョンを飛ばした状況において役立つ。例えば、或るコンピューティングデバイスが、現在、グローバル取り消しリストのバージョン＃３を使用していることが可能である。しかし、そのコンピューティングデバイスが、或る特定の保護されたコンテンツを処理しようと試みると、その保護されたコンテンツに関連付けられた信頼契約により、そのコンピューティングデバイスが、グローバル取り消しリストのバージョン＃１０を使用している場合に限り、その保護されたコンテンツを処理することができることが規定されることが可能である。強制再起動パラメータ３１４が、イエス／ノー標識を使用して実施されている場合、コンピューティングデバイスは、バージョン＃１０レベルにおいて信頼を確立することに失敗する可能性がある。これは、バージョンの１つまたは複数（バージョン＃４〜＃９）が、強制再起動パラメータ３１４に関して「はい」を指定しているが、バージョン＃１０が、「いいえ」を指定している場合、生じる可能性がある。その他のグローバル取り消しリストの中の強制再起動パラメータ３１４について知ることなしには、自動更新機構は、再起動が必要とされていることに気付かない。再起動なしには、保護された環境には、依然として、取り消されたコンポーネントがロードされている。カウンタを使用することにより、新たなグローバル取り消しリストの中のカウンタの値が、前のグローバル取り消しリストの中のカウンタの値と容易に比較されることが可能である。すると、自動更新機構は、カウンタが相違する場合、再起動を強制することができる。
【００２７】
再スタートパラメータ３１６は、自動コンポーネント更新機構によって、コンピューティングデバイス上のエンドユーザへのバージョン更新の影響をさらに小さく抑えるのに使用されることが可能である。取り消しリスト３２０〜３２４の中で特定されるコンポーネントは、以下の３つのクラスに分類されることが可能である。すなわち、１）不正でないコンポーネント、２）不正なユーザ・モード・コンポーネント、および３）不正なカーネル・モード・コンポーネントである。第１のクラス、つまり、不正でないコンポーネントは、通常、コンポーネント内の或るフィーチャを安全な仕方で実施することに失敗することにより、偶然、出現する。したがって、これらのタイプのコンポーネントは、通常は、自らを隠そうと試みることはない。第２のクラス、および第３のクラスは、何らかのタイプの保護されたコンテンツに関連付けられた信頼契約に違反するように特別に書かれている。これらのタイプのコンポーネントは、不正であるため、ロードされた後、通常、自らを隠そうと試みる。
【００２８】
再スタートパラメータ３１６は、強制再起動パラメータ３１４と併せて使用されて、新たなグローバル取り消しリストのレベルにおいて信頼を確立するために、再起動が必要であるかどうか、保護されたプロセスの再スタートが必要であるかどうか、またはコンポーネントの更新が必要であるかどうかが識別されることが可能である。第１のクラス内のコンポーネントの場合、自動更新機構は、現在、ロードされている取り消されたコンポーネントのいずれかを更新することにより、新たなグローバル取り消しリストの要件を満たすことができる。第２のクラス内のコンポーネントの場合、自動更新機構は、それぞれの保護されたプロセスを再スタートすることにより、新たなグローバル取り消しリストの要件を満たすことができる。取り消された不正なユーザ・モード・コンポーネントは、保護されたプロセス内にあるため、保護されたプロセスが強制終了されると、不正なユーザ・モード・コンポーネントも、事実上、強制終了される。保護されたプロセスが再スタートされる際、更新されたグローバル取り消しリストの中でリストアップされた不正なユーザ・モード・コンポーネントは、ロードされることが防止される。第３のクラス内のコンポーネントの場合、自動更新機構は、強制再起動パラメータ３１４に関して前段で説明したとおり、コンピューティングデバイスを再起動することにより、新たなグローバル取り消しリストの要件を満たすことができる。
【００２９】
一実施形態では、再スタートパラメータ３１６は、カウンタとして実施されて、強制再起動パラメータ３１６と併せて使用されることが可能である。例えば、強制再起動パラメータが、コンピューティングデバイスを再起動することが必要ないことを示す場合、再スタートパラメータ３１６が、古い再スタートパラメータと比較されて、保護されたプロセスを再スタートすることが必要であるかどうかが判定されることが可能である。これにより、エンドユーザが、保護されたプロセスが再スタートされる間、その保護されたプロセスを必要としない他のアプリケーション（例えば、ワードプロセッサ、ゲーム）を実行しつづけることが可能になる。これにより、事実上、エンドユーザに対する影響が最小限に抑えられる一方で、コンピューティングデバイス上で実行される保護されたコンテンツに関する信頼レベルが、依然として維持される。
【００３０】
カーネル・モード・コンポーネントに関する取り消しリスト３２０、ユーザ・モード・コンポーネントに関する取り消しリスト３２２、および証明書に関する取り消しリスト３２４は、同様である。これらの取り消しリストは、取り消されるべきアイテムを識別するエントリを含む。アイテムは、ファイル、個別のコンピュータ可読コンポーネント、または証明書であることが可能である。ファイルは、いくつかのコンピュータ可読コンポーネントが格納されたＤＬＬ（ダイナミック・リンク・ライブラリ）または．ＥＸＥ（実行可能）ファイルであることが可能である。アイテムは、取り消されるべきユーザ・モード・バイナリまたはカーネル・モード・バイナリのハッシュ、または取り消されるべき証明書の公開鍵のハッシュなどの、一意識別子を使用して識別される。興味深いことに、グローバル取り消しリストの中で取り消されたものとして指定されたアイテムは、依然として、保護された環境の外で使用されることが可能である。グローバル取り消しリスト内のコンポーネントの識別は、保護された環境における信頼されるコンポーネントとしてのコンポーネントのステータスだけに影響を与える。
【００３１】
アイテムが、或る証明書を特定する場合、その証明権限によって証明されたコンピュータ可読コンポーネントが、取り消される。加えて、特定された証明書に至る信頼の連鎖のなかの証明書で証明されたコンピュータ可読コンポーネントもやはり、取り消される。信頼の連鎖は、ルート権限で止まるまで続く。これにより、ハッカが、漏洩した証明権限を使用して、不正なコンピュータ可読コンポーネントに署名することが防止される。
【００３２】
信頼されるルートセクション３２６は、信頼の連鎖が開始されることが可能なルート権限を特定する。したがって、コンピュータ可読コンポーネントが、信頼されるルートの１つとしてリストアップされていないルート権限によって証明されている場合、ＰＥＡｕｔｈは、そのコンポーネントをロードしない。これにより、ハッカが、不正なコンピュータ可読コンポーネントに署名するためのルート権限を作成することが防止される。
【００３３】
セクション３２０〜３２２において取り消されたアイテムに関するエントリは、通常、対応する更新セクション３３０〜３３２の中に更新エントリを有する。更新エントリは、更新ＧＵＩＤ（グローバル一意識別子）を含む。一実施形態では、更新ＧＵＩＤは、カテゴリ識別子を指定することが可能である。各サブセクションの中の更新エントリは、ハッシュ値によって並べ替えられることが可能である。コンポーネントを更新するための例示的なプロセスを、図８に関連して後段で説明する。
【００３４】
拡張可能セクション３０４は、下流のコンポーネントに関して信頼を確立する際に使用される拡張可能な取り消し情報を含むことが可能である。拡張ＧＵＩＤは、各拡張可能エントリを識別する。拡張可能セクション３０４は、拡張ＧＵＩＤによって並べ替えられることが可能である。
【００３５】
署名３４０は、ヘッダ３１０およびコア・データ・セクション３２０〜３２６に関する署名を格納する。署名３４２は、ヘッダ３１０および拡張可能セクション３０４に関する署名を格納する。署名３４０および３４２は、グローバル取り消しリスト内の対応するセクションを誰も不正操作していないことを検証するのに使用される。署名は、信頼されるエンティティによって行われる。検証中に利用可能な事前定義された信頼されるルートに至るグローバル取り消しリスト署名証明書ルート。事前定義された信頼されるルートは、検証論理内にハードコードされることが可能である。更新エントリは、署名されなくてもよい。誰かが、更新セクション３０６を不正操作した場合、コンピューティングデバイスは、更新を獲得することに失敗する。しかし、この失敗は、保護された環境、またはコンピューティングデバイスに全くセキュリティ問題を生じさせない。これが生じた場合、新たなグローバル取り消しリストが、図７に関連して後段で説明するとおり、獲得される。
【００３６】
以下は、グローバル取り消しリスト（ＧＲＬ＿ＨＥＡＤＥＲ）、グローバル取り消しリストの中の各エントリ（ＧＲＬ＿ＥＮＴＲＹ）、拡張可能セクションの中の各エントリ（ＧＲＬ＿ＥＸＴＥＮＳＩＢＬＥ＿ＥＮＴＲＹ）、更新セクションの中の各エントリ（ＧＲＬ＿ＲＥＮＥＷＡＬ＿ＥＮＴＲＹ）、および署名（ＢＩＮ＿ＳＩＧＮ）に関する例示的なシンタックスである。すなわち、
typedef struct_GRL_HEADER {
WCHAR          wszIdentifier[6];
WORD            wFormatMajor;
WORD            wFormatMinor;
FILETIME        CreationTime;
DWORD          dwSequenceNumber;
DWORD          dwForceRebootVersion;
DWORD          dwForceProcessRestartVersion;
DWORD          cbRevocationsSectionOffset;
DWORD          cRevokedKernelBinaries;
DWORD          cRevokedUserBinaries;
DWORD          cRevokedCertificates;
DWORD          cTrustedRoots;
DWORD          cbExtensibleSectionOffset;
DWORD          cRevokedKernelBinaryRenewals;
DWORD          cRevokedUserBinaryRenewals;
DWORD          cRevokedCertificateRenewals; 
DWORD          cbSignatureCoreOffset;
DWORD          cbSignatureExtOffset;
} GRL_HEADER;
typedef struct_GRL_ENTRY { 
BYTE             rgbGRLEntry[GRL_HASH_SIZE]; 
} GRL_ENTRY;
typedef struct_GRL_EXTENSIBLE_ENTRY { 
GUID             guidExtensionID; 
BYTE             rgbExtensibleEntry[GRL_EXT_ENTRY_SIZE]; 
} GRL_EXTENSIBLE_ENTRY;
typdef struct_GRL_RENEWAL_ENTRY { 
GRL_ENTRY   GRLEntry; 
GUID          guidRenewalID; 
} GRL_RENEWAL_ENTRY; 
typedef struct_BIN_SIGN { 
DWORD        dwSignFormat; 
DWORD        dwSignSize; 
BYTE           rgbSignature[1]; 
} BIN_SIGN;.
グローバル取り消しリストに関して説明される例示的なフォーマットは、時とともに変わる可能性があることが理解されよう。これが生じた場合、既存のコンポーネントは、新たなフォーマットが存在することを認識し、グレースフルに中止される。次に、新たなグローバル取り消しリストフォーマットを読み取るように構成された、更新されたフォーマットリーダが、保護された環境によって獲得される。
【００３７】
図４は、グローバル取り消しリストの別の実施形態を示す図である。前述したとおり、すべてのコンピューティングデバイスに関するセキュリティレベルを維持するために、一旦、或るコンピュータ可読コンポーネント、または或る証明書が、グローバル取り消しリストの中でリストアップされると、そのコンポーネントまたは証明書は、通常、グローバル取り消しリストの中に留まる。このため、その単一のファイルは、余りにも大きく、余りにも扱いにくくなる可能性がある。したがって、その１つのファイルが、複数のファイルに分けられることが可能であることが企図される。
【００３８】
図４は、複数ファイルグローバル取り消しリストに関する一実施形態を示す図である。各ファイル４０２、４０４、および４０６が、図３で前述した例示的なフォーマットを保持する。加えて、各ファイル４０２、４０４、４０６は、リンクリスト実施形態で、次のファイル（すなわち、ＮｅｘｔＧＲＬ）へのポインタ、および前のファイル（すなわち、ＰｒｅｖＧＲＬ）へのポインタを含む。さらに、最後のファイル４０６が、或るサイズに達すると、さらなる複数部分のファイルが、追加されることが可能である。この実施形態では、コンピューティングデバイスが、複数部分のファイル４０２、４０４、および４０６をダウンロードすると、グローバル取り消しリストの新たなバージョンが存在する場合、最後のファイル（すなわち、複数部分のファイル４０６）をダウンロードするだけでよい。取り消しおよび更新の回数に応じて、このことにより、グローバル取り消しリストをダウンロードすることに関するパフォーマンスが大幅に向上する可能性がある。しかし、複数ファイルグローバル取り消しリストを有することにより、更新プロセスの効率が、特にグローバル取り消しリストをロードするプロセスの効率が、低下させられる可能性がある。
【００３９】
本自動更新プロセスは、２つの異なるシナリオにおいて実行されることが可能である。第１のシナリオは、メディアアプリケーションが、保護されたコンテンツを処理しようと試みている間のオンデマンドプロセスである。第２のシナリオは、指定の間隔でスケジュールされた定期的更新プロセスである。オンデマンドプロセスおよび定期的自動更新プロセスを説明する前に、本自動更新機構内で使用される１つの例示的なインタフェースを説明する。図５は、本自動更新機構内部で使用されて、保護されたコンテンツを処理することを所望するメディアアプリケーションのための統一されたアプリケーション・プログラミング・インタフェース・セットを提供することができる例示的なインタフェース５００である。統一されたＡＰＩセットは、メディアアプリケーションの開発の際に役立つ。例えば、統一されたＡＰＩセットは、メディアアプリケーションのユーザインタフェースが、グローバル取り消しリストを更新すること、コンポーネントを更新すること、ヘルプウェブページをポップアップさせることなどの、様々なシナリオに関して均一なままであることを可能にする。次に、ＡＰＩのそれぞれを説明する。
【００４０】
ＧｅｔＥｎａｂｌｅＴｙｐｅメソッド５０２が、メディアアプリケーションによって呼び出され、コンテンツイネーブラ５００が作成されたシナリオに固有の型を戻す。コンテンツイネーブラは、保護された環境が信頼できるかどうかをＰｅＡｕｔｈ２４２が調べた後、図２に示されるメディアパイプライン２２２によって作成される。環境が信頼できない場合、コンテンツイネーブラ５００が、作成され、保護されたコンテンツへのアクセスを許すために何が必要とされるかを示す型が、メディアパイプライン２２２によって設定される。次に、メディアアプリケーションが、戻された型に基づき、ユーザインタフェースにおいてストリングを表示することができる。
【００４１】
ＧｅｔＥｎａｂｌｅＵＲＬメソッド５０４が、メディアアプリケーションによって呼び出されて、ＵＬＲ（ユニフォーム・リソース・ロケータ）を得る。次に、メディアアプリケーションは、ウェブブラウザを起動して、指定されたユニフォーム・リソース・ロケータに移動することができる。メディアアプリケーションは、そのユニフォーム・リソース・ロケータに対するＨＴＴＰ  ＰＯＳＴ要求を実行することができる。ＧｅｔＥｎａｂｌｅＵＲＬメソッド５０４は、以下の３つのパラメータを含む。すなわち、ｐｗｓｚＵＲＬ５１０、ｐｃｃｈＵＲＬ５２２、ｐＴｒｕｓｔＳｔａｔｕｓ５２４である。パラメータ、ｐｗｓｚＵＲＬ５１０は、呼び出し元によって割り当てられたアレイへのポインタである。パラメータ、ｐｃｃｈＵＲＬ５２２は、そのアレイの長さを指定する。呼び出し元は、パラメータ、ｐｃｃｈＵＲＬ５２２を、パラメータ、ｐｗｓｚＵＲＬ５１０によってポイントされるアレイのサイズに初期設定する。パラメータ、ｐＴｒｕｓｔＳｔａｔｕｓ５２４は、ＵＲＬが、信頼される源からであるかどうかを、メディアアプリケーションに知らせる。メディアアプリケーションは、ＧｅｔＥｎａｂｌｅＵＲＬメソッド５０４を２回、呼ぶ。第１回は、割り当てるアレイの長さを得るために呼び出しを行い、第２回は、割り当てられたアレイ、およびサイズを使用して呼び出しを行う。ＧｅｔＥｎａｂｌｅＵＲＬメソッド５０５は、コンテンツイネーブラが、指定された型に基づいて必要とされるアクションを自動的に実行することができない場合に、使用されることが可能である。
【００４２】
ＧｅｔＥｎａｂｌｅＤａｔａメソッド５０６が、メディアアプリケーションによって呼び出されて、ＧｅｔＥｎａｂｌｅＵＲＬメソッド５０４で実行されたＨＴＴＰ  ＰＯＳＴ要求を実現するデータを戻す。ＧｅｔＥｎａｂｌｅＤａｔａメソッド５０６は、以下の２つのパラメータを含む。すなわち、パラメータ、ｐｂＤａｔａ５３０、およびパラメータ、ｐｃｂＤａｔａ５３２である。パラメータ、ｐｂＤａｔａ５３０は、呼び出し元によって割り当てられたアレイをポイントする。コンテンツ・イネーブラ・オブジェクトは、パラメータ、ｐｃｂＤａｔａ５３２によって示されるアレイのサイズが十分である場合、アレイにＰＯＳＴデータをポピュレートする。メディアアプリケーションは、ＧｅｔＥｎａｂｌｅＤａｔａメソッド５０６を２回、呼び出す。第１回は、割り当てるアレイのサイズを得るために、ＮＵＬＬに設定されたパラメータ、ｐｂＤａｔａを使用して呼び出しを行う。第２回は、割り当てられたアレイ、およびそのアレイのサイズを使用して呼び出しを行う。これにより、メディアアプリケーションが、取り消されたコンポーネントの発行元、取り消されたコンポーネントのバージョンなどの、さらなるデータを得ることが可能になる。
【００４３】
ＩｓＡｕｔｏｍａｔｉｃＳｕｐｐｏｒｔｅｄメソッド５０８が、メディアアプリケーションによって呼び出されて、コンテンツ・イネーブラ・オブジェクトが、自動的に指定された型に必要とされるアクションを実行することができるかどうかを判定する。コンテンツイネーブラは、コンテンツイネーブラが、要求される動作を独力で実行することができる場合、パラメータ、ｐｆＡｕｔｏｍａｔｉｃ５４０をＴＲＵＥに設定する。代替として、コンテンツイネーブラは、コンテンツイネーブラが、要求される動作のいずれかの部分を行うのに、メディアアプリケーションを必要とする場合、ｐｆＡｕｔｏｍａｔｉｃ５４０をＦＡＬＳＥに設定する。例えば、コンテンツイネーブラが、更新サービスを介して、更新を得るように初期設定される場合、ｐｆＡｕｔｏｍａｔｉｃ５４０をＴＲＵＥに設定することにより、コンテンツイネーブラが、更新サービスとの対話を内部で扱って、それらの対話中、エンドユーザに不必要に不都合が生じないようにしなければならないことが示される。コンテンツイネーブラが、ウェブページを介して、更新を得るように初期設定される場合、ｐｆＡｕｔｏｍａｔｉｃ５４０をＦＡＬＳＥに設定することにより、コンテンツイネーブラが、ウェブページＵＲＬをアプリケーションに開示して、メディアアプリケーションが、ブラウザウインドウを開き、指定されたＵＲＬに移動することができるようにすることが示される。
【００４４】
Ｅｎａｂｌｅメソッド５１０が、メディアアプリケーションによって呼び出されて、コンテンツ・イネーブラ・オブジェクトの型に固有の動作を自動的に実行する。Ｅｎａｂｌｅメソッド５０８は、ユーザインタフェースにおいて提示される動作をメディアアプリケーションが実行することをエンドユーザが許可すると、メディアアプリケーションによって呼び出される。
【００４５】
メディアアプリケーションが、動作が完了した際に通知を受けることを所望し、かつ／または現行のステータスを受け取ることを所望する場合、ＭｏｎｉｔｏｒＥｎａｂｌｅメソッド５１２が、メディアアプリケーションによって呼び出される。コンテンツイネーブラは、ＭＥＥｎａｂｌｅｒＣｏｍｐｌｅｔｅｄイベントを、イネーブラのＩＭＦＭｅｄｉａＥｖｅｎｔＧｅｎｅｒａｔｏｒインタフェースにおいてキューに入れる。
【００４６】
Ｃａｎｃｅｌメソッド５１４が、メディアアプリケーションによって呼び出されて、保留中の動作を取り消す。
【００４７】
これらのインタフェースを介して動作を抽象化することにより、メディアアプリケーションは、信頼される環境を得るための様々なステップを扱う一般的なコードを書くことができる。加えて、将来のコンテンツの要件が、このインタフェース内で抽象化されることが可能である限り、将来のコンテンツは、メディアアプリケーションの下で自動的にプラグインされることが可能である。次に、コンテンツイネーブラに関する１つの例示的な呼び出しシーケンスを、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）更新ソフトウェアから利用可能なＡＰＩを使用して説明する。インストールセッションが、ＩＵｐｄａｔｅＳｅｓｓｉｎを呼び出すことによって作成される。ＩＵｐｄａｔｅＳｅｓｓｉｎ：：ＣｒｅａｔｅＵｐｄａｔｅＳｅａｒｃｈを呼び出すことにより、更新サーチャオブジェクトが作成される。次に、ＩＵｐｄａｔｅＳｅａｒｃｈｅｒ：：Ｓｅａｒｃｈを呼び出すことによって、更新サーチャオブジェクトを使用して、ＧＵＩＤによって識別される更新が探索される。次に、ＩＵｐｄａｔｅＳｅｓｓｉｎ：：ＣｒｅａｔｅＵｐｄａｔｅＤｏｗｎｌｏａｄｅｒを呼び出すことにより、ダウンロードオブジェクトが、作成される。探索結果をＩＵｐｄａｔｅＤｏｗｎｌｏａｄｅｒに送ることにより、特定の更新が、ダウンロードされることが可能である。更新は、ＩＵｐｄａｔｅＤｏｗｎｌｏａｄｅｒ：：Ｄｏｗｎｌｏａｄを呼び出すことにより、コンピューティングデバイスによってダウンロードされることが可能である。ＩＵｐｄａｔｅＳｅｓｓｉｏｎ：：ＣｒｅａｔｅＵｐｄａｔｅＩｎｓｔａｌｌｅｒを呼び出すことにより、インストールオブジェクトが、作成される。インストールされるべきダウンロードされた更新の集合が、ＩＵｐｄａｔｅＩｎｓｔａｌｌｅｒ：：Ｉｎｓｔａｌｌを呼び出した際に、送られることが可能である。次に、Ｉｎｓｔａｌｌメソッドが、それらの更新をコンピューティングデバイスにインストールする。
【００４８】
図６は、信頼される環境を得るための例示的なオンデマンド自動更新プロセスを示す流れ図である。概要を述べると、保護された環境が、その環境が信頼されることを確実にしてから、保護されたコンテンツが処理されることを許す。オンデマンドプロセス６００が、ブロック６０２で始まり、メディアアプリケーションが、保護されたコンテンツを処理しようと試みている。処理は、判定ブロック６０４に進む。
【００４９】
判定ブロック６０４で、ロードされている、信頼されないカーネルコンポーネントが、存在するかどうかの判定が行われる。これは、署名されていないカーネル・モード・コンポーネントが、コンピューティングデバイスにインストールされている場合、生じる可能性がある。信頼されないカーネルコンポーネントは、保護されたコンテンツを含め、コンピューティングデバイス上のあらゆる物に潜在的にアクセスすることができるため、信頼されないカーネルコンポーネントに対処が行われてから、保護されたコンテンツが処理される。ロードされている、信頼されないカーネルコンポーネントが、存在する場合、処理は、判定ブロック６０５に進む。存在しない場合、処理は、判定ブロック６１０に進む。
【００５０】
判定ブロック６０５で、ユーザインタフェースが、メディアアプリケーションによってエンドユーザに提示される。エンドユーザが、プロセス６００が、信頼されないコンポーネントを扱うことを許さない場合、処理は、ブロック６２４に進む。許す場合、処理は、ブロック６０６に進む。
【００５１】
ブロック６０６で、信頼されないカーネルコンポーネントが扱われる。信頼されないカーネルコンポーネントは、アンインストールされる、または署名されたバージョンで更新されることが可能である。アンインストール命令が、ウェブサイト上のヘルプページを介して得られることが可能である。更新された、署名されたバージョンが、更新サービス、ダウンロードセンタ、コンポーネントの発行元に属するサードパーティサイトを使用して得られることが可能である。信頼されないカーネルコンポーネントが、取り消されている場合、信頼されないカーネルを取り消すグローバル取り消しリストエントリは、パッケージ識別子を特定する。すると、このパッケージ識別子が、更新サービスから要求される。しかし、グローバル取り消しリストが、信頼されないカーネルコンポーネントに関するパッケージ識別子を特定しない場合、または信頼されないカーネルコンポーネントが、グローバル取り消しリストの中で特定されていない場合、リンク機構を使用して、信頼されないカーネルコンポーネントをどのように扱うかが決定されることが可能である。リンク機構に関する一実施形態を、図１０に関連して後段で説明する。その場合、リンク機構は、パッケージ識別子、新たなバージョンをダウンロードすることができるウェブページ、アンインストール命令を記述するウェブページなどを指定することが可能である。信頼されないカーネルコンポーネントを扱うためのプロセスは、図５で前述した、統一されたＡＰＩセットを使用する。
【００５２】
以上が行われた後、プロセスは、判定ブロック６０８に進み、信頼されないカーネルコンポーネントにうまく対処が行われたかどうかを判定するチェックが行われる。信頼されないカーネルコンポーネントにうまく対処が行われている場合、処理は、判定ブロック６１０に進む。うまく対処が行われていない場合、処理は、ブロック６２４に進む。
【００５３】
判定ブロック６１０で、現在のグローバル取り消しリストが、信頼できないものであるかどうかの判定が行われる。これは、グローバル取り消しリストが、保護されたコンテンツに関して指定されたバージョンより古い場合、グローバル取り消しリストに不正操作が行われた場合などに行われることが可能である。グローバル取り消しリストが、信頼されない場合、処理は、ブロック６１１に進む。そうではない場合、処理は、判定ブロック６１６に進む。
【００５４】
判定ブロック６１１で、ユーザインタフェースが、メディアアプリケーションによってエンドユーザに提示される。エンドユーザが、プロセス６００が、グローバル取り消しリストを更新することを許可しない場合、処理は、ブロック６２４に進む。許可する場合、処理は、ブロック６１２に進む。
【００５５】
ブロック６１２で、グローバル取り消しリストが、更新される。簡単に述べると、図５および図７に関連して詳細に説明したとおり、現在のグローバル取り消しリストは、指定されたバージョン、または入手可能な場合、指定されたバージョンより上位のバージョンで置き換えられる。グローバル取り消しリストを更新しようと試みた後、グローバル取り消しリストの更新が、成功したかどうかを判定するチェックが行われる（判定ブロック６１４）。更新が成功であった場合、処理は、判定ブロック６１６に進む。成功ではなかった場合、処理は、ブロック６２４に進む。
【００５６】
判定ブロック６１６で、コンポーネントが取り消されたかどうかの判定が行われる。簡単に述べると、図５および図８に関連して詳細に説明したとおり、エンドユーザが、メディアアプリケーションが、新たな（すなわち、更新された）コンポーネントを獲得することを許可すると、メディアアプリケーションは、エンドユーザによるさらなる介入なしに、統一されたＡＰＩを介して、コンポーネントを自動的に更新することができる。更新されたコンポーネントを、以降、更新コンポーネントとも呼ぶ。過去には、エンドユーザには、コンポーネントが、更新を必要とし、後に再び試みるようにという通知が送られた。これは、更新される必要がある各コンポーネントに関して行われる。これに対して、本自動更新機構によれば、エンドユーザが、メディアアプリケーションがコンテンツを処理することを許可すると、必要とされるコンポーネントのそれぞれは、全くさらなるユーザ介入なしに、自動的に更新される。取り消されたコンポーネントが存在する場合、処理は、ブロック６１８に進む。存在しない場合、処理は、ブロック６２２に進む。図示されていないが、プロセス６００は、グローバル取り消しリストの中で取り消されたものとして識別されている、必要とされる各コンポーネントを更新するループ、または他の論理を有することが可能である。
【００５７】
ブロック６１８で、取り消されたものとして識別されたコンポーネント、または複数のコンポーネントが、更新される。簡単に述べると、図５および図８に関連して後段で詳細に説明するとおり、コンポーネントの更新は、エンドユーザとの最小限の対話を伴って行われる。エンドユーザは、更新が成功した限り、保護されたコンテンツが、シームレスに処理されることが始まるまで、短い遅延を経験する。コンポーネントを更新しようと試みた後、取り消されたコンポーネントの更新が成功したかどうかを判定するチェックが、行われる（判定ブロック６２０）。取り消されたコンポーネントの更新が成功している場合、処理は、ブロック６２２に進み、メディアアプリケーションが、保護されたコンテンツを処理することを許可する。更新が成功していない場合、処理は、ブロック６２４に進む。
【００５８】
ブロック６２４で、保護されたコンテンツがなぜ処理されることが可能でなかったのかをメディアアプリケーションに知らせる警報が、メディアアプリケーションに送信される。次に、処理は、終了に進む。
【００５９】
図７は、図１に示されるコンピューティングデバイス上で新たなグローバル取り消しリストを更新するための例示的なプロセス７００を示す流れ図である。プロセス７００は、ブロック７０２で始まり、保護された環境が、グローバル取り消しリストの要求されるバージョン、またはより上位のバージョンが、それまでにダウンロードされているかどうかをチェックする。図９に関連して後段で説明するとおり、新たなグローバル取り消しリストを定期的にダウンロードする定期的自動更新プロセスが、構成されることが可能である。新たにダウンロードされたグローバル取り消しリストは、保留中のグローバル取り消しリストの１つとして、コンピューティングデバイス上に保存されることが可能である。これらの保留中のグローバル取り消しリストがチェックされて、グローバル取り消しリストの新たなバージョンが、既にダウンロードされているかどうかが調べられる。次に、処理は、判定ブロック７０４に進む。
【００６０】
判定ブロック７０４で、要求されるグローバル取り消しリスト、またはより上位のバージョンのグローバル取り消しリストが、コンピューティングデバイス上で既に利用可能であるかどうかの判定が行われる。加えて、保留中のグローバル取り消しリストに対して、グローバル取り消しリストが、保護されたコンテンツと一緒にパッケージ化されているかどうかのチェックが行われる。所望されるグローバル取り消しリストが、利用可能ではない場合、処理は、ブロック７０６に進む。利用可能である場合、処理は、判定ブロック７０８に進む。
【００６１】
ブロック７０６で、要求されるグローバル取り消しリスト、またはより上位のグローバル取り消しリストが、獲得される。コンテンツ・イネーブラ・オブジェクトが、作成されて、グローバル取り消しリストに関する識別子で初期設定される。保護された環境内のオプションにより、グローバル取り消しリストが、要求されるバージョンに更新されるか、またはグローバル取り消しリストの最上位のバージョンに更新されるかが指定される。要求されるバージョンを使用して更新することは、アップグレードが行われた後、保護されたコンテンツが処理されることがほぼ確実に許されるため、有益である。グローバル取り消しリストのより上位のバージョンを使用して更新することは、保護されたコンテンツが機能しないことを生じさせる可能性があるが、コンテンツ所有者に最大のセキュリティを提供する。また、そうすることは、グローバル取り消しリストが更新される必要がある回数を最小限に抑える。メディアアプリケーションは、図５に関連して前述した、統一されたＡＰＩの１つまたは複数を呼び出すことができる。例えば、「ＡＵＴＯＭＡＴＩＣ」がイネーブルにされた場合、呼び出しイネーブルメソッド５１０が、グローバル取り消しリスト内の識別子によって特定されるグローバル取り消しリストを自動的にインストールする。識別子が、パッケージ識別子を特定する場合、その識別子が、更新サービスに送られて、グローバル取り消しリストが獲得される。識別子が、一意のＵＲＬを指定する場合、そのＵＲＬは、ダウンロードセンタ、ヘルプウェブページなどに移動することが可能である。一実施形態では、自動インストールは、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）Ｕｐｄａｔｅソフトウェアを介して達せられることが可能である。この実施形態の場合、新たなグローバル取り消しリストが発行されると、そのグローバル取り消しリストは、メディア更新などの、指定されたカテゴリ内の更新サービスにアップロードされる。指定されたカテゴリは、識別子に基づき、様々なバージョンのグローバル取り消しリストを並べ替えることが可能である。このため、グローバル取り消しリストの最上位のバージョンを獲得するオプションが選択されると、更新サービスは、アップロードされた最後のグローバル取り消しリストをダウンロードする。一実施形態では、更新サービスにアップロードされたグローバル取り消しリストパッケージは、最新のグローバル取り消しリストを含む。別の実施形態では、グローバル取り消しリストセットアップパッケージが、ダウンロードセンタにおいてホストされることが可能である。ダウンロードセンタは、コマンドラインパラメータを受け付け、それらのコマンドラインパラメータを使用して、グローバル取り消しリストの対応するバージョンをインストールする。グローバル取り消しリストセットアップパッケージは、複数のグローバル取り消しリストを含むことが可能であるものの、１つのグローバル取り消しリストが、コマンドラインオプションに基づき、インストールのために選択される。処理は、判定ブロック７０８に進む。
【００６２】
判定ブロック７０８で、強制再起動パラメータが点検されて、再起動が必要とされるかどうかが判定される。一実施形態では、新たなグローバル取り消しリストの強制再起動は、現在のグローバル取り消しリストの中の強制再起動パラメータを使用して点検される。比較が相違する場合、処理は、ブロック７１０に進む。相違していない場合、処理は、判定ブロック７１４に進む。
【００６３】
ブロック７１０で、メディアアプリケーションによって必要とされ、取り消されているコンポーネントが、更新される。この更新プロセスを、図８に関連して後段で説明する。コンポーネントが更新された後、処理は、ブロック７１２に進む。
【００６４】
ブロック７１２で、新たなグローバル取り消しリストが、現在のグローバル取り消しリストとして保存され、コンピューティングデバイスは、再起動をされる。再起動の後、ＰＥＡｕｔｈが、コンポーネントがロードされる際、その新たなグローバル取り消しリストを使用する。処理は、完了である。
【００６５】
判定ブロック７１４で、新たなグローバル取り消しリストが、保護されたプロセスを再スタートすることを指定するかどうかの判定が行われる。この判定は、新たなグローバル取り消しリスト、および現在のグローバル取り消しリストの中のプロセス再スタートパラメータに基づくことが可能である。プロセス再スタートパラメータが相違する場合、処理は、ブロック７１６に進む。相違していない場合、プロセスは、完了である。
【００６６】
ブロック７１６で、メディアアプリケーションによって必要とされ、取り消されているコンポーネントが、更新される。この更新プロセスを、図８に関連して後段で説明する。コンポーネントが更新された後、処理は、ブロック７１８に進む。
【００６７】
ブロック７１８で、保護されたプロセスが、再スタートされる。前述したとおり、保護されたプロセスを再スタートすることは、保護されたプロセス内の不正なユーザ・モード・コンポーネントを強制終了する。次に、保護されたプロセスが再スタートされると、新たなグローバル取り消しリストの中でリストアップされたユーザ・モード・コンポーネントは、ロードされることを防止される。すると、グローバル取り消しリストを更新するためのプロセス７００は、完了である。
【００６８】
図８は、図６に示されるオンデマンド自動更新プロセスにおいて使用されるのに適したコンピュータ可読コンポーネントを更新するための例示的なプロセス８００を示す流れ図である。プロセス８００は、グローバル取り消しリストにおいて取り消されたものとして特定された、メディアアプリケーションによって必要とされるコンポーネントのそれぞれに関して実行される。しかし、エンドユーザには、ユーザが、自動更新を実行することを所望するかどうかを尋ねるユーザインタフェースが、１回だけ提示されてもよい。プロセス８００は、ブロック８０２で始まり、保留中の更新されたコンポーネントがチェックされて、必要とされる更新されたコンポーネントが、既にダウンロードされて、インストールされているかどうかが判定される。簡単に述べると、図９に関連して後段で説明するとおり、保留中の更新されたコンポーネントは、定期的自動更新プロセスによって、それまでにダウンロードされていることが可能である。処理は、判定ブロック８０４に進む。
【００６９】
判定ブロック８０４で、取り消されたコンポーネントが、既に利用可能であるかどうかの判定が行われる。取り消されたコンポーネントが、それまでにダウンロードされている場合、処理は、ブロック８１４に進む。ダウンロードされていない場合、処理は、ブロック８０６に進む。
【００７０】
ブロック８０６で、コンテンツ・イネーブラ・オブジェクトが、取り消されたコンポーネントに関して作成される。コンテンツ・イネーブラ・オブジェクトは、メディア・パイプライン・コンポーネント２２２によって作成される。コンテンツ・イネーブラ・オブジェクトは、取り消されたコンポーネントに関する識別子で初期設定される。この識別子は、取り消されたコンポーネントに関連するハッシュ、または取り消されたコンポーネントの証明書であることが可能である。取り消された証明書の場合、コンテンツイネーブラは、その証明書の公開鍵のハッシュ、および取り消されたコンポーネントのファイル名で初期設定される。次に、リンク機構が、ハッシュおよび／または証明書に基づき、リダイレクトを行うことが可能である。リンク機構は、取り消された証明書によって署名された各コンポーネントに関して別個のエントリを有することが可能である。処理は、ブロック８０８に進む。
【００７１】
ブロック８０８で、コンテンツ・イネーブラ・オブジェクトのイネーブルメソッドが、呼び出される。この呼び出しは、メディア・パイプライン・コンポーネント２２２が、コンテンツ・イネーブラ・オブジェクトをメディアアプリケーションに送った後、メディアアプリケーション２１２によって実行される。メディアアプリケーションは、所望される場合、図５に関連して前述した、他の統一されたＡＰＩを使用して、さらなる情報を獲得することもできる。コンテンツ・イネーブラ・オブジェクトにおける識別子は、更新サービス上で入手可能な更新パッケージを特定する。処理は、ブロック８１０に進む。
【００７２】
ブロック８１０で、更新オブジェクトが、作成されて、更新サービスに送られる。コンテンツ・イネーブラ・オブジェクトのイネーブルメソッドは、更新オブジェクトを作成することを担う。更新オブジェクトは、取り消されたコンポーネントに関する識別子を含む。更新サービスは、更新オブジェクトを受け取ると、更新サービスのパッケージのなかで、その指定された識別子を有するパッケージを探す。１つの例示的な呼び出しシーケンスは、図５に関連して前段で説明した。処理は、ブロック８１２に進む。
【００７３】
ブロック８１２で、メディアアプリケーションが、イネーブルメソッドを介して、更新されたコンポーネントを受け取る。処理は、ブロック８１４に進む。
【００７４】
ブロック８１４で、コンピューティングデバイス上に格納された、取り消されたコンポーネントが、更新されたコンポーネントで置き換えられる。これには、取り消されたコンポーネントを、更新されたコンポーネントで上書きすることが必然的に伴う可能性がある。処理は、ブロック８１６に進む。
【００７５】
ブロック８１６で、更新されたコンポーネントがロードされ、したがって、メディアアプリケーションは、処理のために、そのコンポーネントを使用することができる。すると、コンポーネントを更新するためのプロセス８００は、完了である。前述したとおり、プロセス８００は、メディアアプリケーションによって必要とされ、取り消されている各コンポーネントに関して実行される。
【００７６】
図９は、信頼される環境を更新するための例示的な定期的プロセス９００を示す流れ図である。一実施形態では、定期的プロセス９００は、ワシントン州レッドモンド所在のＭＩＣＲＯＳＯＦＴコーポレーションによって製造されるＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）Ｕｐｄａｔｅソフトウェアなどの、既存のソフトウェア更新機構を利用してもよい。プロセス９００は、ブロック９０２で始まり、信頼される環境に対する更新に関するチェックが実行されるべきであることを合図する所定のイベントが、受け取られる。この所定のイベントは、或る特定の時刻、或る特定のアクション（例えば、起動）などとして指定されてもよい。所定のイベントに先立ち、ソフトウェア更新機構に関連するクライアントサービスにおけるオプションが、定期的プロセスに関する自動更新動作を制御するために構成される。例えば、このオプションは、１）最新のグローバル取り消しリスト、およびそのリスト内で特定される更新されたコンポーネントのすべてを自動的にダウンロードして、インストールする、２）最新のグローバル取り消しリスト、および特定された、更新されたコンポーネントをダウンロードするが、インストールするのを待つ、３）新たなグローバル取り消しリストおよび／または更新されたコンポーネントが、ダウンロードされるように利用可能であるという通知を送るが、それらのコンポーネントをダウンロードまたはインストールしない、あるいは４）定期的更新をオフにするように指定することができる。その他のオプションが、以上に特定されたオプションに追加されてもよい。前述したとおり、更新されたコンポーネントに関する更新パッケージが、ソフトウェア更新機構を提供するように構成されたサーバにアップロードされる。一般に、定期的更新のための更新パッケージは、オンデマンド更新に関するのと同一である。しかし、これら２つのパッケージは、グローバル取り消しリストのケースにおいて相違する可能性がある。定期的更新パッケージは、新たなグローバル取り消しリストを一時ロケーションにインストールするのに対して、オンデマンド更新パッケージは、現在のグローバル取り消しリストを、更新された取り消しリストで置き換える。処理は、ブロック９０４に進む。
【００７７】
ブロック９０４で、コンピューティングデバイス上のクライアントサービスが、ソフトウェア更新サービスを実施するように構成された更新サーバに接続する。通常、この接続は、インターネットを介して行われる。クライアントサービスと更新サービスは、指定されたオプションに従って互いに通信する。処理は、判定ブロック９０６に進む。
【００７８】
判定ブロック９０６で、クライアントサービスが、サーバにおいて新たなグローバル取り消しリストが利用可能であるかどうかを調べる要求を、サーバに送る。ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）Ｕｐｄａｔｅソフトウェアを使用する実施形態では、最新のグローバル取り消しリストは、Ｒｅｃｏｍｍｅｎｄｅｄ  Ｕｐｄａｔｅとして発行されることが可能である。最新のグローバル取り消しリストが、それまでにダウンロードされている場合、処理は、判定ブロック９１２に進む。ダウンロードされていない場合、処理は、ブロック９０８に進む。
【００７９】
ブロック９０８で、指定されたオプションに基づき、クライアントサービスが、所望されるアクションを実行する。例えば、オプション４（通知送信）が選択された場合、クライアントサービスは、コンピューティングデバイス上で表示される通知を送信する。通知は、エンドユーザが、更新を無視するか、ダウンロードおよびインストールを行うか、またはダウンロードだけを行うかを指定することを許す。ダウンロードオプションには、更新パッケージをファイルとして記憶装置上に複製することが必然的に伴う。インストールオプションには、更新パッケージを個々のアイテム（すなわち、指定されたＧＲＬ、指定されたコンポーネント）にアンパックすることが必然的に伴う。通常、クライアントサービスは、エンドユーザをそれほど煩わせないオプションである１のデフォルトのオプションでインストールされる。オプション１が選択されたものと想定すると、最新のグローバル取り消しリストが、コンピューティングデバイス上にプッシュされる。次に、クライアントサービスが、コンピューティングデバイス上で信頼されるインストーラを呼び出して、最新のグローバル取り消しリストをインストールする。処理は、ブロック９１０に進む。
【００８０】
ブロック９１０で、最新のグローバル取り消しリストが、保留中のグローバル取り消しリストとして保存される。新たなグローバル取り消しリストが更新されると、コンピューティングデバイスを再起動する必要がある可能性があるため、新たなグローバル取り消しリストは、コンピューティングデバイスを、その新たなグローバル取り消しリストで更新することなしに、保存される。新たなグローバル取り消しリストは、エンドユーザが、現在の活性のグローバル取り消しリストより新しいグローバル取り消しリストを要求する、何らかの保護されたコンテンツを処理しようと試みるまで、活性化されない。コンピューティングデバイスは、１つの保留中のグローバル取り消しリストと、１つの活性のグローバル取り消しリストとを有するようにセットアップされることが可能である。このセットアップでは、現在の保留中のグローバル取り消しが、コンピューティングデバイスにプッシュされた最新のグローバル取り消しリストで置き換えられる。別の実施形態では、コンピューティングデバイスは、事前定義された数の保留中のグローバル取り消しリストを保持するようにセットアップされることが可能である。このセットアップでは、コンピューティングデバイスにプッシュされた最新のグローバル取り消しリストが、もう１つの保留中のグローバル取り消しリストとして追加される。コンピューティングデバイスのすべてのユーザに関する読み取りアクセスおよび書き込みアクセスを有するコンピューティングデバイス上のロケーションに、保留中のグローバル取り消しリストを格納することが望ましい。これにより、必要な場合、グローバル取り消しリストを更新する能力が、非管理者に与えられる。グローバル取り消しリストのバージョンを自動的に更新する代わりに、新たにダウンロードされたグローバル取り消しリストを保留中の取り消しリストとして保存することにより、ユーザは、それまで処理可能であった、保護されたコンテンツを処理することができないという残念な体験をすることがない。したがって、エンドユーザに不必要に不都合を感じさせられなくてもよい。処理は、判定ブロック９１２に進む。
【００８１】
判定ブロック９１２で、更新されたコンポーネントがダウンロードされるべきかどうかの判定が行われる。更新されたコンポーネントをダウンロードしないオプションが、選択された場合、処理は、完了である。そのようなオプションが選択されなかった場合、処理は、ブロック９１４に進む。
【００８２】
ブロック９１４で、クライアントサービスが、最新のグローバル取り消しリストに関連する更新されたコンポーネントを有する最新のパケットを求める要求を送信する。処理は、ブロック９１６に進む。
【００８３】
ブロック９１６で、コンピューティングデバイスが、特定されたパケットを受信する。処理は、ブロック９１８に進む。
【００８４】
ブロック９１８で、ダウンロードされた、更新されたコンポーネントが、コンピューティングデバイスによってアクセス可能なストレージの中に、保留中のコンポーネントとして保存される。次に、ＰＥＡｕｔｈが、コンピュータ可読コンポーネントをダウンロードする必要なしに、図７に示されるオンデマンドプロセスを実行する際に、これらの更新されたコンピュータ可読コンポーネントをロードすることができる。処理は完了である。
【００８５】
図１１は、定期的プロセスを実施する例示的なアーキテクチャのブロック図である。例示的なアーキテクチャは、インターネット１１０４を介して接続されたサーバ１１０２およびコンピューティングデバイス１００を含む。サーバ１１０２は、取り消されたコンポーネントの更新されたバージョン、および新たに発行されたグローバル取り消しリストのためのサーバ更新サービス１１１０およびストレージ１１１２を含む。コンピューティングデバイス１００は、自動更新サービス１１２０およびインストーラ１１２２を含む。自動更新サービスは、サーバ更新サービスと通信して、特定されたコンポーネントを獲得する。次に、特定されたコンポーネントが、保留中のコンポーネント１１２４として、インストーラ１１２２を使用してコンピューティングデバイスにインストールされる。
【００８６】
図６〜図９において実行される処理は、図３に示されるグローバル取り消しリストを使用する。しかし、処理は、他の取り消しリストフォーマットを使用して実行されることも可能である。例えば、ＤＲＭ（デジタル権利メディア）アプリケーションは、Ｃａｒｄｅａスタイルのコンポーネント取り消しリスト、およびＡｐｐコンポーネント取り消しリストを利用する。これらの他のフォーマットの場合、本自動更新機構は、リンク機構を組み込むことができる。リンク機構は、更新されたコンポーネントをダウンロードすることができる、または新たな取り消しリストをダウンロードすることができるＵＲＬ（ユニフォーム・リソース・ロケータ）に識別子を関連付けるように構成されている。図１０は、識別子をＵＲＬに関連付けるための１つの例示的なリンク機構を示す。これらの他のメディアアプリケーションでは、メディアアプリケーションのルックアップシステムは、本自動更新機構によって必要とされるタイプの情報をサポートしない。したがって、コンテンツイネーブラＡＰＩが、いずれのタイプの識別子も受け取り、その識別子が、更新サービス、サードパーティウェブサイト、またはヘルプページに関連付けられているかどうかを区別する。これらの他の取り消しリストを利用するメディアアプリケーションは、本自動更新機構を呼び出すコードを含む。その場合、ＧＵＩＤを送る代わりに、メディアアプリケーションは、ハッシュまたは公開鍵などの独自のタイプの識別子を送る。メディアパイプラインが、識別子を使用してＦＷＬＩＮＫを構築する。プロセスは、次に、リンク機構を介して一意識別子をルックアップし、関連付けられたＵＲＬを得る。テーブル１０００は、リンク機構の一実施形態を示す。テーブル１０００は、以下の２つの列、すなわち、識別子列１００２およびＵＲＬ列１００４を含む。一般に、識別子は、コンポーネントまたは取り消しリストを一意に特定する。識別子は、ＦＷＬＩＮＫ機構１００８をサポートするウェブサイトＵＲＬ部分１００６を含む。また、識別子は、一意のコンポーネントまたは取り消しリストに関連付けられるリンクｉｄ１０１２またはハッシュ１０１０も含む。ＵＲＬ列１００４は、特定されたコンポーネントをインストールすることができる、ヘルプ命令を獲得することができるといったようなウェブサイトに関するＵＲＬを格納する。ＵＲＬが、ＧＵＩＤ＝｛ｓｏｍｅｇｕｉｄ｝をクエリ・ストリング・パラメータとして含む場合、自動更新機構は、指定されたＧＵＩＤを使用して、更新サービスを介して、そのコンポーネントを探し出そうと試みる。そのコンポーネントが、更新サービス上で見つからない場合、自動更新機構は、ＵＲＬをエンドユーザに表示する。次に、ＦＷＬＩＮＫデータベースは、更新サービスを介して利用可能なコンポーネントに関するＵＲＬが、オプションのパラメータとしてＧＵＩＤを有して構成されることを確実にする。一実施形態では、或る特定のグローバル取り消しリストが、クエリ・ストリング・パラメータを使用して指定されることが可能である。次に、ＦＷＬＩＮＫが、第２のクエリ・ストリング・パラメータを使用して、グローバル取り消しリストの指定されたバージョンに関するセットアップパッケージを表すＧＵＩＤをポイントするように、ポピュレートされる。動作の際、コンテンツ・イネーブラ・オブジェクトが、グローバル取り消しリストハッシュ（すなわち、固定のストリング）で初期設定されると、グローバル取り消しリストのバージョンが、クエリ・ストリング・パラメータを使用して指定される。コンテンツイネーブラは、ＦＷＬＩＮＫ動作を実行すると、ＧＵＩＤを指定するリンクを検出する。次に、コンテンツイネーブラは、更新サービスを使用して、ＧＵＩＤを有するコンポーネントをダウンロードして、インストールする。
【００８７】
例示的な実施形態およびアプリケーションを図示し、説明してきたが、本発明は、前述した構成およびリソースそのものに限定されないことを理解されたい。当業者には明白な、様々な改変、変更、および変形が、主張する発明の範囲を逸脱することなく、本明細書で開示される実施形態の構成、動作、および詳細において行われることが可能である。
【図面の簡単な説明】
【００８８】
【図１】本明細書で説明する自動更新技術および自動更新機構を実施するのに使用されることが可能である例示的なコンピューティングデバイスを示す図である。
【図２】本自動更新機構が対話して、図１に示されるコンピューティングデバイス内で処理されるコンテンツを保護する、例示的なコンテンツ保護スキームを示す図である。
【図３】本自動更新機構によって使用されるグローバル取り消しリストに関する例示的なフォーマットを示す図である。
【図４】グローバル取り消しリストの別の実施形態を示す図である。
【図５】本自動更新機構内部で使用されて、保護されたコンテンツを処理することを所望するメディアアプリケーションのための統一されたアプリケーション・プログラミング・インタフェース・セットを提供することができる例示的なインタフェースを示す図である。
【図６】信頼される環境を得るための例示的なオンデマンド自動更新プロセスを示す流れ図である。
【図７】図６に示されるオンデマンドプロセスにおいて使用されるのに適した新たなグローバル取り消しリストを更新するための例示的なプロセスを示す流れ図である。
【図８】図６に示されるオンデマンドプロセスにおいて使用されるのに適したコンピュータ可読コンポーネントを更新するための例示的なプロセスを示す流れ図である。
【図９】図１に示されるコンピューティングデバイス上で、信頼される環境を更新する定期的プロセスを実行するための例示的なプロセスを示す流れ図である。
【図１０】グローバル取り消しリスト更新および更新コンポーネントを探し出すための例示的な機構を示す図である。
【図１１】定期的プロセスを実施する例示的なアーキテクチャを示すブロック図である。
【図１】
2009503648.tif 000003
【図２】
2009503648.tif 000004
【図３】
2009503648.tif 000005
【図４】
2009503648.tif 000006
【図５】
2009503648.tif 000007
【図６】
2009503648.tif 000008
【図７】
2009503648.tif 000009
【図８】
2009503648.tif 000010
【図９】
2009503648.tif 000011
【図１０】
2009503648.tif 000012
【図１１】
2009503648.tif 000013
【国際調査報告】
2009503648.tif 000014