JP2012181862A - クライアント・プラットフォーム上のコンテンツを保護する方法 - Google Patents

クライアント・プラットフォーム上のコンテンツを保護する方法 Download PDF

Info

Publication number
JP2012181862A
JP2012181862A JP2012108469A JP2012108469A JP2012181862A JP 2012181862 A JP2012181862 A JP 2012181862A JP 2012108469 A JP2012108469 A JP 2012108469A JP 2012108469 A JP2012108469 A JP 2012108469A JP 2012181862 A JP2012181862 A JP 2012181862A
Authority
JP
Japan
Prior art keywords
content
component
memory
computer system
management layer
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.)
Pending
Application number
JP2012108469A
Other languages
English (en)
Inventor
Prashant Dewan
デワン プラシャント
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.)
Intel Corp
Original Assignee
Intel 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
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2012181862A publication Critical patent/JP2012181862A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】受信側コンピュータ・システム上のマルウェアからコンテンツが保護されることを確実にするクライアント・セキュリティ管理レイヤ及びコンテンツ・プレイヤを提供する旨の命令を備えた方法、コンピュータ・システム、及びコンピュータ読み取り可能な媒体。
【解決手段】クライアント・セキュリティ管理レイヤは、コンピュータ・システムのプロセッサ上で実行する、コンテンツ・プレイヤなどの構成部分に代わってコンピュータ・システムのメモリの保護部分に対するアクセスを制御する。クライアント・セキュリティ管理レイヤは、上記構成部分から暗号化コンテンツ鍵を受け取り、構成部分のインテグリティを確認し、暗号化コンテンツ鍵を復号して復号コンテンツ鍵を供給し、構成部分のインテグリティの確認に応じて復号コンテンツ鍵をメモリの保護部分に入れる。他の実施例を明細書及び特許請求の範囲に記載している。
【選択図】図3

Description

