(57)【要約】【課題】受信側コンピュータ・システム上のマルウェアからコンテンツが保護されることを確実にするクライアント・セキュリティ管理レイヤ及びコンテンツ・プレイヤを提供する旨の命令を備えた方法、コンピュータ・システム、及びコンピュータ読み取り可能な媒体。【解決手段】クライアント・セキュリティ管理レイヤは、コンピュータ・システムのプロセッサ上で実行する、コンテンツ・プレイヤなどの構成部分に代わってコンピュータ・システムのメモリの保護部分に対するアクセスを制御する。クライアント・セキュリティ管理レイヤは、上記構成部分から暗号化コンテンツ鍵を受け取り、構成部分のインテグリティを確認し、暗号化コンテンツ鍵を復号して復号コンテンツ鍵を供給し、構成部分のインテグリティの確認に応じて復号コンテンツ鍵をメモリの保護部分に入れる。他の実施例を明細書及び特許請求の範囲に記載している。【選択図】図３
2010157224.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
構成部分に代わってコンピュータ・システムのメモリの保護部分に対するアクセスを制御する工程と、
前記構成部分から、暗号化コンテンツ鍵を受け取る工程と、
前記構成部分のインテグリティを確認する工程と、
前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給する工程と、
前記構成部分のインテグリティの確認に応じて前記メモリの前記保護部分に前記復号コンテンツ鍵を入れる工程と
を含む方法。
【請求項２】
請求項１記載の方法であって、
前記メモリの前記保護部分に対する前記アクセスを制御する工程は、前記メモリの前記保護部分に対する、前記コンピュータ・システムのオペレーティング・システムによるアクセスを阻止する工程を含む方法。
【請求項３】
請求項１記載の方法であって、
前記メモリの前記保護部分に対する前記アクセスを制御する工程は、前記メモリの前記保護部分に対する、認可されていないアプリケーションによるアクセスを阻止する工程を含む方法。
【請求項４】
請求項１記載の方法であって、
前記復号コンテンツ鍵は、コンテンツ・プロバイダからの前記構成部分によって受け取られたコンテンツに対応し、
前記構成部分は、前記復号コンテンツ鍵を使用して前記コンテンツを復号する方法。
【請求項５】
請求項１記載の方法であって、
前記構成部分から特定のコンテンツに対する復号要求を受け取る工程と、
前記暗号化コンテンツ鍵を復号する前に前記特定のコンテンツの復号を前記特定のコンテンツのコンテンツ・ポリシーが可能にすることを判定する工程とを更に含む方法。
【請求項６】
請求項５記載の方法であって、
前記特定のコンテンツを供給したコンテンツ・サーバへの接続なしで、前記特定のコンテンツの復号が行われることを前記特定のコンテンツに対するコンテンツ・ポリシーが可能にすることを判定する工程を更に含む方法。
【請求項７】
請求項１記載の方法であって、
前記構成部分のインテグリティを確認する工程は、前記構成部分のマニフェストを検証する工程を含む方法。
【請求項８】
請求項１記載の方法であって、
前記構成部分のインテグリティを確認する工程は、前記構成部分のコードが、前記構成部分の前記コードの標準に一致する方法。
【請求項９】
方法であって、
コンピュータ・システムのメモリの保護部分の保護を受けるよう、構成部分として、クライアント・セキュリティ管理レイヤに登録する工程と、
暗号化コンテンツ及び暗号化コンテンツ鍵をコンテンツ・プロバイダから受け取る工程と、
前記暗号化コンテンツ鍵を前記クライアント・セキュリティ管理レイヤに供給する工程であって、前記クライアント・セキュリティ管理レイヤは、前記構成部分のインテグリティを確認し、前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給し、前記復号コンテンツ鍵を前記メモリの前記保護部分に入れる工程と、
前記暗号化コンテンツを前記メモリの前記保護部分に前記復号コンテンツ鍵を使用して復号する工程と
を含む方法。
【請求項１０】
請求項９記載の方法であって、
認可されていない複製から、受け取られたコンテンツが保護されているという証明を前記コンテンツ・プロバイダに提供する工程を更に備える方法。
【請求項１１】
請求項１０記載の方法であって、
前記証明は、前記クライアント・セキュリティ管理レイヤの識別情報を備える方法。
【請求項１２】
コンピュータ・システムであって、
プロセッサと、
前記プロセッサに結合されたメモリと、
前記プロセッサ上で実行する構成部分の代わりに前記メモリの保護部分に対するアクセスを制御し、
前記構成部分から、暗号化コンテンツ鍵を受け取る機能と、
前記構成部分のインテグリティを確認する機能と、
前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給する機能と、
前記構成部分のインテグリティの確認に応じて前記メモリの前記保護部分に前記復号コンテンツ鍵を入れる機能とを行うよう構成されたクライアント・セキュリティ管理レイヤとを備えたコンピュータ・システム。
【請求項１３】
請求項１２記載のコンピュータ・システムであって、
前記クライアント・セキュリティ管理レイヤは、前記メモリの前記保護部分に対する、前記コンピュータ・システムのオペレーティング・システムによるアクセスを阻止することにより、前記メモリの前記保護部分に対する前記アクセスを制御するよう更に構成されたコンピュータ・システム。
【請求項１４】
請求項１２記載のコンピュータ・システムであって、
前記クライアント・セキュリティ管理レイヤは、前記メモリの前記保護部分に対する、前記コンピュータ・システム上で実行する認可されていないアプリケーションによるアクセスを阻止することにより、前記メモリの前記保護部分に対する前記アクセスを制御するよう更に構成されたコンピュータ・システム。
【請求項１５】
請求項１２記載のコンピュータ・システムであって、
前記復号コンテンツ鍵は、コンテンツ・プロバイダからの前記構成部分によって受け取られたコンテンツに対応し、
前記構成部分は、前記復号コンテンツ鍵を使用して前記コンテンツを復号するコンピュータ・システム。
【請求項１６】
請求項１２記載のコンピュータ・システムであって、
前記クライアント・セキュリティ管理レイヤは、
前記構成部分から特定のコンテンツに対する復号要求を受け取る機能と、
前記暗号化コンテンツ鍵を復号する前に前記特定のコンテンツの復号を前記特定のコンテンツのコンテンツ・ポリシーが可能にすることを判定する機能と
を行うよう更に構成されたコンピュータ・システム。
【請求項１７】
請求項１６記載のコンピュータ・システムであって、
前記クライアント・セキュリティ管理レイヤは、前記特定のコンテンツを供給したコンテンツ・サーバへの接続なしで、前記特定のコンテンツの復号を前記特定のコンテンツに対するコンテンツ・ポリシーが可能にすることを判定するよう更に構成されたコンピュータ・システム。
【請求項１８】
請求項１２記載のコンピュータ・システムであって、
前記クライアント・セキュリティ管理レイヤは、前記構成部分のマニフェストを検証することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ・システム。
【請求項１９】
請求項１２記載のコンピュータ・システムであって、
前記クライアント・セキュリティ管理レイヤは、前記構成部分のコードが前記構成部分の前記コードの標準に一致する旨を確認することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ・システム。
【請求項２０】
コンピュータ・システムであって、
プロセッサと、
メモリと、
クライアント・セキュリティ管理レイヤと、
前記メモリの保護部分の保護を受けるよう、構成部分として、前記クライアント・セキュリティ管理レイヤに登録する機能と、
暗号化コンテンツ及び暗号化コンテンツ鍵をコンテンツ・プロバイダから受け取る機能と、
前記暗号化コンテンツ鍵を前記クライアント・セキュリティ管理レイヤに供給する機能であって、前記クライアント・セキュリティ管理レイヤは、前記構成部分のインテグリティを確認し、前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給し、前記復号コンテンツ鍵を前記メモリの前記保護部分に入れる機能と、
前記暗号化コンテンツを前記メモリの前記保護部分に前記復号コンテンツ鍵を使用して復号する機能と
を行うよう構成されたコンテンツ・プレイヤと
を備えるコンピュータ・システム。
【請求項２１】
請求項２０記載のコンピュータ・システムであって、
前記コンテンツ・プレイヤは、受け取られたコンテンツが、認可されていない複製から保護されている旨の証明を前記コンテンツ・プロバイダに提供するよう更に構成されたコンピュータ・システム。
【請求項２２】
請求項２１記載のコンピュータ・システムであって、
前記証明は、前記クライアント・セキュリティ管理レイヤの識別情報を備えるコンピュータ・システム。
【請求項２３】
コンピュータ読み取り可能な記憶媒体であって、
コンピュータ・システム上で実行する構成部分に代わってコンピュータ・システムのメモリの保護部分に対するアクセスを制御する機能と、
前記構成部分から、暗号化コンテンツ鍵を受け取る機能と、
前記構成部分のインテグリティを確認する機能と、
前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給する機能と、
前記構成部分のインテグリティの確認に応じて前記メモリの前記保護部分に前記復号コンテンツ鍵を入れる機能と
を行うよう構成された命令
を備えたコンピュータ読み取り可能な記憶媒体。
【請求項２４】
請求項２３記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令は、前記メモリの前記保護部分に対する、前記コンピュータ・システムのオペレーティング・システムによるアクセスを阻止することにより、前記メモリの前記保護部分に対する前記アクセスを制御するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
【請求項２５】
請求項２３記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令は、前記メモリの前記保護部分に対する、前記コンピュータ・システム上で実行する認可されていないアプリケーションによるアクセスを阻止することにより、前記メモリの前記保護部分に対する前記アクセスを制御するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
【請求項２６】
請求項２３記載のコンピュータ読み取り可能な記憶媒体であって、
前記復号コンテンツ鍵は、コンテンツ・プロバイダから前記構成部分によって受け取られたコンテンツに対応し、
前記構成部分は、前記復号コンテンツ鍵を使用して前記コンテンツを復号するコンピュータ読み取り可能な記憶媒体。
【請求項２７】
請求項２３記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令は、
前記構成部分から特定のコンテンツに対する復号要求を受け取り、
前記暗号化コンテンツ鍵の復号前に前記特定のコンテンツの復号を前記特定のコンテンツのコンテンツ・ポリシーが可能にすることを判定するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
【請求項２８】
請求項２３記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令は、前記特定のコンテンツを供給したコンテンツ・サーバへの接続なしで、前記特定のコンテンツの復号を前記特定のコンテンツに対するコンテンツ・ポリシーが可能にすることを判定するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
【請求項２９】
請求項２３記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令は、前記構成部分のマニフェストを検証することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
【請求項３０】
請求項２３記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令は、前記構成部分のコードが前記構成部分の前記コードの標準に一致する旨を確認することにより、前記構成部分のインテグリティを確認するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
【請求項３１】
コンピュータ読み取り可能な記憶媒体であって、
コンピュータ・システムのメモリの保護部分の保護を受けるよう、構成部分として、コンピュータ・システムのクライアント・セキュリティ管理レイヤに登録する機能と、
暗号化コンテンツ及び暗号化コンテンツ鍵をコンテンツ・プロバイダから受け取る機能と、
前記暗号化コンテンツ鍵を前記クライアント・セキュリティ管理レイヤに供給する機能であって、前記クライアント・セキュリティ管理レイヤは、前記構成部分のインテグリティを確認し、前記暗号化コンテンツ鍵を復号して、復号コンテンツ鍵を供給し、前記復号コンテンツ鍵を前記メモリの前記保護部分に入れる機能と、
前記暗号化コンテンツを前記メモリの前記保護部分に前記復号コンテンツ鍵を使用して復号する機能と
を行うよう構成された命令を備えたコンピュータ読み取り可能な記憶媒体。
【請求項３２】
請求項３１記載のコンピュータ読み取り可能な記憶媒体であって、
前記命令は、受け取られたコンテンツが、認可されていない複製から保護されている旨の証明を前記コンテンツ・プロバイダに提供するよう更に構成されたコンピュータ読み取り可能な記憶媒体。
【請求項３３】
請求項３２記載のコンピュータ読み取り可能な記憶媒体であって、
前記証明は、前記クライアント・セキュリティ管理レイヤの識別情報を備えるコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権の告知
本出願には、著作権保護の対象となる資料が含まれている。著作権者は、米国特許商標庁の特許のファイル又は記録に記載の特許の開示が如何なる個人によってファクシミリ複製されることにも異議はないが、著作権に対する一切の権利を全て所有する。
【０００２】
本願は一般に、ディジタル・コンテンツの保護に関する。
【背景技術】
【０００３】
ディジタル著作権管理は、技術及び娯楽の産業にとっては難題である。毎日、数百万ドル（数億円）が、インターネットからの映画及び音楽のファイルの不正ダウンロードによって失われている。コンテンツ・スクランブリング手法や高度アクセス・コンテンツ・システムなどの、これまで実現されてきた解決策は、前述のデータの損失に対して提供される保護が十分でなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュータ・システムを管理下に置こうとし、かつ／又はディジタル・コンテンツを盗もうとするマルウェアによる高度かつ進化している攻撃により、前述の損失が悪化している。前述の攻撃は、ソフトウェア・プログラムをクラッシュさせようとする試みから、別の目的でのプログラムの破壊に及ぶ各種形態をとり得る。主メモリ中で、かつ、転送中にコンテンツを保護する鍵、構成情報、及び／又は、ソフトウェア・プログラムのコードなどのランタイム・データの保護は、技術及び娯楽の産業にとって特に難題である。
【課題を解決するための手段】
【０００５】
本発明の実施例は、コンテンツ・サーバからの受信コンテンツを保護し、受信側のコンテンツ・プレイヤの保護サービスを提供する旨の命令を方法、システム及びコンピュータ読み取り可能な記憶媒体に提供することができる。セキュアなクライアント・プラットフォームは、コンテンツ・サーバにそのインテグリティの証明を提供する。前述のインテグリティの証明には、コンテンツを盗むことが企図された「コンテンツ・リッパー（ｃｏｎｔｅｎｔ  ｒｉｐｐｅｒｓ）」として知られているソフトウェアに対する保護、及び保護された「既知」のコンテンツ・プレイヤの存在の証明が含まれる。コンテンツ・サーバは、インテグリティ保護された「既知の」コンテンツ・プレイヤに対してコンテンツ鍵を供給する。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施例による、実行環境内のソフトウェア構成部分の保護を提供するためのプラットフォームを示す図である。
【図２】本発明の実施例による、並列実行環境を利用したプラットフォームを示す図である。
【図３】本発明の一実施例によるセキュアなプラットフォームのアーキテクチャを示すブロック図である。
【図４】図３のセキュアなプラットフォームのアーキテクチャによって提供される環境において動作するよう構成されたコンテンツ・プレイヤ（図３のコンテンツ・プレイヤなど）の動作の方法を示すフローチャートである。
【図５】図３のセキュアなプラットフォームのアーキテクチャによって提供される環境とともに動作するよう構成されたコンテンツ・サーバの動作の方法を示すフローチャートである。
【図６】図３のセキュアなプラットフォーム・アーキテクチャを提供するよう構成されたクライアント・セキュリティ管理レイヤの動作の方法を示すフローチャートである。
【発明を実施するための形態】
【０００７】
種々の実施例は、１つ又は複数の構成要素を含み得る。構成要素は、特定の動作を行うよう構成された何れの構造も含み得る。各構成要素は、設計パラメータ又は性能制約の特定の組についての必要に応じて、ハードウェア、ソフトウェア、又はそれらの何れかの組合せとして実現することができる。一実施例は、例として、特定のトポロジにおける限定数の構成要素によって説明することができるが、前述の実施例は、特定の実現形態に望ましい別のトポロジにおいて、より多くの、又はより少ない構成要素を含み得る。「ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」又は「ａｎ  ｅｍｂｏｄｉｍｅｎｔ」への言及は何れも、本願の実施例に関して説明した特定の構成、構造又は特性が少なくとも一実施例に含まれていることを意味しているということを特筆する。本明細書中の随所に「ｉｎ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」という句が存在することは、その全てが同じ実施例を表している訳でない。
【実施例】
【０００８】
図１は、本発明の実施例による、コンテンツ・サーバから受け取られたコンテンツを保護するためのプラットフォーム１００を示す。プラットフォーム１００は、実行オペレーティング・システム（ＯＳ）１０８のドメインであり得る実行環境１０４を有し得る。ＯＳ１０８は、以下に更に詳細に説明するように、選択された構成部分に、下にある管理モジュール１１６によって提供されるパーティション内メモリ・アクセス保護に従って、ソフトウェア構成部分１１２などの、実行環境１０４内の他の構成部分の一般動作を実行し、制御するよう構成された構成部分であり得る。
【０００９】
一部の実施例では、構成部分１１２は、スーパーバイザリ・レベルの構成部分（例えば、カーネル構成部分）であり得る。種々の実施例では、カーネル構成部分は、サービス（例えば、ローダ、スケジューラ、メモリ・マネージャ等）、拡張／ドライバ（例えば、ネットワーク・カード用、ユニバーサル・シリアル・バス（ＵＳＢ）インタフェース用、ディスク・ドライブ用等）、又はサービス・ドライバ・ハイブリッド（例えば、コードの実行を監視するための侵入検知器）であり得る。あるいは、実施例では、構成部分１１２は、アプリケーション・プロセス。スレッド、又は他のユーザ空間プログラム、サービス、若しくはライブラリであり得る。
【００１０】
本明細書及び特許請求の範囲記載の「構成部分」の語は、所望の結果を得るために使用することができるプログラミング・ロジック及び関連付けられたデータを表すことを意図している。構成部分の語は、「モジュール」又は「エージェント」と同義であり得、プログラミング言語（Ｃ＋＋、インテル・アーキテクチャ３２ビット（ＩＡ−３２）実行可能なコード等など）で記述された、場合によっては入口点及び出口点を有するソフトウェア命令の集合、又はハードウェア若しくはファームウェアで実施することができるプログラミング・ロジックを表し得る。
【００１１】
ソフトウェア構成部分は、実行可能なプログラムにコンパイルし、リンクするか、あるいは、動的リンク・ライブラリにインストールするか、あるいはＢＡＳＩＣなどの解釈言語で記述することができる。ソフトウェア構成部分は、他の構成部分から、又はそれ自身から呼び出すことができ、かつ／又は、検出イベント又は割り込みに応じて呼び出すことができる。ソフトウェア命令は、マシン・アクセス可能な媒体において供給することができる。マシン・アクセス可能な媒体がアクセスされると、本発明の実施例の構成部分に関して説明した動作又は実行をマシンが行うことをもたらし得る。マシン・アクセス可能な媒体は、ファームウェア、例えば、電気的に消去可能なプログラマブル・リードオンリ・メモリ（ＥＥＰＲＯＭ）、又は、他の記録可能な／記録可能でない媒体（例えば、リードオンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶装置、光ディスク記憶装置等）であり得る。更に、ハードウェア構成部分は、接続された論理装置（ゲート及びフリップフロップなど）を含み得、かつ／又は、プログラマブル装置（プログラマブル・ゲート・アレイ又はプロセッサなど）を含み得る。一部の実施例では、本明細書及び特許請求の範囲記載の構成部分は、ソフトウェア・モジュールとして実現されるが、しかし、ハードウェア又はファームウェアで表すことができる。更に、特定数の個別ソフトウェア／ハードウェア構成部分を例証し、かつ／又は説明しているが、前述の構成部分はしかし、本発明の実施例の趣旨及び範囲から逸脱しない限り、より多くの構成部分、又はより少ない構成部分によって表すことができる。
【００１２】
実行環境１０４の選択された構成部分のイントラ・パーティション化に加えて、管理モジュール１１６は、１つ又は複数のプロセッサ１２０、ネットワーク・インタフェース・コントローラ（ＮＩＣ）１２４、記憶装置１２８、及び／又はメモリ１３２などのハードウェア資源１１８への一般的な構成部分のアクセスのアービトレーションを行うことができる。
【００１３】
プロセッサ１２０は、プラットフォーム１００の構成部分のプログラミング命令を実行することができる。プロセッサ１２０は、単一コア及び／又は複数コア・プロセッサ、コントローラ、特殊用途向け集積回路（ＡＳＩＣ）等であり得る。
【００１４】
一実施例では、プラットフォーム１００上の構成部分（限定列挙でないが、オペレーティング・システム、プログラム・ファイル、構成ファイル等など）を実行するために使用する対象の永続的コンテンツを記憶するための不揮発性記憶装置を表し得る。一実施例では、構成部分１１２のソース・コンテンツの永続的記憶を表し得る記憶コンテンツ１３６を含み得る。ソース・コンテンツの永続的記憶装置は、例えば、実行可能なファイル及び／又はコード・セグメント、他のルーチンへのリンク（例えば、動的リンク・ライブラリ（ＤＬＬ）へのコール）、データ・セグメント等を有し得る実行可能なコード記憶装置を含み得る。
【００１５】
種々の実施例では、記憶装置１２８は、限定列挙でないが、ディスク及び関連付けられたドライブ（例えば、磁気、光）、ユニバーサル・シリアル・バス（ＵＳＢ）記憶装置及び関連付けられたポート、フラッシュ・メモリ、ＲＯＭ、不揮発性半導体デバイス等などの一体化された記憶装置、及び／又は周辺記憶装置を含み得る。
【００１６】
種々の実施例では、記憶装置１２８は、プラットフォーム１００の物理的な部分である記憶資源であり得るか、又はプラットフォーム１００の一部で必ずしもないが、プラットフォーム１００によってアクセス可能であり得る。例えば、記憶装置１２８は、ネットワーク・インタフェース・コントローラ１２４を介してネットワーク１４０を経由してプラットフォーム１００によってアクセスすることができる。
【００１７】
（例えば、ＯＳ１０８のローディング構成部分又はエージェントからの）ロード要求により、管理モジュール１１６及び／又はＯＳ１０８は、実行環境１０４における構成部分１１２の動作のためにアクティブ・コンテンツ１４４としてメモリ１３２に、記憶装置１２８から記憶コンテンツ１３６をロードすることができる。
【００１８】
種々の実施例では、メモリ１３２は、プラットフォーム１００上の構成部分の動作のためにアクティブ・コンテンツを供給するための不揮発性記憶装置であり得る。種々の実施例では、メモリ１３２は、ＲＡＭ、ダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、デュアルデータ・レートＲＡＭ（ＤＤＲＡＭ）、キャッシュ等を含み得る。
【００１９】
一部の実施例では、メモリ１３２は、記憶されたコンテンツをいくつかのメモリ位置群に編成することができる。固定サイズ及び／又は可変サイズであり得る前述の編成群は、仮想メモリ管理を容易にし得る。メモリ位置群はページ、セグメント、又はそれらの組合せであり得る。
【００２０】
ページングを利用する仮想メモリは、より小さな物理メモリ・ページによる、大容量の論理／線形アドレス空間のエミュレーションを容易にし得る。したがって、実行環境１０４は、次いでメモリ１３２の物理ページにマッピングすることができる、構成部分が動作し得る仮想実行環境を提供し得る。ＯＳ１０８及び／又は管理モジュール１１６によって運用されるページ・テーブルは、実行環境１０４の構成部分によって提供される論理／線形アドレスをメモリ１３２の物理アドレスにマッピングすることができる。
【００２１】
種々の実施例では、構成部分１１２、又はその一部分は、構成部分１１２に保護サービスを提供するためのイントラ・パーティション化のために選択することができる。例えば、構成部分１１２は、コンテンツ・サーバからコンテンツを受け取るためのコンテンツ・プレイヤを表し得る。管理モジュール１１６は、構成部分１１２へのＯＳ１０８又は他の構成部分によるアクセスを制御するために構成部分１１２の一部を識別し、パーティション化することができる。パーティション化された部分は、特定の構成部分の何れかの部分乃至全部を含み得る。パーティション化された部分は、必要な場合、下にあるプラットフォームによってイントラ実行環境アクセスを監視し、制限することができるように、同じ実行環境内の他の構成部分から物理的に又は仮想的に分離することができる。イントラ・パーティション化は、構成部分１１２が、別個のＯＳで、完全に別個の実行環境において動作することを必要とすることなく、例えば、ＯＳ１０８からの構成部分１１２の隔離を容易にすることができる。例えば、マルウェア、ルートキット、重大なランタイム障害等により、特定のやり方で損なうことができる実行環境１０４内で、他の構成部分（同様な、又はより高い特権レベルのもの）からの保護のレベルを構成部分１１２に与えることもできる。本発明の実施例は、実行環境１０４の構成部分１１２と他の構成部分（例えば、ＯＳ１０８）との間の許可された相互作用をなお可能にしながら、保護サービスを行うことができる。構成部分１１２へのＯＳ１０８によるアクセスの制御は、種々のレベルのアクセス制限を含み得る。
【００２２】
種々の実施例では、実行環境内のコンテンツを保護するための構成部分のイントラ・パーティション化は、仮想化技術（ＶＴ）対応のプラットフォームにおいて動作する仮想マシンなどの複数の実行環境を有するプラットフォームにおいて有用であり得る。前述の実施例では、管理モジュールは、仮想マシン・モニタ（ＶＭＭ）を含み得るか、又はＶＭＭの一部であり得る。
【００２３】
ハイパーバイザ及びハードウェアのプラットフォーム証明は、トラステッド・コンピューティング・グループ（ＴＣＧ）標準化団体において規定されている。ＴＣＧによって規定された証明機構は、「測定されたコード」がクライアント・プラットフォーム上で実行しているということに対する証明を提供することを含む。コードは、コードの現在のバージョンを、コードの元の「価値の基準」のバージョンと比較することによって「測定される」。コードにおける、元の「価値の標準」からの何れのばらつきも、場合によっては、ウィルス又は他のマルウェアによって上書きされていて、コードがタンパリングを受けているということの表示である。
【００２４】
通常、ＴＣＧ標準の下でのプラットフォーム証明のために測定されるコードは、システム・ハードウェア構成部分及びハイパーバイザ・コードを識別し、初期化するＢＩＯＳコードなどのコードを含む。ハイパーバイザは、複数のオペレーティング・システムがホスト・コンピュータ・システム上で実行することを可能にし、「仮想マシン・モニタ」としても表される。プラットフォーム証明のための測定は、現在、利用可能なオペレーティング・システム及びアプリケーション・プログラムのバージョンが無数あることが理由で、通常、オペレーティング・システムに、又はアプリケーション・プログラムに拡張されない。利用可能なオペレーティング・システム及びアプリケーション・プログラムのバージョンが非常に多い中で、測定コードとの比較のためにコードの各バージョンの確認された元の「価値の基準」の複製を保持することは、管理可能でない負担としてみなされる。
【００２５】
「Ｓｅｃｕｒｅ  Ｖａｕｌｔ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｓｏｆｔｗａｒｅ  Ｃｏｍｐｏｎｅｎｔｓ  ｗｉｔｈｉｎ  ａｎ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｉｏｎｍｅｎｔ」と題する、西暦２００７年８月２日付出願の米国特許出願第１１／２２９１２６号は、本出願の譲受人に譲渡されており、その内容全部を本明細書及び特許請求の範囲に援用する。米国特許出願第１１／２２９１２６号には、仮想マシン内のオペレーティング・システム及びアプリケーション・プログラムを測定し、保護するために使用することが可能なセキュア・ボールト・サービスが記載されている。セキュア・ボールト・サービスは、オペレーティング・システムよりも高い特権レベルで実行する仮想マシン・モニタによって提供される。よって、セキュア・ボールト・サービスは、オペレーティング・システムが損なわれているシステム上のデータ及びプログラム構成部分を保護することが可能である。セキュア・ボールト・サービスを提供する仮想マシン・モニタは本明細書及び特許請求の範囲では、「クライアント・セキュリティ管理レイヤ」として表される。
【００２６】
図２は、本発明の実施例による、構成部分の保護サービス及び並列実行環境を提供するために仮想化を利用するプラットフォーム２００を示す。種々の実施例では、プラットフォーム２００は、図１のプラットフォーム１００と同様であるか、又は、図１のプラットフォーム１００とほぼ置換可能であり得る。更に、後述する構成要素は、上述の同様な名称の構成要素と同様か、又は前述の構成要素とほぼ置換可能であり、逆も同様であり得る。
【００２７】
この実施例では、プラットフォーム２００上の管理モジュール（例えば、仮想マシン・モニタ（ＶＭＭ）２０４）は、独立して動作する１つ又は複数の実行環境又は「仮想マシン（ＶＭ）」（例えば、ゲストＶＭ２２８及び補助ＶＭ２３２）に、プラットフォーム・ハードウェア２０８の複数の抽象化及び／又はビュー、例えば、１つ又は複数のプロセッサ２１２、ネットワーク・インタフェース・コントローラ（ＮＩＣ）２１６、記憶装置２２０、及び／又はメモリ２２４を提示し得る。補助ＶＭ２３２は、ゲストＶＭ２２８と独立し、セキュアに分離されたコードを実行するよう構成し得、補助ＶＭ２３２の構成部分を変えるか、修正するか、読み出すか、又は他のやり方で影響を及ぼす動作をゲストＶＭ２２８の構成部分が実行することを妨げ得る。プラットフォーム２００は２つのＶＭを示しているが、他の実施例は何れの数のＶＭも使用することができる。
【００２８】
ゲストＶＭ２２８及び補助ＶＭ２３２において動作する構成部分はそれぞれ、仮想マシンでなく専用コンピュータ上で実行しているように、ゲストＶＭ２２８及び補助ＶＭ２３２において動作する構成部分がそれぞれ動作し得る。すなわち、ゲストＶＭ２２８及び補助ＶＭ２３２において動作する構成部分はそれぞれ、種々のイベントを制御し、ハードウェア２０８への完全なアクセスを有することが期待され得る。ＶＭＭ２０４は、ハードウェア２０８へのＶＭアクセスを管理し得る。ＶＭＭ２０４は、ソフトウェア（例えば、ホスト・オペレーティング・システムの構成部分及び／又はスタンドアロン・プログラムとして）、ハードウェア、ファームウェア、及び／又はそれらの何れかの組合せで実現することができる。
【００２９】
ゲストＶＭ２２８はＯＳ２３６及び構成部分２４０を含み得る。指定されたイベントに応じて、ＶＭＭ２０４は、ＯＳ２３６又は他の構成部分による、パーティション化された部分へのアクセスを制御するために、構成部分２４０の一部分を識別し、パ―ティション化することができる。前述のパーティション化された部分の１つ又は複数は、コンテンツ・プレイヤがコンテンツ・サーバからコンテンツを受け取ることを表すために使用することができる。種々の実施例では、指定された他のイベントは、記憶コンテンツ２４４が記憶装置２２０からメモリ２２４にアクティブ・コンテンツ２４８としてロードされる場合、又は、構成部分２４０が保護を要求する場合であり得る。しかし、種々の実施例では、指定された他のイベントを追加的に／代替的に使用することができる。
【００３０】
構成部分２４０は、ＶＭＭ２０４に登録し、特に、保護するためにＶＭＭ２０４のインテグリティ・サービス・モジュール（ＩＳＭ）２５２に登録することができる。種々の実施例では、登録は、登録イベント（例えば、メモリ２２４へのアクティブ・コンテンツ２４８のローディング）の発生により、周期的に、かつ／又は他の特定のイベントに駆動されるやり方で行われ得る。種々の実施例では、登録は、構成部分２４０、ＶＭ２２８内の別の構成部分、例えば、ＯＳ２３６、ＶＭＭ２０４、又はＶＭ２３２の構成部分によって起動させることができる。
【００３１】
登録を受信すると、ＩＳＭ２５２は、構成部分２４０のインテグリティを認証し、検証するために、ＶＭ２３２において動作するインテグリティ測定モジュール（ＩＭＭ）２５６と協調することができる。構成部分２４０のインテグリティの認証及び検証は、認可されていない修正及び／又は悪意のある停止の阻止に寄与し得、認識された構成部分のみが、管理者、ユーザ、又は他のポリシーによって規定された保護を与えられ得るということを確実にし得る。ＩＭＭ２５６は、ＯＳ２６０のコンテキストでＶＭドメイン２３２において、又は、別個のハードウェアにおいて動作し得、よって、概ね、ＯＳ２３６と無関係であり得る。ＶＭ２２８のコンテキスト外で実行することにより、ＩＭＭ２５６は、ＯＳ２３６のコンテキストで、存在していないか、又は場合によっては、損なわれたことがあり得る正確かつ信頼できるメモリ測定機能を有し得る。
【００３２】
ＩＭＭ２５６は、検証要求（合格、不合格、条件付き合格、条件付き不合格）に対する応答をＩＳＭ２５２に与えることができる。種々の実施例では、条件は、合格と不合格との間のインテグリティ検証の度合いを反映し得る。ＩＭＭ２５６は事実上、構成部分及びそのデータを識別し、又は認証し、メモリにおいて期待された正しい形式のものであることを保証する。
【００３３】
一部の実施例では、アクティブ・コンテンツ２４８は、構成部分２４０のインテグリティの検証において使用するための情報の収集物であり得るインテグリティ・マニフェストを含み得る。種々の実施例では、インテグリティ・マニフェストは、記憶コンテンツ２４４（例えば、コード記憶及び／あるいはスタティック及び／あるいは構成上の設定／データ）を包含する、１つ又は複数のインテグリティ検査値及び／又はリロケーション・フィックスアップ位置を含み得る。ＩＭＭ２５６は、アクティブ・コンテンツ２４８からのインテグリティ・マニフェストにアクセスし、構成部分２４０がインテグリティ・マニフェストに全体的に、又は部分的に対応することを検証することができる。ＩＭＭ２５６は、その正しい形式から変えられていないことを保証するために、インテグリティ・マニフェスト構造に対する暗号署名を、インテグリティ・マニフェスト自体の真正性を検証することができる。例えば、バイト毎解析、又は暗号ハッシュの解析により、画像の比較を行うことができる。
【００３４】
種々の実施例では、ＩＭＭ２５６は、例えば、直接メモリ・アクセス（ＤＭＡ）又は直接物理メモリ・アクセスを介して、メモリ２２４において直接、アクティブ・コンテンツ２４８を求めてサーチすることができる。種々の実施例では、構成部分２４０の線形アドレスを、ＩＭＭ２５６に、例えば、ＩＳＭ２５２を介して、供給し得、ＩＭＭ２５６は、アクティブ・コンテンツ２４８の物理メモリ位置を識別するために仮想・物理マッピングを行い得る。一実施例では、ＶＭＭ２０４は、アクティブ・コンテンツ２４８へのアクセスを与えるために、ＩＭＭ２５６への特殊インタフェースを設けることができる。
【００３５】
種々の実施例では、アクティブ・コンテンツ２４８のインテグリティ測定は、初期の登録により、周期的に、及び／又は、構成部分２４０が実行中に、特定の他のイベント駆動のやり方で行うことができる。初期登録要求、又はイベント処理要求によるインテグリティ測定は、製造時、又は最も直近のロード時のコンテンツの状態に基づいて、アクティブ・コンテンツ２４８及び／又は記憶コンテンツ２４４の初期状態が、期待された通りである旨を判定することに寄与し得る。周期的なインテグリティ測定、又はイベント駆動のインテグリティ測定は、アクティブ・コンテンツ２４８及び／又は記憶コンテンツ２４４の保護された属性を不適切に変更する攻撃の検出に寄与し得る。
【００３６】
構成部分のインテグリティ測定の更なる詳細は、内容を全て本明細書及び特許請求の範囲に援用する、「Ｓｉｇｎｅｄ  Ｍａｎｉｆｅｓｔ  ｆｏｒ  Ｒｕｎ−ｔｉｍｅ  Ｖｅｒｉｆｉｃａｔｉｏｎ  ｏｆ  Ｓｏｆｔｗａｒｅ  Ｐｒｏｇｒａｍ  Ｉｄｅｎｔｉｔｙ  ａｎｄ  Ｉｎｔｅｇｒｉｔｙ」と題する、西暦２００５年６月３０日付けで出願された米国特許出願第１１／１７３８５１号明細書、「Ｉｄｅｎｔｉｆｉｅｒ  Ａｓｓｏｃｉａｔｅｄ  ｗｉｔｈ  Ｍｅｍｏｒｙ  Ｌｏｃａｔｉｏｎｓ  ｆｏｒ  Ｍａｎａｇｉｎｇ  Ｓｏｆｔｗａｒｅ  Ａｃｃｅｓｓ」と題する、西暦２００５年１２月３０日付けで出願された米国特許出願第１１／３２２６６９号明細書、及び「Ｉｎｔｒａ−Ｐａｒｔｉｔｉｏｎｉｎｇ  ｏｆ  Ｓｏｆｔｗａｒｅ  Ｃｏｍｐｏｎｅｎｔｓ  ｗｉｔｈｉｎ  ａｎ  Ｅｘｅｃｉｔｉｏｎ  Ｅｎｖｉｒｏｎｍｅｎｔ」と題する、西暦２００６年３月３０日付けで出願された米国特許出願第１１／３９５４８８号に開示されている。
【００３７】
もう一度図２を参照すれば、ＩＳＭ２５２は、アクティブ・コンテンツ２４８のメモリにおけるインテグリティ及び位置の検証を反映するＩＭＭ２５６からの応答を受信し得る。検証が首尾良く行われなかった場合、ＩＳＭ２５２は要求を拒否し、アラートをトリガし得る。検証が合格であった場合、ＩＳＭ２５２は、保護サービスのために、構成部分２４０の一部のイントラ・パーティション化のためにメモリ・マネージャ２６４と協調し得る。ここで、検証された構成部分によって、かつ／又は、構成部分自身全体の周りでのみ、アクセスすることができるように、メモリ内のボールト又は隠しページの周りで保護を確立することができる。
【００３８】
図２は、仮想パーティションである実行環境を例証しているが、他の実施例は、他の機構（例えば、サービス・プロセッサの使用、保護実行モード（システム管理モードＳＭＭ、又はセキュア実行モードＳＭＸ）及び／又は組み込みマイクロコントローラ）により、別々の実行環境を提供することができる。種々の実施例では、補助環境は、上述の仮想化パーティション（例えば、仮想化手法（ＶＴ）方式における仮想マシン）を含む各種パーティション、及び／又は（例えば、アクティブ管理手法（ＡＭＴ）、「管理可能性エンジン」（ＭＥ）、分離したプラットフォーム資源を使用したプラットフォーム資源レイヤ（ＰＲＬ）、システム管理モード（ＳＭＭ）、及び／又は他の同等の、若しくは同様な手法を使用した）完全に別個のハードウェア・パーティションにより、ホスト環境からパーティション化することができる。種々の実施例では、ＶＴプラットフォームは、ＡＭＴ、ＭＥ及びＰＲＬ手法を実現するために使用することもできる。
【００３９】
図１及び図２を参照して上述したプラットフォームは、コンテンツ・サーバから受信されたコンテンツを保護し、受信コンテンツ・プレイヤに対する保護サービスを提供するために使用することができる。
【００４０】
図３は、本発明の一実施例によるセキュアなプラットフォーム３００のアーキテクチャを示すブロック図である。セキュアなプラットフォーム３００は、コンテンツ・サーバ３６０などの遠隔処理システムにそのインテグリティの証明を与える。インテグリティのこの証明は、コンテンツを盗むことが企図された「コンテンツ・リッパー」として知られているソフトウェアに対する保護、及び保護された「既知」のコンテンツ・プレイヤ３３０の存在に対する証明を含む。コンテンツ・サーバ３６０は、インテグリティ保護された「既知の」コンテンツ・プレイヤ３３０に対するコンテンツ鍵とともに、暗号化コンテンツを供給する。セキュア・プラットフォーム３００は、システム・メモリ３４０におけるコンテンツ鍵及びコンテンツを保護するためのクライアント・セキュリティ管理レイヤ３１０を含む。コンテンツ鍵は、コードが検証され、確認された認可された「既知の」コンテンツ・プレイヤ３３０にのみ、クライアント・セキュリティ管理レイヤ３１０によってリリースされる。
【００４１】
クライアント・セキュリティ管理レイヤ３１０は、コンテンツ・プレイヤのメモリの保護部分３４２におけるメモリ３４０内のコンテンツ・プレイヤのコード、データ及びフレーム・バッファの保護を提供する。例えば、コンテンツ・プレイヤ３３０によって使用するためにオペレーティング・システム・カーネル３２０によって割り当てられた保護コード３４４、保護データ３４６、及び保護フレーム・バッファ・メモリ３４８は、コンテンツ・プレイヤ３３０によってのみアクセスすることが可能であり、他のアプリケーションから隔離される。クライアント・セキュリティ管理レイヤ３１０は、コンテンツ・プレイヤ３３０により、フレーム・バッファに入れられたフレームを傍受し、メモリ３４０を読み出し、又は永続的記憶装置から、若しくは通信リンク３５０などのネットワーク・チャネルからファイルを読み出すことにより、コンテンツを「盗む」ことが可能でないということを確実にする。コンテンツ・プレイヤのメモリの保護部分３４２は、認可されていないアプリケーションによるアクセスから、かつ、オペレーティング・システムによるアクセスから保護される。
【００４２】
セキュア・プラットフォーム３００は、メモリ３４０に記憶されたデータ（保護コード３４４や保護データ３４６など）、保護フレーム・バッファ・メモリ３４８を含む、クライアント・コンテンツ・プレイヤ３３０によって使用されるメモリ３４０、クライアント・コンテンツ・プレイヤ３３０を測定し、保護するための、上述の米国特許出願１１／２２９１２６号明細書記載のクライアント・セキュリティ管理レイヤの機能を使用することができる。更に、セキュア・プラットフォーム３００は、動的コンテンツをクライアント・プラットフォーム３００上で保護する旨を、コンテンツ・サーバ３６０などのコンテンツ・プロバイダに保証するために、クライアント・セキュリティ管理レイヤ３１０によるプラットフォーム証明を使用する。
【００４３】
セキュア・プラットフォーム３００は、コンテンツの認可されたユーザが敵対的であるか、又は、クライアント・プラットフォーム３００がマルウェアをインストールしていても、遠隔サーバによって供給されたコンテンツを認可されていないやり方で複製することが可能でないことを遠隔コンテンツ・サーバ３６０に示す。コンテンツが記憶された、（コンテンツ・プレイヤのメモリの保護部分３４２を使用した）メモリ３４０への認可されていないアクセスをクライアント・セキュリティ管理レイヤ３１０は阻止するので、この証明を提供することが可能である。証明に応じて、コンテンツ・サーバ３６０は、コンテンツ鍵によって暗号化されたコンテンツをクライアント・プラットフォーム３００に供給する。クライアント・セキュリティ管理レイヤ３１０によってセキュア・プラットフォーム３００において与えられる保護により、認可されたユーザも、コンテンツ・リッピング・ソフトウェアにより、コンテンツの不正な複製を行うことは可能でない。
【００４４】
一実施例では、コンテンツ・プレイヤ３３０は、特定のハードウェア・インスタンスにユーザを制限することなく、一プラットフォームからのコンテンツ鍵を別のプラットフォームに転送するよう構成される。この移動機能は、例えば、既知かつ検証されたコンテンツ・プレイヤ３３０を別のハードウェア上に再インストールすることが可能であるように、システム障害の場合に使用することが可能である。前述の移動は、コンテンツ・プレイヤ３３０の必要な認可に加えて、新たなハードウェア・プラットフォームが測定され、検証され、認証されるということを必要とする。別の実施例では、セキュア・プラットフォーム３００は、認可されたコンテンツ・プレイヤ３３０からのコンテンツ鍵を一プラットフォームから別のプラットフォームに転送することを可能にするよう構成された、認可され、保護された別のアプリケーション（図示せず）を含む。プラットフォームの測定及び認証は、以下に更に詳細に説明する。
【００４５】
一実施例では、プラットフォームのセキュリティ機能を拡充するためのハードウェア拡張を提供するインテル（登録商標）社トラステッド実行手法（ＴＸＴ）プラットフォームであるプラットフォーム・ハードウェア３０２を含む。測定されたブートが、プラットフォーム証明機能を提供するためにＢＩＯＳにおいてイネーブルされる。測定されたブートをイネーブルすることにより、システム・リセット命令に始まる、ブート処理中に実行する命令は全て測定され、前述の測定は記録される。期待されたソフトウェア及びファームウェアと命令が整合しているか否かを確かめるために、前述の測定を次いで、期待されたソフトウェア及びファームウェアの「価値の標準」の複製に対して比較することが可能である。
【００４６】
更に、一実施例では、プラットフォーム・ハードウェア３０２は、ユーザによってイネーブルされているトラステッド・プラットフォーム・モジュール（ＴＰＭ）３０４を含む。ＴＰＭの機能は、概括的に説明し、次いで、ＴＰＭ３０４の、プラットフォーム３００内での機能を説明する。ＴＰＭは、処理システム内に常駐しているハードウェア構成部分（通常、マイクロコントローラ）であり、処理システムのセキュリティを拡充するための種々の機能及びサービスを提供する。ＴＰＭは、インターネット（ｗｗｗ．ｔｒｕｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ／ｏｒｇ／ｈｏｍｅ）によって入手可能なトラステッド・コンピューティング・グループ（ＴＣＧ）ＴＰＭ技術仕様バージョン１．２（西暦２００３年１０月２日付け。以下、「ＴＰＭ技術仕様」と呼ぶ）などの技術仕様に応じて実現することができる。
【００４７】
ＴＣＧ準拠のＴＰＭは、鍵、パスワード、及びディジタル証明書をセキュアに記憶する。ＴＰＭは、ディジタル証明書において使用するための鍵を生成し、ディジタル署名を作成し、暗号化を提供することが可能なコア・セキュリティ手法を提供する。セキュリティ処理は、定義されたインタフェースを使用して、セキュア・サブシステムを介してアクセスされ、制御される。ハード・ディスク暗号化、セキュア電子メール、及び識別情報／アクセス管理のようなアプリケーションは、ＴＰＭによって提供されるセキュリティ機能の恩恵を受ける。
【００４８】
ＴＰＭは、ファームウェアやオペレーティング・システムなどの、プラットフォーム内に常駐しているソフトウェア、並びに、プロセッサ及びチップセットを含む、プラットフォームのハードウェア構成部分などの特性に基づいて、プラットフォームの識別情報及び／又はインテグリティを証明する。ＴＰＭは、プラットフォーム・ブート・インテグリティ、ファイル・インテグリティ、及びソフトウェア・ライセンシングの検証、並びに、ソフトウェア処理の監査及び記録もサポートし得る。ＴＰＭは、多くの場合、プラットフォームの信頼性のルートを提供するものとして説明される。
【００４９】
ＴＰＭは、プラットフォームの構成についての情報を記憶することにより、セキュリティ機能を提供する。この情報を次いで、ＴＰＭの一次機能（プラットフォーム証明、及び保護された記憶）両方に使用することが可能である。プラットフォームは、プラットフォームの信頼性についての決定を遠隔エンティティが行うことを可能にするために必要な情報を遠隔エンティティに供給することが可能である。プラットフォームは、システムが既知の「良好な」状態にある間にのみ、鍵又は機密データがリリースされることを確実にする旨をＴＰＭに命令することも可能である。
【００５０】
プラットフォーム状態を記憶するために、ＴＰＭはプラットフォーム構成レジスタ（図３のＴＰＭ３０４のＰＣＲ３０６などのＰＣＲ）を使用して、プラットフォームのソフトウェア及び構成情報の１６０ビットＳＨＡ１（セキュア・ハッシング・アルゴリズム１）のハッシュの形式で測定を記憶する。前述の測定は、ブート・ブロックに始まる。各ブート構成部分は、次を測定し、それをＴＰＭに記録し、オペレーティング・システムがそのコアの測定を引き継ぐまでその構成部分を実行する。先行する測定を上書きするのでなく、ＰＣＲに対する書き込みそれぞれにより、測定がレジスタに加えられるので、エンティティは何れも、先行する構成部分によって行われたそのコードの測定を変更することは可能でない。よって、（信頼性測定のルートとして知られている）連鎖の最初及び各リンクが信頼できる場合に、連鎖全体が信頼できるように測定の連鎖が行われる。
【００５１】
証明は、プラットフォームがその構成を遠隔の関係者に信頼できるやり方で通知することを可能にするＴＰＭ機能及びプロトコルの組を表す。例えば、ＴＰＭは、プラットフォーム状態を記憶するために使用されるＰＣＲを署名する機能を提供する。例えば、プラットフォームは、証明識別鍵（ＡＩＫ）を使用してＰＣＲに署名することができる。前述の署名されたＰＣＲは引用符として表すことができる。
【００５２】
真のＴＰＭによって引用符が署名された旨の証明を遠隔エンティティに提供するため、各ＴＰＭは、クレデンシャルの組を有する。例えば、ＴＰＭの製造業者によって署名されたエンドースメント・クレデンシャルは、ＴＰＭがＴＰＭ技術仕様を充足している旨を記載している。製造業者は、ＴＰＭにおいて、エンドースメント鍵（ＥＫ）として知られている一意の鍵も記憶し、製造業者はそのＥＫを使用してエンドースメント・クレデンシャルに署名する。理論上、ＥＫは、ＰＣＲの引用符に署名するために直接、使用することが可能である。しかし、ＥＫは一意であるので、一部の実現形態では、機密性をもたらすために第三者が代わりに使用される。特に、プラットフォームは、秘密証明機関（ＣＡ）として知られている第三者を使用して、ＡＩＫ毎に識別クレデンシャルを作成する。ＴＣＧは、ＥＫ及びエンドースメント・クレデンシャルを使用して、ＴＰＭが真のＴＰＭである旨を秘密ＣＡに証明することを可能にするプロトコルを規定している。同様に、秘密ＣＡは、自ら所有しているとＴＰＭが主張するＡＩＫの識別クレデンシャルを作成する。
【００５３】
遠隔エンティティがＴＰＭの製造業者、秘密ＣＡ、及び信頼性測定のルートを信頼すると仮定すれば、識別クレデンシャルが付随するＡＩＫによって署名された引用符は、プラットフォームの現在の状態の暗号証明である。トラステッド・プラットフォームの遠隔認証を可能にするために使用することができる別の暗号プロトコルは、直接匿名証明（ＤＡＡ）である。
【００５４】
ＴＰＭが提供する別のサービスの組は、鍵及び他のデータのセキュアな記憶である。ＴＰＭは、（ａ）要求者が秘密ＳＨＡ１ハッシュにより、認可を与え、（ｂ）ＰＣＲによって判定された現在の構成が「良好な」状態を示した場合にのみ、使用を可能にするリベスト・シャミール・アーデルマン（ＲＳＡ）鍵を作成することが可能である。前述の機能は、マシンが損なわれたか、又は外部媒体からブートされたか、又は、他のやり方でタンパリングされた場合、アクセス可能でない状態にデータが留まるようにプラットフォームがデータを暗号化することを可能にする。
【００５５】
セキュアな記憶などのサービスをサポートするために、ＴＰＭは、別々の動作に対して単一目的のタイプを備えた鍵を作成する。タイプＥＫの鍵は、秘密ＣＡからの識別クレデンシャルを復号するためにのみ、利用可能である。ＡＩＫは、他の鍵に署名し、ＰＣＲを引用するために使用される。記憶鍵（ＳＫ）は、他の鍵を保護するか、又はデータの「シール（パスワード又はＰＣＲバインディングでデータを保護するデータの特殊な暗号化である）」のために使用される。バインディング鍵（ＢＫ）は、任意のデータを暗号化し、ＴＰＭにバインディングされたデータ構造にデータを変換するために使用される。署名鍵（ＳｉｇＫ）は、任意のデータを署名するために使用される。
【００５６】
もう一度図３を参照すれば、一実施例では、クライアント・セキュリティ管理レイヤ３１０は、受信されたコンテンツが保護されている旨を証明するプラットフォーム証明をコンテンツ・サーバ３６０に供給する。これに応じて、コンテンツ・サーバ３６０は、暗号化されたコンテンツ鍵とともに、暗号化コンテンツを供給する。一実施例では、コンテンツ鍵は、クライアント・セキュリティ管理レイヤ３１０の証明識別子鍵（ＡＩＫ）の公衆部分によって暗号化される。コンテンツ、暗号化されたコンテンツ鍵、及びコンテンツ・ポリシーはクライアント・コンテンツ・プレイヤ３３０に送出される。クライアント・コンテンツ・プレイヤ３００はそのインテグリティをクライアント・セキュリティ管理レイヤ３１０に証明し、クライアント・セキュリティ管理レイヤ３１０は、復号されたコンテンツ鍵を、保護メモリ３４２における認可されたクライアント・コンテンツ・プレイヤ３３０に供給する。クライアント・セキュリティ管理レイヤ３１０による復号コンテンツ鍵の供給は、コンテンツ・プレイヤ３３０に対してクライアント・セキュリティ管理レイヤ３１０によって維持されるアカウント・ポリシーを考慮に入れ得る。クライアント・コンテンツ・プレイヤ３３０は、コンテンツを復号し、コンテンツ・プレイヤ３３０による使用のために保護されたコンテンツ・プレイヤのメモリの保護部分３４２内にある保護フレーム・バッファ・メモリ３４８にコンテンツをレンダリングする。その結果、コンテンツ・リッパー・ソフトウェアは、永続的記憶装置、メモリ３４０、保護フレーム・バッファ・メモリ３４８、又はネットワーク・チャネル３５０の何れからもコンテンツを盗むことが可能でない。この機構は、コンテンツ保護のためにグラフィックス・ハードウェアにおける暗号化を可能にするための高価なシリコン・ゲートに対する必要性を排除し、個別のグラフィックス・アダプタ及び一体化されたグラフィックス・アダプタにわたって機能する。
【００５７】
一実施例では、プラットフォーム・ハードウェア３０２のＴＰＭ３０４は、署名するための証明識別鍵（ＡＩＫ）及び暗号化するためのＡＩＫを有する。前述のＡＩＫは、ＰＣＲ３０６に記憶することができ、秘密証明機関により、又は直接匿名証明（ＤＡＡ）を使用して証明することができる。ＴＰＭ３０４は、特に、クライアント・セキュリティ管理レイヤ３１０についてのＡＩＫ（クライアント・セキュリティ管理レイヤ鍵３１６として示す）を得ることもできる。クライアント・セキュリティ管理レイヤ３１０は、コンテンツ・サーバ３６０などの遠隔処理システムにプラットフォーム３００の信頼性をアサートするために、クライアント・セキュリティ管理レイヤ鍵３１６を使用する。
【００５８】
プラットフォーム３００のアーキテクチャにおけるクライアント・セキュリティ管理レイヤ３１０の役割は、コンピュータ・システム内の別々のアーキテクチャ構成部分が、資源に対して別々のアクセス・レベルを有するということを理解することにより、更に理解することが可能である。保護リングは、コンピュータ・システムのアーキテクチャ内の特権の階層レベル又は階層レイヤの組の１つである。特権の使用は一般に、ファームウェア・レベルで別々のプロセッサ・モードを提供する特定のプロセッサ・アーキテクチャによってハードウェア強制される。リングは、最も特権化されているレベル（信頼性が最も高い。通常、ゼロである）から、最も特権化されていないレベル（信頼性が最も低い。通常、リング番号が最高である）までの階層に配置される。大半のオペレーティング・システムでは、リング０は、最高の特権を備えたレベルであり、プロセッサやメモリなどの物理的なハードウェアと最も直接的に相互作用する。インテル社仮想化手法（ＶＴ−ｘ）プラットフォームは、リング０レベルよりも信頼性が高い「ルート」特権レベルを含めるようこの概念を拡張する。ルート特権レベルで実行するコードは、プラットフォームをブーティングすることによって測定される。一実施例では、図３に示すルート特権レベルは、インテル社ＶＴ−ｘプラットフォームにおいて定義されたルート特権化レベルであるが、本発明は前述に限定されるものでない。クライアント・セキュリティ管理レイヤ３１０は、伝統的なオペレーティング・システムのカーネル・コードによって使用されるリング０レベルよりも信頼性が高い特権レベルにおいて特定の動作が行われることを可能にする別の仮想化手法を使用して実現することが可能であるということが想定される。
【００５９】
クライアント・セキュリティ管理レイヤ３１０は、ルート特権レベルで動作し、オペレーティング・システム・カーネル３２０よりも高い特権は、リング０特権レベルで動作するものとして図３に示す。クライアント・セキュリティ管理レイヤ３１０のコードは、プラットフォーム３００をブーティングすることによって測定される。よって、プラットフォーム３００をブーティングした後、ＴＰＭ３０４のＰＣＲレジスタ３０６は、クライアント・セキュリティ管理レイヤ３１０のコードの測定を含むＳＨＡ−１ハッシュ値を有する。クライアント・セキュリティ管理レイヤ鍵３１６は、ＴＰＭ３０４により、ＡＩＫとしてクライアント・セキュリティ管理レイヤ３１０について生成される。
【００６０】
図３では、オペレーティング・システム・カーネル３２０は、リング３特権レベルで動作するコンテンツ・プレイヤ３３０などのアプリケーション・プログラムよりも高いリング０特権レベルで動作する。リング０よりも更に高い特権レベルであるルート特権レベルで動作することにより、クライアント・セキュリティ管理レイヤ３１０は、メモリ３４０内のコンテンツ・プレイヤのメモリの保護部分３４２が、オペレーティング・システム・カーネル３２０にもアクセス可能でないことを確実にすることができる。
【００６１】
クライアント・セキュリティ管理レイヤ３１０は、ランタイム・メモリ保護構成部分３１２及びコンテンツ保護マネージャ３１４を含む。ランタイム・メモリ保護構成部分３１２は、コンテンツ・プレイヤのメモリの保護部分３４２内の保護フレーム・バッファ・メモリ３４８、並びに、保護コード３４４及び保護データ３４６を保護する。ランタイム・メモリ保護構成部分３１２は、コンテンツ・プレイヤのメモリの保護部分３４２内の保護フレーム・バッファ・メモリ３４８、保護コード３４４及び保護データ３４６を保護するために、上述の米国特許出願第１１／２２９１２６号明細書記載のセキュア・ボールト・サービス機能を使用することができる。保護コード３４４は例えば、データ・リンク・ライブラリ、実行可能なコード、及び、コンテンツ・プレイヤ３３０などの保護構成部分に関する他のソフトウェアを含み得る。保護データ３４６は例えば、コンテンツ・サーバ３６０からコンテンツ・プレイヤ３３０によってダウンロードされたコンテンツなどのデータ、及び、ダウンロードされたコンテンツの暗号化鍵及び復号鍵を含み得る。同様に、保護フレーム・バッファ・メモリ３４８は、ユーザによって表示するためのコンテンツをレンダリングするためにコンテンツ・プレイヤ３３０によって使用される。コンテンツ・プレイヤのメモリの保護部分３４２に対するアクセスを制限するために、クライアント・セキュリティ管理レイヤ３１０のランタイム・メモリ管理構成部分３１２は、リング０特権レベルで実行しているオペレーティング・システム・カーネル３２０、又はリング３特権レベルで実行している他のアプリケーション・プログラムは損なわれる。
【００６２】
クライアント・セキュリティ管理レイヤ３１０のコンテンツ保護マネージャ３１４は、プラットフォーム３００の信頼性を証明するためにプラットフォーム・ハードウェア３０２のＴＰＭ３０４によって提供されるセキュリティ機能を使用する。例えば、クライアント・セキュリティ管理レイヤ３１０は、例えば、コンテンツ・サーバ３６０などの遠隔処理システムにプラットフォーム３００の信頼性をアサートするために、クライアント・セキュリティ管理レイヤ鍵３１６（例えば、ＴＰＭ３０４によって生成されるＡＩＫであり得る）を使用する。クライアント・セキュリティ管理レイヤ３１０のコンテンツ保護マネージャ３１４動作は以下に更に説明する。
【００６３】
図４は、図３のセキュア・プラットフォーム・アーキテクチャによって提供される環境において動作するよう構成された、図３のコンテンツ・プレイヤ３３０などのコンテンツ・プレイヤの動作の方法のフローチャートである。図４を参照して行われる動作は、図３の構成部分による実行に応じて説明する。起動されると、コンテンツ・プレイヤ３３０は、「メモリ及びコンテンツ保護のためにクライアント・セキュリティ管理レイヤに登録する」（工程４１０）に移る。この工程では、コンテンツ・プレイヤ３３０は、コンテンツをレンダリングするために使用される対象のフレーム・バッファ・メモリ３４８、及びその動的リンク・ライブラリを含むそのコード及びデータを保護するためにメモリの保護部分３４２を提供する旨の、クライアント・セキュリティ管理レイヤ３１０に対するハイパーコールを引き起こす。前述のクライアント・セキュリティ管理レイヤ３１０に対するハイパーコールにより、米国特許出願第１１／２２９１２６号明細書記載のセキュア・ボールト・サービスが呼び出され得る。クライアント・セキュリティ管理レイヤ３１０が、コンテンツ・プレイヤのメモリの保護部分３４２を提供することなどにより、コンテンツ・プレイヤ３３０に対してこの保護を提供すると、コンテンツ・プレイヤ３３０の保護フレーム・バッファ３４８、保護コード３４４、及び保護データ３４６は、クライアント・セキュリティ管理レイヤ３１０からのアクセス許可をコンテンツ・プレイヤ３３０と同様に有しない何れのリング０構成部分又はリング３構成部分によってもアクセスすることが可能でない。
【００６４】
クライアント・セキュリティ管理レイヤ３１０との登録処理の一部として、コンテンツ・プレイヤ３３０のマニフェストを、アプリケーション識別子とともに作成することができる。前述のマニフェストは、上述の「Ｓｉｇｎｅｄ  Ｍａｎｉｆｅｓｔ  ｆｏｒ  Ｒｕｎ−ｔｉｍｅ  Ｖｅｒｉｆｉｃａｔｉｏｎ  ｏｆ  Ｓｏｆｔｗａｒｅ  Ｐｒｏｇｒａｍ  Ｉｄｅｎｔｉｔｙ  ａｎｄ  Ｉｎｔｅｇｒｉｔｙ」と題する、西暦２００５年６月３０日付出願の上記米国特許出願第１１／１７３８５１号明細書に応じて作成することができる。マニフェストは、コンテンツ・プレイヤ３３０のインテグリティを検証するために使用することが可能な情報を含み得、その後の相互作用におけるコンテンツ・プレイヤ３３０のインテグリティを確認するためにクライアント・セキュリティ管理レイヤ３１０によって使用し得る。
【００６５】
もう一度図４を参照すれば、「メモリ及びコンテンツ保護のためにクライアント・セキュリティ管理レイヤに登録する」（工程４１０）においてクライアント・セキュリティ管理レイヤ３１０に当初登録した後、コンテンツ・プレイヤ３３０は、「クライアント・セキュリティ管理レイヤからのセキュリティ情報を要求する」（工程４２０）に移る。一実施例では、コンテンツ・プレイヤ３３０によって要求されるセキュリティ情報は、クライアント・セキュリティ管理レイヤ３１０のＰＣＲ値を含む。セキュリティ情報に対する要求に応じて、クライアント・セキュリティ管理レイヤ３１０は、特定のＰＣＲレジスタのＰＣＲ値をＴＰＭに含む署名されたブラブを供給する。ブラブは、ＡＩＫ署名鍵を使用して署名される。ブラブは、秘密証明機関から受け取られた証明書及びクライアント・セキュリティ管理レイヤ３１０のＡＩＫ暗号化鍵の公衆部分も含む。本明細書及び特許請求の範囲記載の実施例では、セキュリティ情報は、ＡＩＫベースの暗号化手法によって管理されているものとして説明される。セキュリティ情報はあるいは、ユーザの秘密を保護する、直接匿名証明などの他の手法を使用して管理することができるということを当業者は理解するであろう。
【００６６】
「クライアント・セキュリティ管理レイヤからのセキュリティ情報を要求する」（工程４２０）から、コンテンツ・プレイヤ３３０は、「クライアント・セキュリティ管理レイヤからのセキュリティ情報を提供する、コンテンツ・サーバからのコンテンツを要求する」（工程４３０）に移る。コンテンツ・プレイヤ３３０は、クライアント・セキュリティ管理レイヤ３１０によって供給されるセキュリティ情報を使用して、プラットフォーム３００がセキュアである旨をコンテンツ・サーバ３６０に証明する。コンテンツ要求は、コンテンツ・サーバでのコンテンツ・プレイヤのアカウントに対するユーザ・クレデンシャル、クライアント・セキュリティ管理レイヤ３１０から受け取られた署名ブラブ、及びクライアントについて要求されたポリシー・パラメータを含む。例えば、ポリシー・パラメータは、ビデオを再生するためのユーザのライセンスが満了する前にコンテンツのビデオをユーザが再生することが可能な回数を示し得る。コンテンツ・サーバ３６０によるコンテンツに対する要求の処理は、図５を参照して更に詳細に説明する。
【００６７】
「クライアント・セキュリティ管理レイヤからのセキュリティ情報を提供する、コンテンツ・サーバからのコンテンツを要求する」（工程４３０）から、コンテンツ・プレイヤ３３０は、「コンテンツ・サーバからコンテンツ及び暗号化コンテンツ鍵を受け取る」（工程４４０）に移る。コンテンツ・プレイヤ３３０は、暗号化コンテンツ及び暗号化コンテンツ鍵を含むパッケージ化されたブラブをコンテンツ・サーバ３６０から受け取る。コンテンツ・プレイヤ３３０は次いで、「クライアント・セキュリティ管理レイヤからの復号鍵を要求する」（工程４５０）に移る。コンテンツ・プレイヤ３３０は、それ自身のアプリケーション識別子とともに、暗号化コンテンツ鍵（図５を参照して以下に更に詳細に説明する）をクライアント・セキュリティ管理レイヤ３１０に転送する。クライアント・セキュリティ管理レイヤ３１０による暗号化コンテンツ鍵の処理は、図６を参照して以下に更に詳細に説明する。
【００６８】
「クライアント・セキュリティ管理レイヤから復号鍵を要求する」（工程４５０）に応じて、コンテンツ・プレイヤ３３０は復号鍵を受け取り、コンテンツ・プレイヤ３３０は、コンテンツ・サーバ３６０によって供給された暗号化コンテンツを前述の復号鍵によって復号することが可能である。コンテンツ・プレイヤ３３０は、「クライアント・セキュリティ管理レイヤによって供給される復号鍵を使用してコンテンツを復号する」（工程４６０）に進み、コンテンツ・サーバ３６０によって供給されるコンテンツを復号する。コンテンツ・プレイヤ３３０は、コンテンツ・プレイヤ３４３のメモリの保護部分に暗号化コンテンツをロードし、復号鍵を使用してコンテンツを復号する。コンテンツ・プレイヤ３３０は、「コンテンツをレンダリングする」（工程４７０）に進み、工程４７０では、コンテンツ・プレイヤ３３０は、保護コード３４４に含まれる標準アプリケーション・プログラム・インタフェースを使用して保護フレーム・バッファ上に復号コンテンツをレンダリングする。復号コンテンツは、コンテンツをレンダリングする旨のコールをオペレーティング・システム・カーネル３２０に対して行うかわりに、コンテンツ・プレイヤのメモリの保護部分３４２内の保護データ３４６に直接書き込まれる。
【００６９】
図５は、本発明のセキュアなプラットフォームとともに動作するよう構成されたコンテンツ・サーバの動作の方法のフローチャートである。コンテンツ・プレイヤ３３０からのコンテンツに対する要求の受け取りに応じて、コンテンツ・サーバ３６０は、「コンテンツ・プレイヤからのコンテンツ及びクライアント・セキュリティ管理レイヤからのセキュリティ情報に対する要求を検証する」（工程５１０）に示すように上記要求を検証する。例えば、コンテンツ・サーバ３６０は、秘密証明書機関のルート証明書に対して署名されたブラブにおいて備えられたクライアント・セキュリティ管理レイヤ３１０の証明書を検証することができる。その後、コンテンツ・サーバ３６０は、ＰＣＲレジスタのハッシュ値を、ハッシュ値の価値の基準の複製と比較し、それにより、クライアント・セキュリティ管理レイヤ３１０の有効性を確かめることができる。更に、コンテンツ・サーバ３６０は、コンテンツ・プレイヤ３３０のユーザ・クレデンシャルをユーザ・データベースに対して認証し、要求の一部として供給されたポリシー・パラメータを検査することができる。コンテンツは、例えば、サービス・データベースに記憶されたユーザのポリシーの値と、コンテンツ要求において供給されたポリシーにおける値を比較した場合に、より制限的なポリシーに応じて供給することができる。
【００７０】
「コンテンツ・プレイヤからのコンテンツ及びクライアント・セキュリティ管理レイヤからのセキュリティ情報に対する要求を検証する」（工程５１０）から、コンテンツ・サーバ３６０は、「暗号化コンテンツ及び暗号化コンテンツ鍵を含むパッケージ化されたブラブを作成する」（工程５２０）に移る。一実施例では、コンテンツ・サーバ３６０は、コンテンツ鍵（ＣＫ）と呼ばれる対称鍵におけるコンテンツを暗号化し、クライアント・セキュリティ管理レイヤ３１０のＡＩＫ暗号化鍵におけるアプリケーション識別子（ＡＩ）、コンテンツ・ポリシー（ＣＰ）、及びＣＫを暗号化する。例えば、この実施例では、パッケージ化されたブラブは、
ＢＬＯＢ＝Ｓｉｇｎ  ｓｅｒｖｉｃｅ−ｋｅｙ（Ｅ  ＣＫ（Ｃｏｎｔｅｎｔ）｜｜Ｅ  ＡＩＫ−Ｅｎｃｒｙｐｔｉｏｎ  （ＣＫ｜｜ＣＰ｜｜ＡＩ））
の通り、コンテンツ・サーバ３６０のサービス鍵を使用して作成される。前述の公式では、ブラブは、２つの構成部分を含む連結列を符号化するために、署名されたサービス鍵を使用することによって作成される。第１の構成部分はコンテンツ鍵を使用してコンテンツを暗号化し、第２の構成部分は、コンテンツ鍵、コンテンツ・ポリシー、及び証明識別子の連結された列を、証明識別鍵によって暗号化する。パッケージ化されたブラブは、「暗号化コンテンツ及び暗号化コンテンツ鍵を、検証されたコンテンツ・プレイヤに供給する」（工程５３０）で、コンテンツ・プレイヤ３３０に返信する。
【００７１】
図６は、図３のセキュアなプラットフォーム・アーキテクチャを提供するためのクライアント・セキュリティ管理レイヤの動作のフローチャートである。クライアント・セキュリティ管理レイヤ３１０は、図４の「メモリ及びコンテンツ保護のためにクライアント・セキュリティ管理レイヤに登録する」（工程４１０）を参照して説明したアプリケーション・プログラムによる登録要求に応答する。前述の登録要求に応じて、クライアント・セキュリティ管理レイヤ３１０は、「構成部分による登録に応じてメモリ及びコンテンツ保護を提供する」（工程６１０）に移る。メモリ保護は、クライアント・セキュリティ管理レイヤ３１０のランタイム・メモリ保護構成部分３１２を参照して上述したように提供され得る。上述の通り、クライアント・セキュリティ管理レイヤ３１０のランタイム・メモリ保護構成部分３１２は、コンテンツ・プレイヤのメモリの保護部分３４２内の保護フレーム・バッファ・メモリ３４８、保護コード３４４、及び保護データ３４６を保護する。ランタイム・メモリ保護構成部分３１２は、上述の米国特許出願第１１／２２９１２６号明細書記載のセキュア・ボールト・サービス機能を使用して、コンテンツ・プレイヤのメモリの保護部分３４２内の保護フレーム・バッファ・メモリ３４８、保護コード３４４、及び保護データ３４６を保護することができる。
【００７２】
コンテンツ保護は、クライアント・セキュリティ管理レイヤ３１０のコンテンツ保護マネージャ３１４によって提供することができるが、図６に関して提供されるサービスは、クライアント・セキュリティ管理レイヤ３１０による実行に応じて説明する。クライアント・セキュリティ管理レイヤ３１０は、「構成部分から復号要求を受け取る」（工程６２０）に示すように、構成部分から復号要求を受け取り得る。前述の復号要求に応じて、クライアント・セキュリティ管理レイヤ３１０は、「構成部分のインテグリティを確認する」（工程６３０）に移り得る。構成部分のインテグリティを確認するために、クライアント・セキュリティ管理レイヤ３１０は、復号要求における、コンテンツ・プレイヤ３３０によって供給されるアプリケーション識別子を、パッケージ化ブラブにおける、コンテンツ・サーバ３６０によって供給されるアプリケーション識別子に対して検証することができる。クライアント・セキュリティ管理レイヤ３１０は、復号鍵をコンテンツ・プレイヤ３３０に供給する前に、コンテンツ・プレイヤ３３０のマニフェストを検証するなど、コンテンツ・プレイヤ３３０のインテグリティを検証するために、他のインテグリティ測定を更に行うことができる。
【００７３】
構成部分のインテグリティの確認に応じて、クライアント・セキュリティ管理レイヤ３１０は、コンテンツ・プレイヤ３３０に戻されるパッケージ化ブラブにおける、コンテンツ・サーバ３６０によって供給されたコンテンツ鍵及び他のパラメータを復号することができる。クライアント・セキュリティ管理レイヤ３１０は、復号要求をコンテンツ・ポリシーに対して検証することができ、ポリシー・データベースにおいて、パッケージ化されたブラブからのポリシー情報を（保護されていないリング３アプリケーションを使用して）登録することもできる。復号コンテンツ鍵をコンテンツ・プレイヤ３３０に供給する前に、復号要求をコンテンツ・ポリシーに対して検証することにより、クライアント・セキュリティ管理レイヤ３１０は、クライアント・コンテンツ・プレイヤ３３０が、コンテンツ・サーバ３６０のネットワークにもう接続されていなくても、コンテンツが供給された後、供給側コンテンツ・サーバ３６０によって要求されるポリシーを強制することが可能である。
【００７４】
「構成部分のインテグリティを確認する」（工程６３０）から、制御は次いで、「復号鍵を、構成部分の保護メモリに入れる」（工程６４０）に移り、工程６４０では、クライアント・セキュリティ管理レイヤ３１０、及び／又はクライアント・セキュリティ管理レイヤ３１０のランタイム・メモリ保護構成部分３１２は、コンテンツ・プレイヤのメモリの保護部分３４２などの、構成部分のメモリの保護部分に復号鍵を入れる。
【００７５】
上述の機構は、更なるハードウェアに対する必要なしで、標準的な構成を使用して、プラットフォーム上のコンテンツ保護を提供する。保護された構成部分（すなわち、コンテンツ・プレイヤ）よりも高い特権レベルに保護装置を入れることによる堅固な暗号手法を使用するので、本発明のクライアント・セキュリティ管理レイヤによって提供される保護サービスは、他の不明化ベースの手法よりも出し抜くのは難しい。前述の機構は、攻撃者に対する障害許容力の度合いが高い状態で、遠隔コンテンツ・サービス・プロバイダがコンテンツをクライアントに配信することを可能にする。前述の機構は侵入的でなく、プラットフォーム・ハードウェア、オペレーティング・システム、又は更なるドライバの修正を必要としない。
【００７６】
本明細書及び特許請求の範囲記載の機構の実施例は、ハードウェア、ソフトウェア、ファームウェア、又は前述の実現手法の組合せで実現することができる。本発明の実施例は、少なくとも１つのプロセッサ、データ記憶システム（揮発性並びに不揮発性のメモリ及び／又は記憶要素を含む）、少なくとも１つの入力装置、及び少なくとも１つの出力装置を備えるプログラム可能なシステム上で実行するコンピュータ・プログラムとして実現することができる。
【００７７】
プログラム・コードは、本明細書及び特許請求の範囲記載の機能を行い、出力情報を生成するために入力データに施すことができる。本発明の実施例は、本明細書及び特許請求の範囲記載の構造、回路、装置、プロセッサ、及び／又はシステム構成を規定する、ＨＤＬなどの設計データを含む、又は本発明の動作を行うための命令を含むマシン・アクセス可能な媒体も含む。前述の実施例は、プログラム・プロダクトとして表すこともできる。
【００７８】
前述のマシン・アクセス可能な記憶媒体は、限定列挙でないが、ハード・ディスク、フロッピー（登録商標）・ディスク、光ディスク、コンパクト・ディスク・リードオンリ・メモリ（ＣＤ−ＲＯＭ）、書き換え可能コンパクト・ディスク（ＣＤ−ＲＷ）及び光磁気ディスクなどの何れかの他のタイプのディスク、リードオンリ・メモリ（ＲＯＭ）、ダイナミック・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・セクセス・メモリ（ＳＲＡＭ）などのランダム・アクセス・メモリ（ＲＡＭ）などの半導体デバイス、消去可能プログラマブル・リードオンリ・メモリ（ＥＰＲＯＭ）、フラッシュ・メモリ、電気的消去可能プログラマブル・リード・オンリ・メモリ（ＥＥＰＲＯＭ）、磁気若しくは光カード、又は電子的命令の記憶に適した何れかの他のタイプの媒体を含み得る。
【００７９】
出力情報は、既知のやり方で、１つ又は複数の出力装置に施すことができる。本出願の目的で、処理システムは、例えば、ディジタル信号プロセッサ（ＤＳＰ）、マイクロコントローラ、特殊用途向集積回路（ＡＳＩＣ）や、マイクロプロセッサなどのプロセッサを有する何れかのシステムを含む。
【００８０】
プログラムは、処理システムと通信するために、手続型高水準又はオブジェクト指向プログラミング言語で実現することができる。プログラムは、必要な場合、アセンブラ言語又はマシン言語で実現することもできる。実際に、本明細書記載の機構は、範囲において、何れかの特定のプログラミング言語に限定されるものでない。何れの場合にも、言語は、コンパイルされた言語、又は解釈された言語であり得る。
【００８１】
本明細書及び特許請求の範囲には、コンテンツ・サーバから受信されたコンテンツを保護するためにセキュアなプラットフォームを提供する方法及びシステムの実施例を提示する。本発明の特定の実施例を示し、説明しているが、特許請求の範囲記載の請求項の範囲から逸脱することなく、数多くの変更、変形及び修正を行うことが可能であるということは当業者に明らかであろう。よって、その広い局面において本発明から逸脱しない限り、変更及び修正を行うことが可能であるということを当業者は認識するであろう。特許請求の範囲記載の請求項は、その範囲において、本発明の真の範囲及び趣旨に収まる前述の変更、変形、及び修正を包含するものとする。
【符号の説明】
【００８２】
３００  プラットフォーム
３１０  クライアント・セキュリティ管理レイヤ
３３０  コンテンツ・プレイヤ
３４０  メモリ
【図１】
2010157224.tif 000003
【図２】
2010157224.tif 000004
【図３】
2010157224.tif 000005
【図４】
2010157224.tif 000006
【図５】
2010157224.tif 000007
【図６】
2010157224.tif 000008