JP5027807B2 - 信頼される環境をサポートするコンピュータ可読コンポーネントの自動更新 - Google Patents

信頼される環境をサポートするコンピュータ可読コンポーネントの自動更新 Download PDF

Info

Publication number
JP5027807B2
JP5027807B2 JP2008522834A JP2008522834A JP5027807B2 JP 5027807 B2 JP5027807 B2 JP 5027807B2 JP 2008522834 A JP2008522834 A JP 2008522834A JP 2008522834 A JP2008522834 A JP 2008522834A JP 5027807 B2 JP5027807 B2 JP 5027807B2
Authority
JP
Japan
Prior art keywords
revocation list
component
update
computing device
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008522834A
Other languages
English (en)
Other versions
JP2009503648A5 (ja
JP2009503648A (ja
Inventor
シャルワニ,アディル・エイ
プニアムーティ,プラナヴァクマル
デシュパンデ,ラジェシュ・エイ
ランブヒア,アヴニ・エイチ
クーン,ライド・ジェイ
ヴァン・ダイク,クリフォード・ピー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37669367&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP5027807(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009503648A publication Critical patent/JP2009503648A/ja
Publication of JP2009503648A5 publication Critical patent/JP2009503648A5/ja
Application granted granted Critical
Publication of JP5027807B2 publication Critical patent/JP5027807B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

過去には、様々なタイプのコンテンツが、様々なタイプのメディアを使用して流通させられていた。例えば、音楽は、CD(コンパクトディスク)上で流通させられ、CDプレーヤを使用して再生された。映画は、VHS(ビデオホームシステム)テープ上、またはDVD(デジタルバーサタイルディスク)上で流通させられ、それぞれ、VCR(ビデオカセットレコーダ)またはDVDプレーヤを使用して再生された。CDプレーヤ、VCR、およびDVDプレーヤは、或る特定のタイプのメディアのために設計された家庭用電子機器と分類された。これらの家庭用電子機器は、追加のソフトウェアがロードされることが可能でない閉じたシステムであった。したがって、これらの閉じたシステムは、コンテンツを許可なく複製することを許さなかった。
しかし、今日、コンピューティングデバイスは、通常、デバイス内部に組み込まれたCD/DVDプレーヤ(すなわち、ドライブ)、およびその他のメディアプレーヤを有する。このため、コンピューティングデバイスは、家庭用電子機器が再生できるのと同一のCDまたはDVDを再生することができる。加えて、コンピューティングデバイスは、開かれたプラットフォームとして設計されているため、追加のソフトウェアが、コンピューティングデバイスにロードされることが可能である。この追加のソフトウェアは、著作権で保護されているコンテンツを複製すること、および/またはそのコンテンツを、インターネットを介して他の人々と共有することを可能にする可能性がある。したがって、コンテンツの所有者は、コンピューティングデバイスが所有者のコンテンツを再生するのを許すことを躊躇する。
コンテンツ所有者の懸念に対応するため、コンピューティングデバイス上で処理されるコンテンツ(以降、デジタルメディアと呼ぶ)を保護し、コンピューティングデバイスを、デジタルメディアの安全なプレーヤとして推進するように設計された、いくつかの保護スキームが、存在してきた。1つの保護スキームは、MPAA(アメリカ映画協会)によって義務付けられた。この保護スキームは、DVDの流通を保護するCSS(Content Scrambling System)と呼ばれる暗号化アルゴリズムを使用した。DVDプレーヤは、映画コンテンツを解読する備えを有していたが、解読されたコンテンツを複製する、または格納することはできなかった。しかし、コンピュータハッカが、CSSを解読するコンピュータプログラムを開発した。次に、そのコンピュータプログラムが、インターネット上で公開された。このコンピュータプログラムを使用すると、コンピューティングデバイス内にDVDドライブを有するエンドユーザは、映画コンテンツを解読して、標準のファイルフォーマットで格納することができた。すると、そのファイルは、他のコンピューティングデバイス上の他のユーザと容易に共有されることが可能であり、著作権保護の抜け道がつくられた。
コンピューティングデバイスは、開かれたシステムであるため、一部の個人は、デジタルメディアを保護するように設計された保護スキームを「破る」ことを絶えず試みる。デジタルメディアを絶えず保護するため、これらの保護スキームは、絶えず更新される必要がある。さもなければ、コンテンツ所有者が、或るコンテンツがコンピューティングデバイス上で処理されることを許さないというリスクが、存在する。絶え間ない更新、および或るコンテンツへのアクセスを有さないというリスクは、エンドユーザに影響を及ぼし、違法な行為を全く実行していないエンドユーザにさえ影響を及ぼす。したがって、保護スキームに何らかの仕方で違反が行われた場合、罪のないエンドユーザに不必要に影響を及ぼすことのない機構の必要性が、存在する。
本自動更新機構は、信頼される環境をサポートするように更新を定期的にチェックするための方法を提供する。その定期的チェック中、推奨される更新が存在するかどうかの、更新サービスからの指示が、受信される。指示が受信されると、新たな取り消しリストが、更新サービスからダウンロードされて、保留中の取り消しリストとして保存される。すると、その保留中の取り消しリストは、保護されたコンテンツが、或るコンピューティングデバイス上の現在の保護レベルによって提供される保護よりも高い保護レベルを、そのコンピューティングデバイス上で要求する場合、オンデマンド更新のために利用可能である。
この概略は、詳細な説明において後段でさらに説明される一群の概念の選択を紹介するために与えられる。この概略は、主張する主題の重要な特徴、または不可欠な特徴を明らかにすることは意図しておらず、主張する主題の範囲を決定する助けとして使用されることも意図していない。
限定的ではなく、網羅的ではない実施形態を、以下の図を参照して説明する。図では、特に明記しない限り、様々な図のすべてにおいて、同様の符号は、同様の部分を参照する。
以下の説明は、コンテンツ保護スキームをサポートしてコンピュータ可読コンポーネントを更新するための自動更新機構を対象とする。自動更新機構は、エンドユーザの使いやすさの必要性と、コンテンツプロバイダのコンテンツ保護の必要性とのバランスをとる。自動更新機構は、信頼に基づくコンテンツ保護スキームと連携して動作する。信頼は、コンポーネントにコンテンツポリシーを順守させて、コンポーネントが、コンテンツプロバイダによって許可されたアクションを超えるアクションを全く実行しないことを確実にすること、およびコンテンツ所有者の保護されたコンテンツへの不正なアクセスから保護する環境を作ることにより、確立される。その後、自動更新機構は、根拠がある場合、コンピュータ可読コンポーネントの信頼を取り消し、その取り消されたコンピュータ可読コンポーネントの信頼性を自動的に再確立しようと試みる。自動更新機構が、自動更新機構の機能を実行する仕方は、エンドユーザが、特に、エクスプロイトが発見され、脆弱性が修正された後にリリースされたコンテンツに関して、長い期間にわたって保護スキームの脆弱性を悪用しつづけるのを防止する。これは、エンドユーザのデジタルメディアを正当な仕方で使用するエンドユーザに最小限の影響しか及ぼさずに、達せられる。次に、様々なコンピューティング環境において機能する自動更新概念の具体的な実施形態について説明する。
図1は、本明細書で説明される自動更新技術および自動更新機構を実施するのに使用されることが可能な例示的なコンピューティングデバイスである。システムは、コンピューティングデバイス100のようなコンピューティングデバイスを含む。非常に基本的な構成では、コンピューティングデバイス100は、通常、少なくとも1つの処理装置102と、システムメモリ104とを含む。コンピューティングデバイスの厳密な構成およびタイプに依存して、システムメモリ104は、揮発性(RAMのような)、不揮発性(ROM、フラッシュメモリなどのような)、またはその2つの何らかの組合せであることが可能である。システムメモリ104は、通常、オペレーティングシステム106と、1つまたは複数のプログラムモジュール108とを含み、プログラムデータ110を含むことが可能である。本自動更新機構の場合、オペレーティングシステム106は、コンテンツ保護スキームを実施するための1つまたは複数のコンポーネント140と、自動更新機構を実施するための1つまたは複数のコンポーネント142とを含む。後段で説明するとおり、自動更新機構は、自動更新機構の機能を実行する際、コンテンツ保護スキームと対話する。以上の基本的な構成が、破線112内のコンポーネントによって図1に示される。
コンピューティングデバイス100は、さらなるフィーチャまたは機能を有することが可能である。例えば、コンピューティングデバイス100は、例えば、磁気ディスク、光ディスク、またはテープなどの、さらなる記憶装置(リムーバブルな記憶装置および/またはリムーバブルでない記憶装置)も含むことが可能である。そのようなさらなるストレージが、リムーバブルなストレージ120およびリムーバブルでないストレージ122によって図1に示される。コンピュータ記憶メディアには、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータなどの情報を格納するために任意の方法または技術で実施される揮発性メディアおよび不揮発性メディア、リムーバブルなメディアおよびリムーバブルでないメディアが含まれることが可能である。システムメモリ104、リムーバブルなストレージ120、およびリムーバブルでないストレージ122はすべて、コンピュータ記憶メディアの例である。このため、コンピュータ記憶メディアには、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(デジタルバーサタイルディスク)、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは所望される情報を格納するのに使用されることが可能であり、コンピューティングデバイス100によってアクセスされることが可能な他の任意のメディアが含まれるが、以上には限定されない。任意のそのようなコンピュータ記憶メディアが、デバイス100の一部であることが可能である。また、コンピューティングデバイス100は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス124も有することが可能である。また、ディスプレイ、スピーカ、プリンタなどの出力デバイス126も、含められることが可能である。これらのデバイスは、当技術分野でよく知られており、本明細書で詳細に説明する必要はない。
また、コンピューティングデバイス100は、デバイスが、ネットワークなどを介して、他のコンピューティングデバイス130と通信することを可能にする通信接続128も含むことが可能である。通信接続128は、通信メディアの一例である。通信メディアは、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構で、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実体化することが可能であり、通信メディアには、あらゆる情報配信メディアが含まれる。「変調されたデータ信号」という用語は、信号内に情報を符号化するような仕方で特性の1つまたは複数が設定または変更されている信号を意味する。例として、限定としてではなく、通信メディアには、有線ネットワークまたは直接有線接続などの有線メディア、ならびに音響メディア、RFメディア、赤外線メディア、およびその他の無線メディアなどの無線メディアが含まれる。コンピュータ可読メディアは、コンピュータによってアクセスされることが可能な任意の利用可能なメディアであることが可能である。例として、限定としてではなく、コンピュータ可読メディアは、「コンピュータ記憶メディア」および「通信メディア」を含むことが可能である。
様々なモジュールおよび技術が、1つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で、本明細書において説明されることが可能である。一般に、プログラムモジュールには、特定のタスクを実行するため、または特定の抽象データ型を実装するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。これらのプログラムモジュール、および類似物は、ネイティブコードとして実行されてもよく、あるいは、仮想マシン環境、または他のジャストインタイムコンパイル実行環境などにおいて、ダウンロードされて、実行されてもよい。通常、プログラムモジュールの機能は、様々な実施形態において、所望に応じて、組み合わせられても、分散されてもよい。これらのモジュールおよび技術の実施形態は、何らかの形態のコンピュータ可読メディア上に格納されても、何らかの形態のコンピュータ可読メディアを介して伝送されてもよい。
図2は、本自動更新機構が対話して、図1に示されるコンピューティングデバイス内で処理されるコンテンツを保護することができる、コンテンツ保護スキームの一実施形態を示す。概要を述べると、本自動更新機構は、コンテンツにアクセスを有するコンピュータ可読コンポーネントの信頼性に基づき、コンテンツに関するセキュリティを実施する任意のコンテンツ保護スキームと対話する。コンテンツ保護スキームの様々な実施形態は、様々な仕方で、コンピュータ可読コンポーネントに関する信頼を確立することができる。一実施形態では、信頼は、「信頼される」バイナリに「信頼される」権限によって署名が行われる、コード署名技術に基づくことが可能である。信頼が確立されると、本自動更新機構は、信頼の根拠がないコンピュータ可読コンポーネントに関する信頼を取り消すように動作する。加えて、自動更新機構は、取り消されたコンピュータ可読コンポーネントの信頼を再確立するように試みる。これを行う際、本自動更新機構は、コンテンツ保護スキームと対話する。以下の説明は、コンテンツ保護スキームの一実施形態を説明し、次いで、このコンテンツ保護スキームと自動更新機構との間の対話を説明する。
前述したとおり、図2は、コンテンツ保護スキームに関する一実施形態を示す。コンテンツ保護スキームは、デジタルメディアが、関連するライセンス契約の対象となって処理されることが可能な、保護された環境を提供する。保護された環境は、システム上で実行されるソフトウェアコンポーネントが、保護されたコンテンツに、そのようなコンテンツが処理されるにつれてアクセスする能力を制限すること、メモリ空間および実行空間へのアクセスを制限することなどにより、ライセンス契約に違反しようと試みる攻撃を阻止しようと試みる。このため、コンテンツが処理されることが可能なコンピューティングデバイスの数を制限するライセンス契約、コンテンツが再生されることが可能な回数を制限するライセンス契約、コンテンツが複製されることが可能な回数を制限するライセンス契約などが、実施されることが可能である。コンテンツ保護スキームは、デジタルメディアに保護された環境を提供しようと試みるため、保護された環境という用語は、保護スキームを指すのにも使用される。
概要を述べると、保護された環境は、ライセンス契約に違反しようと試みる外部攻撃に対する「壁」を提供する。保護された環境は、図1に示されるシステムメモリ104のユーザ・モード・メモリ空間200とカーネルモードメモリ空間202の両方の中にメディアコンポーネントを含む。メディアコンポーネントは、保護される必要のあるコンテンツ(例えば、保護されたコンテンツ)を処理するように構成される。このため、メディアアプリケーションは、保護されたコンテンツを直接に扱うのではなく、遠隔制御(例えば、再生、巻き戻し、一時停止、CD−ROMへの書き込み)機能を提供するだけでよい。また、保護された環境は、保護されたコンテンツにアクセスすることができる、署名されたサードパーティコンポーネントのためのサポートも提供する。
これを実現するのに、保護された環境は、ユーザモード保護プロセス220内で実行されるメディアパイプライン222を提供する。保護されたプロセス220は、メディアアプリケーション212が実行されるシステムプロセス210とは別個である。より具体的には、これらのプロセス(例えば、システムプロセス210およびその他のプロセス230)において実行されるソフトウェアは、保護されたプロセス220にアクセスすることができない。メディアアプリケーション212は、保護される必要のないコンテンツを処理することができる。しかし、メディアアプリケーション212が、保護されたコンテンツを処理しようと試みる場合、メディアアプリケーションは、メディアパイプライン222と対話して、保護されたコンテンツを処理する。保護された環境が、コンピュータ可読コンポーネントが更新される必要があることに気付いた場合、コンテンツ・イネーブラ・インタフェース228が、使用される。簡単に述べると、図5に関連して後段で詳細に説明するとおり、コンテンツ・イネーブラ・インタフェースは、保護されたコンテンツを処理するためのアクション(例えば、取り消しリストを更新すること、ライセンスを獲得することなど)の1つを実行するのに必要とされる情報をカプセル化する。メディアパイプライン222は、保護されたコンテンツの処理を実行する。
加えて、保護された環境は、カーネル・モード・コンポーネントPEAuth242を含む。概要を述べると、PEAuth242は、ロードされたコンポーネント(例えば、bad.exe232、他のplugin.dll214、およびbadDriver.sys244)のそれぞれが、信頼されるコンポーネントであるかどうかをチェックすることを担う。カーネル・モード202におけるコンポーネントの1つが、信頼されない場合(例えば、badDriver.sys244)、PEAuth242は、保護されたコンテンツが処理されることを許さない。
PEAuth242は、コンピュータ可読コンポーネントが、信頼されるかどうかを、コンポーネントに関連する署名されたバイナリ、署名されたバイナリ上の証明書、グローバル取り消しリスト(図示せず)などに基づいて判定することができる。コンピュータ可読コンポーネントが、このチェックに合格であった場合、PEAuthは、コンピュータ可読コンポーネントがロードされることを許す。しかし、コンピュータ可読コンポーネントが、このチェックに不合格であった場合、PEAuthは、ステータスをメディアアプリケーションに提供する。このステータスは、インタフェース228を介して提供される。次に、アプリケーションは、ステータスに関するユーザインタフェースをエンドユーザに提供するように構成される。また、メディアアプリケーションは、インタフェース228を介して更新を要求する。PEAuth242は、保護されたプロセスが作成されるといつでも通知を受け、さらに、コンポーネントが保護されたプロセスにロードされるといつでも通知を受ける。PEAuthが、コンピュータ可読コンポーネントをロードするプロセスにある場合、PEAuthは、コンピュータ可読コンポーネントに関連するファイルをチェックして、そのファイルが、グローバル取り消しリストの中で取り消されたものとしてリストアップされているかどうかを調べる。
加えて、コンポーネント自体が、チェックされて、コンポーネントが、グローバル取り消しリストの中でリストアップされているかどうかが調べられることが可能である。コンポーネントが、グローバル取り消しリスト内で取り消されている場合、そのコンポーネントを更新するためのプロセスが、図8に関連して後段で説明するとおり、実行される。簡単に述べると、図3に関連して後段で説明するとおり、グローバル取り消しリストが、信頼されないアイテム(例えば、コンポーネント、証明書)を特定する。いずれのアイテムをグローバル取り消しリスト内に含めるかの決定は、個人のチームによって実行されることが可能である。このチームは、保護されたコンテンツの所有者、インターネット、および/または他の源から受け取られた情報を分析することを担う。この情報に基づき、チームは、疑わしいアイテムが、保護された環境に違反するかどうかを判定し、そのアイテムが、保護された環境にどのように違反するかを判定する。次に、この分析の結果が、図3に関連して後段で説明するグローバル取り消しリストに反映される。
図3は、本自動更新機構によって使用されるグローバル取り消しリストに関する例示的なフォーマット300を示す図である。一般に、グローバル取り消しリストは、信頼情報が、不正操作できない、容易に更新可能なフォーマットで格納されることを可能にする。一実施形態では、フォーマット300は、以下のいくつかのセクションを含む。すなわち、コアセクション302、拡張可能セクション304、更新セクション306、および署名セクション308である。セクション302〜308の構成は、効率的なルックアップを提供するように最適化されることが可能である。例えば、コアセクション302は、情報に断絶が全く生じることなく、並べ替えられることが可能であるように編成されることが可能である。これにより、カーネルコンポーネントが、コアセクション302をメモリに直接にロードすることが可能になる。このため、カーネルコンポーネントは、情報を解析してからでなくても、情報を使用することができる。グローバル取り消しリストは、リストの真正性を確実にするために、証明権限によってデジタル署名されることが可能である。フォーマット300は、グローバル取り消しリストに関する1つの例示的なフォーマットである。他のフォーマットは、対応する他のサブセクションを伴って、より多くのセクションを有しても、より少ないセクションを有してもよい。加えて、他のフォーマットが、異なる仕方で構成されてもよい。
コアセクション302は、以下のいくつかのサブセクションを含む。すなわち、ヘッダ310、カーネルコンポーネントの取り消しリスト320、ユーザ・モード・コンポーネントの取り消しリスト322、証明書の取り消しリスト324、および信頼されるルートのリスト326である。次に、これらのサブセクションのそれぞれを、より詳細に説明する。
ヘッダ310は、バージョン番号312、強制再起動パラメータ314、プロセス再スタートパラメータ316、および時刻パラメータ318を含むことが可能である。時刻パラメータ318は、グローバル取り消しリストが作成された時刻を格納する。バージョン番号312は、GRL(グローバル取り消しリスト)のバージョンに関する番号を特定する。新たなグローバル取り消しリストが公開されるたびに、バージョン番号312は、変更される。バージョン番号312は、保護されたコンテンツを処理するコンピューティングシステムが、その保護されたコンテンツのために設定された制限を遵守することを確実にするのに使用される。例えば、コンピューティングシステムは、グローバル取り消しリストのバージョン#5を使用して写真を見ていることが可能である。しかし、同一のコンピューティングシステムが、今度は、或る従量料金制の映画を再生することを所望する場合、その従量料金制の映画(すなわち、保護されたコンテンツ)は、コンピューティングデバイスが、グローバル取り消しリストの少なくともバージョン#8を使用すべきことを指定する可能性がある。コンピューティングデバイスを更新し、コンピューティングデバイスをバージョン#8で信頼させるためのプロセスを、図6〜10に関連して後段で説明する。
強制再起動パラメータ314は、自動更新機構によって、コンピューティングデバイス上のエンドユーザに対するバージョン更新の影響を最小限に抑えるのに使用される。これは、そのバージョンに関する取り消しリスト320〜324への追加のいずれかが、ロードされた後に自らを隠すコンポーネントを取り消すかどうかを、強制再起動パラメータ314で示すことによって達せられる。例えば、或るコンポーネントが、「ロードされたモジュール」のリストから自らを削除すること、または別のモジュールにコードを挿入した後、自らをアンロードすることにより、自らを隠す可能性がある。このため、「隠す」とは、スキャン技術が、そのコンポーネントをロードされたものとして検出することができないことを指す。新たなグローバル取り消しリストが、自らを隠そうと試みるコンポーネントを全く取り消さない場合、自動更新機構は、コンピューティングデバイスを再起動することなしに、取り消しリストを更新することができる。取り消しリストを更新した後、自動更新機構は、コンピューティングデバイスの信頼ステータスが、今や、新たなバージョンにあることを保証されることが可能である。このシナリオでは、取り消しリスト320〜324のいずれかの中でリストアップされるコンポーネントの1つが、検出されない(すなわち、隠されていない)場合、自動更新機構は、コンポーネントがロードされなかったことを保証されることが可能である。
しかし、新たなグローバル取り消しリストが、ロードされた後に自らを隠そうと試みるコンポーネントを取り消した場合、自動更新機構は、更新の後でさえ、隠れたコンポーネントが、依然としてロードされたままではないという確信が得ることができない。したがって、隠れたコンポーネントを検出するのに再起動が、必要である。自らを隠すコンポーネントが、ユーザ・モード・コンポーネントである場合、そのコンポーネントは、再起動の後、ロードされることを阻止される。しかし、そのコンポーネントが、カーネル・モード・コンポーネントである場合、コンポーネントは、ロードされるが、保護された環境は、保護されたコンテンツが処理されることを許さない。
取り消しリスト320〜324の中でリストアップされる取り消しの多くは、フィーチャを正しく実施しないことによって偶然、違反を生じさせたコンポーネントを取り消すため、強制再起動パラメータ314は、コンピューティングデバイスが再起動される必要がある回数を最小限に抑える。これにより、コンピューティングデバイス上のエンドユーザへの悪影響が大幅に小さくされる。
一実施形態では、強制再起動パラメータ314は、カウンタとして実施される。このカウンタは、グローバル取り消しリストが、自らを隠そうと試みるコンポーネントを取り消すといつでも、更新される。カウンタを強制再起動パラメータとして使用することは、コンピューティングデバイスが、グローバル取り消しリストのいくつかのバージョンを飛ばした状況において役立つ。例えば、或るコンピューティングデバイスが、現在、グローバル取り消しリストのバージョン#3を使用していることが可能である。しかし、そのコンピューティングデバイスが、或る特定の保護されたコンテンツを処理しようと試みると、その保護されたコンテンツに関連付けられた信頼契約により、そのコンピューティングデバイスが、グローバル取り消しリストのバージョン#10を使用している場合に限り、その保護されたコンテンツを処理することができることが規定されることが可能である。強制再起動パラメータ314が、イエス/ノー標識を使用して実施されている場合、コンピューティングデバイスは、バージョン#10レベルにおいて信頼を確立することに失敗する可能性がある。これは、バージョンの1つまたは複数(バージョン#4〜#9)が、強制再起動パラメータ314に関して「はい」を指定しているが、バージョン#10が、「いいえ」を指定している場合、生じる可能性がある。その他のグローバル取り消しリストの中の強制再起動パラメータ314について知ることなしには、自動更新機構は、再起動が必要とされていることに気付かない。再起動なしには、保護された環境には、依然として、取り消されたコンポーネントがロードされている。カウンタを使用することにより、新たなグローバル取り消しリストの中のカウンタの値が、前のグローバル取り消しリストの中のカウンタの値と容易に比較されることが可能である。すると、自動更新機構は、カウンタが相違する場合、再起動を強制することができる。
再スタートパラメータ316は、自動コンポーネント更新機構によって、コンピューティングデバイス上のエンドユーザへのバージョン更新の影響をさらに小さく抑えるのに使用されることが可能である。取り消しリスト320〜324の中で特定されるコンポーネントは、以下の3つのクラスに分類されることが可能である。すなわち、1)不正でないコンポーネント、2)不正なユーザ・モード・コンポーネント、および3)不正なカーネル・モード・コンポーネントである。第1のクラス、つまり、不正でないコンポーネントは、通常、コンポーネント内の或るフィーチャを安全な仕方で実施することに失敗することにより、偶然、出現する。したがって、これらのタイプのコンポーネントは、通常は、自らを隠そうと試みることはない。第2のクラス、および第3のクラスは、何らかのタイプの保護されたコンテンツに関連付けられた信頼契約に違反するように特別に書かれている。これらのタイプのコンポーネントは、不正であるため、ロードされた後、通常、自らを隠そうと試みる。
再スタートパラメータ316は、強制再起動パラメータ314と併せて使用されて、新たなグローバル取り消しリストのレベルにおいて信頼を確立するために、再起動が必要であるかどうか、保護されたプロセスの再スタートが必要であるかどうか、またはコンポーネントの更新が必要であるかどうかが識別されることが可能である。第1のクラス内のコンポーネントの場合、自動更新機構は、現在、ロードされている取り消されたコンポーネントのいずれかを更新することにより、新たなグローバル取り消しリストの要件を満たすことができる。第2のクラス内のコンポーネントの場合、自動更新機構は、それぞれの保護されたプロセスを再スタートすることにより、新たなグローバル取り消しリストの要件を満たすことができる。取り消された不正なユーザ・モード・コンポーネントは、保護されたプロセス内にあるため、保護されたプロセスが強制終了されると、不正なユーザ・モード・コンポーネントも、事実上、強制終了される。保護されたプロセスが再スタートされる際、更新されたグローバル取り消しリストの中でリストアップされた不正なユーザ・モード・コンポーネントは、ロードされることが防止される。第3のクラス内のコンポーネントの場合、自動更新機構は、強制再起動パラメータ314に関して前段で説明したとおり、コンピューティングデバイスを再起動することにより、新たなグローバル取り消しリストの要件を満たすことができる。
一実施形態では、再スタートパラメータ316は、カウンタとして実施されて、強制再起動パラメータ316と併せて使用されることが可能である。例えば、強制再起動パラメータが、コンピューティングデバイスを再起動することが必要ないことを示す場合、再スタートパラメータ316が、古い再スタートパラメータと比較されて、保護されたプロセスを再スタートすることが必要であるかどうかが判定されることが可能である。これにより、エンドユーザが、保護されたプロセスが再スタートされる間、その保護されたプロセスを必要としない他のアプリケーション(例えば、ワードプロセッサ、ゲーム)を実行しつづけることが可能になる。これにより、事実上、エンドユーザに対する影響が最小限に抑えられる一方で、コンピューティングデバイス上で実行される保護されたコンテンツに関する信頼レベルが、依然として維持される。
カーネル・モード・コンポーネントに関する取り消しリスト320、ユーザ・モード・コンポーネントに関する取り消しリスト322、および証明書に関する取り消しリスト324は、同様である。これらの取り消しリストは、取り消されるべきアイテムを識別するエントリを含む。アイテムは、ファイル、個別のコンピュータ可読コンポーネント、または証明書であることが可能である。ファイルは、いくつかのコンピュータ可読コンポーネントが格納されたDLL(ダイナミック・リンク・ライブラリ)または.EXE(実行可能)ファイルであることが可能である。アイテムは、取り消されるべきユーザ・モード・バイナリまたはカーネル・モード・バイナリのハッシュ、または取り消されるべき証明書の公開鍵のハッシュなどの、一意識別子を使用して識別される。興味深いことに、グローバル取り消しリストの中で取り消されたものとして指定されたアイテムは、依然として、保護された環境の外で使用されることが可能である。グローバル取り消しリスト内のコンポーネントの識別は、保護された環境における信頼されるコンポーネントとしてのコンポーネントのステータスだけに影響を与える。
アイテムが、或る証明書を特定する場合、その証明権限によって証明されたコンピュータ可読コンポーネントが、取り消される。加えて、特定された証明書に至る信頼の連鎖のなかの証明書で証明されたコンピュータ可読コンポーネントもやはり、取り消される。信頼の連鎖は、ルート権限で止まるまで続く。これにより、ハッカが、漏洩した証明権限を使用して、不正なコンピュータ可読コンポーネントに署名することが防止される。
信頼されるルートセクション326は、信頼の連鎖が開始されることが可能なルート権限を特定する。したがって、コンピュータ可読コンポーネントが、信頼されるルートの1つとしてリストアップされていないルート権限によって証明されている場合、PEAuthは、そのコンポーネントをロードしない。これにより、ハッカが、不正なコンピュータ可読コンポーネントに署名するためのルート権限を作成することが防止される。
セクション320〜322において取り消されたアイテムに関するエントリは、通常、対応する更新セクション330〜332の中に更新エントリを有する。更新エントリは、更新GUID(グローバル一意識別子)を含む。一実施形態では、更新GUIDは、カテゴリ識別子を指定することが可能である。各サブセクションの中の更新エントリは、ハッシュ値によって並べ替えられることが可能である。コンポーネントを更新するための例示的なプロセスを、図8に関連して後段で説明する。
拡張可能セクション304は、下流のコンポーネントに関して信頼を確立する際に使用される拡張可能な取り消し情報を含むことが可能である。拡張GUIDは、各拡張可能エントリを識別する。拡張可能セクション304は、拡張GUIDによって並べ替えられることが可能である。
署名340は、ヘッダ310およびコア・データ・セクション320〜326に関する署名を格納する。署名342は、ヘッダ310および拡張可能セクション304に関する署名を格納する。署名340および342は、グローバル取り消しリスト内の対応するセクションを誰も不正操作していないことを検証するのに使用される。署名は、信頼されるエンティティによって行われる。検証中に利用可能な事前定義された信頼されるルートに至るグローバル取り消しリスト署名証明書ルート。事前定義された信頼されるルートは、検証論理内にハードコードされることが可能である。更新エントリは、署名されなくてもよい。誰かが、更新セクション306を不正操作した場合、コンピューティングデバイスは、更新を獲得することに失敗する。しかし、この失敗は、保護された環境、またはコンピューティングデバイスに全くセキュリティ問題を生じさせない。これが生じた場合、新たなグローバル取り消しリストが、図7に関連して後段で説明するとおり、獲得される。
以下は、グローバル取り消しリスト(GRL_HEADER)、グローバル取り消しリストの中の各エントリ(GRL_ENTRY)、拡張可能セクションの中の各エントリ(GRL_EXTENSIBLE_ENTRY)、更新セクションの中の各エントリ(GRL_RENEWAL_ENTRY)、および署名(BIN_SIGN)に関する例示的なシンタックスである。すなわち、
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;.
グローバル取り消しリストに関して説明される例示的なフォーマットは、時とともに変わる可能性があることが理解されよう。これが生じた場合、既存のコンポーネントは、新たなフォーマットが存在することを認識し、グレースフルに中止される。次に、新たなグローバル取り消しリストフォーマットを読み取るように構成された、更新されたフォーマットリーダが、保護された環境によって獲得される。
図4は、グローバル取り消しリストの別の実施形態を示す図である。前述したとおり、すべてのコンピューティングデバイスに関するセキュリティレベルを維持するために、一旦、或るコンピュータ可読コンポーネント、または或る証明書が、グローバル取り消しリストの中でリストアップされると、そのコンポーネントまたは証明書は、通常、グローバル取り消しリストの中に留まる。このため、その単一のファイルは、余りにも大きく、余りにも扱いにくくなる可能性がある。したがって、その1つのファイルが、複数のファイルに分けられることが可能であることが企図される。
図4は、複数ファイルグローバル取り消しリストに関する一実施形態を示す図である。各ファイル402、404、および406が、図3で前述した例示的なフォーマットを保持する。加えて、各ファイル402、404、406は、リンクリスト実施形態で、次のファイル(すなわち、NextGRL)へのポインタ、および前のファイル(すなわち、PrevGRL)へのポインタを含む。さらに、最後のファイル406が、或るサイズに達すると、さらなる複数部分のファイルが、追加されることが可能である。この実施形態では、コンピューティングデバイスが、複数部分のファイル402、404、および406をダウンロードすると、グローバル取り消しリストの新たなバージョンが存在する場合、最後のファイル(すなわち、複数部分のファイル406)をダウンロードするだけでよい。取り消しおよび更新の回数に応じて、このことにより、グローバル取り消しリストをダウンロードすることに関するパフォーマンスが大幅に向上する可能性がある。しかし、複数ファイルグローバル取り消しリストを有することにより、更新プロセスの効率が、特にグローバル取り消しリストをロードするプロセスの効率が、低下させられる可能性がある。
本自動更新プロセスは、2つの異なるシナリオにおいて実行されることが可能である。第1のシナリオは、メディアアプリケーションが、保護されたコンテンツを処理しようと試みている間のオンデマンドプロセスである。第2のシナリオは、指定の間隔でスケジュールされた定期的更新プロセスである。オンデマンドプロセスおよび定期的自動更新プロセスを説明する前に、本自動更新機構内で使用される1つの例示的なインタフェースを説明する。図5は、本自動更新機構内部で使用されて、保護されたコンテンツを処理することを所望するメディアアプリケーションのための統一されたアプリケーション・プログラミング・インタフェース・セットを提供することができる例示的なインタフェース500である。統一されたAPIセットは、メディアアプリケーションの開発の際に役立つ。例えば、統一されたAPIセットは、メディアアプリケーションのユーザインタフェースが、グローバル取り消しリストを更新すること、コンポーネントを更新すること、ヘルプウェブページをポップアップさせることなどの、様々なシナリオに関して均一なままであることを可能にする。次に、APIのそれぞれを説明する。
GetEnableTypeメソッド502が、メディアアプリケーションによって呼び出され、コンテンツイネーブラ500が作成されたシナリオに固有の型を戻す。コンテンツイネーブラは、保護された環境が信頼できるかどうかをPeAuth242が調べた後、図2に示されるメディアパイプライン222によって作成される。環境が信頼できない場合、コンテンツイネーブラ500が、作成され、保護されたコンテンツへのアクセスを許すために何が必要とされるかを示す型が、メディアパイプライン222によって設定される。次に、メディアアプリケーションが、戻された型に基づき、ユーザインタフェースにおいてストリングを表示することができる。
GetEnableURLメソッド504が、メディアアプリケーションによって呼び出されて、ULR(ユニフォーム・リソース・ロケータ)を得る。次に、メディアアプリケーションは、ウェブブラウザを起動して、指定されたユニフォーム・リソース・ロケータに移動することができる。メディアアプリケーションは、そのユニフォーム・リソース・ロケータに対するHTTP POST要求を実行することができる。GetEnableURLメソッド504は、以下の3つのパラメータを含む。すなわち、pwszURL510、pcchURL522、pTrustStatus524である。パラメータ、pwszURL510は、呼び出し元によって割り当てられたアレイへのポインタである。パラメータ、pcchURL522は、そのアレイの長さを指定する。呼び出し元は、パラメータ、pcchURL522を、パラメータ、pwszURL510によってポイントされるアレイのサイズに初期設定する。パラメータ、pTrustStatus524は、URLが、信頼される源からであるかどうかを、メディアアプリケーションに知らせる。メディアアプリケーションは、GetEnableURLメソッド504を2回、呼ぶ。第1回は、割り当てるアレイの長さを得るために呼び出しを行い、第2回は、割り当てられたアレイ、およびサイズを使用して呼び出しを行う。GetEnableURLメソッド505は、コンテンツイネーブラが、指定された型に基づいて必要とされるアクションを自動的に実行することができない場合に、使用されることが可能である。
GetEnableDataメソッド506が、メディアアプリケーションによって呼び出されて、GetEnableURLメソッド504で実行されたHTTP POST要求を実現するデータを戻す。GetEnableDataメソッド506は、以下の2つのパラメータを含む。すなわち、パラメータ、pbData530、およびパラメータ、pcbData532である。パラメータ、pbData530は、呼び出し元によって割り当てられたアレイをポイントする。コンテンツ・イネーブラ・オブジェクトは、パラメータ、pcbData532によって示されるアレイのサイズが十分である場合、アレイにPOSTデータをポピュレートする。メディアアプリケーションは、GetEnableDataメソッド506を2回、呼び出す。第1回は、割り当てるアレイのサイズを得るために、NULLに設定されたパラメータ、pbDataを使用して呼び出しを行う。第2回は、割り当てられたアレイ、およびそのアレイのサイズを使用して呼び出しを行う。これにより、メディアアプリケーションが、取り消されたコンポーネントの発行元、取り消されたコンポーネントのバージョンなどの、さらなるデータを得ることが可能になる。
IsAutomaticSupportedメソッド508が、メディアアプリケーションによって呼び出されて、コンテンツ・イネーブラ・オブジェクトが、自動的に指定された型に必要とされるアクションを実行することができるかどうかを判定する。コンテンツイネーブラは、コンテンツイネーブラが、要求される動作を独力で実行することができる場合、パラメータ、pfAutomatic540をTRUEに設定する。代替として、コンテンツイネーブラは、コンテンツイネーブラが、要求される動作のいずれかの部分を行うのに、メディアアプリケーションを必要とする場合、pfAutomatic540をFALSEに設定する。例えば、コンテンツイネーブラが、更新サービスを介して、更新を得るように初期設定される場合、pfAutomatic540をTRUEに設定することにより、コンテンツイネーブラが、更新サービスとの対話を内部で扱って、それらの対話中、エンドユーザに不必要に不都合が生じないようにしなければならないことが示される。コンテンツイネーブラが、ウェブページを介して、更新を得るように初期設定される場合、pfAutomatic540をFALSEに設定することにより、コンテンツイネーブラが、ウェブページURLをアプリケーションに開示して、メディアアプリケーションが、ブラウザウインドウを開き、指定されたURLに移動することができるようにすることが示される。
Enableメソッド510が、メディアアプリケーションによって呼び出されて、コンテンツ・イネーブラ・オブジェクトの型に固有の動作を自動的に実行する。Enableメソッド508は、ユーザインタフェースにおいて提示される動作をメディアアプリケーションが実行することをエンドユーザが許可すると、メディアアプリケーションによって呼び出される。
メディアアプリケーションが、動作が完了した際に通知を受けることを所望し、かつ/または現行のステータスを受け取ることを所望する場合、MonitorEnableメソッド512が、メディアアプリケーションによって呼び出される。コンテンツイネーブラは、MEEnablerCompletedイベントを、イネーブラのIMFMediaEventGeneratorインタフェースにおいてキューに入れる。
Cancelメソッド514が、メディアアプリケーションによって呼び出されて、保留中の動作を取り消す。
これらのインタフェースを介して動作を抽象化することにより、メディアアプリケーションは、信頼される環境を得るための様々なステップを扱う一般的なコードを書くことができる。加えて、将来のコンテンツの要件が、このインタフェース内で抽象化されることが可能である限り、将来のコンテンツは、メディアアプリケーションの下で自動的にプラグインされることが可能である。次に、コンテンツイネーブラに関する1つの例示的な呼び出しシーケンスを、MICROSOFT(登録商標)WINDOWS(登録商標)更新ソフトウェアから利用可能なAPIを使用して説明する。インストールセッションが、IUpdateSessinを呼び出すことによって作成される。IUpdateSessin::CreateUpdateSearchを呼び出すことにより、更新サーチャオブジェクトが作成される。次に、IUpdateSearcher::Searchを呼び出すことによって、更新サーチャオブジェクトを使用して、GUIDによって識別される更新が探索される。次に、IUpdateSessin::CreateUpdateDownloaderを呼び出すことにより、ダウンロードオブジェクトが、作成される。探索結果をIUpdateDownloaderに送ることにより、特定の更新が、ダウンロードされることが可能である。更新は、IUpdateDownloader::Downloadを呼び出すことにより、コンピューティングデバイスによってダウンロードされることが可能である。IUpdateSession::CreateUpdateInstallerを呼び出すことにより、インストールオブジェクトが、作成される。インストールされるべきダウンロードされた更新の集合が、IUpdateInstaller::Installを呼び出した際に、送られることが可能である。次に、Installメソッドが、それらの更新をコンピューティングデバイスにインストールする。
図6は、信頼される環境を得るための例示的なオンデマンド自動更新プロセスを示す流れ図である。概要を述べると、保護された環境が、その環境が信頼されることを確実にしてから、保護されたコンテンツが処理されることを許す。オンデマンドプロセス600が、ブロック602で始まり、メディアアプリケーションが、保護されたコンテンツを処理しようと試みている。処理は、判定ブロック604に進む。
判定ブロック604で、ロードされている、信頼されないカーネルコンポーネントが、存在するかどうかの判定が行われる。これは、署名されていないカーネル・モード・コンポーネントが、コンピューティングデバイスにインストールされている場合、生じる可能性がある。信頼されないカーネルコンポーネントは、保護されたコンテンツを含め、コンピューティングデバイス上のあらゆる物に潜在的にアクセスすることができるため、信頼されないカーネルコンポーネントに対処が行われてから、保護されたコンテンツが処理される。ロードされている、信頼されないカーネルコンポーネントが、存在する場合、処理は、判定ブロック605に進む。存在しない場合、処理は、判定ブロック610に進む。
判定ブロック605で、ユーザインタフェースが、メディアアプリケーションによってエンドユーザに提示される。エンドユーザが、プロセス600が、信頼されないコンポーネントを扱うことを許さない場合、処理は、ブロック624に進む。許す場合、処理は、ブロック606に進む。
ブロック606で、信頼されないカーネルコンポーネントが扱われる。信頼されないカーネルコンポーネントは、アンインストールされる、または署名されたバージョンで更新されることが可能である。アンインストール命令が、ウェブサイト上のヘルプページを介して得られることが可能である。更新された、署名されたバージョンが、更新サービス、ダウンロードセンタ、コンポーネントの発行元に属するサードパーティサイトを使用して得られることが可能である。信頼されないカーネルコンポーネントが、取り消されている場合、信頼されないカーネルを取り消すグローバル取り消しリストエントリは、パッケージ識別子を特定する。すると、このパッケージ識別子が、更新サービスから要求される。しかし、グローバル取り消しリストが、信頼されないカーネルコンポーネントに関するパッケージ識別子を特定しない場合、または信頼されないカーネルコンポーネントが、グローバル取り消しリストの中で特定されていない場合、リンク機構を使用して、信頼されないカーネルコンポーネントをどのように扱うかが決定されることが可能である。リンク機構に関する一実施形態を、図10に関連して後段で説明する。その場合、リンク機構は、パッケージ識別子、新たなバージョンをダウンロードすることができるウェブページ、アンインストール命令を記述するウェブページなどを指定することが可能である。信頼されないカーネルコンポーネントを扱うためのプロセスは、図5で前述した、統一されたAPIセットを使用する。
以上が行われた後、プロセスは、判定ブロック608に進み、信頼されないカーネルコンポーネントにうまく対処が行われたかどうかを判定するチェックが行われる。信頼されないカーネルコンポーネントにうまく対処が行われている場合、処理は、判定ブロック610に進む。うまく対処が行われていない場合、処理は、ブロック624に進む。
判定ブロック610で、現在のグローバル取り消しリストが、信頼できないものであるかどうかの判定が行われる。これは、グローバル取り消しリストが、保護されたコンテンツに関して指定されたバージョンより古い場合、グローバル取り消しリストに不正操作が行われた場合などに行われることが可能である。グローバル取り消しリストが、信頼されない場合、処理は、ブロック611に進む。そうではない場合、処理は、判定ブロック616に進む。
判定ブロック611で、ユーザインタフェースが、メディアアプリケーションによってエンドユーザに提示される。エンドユーザが、プロセス600が、グローバル取り消しリストを更新することを許可しない場合、処理は、ブロック624に進む。許可する場合、処理は、ブロック612に進む。
ブロック612で、グローバル取り消しリストが、更新される。簡単に述べると、図5および図7に関連して詳細に説明したとおり、現在のグローバル取り消しリストは、指定されたバージョン、または入手可能な場合、指定されたバージョンより上位のバージョンで置き換えられる。グローバル取り消しリストを更新しようと試みた後、グローバル取り消しリストの更新が、成功したかどうかを判定するチェックが行われる(判定ブロック614)。更新が成功であった場合、処理は、判定ブロック616に進む。成功ではなかった場合、処理は、ブロック624に進む。
判定ブロック616で、コンポーネントが取り消されたかどうかの判定が行われる。簡単に述べると、図5および図8に関連して詳細に説明したとおり、エンドユーザが、メディアアプリケーションが、新たな(すなわち、更新された)コンポーネントを獲得することを許可すると、メディアアプリケーションは、エンドユーザによるさらなる介入なしに、統一されたAPIを介して、コンポーネントを自動的に更新することができる。更新されたコンポーネントを、以降、更新コンポーネントとも呼ぶ。過去には、エンドユーザには、コンポーネントが、更新を必要とし、後に再び試みるようにという通知が送られた。これは、更新される必要がある各コンポーネントに関して行われる。これに対して、本自動更新機構によれば、エンドユーザが、メディアアプリケーションがコンテンツを処理することを許可すると、必要とされるコンポーネントのそれぞれは、全くさらなるユーザ介入なしに、自動的に更新される。取り消されたコンポーネントが存在する場合、処理は、ブロック618に進む。存在しない場合、処理は、ブロック622に進む。図示されていないが、プロセス600は、グローバル取り消しリストの中で取り消されたものとして識別されている、必要とされる各コンポーネントを更新するループ、または他の論理を有することが可能である。
ブロック618で、取り消されたものとして識別されたコンポーネント、または複数のコンポーネントが、更新される。簡単に述べると、図5および図8に関連して後段で詳細に説明するとおり、コンポーネントの更新は、エンドユーザとの最小限の対話を伴って行われる。エンドユーザは、更新が成功した限り、保護されたコンテンツが、シームレスに処理されることが始まるまで、短い遅延を経験する。コンポーネントを更新しようと試みた後、取り消されたコンポーネントの更新が成功したかどうかを判定するチェックが、行われる(判定ブロック620)。取り消されたコンポーネントの更新が成功している場合、処理は、ブロック622に進み、メディアアプリケーションが、保護されたコンテンツを処理することを許可する。更新が成功していない場合、処理は、ブロック624に進む。
ブロック624で、保護されたコンテンツがなぜ処理されることが可能でなかったのかをメディアアプリケーションに知らせる警報が、メディアアプリケーションに送信される。次に、処理は、終了に進む。
図7は、図1に示されるコンピューティングデバイス上で新たなグローバル取り消しリストを更新するための例示的なプロセス700を示す流れ図である。プロセス700は、ブロック702で始まり、保護された環境が、グローバル取り消しリストの要求されるバージョン、またはより上位のバージョンが、それまでにダウンロードされているかどうかをチェックする。図9に関連して後段で説明するとおり、新たなグローバル取り消しリストを定期的にダウンロードする定期的自動更新プロセスが、構成されることが可能である。新たにダウンロードされたグローバル取り消しリストは、保留中のグローバル取り消しリストの1つとして、コンピューティングデバイス上に保存されることが可能である。これらの保留中のグローバル取り消しリストがチェックされて、グローバル取り消しリストの新たなバージョンが、既にダウンロードされているかどうかが調べられる。次に、処理は、判定ブロック704に進む。
判定ブロック704で、要求されるグローバル取り消しリスト、またはより上位のバージョンのグローバル取り消しリストが、コンピューティングデバイス上で既に利用可能であるかどうかの判定が行われる。加えて、保留中のグローバル取り消しリストに対して、グローバル取り消しリストが、保護されたコンテンツと一緒にパッケージ化されているかどうかのチェックが行われる。所望されるグローバル取り消しリストが、利用可能ではない場合、処理は、ブロック706に進む。利用可能である場合、処理は、判定ブロック708に進む。
ブロック706で、要求されるグローバル取り消しリスト、またはより上位のグローバル取り消しリストが、獲得される。コンテンツ・イネーブラ・オブジェクトが、作成されて、グローバル取り消しリストに関する識別子で初期設定される。保護された環境内のオプションにより、グローバル取り消しリストが、要求されるバージョンに更新されるか、またはグローバル取り消しリストの最上位のバージョンに更新されるかが指定される。要求されるバージョンを使用して更新することは、アップグレードが行われた後、保護されたコンテンツが処理されることがほぼ確実に許されるため、有益である。グローバル取り消しリストのより上位のバージョンを使用して更新することは、保護されたコンテンツが機能しないことを生じさせる可能性があるが、コンテンツ所有者に最大のセキュリティを提供する。また、そうすることは、グローバル取り消しリストが更新される必要がある回数を最小限に抑える。メディアアプリケーションは、図5に関連して前述した、統一されたAPIの1つまたは複数を呼び出すことができる。例えば、「AUTOMATIC」がイネーブルにされた場合、呼び出しイネーブルメソッド510が、グローバル取り消しリスト内の識別子によって特定されるグローバル取り消しリストを自動的にインストールする。識別子が、パッケージ識別子を特定する場合、その識別子が、更新サービスに送られて、グローバル取り消しリストが獲得される。識別子が、一意のURLを指定する場合、そのURLは、ダウンロードセンタ、ヘルプウェブページなどに移動することが可能である。一実施形態では、自動インストールは、MICROSOFT(登録商標)WINDOWS(登録商標)Updateソフトウェアを介して達せられることが可能である。この実施形態の場合、新たなグローバル取り消しリストが発行されると、そのグローバル取り消しリストは、メディア更新などの、指定されたカテゴリ内の更新サービスにアップロードされる。指定されたカテゴリは、識別子に基づき、様々なバージョンのグローバル取り消しリストを並べ替えることが可能である。このため、グローバル取り消しリストの最上位のバージョンを獲得するオプションが選択されると、更新サービスは、アップロードされた最後のグローバル取り消しリストをダウンロードする。一実施形態では、更新サービスにアップロードされたグローバル取り消しリストパッケージは、最新のグローバル取り消しリストを含む。別の実施形態では、グローバル取り消しリストセットアップパッケージが、ダウンロードセンタにおいてホストされることが可能である。ダウンロードセンタは、コマンドラインパラメータを受け付け、それらのコマンドラインパラメータを使用して、グローバル取り消しリストの対応するバージョンをインストールする。グローバル取り消しリストセットアップパッケージは、複数のグローバル取り消しリストを含むことが可能であるものの、1つのグローバル取り消しリストが、コマンドラインオプションに基づき、インストールのために選択される。処理は、判定ブロック708に進む。
判定ブロック708で、強制再起動パラメータが点検されて、再起動が必要とされるかどうかが判定される。一実施形態では、新たなグローバル取り消しリストの強制再起動は、現在のグローバル取り消しリストの中の強制再起動パラメータを使用して点検される。比較が相違する場合、処理は、ブロック710に進む。相違していない場合、処理は、判定ブロック714に進む。
ブロック710で、メディアアプリケーションによって必要とされ、取り消されているコンポーネントが、更新される。この更新プロセスを、図8に関連して後段で説明する。コンポーネントが更新された後、処理は、ブロック712に進む。
ブロック712で、新たなグローバル取り消しリストが、現在のグローバル取り消しリストとして保存され、コンピューティングデバイスは、再起動をされる。再起動の後、PEAuthが、コンポーネントがロードされる際、その新たなグローバル取り消しリストを使用する。処理は、完了である。
判定ブロック714で、新たなグローバル取り消しリストが、保護されたプロセスを再スタートすることを指定するかどうかの判定が行われる。この判定は、新たなグローバル取り消しリスト、および現在のグローバル取り消しリストの中のプロセス再スタートパラメータに基づくことが可能である。プロセス再スタートパラメータが相違する場合、処理は、ブロック716に進む。相違していない場合、プロセスは、完了である。
ブロック716で、メディアアプリケーションによって必要とされ、取り消されているコンポーネントが、更新される。この更新プロセスを、図8に関連して後段で説明する。コンポーネントが更新された後、処理は、ブロック718に進む。
ブロック718で、保護されたプロセスが、再スタートされる。前述したとおり、保護されたプロセスを再スタートすることは、保護されたプロセス内の不正なユーザ・モード・コンポーネントを強制終了する。次に、保護されたプロセスが再スタートされると、新たなグローバル取り消しリストの中でリストアップされたユーザ・モード・コンポーネントは、ロードされることを防止される。すると、グローバル取り消しリストを更新するためのプロセス700は、完了である。
図8は、図6に示されるオンデマンド自動更新プロセスにおいて使用されるのに適したコンピュータ可読コンポーネントを更新するための例示的なプロセス800を示す流れ図である。プロセス800は、グローバル取り消しリストにおいて取り消されたものとして特定された、メディアアプリケーションによって必要とされるコンポーネントのそれぞれに関して実行される。しかし、エンドユーザには、ユーザが、自動更新を実行することを所望するかどうかを尋ねるユーザインタフェースが、1回だけ提示されてもよい。プロセス800は、ブロック802で始まり、保留中の更新されたコンポーネントがチェックされて、必要とされる更新されたコンポーネントが、既にダウンロードされて、インストールされているかどうかが判定される。簡単に述べると、図9に関連して後段で説明するとおり、保留中の更新されたコンポーネントは、定期的自動更新プロセスによって、それまでにダウンロードされていることが可能である。処理は、判定ブロック804に進む。
判定ブロック804で、取り消されたコンポーネントが、既に利用可能であるかどうかの判定が行われる。取り消されたコンポーネントが、それまでにダウンロードされている場合、処理は、ブロック814に進む。ダウンロードされていない場合、処理は、ブロック806に進む。
ブロック806で、コンテンツ・イネーブラ・オブジェクトが、取り消されたコンポーネントに関して作成される。コンテンツ・イネーブラ・オブジェクトは、メディア・パイプライン・コンポーネント222によって作成される。コンテンツ・イネーブラ・オブジェクトは、取り消されたコンポーネントに関する識別子で初期設定される。この識別子は、取り消されたコンポーネントに関連するハッシュ、または取り消されたコンポーネントの証明書であることが可能である。取り消された証明書の場合、コンテンツイネーブラは、その証明書の公開鍵のハッシュ、および取り消されたコンポーネントのファイル名で初期設定される。次に、リンク機構が、ハッシュおよび/または証明書に基づき、リダイレクトを行うことが可能である。リンク機構は、取り消された証明書によって署名された各コンポーネントに関して別個のエントリを有することが可能である。処理は、ブロック808に進む。
ブロック808で、コンテンツ・イネーブラ・オブジェクトのイネーブルメソッドが、呼び出される。この呼び出しは、メディア・パイプライン・コンポーネント222が、コンテンツ・イネーブラ・オブジェクトをメディアアプリケーションに送った後、メディアアプリケーション212によって実行される。メディアアプリケーションは、所望される場合、図5に関連して前述した、他の統一されたAPIを使用して、さらなる情報を獲得することもできる。コンテンツ・イネーブラ・オブジェクトにおける識別子は、更新サービス上で入手可能な更新パッケージを特定する。処理は、ブロック810に進む。
ブロック810で、更新オブジェクトが、作成されて、更新サービスに送られる。コンテンツ・イネーブラ・オブジェクトのイネーブルメソッドは、更新オブジェクトを作成することを担う。更新オブジェクトは、取り消されたコンポーネントに関する識別子を含む。更新サービスは、更新オブジェクトを受け取ると、更新サービスのパッケージのなかで、その指定された識別子を有するパッケージを探す。1つの例示的な呼び出しシーケンスは、図5に関連して前段で説明した。処理は、ブロック812に進む。
ブロック812で、メディアアプリケーションが、イネーブルメソッドを介して、更新されたコンポーネントを受け取る。処理は、ブロック814に進む。
ブロック814で、コンピューティングデバイス上に格納された、取り消されたコンポーネントが、更新されたコンポーネントで置き換えられる。これには、取り消されたコンポーネントを、更新されたコンポーネントで上書きすることが必然的に伴う可能性がある。処理は、ブロック816に進む。
ブロック816で、更新されたコンポーネントがロードされ、したがって、メディアアプリケーションは、処理のために、そのコンポーネントを使用することができる。すると、コンポーネントを更新するためのプロセス800は、完了である。前述したとおり、プロセス800は、メディアアプリケーションによって必要とされ、取り消されている各コンポーネントに関して実行される。
図9は、信頼される環境を更新するための例示的な定期的プロセス900を示す流れ図である。一実施形態では、定期的プロセス900は、ワシントン州レッドモンド所在のMICROSOFTコーポレーションによって製造されるMICROSOFT(登録商標)WINDOWS(登録商標)Updateソフトウェアなどの、既存のソフトウェア更新機構を利用してもよい。プロセス900は、ブロック902で始まり、信頼される環境に対する更新に関するチェックが実行されるべきであることを合図する所定のイベントが、受け取られる。この所定のイベントは、或る特定の時刻、或る特定のアクション(例えば、起動)などとして指定されてもよい。所定のイベントに先立ち、ソフトウェア更新機構に関連するクライアントサービスにおけるオプションが、定期的プロセスに関する自動更新動作を制御するために構成される。例えば、このオプションは、1)最新のグローバル取り消しリスト、およびそのリスト内で特定される更新されたコンポーネントのすべてを自動的にダウンロードして、インストールする、2)最新のグローバル取り消しリスト、および特定された、更新されたコンポーネントをダウンロードするが、インストールするのを待つ、3)新たなグローバル取り消しリストおよび/または更新されたコンポーネントが、ダウンロードされるように利用可能であるという通知を送るが、それらのコンポーネントをダウンロードまたはインストールしない、あるいは4)定期的更新をオフにするように指定することができる。その他のオプションが、以上に特定されたオプションに追加されてもよい。前述したとおり、更新されたコンポーネントに関する更新パッケージが、ソフトウェア更新機構を提供するように構成されたサーバにアップロードされる。一般に、定期的更新のための更新パッケージは、オンデマンド更新に関するのと同一である。しかし、これら2つのパッケージは、グローバル取り消しリストのケースにおいて相違する可能性がある。定期的更新パッケージは、新たなグローバル取り消しリストを一時ロケーションにインストールするのに対して、オンデマンド更新パッケージは、現在のグローバル取り消しリストを、更新された取り消しリストで置き換える。処理は、ブロック904に進む。
ブロック904で、コンピューティングデバイス上のクライアントサービスが、ソフトウェア更新サービスを実施するように構成された更新サーバに接続する。通常、この接続は、インターネットを介して行われる。クライアントサービスと更新サービスは、指定されたオプションに従って互いに通信する。処理は、判定ブロック906に進む。
判定ブロック906で、クライアントサービスが、サーバにおいて新たなグローバル取り消しリストが利用可能であるかどうかを調べる要求を、サーバに送る。MICROSOFT(登録商標)WINDOWS(登録商標)Updateソフトウェアを使用する実施形態では、最新のグローバル取り消しリストは、Recommended Updateとして発行されることが可能である。最新のグローバル取り消しリストが、それまでにダウンロードされている場合、処理は、判定ブロック912に進む。ダウンロードされていない場合、処理は、ブロック908に進む。
ブロック908で、指定されたオプションに基づき、クライアントサービスが、所望されるアクションを実行する。例えば、オプション4(通知送信)が選択された場合、クライアントサービスは、コンピューティングデバイス上で表示される通知を送信する。通知は、エンドユーザが、更新を無視するか、ダウンロードおよびインストールを行うか、またはダウンロードだけを行うかを指定することを許す。ダウンロードオプションには、更新パッケージをファイルとして記憶装置上に複製することが必然的に伴う。インストールオプションには、更新パッケージを個々のアイテム(すなわち、指定されたGRL、指定されたコンポーネント)にアンパックすることが必然的に伴う。通常、クライアントサービスは、エンドユーザをそれほど煩わせないオプションである1のデフォルトのオプションでインストールされる。オプション1が選択されたものと想定すると、最新のグローバル取り消しリストが、コンピューティングデバイス上にプッシュされる。次に、クライアントサービスが、コンピューティングデバイス上で信頼されるインストーラを呼び出して、最新のグローバル取り消しリストをインストールする。処理は、ブロック910に進む。
ブロック910で、最新のグローバル取り消しリストが、保留中のグローバル取り消しリストとして保存される。新たなグローバル取り消しリストが更新されると、コンピューティングデバイスを再起動する必要がある可能性があるため、新たなグローバル取り消しリストは、コンピューティングデバイスを、その新たなグローバル取り消しリストで更新することなしに、保存される。新たなグローバル取り消しリストは、エンドユーザが、現在の活性のグローバル取り消しリストより新しいグローバル取り消しリストを要求する、何らかの保護されたコンテンツを処理しようと試みるまで、活性化されない。コンピューティングデバイスは、1つの保留中のグローバル取り消しリストと、1つの活性のグローバル取り消しリストとを有するようにセットアップされることが可能である。このセットアップでは、現在の保留中のグローバル取り消しが、コンピューティングデバイスにプッシュされた最新のグローバル取り消しリストで置き換えられる。別の実施形態では、コンピューティングデバイスは、事前定義された数の保留中のグローバル取り消しリストを保持するようにセットアップされることが可能である。このセットアップでは、コンピューティングデバイスにプッシュされた最新のグローバル取り消しリストが、もう1つの保留中のグローバル取り消しリストとして追加される。コンピューティングデバイスのすべてのユーザに関する読み取りアクセスおよび書き込みアクセスを有するコンピューティングデバイス上のロケーションに、保留中のグローバル取り消しリストを格納することが望ましい。これにより、必要な場合、グローバル取り消しリストを更新する能力が、非管理者に与えられる。グローバル取り消しリストのバージョンを自動的に更新する代わりに、新たにダウンロードされたグローバル取り消しリストを保留中の取り消しリストとして保存することにより、ユーザは、それまで処理可能であった、保護されたコンテンツを処理することができないという残念な体験をすることがない。したがって、エンドユーザに不必要に不都合を感じさせられなくてもよい。処理は、判定ブロック912に進む。
判定ブロック912で、更新されたコンポーネントがダウンロードされるべきかどうかの判定が行われる。更新されたコンポーネントをダウンロードしないオプションが、選択された場合、処理は、完了である。そのようなオプションが選択されなかった場合、処理は、ブロック914に進む。
ブロック914で、クライアントサービスが、最新のグローバル取り消しリストに関連する更新されたコンポーネントを有する最新のパケットを求める要求を送信する。処理は、ブロック916に進む。
ブロック916で、コンピューティングデバイスが、特定されたパケットを受信する。処理は、ブロック918に進む。
ブロック918で、ダウンロードされた、更新されたコンポーネントが、コンピューティングデバイスによってアクセス可能なストレージの中に、保留中のコンポーネントとして保存される。次に、PEAuthが、コンピュータ可読コンポーネントをダウンロードする必要なしに、図7に示されるオンデマンドプロセスを実行する際に、これらの更新されたコンピュータ可読コンポーネントをロードすることができる。処理は完了である。
図11は、定期的プロセスを実施する例示的なアーキテクチャのブロック図である。例示的なアーキテクチャは、インターネット1104を介して接続されたサーバ1102およびコンピューティングデバイス100を含む。サーバ1102は、取り消されたコンポーネントの更新されたバージョン、および新たに発行されたグローバル取り消しリストのためのサーバ更新サービス1110およびストレージ1112を含む。コンピューティングデバイス100は、自動更新サービス1120およびインストーラ1122を含む。自動更新サービスは、サーバ更新サービスと通信して、特定されたコンポーネントを獲得する。次に、特定されたコンポーネントが、保留中のコンポーネント1124として、インストーラ1122を使用してコンピューティングデバイスにインストールされる。
図6〜図9において実行される処理は、図3に示されるグローバル取り消しリストを使用する。しかし、処理は、他の取り消しリストフォーマットを使用して実行されることも可能である。例えば、DRM(デジタル権利メディア)アプリケーションは、Cardeaスタイルのコンポーネント取り消しリスト、およびAppコンポーネント取り消しリストを利用する。これらの他のフォーマットの場合、本自動更新機構は、リンク機構を組み込むことができる。リンク機構は、更新されたコンポーネントをダウンロードすることができる、または新たな取り消しリストをダウンロードすることができるURL(ユニフォーム・リソース・ロケータ)に識別子を関連付けるように構成されている。図10は、識別子をURLに関連付けるための1つの例示的なリンク機構を示す。これらの他のメディアアプリケーションでは、メディアアプリケーションのルックアップシステムは、本自動更新機構によって必要とされるタイプの情報をサポートしない。したがって、コンテンツイネーブラAPIが、いずれのタイプの識別子も受け取り、その識別子が、更新サービス、サードパーティウェブサイト、またはヘルプページに関連付けられているかどうかを区別する。これらの他の取り消しリストを利用するメディアアプリケーションは、本自動更新機構を呼び出すコードを含む。その場合、GUIDを送る代わりに、メディアアプリケーションは、ハッシュまたは公開鍵などの独自のタイプの識別子を送る。メディアパイプラインが、識別子を使用してFWLINKを構築する。プロセスは、次に、リンク機構を介して一意識別子をルックアップし、関連付けられたURLを得る。テーブル1000は、リンク機構の一実施形態を示す。テーブル1000は、以下の2つの列、すなわち、識別子列1002およびURL列1004を含む。一般に、識別子は、コンポーネントまたは取り消しリストを一意に特定する。識別子は、FWLINK機構1008をサポートするウェブサイトURL部分1006を含む。また、識別子は、一意のコンポーネントまたは取り消しリストに関連付けられるリンクid1012またはハッシュ1010も含む。URL列1004は、特定されたコンポーネントをインストールすることができる、ヘルプ命令を獲得することができるといったようなウェブサイトに関するURLを格納する。URLが、GUID={someguid}をクエリ・ストリング・パラメータとして含む場合、自動更新機構は、指定されたGUIDを使用して、更新サービスを介して、そのコンポーネントを探し出そうと試みる。そのコンポーネントが、更新サービス上で見つからない場合、自動更新機構は、URLをエンドユーザに表示する。次に、FWLINKデータベースは、更新サービスを介して利用可能なコンポーネントに関するURLが、オプションのパラメータとしてGUIDを有して構成されることを確実にする。一実施形態では、或る特定のグローバル取り消しリストが、クエリ・ストリング・パラメータを使用して指定されることが可能である。次に、FWLINKが、第2のクエリ・ストリング・パラメータを使用して、グローバル取り消しリストの指定されたバージョンに関するセットアップパッケージを表すGUIDをポイントするように、ポピュレートされる。動作の際、コンテンツ・イネーブラ・オブジェクトが、グローバル取り消しリストハッシュ(すなわち、固定のストリング)で初期設定されると、グローバル取り消しリストのバージョンが、クエリ・ストリング・パラメータを使用して指定される。コンテンツイネーブラは、FWLINK動作を実行すると、GUIDを指定するリンクを検出する。次に、コンテンツイネーブラは、更新サービスを使用して、GUIDを有するコンポーネントをダウンロードして、インストールする。
例示的な実施形態およびアプリケーションを図示し、説明してきたが、本発明は、前述した構成およびリソースそのものに限定されないことを理解されたい。当業者には明白な、様々な改変、変更、および変形が、主張する発明の範囲を逸脱することなく、本明細書で開示される実施形態の構成、動作、および詳細において行われることが可能である。
本明細書で説明する自動更新技術および自動更新機構を実施するのに使用されることが可能である例示的なコンピューティングデバイスを示す図である。 本自動更新機構が対話して、図1に示されるコンピューティングデバイス内で処理されるコンテンツを保護する、例示的なコンテンツ保護スキームを示す図である。 本自動更新機構によって使用されるグローバル取り消しリストに関する例示的なフォーマットを示す図である。 グローバル取り消しリストの別の実施形態を示す図である。 本自動更新機構内部で使用されて、保護されたコンテンツを処理することを所望するメディアアプリケーションのための統一されたアプリケーション・プログラミング・インタフェース・セットを提供することができる例示的なインタフェースを示す図である。 信頼される環境を得るための例示的なオンデマンド自動更新プロセスを示す流れ図である。 図6に示されるオンデマンドプロセスにおいて使用されるのに適した新たなグローバル取り消しリストを更新するための例示的なプロセスを示す流れ図である。 図6に示されるオンデマンドプロセスにおいて使用されるのに適したコンピュータ可読コンポーネントを更新するための例示的なプロセスを示す流れ図である。 図1に示されるコンピューティングデバイス上で、信頼される環境を更新する定期的プロセスを実行するための例示的なプロセスを示す流れ図である。 グローバル取り消しリスト更新および更新コンポーネントを探し出すための例示的な機構を示す図である。 定期的プロセスを実施する例示的なアーキテクチャを示すブロック図である。