著作権の告知
本出願には、著作権保護の対象となる資料が含まれている。著作権者は、米国特許商標庁の特許のファイル又は記録に記載の特許の開示が如何なる個人によってファクシミリ複製されることにも異議はないが、著作権に対する一切の権利を全て所有する。
本願は一般に、ディジタル・コンテンツの保護に関する。
ディジタル著作権管理は、技術及び娯楽の産業にとっては難題である。毎日、数百万ドル(数億円)が、インターネットからの映画及び音楽のファイルの不正ダウンロードによって失われている。コンテンツ・スクランブリング手法や高度アクセス・コンテンツ・システムなどの、これまで実現されてきた解決策は、前述のデータの損失に対して提供される保護が十分でなかった。
コンピュータ・システムを管理下に置こうとし、かつ/又はディジタル・コンテンツを盗もうとするマルウェアによる高度かつ進化している攻撃により、前述の損失が悪化している。前述の攻撃は、ソフトウェア・プログラムをクラッシュさせようとする試みから、別の目的でのプログラムの破壊に及ぶ各種形態をとり得る。主メモリ中で、かつ、転送中にコンテンツを保護する鍵、構成情報、及び/又は、ソフトウェア・プログラムのコードなどのランタイム・データの保護は、技術及び娯楽の産業にとって特に難題である。
本発明の実施例は、コンテンツ・サーバからの受信コンテンツを保護し、受信側のコンテンツ・プレイヤの保護サービスを提供する旨の命令を方法、システム及びコンピュータ読み取り可能な記憶媒体に提供することができる。セキュアなクライアント・プラットフォームは、コンテンツ・サーバにそのインテグリティの証明を提供する。前述のインテグリティの証明には、コンテンツを盗むことが企図された「コンテンツ・リッパー(content rippers)」として知られているソフトウェアに対する保護、及び保護された「既知」のコンテンツ・プレイヤの存在の証明が含まれる。コンテンツ・サーバは、インテグリティ保護された「既知の」コンテンツ・プレイヤに対してコンテンツ鍵を供給する。
本発明の実施例による、実行環境内のソフトウェア構成部分の保護を提供するためのプラットフォームを示す図である。 本発明の実施例による、並列実行環境を利用したプラットフォームを示す図である。 本発明の一実施例によるセキュアなプラットフォームのアーキテクチャを示すブロック図である。 図3のセキュアなプラットフォームのアーキテクチャによって提供される環境において動作するよう構成されたコンテンツ・プレイヤ(図3のコンテンツ・プレイヤなど)の動作の方法を示すフローチャートである。 図3のセキュアなプラットフォームのアーキテクチャによって提供される環境とともに動作するよう構成されたコンテンツ・サーバの動作の方法を示すフローチャートである。 図3のセキュアなプラットフォーム・アーキテクチャを提供するよう構成されたクライアント・セキュリティ管理レイヤの動作の方法を示すフローチャートである。
種々の実施例は、1つ又は複数の構成要素を含み得る。構成要素は、特定の動作を行うよう構成された何れの構造も含み得る。各構成要素は、設計パラメータ又は性能制約の特定の組についての必要に応じて、ハードウェア、ソフトウェア、又はそれらの何れかの組合せとして実現することができる。一実施例は、例として、特定のトポロジにおける限定数の構成要素によって説明することができるが、前述の実施例は、特定の実現形態に望ましい別のトポロジにおいて、より多くの、又はより少ない構成要素を含み得る。「one embodiment」又は「an embodiment」への言及は何れも、本願の実施例に関して説明した特定の構成、構造又は特性が少なくとも一実施例に含まれていることを意味しているということを特筆する。本明細書中の随所に「in one embodiment」という句が存在することは、その全てが同じ実施例を表している訳でない。
図1は、本発明の実施例による、コンテンツ・サーバから受け取られたコンテンツを保護するためのプラットフォーム100を示す。プラットフォーム100は、実行オペレーティング・システム(OS)108のドメインであり得る実行環境104を有し得る。OS108は、以下に更に詳細に説明するように、選択された構成部分に、下にある管理モジュール116によって提供されるパーティション内メモリ・アクセス保護に従って、ソフトウェア構成部分112などの、実行環境104内の他の構成部分の一般動作を実行し、制御するよう構成された構成部分であり得る。
一部の実施例では、構成部分112は、スーパーバイザリ・レベルの構成部分(例えば、カーネル構成部分)であり得る。種々の実施例では、カーネル構成部分は、サービス(例えば、ローダ、スケジューラ、メモリ・マネージャ等)、拡張/ドライバ(例えば、ネットワーク・カード用、ユニバーサル・シリアル・バス(USB)インタフェース用、ディスク・ドライブ用等)、又はサービス・ドライバ・ハイブリッド(例えば、コードの実行を監視するための侵入検知器)であり得る。あるいは、実施例では、構成部分112は、アプリケーション・プロセス。スレッド、又は他のユーザ空間プログラム、サービス、若しくはライブラリであり得る。
本明細書及び特許請求の範囲記載の「構成部分」の語は、所望の結果を得るために使用することができるプログラミング・ロジック及び関連付けられたデータを表すことを意図している。構成部分の語は、「モジュール」又は「エージェント」と同義であり得、プログラミング言語(C++、インテル・アーキテクチャ32ビット(IA−32)実行可能なコード等など)で記述された、場合によっては入口点及び出口点を有するソフトウェア命令の集合、又はハードウェア若しくはファームウェアで実施することができるプログラミング・ロジックを表し得る。
ソフトウェア構成部分は、実行可能なプログラムにコンパイルし、リンクするか、あるいは、動的リンク・ライブラリにインストールするか、あるいはBASICなどの解釈言語で記述することができる。ソフトウェア構成部分は、他の構成部分から、又はそれ自身から呼び出すことができ、かつ/又は、検出イベント又は割り込みに応じて呼び出すことができる。ソフトウェア命令は、マシン・アクセス可能な媒体において供給することができる。マシン・アクセス可能な媒体がアクセスされると、本発明の実施例の構成部分に関して説明した動作又は実行をマシンが行うことをもたらし得る。マシン・アクセス可能な媒体は、ファームウェア、例えば、電気的に消去可能なプログラマブル・リードオンリ・メモリ(EEPROM)、又は、他の記録可能な/記録可能でない媒体(例えば、リードオンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶装置、光ディスク記憶装置等)であり得る。更に、ハードウェア構成部分は、接続された論理装置(ゲート及びフリップフロップなど)を含み得、かつ/又は、プログラマブル装置(プログラマブル・ゲート・アレイ又はプロセッサなど)を含み得る。一部の実施例では、本明細書及び特許請求の範囲記載の構成部分は、ソフトウェア・モジュールとして実現されるが、しかし、ハードウェア又はファームウェアで表すことができる。更に、特定数の個別ソフトウェア/ハードウェア構成部分を例証し、かつ/又は説明しているが、前述の構成部分はしかし、本発明の実施例の趣旨及び範囲から逸脱しない限り、より多くの構成部分、又はより少ない構成部分によって表すことができる。
実行環境104の選択された構成部分のイントラ・パーティション化に加えて、管理モジュール116は、1つ又は複数のプロセッサ120、ネットワーク・インタフェース・コントローラ(NIC)124、記憶装置128、及び/又はメモリ132などのハードウェア資源118への一般的な構成部分のアクセスのアービトレーションを行うことができる。
プロセッサ120は、プラットフォーム100の構成部分のプログラミング命令を実行することができる。プロセッサ120は、単一コア及び/又は複数コア・プロセッサ、コントローラ、特殊用途向け集積回路(ASIC)等であり得る。
一実施例では、プラットフォーム100上の構成部分(限定列挙でないが、オペレーティング・システム、プログラム・ファイル、構成ファイル等など)を実行するために使用する対象の永続的コンテンツを記憶するための不揮発性記憶装置を表し得る。一実施例では、構成部分112のソース・コンテンツの永続的記憶を表し得る記憶コンテンツ136を含み得る。ソース・コンテンツの永続的記憶装置は、例えば、実行可能なファイル及び/又はコード・セグメント、他のルーチンへのリンク(例えば、動的リンク・ライブラリ(DLL)へのコール)、データ・セグメント等を有し得る実行可能なコード記憶装置を含み得る。
種々の実施例では、記憶装置128は、限定列挙でないが、ディスク及び関連付けられたドライブ(例えば、磁気、光)、ユニバーサル・シリアル・バス(USB)記憶装置及び関連付けられたポート、フラッシュ・メモリ、ROM、不揮発性半導体デバイス等などの一体化された記憶装置、及び/又は周辺記憶装置を含み得る。
種々の実施例では、記憶装置128は、プラットフォーム100の物理的な部分である記憶資源であり得るか、又はプラットフォーム100の一部で必ずしもないが、プラットフォーム100によってアクセス可能であり得る。例えば、記憶装置128は、ネットワーク・インタフェース・コントローラ124を介してネットワーク140を経由してプラットフォーム100によってアクセスすることができる。
(例えば、OS108のローディング構成部分又はエージェントからの)ロード要求により、管理モジュール116及び/又はOS108は、実行環境104における構成部分112の動作のためにアクティブ・コンテンツ144としてメモリ132に、記憶装置128から記憶コンテンツ136をロードすることができる。
種々の実施例では、メモリ132は、プラットフォーム100上の構成部分の動作のためにアクティブ・コンテンツを供給するための不揮発性記憶装置であり得る。種々の実施例では、メモリ132は、RAM、ダイナミックRAM(DRAM)、スタティックRAM(SRAM)、シンクロナスDRAM(SDRAM)、デュアルデータ・レートRAM(DDRAM)、キャッシュ等を含み得る。
一部の実施例では、メモリ132は、記憶されたコンテンツをいくつかのメモリ位置群に編成することができる。固定サイズ及び/又は可変サイズであり得る前述の編成群は、仮想メモリ管理を容易にし得る。メモリ位置群はページ、セグメント、又はそれらの組合せであり得る。
ページングを利用する仮想メモリは、より小さな物理メモリ・ページによる、大容量の論理/線形アドレス空間のエミュレーションを容易にし得る。したがって、実行環境104は、次いでメモリ132の物理ページにマッピングすることができる、構成部分が動作し得る仮想実行環境を提供し得る。OS108及び/又は管理モジュール116によって運用されるページ・テーブルは、実行環境104の構成部分によって提供される論理/線形アドレスをメモリ132の物理アドレスにマッピングすることができる。
種々の実施例では、構成部分112、又はその一部分は、構成部分112に保護サービスを提供するためのイントラ・パーティション化のために選択することができる。例えば、構成部分112は、コンテンツ・サーバからコンテンツを受け取るためのコンテンツ・プレイヤを表し得る。管理モジュール116は、構成部分112へのOS108又は他の構成部分によるアクセスを制御するために構成部分112の一部を識別し、パーティション化することができる。パーティション化された部分は、特定の構成部分の何れかの部分乃至全部を含み得る。パーティション化された部分は、必要な場合、下にあるプラットフォームによってイントラ実行環境アクセスを監視し、制限することができるように、同じ実行環境内の他の構成部分から物理的に又は仮想的に分離することができる。イントラ・パーティション化は、構成部分112が、別個のOSで、完全に別個の実行環境において動作することを必要とすることなく、例えば、OS108からの構成部分112の隔離を容易にすることができる。例えば、マルウェア、ルートキット、重大なランタイム障害等により、特定のやり方で損なうことができる実行環境104内で、他の構成部分(同様な、又はより高い特権レベルのもの)からの保護のレベルを構成部分112に与えることもできる。本発明の実施例は、実行環境104の構成部分112と他の構成部分(例えば、OS108)との間の許可された相互作用をなお可能にしながら、保護サービスを行うことができる。構成部分112へのOS108によるアクセスの制御は、種々のレベルのアクセス制限を含み得る。
種々の実施例では、実行環境内のコンテンツを保護するための構成部分のイントラ・パーティション化は、仮想化技術(VT)対応のプラットフォームにおいて動作する仮想マシンなどの複数の実行環境を有するプラットフォームにおいて有用であり得る。前述の実施例では、管理モジュールは、仮想マシン・モニタ(VMM)を含み得るか、又はVMMの一部であり得る。
ハイパーバイザ及びハードウェアのプラットフォーム証明は、トラステッド・コンピューティング・グループ(TCG)標準化団体において規定されている。TCGによって規定された証明機構は、「測定されたコード」がクライアント・プラットフォーム上で実行しているということに対する証明を提供することを含む。コードは、コードの現在のバージョンを、コードの元の「価値の基準」のバージョンと比較することによって「測定される」。コードにおける、元の「価値の標準」からの何れのばらつきも、場合によっては、ウィルス又は他のマルウェアによって上書きされていて、コードがタンパリングを受けているということの表示である。
通常、TCG標準の下でのプラットフォーム証明のために測定されるコードは、システム・ハードウェア構成部分及びハイパーバイザ・コードを識別し、初期化するBIOSコードなどのコードを含む。ハイパーバイザは、複数のオペレーティング・システムがホスト・コンピュータ・システム上で実行することを可能にし、「仮想マシン・モニタ」としても表される。プラットフォーム証明のための測定は、現在、利用可能なオペレーティング・システム及びアプリケーション・プログラムのバージョンが無数あることが理由で、通常、オペレーティング・システムに、又はアプリケーション・プログラムに拡張されない。利用可能なオペレーティング・システム及びアプリケーション・プログラムのバージョンが非常に多い中で、測定コードとの比較のためにコードの各バージョンの確認された元の「価値の基準」の複製を保持することは、管理可能でない負担としてみなされる。
「Secure Vault Service for Software Components within an Execution Envirionment」と題する、西暦2007年8月2日付出願の米国特許出願第11/229126号は、本出願の譲受人に譲渡されており、その内容全部を本明細書及び特許請求の範囲に援用する。米国特許出願第11/229126号には、仮想マシン内のオペレーティング・システム及びアプリケーション・プログラムを測定し、保護するために使用することが可能なセキュア・ボールト・サービスが記載されている。セキュア・ボールト・サービスは、オペレーティング・システムよりも高い特権レベルで実行する仮想マシン・モニタによって提供される。よって、セキュア・ボールト・サービスは、オペレーティング・システムが損なわれているシステム上のデータ及びプログラム構成部分を保護することが可能である。セキュア・ボールト・サービスを提供する仮想マシン・モニタは本明細書及び特許請求の範囲では、「クライアント・セキュリティ管理レイヤ」として表される。
図2は、本発明の実施例による、構成部分の保護サービス及び並列実行環境を提供するために仮想化を利用するプラットフォーム200を示す。種々の実施例では、プラットフォーム200は、図1のプラットフォーム100と同様であるか、又は、図1のプラットフォーム100とほぼ置換可能であり得る。更に、後述する構成要素は、上述の同様な名称の構成要素と同様か、又は前述の構成要素とほぼ置換可能であり、逆も同様であり得る。
この実施例では、プラットフォーム200上の管理モジュール(例えば、仮想マシン・モニタ(VMM)204)は、独立して動作する1つ又は複数の実行環境又は「仮想マシン(VM)」(例えば、ゲストVM228及び補助VM232)に、プラットフォーム・ハードウェア208の複数の抽象化及び/又はビュー、例えば、1つ又は複数のプロセッサ212、ネットワーク・インタフェース・コントローラ(NIC)216、記憶装置220、及び/又はメモリ224を提示し得る。補助VM232は、ゲストVM228と独立し、セキュアに分離されたコードを実行するよう構成し得、補助VM232の構成部分を変えるか、修正するか、読み出すか、又は他のやり方で影響を及ぼす動作をゲストVM228の構成部分が実行することを妨げ得る。プラットフォーム200は2つのVMを示しているが、他の実施例は何れの数のVMも使用することができる。
ゲストVM228及び補助VM232において動作する構成部分はそれぞれ、仮想マシンでなく専用コンピュータ上で実行しているように、ゲストVM228及び補助VM232において動作する構成部分がそれぞれ動作し得る。すなわち、ゲストVM228及び補助VM232において動作する構成部分はそれぞれ、種々のイベントを制御し、ハードウェア208への完全なアクセスを有することが期待され得る。VMM204は、ハードウェア208へのVMアクセスを管理し得る。VMM204は、ソフトウェア(例えば、ホスト・オペレーティング・システムの構成部分及び/又はスタンドアロン・プログラムとして)、ハードウェア、ファームウェア、及び/又はそれらの何れかの組合せで実現することができる。
ゲストVM228はOS236及び構成部分240を含み得る。指定されたイベントに応じて、VMM204は、OS236又は他の構成部分による、パーティション化された部分へのアクセスを制御するために、構成部分240の一部分を識別し、パ―ティション化することができる。前述のパーティション化された部分の1つ又は複数は、コンテンツ・プレイヤがコンテンツ・サーバからコンテンツを受け取ることを表すために使用することができる。種々の実施例では、指定された他のイベントは、記憶コンテンツ244が記憶装置220からメモリ224にアクティブ・コンテンツ248としてロードされる場合、又は、構成部分240が保護を要求する場合であり得る。しかし、種々の実施例では、指定された他のイベントを追加的に/代替的に使用することができる。
構成部分240は、VMM204に登録し、特に、保護するためにVMM204のインテグリティ・サービス・モジュール(ISM)252に登録することができる。種々の実施例では、登録は、登録イベント(例えば、メモリ224へのアクティブ・コンテンツ248のローディング)の発生により、周期的に、かつ/又は他の特定のイベントに駆動されるやり方で行われ得る。種々の実施例では、登録は、構成部分240、VM228内の別の構成部分、例えば、OS236、VMM204、又はVM232の構成部分によって起動させることができる。
登録を受信すると、ISM252は、構成部分240のインテグリティを認証し、検証するために、VM232において動作するインテグリティ測定モジュール(IMM)256と協調することができる。構成部分240のインテグリティの認証及び検証は、認可されていない修正及び/又は悪意のある停止の阻止に寄与し得、認識された構成部分のみが、管理者、ユーザ、又は他のポリシーによって規定された保護を与えられ得るということを確実にし得る。IMM256は、OS260のコンテキストでVMドメイン232において、又は、別個のハードウェアにおいて動作し得、よって、概ね、OS236と無関係であり得る。VM228のコンテキスト外で実行することにより、IMM256は、OS236のコンテキストで、存在していないか、又は場合によっては、損なわれたことがあり得る正確かつ信頼できるメモリ測定機能を有し得る。
IMM256は、検証要求(合格、不合格、条件付き合格、条件付き不合格)に対する応答をISM252に与えることができる。種々の実施例では、条件は、合格と不合格との間のインテグリティ検証の度合いを反映し得る。IMM256は事実上、構成部分及びそのデータを識別し、又は認証し、メモリにおいて期待された正しい形式のものであることを保証する。
一部の実施例では、アクティブ・コンテンツ248は、構成部分240のインテグリティの検証において使用するための情報の収集物であり得るインテグリティ・マニフェストを含み得る。種々の実施例では、インテグリティ・マニフェストは、記憶コンテンツ244(例えば、コード記憶及び/あるいはスタティック及び/あるいは構成上の設定/データ)を包含する、1つ又は複数のインテグリティ検査値及び/又はリロケーション・フィックスアップ位置を含み得る。IMM256は、アクティブ・コンテンツ248からのインテグリティ・マニフェストにアクセスし、構成部分240がインテグリティ・マニフェストに全体的に、又は部分的に対応することを検証することができる。IMM256は、その正しい形式から変えられていないことを保証するために、インテグリティ・マニフェスト構造に対する暗号署名を、インテグリティ・マニフェスト自体の真正性を検証することができる。例えば、バイト毎解析、又は暗号ハッシュの解析により、画像の比較を行うことができる。
種々の実施例では、IMM256は、例えば、直接メモリ・アクセス(DMA)又は直接物理メモリ・アクセスを介して、メモリ224において直接、アクティブ・コンテンツ248を求めてサーチすることができる。種々の実施例では、構成部分240の線形アドレスを、IMM256に、例えば、ISM252を介して、供給し得、IMM256は、アクティブ・コンテンツ248の物理メモリ位置を識別するために仮想・物理マッピングを行い得る。一実施例では、VMM204は、アクティブ・コンテンツ248へのアクセスを与えるために、IMM256への特殊インタフェースを設けることができる。
種々の実施例では、アクティブ・コンテンツ248のインテグリティ測定は、初期の登録により、周期的に、及び/又は、構成部分240が実行中に、特定の他のイベント駆動のやり方で行うことができる。初期登録要求、又はイベント処理要求によるインテグリティ測定は、製造時、又は最も直近のロード時のコンテンツの状態に基づいて、アクティブ・コンテンツ248及び/又は記憶コンテンツ244の初期状態が、期待された通りである旨を判定することに寄与し得る。周期的なインテグリティ測定、又はイベント駆動のインテグリティ測定は、アクティブ・コンテンツ248及び/又は記憶コンテンツ244の保護された属性を不適切に変更する攻撃の検出に寄与し得る。
構成部分のインテグリティ測定の更なる詳細は、内容を全て本明細書及び特許請求の範囲に援用する、「Signed Manifest for Run−time Verification of Software Program Identity and Integrity」と題する、西暦2005年6月30日付けで出願された米国特許出願第11/173851号明細書、「Identifier Associated with Memory Locations for Managing Software Access」と題する、西暦2005年12月30日付けで出願された米国特許出願第11/322669号明細書、及び「Intra−Partitioning of Software Components within an Execition Environment」と題する、西暦2006年3月30日付けで出願された米国特許出願第11/395488号に開示されている。
もう一度図2を参照すれば、ISM252は、アクティブ・コンテンツ248のメモリにおけるインテグリティ及び位置の検証を反映するIMM256からの応答を受信し得る。検証が首尾良く行われなかった場合、ISM252は要求を拒否し、アラートをトリガし得る。検証が合格であった場合、ISM252は、保護サービスのために、構成部分240の一部のイントラ・パーティション化のためにメモリ・マネージャ264と協調し得る。ここで、検証された構成部分によって、かつ/又は、構成部分自身全体の周りでのみ、アクセスすることができるように、メモリ内のボールト又は隠しページの周りで保護を確立することができる。
図2は、仮想パーティションである実行環境を例証しているが、他の実施例は、他の機構(例えば、サービス・プロセッサの使用、保護実行モード(システム管理モードSMM、又はセキュア実行モードSMX)及び/又は組み込みマイクロコントローラ)により、別々の実行環境を提供することができる。種々の実施例では、補助環境は、上述の仮想化パーティション(例えば、仮想化手法(VT)方式における仮想マシン)を含む各種パーティション、及び/又は(例えば、アクティブ管理手法(AMT)、「管理可能性エンジン」(ME)、分離したプラットフォーム資源を使用したプラットフォーム資源レイヤ(PRL)、システム管理モード(SMM)、及び/又は他の同等の、若しくは同様な手法を使用した)完全に別個のハードウェア・パーティションにより、ホスト環境からパーティション化することができる。種々の実施例では、VTプラットフォームは、AMT、ME及びPRL手法を実現するために使用することもできる。
図1及び図2を参照して上述したプラットフォームは、コンテンツ・サーバから受信されたコンテンツを保護し、受信コンテンツ・プレイヤに対する保護サービスを提供するために使用することができる。
図3は、本発明の一実施例によるセキュアなプラットフォーム300のアーキテクチャを示すブロック図である。セキュアなプラットフォーム300は、コンテンツ・サーバ360などの遠隔処理システムにそのインテグリティの証明を与える。インテグリティのこの証明は、コンテンツを盗むことが企図された「コンテンツ・リッパー」として知られているソフトウェアに対する保護、及び保護された「既知」のコンテンツ・プレイヤ330の存在に対する証明を含む。コンテンツ・サーバ360は、インテグリティ保護された「既知の」コンテンツ・プレイヤ330に対するコンテンツ鍵とともに、暗号化コンテンツを供給する。セキュア・プラットフォーム300は、システム・メモリ340におけるコンテンツ鍵及びコンテンツを保護するためのクライアント・セキュリティ管理レイヤ310を含む。コンテンツ鍵は、コードが検証され、確認された認可された「既知の」コンテンツ・プレイヤ330にのみ、クライアント・セキュリティ管理レイヤ310によってリリースされる。
クライアント・セキュリティ管理レイヤ310は、コンテンツ・プレイヤのメモリの保護部分342におけるメモリ340内のコンテンツ・プレイヤのコード、データ及びフレーム・バッファの保護を提供する。例えば、コンテンツ・プレイヤ330によって使用するためにオペレーティング・システム・カーネル320によって割り当てられた保護コード344、保護データ346、及び保護フレーム・バッファ・メモリ348は、コンテンツ・プレイヤ330によってのみアクセスすることが可能であり、他のアプリケーションから隔離される。クライアント・セキュリティ管理レイヤ310は、コンテンツ・プレイヤ330により、フレーム・バッファに入れられたフレームを傍受し、メモリ340を読み出し、又は永続的記憶装置から、若しくは通信リンク350などのネットワーク・チャネルからファイルを読み出すことにより、コンテンツを「盗む」ことが可能でないということを確実にする。コンテンツ・プレイヤのメモリの保護部分342は、認可されていないアプリケーションによるアクセスから、かつ、オペレーティング・システムによるアクセスから保護される。
セキュア・プラットフォーム300は、メモリ340に記憶されたデータ(保護コード344や保護データ346など)、保護フレーム・バッファ・メモリ348を含む、クライアント・コンテンツ・プレイヤ330によって使用されるメモリ340、クライアント・コンテンツ・プレイヤ330を測定し、保護するための、上述の米国特許出願11/229126号明細書記載のクライアント・セキュリティ管理レイヤの機能を使用することができる。更に、セキュア・プラットフォーム300は、動的コンテンツをクライアント・プラットフォーム300上で保護する旨を、コンテンツ・サーバ360などのコンテンツ・プロバイダに保証するために、クライアント・セキュリティ管理レイヤ310によるプラットフォーム証明を使用する。
セキュア・プラットフォーム300は、コンテンツの認可されたユーザが敵対的であるか、又は、クライアント・プラットフォーム300がマルウェアをインストールしていても、遠隔サーバによって供給されたコンテンツを認可されていないやり方で複製することが可能でないことを遠隔コンテンツ・サーバ360に示す。コンテンツが記憶された、(コンテンツ・プレイヤのメモリの保護部分342を使用した)メモリ340への認可されていないアクセスをクライアント・セキュリティ管理レイヤ310は阻止するので、この証明を提供することが可能である。証明に応じて、コンテンツ・サーバ360は、コンテンツ鍵によって暗号化されたコンテンツをクライアント・プラットフォーム300に供給する。クライアント・セキュリティ管理レイヤ310によってセキュア・プラットフォーム300において与えられる保護により、認可されたユーザも、コンテンツ・リッピング・ソフトウェアにより、コンテンツの不正な複製を行うことは可能でない。
一実施例では、コンテンツ・プレイヤ330は、特定のハードウェア・インスタンスにユーザを制限することなく、一プラットフォームからのコンテンツ鍵を別のプラットフォームに転送するよう構成される。この移動機能は、例えば、既知かつ検証されたコンテンツ・プレイヤ330を別のハードウェア上に再インストールすることが可能であるように、システム障害の場合に使用することが可能である。前述の移動は、コンテンツ・プレイヤ330の必要な認可に加えて、新たなハードウェア・プラットフォームが測定され、検証され、認証されるということを必要とする。別の実施例では、セキュア・プラットフォーム300は、認可されたコンテンツ・プレイヤ330からのコンテンツ鍵を一プラットフォームから別のプラットフォームに転送することを可能にするよう構成された、認可され、保護された別のアプリケーション(図示せず)を含む。プラットフォームの測定及び認証は、以下に更に詳細に説明する。
一実施例では、プラットフォームのセキュリティ機能を拡充するためのハードウェア拡張を提供するインテル(登録商標)社トラステッド実行手法(TXT)プラットフォームであるプラットフォーム・ハードウェア302を含む。測定されたブートが、プラットフォーム証明機能を提供するためにBIOSにおいてイネーブルされる。測定されたブートをイネーブルすることにより、システム・リセット命令に始まる、ブート処理中に実行する命令は全て測定され、前述の測定は記録される。期待されたソフトウェア及びファームウェアと命令が整合しているか否かを確かめるために、前述の測定を次いで、期待されたソフトウェア及びファームウェアの「価値の標準」の複製に対して比較することが可能である。
更に、一実施例では、プラットフォーム・ハードウェア302は、ユーザによってイネーブルされているトラステッド・プラットフォーム・モジュール(TPM)304を含む。TPMの機能は、概括的に説明し、次いで、TPM304の、プラットフォーム300内での機能を説明する。TPMは、処理システム内に常駐しているハードウェア構成部分(通常、マイクロコントローラ)であり、処理システムのセキュリティを拡充するための種々の機能及びサービスを提供する。TPMは、インターネット(www.trustedcomputinggroup/org/home)によって入手可能なトラステッド・コンピューティング・グループ(TCG)TPM技術仕様バージョン1.2(西暦2003年10月2日付け。以下、「TPM技術仕様」と呼ぶ)などの技術仕様に応じて実現することができる。
TCG準拠のTPMは、鍵、パスワード、及びディジタル証明書をセキュアに記憶する。TPMは、ディジタル証明書において使用するための鍵を生成し、ディジタル署名を作成し、暗号化を提供することが可能なコア・セキュリティ手法を提供する。セキュリティ処理は、定義されたインタフェースを使用して、セキュア・サブシステムを介してアクセスされ、制御される。ハード・ディスク暗号化、セキュア電子メール、及び識別情報/アクセス管理のようなアプリケーションは、TPMによって提供されるセキュリティ機能の恩恵を受ける。
TPMは、ファームウェアやオペレーティング・システムなどの、プラットフォーム内に常駐しているソフトウェア、並びに、プロセッサ及びチップセットを含む、プラットフォームのハードウェア構成部分などの特性に基づいて、プラットフォームの識別情報及び/又はインテグリティを証明する。TPMは、プラットフォーム・ブート・インテグリティ、ファイル・インテグリティ、及びソフトウェア・ライセンシングの検証、並びに、ソフトウェア処理の監査及び記録もサポートし得る。TPMは、多くの場合、プラットフォームの信頼性のルートを提供するものとして説明される。
TPMは、プラットフォームの構成についての情報を記憶することにより、セキュリティ機能を提供する。この情報を次いで、TPMの一次機能(プラットフォーム証明、及び保護された記憶)両方に使用することが可能である。プラットフォームは、プラットフォームの信頼性についての決定を遠隔エンティティが行うことを可能にするために必要な情報を遠隔エンティティに供給することが可能である。プラットフォームは、システムが既知の「良好な」状態にある間にのみ、鍵又は機密データがリリースされることを確実にする旨をTPMに命令することも可能である。
プラットフォーム状態を記憶するために、TPMはプラットフォーム構成レジスタ(図3のTPM304のPCR306などのPCR)を使用して、プラットフォームのソフトウェア及び構成情報の160ビットSHA1(セキュア・ハッシング・アルゴリズム1)のハッシュの形式で測定を記憶する。前述の測定は、ブート・ブロックに始まる。各ブート構成部分は、次を測定し、それをTPMに記録し、オペレーティング・システムがそのコアの測定を引き継ぐまでその構成部分を実行する。先行する測定を上書きするのでなく、PCRに対する書き込みそれぞれにより、測定がレジスタに加えられるので、エンティティは何れも、先行する構成部分によって行われたそのコードの測定を変更することは可能でない。よって、(信頼性測定のルートとして知られている)連鎖の最初及び各リンクが信頼できる場合に、連鎖全体が信頼できるように測定の連鎖が行われる。
証明は、プラットフォームがその構成を遠隔の関係者に信頼できるやり方で通知することを可能にするTPM機能及びプロトコルの組を表す。例えば、TPMは、プラットフォーム状態を記憶するために使用されるPCRを署名する機能を提供する。例えば、プラットフォームは、証明識別鍵(AIK)を使用してPCRに署名することができる。前述の署名されたPCRは引用符として表すことができる。
真のTPMによって引用符が署名された旨の証明を遠隔エンティティに提供するため、各TPMは、クレデンシャルの組を有する。例えば、TPMの製造業者によって署名されたエンドースメント・クレデンシャルは、TPMがTPM技術仕様を充足している旨を記載している。製造業者は、TPMにおいて、エンドースメント鍵(EK)として知られている一意の鍵も記憶し、製造業者はそのEKを使用してエンドースメント・クレデンシャルに署名する。理論上、EKは、PCRの引用符に署名するために直接、使用することが可能である。しかし、EKは一意であるので、一部の実現形態では、機密性をもたらすために第三者が代わりに使用される。特に、プラットフォームは、秘密証明機関(CA)として知られている第三者を使用して、AIK毎に識別クレデンシャルを作成する。TCGは、EK及びエンドースメント・クレデンシャルを使用して、TPMが真のTPMである旨を秘密CAに証明することを可能にするプロトコルを規定している。同様に、秘密CAは、自ら所有しているとTPMが主張するAIKの識別クレデンシャルを作成する。
遠隔エンティティがTPMの製造業者、秘密CA、及び信頼性測定のルートを信頼すると仮定すれば、識別クレデンシャルが付随するAIKによって署名された引用符は、プラットフォームの現在の状態の暗号証明である。トラステッド・プラットフォームの遠隔認証を可能にするために使用することができる別の暗号プロトコルは、直接匿名証明(DAA)である。
TPMが提供する別のサービスの組は、鍵及び他のデータのセキュアな記憶である。TPMは、(a)要求者が秘密SHA1ハッシュにより、認可を与え、(b)PCRによって判定された現在の構成が「良好な」状態を示した場合にのみ、使用を可能にするリベスト・シャミール・アーデルマン(RSA)鍵を作成することが可能である。前述の機能は、マシンが損なわれたか、又は外部媒体からブートされたか、又は、他のやり方でタンパリングされた場合、アクセス可能でない状態にデータが留まるようにプラットフォームがデータを暗号化することを可能にする。
セキュアな記憶などのサービスをサポートするために、TPMは、別々の動作に対して単一目的のタイプを備えた鍵を作成する。タイプEKの鍵は、秘密CAからの識別クレデンシャルを復号するためにのみ、利用可能である。AIKは、他の鍵に署名し、PCRを引用するために使用される。記憶鍵(SK)は、他の鍵を保護するか、又はデータの「シール(パスワード又はPCRバインディングでデータを保護するデータの特殊な暗号化である)」のために使用される。バインディング鍵(BK)は、任意のデータを暗号化し、TPMにバインディングされたデータ構造にデータを変換するために使用される。署名鍵(SigK)は、任意のデータを署名するために使用される。
もう一度図3を参照すれば、一実施例では、クライアント・セキュリティ管理レイヤ310は、受信されたコンテンツが保護されている旨を証明するプラットフォーム証明をコンテンツ・サーバ360に供給する。これに応じて、コンテンツ・サーバ360は、暗号化されたコンテンツ鍵とともに、暗号化コンテンツを供給する。一実施例では、コンテンツ鍵は、クライアント・セキュリティ管理レイヤ310の証明識別子鍵(AIK)の公衆部分によって暗号化される。コンテンツ、暗号化されたコンテンツ鍵、及びコンテンツ・ポリシーはクライアント・コンテンツ・プレイヤ330に送出される。クライアント・コンテンツ・プレイヤ300はそのインテグリティをクライアント・セキュリティ管理レイヤ310に証明し、クライアント・セキュリティ管理レイヤ310は、復号されたコンテンツ鍵を、保護メモリ342における認可されたクライアント・コンテンツ・プレイヤ330に供給する。クライアント・セキュリティ管理レイヤ310による復号コンテンツ鍵の供給は、コンテンツ・プレイヤ330に対してクライアント・セキュリティ管理レイヤ310によって維持されるアカウント・ポリシーを考慮に入れ得る。クライアント・コンテンツ・プレイヤ330は、コンテンツを復号し、コンテンツ・プレイヤ330による使用のために保護されたコンテンツ・プレイヤのメモリの保護部分342内にある保護フレーム・バッファ・メモリ348にコンテンツをレンダリングする。その結果、コンテンツ・リッパー・ソフトウェアは、永続的記憶装置、メモリ340、保護フレーム・バッファ・メモリ348、又はネットワーク・チャネル350の何れからもコンテンツを盗むことが可能でない。この機構は、コンテンツ保護のためにグラフィックス・ハードウェアにおける暗号化を可能にするための高価なシリコン・ゲートに対する必要性を排除し、個別のグラフィックス・アダプタ及び一体化されたグラフィックス・アダプタにわたって機能する。
一実施例では、プラットフォーム・ハードウェア302のTPM304は、署名するための証明識別鍵(AIK)及び暗号化するためのAIKを有する。前述のAIKは、PCR306に記憶することができ、秘密証明機関により、又は直接匿名証明(DAA)を使用して証明することができる。TPM304は、特に、クライアント・セキュリティ管理レイヤ310についてのAIK(クライアント・セキュリティ管理レイヤ鍵316として示す)を得ることもできる。クライアント・セキュリティ管理レイヤ310は、コンテンツ・サーバ360などの遠隔処理システムにプラットフォーム300の信頼性をアサートするために、クライアント・セキュリティ管理レイヤ鍵316を使用する。
プラットフォーム300のアーキテクチャにおけるクライアント・セキュリティ管理レイヤ310の役割は、コンピュータ・システム内の別々のアーキテクチャ構成部分が、資源に対して別々のアクセス・レベルを有するということを理解することにより、更に理解することが可能である。保護リングは、コンピュータ・システムのアーキテクチャ内の特権の階層レベル又は階層レイヤの組の1つである。特権の使用は一般に、ファームウェア・レベルで別々のプロセッサ・モードを提供する特定のプロセッサ・アーキテクチャによってハードウェア強制される。リングは、最も特権化されているレベル(信頼性が最も高い。通常、ゼロである)から、最も特権化されていないレベル(信頼性が最も低い。通常、リング番号が最高である)までの階層に配置される。大半のオペレーティング・システムでは、リング0は、最高の特権を備えたレベルであり、プロセッサやメモリなどの物理的なハードウェアと最も直接的に相互作用する。インテル社仮想化手法(VT−x)プラットフォームは、リング0レベルよりも信頼性が高い「ルート」特権レベルを含めるようこの概念を拡張する。ルート特権レベルで実行するコードは、プラットフォームをブーティングすることによって測定される。一実施例では、図3に示すルート特権レベルは、インテル社VT−xプラットフォームにおいて定義されたルート特権化レベルであるが、本発明は前述に限定されるものでない。クライアント・セキュリティ管理レイヤ310は、伝統的なオペレーティング・システムのカーネル・コードによって使用されるリング0レベルよりも信頼性が高い特権レベルにおいて特定の動作が行われることを可能にする別の仮想化手法を使用して実現することが可能であるということが想定される。
クライアント・セキュリティ管理レイヤ310は、ルート特権レベルで動作し、オペレーティング・システム・カーネル320よりも高い特権は、リング0特権レベルで動作するものとして図3に示す。クライアント・セキュリティ管理レイヤ310のコードは、プラットフォーム300をブーティングすることによって測定される。よって、プラットフォーム300をブーティングした後、TPM304のPCRレジスタ306は、クライアント・セキュリティ管理レイヤ310のコードの測定を含むSHA−1ハッシュ値を有する。クライアント・セキュリティ管理レイヤ鍵316は、TPM304により、AIKとしてクライアント・セキュリティ管理レイヤ310について生成される。
図3では、オペレーティング・システム・カーネル320は、リング3特権レベルで動作するコンテンツ・プレイヤ330などのアプリケーション・プログラムよりも高いリング0特権レベルで動作する。リング0よりも更に高い特権レベルであるルート特権レベルで動作することにより、クライアント・セキュリティ管理レイヤ310は、メモリ340内のコンテンツ・プレイヤのメモリの保護部分342が、オペレーティング・システム・カーネル320にもアクセス可能でないことを確実にすることができる。
クライアント・セキュリティ管理レイヤ310は、ランタイム・メモリ保護構成部分312及びコンテンツ保護マネージャ314を含む。ランタイム・メモリ保護構成部分312は、コンテンツ・プレイヤのメモリの保護部分342内の保護フレーム・バッファ・メモリ348、並びに、保護コード344及び保護データ346を保護する。ランタイム・メモリ保護構成部分312は、コンテンツ・プレイヤのメモリの保護部分342内の保護フレーム・バッファ・メモリ348、保護コード344及び保護データ346を保護するために、上述の米国特許出願第11/229126号明細書記載のセキュア・ボールト・サービス機能を使用することができる。保護コード344は例えば、データ・リンク・ライブラリ、実行可能なコード、及び、コンテンツ・プレイヤ330などの保護構成部分に関する他のソフトウェアを含み得る。保護データ346は例えば、コンテンツ・サーバ360からコンテンツ・プレイヤ330によってダウンロードされたコンテンツなどのデータ、及び、ダウンロードされたコンテンツの暗号化鍵及び復号鍵を含み得る。同様に、保護フレーム・バッファ・メモリ348は、ユーザによって表示するためのコンテンツをレンダリングするためにコンテンツ・プレイヤ330によって使用される。コンテンツ・プレイヤのメモリの保護部分342に対するアクセスを制限するために、クライアント・セキュリティ管理レイヤ310のランタイム・メモリ管理構成部分312は、リング0特権レベルで実行しているオペレーティング・システム・カーネル320、又はリング3特権レベルで実行している他のアプリケーション・プログラムは損なわれる。
クライアント・セキュリティ管理レイヤ310のコンテンツ保護マネージャ314は、プラットフォーム300の信頼性を証明するためにプラットフォーム・ハードウェア302のTPM304によって提供されるセキュリティ機能を使用する。例えば、クライアント・セキュリティ管理レイヤ310は、例えば、コンテンツ・サーバ360などの遠隔処理システムにプラットフォーム300の信頼性をアサートするために、クライアント・セキュリティ管理レイヤ鍵316(例えば、TPM304によって生成されるAIKであり得る)を使用する。クライアント・セキュリティ管理レイヤ310のコンテンツ保護マネージャ314動作は以下に更に説明する。
図4は、図3のセキュア・プラットフォーム・アーキテクチャによって提供される環境において動作するよう構成された、図3のコンテンツ・プレイヤ330などのコンテンツ・プレイヤの動作の方法のフローチャートである。図4を参照して行われる動作は、図3の構成部分による実行に応じて説明する。起動されると、コンテンツ・プレイヤ330は、「メモリ及びコンテンツ保護のためにクライアント・セキュリティ管理レイヤに登録する」(工程410)に移る。この工程では、コンテンツ・プレイヤ330は、コンテンツをレンダリングするために使用される対象のフレーム・バッファ・メモリ348、及びその動的リンク・ライブラリを含むそのコード及びデータを保護するためにメモリの保護部分342を提供する旨の、クライアント・セキュリティ管理レイヤ310に対するハイパーコールを引き起こす。前述のクライアント・セキュリティ管理レイヤ310に対するハイパーコールにより、米国特許出願第11/229126号明細書記載のセキュア・ボールト・サービスが呼び出され得る。クライアント・セキュリティ管理レイヤ310が、コンテンツ・プレイヤのメモリの保護部分342を提供することなどにより、コンテンツ・プレイヤ330に対してこの保護を提供すると、コンテンツ・プレイヤ330の保護フレーム・バッファ348、保護コード344、及び保護データ346は、クライアント・セキュリティ管理レイヤ310からのアクセス許可をコンテンツ・プレイヤ330と同様に有しない何れのリング0構成部分又はリング3構成部分によってもアクセスすることが可能でない。
クライアント・セキュリティ管理レイヤ310との登録処理の一部として、コンテンツ・プレイヤ330のマニフェストを、アプリケーション識別子とともに作成することができる。前述のマニフェストは、上述の「Signed Manifest for Run−time Verification of Software Program Identity and Integrity」と題する、西暦2005年6月30日付出願の上記米国特許出願第11/173851号明細書に応じて作成することができる。マニフェストは、コンテンツ・プレイヤ330のインテグリティを検証するために使用することが可能な情報を含み得、その後の相互作用におけるコンテンツ・プレイヤ330のインテグリティを確認するためにクライアント・セキュリティ管理レイヤ310によって使用し得る。
もう一度図4を参照すれば、「メモリ及びコンテンツ保護のためにクライアント・セキュリティ管理レイヤに登録する」(工程410)においてクライアント・セキュリティ管理レイヤ310に当初登録した後、コンテンツ・プレイヤ330は、「クライアント・セキュリティ管理レイヤからのセキュリティ情報を要求する」(工程420)に移る。一実施例では、コンテンツ・プレイヤ330によって要求されるセキュリティ情報は、クライアント・セキュリティ管理レイヤ310のPCR値を含む。セキュリティ情報に対する要求に応じて、クライアント・セキュリティ管理レイヤ310は、特定のPCRレジスタのPCR値をTPMに含む署名されたブラブを供給する。ブラブは、AIK署名鍵を使用して署名される。ブラブは、秘密証明機関から受け取られた証明書及びクライアント・セキュリティ管理レイヤ310のAIK暗号化鍵の公衆部分も含む。本明細書及び特許請求の範囲記載の実施例では、セキュリティ情報は、AIKベースの暗号化手法によって管理されているものとして説明される。セキュリティ情報はあるいは、ユーザの秘密を保護する、直接匿名証明などの他の手法を使用して管理することができるということを当業者は理解するであろう。
「クライアント・セキュリティ管理レイヤからのセキュリティ情報を要求する」(工程420)から、コンテンツ・プレイヤ330は、「クライアント・セキュリティ管理レイヤからのセキュリティ情報を提供する、コンテンツ・サーバからのコンテンツを要求する」(工程430)に移る。コンテンツ・プレイヤ330は、クライアント・セキュリティ管理レイヤ310によって供給されるセキュリティ情報を使用して、プラットフォーム300がセキュアである旨をコンテンツ・サーバ360に証明する。コンテンツ要求は、コンテンツ・サーバでのコンテンツ・プレイヤのアカウントに対するユーザ・クレデンシャル、クライアント・セキュリティ管理レイヤ310から受け取られた署名ブラブ、及びクライアントについて要求されたポリシー・パラメータを含む。例えば、ポリシー・パラメータは、ビデオを再生するためのユーザのライセンスが満了する前にコンテンツのビデオをユーザが再生することが可能な回数を示し得る。コンテンツ・サーバ360によるコンテンツに対する要求の処理は、図5を参照して更に詳細に説明する。
「クライアント・セキュリティ管理レイヤからのセキュリティ情報を提供する、コンテンツ・サーバからのコンテンツを要求する」(工程430)から、コンテンツ・プレイヤ330は、「コンテンツ・サーバからコンテンツ及び暗号化コンテンツ鍵を受け取る」(工程440)に移る。コンテンツ・プレイヤ330は、暗号化コンテンツ及び暗号化コンテンツ鍵を含むパッケージ化されたブラブをコンテンツ・サーバ360から受け取る。コンテンツ・プレイヤ330は次いで、「クライアント・セキュリティ管理レイヤからの復号鍵を要求する」(工程450)に移る。コンテンツ・プレイヤ330は、それ自身のアプリケーション識別子とともに、暗号化コンテンツ鍵(図5を参照して以下に更に詳細に説明する)をクライアント・セキュリティ管理レイヤ310に転送する。クライアント・セキュリティ管理レイヤ310による暗号化コンテンツ鍵の処理は、図6を参照して以下に更に詳細に説明する。
「クライアント・セキュリティ管理レイヤから復号鍵を要求する」(工程450)に応じて、コンテンツ・プレイヤ330は復号鍵を受け取り、コンテンツ・プレイヤ330は、コンテンツ・サーバ360によって供給された暗号化コンテンツを前述の復号鍵によって復号することが可能である。コンテンツ・プレイヤ330は、「クライアント・セキュリティ管理レイヤによって供給される復号鍵を使用してコンテンツを復号する」(工程460)に進み、コンテンツ・サーバ360によって供給されるコンテンツを復号する。コンテンツ・プレイヤ330は、コンテンツ・プレイヤ343のメモリの保護部分に暗号化コンテンツをロードし、復号鍵を使用してコンテンツを復号する。コンテンツ・プレイヤ330は、「コンテンツをレンダリングする」(工程470)に進み、工程470では、コンテンツ・プレイヤ330は、保護コード344に含まれる標準アプリケーション・プログラム・インタフェースを使用して保護フレーム・バッファ上に復号コンテンツをレンダリングする。復号コンテンツは、コンテンツをレンダリングする旨のコールをオペレーティング・システム・カーネル320に対して行うかわりに、コンテンツ・プレイヤのメモリの保護部分342内の保護データ346に直接書き込まれる。
図5は、本発明のセキュアなプラットフォームとともに動作するよう構成されたコンテンツ・サーバの動作の方法のフローチャートである。コンテンツ・プレイヤ330からのコンテンツに対する要求の受け取りに応じて、コンテンツ・サーバ360は、「コンテンツ・プレイヤからのコンテンツ及びクライアント・セキュリティ管理レイヤからのセキュリティ情報に対する要求を検証する」(工程510)に示すように上記要求を検証する。例えば、コンテンツ・サーバ360は、秘密証明書機関のルート証明書に対して署名されたブラブにおいて備えられたクライアント・セキュリティ管理レイヤ310の証明書を検証することができる。その後、コンテンツ・サーバ360は、PCRレジスタのハッシュ値を、ハッシュ値の価値の基準の複製と比較し、それにより、クライアント・セキュリティ管理レイヤ310の有効性を確かめることができる。更に、コンテンツ・サーバ360は、コンテンツ・プレイヤ330のユーザ・クレデンシャルをユーザ・データベースに対して認証し、要求の一部として供給されたポリシー・パラメータを検査することができる。コンテンツは、例えば、サービス・データベースに記憶されたユーザのポリシーの値と、コンテンツ要求において供給されたポリシーにおける値を比較した場合に、より制限的なポリシーに応じて供給することができる。
「コンテンツ・プレイヤからのコンテンツ及びクライアント・セキュリティ管理レイヤからのセキュリティ情報に対する要求を検証する」(工程510)から、コンテンツ・サーバ360は、「暗号化コンテンツ及び暗号化コンテンツ鍵を含むパッケージ化されたブラブを作成する」(工程520)に移る。一実施例では、コンテンツ・サーバ360は、コンテンツ鍵(CK)と呼ばれる対称鍵におけるコンテンツを暗号化し、クライアント・セキュリティ管理レイヤ310のAIK暗号化鍵におけるアプリケーション識別子(AI)、コンテンツ・ポリシー(CP)、及びCKを暗号化する。例えば、この実施例では、パッケージ化されたブラブは、
BLOB=Sign service−key(E CK(Content)||E AIK−Encryption (CK||CP||AI))
の通り、コンテンツ・サーバ360のサービス鍵を使用して作成される。前述の公式では、ブラブは、2つの構成部分を含む連結列を符号化するために、署名されたサービス鍵を使用することによって作成される。第1の構成部分はコンテンツ鍵を使用してコンテンツを暗号化し、第2の構成部分は、コンテンツ鍵、コンテンツ・ポリシー、及び証明識別子の連結された列を、証明識別鍵によって暗号化する。パッケージ化されたブラブは、「暗号化コンテンツ及び暗号化コンテンツ鍵を、検証されたコンテンツ・プレイヤに供給する」(工程530)で、コンテンツ・プレイヤ330に返信する。
図6は、図3のセキュアなプラットフォーム・アーキテクチャを提供するためのクライアント・セキュリティ管理レイヤの動作のフローチャートである。クライアント・セキュリティ管理レイヤ310は、図4の「メモリ及びコンテンツ保護のためにクライアント・セキュリティ管理レイヤに登録する」(工程410)を参照して説明したアプリケーション・プログラムによる登録要求に応答する。前述の登録要求に応じて、クライアント・セキュリティ管理レイヤ310は、「構成部分による登録に応じてメモリ及びコンテンツ保護を提供する」(工程610)に移る。メモリ保護は、クライアント・セキュリティ管理レイヤ310のランタイム・メモリ保護構成部分312を参照して上述したように提供され得る。上述の通り、クライアント・セキュリティ管理レイヤ310のランタイム・メモリ保護構成部分312は、コンテンツ・プレイヤのメモリの保護部分342内の保護フレーム・バッファ・メモリ348、保護コード344、及び保護データ346を保護する。ランタイム・メモリ保護構成部分312は、上述の米国特許出願第11/229126号明細書記載のセキュア・ボールト・サービス機能を使用して、コンテンツ・プレイヤのメモリの保護部分342内の保護フレーム・バッファ・メモリ348、保護コード344、及び保護データ346を保護することができる。
コンテンツ保護は、クライアント・セキュリティ管理レイヤ310のコンテンツ保護マネージャ314によって提供することができるが、図6に関して提供されるサービスは、クライアント・セキュリティ管理レイヤ310による実行に応じて説明する。クライアント・セキュリティ管理レイヤ310は、「構成部分から復号要求を受け取る」(工程620)に示すように、構成部分から復号要求を受け取り得る。前述の復号要求に応じて、クライアント・セキュリティ管理レイヤ310は、「構成部分のインテグリティを確認する」(工程630)に移り得る。構成部分のインテグリティを確認するために、クライアント・セキュリティ管理レイヤ310は、復号要求における、コンテンツ・プレイヤ330によって供給されるアプリケーション識別子を、パッケージ化ブラブにおける、コンテンツ・サーバ360によって供給されるアプリケーション識別子に対して検証することができる。クライアント・セキュリティ管理レイヤ310は、復号鍵をコンテンツ・プレイヤ330に供給する前に、コンテンツ・プレイヤ330のマニフェストを検証するなど、コンテンツ・プレイヤ330のインテグリティを検証するために、他のインテグリティ測定を更
構成部分のインテグリティの確認に応じて、クライアント・セキュリティ管理レイヤ310は、コンテンツ・プレイヤ330に戻されるパッケージ化ブラブにおける、コンテンツ・サーバ360によって供給されたコンテンツ鍵及び他のパラメータを復号することができる。クライアント・セキュリティ管理レイヤ310は、復号要求をコンテンツ・ポリシーに対して検証することができ、ポリシー・データベースにおいて、パッケージ化されたブラブからのポリシー情報を(保護されていないリング3アプリケーションを使用して)登録することもできる。復号コンテンツ鍵をコンテンツ・プレイヤ330に供給する前に、復号要求をコンテンツ・ポリシーに対して検証することにより、クライアント・セキュリティ管理レイヤ310は、クライアント・コンテンツ・プレイヤ330が、コンテンツ・サーバ360のネットワークにもう接続されていなくても、コンテンツが供給された後、供給側コンテンツ・サーバ360によって要求されるポリシーを強制することが可能である。
「構成部分のインテグリティを確認する」(工程630)から、制御は次いで、「復号鍵を、構成部分の保護メモリに入れる」(工程640)に移り、工程640では、クライアント・セキュリティ管理レイヤ310、及び/又はクライアント・セキュリティ管理レイヤ310のランタイム・メモリ保護構成部分312は、コンテンツ・プレイヤのメモリの保護部分342などの、構成部分のメモリの保護部分に復号鍵を入れる。
上述の機構は、更なるハードウェアに対する必要なしで、標準的な構成を使用して、プラットフォーム上のコンテンツ保護を提供する。保護された構成部分(すなわち、コンテンツ・プレイヤ)よりも高い特権レベルに保護装置を入れることによる堅固な暗号手法を使用するので、本発明のクライアント・セキュリティ管理レイヤによって提供される保護サービスは、他の不明化ベースの手法よりも出し抜くのは難しい。前述の機構は、攻撃者に対する障害許容力の度合いが高い状態で、遠隔コンテンツ・サービス・プロバイダがコンテンツをクライアントに配信することを可能にする。前述の機構は侵入的でなく、プラットフォーム・ハードウェア、オペレーティング・システム、又は更なるドライバの修正を必要としない。
本明細書及び特許請求の範囲記載の機構の実施例は、ハードウェア、ソフトウェア、ファームウェア、又は前述の実現手法の組合せで実現することができる。本発明の実施例は、少なくとも1つのプロセッサ、データ記憶システム(揮発性並びに不揮発性のメモリ及び/又は記憶要素を含む)、少なくとも1つの入力装置、及び少なくとも1つの出力装置を備えるプログラム可能なシステム上で実行するコンピュータ・プログラムとして実現することができる。
プログラム・コードは、本明細書及び特許請求の範囲記載の機能を行い、出力情報を生成するために入力データに施すことができる。本発明の実施例は、本明細書及び特許請求の範囲記載の構造、回路、装置、プロセッサ、及び/又はシステム構成を規定する、HDLなどの設計データを含む、又は本発明の動作を行うための命令を含むマシン・アクセス可能な媒体も含む。前述の実施例は、プログラム・プロダクトとして表すこともできる。
前述のマシン・アクセス可能な記憶媒体は、限定列挙でないが、ハード・ディスク、フロッピー(登録商標)・ディスク、光ディスク、コンパクト・ディスク・リードオンリ・メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−RW)及び光磁気ディスクなどの何れかの他のタイプのディスク、リードオンリ・メモリ(ROM)、ダイナミック・アクセス・メモリ(DRAM)、スタティック・ランダム・セクセス・メモリ(SRAM)などのランダム・アクセス・メモリ(RAM)などの半導体デバイス、消去可能プログラマブル・リードオンリ・メモリ(EPROM)、フラッシュ・メモリ、電気的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)、磁気若しくは光カード、又は電子的命令の記憶に適した何れかの他のタイプの媒体を含み得る。
出力情報は、既知のやり方で、1つ又は複数の出力装置に施すことができる。本出願の目的で、処理システムは、例えば、ディジタル信号プロセッサ(DSP)、マイクロコントローラ、特殊用途向集積回路(ASIC)や、マイクロプロセッサなどのプロセッサを有する何れかのシステムを含む。
プログラムは、処理システムと通信するために、手続型高水準又はオブジェクト指向プログラミング言語で実現することができる。プログラムは、必要な場合、アセンブラ言語又はマシン言語で実現することもできる。実際に、本明細書記載の機構は、範囲において、何れかの特定のプログラミング言語に限定されるものでない。何れの場合にも、言語は、コンパイルされた言語、又は解釈された言語であり得る。
本明細書及び特許請求の範囲には、コンテンツ・サーバから受信されたコンテンツを保護するためにセキュアなプラットフォームを提供する方法及びシステムの実施例を提示する。本発明の特定の実施例を示し、説明しているが、特許請求の範囲記載の請求項の範囲から逸脱することなく、数多くの変更、変形及び修正を行うことが可能であるということは当業者に明らかであろう。よって、その広い局面において本発明から逸脱しない限り、変更及び修正を行うことが可能であるということを当業者は認識するであろう。特許請求の範囲記載の請求項は、その範囲において、本発明の真の範囲及び趣旨に収まる前述の変更、変形、及び修正を包含するものとする。
300 プラットフォーム
310 クライアント・セキュリティ管理レイヤ
330 コンテンツ・プレイヤ
340 メモリ

