(58)【調査した分野】(Int.Cl.,DB名)
レンダリング・デバイスが認可ファイルを読み取ることに応答して、メディア記憶デバイスのメモリからのデータの一部を読み取り、前記データの一部をメディア・セキュリティ・コントローラに提供するための、前記レンダリング・デバイスに関するメッセージを、前記メディア・セキュリティ・コントローラによって前記レンダリング・デバイスに送信することであって、前記メディア記憶デバイスの前記メモリ内の前記データは、前記レンダリング・デバイスによってレンダリングされることになるメディア・アイテムに関係する、送信すること、
前記メディア・セキュリティ・コントローラによって、前記レンダリング・デバイスから前記データの一部を受信すること、
前記メディア・セキュリティ・コントローラによって前記データの一部を変換すること、及び
前記変換されたデータの一部を前記メディア・セキュリティ・コントローラによって前記レンダリング・デバイスに送信すること、
を含む、方法。
前記データの一部の変換は、前記データの一部を復号すること、前記データの一部を暗号化すること、又は前記データの一部を圧縮することのうちの、少なくとも1つを含む、請求項1に記載の方法。
前記データの一部の変換は、前記メディア・セキュリティ・コントローラによって前記認可キーを使用して前記データの一部を復号することを含む、請求項4に記載の方法。
公開キー・インフラストラクチャ暗号化に基づいて前記メディア・セキュリティ・コントローラと前記レンダリング・デバイスとの間で第1のハンドシェイクを実行すること、
対称キー暗号化に基づいて前記メディア記憶デバイスと前記レンダリング・デバイスとの間で第2のハンドシェイクを実行すること、及び、
前記第1のハンドシェイク及び前記第2のハンドシェイクに基づいて前記レンダリング・デバイスとのセキュア・セッションを確立すること、
を更に含む、請求項1に記載の方法。
前記メディア・セキュリティ・コントローラの第1の証明改訂リストを、前記レンダリング・デバイスの第2の証明改訂リストと同期させることを更に含み、前記第1の証明改訂リスト及び前記第2の証明改訂リストは権利のセットに対する1つ又は複数の変更を記述する、請求項1に記載の方法。
レンダリング・デバイスが認可ファイルを読み取ることに応答して、メディア・セキュリティ・コントローラから前記レンダリング・デバイスによってメッセージを受信することであって、前記メッセージは、メディア記憶デバイスのメモリからデータの一部を読み取り、前記データの一部を前記メディア・セキュリティ・コントローラに提供するように前記レンダリング・デバイスに命じ、前記メディア記憶デバイスの前記メモリ内の前記データは前記レンダリング・デバイスによってレンダリングされるメディア・アイテムに関する、受信すること、
前記レンダリング・デバイスによって前記データの一部を前記メディア・セキュリティ・コントローラに送信すること、及び、
前記レンダリング・デバイスによって、変換された前記データの一部を前記メディア・セキュリティ・コントローラから受信すること、
を含む、方法。
前記メディア・セキュリティ・コントローラから受信した前記変換されたデータの一部に基づいて再生マップを作成することを更に含み、前記再生マップは前記メディア・アイテムをレンダリングするためのデータを含む、請求項9に記載の方法。
前記メディア・セキュリティ・コントローラから受信した前記変換されたデータの一部に基づいて前記メディア・アイテムをレンダリングすることを更に含む、請求項9に記載の方法。
処理は、前記変換されたデータの一部を復号すること、前記変換されたデータの一部を暗号化すること、又は前記変換されたデータの一部を圧縮することのうちの、少なくとも1つを含む、請求項12に記載の方法。
前記レンダリング・デバイスの第1の証明改訂リストを、前記メディア・セキュリティ・コントローラの第2の証明改訂リストと同期させることを更に含み、前記第1の証明改訂リスト及び前記第2の証明改訂リストは権利のセットに対する1つ又は複数の変更を記述する、請求項9に記載の方法。
前記メディア・セキュリティ・コントローラは、前記データの一部を復号すること、前記データの一部を暗号化すること、又は前記データの一部を圧縮することのうちの、少なくとも1つによって、前記データの一部を変換するためのものである、請求項16に記載の装置。
前記メディア・セキュリティ・コントローラは、前記変換されたデータの一部に対応する認可キーを記憶するための第2のメモリを更に備える、請求項16に記載の装置。
前記変換されたデータの一部を処理するために、前記変換されたデータの一部を復号すること、前記変換されたデータの一部を暗号化すること、又は前記変換されたデータの一部を圧縮することのうちの、少なくとも1つのための前記処理デバイスを備える、請求項27に記載の装置。
前記データの一部の変換は、メディア・セキュリティ・コントローラ内のメモリに記憶された認可キーを使用して前記データの一部を復号することを含む、請求項31に記載の持続性コンピュータ可読記憶メディア。
【発明を実施するための形態】
【0006】
[0013] 様々な実装に従った、メディア・セキュリティ・コントローラ(MSC)を含むメディア・アイテムを保護するためのシステム及び方法を説明する。レンダリング・デバイスは、メディア記憶デバイスからメディア・データを取得することができるが、メディア・データを単独で解釈できない場合がある。メディア・データを理解するために、レンダリング・デバイスはメディア・データをMSCに転送し、MSCはレンダリング・デバイスがメディア・データを解釈できるようにするために、メディア・データを変換(例えば復号、暗号化、圧縮など)することができる。このように、レンダリング・デバイスのメディア・ファイルをレンダリングする機能は、そのMSCとの対話に依存する。従来のメディア・コントローラとは異なり、MSC実装はメディア・デバイスにセキュリティ・インテリジェンスを加え、MSCはレンダリング・デバイスとレンダリングされるメディア・ファイルとの間の仲介として動作する。更に従来のメディア・コントローラとは異なり、MSC実装は、メディア自体に記憶されたものを含むメディア・アイテムに関する認証キーを内部に記憶し、管理することができる。例えばMSCは、レンダリング・デバイスに、レンダリング・デバイスがメディア・ファイルをレンダリングするために使用すべきな(例えばセキュリティ動作で認証キーを使用することによって取得された)情報を、提供することができる。MSCを使用するシステムは、コンテンツ・プロバイダ(例えばメディア発行者、配信者など)が、MSCがレンダリング・プロセスに含まれることを保証できるようにする。例えば発行者は、メディア・アイテムの一部又はメディア・データ復号キーのうちの1つがMSCによって復号されるように、メディア・アイテムのライセンス供与を構成することができる。
【0007】
[0014] メディア・アイテムの例は、デジタル・ムービー、デジタル・ビデオ、デジタル写真、デジタル音楽、ウェブサイト・コンテンツ、ソーシャル・メディア、更新、電子書籍(eブック)、電子雑誌、デジタル新聞、デジタル・オーディオ・ブック、電子ジャーナル、ウェブ・ブログ、リアル・シンプル・シンジケーション(RSS)フィード、電子漫画本、ソフトウェア・アプリケーションなどを含むことができるが、これらに限定されない。
【0008】
[0015] メディア・アイテムは、インターネット又は他のネットワークを介して(メディア・アイテムをメディア・デバイスからリモート・デバイスへストリーミングすることなど)、及び/又は、アプリケーション又はローカル接続されたデバイスを介してより直接的に、消費可能である。簡潔及び簡単にするために、デジタル・ムービー(本明細書ではムービーとも呼ぶ)が、メディア・アイテムの例として本書全体を通じて使用される。本明細書で使用される場合、「デジタル・コンテンツ」、「メディア」、「メディア・アイテム」、「オンライン・メディア・アイテム」、「デジタル・メディア」、及び「デジタル・メディア・アイテム」は、ユーザにメディア・アイテムを提示するように構成されたソフトウェア、ファームウェア、及び/又はハードウェアを使用して再生、実行、又はロードすることが可能な、電子ファイルを含むことができる。
【0009】
[0016]
図1は、様々な実装に従った、例示のシステム・アーキテクチャ100を示す。システム・アーキテクチャ100は、1つ又は複数のネットワーク150を介して結合された、1つ又は複数のコンテンツ・プロバイダ103、105(例えばメディア・アイテム発行者)に関連付けられた1つ又は複数のサーバ110、115、1つ又は複数のキー発行サーバ120、1つ又は複数のメディア記憶デバイス130、131、及び、1つ又は複数のレンダリング・デバイス160を含むことができる。
【0010】
[0017] 1つ又は複数のネットワーク150は、1つ又は複数の公衆ネットワーク(例えばインターネット)、1つ又は複数の私設ネットワーク(例えばローカル・エリア・ネットワーク(LAN)或いは1つ又は複数のワイド・エリア・ネットワーク(WAN))、1つ又は複数の有線ネットワーク(例えばイーサネット・ネットワーク)、1つ又は複数の無線ネットワーク(例えば802.11ネットワーク又はWi−Fiネットワーク)、1つ又は複数のセルラ・ネットワーク(例えばロング・ターム・エボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバ・コンピュータ、及び/又はそれらの組み合わせを含むことができる。
【0011】
[0018] レンダリング・デバイス160は、メディア・アイテムをレンダリングするためのデバイスを含むことが可能であり、ポータブル・メディア・プレーヤ、ネットブック、ラップトップ・コンピュータ、電子書籍リーダ、タブレット・コンピュータ、デスクトップ・コンピュータ、セットトップ・ボックス、ゲーム機、テレビジョン、携帯電話、携帯情報端末(PDA)などとすることが可能である(が、それらに限定されない)。レンダリング・デバイス160機能は、ハードウェア又はソフトウェア、或いはそれらの組み合わせで実装可能である。レンダリング・デバイス160は、グラフィクス・カード/アクセラレータ、メディア・インターフェース、又は条件付きアクセスデバイスなどの、構成要素内にも実装可能である。レンダリング・デバイス160は、リモート・コントロール、タッチ・スクリーン、キーボード、マウス、ジェスチャ入力、又は任意の他の入力デバイスによって制御可能である。レンダリング・デバイス160は、インターネット(又は他のネットワーク)接続を有することが可能であり、接続は散発的であってもよい。(例えばネットワーク接続は、コンテンツをダウンロードするか又はデバイス間でのコンテンツの転送を許可することが必要な場合があるが、再生中はオフライン又は低帯域幅環境での再生を許可する必要がない場合がある。)レンダリング・デバイス160は、暗号化キー及びセキュリティ論理、並びにメディアとのインターフェース及びユーザへのビデオ出力の機能を、内部に含めることができる。レンダリング・デバイス160は、ビデオ解凍サポート(例えばMPEG2、H.264、及び/又はHEVCコーデック)、並びに様々なビデオ・ストリームを選択及び管理するためのユーザ用の機能(例えば、DVDフォーマットで採用されるシステムなどのように初歩的なもの、又は、ブルーレイで採用されるBD−Jなどのようにより高度及び/又はプログラム可能な機能とすることが可能な、メニューイング・システム(menuing system))を含むことができる。
【0012】
[0019] 個々のレンダリング・デバイス160は、メディア・ビューア163を含むことができる。一実装では、メディア・ビューア163は、ユーザがムービーなどのメディア・アイテムを視聴できるようにするアプリケーションである。例えばメディア・ビューア163は、ビデオ復号機能(例えば、MPEG−2、MPEG−4/H.264、VC−1、又は他の圧縮規格用のコーデック)、及びオーディオ復号機能を含むことができる。メディア・ビューア163は、いくつかの実装では、ユーザが再生するコンテンツを選択するか又はこれと対話できるようなユーザ・インターフェース要素を含むことが可能であり、メディア記憶デバイス131に含まれるか又は他のソース(例えばウェブ・サーバ)からのコンテンツ(例えば、ハイパー・テキスト・マークアップ言語(HTML)ページなどのウェブ・ページ、デジタル・メディア・アイテムなど)へのアクセス、取り出し、提示、及び/又はナビゲートが可能な、ウェブ・ブラウザを含むことが可能である。
【0013】
[0020] メディア・ビューア163は、ユーザに対してコンテンツ(例えばウェブ・ページ、メディア・ビューア)をレンダリング、表示、及び/又は提示することができる。メディア・ビューア163は、文書(例えばウェブ・ページ)に埋め込まれる埋め込み型メディア・プレーヤ(例えばAdobe Flashプレーヤ又はHTML5プレーヤ)とすることができる。メディア・ビューア163は、例えば大型SoC(システム・オン・チップ)の一部として、及び/又はスタンドアロン型チップとして、シリコンに実装される専用デコーダなどの、専用ハードウェア要素を含むこともできる。別の例では、メディア・ビューア163は、ユーザがデジタル・メディア・アイテム(例えばムービー)を視聴できるようにする、スタンドアロン型アプリケーション又はスタンドアロン型アプリケーションの機能(例えば、モバイル・アプリケーション、デスクトップ・アプリケーション、ゲーム機アプリケーション、テレビジョン・アプリケーションなど)とすることができる。メディア・ビューア163は、サーバ及び/又はコンテンツ配信プラットフォームによって、レンダリング・デバイス160に提供可能である。例えばいくつかの実施形態では、メディア・ビューア163は、コンテンツ配信プラットフォームによって提供される文書(例えばウェブ・ページ)又はムービー・ファイルに埋め込まれる、埋め込み型メディア・プレーヤとすることができる。別の例では、メディア・ビューア163はサーバからダウンロードされる別々のアプリケーションとすることができる。別の例では、メディア・ビューア163は、レンダリング・デバイス160に事前にインストールされるスタンドアロン型アプリケーションとすることができる。メディア・ビューアは、メディア記憶デバイス130、131に記憶するか、又はそれ以外の場所に記憶することができる。
【0014】
[0021] サーバ110、115、120は、1つ又は複数のコンピューティング・デバイス(ラックマウント型サーバ、ルータ・コンピュータ、サーバ・コンピュータ、パーソナル・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータなど)、データ・ストア(例えばハード・ディスク、SSD、ネットワーク接続記憶デバイス、メモリ、データベース)、ネットワーク、ソフトウェア構成要素(オペレーティング・システム、ミドルウェア、アプリケーション・ソフトウェア、データベースなど)、ハードウェア・セキュリティ・モジュール(例えばPCカード、スマート・カード、USBセキュリティ周辺装置)、並びに/或いは、ユーザにメディア・アイテムへのアクセス権を与えるため及び/又はユーザにメディア・アイテムを提供するために使用可能な他の構成要素を、含むことができる。
【0015】
[0022] メディア記憶デバイス130は、少なくとも1つのMSC135(内部ROM、キー、キー・ストレージなどを備えるセキュアCPU(中央処理ユニット)など)、並びにストレージ140(フラッシュ・メモリ又はハード・ドライブなど)を含むことができる。CPUは処理デバイスの例である。MSC135は別々のチップとするか、又は他の機能(USB、フラッシュ、又はハード・ディスク・コントローラ)と統合することが可能である。大容量ストレージ140は、MSC135からメディア内の別々のハードウェア上で実装するか、又は(例えば単一チップとして)統合することが可能である。メディア記憶デバイス130に関する物理形式の要素は、フラッシュ・メモリ・カード、USBスティック、ハード・ディスク、SSD、ネットワーク接続記憶デバイスなどを含むが、これらに限定されない。MSCは、実施形態に応じて、ストレージ140上でどのようにデータが編成されているかを認識する場合としない場合があることに留意されたい。MSCが(メディア記憶デバイス130がMSC135に知られていないファイル・システムを使用するブロック記憶デバイスである場合に考えられるように)こうした認識をしない場合、ストレージ140に含まれるデータを取得するためのMSC135に関連するプロセスは、MSC135に対して、大容量ストレージからデータを読み取ること、場合によってはデータを復号すること、及びデータをメディア・デバイスに返送することを実行するためのメッセージを、プレーヤ(或いはホスト又はレンダリング・デバイス)に提供させることを、含むことができる。ストレージ140は、メディア・アイテム及びメディア・アイテムに関連するデータを記憶することができる。ストレージ140は、メモリ(例えばランダム・アクセス・メモリ)、キャッシュ、ドライブ(例えばハード・ドライブ)、フラッシュ・ドライブ、ワンタイム・プログラム可能ストレージ、或いは別のタイプのデータ記憶が可能な構成要素又はデバイスとすることが可能な、1つ又は複数のデータ・ストアを含むことができる。ストレージ140上に記憶されるデータは、MSC135のセキュリティ機能を使用するメディア・ファイルには限定されない(ストレージ140は、標準ファイル・システムを用いて通常のハード・ドライブ又はフラッシュ・ドライブを動作可能であり、レガシー・ファイルと再生用にMSC135を使用するファイルの両方を含む任意の種類のデータを保持することができる)。
【0016】
[0023] MSC135は、レンダリング・デバイス160の一部であるか、又はこれに結合する(又は別の方法で、直接又は間接的に接続する)ことが可能である。MSC135は、ストレージ140に記憶されるメディア・アイテムを保護するためのセキュリティ機能を追加することができる。MSC135は、レンダリング・デバイス160とレンダリングされることになるストレージ140内のムービーとの間で中間構成要素として動作することが可能であり、こうしたレンダリングをセキュア又は実行可能にするのを支援するための機能を含むことができる。例えばレンダリング・デバイス160は、メディア・ビューア163内のアクション・ムービーXYZをレンダリングするために必要な何らかのデータをMSC135が処理しなければ、メディア・ビューア163内のアクション・ムービーXYZをレンダリングすることができない。例えばMSC135は、メディア・アイテムをレンダリングするために使用されるべき1つ又は複数のキーを復号し、そのキーをレンダリング・デバイス160に提供すること、及び/又はプリカーソル(precursor)を実際の復号キーに復号すること、及び/又はメディア・アイテムの一部を復号して、復号された部分をレンダリング・デバイス160に提供することが可能である。MSC135とレンダリング・デバイス160との間の対話は反復可能である。反復回数は、メディア・アイテムに関する(及び共に記憶可能な)命令に基づくことが可能である。
【0017】
[0024] レンダリング・デバイス160は、ストレージ140内のデータ(例えばメディア・アイテム、メディア・アイテムに関連するデータ)にアクセスすることができる。ストレージ内のデータは、レンダリング・デバイス160が必要なセキュリティ手順を使用せずにレンダリングする(メディア・ビューア163内に記憶されたデータによって、又は未許可のデバイスによるレンダリング)のを防止するように機密保護(例えば暗号化)されている。前述のように、レンダリング・デバイス160は、メディア・ビューア163内のレンダリングを可能にするためのデータの処理及び交換を実行可能にするために、直接又は間接的に、MSC135とデータを交換することが可能な、セキュリティ・モジュール165を含むことができる。
【0018】
[0025] 一実装において、MSC135は、ストレージ140に含まれるファイルから直接読み取る機能を有さない。例えばMSC135は、レンダリング・デバイス160によって使用されるファイル・システムを理解していない場合がある。MSC135がストレージ140にデータを要求する場合、MSC135は所望のデータを指定するメッセージをレンダリング・デバイス160に送信することが可能であり、その後レンダリング・デバイス160は、ストレージ140からデータを取得してそのデータをMSC135に返送することができる。その後MSC135は、例えばデータを(例えばそれ自体の動作の一部として)使用するか、又はデータを処理し、処理されたデータをセキュリティ・モジュール165に(例えば直接、又はレンダリング・デバイス160を使用して)送信することができる。セキュリティ・モジュール165は、MSC135からのデータを使用して、メディア・ビューア163内のメディア・アイテム(例えばムービー)をレンダリングすることができる。
【0019】
[0026] レンダリング・デバイス160は、メディア・ビューア163内のメディア・アイテムをレンダリングするためにストレージ140内のメディア・アイテム(例えばムービー)にアクセスするために、メディア記憶デバイス130に結合することができる。レンダリング・デバイス160は、MSC135と(直接又は間接的に)通信可能な、セキュリティ・モジュール165を含むことができる。セキュリティ・モジュール165は、例えばファームウェア、アプリケーション、SoCのセキュリティ・コア、セパレート・チップ、及び/又はレンダリング・デバイス160内の他のハードウェアとすることが可能であり、これらに限定されない。ユーザ102がメディア・ビューア163内でレンダリングするムービーを選択すると、セキュリティ・モジュール165はそのムービーに関する認可ファイルをストレージ140からロードすることができる。認可ファイルは、ムービーをメディア・ビューア163でレンダリングするために実行する、セキュリティ・モジュール165及びMSC135に関する1つ又は複数セットの命令を含むことが可能である。セキュリティ・モジュール165は、MSC135及び/又は認可ファイルなどから、命令を受信して解釈することができる。同様にMSC135は、セキュリティ・モジュール165及び/又は認可ファイルから命令を受信して解釈することができる。
【0020】
[0027] キー発行サーバ120は、レンダリング・デバイス160及びメディア記憶デバイス130、131用のキーを配布及び管理することができる。キー発行サーバ120は、メディア記憶デバイス130、131用に1つ又は複数の基本メディア記憶デバイス・キーを発行することができる。例えばメディア記憶デバイス130、131が製造される場合、キー発行サーバ120は、メディア記憶デバイス130、131のMSC135のセキュアなメモリ部分(例えばオンチップ・ワンタイム・プログラム可能メモリ内)に、1つ又は複数の基本メディア記憶デバイス・キーを供給することができる(143)。基本メディア記憶デバイス・キーは、各メディア記憶デバイス130、131に対して固有とすることができる。基本メディア・デバイス・キーの例は、非対称キー・ペア(例えばRSA/ECC)、対称キー(AESキー)などを含むことができるが、これらに限定されない。基本メディア記憶デバイス・キーを使用して、認可サーバ110、レンダリング・デバイス160などとのセキュアなセッションを確立することができる。キーを供給するプロセスは、例えば、セキュア機構内でキー発行サーバ120にキーを直接伝送させることを含むことが可能であり、又は、キーがセキュア機構内のキー・プログラミング・デバイスに送達された後、個別のデバイスに提供されること、及び/又は、キーがインターネットなどの信頼できないチャネルを介してセキュアな(例えば暗号化された)形で送信可能であることが可能である。
【0021】
[0028] キー発行サーバ120は、レンダリング・デバイス160に対して1つ又は複数のレンダリング・デバイス・キーを発行することができる。例えばレンダリング・デバイス160が製造される場合、キー発行サーバ120は、レンダリング・デバイス160に対して1つ又は複数のレンダリング・デバイス・キーを供給することができる(149)。キーを供給するプロセスは、例えば、セキュア機構内でキー発行サーバ120にキーを直接伝送させることを含むことが可能であり、又は、キーがセキュア機構内のキー・プログラミング・デバイスに送達された後、個別のデバイスに提供されること、及び/又は、キーがインターネットなどの信頼できないチャネルを介してセキュアな(例えば暗号化された)形で送信可能であることが可能である。
【0022】
[0029] コンテンツ・プロバイダ105は、例えば、ユーザ102にレンダリングするために、レンダリング・デバイス160にメディア・アイテムを提供するための、1つ又は複数のメディア・サーバ115を含むことができる。コンテンツ・プロバイダ105は、メディア・アイテムをレンダリングできるようにするためにメディア・アイテムに対する認可ファイルを提供するための、1つ又は複数の認可サーバ110を含むことができる。
【0023】
[0030] 認可サーバ110は、認可キーをMSC135に提供することができる。例えばムービーが(例えばユーザ102によって)購入された場合、メディア・サーバ115は、メディア記憶デバイス(例えばメディア記憶デバイスn131)に記憶されることになる、購入されたムービーに関するデータ・ファイルを供給することが可能であり(145)、認可サーバ110は、ムービーに関する認可ファイル及び認可キーをメディア記憶デバイス上に記憶するために送信することが可能である(147)。例えばムービーが購入された場合、そのムービーに関するデータ・ファイル、認可ファイル、及び認可キーは、認可サーバ110及びメディア・サーバ115から、メディア記憶デバイスn131上のストレージ140にダウンロードすることができる。認可キーはMSC135内に記憶すること(又はMSC135に記憶されたキーで暗号化され、ストレージ140上のいずれかに記憶されること)が可能であり、データ・ファイル及び認可ファイルはストレージ140内に記憶することが可能である。認可キーをMSC135に記憶する実装の1つを、
図2に関連して以下でより詳細に説明する。
【0024】
[0031] キー発行サーバ120は、認可キーを作成及び/又は暗号化する際に使用するためのデータを、認証サーバ110に提供することができる。一実装において、キー発行サーバ120は、メディア記憶デバイス(131)に供給する(143)基本メディア記憶デバイス・キーに基づく導出キーのリストを、認可サーバ(110)に提供する(141)。導出キーは、MSC135が使用するための(認可キーなどの)情報をセキュアに転送するために、認可サーバ110によって使用されることが可能である。キー・ツリーを使用して導出キー生成する一実装は、
図6に関連して以下でより詳細に説明する。
【0025】
[0032] 認可ファイルは、レンダリング・デバイス160上のセキュリティ・モジュール165及びメディア記憶デバイス上のMSC135による実行のための、命令及びデータのセットを含むことができる。例えば、例示の認可ファイルの命令は、ムービーに関して暗号化されたデータをストレージ140から取り出すこと、及び暗号化されたデータをMSC135に提供することを、セキュリティ・モジュール165に命じることができる。例示の認可ファイルは、暗号化されたデータをMSC135によって記憶された認可キーを使用して復号するため、MSC135とセキュリティ・モジュール165との間で共有されるセッション・キーを使用して、データを再暗号化するため、及び、暗号化されたデータをレンダリング・デバイス160上のセキュリティ・モジュール165に送信するための命令も、含むことができる。例示の認可ファイルの命令は、MSC135がどのキーを使用してデータの復号及びデータの暗号化を実行すべきかを指定することができる。
【0026】
[0033]
図2は、1つ又は複数の実装に従った、例示のメディア記憶デバイス200を示す。メディア記憶デバイス200は、
図1のメディア記憶デバイス131と同一であるとすることができる。メディア記憶デバイス200は、セキュアな専用セクション201及び公開セクション203を含むことができる。
【0027】
[0034] 公開セクション203は、1つ又は複数のメディア・アイテムに関するメディア・データ267を記憶するために使用可能なストレージ260を含むことができる。例えばメディア・データ267はメディア・タイトル1からメディア・タイトルnに関するデータを含むことができる。各メディア・アイテムについて、メディア・データ267は、メディア識別子(例えばメディア・タイトル1 261)、認可ファイル265、及び、レンダリングされることになるメイン・データ(例えば暗号化されたビデオ及びオーディオ)を含むデータ・ファイル263を、含むことができる。認可ファイルの一実装は、
図3に関連して以下でより詳細に説明する。メディア・データ267は、コンテンツ・プロバイダ(例えば
図1のコンテンツ・プロバイダ103、105)の1つ又は複数のサーバ(例えば
図1の認可サーバ110、
図1のメディア・サーバ115)から受信可能である。ファイル・システム内に公開セクション203が編成される場合、そのセクション上の前述のデータは、未関係ファイルと共にファイル内に記憶することができる。
【0028】
[0035] 公開セクション203は、証明改訂データ269を記憶可能である。証明改訂データ269は、キー発行サーバ(例えば
図1のキー発行サーバ160)及び/又は認可サーバ(例えば
図1の認可サーバ110)から受信可能である。証明改訂データ269(例えば証明改訂リスト)は、対応する証明に記載されたようなMSC及び/又はレンダリング・デバイスに関連付けられた権利に対する任意の改訂を説明する情報を含むことができる。レンダリング・デバイスの証明は、例えばレンダリング・デバイスがレンダリング可能なメディア・アイテムの品質レベルを説明する情報を含むが、これらに限定されない。例えばレンダリング・デバイスBは、レンダリング・デバイスBが高解像度でメディア・アイテムをレンダリングできるようにする証明を有することができる。レンダリング・デバイスBが危険にさらされた(例えば不正侵入、攻撃などをされた)場合、証明改訂リストは、レンダリング・デバイスBがメディア・アイテムを高解像度ではなく低解像度でレンダリングすることを認可されるように、レンダリング・デバイスBの証明が改訂されることを示す情報を含むことができる。
【0029】
[0036] 証明改訂データ269は、より新しい有効なバージョンが使用可能である場合には必ず更新されることが可能である。例えば、証明改訂データ269は、メディア・アイテムがメディア記憶デバイス200にダウンロードされるときに更新されることが可能である。別の例では、証明改訂データ269が古くなったことをMSC205が決定すると、証明改訂データ269は更新されることが可能である。例えば、MSC205がレンダリング・デバイスとセキュア・セッションを確立した場合、MSC205及びレンダリング・デバイスは、各他の証明改訂リストのバージョンを比較して、証明改訂リストが最新であるか古いかを判別することができる。証明改訂リストのデジタル署名は、基礎となるデータの妥当性及び新しさの両方を認証することができる(例えば、証明改訂リストに含まれる発行日又はカウンタは、新しいバージョンが有効であり、現在記憶されているバージョンよりも新しいかどうかを、デバイスが識別できるようにすることができる)。
【0030】
[0037] 専用セクション201は、基本メディア記憶デバイス・キー252を記憶することができる。基本メディア記憶デバイス・キー252は、キー発行サーバ(例えば、
図1のキー発行サーバ160)から受信すること、及び、例えばメディア記憶デバイス200が製造されたときに、MSC205の専用データ領域250に記憶することが可能である。基本メディア記憶デバイス・キー252は、例えば非対称キー・ペア(例えばRSA/ECC)及び1つ又は複数のAESキーを含むことができるが、これらに限定されない。基本メディア記憶デバイス・キーは、レンダリング・デバイス及び/又は認可サーバとのセキュア・セッションを確立する際に使用することができる。
【0031】
[0038] 専用セクション201は、セキュア・セッションとすること、MSC205を含むことが可能である。MSC205は、メディア・データ261及びメディア・データ261に関するメディア・アイテム(例えばムービー)を保護するためのデータ250を記憶することができる。データ250は、ストレージ260内の対応するメディア・アイテムをレンダリングするプロセスの一部として使用される、認可データ251を含むことができる。認可データ251は、例えば、認可キーを記憶するための認可キー・スロット、認可キー・スロット数、及び各スロットに関する情報(例えば発行者識別子、認可識別子、認可キーなど)のリストを含むことができるが、これらに限定されない。メディア記憶デバイス200は、認可データ251内の認可キーを使用して、例えばデータ・ファイル263又はデータ・ファイル263の一部、或いは、メディア・データ267内のデータ・ファイル263の一部を暗号化するために使用されたキーを復号することができる。専用ストレージ内のデータ250は、例えば、署名、証明、内部キー(例えばオンチップ・フラッシュ/ヒューズ/OTP)、又は最新の検証済み証明改訂リストのタイムスタンプ又は通し番号なども含むことができる。
【0032】
[0039] 専用セクション201内のデータ250は、特定のセキュア通信セッションに関してレンダリング・デバイス(例えば
図1のレンダリング・デバイス160)内のMSC205とセキュリティ・モジュール(例えば
図1のセキュリティ・モジュール165)との間に確立された、セッション・キー253を含むことができる。MSC205は、レンダリング・デバイス内のセキュリティ・モジュール(例えば
図1のセキュリティ・モジュール165)との通信をセキュアにするために、セッション・キー253を使用することができる。例えばMSC205は、セキュリティ・モジュールによって暗号化及び/又は認可されたデータを受信すること、並びに、セッション・キー253を使用してデータを復号及び/又は検証することができる。別の例では、MSC205は、セッション・キー253を使用してデータを暗号化及び/又は認可すること、並びに、暗号化されたデータを復号及び/又は検証のためにセキュリティ・モジュールに送信することが可能である。
【0033】
[0040] 前述のように、いくつかの実施形態では、MSC205は、メディア記憶デバイス200上の公開セクション203内のメディア・データ267に直接アクセスすること又はこれを解釈することができない場合がある。例えば、MSC205は、ストレージ260上のデータを編成するために使用されたファイル・システムを理解していない場合がある。必要なデータ(メディア・データ267の一部など)を取得するために、MSC205は、レンダリング・デバイスにメッセージを送信して、必要なメディア・データ267をストレージ260から取り出すこと、及び、メディア・データ267をMSC205に提供することが可能である。正しいデータが要求されていることを保証するために、MSC205は、戻されたデータをデジタル形式でハッシングし、結果として生じるハッシュがデジタル署名及び/又はメッセージ認可コードと合致することを確認することができる。
【0034】
[0041] 例えば、一実施形態において、ムービー(例えばメディア・タイトル1 261)をレンダリングすることが選択された場合、レンダリング・デバイスはムービー(例えばメディア・タイトル1 261)に関する認可ファイル265を、メディア記憶デバイス200上の公開セクション203から取り出し、この認可ファイル265(又はその一部)をMSC205に送信することができる。認可ファイルの一部は、実行するためのMSC205に対するデジタル署名付き命令の1つ又は複数のセットを含むことができる。例えば、メディア・タイトル1 261に関する例示の認可ファイル265は、基本メディア記憶デバイス・キー271から一時キーを取り出すため、命令内の指定キーを使用して(同様に認可ファイル265からのものとすることが可能な)暗号化キーを復号するために一時キーを使用するため、その後、命令に指定されたIDに合致する認可キーを使用して結果を復号するための、MSC205に関する命令のセットを含むことができる。次に例示の命令は、MSC205が、結果を再暗号化するため、及び再暗号化された結果をレンダリング・デバイス上のセキュリティ・モジュールに送信するために、セッション・キー253を使用すべきである旨を指定することができる。例示の認可ファイル265は、セッション・キーを使用して再暗号化された結果を復号し、結果をキーとして使用して、メディア・タイトル1 261のメディア・アイテムに関するデータ・ファイル263の一部をレンダリングするように指示する、レンダリング・デバイス上のセキュリティ・モジュールに対する命令を含む。
【0035】
[0042]
図3は、例示の一実装に従った、メディア・セキュリティ・コントローラを使用してメディア・アイテムを保護するための例示の認可ファイル301内の例示の命令を示す。認可ファイル301は、
図2の認可ファイル265と同一とすることができる。
【0036】
[0043] 認可ファイル301は、メディア・アイテムのレンダリングに関連して実行するための、セキュリティ・モジュール及びMSCに関する命令の1つ又は複数のセットを含むことができる。例えばMSCは、データXYZの復号、データXYZの再暗号化、及び再暗号化されたデータXYZのレンダリング・デバイスへの送信を実行するための、命令を受信することができる。別の例では、レンダリング・デバイスは、MSCから何らかのデータ(すなわち暗号化されたデータXYZ)を受信するまで待機すること、及び、暗号化されたデータXYZを受信したときに暗号化されたデータXYZを復号することを実行するための、命令を受信することができる。
【0037】
[0044] レンダリング・デバイスは、命令を解釈及び実行するためのファームウェアを含むことができる。例えば、メディア・アイテムがレンダリング用に選択される場合、レンダリング・デバイス内のファームウェアは、選択されたメディア・アイテムに関する認可ファイル301を自動的に取り出すこと、及び、認可ファイル301又はその一部をMSCに転送することを、レンダリング・デバイスに命じることができる。MSCは、認可ファイル301又はその一部をレンダリング・デバイスから受信し、認可ファイル301又はその一部を認証及び解釈することができる。
【0038】
[0045] 各メディア・アイテム又はメディア・アイテムのセットに関する認可ファイル301が存在可能である。認可ファイル301は、メディア識別子(例えばタイトル識別子)、認可識別子、及び対応するメディア・アイテムをレンダリングするために1つ又は複数の動作のセット305を含むように事前符号化することができる。命令は、例えば対応するメディア・アイテム用に構成可能とすることができる。例えば、コンテンツ・プロバイダ(例えば発行者)は、命令及び関連付けられた暗号化データ値を定義することができる。コンテンツ・プロバイダは、新しい認可ファイルが発行されるごとに(例えば、ユーザが何らかのコンテンツをダウンロードし、顧客のメディア記憶デバイスにライセンスを与えるために支払う場合)、異なる命令を提供することができる。動作のセット305は、条件又は他の分岐/論理機能を含むことができる。例えば動作のセット305は、ビット17=1の場合、何らかのデータを復号するために指定された認可キー・スロット内のキーを使用すること、という条件文を含むことができる。
【0039】
[0046] 一実施形態では、動作の個々のセット305は、実行される前にデバイスによってハッシングされる。動作のセットのハッシュ(ハッシュ307)自体は、動作の様々な個々のセット305を、(ハッシングの様々な段階であるが)すべての動作を反映するハッシュに接続するようにハッシングされる。一実施形態では、これはハッシュ・ツリーを用いて実行される。別の実施形態では、動作セットは後続の動作セットのハッシュを含む。例えば動作セット1(ハッシュ値1を有する)は動作セット2の動作を参照し、動作セット1内の参照は動作セット2のハッシュを含む。動作セット2は動作セット3及び動作セット4の両方を参照することが可能であり、それらの参照はそれぞれ動作セット3及び動作セット4のハッシュも含むことになる。このように、ハッシュ値1のデジタル署名は、動作セット1のコンテンツを直接認証し、次にこれが他の動作セットを認証する。次の命令セットは、実行するための次の命令セットの整合性及びこれに対する連鎖を確認する、ハッシュ値2を含むことができる。前述のどちらの実施形態においても、(レンダリング・デバイス内の)MSC及びセキュリティ・モジュールのそれぞれが、命令セットのそれら自体の部分を受信し、それらの部分でコマンドを実行することから、認可ファイル301内に担持される命令の合計サイズは、MSC及び/又はセキュリティ・モジュール内で使用可能なRAMよりも大幅に大きいとすることが可能である。
【0040】
[0047] 命令セット内に含まれ得るコマンドの例をいかに示す。
サンプル命令タイプの例
-Encrypt(命令実行者、キー選択、オフセット)
-Compress(命令実行者、キー選択、オフセット)
-Copy(命令実行者、ソース、宛先、長さ)
-Decrypt(命令実行者、キー選択、オフセット)
-Compare(命令実行者、ソース、宛先、長さ、ジャンプ位置、ジャンプ位置の命令セットのハッシュ)
-Fill(命令実行者、宛先、長さ、データ)
-Finish(命令実行者、ステータス)
-Indirect Step(命令実行者、ptr、ハッシュ)
-Transfer(命令実行者、ソース、宛先、長さ)
-AES(キー選択、オフセット[ソース]、オフセット[宛先])
-AddToPlaybackMap(命令実行者[セキュリティ・モジュールであること]、キー選択、オフセット[付加する再生マップ・データを伴う])
・ストレージ上のメイン暗号化コンテンツ・ファイル内のオフセット
・キーは適用するオーディオ及びビデオについて別々のキーを含む
・暗号化コンテンツ・ファイル内のデータの長さ
・仮想コンテンツ・ファイル内の宛先
-ReceiveData(ptr、長さ)
-DeriveKey(キー選択[イン]、誘導パラメータ、キー選択[アウト])
注:入力パラメータにおいて、「命令実行者(who)」は、どのエンティティが命令を実行すべきか(例えばMSC又はセキュリティ・モジュール)を指定し、それぞれの動作が別々のセットに分離される場合は省略可能である。「キー選択(Key select)」は、処理で使用されるべきエンティティ内のキーを識別する。「オフセット(Offset)は、作業域内のオフセット(例えばスロット位置又はバイト・オフセット)」を指定する。
【0041】
[0048]
図4は、様々な実装に従って、メディア・アイテムのレンダリングを可能にするためにレンダリング・デバイス405と対話するメディア・セキュリティ・コントローラ403の例を示す図である。例えば、メディア・セキュリティ・コントローラ403及びレンダリング・デバイス405はセキュア・セッションを確立し、セッション・キーを作成し、セッション・キー及び他のキーを使用して、レンダリング・デバイス405がメディア・アイテムをレンダリングするために使用できる再生マップ465を作成することができる。メディア記憶デバイス401は、
図1のメディア記憶デバイス130及び
図2のメディア記憶デバイス200と同一とすることができる。レンダリング・デバイス405は
図1のレンダリング・デバイス160と同一とすることがきる。
【0042】
[0049] レンダリング・デバイス405は、メディア記憶デバイス401上のストレージ450内のデータ451に記憶されたメディア・アイテムをレンダリングするための要求を受信することができる(420)。要求は、グラフィカル・ユーザ・インターフェースを介してメディア・アイテムのユーザ選択の入力として受け取ることができる。例えば要求は、コメディ・ムービーABCに関するものとすることができる。要求への応答、又は要求以前のいずれかに、レンダリング・デバイスは、レンダリング・デバイス405とメディア記憶デバイス401との間でセキュア・セッションを開始する。
【0043】
[0050] いくつかの実施形態では、最新の使用可能な証明改訂リスト(CRL)が、メディア記憶デバイス401上のメディア・セキュリティ・コントローラ403及びレンダリング・デバイス405上のセキュリティ・モジュール407の両方によって使用されることが望ましい。CRLバージョンの同期を実行可能にするために、MSC403及びセキュリティ・モジュール407はそれぞれ、CRLヘッダを受信するように構成可能であり、ヘッダが(i)信用されるエンティティ(例えばキー発行センタ)によって署名された有効なデジタル署名を有すること、(ii)CRLが以前に見られた最新のCRLよりも新しいことを示す発行カウンタ(又はタイムスタンプ)を有することの、両方であるかどうかをチェックする。両方に当てはまる場合、より新しいCRLヘッダがセキュア領域内に保持され、CRL全体が宛先デバイスに記憶される。より新しいCRLがメディアに供給されている場合、公開ファイル・システム内のファイルとしてレンダリング・デバイスによって書き込むことができる。より新しいCRLがレンダリング・デバイスに供給されている場合、メディアのファイル・システムから読み取り、小型フラッシュ、ハード・ディスク、又はレンダリング・デバイスの不揮発性メモリ域に記憶することができる。したがって、証明改訂リスト及びヘッダを同期するプロセス(421)は、デバイスが最新とみなしたCRLバージョンが同じであるかどうかを第1にチェックし、最新でない場合は、より新しいCRLを備えるデバイスからより古いCRLを備えるデバイスに、より新しいCRLを送信するステップを含むことができる。加えて、所望であれば、より新しいCRLをストレージ451上のデータから、又はそれ以外の場所からインターネットを介して探すことも可能である(いずれかのデバイスが最後に見つけたCRLよりも新しいCRLが見つかった場合、前述のように、その新しいCRLが両方のデバイスに供給されるものとする)。CRL同期化421が完了すると、両方のデバイスが同じCRLバージョンを有することになる。
【0044】
[0051] ステップ422で、メディア・セキュリティ・コントローラ403及びセキュリティ・モジュール407は、それぞれにレンダリング・デバイス/メディア記憶デバイスの識別、タイプ/製造業者、属性、及び公開キーを指定する証明を交換する。デバイスは、キー発行センタが開始する証明の連鎖を検証することによって、証明が適切に署名されていることを検証する。
【0045】
[0052] 各デバイスは、他の識別に対応する証明改訂リスト部分を検証及び処理する(423)。受信されたCRL部分を、以前に同期されたCRLバージョン(421)と比較することができる。CRLを一部とすることで、MSC403などの制約された環境で使用可能なRAMの量を超えるCRLサイズを簡単にサポートできるようになる。一実施形態では、レンダリング・デバイス405は、メディア・セキュリティ・コントローラ403がセキュリティ・モジュール407の識別を検証するために、必要な部分を証明改訂ファイルからメディア・セキュリティ・コントローラ403に提供する。受信した部分がキー発行センタによって発行された署名によって適切に認証されていない場合、バージョンが以前に受信したバージョンと合致していない場合、部分がセキュリティ・モジュールの証明に対応していない場合、又は、部分がセキュリティ・モジュール407を無効とする(又は別の方法で、セキュリティ・モジュール407をコンテンツの要件に不適合とする)場合、MSC403はプロトコルを終了することができる。
【0046】
[0053] MSC403は、レンダリング・デバイス405の証明からの情報を記憶する(424)。例えばメディア記憶デバイス401は、一定量のメモリ(例えば16Kビット)をバッファ453として割り振り、一定サイズのバッファに、レンダリング・デバイスの証明及び/又は対応するCRL部分から、レンダリング・デバイス情報(例えば製造業者、モデル、製造番号、請求クラス、証明改訂リスト(CRL)からの失効状況、CRLからの改訂状況など)を追加することができる。図には示されていないが、セキュリティ・モジュール407も同様に、メディア記憶デバイスの証明及び/又は対応するCRL部分からの情報を備えるバッファを形成することができる。
【0047】
[0054] MSC403及びセキュリティ・モジュール407は、公開キーのセットとのハンドシェイク(handshake)及び対称キーのセットとのハンドシェイクを使用して、共有セッション・キーを確立する(425)。このセッション・キーは、
図2のセッション・キー253に対応することが可能である。MSC403及びセキュリティ・モジュール407は、それぞれセッション・キーを取り出してローカルに記憶することができる。例えばそれぞれは、他方の証明からの公開キーを用いてランダム値を暗号化することができる。次にMSC403及びセキュリティ・モジュール407は、これらの暗号化された値を交換することが可能であり、それぞれが他方の値を復号する。その後、セッション・キーは、復号結果をハッシングすることによって生成可能である(例えば、ハッシュ(メディアによって暗号化された値‖メディア証明‖レンダリング・デバイスによって暗号化された値‖レンダリング・デバイス証明)であって、「‖」は連結を示す)。「ハッシュ」はSHA−256などの暗号学的ハッシュ関数とすることができる。
【0048】
[0055] 次にレンダリング・デバイス405は認可ファイルをロードし(427)、関連する認可ファイル部分をMSC403に送信する(429)。
【0049】
[0056] MSC403は、認可ファイル内の第1の命令セットを識別し、命令の処理(例えば読み取り、実行など)を開始する(430)。MSC403は、命令セットに応じて、レンダリング・デバイス405上のセキュリティ・モジュール407とのデータの交換及び処理を、何回か反復することができる。例えばMSC403は、命令セットに含まれるデータを復号するようMSC403に命じる、第1の命令セットを実行することができる。例えば命令セットは暗号化キーを含み、暗号化キーの復号に使用すべきMSC403内の認可キーを指定することができる。
【0050】
[0057]
図4のMSCに関する例示の命令セットは、レンダリング・デバイス405から追加のデータを受信するためのMSC403に対する命令を含む。この命令を処理するために、MSC403は、セキュリティ・モジュール407から追加のデータを取得するためのセキュリティ・モジュール407に対するメッセージを、セキュリティ・モジュール407に送信する(431)。セキュリティ・モジュール407は、データを(例えば図に示されるようにストレージ450、又はレンダリング・デバイスの内部メモリなどの他のソース、インターネットなどから)取り出し(433)、そのデータをMSC403に送信する(435)(又はエラーに応答する)。MSC403は、データを処理し(437)(例えば、ステップ430時のように、以前に生成されたキーを使用して復号及び/又は暗号化し)、処理されたデータを、(例えばレンダリング・デバイスにデータを提供し、セキュリティ・モジュールに沿って渡すことによって)セキュリティ・モジュール407に送信する(439)。セキュリティ・モジュール407は受信したデータを処理する(441)。例えば更にセキュリティ・モジュール407は、セキュリティ・モジュール407がデータをいかに処理すべきかを記述している認可ファイルから、命令セットを受信することも可能である。セキュリティ・モジュール407は、受信したデータをセッション・キー460を使用して復号した後、キー発行センタからのキーから導出されたキーを使用してさらなる復号ステップを適用し(
図1のキー配布149を参照のこと)、結果をデータ467の一部として記憶することができる。
【0051】
[0058] 別の例では、セキュリティ・モジュール407はセッション・キー460を使用してデータを復号し、復号されたデータを再生マップ465の一部として記憶することができる。例えば認可ファイルは、再生マップ465を記憶するバッファにデータ(例えば復号されたキー、オフセット値、長さなど)を書き込むための、セキュリティ・モジュール407に対する命令を含むことができる。再生マップ465内に配置されるデータは、MSC403から受信したデータ、ストレージ450からのデータ、メディア・デバイス証明からのデータ、レンダリング・デバイス証明からのデータ、CRLからのデータ、命令からのデータ、ネットワーク(インターネットなど)から取り出したデータ、及び、使用可能な任意の他のデータを使用して、制限なしに導出することができる。例えば、これらのソースのいずれかからの情報を使用して、(例えばフォレンジックマーキング(forensic marking)を達成するために)コンテンツの異なる代替部分間で選択する再生マップ・エントリを選択することができる。タイトルに関連付けられた命令セットは、所与のタイトルがどのように復号されるかにおける柔軟性を可能にし、本プロセスを通じてセキュリティ・モジュール407は多くのソースからデータを使用することが可能であり、再生マップ465を構築するためにMSC403から増分的及び/又は反復的にデータを受信することができる。
【0052】
[0059] 例えば認可ファイルは、再生マップ465に動作を追加するためのセキュリティ・モジュール407に対する命令を含むことができる。動作はセキュリティ・モジュール407によって実行可能である。再生マップ・エントリは追加の処理を要求することも可能である。例えばエントリは、例えばプリカーソル値をメディア・アイテムの一部のレンダリングに使用可能なキーに変換するために、MSC403からの支援を受信するために、メディア・アイテムのレンダリング中のある時点でMSC403とインターフェースするように、レンダリング・デバイス405及び/又はそのセキュリティ・モジュール407に命じることができる。
【0053】
[0060] 例えば、通信439で、認可ファイルは、メディア・アイテム内のオフセット領域XからYへとメディア・アイテムをレンダリングする際にMSC403との通信を必要とする再生マップ465に動作を追加するよう、セキュリティ・モジュール407に命じることができる。動作は、セキュリティ・モジュール407によるMSC403との通信をトリガするためのインジケータ、オフセット、長さなどの、パラメータを含むことができる。支援は、例えばMSC403がオフセットXからYでメディア・ファイル・データを復号すべきであることであってもよい。
【0054】
[0061] 再生マップ465は、MSC465からの複数の通信を使用して構築可能である。例えば通信431、433は、再生マップ465に書き込むようにとのセキュリティ・モジュール407に対する命令を含むことができる。例えば命令は、長さ、ストレージ内のオフセット、及びキー値を含むエントリを再生マップ465に書き込むよう、セキュリティ・モジュール407に指示することができる。例えば命令は、「ストレージ上のメディア・ファイル内のオフセット「Offset」で開始するメディアの次の「Length」バイトを読み取るべきであり、キー「Key Value」で復号されるべきである」を、再生マップ465に書き込むための、セキュリティ・モジュール407に対するものとすることができる。代替実施形態において、メディア・アイテム全体にわたって異なるキー間で指定及び選択するための他の方法又は符号化が使用可能であるか、又はメディア・アイテム全体に関して単一のキーが存在する可能性がある。
【0055】
[0062] レンダリング・デバイス405は、メディア・アイテムをレンダリングするために再生マップ465を使用することができる。再生マップ465は、アイテムを構成する暗号文の位置を特定して復号する方法に関する情報を含むことが可能であり、セキュリティ・モジュール407によって、メディア・アイテムを形成、復号、及びレンダリングするために使用される。再生マップ465は、レンダリング・デバイス405がメディア・アイテムを復号するために使用すべき1つ又は複数のキーを含むことができる(が、これに限定されない)。レンダリング・デバイス405がストレージ450からメディア・アイテムに関するデータ・ファイルを読み取り、復号されるデータ・ファイルの一部に到達すると、レンダリング・デバイス405は再生マップ465内の対応するキーを使用して、データの一部を復号することができる。別の例では、レンダリング・デバイス405が復号されるデータ・ファイルの一部に到達すると、レンダリング・デバイス405は、データの一部の復号を助けるためにMSC403に接触するための再生マップ465内の命令を読み取ることができる。データの復号は、カウンタ・モードのAESなどの従来の暗号化方法を使用することができる。
【0056】
[0063] 一実装において、セキュリティ・モジュール407は、部分的に構築された再生マップ465を使用してメディア・アイテムのレンダリングを開始することが可能であり、MSC403からのさらなる通信に基づいて再生マップ465の構築を続行することができる。例えば、MSC403及びセキュリティ・モジュール407は、セキュア・セッションを確立することが可能であり、再生マップ465を部分的に構築することが可能である。レンダリング・デバイス405は、部分的に構築された再生マップ465に基づいてメディア・アイテム(例えばムービー)のレンダリングを開始することができる。レンダリング・デバイス405がムービーを再生している間の様々な時点で、レンダリング・デバイス405は、レンダリング・デバイス405が復号できないデータの一部を検出し、データのその部分を復号するためにメディア・セキュリティ・モジュール403とインターフェースすることができる。レンダリングは、必要なデータが存在するならば、メディア・アイテムが完全にダウンロードされる前にも開始可能である。
【0057】
[0064] コンテンツ・プロバイダ(例えば発行者)は、いずれのMSC及び/又はレンダリング・デバイスがメディア・アイテムをレンダリングしたかを識別したい場合がある。例えば発行者は、メディア・アイテム及び/又はデバイス(例えばメディア記憶デバイス、レンダリング・デバイス)の未認可コピーに気付く場合があり、いずれのMSC及び/又はレンダリング・デバイスがその未認可コピーに関連付けられているかを追跡したい場合がある。コンテンツ・プロバイダは、認可ファイル内の命令、並びに、いずれのMSC及び/又はレンダリング・デバイスが特定のメディア・アイテムをレンダリングしたかを識別するためのフォレンジック分析のためのMSC及び/又はレンダリング・デバイスによる命令の実行を、使用することができる。
【0058】
[0065] 例えば、コンテンツ・プロバイダは、特定のメディア・セキュリティ・コントローラ及び/又はレンダリング・デバイスのための復号に関するキーを選択することができる。レンダリング・デバイス及び/又はメディア・セキュリティ・コントローラがメディア・アイテムを復号する場合、結果は、認可されたキーが使用されたかどうかに応じて変化する可能性がある。例えば、コンテンツ・プロバイダは、命令を用いて認可ファイルを定義及び事前符号化することができるため、結果としてムービーの一部が再生される場合、異なるレンダリング・デバイスが異なる再生マップ・エントリを有する(例えば、1つのプレーヤは再生マップ内にキーK1を生成し、これを使用して一部分の変形Aを復号する一方で、別のプレーヤは再生マップ内にキーK2を生成し、これを使用して一部分の変形Bを復号することができる)。偽作コピーが回復された場合、ファイル内の変形は偽作者に関する情報を担持する(例えば、変形Aが存在する場合、偽作者は変形Aの復号が可能であり、変形Bが存在する場合、偽作者は変形Bの復号が可能であった)。十分な変形が与えられた場合、任意の情報を担持することが可能である。変形のサイズは圧縮ビデオ内では数バイトと小さいか、又はそれよりもかなり長いもの(ビデオ又はオーディオ・データのかなりの部分など)とすることができる。
【0059】
[0066]
図5は、様々な実装に従った、メディア・アイテムをレンダリングするために再生マップ565及びメディア・セキュリティ・コントローラ(MSC)503を使用するレンダリング・デバイス505の例を示す図である。例えば、再生マップ565内のエントリは、メディア・アイテム(例えばムービー)の対応する部分をレンダリングするためにMSC503からの支援を探すよう、レンダリング・デバイス505に命じることができる。このようにして、MSC503は、メディア・アイテムのレンダリング中に、メディア・アイテムの一部を復号することによって、又はメディア・アイテムの少なくとも一部を復号するために使用可能なキーをレンダリング・デバイスに提供することによって、積極的に参加することができる。メディア記憶デバイス501は、
図1のメディア記憶デバイス130及び
図2のメディア記憶デバイス200と同一とすることができる。レンダリング・デバイス505は、
図1のレンダリング・デバイス160と同一とすることができる。
【0060】
[0067] レンダリング・デバイス505上のセキュリティ・モジュール507は、レンダリング・デバイス505に記憶された再生マップ565内のエントリを読み取る(520)。
図5に示された例において、エントリは、MSC503による処理がデータに必要であることを指定する。レンダリング・デバイス505は、要求(例えばファイル読み取り)を発行すること(521)によって公開記憶域からデータを読み取った後、必要なデータを受信する(522)。データの一部又はすべてが、必要な処理(例えばMSC503がデータをどのように復号すべきであるか)を指定する要求と共に、MSC503に送信される(523)。MSC503は、要求された処理を実行し(524)、結果をレンダリング・デバイス505に戻す(525)。レンダリング・デバイス505は、MSC503を使用してデータへの追加の復号パスを適用するなどの、それ自体の処理を更に実行することが可能である(526)。最終的にデータは、レンダリングの準備が整う。レンダリング・デバイスは、例えばデータの一部を解凍及び出力のためにオーディオ又はビデオ・コーデックに送信することによって、ビデオ/オーディオを復号する(527)。
【0061】
[0068]
図6は、様々な実装に従った、メディア・セキュリティ・コントローラにおいて認可キーを保護するための例示のキー管理コマンド600を示す。こうしたキーは、例えば認可が1つのメディア・デバイスから別のメディア・デバイスに転送される場合に、認可の除去及び転送を機密保護するために使用可能であり、そのプロセスは、(1)ソース・デバイス上での認可キーの使用不可化、(2)キーが使用不可であることの認可サーバへの確認、(3)認可サーバの宛先メディア・デバイスへの新規認可ファイル及び新規認可キーの発行で、構成可能である。認可キーは、例えば認可の重複防止を助けるために、コンテンツが適切に認可されたかどうかを検証するのを助けることもできる(認可されたメディア・デバイスのみが正しい認可キーを有するはずであるため)。キー管理コマンド600は、例えばサーバ、レンダリング・デバイスなどによって、使用可能である。例えば認可サーバ(例えば、
図1の認可サーバ110)は、キー管理コマンドのうちの1つ又は複数を使用して、認可キーをMSCに提供すること、及びMSCによって記憶された認可キーを管理することができる。
【0062】
[0069] 例えば、メディア・アイテムが購入された場合、認可サーバは、メディア・アイテムに関する認可ファイル、メディア・アイテムに関するデータ・ファイル、及び、メディア・アイテムに対応する認可キーを、メディア記憶デバイスに送信することができる。認可サーバは、メディア記憶デバイス上のMSCに「Manage K
Authorization」コマンド603を送信することもできる。このコマンド603は、指定された認可キーの受信、検証、及び記憶を、MSCに指示することができる。例えば管理コマンド603は、記憶する認可キー、記憶する認可識別子、及び認可キーを記憶するために使用するスロット番号、並びに他の認可関連情報を、MSCに対して指定することができる。
【0063】
[0070] この例では、レンダリング・デバイスは、キー管理コマンド600のうちの1つ又は複数を再生プロセスの一部として使用することができる。例えばレンダリング・デバイス(例えば
図1のレンダリング・デバイス160)は、「Read Slot」コマンド602を使用して、特定のメディア・アイテムに関するMSC内に認可キーがすでに存在する旨を検証することができる。再生プロセス中、MSCによって実行される命令(例えば、
図4の430の一部、又は、
図5の524などの再生エントリに関連する処理など)は、認可キーを使用して、例えば未認可メディア又は認可が除去されたメディアで、再生が実行不可能であることを保証することができる。
【0064】
[0071] 認可サーバは、MSCとのセキュアな通信を確立することができる。キー発行サーバは、基本メディア記憶デバイス・キーをMSCに発行することができる。一実装において、キー発行サーバはキー・ツリーを使用して、MSCに対して発行された基本メディア記憶デバイス・キーから導出されたキーの導出リストを作成する。キー発行サーバは、導出キーのリストを認可サーバに提供することができる。認可サーバは、導出キーのリストを使用してMSCとのセキュアな通信を有することができる。導出キーを使用することで、認可サーバは、(例えば、ある認可サーバの侵害を、メディア及び他の認可サーバによって実行される侵害動作から保護するために、)MSCに割り当てられた基本メディア記憶デバイス・キーを実際に知ることなく、MSCとセキュアに通信できるようになる。
【0065】
[0072] 一実装において、キー発行サーバは、MSCに割り当てられた基本メディア記憶デバイス・キー及び認可サーバに関連付けられた発行者識別子を入力として有する、キー・ツリー機能を使用して、導出キーを作成する。例えば導出キーは、(基本メディア記憶デバイス・キー、発行者ID)の入力パラメータを用いて算出可能である。導出キーは、対応するMSCと認可サーバとの間で共有可能である。個々のコンテンツ・プロバイダ(例えば発行者)は、コンテンツ・プロバイダの認可サーバとMSCとの間の通信を可能にする、導出キーのリストを受信することができる。
【0066】
[0073]
図7は、様々な実装に従った、本明細書で説明されるメディア・セキュリティ・コントローラの動作のうちの1つ又は複数を実行するように構成された、例示のコンピュータ・システムを示すブロック図であり、以下でより詳細に説明する。
図8は、様々な実装に従った、本発明で説明されるセキュリティ・モジュールの動作のうちの1つ又は複数を実行するように構成された、例示のコンピュータ・システムを示すブロック図であり、以下でより詳細に説明する。いくつかの実施形態では、
図7及び
図8のコンピュータ・システムは、メディア・セキュリティ・コントローラ及びセキュリティ・モジュールの両方の動作を実行するように構成された単一のシステム内で具体化される。
【0067】
[0074]
図7は、本明細書で考察されるメディア・セキュリティ・コントローラの方法のうちの任意の1つ又は複数を機械に実行させるための命令セットが実行可能である、コンピュータ・システム700の例示の形の機械を示す図である。代替の実装では、機械はLAN、イントラネット、エクストラネット、又はインターネット内の他の機械に接続可能(例えばネットワーキング可能)である。機械は、クライアント・サーバ・ネットワーク環境のサーバ又はクライアント機械の容量内で、或いは、ピアツーピア(又は分散型)ネットワーク環境のピア機械として、動作可能である。機械は、パーソナル・コンピュータ(PC)、タブレットPC、セットトップ・ボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブ機器、サーバ、ネットワーク・ルータ、スイッチ又はブリッジ、或いは、その機械によって実行されるアクションを指定する命令セットを(順次又はその他の方法で)実行可能な任意の機械とすることができる。更に、単一の機械のみが図示されているが、「機械」という用語は、本明細書で考察される方法のうちの1つ又は複数を実行するために、命令のセット(又は複数セット)を個別に又はまとめて実行する、機械、チップ、及び/又はマイクロプロセッサの任意の集合を含むようにも使用されるものとする。
【0068】
[0075] 例示のコンピュータ・システム700は、処理デバイス(プロセッサ)702、メイン・メモリ704(例えば読み取り専用メモリ(ROM)、フラッシュ・メモリ、シンクロナスDRAM(SDRAM)、ダブル・データ・レート(DDR SDRAM)、又はDRAM(RDRAM)などの動的ランダム・アクセス・メモリ(DRAM))、静的メモリ706(例えばフラッシュ・メモリ、静的ランダム・アクセス・メモリ(SRAM)など)、及び、データ記憶デバイス614を含み、それらは互いにバス730を介して通信する。
【0069】
[0076] プロセッサ702は、マイクロプロセッサ、中央処理ユニットなどの、1つ又は複数の汎用処理デバイスを表す。より具体的に言えば、プロセッサ702は、複数命令セット・コンピューティング(CISC)マイクロプロセッサ、縮小命令セット・コンピューティング(RISC)マイクロプロセッサ(ARM又はMIPS命令セットを実行する埋め込み型CPUコアを含むがこれに限定されない)、超長命令語(VLIW)マイクロプロセッサ、或いは、他の命令セットを実装するプロセッサ又は命令セットの組み合わせを実装するプロセッサとすることができる。プロセッサ702は、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワーク・プロセッサなどの、1つ又は複数の特定用途向け処理デバイスとすることもできる。プロセッサ702は、本明細書で考察される動作及びステップを実行するための命令722を実行するように構成される。命令722は、完全に又は少なくとも部分的に、コンピュータ・システム700によるそれらの実行中にメイン・メモリ704内及び/又はプロセッサ702内に常駐することも可能であり、メイン・メモリ704及びプロセッサ702はコンピュータ可読記憶メディアも構成している。命令722は、ネットワーク・インターフェース・デバイス708を通じてネットワーク720を介して送信又は受信することも可能である。命令722(又は本発明に関連付けられた他の命令)は、デジタル署名付き(又は別の方法で、暗号認可済み)とすること、及び、実行前に(例えばプロセッサ702によって)検証することが可能である。
【0070】
[0077] コンピュータ・システム700は、ネットワーク・インターフェース・デバイス708を更に含むことができる。コンピュータ・システム700は、ビデオ・ディスプレイ・ユニット710(例えば液晶ディスプレイ(LCD)又は陰極線管(CRT))、入力デバイス712(例えばキーパッド、タッチ・スクリーン、英数字キーボード、動作検知入力デバイスなど)、カーソル制御デバイス714(例えばマウス)、及び/又は信号生成デバイス716(例えばスピーカ)を含むこともできる。
【0071】
[0078] データ記憶デバイス718は、本明細書で説明されるメディア・セキュリティ・コントローラの方法又は機能のうちの任意の1つ又は複数を具体化する、1つ又は複数の命令セット723(例えばソフトウェア)が記憶される、コンピュータ可読記憶メディア728を含むことが可能である。一実装において、データ記憶デバイス718は、本明細書で説明されるメディア・セキュリティ・コントローラ・モジュールの方法又は機能のうちの任意の1つ又は複数を具体化する、1つ又は複数の命令セット723が記憶される、コンピュータ可読記憶メディア728を含むことが可能である。コンピュータ可読記憶メディア728(機械可読記憶メディア)は単一メディアであるような例示の実装で示されているが、「コンピュータ可読記憶メディア」という用語は、1つ又は複数の命令セットを記憶する、単一メディア又は複数メディア(例えばRAIDアレイ、ネットワーク接続記憶デバイス、フラッシュ・メモリ、集中型又は分散型データベース、及び/又は、関連付けられたキャッシュ及びサーバなど)を含むものと取られるべきである。「コンピュータ可読記憶メディア」という用語は、機械による実行のための命令セットの記憶、暗号化、又は担持が可能であり、本発明の開示の方法のうちの任意の1つ又は複数を機械に実行させる、任意のメディアを含むものとも取られるべきである。したがって「コンピュータ可読記憶メディア」という用語は、ソリッドステート・メモリ、光メディア、及び磁気メディアを含むがこれらに限定されないものと取られるべきである。
【0072】
[0079]
図8は、本明細書で考察されるセキュリティ・モジュールの方法のうちの任意の1つ又は複数を機械に実行させるための命令セットが実行可能である、コンピュータ・システム800の例示の形の機械を示す図である。代替の実装では、機械はLAN、イントラネット、エクストラネット、又はインターネット内の他の機械に接続可能(例えばネットワーキング可能)である。機械は、クライアント・サーバ・ネットワーク環境のサーバ又はクライアント機械の容量内で、或いは、ピアツーピア(又は分散型)ネットワーク環境のピア機械として、動作可能である。機械は、パーソナル・コンピュータ(PC)、タブレットPC、セットトップ・ボックス(STB)、携帯情報端末(PDA)、携帯電話、ウェブ機器、サーバ、ネットワーク・ルータ、スイッチ又はブリッジ、或いは、その機械によって実行されるアクションを指定する命令セットを(順次又はその他の方法で)実行可能な任意の機械とすることができる。更に、単一の機械のみが図示されているが、「機械」という用語は、本明細書で考察される方法のうちの1つ又は複数を実行するために、命令のセット(又は複数セット)を個別に又はまとめて実行する、機械、チップ、及び/又はマイクロプロセッサの任意の集合を含むようにも使用されるものとする。
【0073】
[0080] 例示のコンピュータ・システム800は、処理デバイス(プロセッサ)802、メイン・メモリ804(例えば読み取り専用メモリ(ROM)、フラッシュ・メモリ、シンクロナスDRAM(SDRAM)、ダブル・データ・レート(DDR SDRAM)、又はDRAM(RDRAM)などの動的ランダム・アクセス・メモリ(DRAM))、静的メモリ806(例えばフラッシュ・メモリ、静的ランダム・アクセス・メモリ(SRAM)など)、及び、データ記憶デバイス818を含み、それらは互いにバス830を介して通信する。
【0074】
[0081] プロセッサ802は、マイクロプロセッサ、中央処理ユニットなどの、1つ又は複数の汎用処理デバイスを表す。より具体的に言えば、プロセッサ802は、複数命令セット・コンピューティング(CISC)マイクロプロセッサ、縮小命令セット・コンピューティング(RISC)マイクロプロセッサ(ARM又はMIPS命令セットを実行する埋め込み型CPUコアを含むがこれに限定されない)、超長命令語(VLIW)マイクロプロセッサ、或いは、他の命令セットを実装するプロセッサ又は命令セットの組み合わせを実装するプロセッサとすることができる。プロセッサ802は、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワーク・プロセッサなどの、1つ又は複数の特定用途向け処理デバイスとすることもできる。プロセッサ802は、本明細書で考察される動作及びステップを実行するための命令822を実行するように構成される。プロセッサ802、或いはシステム内の他のハードウェア及び/又はソフトウェアは、セキュリティ・モジュール165の機能を実装する。
【0075】
[0082] コンピュータ・システム800は、ネットワーク・インターフェース・デバイス808を更に含むことができる。コンピュータ・システム800は、ビデオ・ディスプレイ・ユニット810(例えば液晶ディスプレイ(LCD)又は陰極線管(CRT))、入力デバイス812(例えばキーパッド、タッチ・スクリーン、英数字キーボード、動作検知入力デバイスなど)、カーソル制御デバイス814(例えばマウス)、及び/又は信号生成デバイス816(例えばスピーカ)を含むこともできる。
【0076】
[0083] 一実装において、データ記憶デバイス818は、本明細書で説明されるセキュリティ・モジュールの方法又は機能のうちの任意の1つ又は複数を具体化する、1つ又は複数の命令セット822(例えばソフトウェア)が記憶される、コンピュータ可読記憶メディア828を含むことが可能である。命令822は、完全に又は少なくとも部分的に、コンピュータ・システム800によるそれらの実行中にメイン・メモリ804内及び/又はプロセッサ802内に常駐することも可能であり、メイン・メモリ804及びプロセッサ802はコンピュータ可読記憶メディアも構成している。命令822は、ネットワーク・インターフェース・デバイス808を通じてネットワーク820を介して送信又は受信することも可能である。
【0077】
[0084] 一実装において、命令822は、セキュリティ・モジュール(例えば
図1のセキュリティ・モジュール165)に関する命令、及び/又はセキュリティ・モジュールを呼び出す方法を含むソフトウェア・ライブラリを含む。コンピュータ可読記憶メディア828(機械可読記憶メディア)は単一メディアであるような例示の実装で示されているが、「コンピュータ可読記憶メディア」という用語は、1つ又は複数の命令セットを記憶する、単一メディア又は複数メディア(例えばRAIDアレイ、ネットワーク接続記憶デバイス、フラッシュ・メモリ、集中型又は分散型データベース、及び/又は、関連付けられたキャッシュ及びサーバなど)を含むものと取られるべきである。「コンピュータ可読記憶メディア」という用語は、機械による実行のための命令セットの記憶、暗号化、又は担持が可能であり、本発明の開示の方法のうちの任意の1つ又は複数を機械に実行させる、任意のメディアを含むものとも取られるべきである。したがって「コンピュータ可読記憶メディア」という用語は、ソリッドステート・メモリ、光メディア、及び磁気メディアを含むがこれらに限定されないものと取られるべきである。
【0078】
[0085] 様々な実施形態において、メディアは、例えばUSB、SD/SDHC/SDXCなど、SCSI、SATA、及びイーサネット・プロトコルを介して、レンダリング・デバイスに接続される。接続は有線又は無線とすることができる。FAT32、NFS、NTFS、RiserFSなどを含む任意のファイル・システムが、記憶デバイス上で使用可能である。「特殊な」セキュア・トランザクションを含む通信は、帯域外制御動作を介して処理すること、又はレガシー・ファイル・システム動作の一部である大容量データ転送動作と統合することが可能である。本システムを実装するメディア・デバイスは、例えば通常消費者のハード・ドライブ、フラッシュ・カード、USBドライブなど、完全に後方互換性であるものとすることができる。同様に、本システムを実装するレンダリング・デバイスは、インターネット・ストリーミング、光ドライブからの再生などの、他の再生方法も同様にサポートすることができる。
【0079】
[0086] 上記の説明では、多数の細部が示されている。しかしながら本開示の特典を有する当業者であれば、本開示がこれらの特定の細部無しでも実施可能であることが明らかとなろう。いくつかのインスタンスでは、本開示を曖昧にするのを避けるために、周知の構成及びデバイスは詳細にではなくブロック図形式で示されている。
【0080】
[0087] 詳細な説明のいくつかの部分は、コンピュータ・メモリ内のデータ・ビット上での動作のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズムの記述及び表現は、データ処理の同業者によってそれらの作業内容を当業者に最も効率よく伝えるために使用される手段である。アルゴリズムは、本明細書では、また一般に、所望な結果につながる首尾一貫したステップ・シーケンスであると考えられる。このステップは、物理量の物理的操作を必要とするものである。通常、これらの量は、記憶、転送、結合、比較、及びその他の方法での操作が可能な、電気又は磁気の信号形式を取るが、必ずしもそうとは限らない。これらの信号は、一般的な用法という理由で、時にはビット、値、要素、記号、文字、項、数、などとして言い表すことが便利であることが証明されている。
【0081】
[0088] しかしながら、これら及び同様の用語はすべて適切な物理量に関連付けられ、単にこれらの量に適用される便利なラベルであることに留意されたい。以下の考察から明らかなように特に記載されていない限り、説明全体を通じて、「送信」、「受信」、「転送」、「復号」、「暗号化」、「圧縮」、「実行」、「確立」、「作成」、「レンダリング」、「処理」などの用語を使用する考察は、コンピュータ・システムのレジスタ及びメモリ内で物理(例えば電子)量として表されるデータを操作し、コンピュータ・システムのメモリ又はレジスタ、或いは他のこうした情報の記憶、伝送、又は表示デバイス内で、物理量として同様に表される他のデータに変換する、コンピュータ・システム又は同様の電子コンピューティング・デバイスのアクション及びプロセスを言い表すものであることを理解されたい。
【0082】
[0089] 説明を簡単にするために、方法は、本明細書では一連の動作として記述及び説明されている。しかしながら、本開示に従った動作は様々な順序で及び/又は同時に、並びに本明細書で提示及び説明されていない他の動作と共に、発生可能である。更に図示されたすべての動作が、開示された主題に従った方法を実装する必要がある訳ではない可能性がある。加えて当業者であれば、代替として方法は、状態図又はイベントを介して一連の相互に関連のある状態として表されることが可能であることを理解されよう。加えて、本明細書で開示された方法は、こうした方法をコンピューティング・デバイスに移送及び転送することを容易にするために製品上に記憶可能であることを理解されたい。本明細書で使用される製品という用語は、任意のコンピュータ可読デバイス又は記憶メディアからアクセス可能なコンピュータ・プログラムを包含することが意図される。
【0083】
[0090] 本開示のある実装は、本明細書で動作を実行するための装置にも関する。本装置は、意図された目的のために構築可能であるか、又は、コンピュータに記憶されたコンピュータ・プログラムによって選択的に活動化又は再構成される汎用コンピュータを備えることができる。こうしたコンピュータ・プログラムは、フロッピィ・ディスク、光ディスク、CD−ROM、及び光磁気ディスクを含む任意のタイプのディスク、読み取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、EPROM、EEPROM、磁気又は光カード、又は、電子命令を記憶するのに好適な任意のタイプのメディアなどであるが、これらに限定されない、コンピュータ可読記憶メディアに記憶することができる。
【0084】
[0091] 本明細書全体を通じて「一実装」又は「実装」という言及は、実装に関連して説明する特定の機能、構造、又は特徴が、少なくとも1つの実装に含まれることを意味する。したがって、本明細書全体を通じて様々な箇所における「一実装において」又は「実装において」という句の出現は、必ずしもすべてが同じ実装に言及するものとは限らない。加えて、「又は」という用語は、排他的「又は」ではなく包含的「又は」を意味することが意図される。更に、「例」又は「例示」という語は、本明細書では例、インスタンス、又は図示として働くことを意味するように使用される。本明細書で「例示」として説明される任意の態様又は設計は、必ずしも他の態様又は設計全体にわたって好ましいか又は有利であるものとして解釈されるものではない。むしろ、「例」又は「例示」という語は、概念を具体的に提示することが意図される。
【0085】
[0092] 上記の説明は例示的であり、限定的ではないことが理解されよう。当業者であれば、上記の説明を読みこれを理解することで多くの他の実装が明らかとなろう。したがって本開示の範囲は、添付の特許請求の範囲、並びにこうした特許請求の範囲が資格を与えられた等価物の全範囲を基準にして、決定されるべきである。
【0086】
[0093] 以下の例は、さらなる実施形態に関係する。
【0087】
[0094] 例1は、1)メディア・アイテム、及びレンダリング・デバイスによるメディア・アイテムのレンダリングに関するデータを記憶するためのメモリと、2)レンダリング・デバイスが認可ファイルを読み取るのに応答して、メモリからのデータの一部を読み取り、そのデータの一部をメディア・セキュリティ・コントローラに提供するための、レンダリング・デバイスに関するメッセージを、レンダリング・デバイスに送信すること、データの一部をレンダリング・デバイスから受信すること、データの一部を変換すること、及び、変換されたデータの一部をレンダリング・デバイスに送信することを、実行するために、メモリに結合された処理デバイスを備えるメディア・セキュリティ・コントローラと、を備える、メディア・セキュリティ・コントローラを使用して、メディア・アイテムを保護するための装置である。
【0088】
[0095] 例2において、例1の主題における変換されたデータの一部は、オプションで、メディア・アイテムをレンダリングするためのレンダリング・デバイスに関するデータを含むことができる。
【0089】
[0096] 例3において、例1の主題におけるメディア・セキュリティ・コントローラは、オプションで、データの一部を復号すること、データの一部を暗号化すること、又はデータの一部を圧縮することのうちの少なくとも1つによって、データの一部を変換することができる。
【0090】
[0097] 例4において、例1の主題におけるメディア・セキュリティ・コントローラは、オプションで、変換されたデータの一部に対応する認可キーを記憶するための第2のメモリを更に備えることができる。
【0091】
[0098] 例5において、例4の主題における処理デバイスは、オプションで、認可キーを使用してデータの一部を更に復号することができる。
【0092】
[0099] 例6において、例1の主題におけるメディア・セキュリティ・コントローラは、オプションで、公開キー・インフラストラクチャ暗号化に基づいてレンダリング・デバイスと第1のハンドシェイクを実行すること、対称キー暗号化に基づいてレンダリング・デバイスと第2のハンドシェイクを実行すること、及び、第1のハンドシェイク及び第2のハンドシェイクに基づいてレンダリング・デバイスとのセキュア・セッションを確立することが、可能である。
【0093】
[00100] 例7において、例1の主題におけるメディア・セキュリティ・コントローラは、オプションで、データの一部を変換するための認可キーを指定する命令セットを受信することであって、命令セットはフォレンジック分析が第三者に対するメディア・セキュリティ・コントローラを識別できるようにする、受信すること、及び、認可キーを使用して変換されたデータの一部を作成することであって、変換されたデータの一部は第三者に対するメディア・セキュリティ・コントローラを識別する、作成することによって、データの一部を変換することができる。
【0094】
[00101] 例8において、例1の主題におけるメディア・セキュリティ・コントローラは、オプションで、メディア・セキュリティ・コントローラの第1の証明改訂リストを、レンダリング・デバイスの第2の証明改訂リストと同期させることが可能であり、第1の証明改訂リスト及び第2の証明改訂リストは権利のセットに対する1つ又は複数の変更を記述する。
【0095】
[00102] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の装置のすべてのオプション機能は、本明細書で説明した方法又はプロセスに関して実装することも可能であり、例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0096】
[00103] 例9は、1)レンダリング・デバイスが認可ファイルを読み取ることに応答して、メディア記憶デバイスのメモリからのデータの一部を読み取り、そのデータの一部をメディア・セキュリティ・コントローラに提供するための、レンダリング・デバイスに関するメッセージを、メディア・セキュリティ・コントローラによってレンダリング・デバイスに送信することであって、メディア記憶デバイスのメモリ内のデータは、レンダリング・デバイスによってレンダリングされることになるメディア・アイテムに関係する、送信すること、2)メディア・セキュリティ・コントローラによって、レンダリング・デバイスからデータの一部を受信すること、3)メディア・セキュリティ・コントローラによってデータの一部を変換すること、及び4)変換されたデータの一部をメディア・セキュリティ・コントローラによってレンダリング・デバイスに送信することを含む、メディア・セキュリティ・コントローラを使用してメディア・アイテムを保護するための方法である。
【0097】
[00104] 例10において、例9の主題における変換されたデータの一部は、オプションで、メディア・アイテムをレンダリングするためのレンダリング・デバイスに関するデータを含むことができる。
【0098】
[00105] 例11において、例9の主題におけるデータの一部の変換は、オプションで、データの一部の復号、データの一部の暗号化、又はデータの一部の圧縮のうちの、少なくとも1つを含むことができる。
【0099】
[00106] 例12において、例9の主題におけるメディア・セキュリティ・コントローラは、オプションで、変換されたデータの一部に対応する認可キーを記憶するための第2のメモリを備えることができる。
【0100】
[00107] 例13において、例12の主題におけるデータの一部の変換は、オプションで、メディア・セキュリティ・コントローラによって認可キーを使用してデータの一部を復号することを含むことができる。
【0101】
[00108] 例14において、例9の主題は、オプションで、公開キー・インフラストラクチャ暗号化に基づいてメディア・セキュリティ・コントローラとレンダリング・デバイスとの間で第1のハンドシェイクを実行すること、対称キー暗号化に基づいてメディア・セキュリティ・コントローラとレンダリング・デバイスとの間で第2のハンドシェイクを実行すること、及び、第1のハンドシェイク及び第2のハンドシェイクに基づいてレンダリング・デバイスとのセキュア・セッションを確立することを、更に含むことができる。
【0102】
[00109] 例15において、例9の主題におけるデータの一部の変換は、オプションで、データの一部を変換するための認可キーを指定する命令セットを、メディア・セキュリティ・コントローラによって受信することであって、命令セットはフォレンジック分析が第三者に対するメディア・セキュリティ・コントローラを識別できるようにする、受信すること、及び、認可キーを使用して変換されたデータの一部をメディア・セキュリティ・コントローラによって作成することであって、変換されたデータの一部は第三者に対するメディア・セキュリティ・コントローラを識別する、作成することを、含むことができる。
【0103】
[00110] 例16において、例9の主題は、オプションで、メディア・セキュリティ・コントローラの第1の証明改訂リストを、レンダリング・デバイスの第2の証明改訂リストと同期させることを更に含むことが可能であり、第1の証明改訂リスト及び第2の証明改訂リストは権利のセットに対する1つ又は複数の変更を記述する。
【0104】
[00111] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、持続性のコンピュータ可読記憶メディアに関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0105】
[00112] 例17〜24は、コンピューティング・システムによって実行された場合、例9〜16の動作をコンピューティング・システムに実行させる命令を含む、持続性のコンピュータ可読記憶メディアである。
【0106】
[00113] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、装置に関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0107】
[00114] 例25〜32は、例9〜16の動作を実行するための手段を備えるメディア・セキュリティ・コントローラを使用してメディア・アイテムを保護するためのシステムである。
【0108】
[00115] 例33は、1)メディア・アイテムをレンダリングするためのデータを記憶するためのメモリと、2)処理デバイスが認可ファイルを読み取るのに応答して、メモリからデータの一部を読み取り、データの一部をメディア・セキュリティ・コントローラに提供するために、メディア・セキュリティ・コントローラからメッセージを受信すること、データの一部をメディア・セキュリティ・コントローラに送信すること、及び変換されたデータの一部をメディア・セキュリティ・コントローラから受信することを実行するために、メモリに結合された処理デバイスと、を備えるメディア・セキュリティ・コントローラを使用して、メディア・アイテムを保護するための装置である。
【0109】
[00116] 例34において、例33の主題における処理デバイスは、オプションで、メディア・セキュリティ・コントローラから受信した変換されたデータの一部に基づいて再生マップを更に作成することが可能であり、再生マップはメディア・アイテムをレンダリングするためのデータを含む。
【0110】
[00117] 例35において、例33の主題における処理デバイスは、オプションで、メディア・セキュリティ・コントローラから受信した変換されたデータの一部に基づいてメディア・アイテムを更にレンダリングすることが可能である。
【0111】
[00118] 例36において、例33の主題における処理デバイスは、オプションで、メディア記憶デバイスと共有するセッション・キーを使用して変換されたデータの一部を更に処理することが可能である。
【0112】
[00119] 例37において、例36の主題における処理デバイスは、オプションで、変換されたデータの一部の復号、変換されたデータの一部の暗号化、又は変換されたデータの一部の圧縮のうちの少なくとも1つによって、変換されたデータの一部を処理することができる。例38において、例33の主題における処理デバイスは、オプションで、公開キー・インフラストラクチャ暗号化に基づいてメディア・セキュリティ・コントローラと第1のハンドシェイクを実行すること、対称キー暗号化に基づいてメディア・セキュリティ・コントローラと第2のハンドシェイクを実行すること、及び、第1のハンドシェイク及び第2のハンドシェイクに基づいてメディア・セキュリティ・コントローラとのセキュア・セッションを確立することが、更に可能である。
【0113】
[00120] 例39において、例33の主題における処理デバイスは、オプションで、レンダリング・デバイスの第1の証明改訂リストを、メディア・セキュリティ・コントローラの第2の証明改訂リストと同期させることが可能であり、第1の証明改訂リスト及び第2の証明改訂リストは権利のセットに対する1つ又は複数の変更を記述する。
【0114】
[00121] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の装置のすべてのオプション機能は、本明細書で説明した方法又はプロセスに関して実装することも可能であり、例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0115】
[00122] 例40は、1)レンダリング・デバイスが認可ファイルを読み取ることに応答して、メディア・セキュリティ・コントローラからレンダリング・デバイスによってメッセージを受信することであって、メッセージは、メディア記憶デバイスのメモリからデータの一部を読み取って、このデータの一部をメディア・セキュリティ・コントローラに提供するようにレンダリング・デバイスに命じ、メディア記憶デバイスのメモリ内のデータはレンダリング・デバイスによってレンダリングされるメディア・アイテムに関する、受信すること、2)レンダリング・デバイスによってデータの一部をメディア・セキュリティ・コントローラに送信すること、及び、3)レンダリング・デバイスによって、変換されたデータの一部をメディア・セキュリティ・コントローラから受信することを含む、メディア・セキュリティ・コントローラを使用してメディア・アイテムを保護するための方法である。
【0116】
[00123] 例41において、例40の主題は、オプションで、メディア・セキュリティ・コントローラから受信した変換されたデータの一部に基づいて再生マップを作成することを更に含むことが可能であり、再生マップはメディア・アイテムをレンダリングするためのデータを含む。
【0117】
[00124] 例42において、例40の主題は、オプションで、メディア・セキュリティ・コントローラから受信した変換されたデータの一部に基づいてメディア・アイテムをレンダリングすることを更に含むことが可能である。
【0118】
[00125] 例43において、例40の主題は、オプションで、メディア記憶デバイスと共有するセッション・キーを使用して変換されたデータの一部を処理することを更に含むことが可能である。
【0119】
[00126] 例44において、例43の主題における変換されたデータの一部の処理は、オプションで、変換されたデータの一部の復号、変換されたデータの一部の暗号化、又は変換されたデータの一部の圧縮のうちの、少なくとも1つを含むことが可能である。
【0120】
[00127] 例45において、例40の主題は、オプションで、公開キー・インフラストラクチャ暗号化に基づいてメディア・セキュリティ・コントローラと第1のハンドシェイクを実行すること、対称キー暗号化に基づいてメディア・セキュリティ・コントローラと第2のハンドシェイクを実行すること、及び、第1のハンドシェイク及び第2のハンドシェイクに基づいてメディア・セキュリティ・コントローラとのセキュア・セッションを確立することを、更に含むことが可能である。
【0121】
[00128] 例46において、例40の主題は、オプションで、レンダリング・デバイスの第1の証明改訂リストを、メディア・セキュリティ・コントローラの第2の証明改訂リストと同期させることを更に含むことが可能であり、第1の証明改訂リスト及び第2の証明改訂リストは権利のセットに対する1つ又は複数の変更を記述する。
【0122】
[00129] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、持続性のコンピュータ可読記憶メディアに関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0123】
[00130] 例47〜53は、コンピューティング・システムによって実行された場合、例40〜46の動作をコンピューティング・システムに実行させる命令を含む、持続性のコンピュータ可読記憶メディアである。
【0124】
[00131] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、装置に関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0125】
[00132] 例54〜60は、例40〜46の動作を実行するための手段を備えるメディア・セキュリティ・コントローラを使用してメディア・アイテムを保護するためのシステムである。
【0126】
[00133] 例61は、1)証明を記憶するためのメモリと、2)証明内の権利のセットを識別し、権利のセットへの変更を識別し、権利のセットへの変更を記述する証明改訂リストを作成し、証明改訂リストを配布するために、メモリに結合された処理デバイスとを備える、証明内に定義された権利を改定するための装置である。
【0127】
[00134] 例62において、例61の主題における変更は、オプションで、メディア・アイテムをレンダリングするための品質レベルに関係することができる。
【0128】
[00135] 例63において、例61の主題における権利のセットは、オプションで、メディア・セキュリティ・コントローラ又はレンダリング・デバイスのうちの少なくとも1つに関連付けられた1つ又は複数の権利を記述することができる。
【0129】
[00136] 例64において、例61の主題における証明改訂リストは、オプションで、バージョン識別子を含むことが可能である。
【0130】
[00137] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の装置のすべてのオプション機能は、本明細書で説明した方法又はプロセスに関して実装することも可能であり、例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0131】
[00138] 例65は、1)証明内の権利のセットを識別すること、2)権利のセットへの変更を識別すること、3)コンピュータ・システムによって、権利のセットに対する変更を記述する証明改訂リストを作成すること、及び、4)証明改訂リストを配布することを含む、証明内に定義された権利を改定するための方法である。
【0132】
[00139] 例66において、例65の主題における変更は、オプションで、メディア・アイテムをレンダリングするための品質レベルに関係することができる。
【0133】
[00140] 例67において、例65の主題における権利のセットは、オプションで、メディア・セキュリティ・コントローラ又はレンダリング・デバイスのうちの少なくとも1つに関連付けられた1つ又は複数の権利を記述することができる。
【0134】
[00141] 例68において、例65の主題における証明改訂リストは、オプションで、バージョン識別子を含むことが可能である。
【0135】
[00142] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、持続性のコンピュータ可読記憶メディアに関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0136】
[00143] 例69〜72は、コンピューティング・システムによって実行された場合、例65〜68の動作をコンピューティング・システムに実行させる命令を含む、持続性のコンピュータ可読記憶メディアである。
【0137】
[00144] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、装置に関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0138】
[00145] 例73〜76は、例65〜68の動作を実行するための手段を備える、証明内に定義された権利を改定するためのシステムである。
【0139】
[00146] 例77は、1)証明を記憶するためのメモリと、2)メディア・アイテムをレンダリングすることに関係するアクションを実行するためのデバイスを識別し、デバイスに割り当てられた権利のセットを記述する証明を識別し、証明改訂リスト内の権利のセットへの変更を識別し、証明改訂リスト内の変更に基づいてメディア・アイテムをレンダリングするためのアクションをデバイスが実行できるようにするために、メモリに結合された処理デバイスとを備える、証明改訂リストを使用してデバイスの権利を改定するための装置である。
【0140】
[00147] 例78において、例77の主題における処理デバイスは、オプションで、証明改訂リストが古いかどうかを決定し、証明改訂リストが古い旨の決定に基づいて現行の証明改訂リストを受信することが、更に可能である。
【0141】
[00148] 例79において、例77の主題における変更は、オプションで、メディア・アイテムをレンダリングするための品質レベルに関係することができる。
【0142】
[00149] 例80において、例77の主題における権利のセットは、オプションで、メディア・セキュリティ・コントローラ又はレンダリング・デバイスのうちの少なくとも1つに割り当てられた1つ又は複数の権利を記述することができる。
【0143】
[00150] 例81において、例77の主題における証明改訂リストは、オプションで、バージョン識別子を含むことが可能である。
【0144】
[00151] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の装置のすべてのオプション機能は、本明細書で説明した方法又はプロセスに関して実装することも可能であり、例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0145】
[00152] 例82は、1)メディア・アイテムをレンダリングすることに関係するアクションを実行するためのデバイスを識別すること、2)デバイスに割り当てられた権利のセットを記述する証明を識別すること、3)証明改訂リスト内の権利のセットへの変更を識別すること、及び4)証明改訂リスト内の変更に基づいてメディア・アイテムをレンダリングするためのアクションをデバイスが実行できるようにすることを含む、証明改訂リストを使用してデバイスの権利を改定するための方法である。
【0146】
[00153] 例83において、例82の主題は、オプションで、証明改訂リストが古いかどうかを決定すること、及び、証明改訂リストが古い旨の決定に基づいて現行の証明改訂リストを受信することを、更に含むことが可能である。
【0147】
[00154] 例84において、例82の主題における変更は、オプションで、メディア・アイテムをレンダリングするための品質レベルに関係することができる。
【0148】
[00155] 例85において、例82の主題における権利のセットは、オプションで、メディア・セキュリティ・コントローラ又はレンダリング・デバイスのうちの少なくとも1つに割り当てられた1つ又は複数の権利を記述することができる。
【0149】
[00156] 例86において、例82の主題における証明改訂リストは、オプションで、バージョン識別子を含むことが可能である。
【0150】
[00157] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、持続性のコンピュータ可読記憶メディアに関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0151】
[00158] 例87〜91は、コンピューティング・システムによって実行された場合、例82〜86の動作をコンピューティング・システムに実行させる命令を含む、持続性のコンピュータ可読記憶メディアである。
【0152】
[00159] 様々な実施形態は、上記の動作機能の異なる組み合わせを有することができる。例えば、上記の方法のすべてのオプション機能は、装置に関して実装することも可能である。例における仕様は1つ又は複数の実施形態のいずれでも使用可能である。
【0153】
[00160] 例92〜96は、例82〜86の動作を実行するための手段を備える証明改訂リストを使用してデバイスの権利を改定するためのシステムである。
【0154】
[00161] 上記の説明では、多数の細部が示されている。しかしながら本開示の特典を有する当業者であれば、実施形態がこれらの特定の細部無しでも実施可能であることが明らかとなろう。いくつかのインスタンスでは、説明を曖昧にするのを避けるために、周知の構成及びデバイスは詳細にではなくブロック図形式で示されている。