Claims (11)

  1. 新たな取り消しリストが、更新サービスにおいて発行されているかどうかを定期的にチェックするステップと、
    前記定期的チェック中、前記新たな取り消しリストに関する推奨される更新が存在するという指示を前記更新サービスから受信すると、前記新たな取り消しリストをダウンロードして、前記新たな取り消しリストを保留中の取り消しリストとして保存し、前記保留中の取り消しリストは、保護されたコンテンツが、コンピューティングデバイス上の現在の保護レベルによって提供される保護よりも高いレベルの保護を、該コンピューティングデバイス上で要求する際に、オンデマンド更新のために利用可能であるステップと、
    前記指示を受信すると、前記新たな取り消しリスト内で取り消されたコンポーネントとしてリストアップされる各コンポーネントの更新されたバージョンをダウンロードするステップと、
    を含むコンピュータによって実施される方法であって、
    前記取り消されたコンポーネントが、前記更新バージョンのインストールの起点となる前記更新サービス上のロケーションを特定するのに使用されるGUIDによって特定されることを特徴とする、
    コンピュータによって実施される方法。
  2. 定期的にチェックするステップは、前記コンピューティングデバイスが再起動されると、実行される請求項1に記載のコンピュータによって実施される方法。
  3. 前記新たな取り消しリストは、現在の保留中の取り消しリストと入れ替わる請求項1に記載のコンピュータによって実施される方法。
  4. 前記保留中の取り消しリストは、それまでにダウンロードされた複数の保留中の取り消しリストの1つとして保存される請求項1に記載のコンピュータによって実施される方法。
  5. 前記更新サービスは、MICROSOFT(登録商標)WINDOWS(登録商標)更新サービスを含む請求項1に記載のコンピュータによって実施される方法。
  6. 前記取り消されたコンポーネントは、前記取り消されたコンポーネントのハッシュによって特定される請求項1に記載のコンピュータによって実施される方法。
  7. 前記取り消されたコンポーネントは、前記取り消されたコンポーネントの証明書によって特定される請求項1に記載のコンピュータによって実施される方法。
  8. 前記更新サービスは、メディアアプリケーションに関連するカテゴリを提供し、新たな取り消しリストは、前記カテゴリ内で発行される請求項1に記載のコンピュータによって実施される方法。
  9. 複数のパッケージが、前記カテゴリ内で発行され、各パッケージは、前記新たな取り消しリストの1つに関連し、前記関連する取り消しリストの中で取り消されたものとしてリストアップされているコンポーネントの更新されたバージョンを含む請求項に記載のコンピュータによって実施される方法。
  10. 新たな取り消しリストが、更新サービスにおいて発行されているかどうかを、ネットワークを介して定期的にチェックするように構成された自動更新サービスと、
    前記更新サービスから前記新たな取り消しリストをダウンロードした後、前記新たな取り消しリストをコンピューティングデバイスにインストールするように構成されたインストーラコンポーネントと、
    前記新たな取り消しリストによって指定された保護レベルまでコンピューティングデバイスを、保護されたコンテンツの処理が、前記保護レベルを要求する場合に、更新するために利用可能な、保留中の取り消しリストとして、前記インストールされた新たな取り消しリストを格納するように構成された格納コンポーネントとを含むコンピュータ実行可能コンポーネントを有するコンピュータ可読記憶メディア。
  11. プロセッサと、
    複数のコンピュータ実行可能コンポーネントがロードされたメモリとを含み、前記複数のコンポーネントは、
    新たな取り消しリストが、更新サービスにおいて発行されているかどうかを、ネットワークを介して定期的にチェックするように構成された自動更新サービスと、
    前記更新サービスから前記新たな取り消しリストをダウンロードした後、前記新たな取り消しリストをコンピューティングデバイスにインストールするように構成されたインストーラコンポーネントと、
    前記新たな取り消しリストによって指定された保護レベルまでコンピューティングデバイスを、保護されたコンテンツの処理が、前記保護レベルを要求する場合に、更新するために利用可能な、保留中の取り消しリストとして、前記インストールされた新たな取り消しリストを格納するように構成された格納コンポーネントとを含むコンピューティングデバイス。