Claims (32)

  1. 方法であって、
    構成部分に代わってコンピュータ・システムのメモリの保護部分に対するアクセスをクライアント・セキュリティ管理レイヤによって制御する工程であって、前記メモリの前記保護部分は、前記クライアント・セキュリティ管理レイヤによって供給され、前記構成部分にのみアクセス可能である工程と、
    前記構成部分から、暗号化コンテンツ鍵を受け取る工程であって、前記暗号化コンテンツ鍵は、コンテンツ・プロバイダから前記構成部分によって受け取られたコンテンツとともに受け取られる工程と、
    前記構成部分のインテグリティを確認する工程と、
    前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給する工程と、
    前記構成部分のインテグリティの確認に応じて前記メモリの前記保護部分に前記復号コンテンツ鍵を入れ、それにより、前記構成部分は前記コンテンツを復号し、前記メモリの前記保護部分に前記コンテンツをレンダリングする工程と
    を含む方法。
  2. 請求項1記載の方法であって、
    前記メモリの前記保護部分に対する前記アクセスを制御する工程は、前記構成部分による前記メモリの前記保護部分に対するアクセスを可能にする一方で、前記メモリの前記保護部分に対する、前記コンピュータ・システムのオペレーティング・システムによるアクセスを阻止する工程を含む方法。
  3. 請求項1記載の方法であって、
    前記構成部分から特定のコンテンツに対する復号要求を受け取る工程と、
    前記暗号化コンテンツ鍵を復号する前に前記特定のコンテンツの復号を前記特定のコンテンツのコンテンツ・ポリシーが可能にすることを判定する工程とを更に含む方法。
  4. 請求項3記載の方法であって、
    前記特定のコンテンツに対するコンテンツ・ポリシーが前記特定のコンテンツの復号を可能にすることを判定する工程が、前記特定のコンテンツを供給したコンテンツ・サーバへの接続なしで行われる方法。
  5. 方法であって、
    コンピュータ・システムのメモリの保護部分の保護を受けるよう、構成部分として、クライアント・セキュリティ管理レイヤにコンテンツ・プレイヤを登録する工程と、
    証明書、前記クライアント・セキュリティ管理レイヤの暗号化コンテンツ鍵、及び前記コンピュータ・システムのトラステッド・プラットフォーム・モジュール(TPM)のプラットフォーム構成レジスタ(PCR)値を有する署名されたブラブを含む前記構成部分による要求に応じて、暗号化コンテンツ及び暗号化コンテンツ鍵をコンテンツ・プロバイダから受け取る工程と、
    前記構成部分からの前記暗号化コンテンツ鍵を前記クライアント・セキュリティ管理レイヤに供給する工程であって、前記クライアント・セキュリティ管理レイヤは、前記構成部分のインテグリティを確認し、前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給し、前記復号コンテンツ鍵を前記メモリの前記保護部分に入れる工程と、
    前記暗号化コンテンツを前記構成部分によって復号し、前記復号コンテンツを前記メモリの前記保護部分に前記復号コンテンツ鍵を使用してレンダリングする工程と
    を含む方法。
  6. 請求項5記載の方法であって、
    認可されていない複製から、受け取られたコンテンツが保護されているという証明を前記コンテンツ・プロバイダに提供する工程を更に備える方法。
  7. 請求項6記載の方法であって、
    前記証明は、前記クライアント・セキュリティ管理レイヤの識別情報を備える方法。
  8. コンピュータ・システムであって、
    プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記プロセッサ上で実行する構成部分の代わりに前記メモリの保護部分に対するアクセスをクライアント・セキュリティ管理レイヤを使用して制御する機能であって、前記メモリの前記保護部分は、前記クライアント・セキュリティ管理レイヤによって供給され、前記構成部分にのみアクセス可能である機能と、
    前記構成部分から、暗号化コンテンツ鍵を受け取る機能であって、前記暗号化コンテンツ鍵は、コンテンツ・プロバイダから前記構成部分によって受け取られたコンテンツとともに受け取られる機能と、
    前記構成部分のインテグリティを確認する機能と、
    前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給する機能と、
    前記構成部分のインテグリティの確認に応じて前記メモリの前記保護部分に前記復号コンテンツ鍵を入れ、それにより、前記構成部分は前記コンテンツを復号し、前記メモリの前記保護部分に前記コンテンツをレンダリングする機能と
    を行うよう構成されたクライアント・セキュリティ管理レイヤと
    を備えたコンピュータ・システム。
  9. 請求項8記載のコンピュータ・システムであって、
    前記クライアント・セキュリティ管理レイヤは、前記構成部分による前記メモリの前記保護部分に対するアクセスを可能にする一方で、前記メモリの前記保護部分に対する、前記コンピュータ・システムのオペレーティング・システムによるアクセスを阻止することにより、前記メモリの前記保護部分に対する前記アクセスを制御するよう更に構成されたコンピュータ・システム。
  10. 請求項8記載のコンピュータ・システムであって、
    前記クライアント・セキュリティ管理レイヤは、前記メモリの前記保護部分に対する、前記コンピュータ・システム上で実行する認可されていないアプリケーションによるアクセスを阻止することにより、前記メモリの前記保護部分に対する前記アクセスを制御するよう更に構成されたコンピュータ・システム。
  11. 請求項8記載のコンピュータ・システムであって、
    前記クライアント・セキュリティ管理レイヤは、
    前記構成部分から特定のコンテンツに対する復号要求を受け取る機能と、
    前記暗号化コンテンツ鍵を復号する前に前記特定のコンテンツの復号を前記特定のコンテンツのコンテンツ・ポリシーが可能にすることを判定する機能と
    を行うよう更に構成されたコンピュータ・システム。
  12. 請求項11記載のコンピュータ・システムであって、
    前記クライアント・セキュリティ管理レイヤは、前記特定のコンテンツの復号を前記特定のコンテンツに対するコンテンツ・ポリシーが可能にすることを前記特定のコンテンツを供給したコンテンツ・サーバへの接続なしで判定するよう更に構成されたコンピュータ・システム。
  13. 請求項8記載のコンピュータ・システムであって、
    前記クライアント・セキュリティ管理レイヤは、前記構成部分のマニフェストを検証することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ・システム。
  14. 請求項8記載のコンピュータ・システムであって、
    前記クライアント・セキュリティ管理レイヤは、前記構成部分のコードが前記構成部分の前記コードの標準に一致する旨を確認することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ・システム。
  15. コンピュータ・システムであって、
    プロセッサと、
    メモリと、
    クライアント・セキュリティ管理レイヤと、
    前記メモリの保護部分の保護を受けるよう、構成部分として、前記クライアント・セキュリティ管理レイヤにコンテンツ・プレイヤを登録する機能と、
    証明書、前記クライアント・セキュリティ管理レイヤの暗号化鍵、及び前記コンピュータ・システムのトラステッド・プラットフォーム・モジュール(TPM)のプラットフォーム構成レジスタ(PCR)値を有する署名されたブラブを含む前記構成部分による要求に応じて、コンテンツ・プロバイダから暗号化コンテンツ及び暗号化コンテンツ鍵を受け取る機能と、
    前記構成部分からの前記暗号化コンテンツ鍵を前記クライアント・セキュリティ管理レイヤに供給する機能であって、前記クライアント・セキュリティ管理レイヤは、前記構成部分のインテグリティを確認し、前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給し、前記復号コンテンツ鍵を前記メモリの前記保護部分に入れる機能と、
    前記暗号化コンテンツを前記構成部分によって復号し、前記復号コンテンツを前記メモリの前記保護部分に前記復号コンテンツ鍵を使用してレンダリングする機能と
    を行うよう構成されたコンテンツ・プレイヤと
    を備えるコンピュータ・システム。
  16. 請求項15記載のコンピュータ・システムであって、
    前記コンテンツ・プレイヤは、受け取られたコンテンツが、認可されていない複製から保護されている旨の証明を前記コンテンツ・プロバイダに提供するよう更に構成されたコンピュータ・システム。
  17. 請求項16記載のコンピュータ・システムであって、
    前記証明は、前記クライアント・セキュリティ管理レイヤの識別情報を備えるコンピュータ・システム。
  18. コンピュータ読み取り可能な記憶媒体であって、
    コンピュータ・システム上で実行する構成部分に代わってコンピュータ・システムのメモリの保護部分に対するアクセスをクライアント・セキュリティ管理レイヤによって制御する機能と、
    前記構成部分から、暗号化コンテンツ鍵を受け取る機能であって、前記暗号化コンテンツ鍵は、コンテンツ・プロバイダから前記構成部分によって受け取られたコンテンツとともに受け取られる機能と、
    前記構成部分のインテグリティを確認する機能と、
    前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給する機能と、
    前記構成部分のインテグリティの確認に応じて前記メモリの前記保護部分に前記復号コンテンツ鍵を入れ、それにより、前記構成部分は前記コンテンツを復号し、前記メモリの前記保護部分に前記コンテンツをレンダリングする機能と
    を行うよう構成された命令
    を備えたコンピュータ読み取り可能な記憶媒体。
  19. 請求項18記載のコンピュータ読み取り可能な記憶媒体であって、
    前記復号コンテンツ鍵は、コンテンツ・プロバイダから前記構成部分によって受け取られたコンテンツに対応し、
    前記構成部分は、前記復号コンテンツ鍵を使用して前記コンテンツを復号するコンピュータ読み取り可能な記憶媒体。
  20. 請求項18記載のコンピュータ読み取り可能な記憶媒体であって、
    前記命令は、
    前記構成部分から特定のコンテンツに対する復号要求を受け取り、
    前記暗号化コンテンツ鍵の復号前に前記特定のコンテンツの復号を前記特定のコンテンツのコンテンツ・ポリシーが可能にすると判定するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
  21. 請求項18記載のコンピュータ読み取り可能な記憶媒体であって、
    前記命令は、
    前記特定のコンテンツに対するコンテンツ・ポリシーが前記特定のコンテンツの復号を可能にすると、前記特定のコンテンツを供給したコンテンツ・サーバへの接続なしで判定するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
  22. 請求項18記載のコンピュータ読み取り可能な記憶媒体であって、
    前記命令は、前記構成部分のマニフェストを検証することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
  23. 請求項18記載のコンピュータ読み取り可能な記憶媒体であって、
    前記命令は、前記構成部分のコードが前記構成部分の前記コードの標準に一致する旨を確認することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
  24. コンピュータ読み取り可能な記憶媒体であって、
    コンピュータ・システムのメモリの保護部分の保護を受けるよう、構成部分として、コンピュータ・システムのクライアント・セキュリティ管理レイヤにコンテンツ・プレイヤを登録する機能と、
    証明書、前記クライアント・セキュリティ管理レイヤの暗号化鍵、及び前記コンピュータ・システムのトラステッド・プラットフォーム・モジュール(TPM)のプラットフォーム構成レジスタ(PCR)値を有する署名されたブラブを含む前記構成部分による要求に応じて、暗号化コンテンツ及び暗号化コンテンツ鍵をコンテンツ・プロバイダから受け取る機能と、
    前記構成部分からの前記暗号化コンテンツ鍵を前記クライアント・セキュリティ管理レイヤに供給する機能であって、前記クライアント・セキュリティ管理レイヤは、前記構成部分のインテグリティを確認し、前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給し、前記復号コンテンツ鍵を前記メモリの前記保護部分に入れる機能と、
    前記暗号化コンテンツを前記構成部分によって復号し、前記復号コンテンツを前記メモリの前記保護部分に前記復号コンテンツ鍵を使用してレンダリングする機能と
    を行うよう構成された命令を備えたコンピュータ読み取り可能な記憶媒体。
  25. 請求項24記載のコンピュータ読み取り可能な記憶媒体であって、
    前記命令は、受け取られたコンテンツが、認可されていない複製から保護されている旨の証明を前記コンテンツ・プロバイダに提供するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
  26. 請求項25記載のコンピュータ読み取り可能な記憶媒体であって、
    前記証明は、前記クライアント・セキュリティ管理レイヤの識別情報を備えるコンピュータ読み取り可能な記憶媒体。
  27. 請求項1記載の方法であって、
    前記構成部分のインテグリティを確認する工程は、前記コンテンツ・サーバによって供給されるアプリケーション識別情報に対して、前記構成部分によって供給されるアプリケーション識別情報を検証する工程を含む方法。
  28. 請求項1記載の方法であって、
    証明書、前記クライアント・セキュリティ管理レイヤの暗号化鍵、及び前記コンピュータ・システムのトラステッド・プラットフォーム・モジュール(TPM)のプラットフォーム構成レジスタ(PCR)値を含む署名されたブラブを受け取る工程を更に含み、前記構成部分は、前記コンテンツに対する要求により、前記署名されたブラブを前記コンテンツ・サーバに供給する方法。
  29. 請求項1記載の方法であって、
    前記クライアント・セキュリティ管理レイヤはルート特権レベルで動作し、前記構成部分は特権レベルで動作し、前記ルート特権レベルは、前記ルート特権レベルとは異なる第2の特権レベルにおけるオペレーティング・システム(OS)カーネルよりも高い特権を有する方法。
  30. 請求項1記載の方法であって、
    前記コンピュータ・システムから第2のコンピュータ・システムに前記復号コンテンツ鍵を転送する工程を更に含む方法。
  31. 請求項1記載の方法であって、
    前記コンピュータ・システムから第2のコンピュータ・システムに前記構成部分を移動させる工程を更に含む方法。
  32. 請求項5記載の方法であって、
    前記復号コンテンツは、前記復号コンテンツをレンダリングするためにオペレーティング・システム(OS)カーネルを呼び出すことなく、前記メモリの前記保護部分の保護コードのアプリケーション・プログラム・インタフェースを使用して、前記メモリの前記保護部分の保護フレーム・バッファ上で前記復号コンテンツをレンダリングする工程を含む方法。