JP2008522834A 2005-07-19 2006-07-14 信頼される環境をサポートするコンピュータ可読コンポーネントの自動更新 Active JP5027807B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/184,555 US7590841B2 (en) 2005-07-19 2005-07-19 Automatic update of computer-readable components to support a trusted environment
US11/184,555 2005-07-19
PCT/US2006/027251 WO2007011667A2 (en) 2005-07-19 2006-07-14 Automatic update of computer-readable components to support a trusted environment

Publications (3)

Publication Number Publication Date
JP2009503648A JP2009503648A (ja) 2009-01-29
JP2009503648A5 JP2009503648A5 (ja) 2009-07-23
JP5027807B2 true JP5027807B2 (ja) 2012-09-19

Family

ID=37669367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008522834A Active JP5027807B2 (ja) 2005-07-19 2006-07-14 信頼される環境をサポートするコンピュータ可読コンポーネントの自動更新

Country Status (10)

Country Link
US (1) US7590841B2 (ja)
EP (1) EP1905184B1 (ja)
JP (1) JP5027807B2 (ja)
KR (1) KR101238572B1 (ja)
CN (1) CN101310472B (ja)
AU (1) AU2006270273B2 (ja)
BR (1) BRPI0612865B1 (ja)
CA (1) CA2612631C (ja)
NO (1) NO20076576L (ja)
WO (1) WO2007011667A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US8074287B2 (en) * 2004-04-30 2011-12-06 Microsoft Corporation Renewable and individualizable elements of a protected environment
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8230037B2 (en) * 2006-09-29 2012-07-24 Audible, Inc. Methods and apparatus for customized content delivery
US8875259B2 (en) * 2007-11-15 2014-10-28 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US8584212B1 (en) 2007-11-15 2013-11-12 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US9253536B2 (en) * 2009-03-18 2016-02-02 Microsoft Technology Licensing, Llc Updating data-consuming entities
US9135091B2 (en) 2009-04-03 2015-09-15 Microsoft Technology Licensing, Llc Communicating events or data between application components
US8205257B1 (en) * 2009-07-28 2012-06-19 Symantec Corporation Systems and methods for preventing threats originating from a non-process based component hosted by a trusted process
US20110185179A1 (en) * 2009-08-26 2011-07-28 Viswanathan Swaminathan System And Method For Digital Rights Management With A Lightweight Digital Watermarking Component
EP2360581A1 (en) * 2010-01-18 2011-08-24 Thomson Licensing Method, system and device for execution of a software application
JP5932837B2 (ja) 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
US10282221B2 (en) * 2011-12-09 2019-05-07 International Business Machines Corporation Controlling usage of virtual disks before their attachment to virtual machines
US9727326B2 (en) * 2013-03-15 2017-08-08 Apple Inc. Providing customized notifications for security software updates
US9143565B2 (en) * 2013-05-30 2015-09-22 Opentv, Inc. Synchronizing an application on a companion device
US9298923B2 (en) * 2013-09-04 2016-03-29 Cisco Technology, Inc. Software revocation infrastructure
US10409989B2 (en) 2014-12-26 2019-09-10 Mcafee, Llc Trusted updates
CN106843922B (zh) * 2016-12-13 2020-08-04 青岛海信移动通信技术股份有限公司 一种程序的更新方法和装置
US10445503B2 (en) 2017-07-14 2019-10-15 Google Llc Secure persistent software updates

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5373561A (en) * 1992-12-21 1994-12-13 Bell Communications Research, Inc. Method of extending the validity of a cryptographic certificate
US6367013B1 (en) * 1995-01-17 2002-04-02 Eoriginal Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
US5615268A (en) * 1995-01-17 1997-03-25 Document Authentication Systems, Inc. System and method for electronic transmission storage and retrieval of authenticated documents
US6128740A (en) * 1997-12-08 2000-10-03 Entrust Technologies Limited Computer security system and method with on demand publishing of certificate revocation lists
EP1096446A3 (en) * 1999-11-01 2004-02-11 Citicorp Development Center, Inc. Method and system for secure communication between a self-service financial transaction terminal and a remote operator interface
FR2834406A1 (fr) 2001-12-28 2003-07-04 Thomson Licensing Sa Procede de mise a jour d'une liste de revocation de cles, d'appareils ou de modules non-conformes dans un systeme de diffusion securise de contenu
JP4474845B2 (ja) * 2002-06-12 2010-06-09 株式会社日立製作所 Crl発行通知機能付き認証基盤システム
JP2004056635A (ja) * 2002-07-23 2004-02-19 Hitachi Ltd 証明書失効リストの更新装置、システム及び方法
US20040205345A1 (en) * 2003-04-11 2004-10-14 Ripley Michael S. System for identification and revocation of audiovisual titles and replicators