JP2012108469A 2008-12-30 2012-05-10 クライアント・プラットフォーム上のコンテンツを保護する方法 Pending JP2012181862A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/319,034 2008-12-30
US12/319,034 US8213618B2 (en) 2008-12-30 2008-12-30 Protecting content on client platforms

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009289005A Division JP2010157224A (ja) 2008-12-30 2009-12-21 クライアント・プラットフォーム上のコンテンツを保護する方法

Publications (1)

Publication Number Publication Date
JP2012181862A true JP2012181862A (ja) 2012-09-20

Family

ID=42104503

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009289005A Pending JP2010157224A (ja) 2008-12-30 2009-12-21 クライアント・プラットフォーム上のコンテンツを保護する方法
JP2012108469A Pending JP2012181862A (ja) 2008-12-30 2012-05-10 クライアント・プラットフォーム上のコンテンツを保護する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009289005A Pending JP2010157224A (ja) 2008-12-30 2009-12-21 クライアント・プラットフォーム上のコンテンツを保護する方法

Country Status (5)

Country Link
US (1) US8213618B2 (ja)
EP (1) EP2207121B1 (ja)
JP (2) JP2010157224A (ja)
KR (1) KR101158184B1 (ja)
CN (1) CN101894224B (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
KR101379172B1 (ko) * 2008-04-02 2014-03-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 데이터 암호화 방법, 컴퓨터 판독 가능한 매체 및 저장 시스템
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US9400891B2 (en) * 2009-01-23 2016-07-26 Randall Stephens Owner controlled transmitted file protection and access control system and method
US9189620B2 (en) * 2009-06-30 2015-11-17 Intel Corporation Protecting a software component using a transition point wrapper
TW201116023A (en) * 2009-09-25 2011-05-01 Ibm A method and a system for providing a deployment lifecycle management of cryptographic objects
US8418259B2 (en) * 2010-01-05 2013-04-09 Microsoft Corporation TPM-based license activation and validation
US8601284B2 (en) 2010-01-27 2013-12-03 International Business Machines Corporation Secure connected digital media platform
US8442224B2 (en) * 2010-06-28 2013-05-14 Intel Corporation Protecting video content using virtualization
CN102004890B (zh) * 2010-12-07 2013-04-03 武汉大学 一种基于网络环境的通用数字版权保护方法
KR20120072011A (ko) 2010-12-23 2012-07-03 한국전자통신연구원 무결성 검증이 가능한 데이터 암호장치, 복호장치 및 방법
US8528099B2 (en) 2011-01-27 2013-09-03 Oracle International Corporation Policy based management of content rights in enterprise/cross enterprise collaboration
US8954722B2 (en) 2011-03-04 2015-02-10 Broadcom Corporation Enforcing software updates in an electronic device
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
WO2012135192A2 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
JP5782120B2 (ja) * 2011-06-06 2015-09-24 株式会社ソシオネクスト コンテンツデータ再生方法、およびサムネイル画像生成方法
WO2013038592A1 (ja) * 2011-09-13 2013-03-21 パナソニック株式会社 コンテンツ再生システム、情報処理端末、メディアサーバ、セキュアデバイスおよびサーバ・セキュアデバイス
CN103250159B (zh) * 2011-12-01 2016-06-01 英特尔公司 数字内容保护方案的安全提供
CN102567233B (zh) * 2011-12-23 2014-07-02 福建升腾资讯有限公司 基于磁盘虚拟技术的usb存储设备数据保护方法
US20130298187A1 (en) * 2012-05-04 2013-11-07 Ca, Inc. Managing virtual identities
WO2014046974A2 (en) 2012-09-20 2014-03-27 Case Paul Sr Case secure computer architecture
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
US9355261B2 (en) * 2013-03-14 2016-05-31 Appsense Limited Secure data management
US9411983B2 (en) * 2013-03-15 2016-08-09 Intel Corporation Apparatus and method to protect digital content
US10073966B2 (en) * 2013-04-29 2018-09-11 Sri International Operating system-independent integrity verification
US10257548B2 (en) * 2013-07-02 2019-04-09 Sony Corporation Content-bound trusted executables
US9215251B2 (en) 2013-09-11 2015-12-15 Appsense Limited Apparatus, systems, and methods for managing data security
US9507935B2 (en) * 2014-01-16 2016-11-29 Fireeye, Inc. Exploit detection system with threat-aware microvisor
US9503433B2 (en) * 2014-03-27 2016-11-22 Intel Corporation Method and apparatus for cloud-assisted cryptography
US20150294119A1 (en) 2014-04-10 2015-10-15 International Business Machines Corporation Booting a multi-node computer system from a primary node dynamically selected based on security setting criteria
US9594929B2 (en) * 2014-08-11 2017-03-14 Honeywell International Inc. Open architecture security methods and systems
US9692599B1 (en) * 2014-09-16 2017-06-27 Google Inc. Security module endorsement
FR3030827B1 (fr) * 2014-12-19 2017-01-27 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif de traitement securise de donnees cryptees
US10162767B2 (en) 2015-06-27 2018-12-25 Mcafee, Llc Virtualized trusted storage
CN105678183B (zh) * 2015-12-30 2018-09-18 青岛海信移动通信技术股份有限公司 一种智能终端的用户数据管理方法及装置
GB201700367D0 (en) * 2017-01-10 2017-02-22 Trustonic Ltd A system for recording and attesting device lifecycle
US10372945B2 (en) * 2017-01-24 2019-08-06 Microsoft Technology Licensing, Llc Cross-platform enclave identity
US10924282B2 (en) * 2018-05-24 2021-02-16 Cyber Pack Ventures, Inc. System and method for measuring and reporting IoT boot integrity
US11893127B2 (en) * 2018-12-21 2024-02-06 Acronis International Gmbh System and method for indexing and searching encrypted archives
CN109922056B (zh) 2019-02-26 2021-09-10 创新先进技术有限公司 数据安全处理方法及其终端、服务器
CN110096887B (zh) 2019-03-22 2020-06-30 阿里巴巴集团控股有限公司 一种可信计算方法及服务器
EP4014120A4 (en) 2019-08-12 2024-04-10 Audio Visual Preservation Solutions, Inc. FORENSIC SOURCE DETECTION SYSTEM, APPARATUS AND METHOD FOR MULTIMEDIA FILES
US11583775B1 (en) * 2020-01-07 2023-02-21 Gregory D. Guida System and method for providing player directed content in a gaming machine
JP7380251B2 (ja) * 2020-01-27 2023-11-15 株式会社Ihi 仮想マシンにおけるデータ改ざんの監視方法及び装置
US20210314360A1 (en) * 2020-04-03 2021-10-07 Make Great Sales Limited System and method for the detection of website content theft

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5189764B2 (ja) * 2003-06-27 2013-04-24 ディズニー エンタープライゼス インコーポレイテッド 次世代メディアプレーヤ向けデュアルバーチャルマシン及びトラステッドプラットフォームモジュールアーキテクチャ
GB2404537B (en) 2003-07-31 2007-03-14 Hewlett Packard Development Co Controlling access to data
US7634807B2 (en) * 2003-08-08 2009-12-15 Nokia Corporation System and method to establish and maintain conditional trust by stating signal of distrust
US20050273629A1 (en) * 2004-06-04 2005-12-08 Vitalsource Technologies System, method and computer program product for providing digital rights management of protected content
US20050283601A1 (en) * 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for securing a computer boot
US7634664B2 (en) 2005-02-15 2009-12-15 Hewlett-Packard Development Company, L.P. Devices, systems, and methods for secure download of data
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities
US7523323B2 (en) 2005-09-15 2009-04-21 Intel Corporation Method and apparatus for quick resumption
WO2008004524A1 (fr) * 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré
US8151262B2 (en) 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US8661552B2 (en) 2007-06-28 2014-02-25 Microsoft Corporation Provisioning a computing system for digital rights management
US20090007104A1 (en) * 2007-06-29 2009-01-01 Zimmer Vincent J Partitioned scheme for trusted platform module support
US8782801B2 (en) * 2007-08-15 2014-07-15 Samsung Electronics Co., Ltd. Securing stored content for trusted hosts and safe computing environments
US8064605B2 (en) * 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US20090092248A1 (en) * 2007-10-04 2009-04-09 Advanced Micro Devices, Inc. Encryption-based authentication for binding modules
US20100082960A1 (en) * 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US8788841B2 (en) * 2008-10-23 2014-07-22 Samsung Electronics Co., Ltd. Representation and verification of data for safe computing environments and systems

Also Published As

Publication number Publication date
CN101894224A (zh) 2010-11-24
US20100169667A1 (en) 2010-07-01
JP2010157224A (ja) 2010-07-15
EP2207121A1 (en) 2010-07-14
KR20100080405A (ko) 2010-07-08
US8213618B2 (en) 2012-07-03
EP2207121B1 (en) 2013-03-20
CN101894224B (zh) 2015-03-18
KR101158184B1 (ko) 2012-06-20

Similar Documents

Publication Publication Date Title
US8213618B2 (en) Protecting content on client platforms
US20230066210A1 (en) Method and system for preventing and detecting security threats
US9989043B2 (en) System and method for processor-based security
US9361471B2 (en) Secure vault service for software components within an execution environment
US8132003B2 (en) Secure platform voucher service for software components within an execution environment
KR100930218B1 (ko) 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템
US9635048B2 (en) Method and system for dynamic platform security in a device operating system
US9361462B2 (en) Associating a signing key with a software component of a computing platform
Bratus et al. TOCTOU, traps, and trusted computing
US20110289294A1 (en) Information processing apparatus
JP2005527019A (ja) マルチトークンのシール及びシール解除
JP2012053898A (ja) 安全なメモリ区分を使用した安全な実行のための方法および装置
KR20060047897A (ko) 상태 검증을 사용하여 보호된 오퍼레이팅 시스템 부팅을위한 시스템 및 방법
US8656190B2 (en) One time settable tamper resistant software repository
US9195821B2 (en) System and methods for remote software authentication of a computing device
CN114651253A (zh) 用于策略强制实施的虚拟环境类型验证
Futral et al. Fundamental principles of intel® txt
Galanou et al. Matee: Multimodal attestation for trusted execution environments
Cheruvu et al. Base Platform Security Hardware Building Blocks
Song et al. Check for updates TZ-IMA: Supporting Integrity Measurement for Applications with ARM TrustZone
D'Cunha Exploring the integration of memory management and trusted computing
Bugiel Using TCG/DRTM for application-specific credential storage and usage

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20120807

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130115