Also Published As

Publication number Publication date
BRPI0612865B1 (pt) 2019-10-01
CN101310472B (zh) 2011-12-07
EP1905184A4 (en) 2016-03-30
CN101310472A (zh) 2008-11-19
WO2007011667A2 (en) 2007-01-25
US20070033652A1 (en) 2007-02-08
KR101238572B1 (ko) 2013-03-04
EP1905184B1 (en) 2018-02-14
US7590841B2 (en) 2009-09-15
EP1905184A2 (en) 2008-04-02
CA2612631C (en) 2014-03-04
BRPI0612865A2 (pt) 2010-11-30
JP2009503648A (ja) 2009-01-29
WO2007011667A3 (en) 2007-08-23
NO20076576L (no) 2008-02-18
AU2006270273A1 (en) 2007-01-25
KR20080026132A (ko) 2008-03-24
AU2006270273B2 (en) 2010-05-06
CA2612631A1 (en) 2007-01-25

Similar Documents

Publication Publication Date Title
JP5027807B2 (ja) 信頼される環境をサポートするコンピュータ可読コンポーネントの自動更新
US7650492B2 (en) Automatic update of computer-readable components to support a trusted environment
JP5403771B2 (ja) ファームウェアに安全なアップデートを提供するシステム及び方法
US9679130B2 (en) Pervasive package identifiers
US7434263B2 (en) System and method for secure storage data using a key
US8667487B1 (en) Web browser extensions
US9092598B2 (en) Version-based software product activation
JP5460698B2 (ja) 安全なアプリケーションストリーミング
US8739298B2 (en) Method and system for enforcing a license dependency rule for a software application
US20130298128A1 (en) Managed control of processes including privilege escalation
US20080052698A1 (en) Providing firmware updates to portable media devices
US20060015718A1 (en) Use of kernel authorization data to maintain security in a digital processing system
JP2005129066A (ja) オペレーティングシステムリソース保護
KR100883699B1 (ko) 무선 장치 동작 환경에서 비검증된 프로그램들의 실행
KR101453225B1 (ko) 애플리케이션 배포 시스템, 애플리케이션 배포 방법, 단말 및 프로그램
BRPI0616033B1 (pt) mídia legível por computador e método para dissuadir pirataria em um ambiente de licença em volume
CN110555293A (zh) 用于保护数据的方法、装置、电子设备和计算机可读介质
WO2006124239A2 (en) Disk protection using enhanced write filter
KR101977428B1 (ko) 애플리케이션용 콘텐츠 핸들링 기법
US20140090063A1 (en) System and method for inhibiting the processing of new code modules by an outdated runtime environment
Griffiths et al. Fireguard-A secure browser with reduced forensic footprint

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090601

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090601

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120622

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5027807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250