説明

コンテンツライセンスのポータブル記憶装置へのバインド

コンテンツライセンスをポータブル記憶装置にバインドするためのシステム、方法、および/または技法(「ツール」)について記載する。コンテンツライセンスをポータブル記憶装置(「ストア」)にバインドすることに関連し、ホストは、ナンスを生成するステップと、そのナンスをストアに送信するステップと、そのナンスを使用して生成されるセッションキーをストアから受信するステップとを含む認証手順を実行することができる。ストアは、ホストからナンスを受信するステップと、そのナンスに基づいてランダムセッションキーを生成するステップと、そのセッションキーをホストに送信するステップとを含む認証手順を実行することができる。

【発明の詳細な説明】
【背景技術】
【0001】
リムーバブルストレージユニット上で様々なタイプのコンテンツがますます使用可能になりつつある。これらのストレージユニットは、様々なデバイスに容易に挿入することができて、そのデバイスがストレージ中に含まれるコンテンツにアクセスできるようにする。
【0002】
一部の例では、このコンテンツは、デジタル著作権管理(DRM)システムが管理するライセンスの適用対象であり得る。そのような例では、コンテンツは所与のストレージのインスタンスにバインドされ、またはライセンスされることがあるが、そのコンテンツは様々な異なるデバイスからアクセスすることができる。これらの環境では、ライセンスポリシーや制限の遵守を管理することはDRMシステムへの課題を提示することがある。
【発明の概要】
【課題を解決するための手段】
【0003】
コンテンツライセンスをポータブル記憶装置にバインドするためのシステム、方法、および/または技法(「ツール」)について記載する。コンテンツライセンスをポータブル記憶装置(「ストア」)にバインドすることに関連し、コンテンツと対話しまたはコンテンツに対する操作を実行するためのデバイス(「ホスト」)は、ナンス(nonce)を生成するステップと、そのナンスをストアに送信するステップと、そのナンスを使用して生成されたセッションキーをストアから受信するステップとを含む認証手順を実行することができる。ストアは、ホストからナンスを受信するステップと、そのナンスに基づいてランダムセッションキーを生成するステップと、そのセッションキーをホストに送信するステップとを含む認証手順を実行するとができる。
【0004】
この概要は、以下の詳細な説明でさらに説明される概念の選択されたものを簡単な形で紹介するために提供される。この概要は、請求項に記載の主題の重要な特徴または本質的な特徴を特定することを意図しておらず、また請求項に記載の主題の範囲を決定する際の補助として使用されることも意図していない。例えば「ツール」という用語は、この文書の上記のおよび全体の文脈によって認められるような1つまたは複数のシステム、1つまたは複数の方法、コンピューター可読命令、および/または1つもしくは複数の技法を指すことができる。
【0005】
コンテンツライセンスをポータブル記憶装置にバインドすることに関連するツールを、以下の図面に関連して説明する。本開示および諸図面全体にわたって同じ番号を使用して同様の構成要素および機能を参照する。参照番号の1桁目はその参照番号が初めて出た図面を示す。
【図面の簡単な説明】
【0006】
【図1】関係するデータの流れとともに、コンテンツライセンスをポータブル記憶装置にバインドするための運用環境を示すブロック図である。
【図2】図1に示すライセンスサーバー、ストア、およびホストの追加の態様を示すブロック図である。
【図3】ホストおよびストアに対して証明書および公開キー/秘密キーを発行するための基盤を示すブロック図である。
【図4】ホストおよびストアが互いに認証することができる手順を示す流れ図である。
【図5】ホストとストアとの間でセッションキーを確立するためのプロセスを示す流れ図である。
【図6】ストア上にライセンス記憶域を実装するためのデータ構造を示すブロック図である。
【図7】ユーザーがアクセスするためにホスト上でコンテンツを選択するときに実行され得る手順を示す流れ図であって、ホストがユーザーからの要求を選択されたコンテンツに適用されるライセンスポリシーと突き合わせて評価する、手順を示す流れ図である。
【図8】図7に示すプロセスの流れの追加の態様を示す流れ図である。
【図9】ユーザーがアクセスするためにホスト上でコンテンツを選択するときに実行され得る手順を示す流れ図であって、ストアがユーザーからの要求を選択されたコンテンツに適用されるライセンスポリシーと突き合わせて評価する、手順を示す流れ図である。
【図10】図9に示すプロセスの流れの追加の態様を示す流れ図である。
【図11】トークン付与サービスを含む運用環境を示すブロック図である。
【図12】ストアが一時ライセンスまたは一時証明書をホストに発行できる運用環境を示すブロック図である。
【発明を実施するための形態】
【0007】
概説
以下の文書は、多くの技法およびプロセスを実行しかつ/またはサポートすることができるツールについて記載する。以下の解説は、コンテンツライセンスをポータブル記憶装置にバインドするためにこのツールが提供する例示的方法を記載する。この解説は、このツールが実行することができる他の技法および/またはプロセスについても記載する。
【0008】
図1は、コンテンツライセンスをポータブル記憶装置にバインドするための運用環境100を示す。運用環境100は、1人または複数人のユーザー102がコンテンツを入手し、後で閲覧しアクセスするためにそれを1つまたは複数の記憶装置に記憶できるようにすることができる。図1は、限定するためではなく便宜上、104でコンテンツを全体として示し、2つのコンテンツのインスタンスを104aおよび104nで表す。図1は、コンテンツまたはメディアソース106からコンテンツ104aを得ることができ、そのコンテンツを記憶装置108中に読み込むことができる1人のユーザー102も示す。図1は、2台の記憶装置108を108aおよび108nで示すが、前と同じく限定するためではなく例示目的にすぎない。図1は、コンテンツ104aが記憶装置108a(本明細書では便宜上「ストア」と略称する)に記憶され、コンテンツ104nが記憶装置108nに記憶されることを示す。
【0009】
概して、運用環境100は、任意の数のユーザー102が、任意の数のコンテンツソース106から、任意の数のコンテンツのインスタンス104を得られるようにする。さらにこの運用環境は、任意の数のストア108を含むことができる。図1は、限定するためではなく、専ら記載を簡略化するためにこのシナリオを図のように示す。
【0010】
コンテンツ104は、歌曲、音楽、本や雑誌の録音された朗読、等、などの音声コンポーネントを含むことができる。コンテンツ104は、映画、ビデオクリップ、等、などの音声および/または映像コンポーネントを含むこともできる。必ずしも全てではないが一部の例では、映像コンポーネントは、対応する音声コンポーネントと組み合わされてマルチメディアコンテンツを提供することができる。コンテンツ104は、静止画、ゲーム、着信音、無声映像、テキスト、または他の任意の形式のデジタル化された情報を単独で、または音声および/もしくは映像コンポーネントと組み合わせて含むこともできる。
【0011】
コンテンツソース106は、ユーザー102がコンテンツ104をダウンロードできるようにする、インターネットなどの広域通信ネットワークを介してアクセス可能なサービスを表すことができる。以下の例で可能な実施例を限定することなく、コンテンツソース106は、ユーザーがコンテンツを無料で(例えば広告を受け取るのと引き換えに)ダウンロードできるようにすることができ、またはユーザーがコンテンツを有料でダウンロードできるようにすることができる。さらにユーザーは、加入してコンテンツを受信することもできる。
【0012】
記憶装置すなわちストア108について見ると、このようなデバイスの例には、フラッシュメモリー110、SD(セキュアデジタル)カード112、SIM(加入者識別モジュール)カード114、ハードドライブ、USB(ユニバーサルシリアルバス)バスを介して通信するドングル、等、などのポータブルメモリーデバイスを含むことができるが、それだけに限定されることはない。
【0013】
運用環境100は、116で全体として示す1つまたは複数のライセンスサーバーまたはライセンスサービスも含むことができる。概してこのライセンスサーバーは、ユーザー102が、コンテンツ104について再生し、別の方法で対話し、または操作を実行するために適当な任意のライセンスを得られるようにする。このライセンスは、特定の条件に基づいてコンテンツと対話しもしくはコンテンツに対する操作を実行することを許可することができ、またはコンテンツと対話しもしくはコンテンツに対する操作を実行することに適用されるポリシーや制限を指定することができる。そのようなポリシーや制限の例には、カウント、時間制限、等を含むことができるが、それだけに限定されることはない。
【0014】
場合によっては、ライセンスサーバー116は、コンテンツのライセンスだけでなく、コンテンツ自体も提供することができる。そのため図1では、サーバー116をライセンス/コンテンツサーバーとして表記する。これらの例では、1つのエンティティが、ライセンスサーバー116およびコンテンツソース106の両方の機能を果たすことができる。他の例では、ユーザー102は、コンテンツソース106として機能する1つのエンティティからコンテンツをダウンロードすることができ、そのコンテンツを再生するための適当なライセンスを取得するために別個のライセンスサーバーと対話することができる。
【0015】
ユーザー102またはそのユーザーに代わって行動する任意のエンティティがそのコンテンツを再生するのに適当なライセンスを得ると、この運用環境は、そのライセンスをストア108にバインドすることができる。本明細書で使用する場合、ライセンスと「バインドする」という用語は、特定のデバイス(例えばストア108)に関係する特定のコンテンツのライセンスを、暗号を使用して関連付けることを指し、それによりそのデバイスは、そのライセンスの条件に基づいてそのコンテンツと対話しまたはそのコンテンツに対する操作を実行することが許可される。図1に示すように、デバイス108aに暗号を使用してバインドされたコンテンツ104aのライセンスを、全体として矢印118aで表し、さらにデバイス108nに暗号を使用してバインドされたコンテンツ104nのライセンスを、全体として矢印118nで表す。
【0016】
運用環境100は、コンテンツ104について再生し、閲覧し、他の方法で対話し、または操作を実行するための1つまたは複数のホストデバイス120(「ホスト」)を含むことができる。図1は、限定するためではなく、専ら例示目的で2つのホスト120aおよび120nを示す。図1は、コンテンツ122aおよび122nが記憶装置108n上に読み込まれ、2つの異なるホスト120aおよび120nによってアクセスされる一例を示す。
【0017】
ホスト120についてより詳しく見ると、このホストには、携帯電話、スマートフォン、ワイヤレスPDA(携帯情報端末)、等に相当し得るモバイルワイヤレスデバイス124などのデバイスが含まれ得る。ホスト120には、ポータブルメディアプレーヤー126が含まれてもよい。デバイス124または126のいずれも音声、映像、または他のコンテンツ122を再生するのに適していてよい。
【0018】
上記に説明したように、特定のコンテンツの1つまたは複数のライセンスは、矢印118によって表されるように個々の記憶装置108に暗号を使用してバインドされる。ライセンスをストアにバインドすることは、ライセンスを特定のホスト102にバインドすることとは対照的である。コンテンツのライセンスが暗号を使用してストア108にバインドされるので、このライセンスはストア108とともに「移動」する。これらのライセンスは、暗号を使用してライセンスがバインドされる対象のストアと通信する任意のホストが、有効なホスト証明書を有し、基準に適合したホスト機能の実装を提供することを条件に、コンテンツを再生できるようにする。
【0019】
図1は、ライセンス118に関するいくつかのシナリオを示す。一部のシナリオではライセンスがまずホストに移動し、次いでストアに移動することができる。図1は、ブロック116からブロック120aに、次いでブロック108aに続く破線118aによって表されるように、このシナリオの一例を示す。他のシナリオでは、ライセンスがまずストアに移動し、次いでホストに移動することができる。図1は、ブロック116からブロック108nに、次いでブロック120nに続く破線118nによって表されるように、このシナリオの一例を示す。
【0020】
このライセンスシナリオの一例として、図1は、破線118nによって表されるように、ストア108nに暗号を使用してバインドされるコンテンツ104nのライセンス118nを示す。ユーザー102と同じまたは異なる者とすることができるユーザー128は、例えばストア108nをホスト120aに挿入し、ホスト120aに適当なコマンドを発行することにより、このライセンス118nの条件に基づいてコンテンツ104nを再生することができる。図1は、ホスト120a内のコンテンツ104nを再生することを122aで全体として表す。しかし、その後ユーザー128がホスト120aからストア108nを取り外し、ストア108nを別のホスト120nに挿入する場合、コンテンツ104nのライセンスはストア108nとともにその別のホスト120nに移動する。最初のホスト120aは、コンテンツ104nを再生するための残余権を保持しない。次いでユーザー128は、この別のホスト120nに適当なコマンドを発行することにより、この別のホスト上でコンテンツ104nを再生することができる。このシナリオは、任意の数のホスト120に対して任意の回数繰り返すことができる。
【0021】
図1に示すような運用環境100を説明したので、次に解説を、今度は図2で示すライセンスサーバー116、ストア108、およびホスト120に関するさらなる詳細の説明に向ける。
【0022】
図2は、図1に示すようなライセンスサーバー116、ストア108、およびホスト120の追加の態様200を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図2に繰り越され、同じ参照符号で示される。
【0023】
ライセンスサーバー116についてまず見ると、ライセンスサーバー116は、202で示す1個または複数個のプロセッサーを含むコンピューターベースシステムとすることができる。これらのプロセッサーは、所与のタイプまたはアーキテクチャーを有するとして分類されまたは特徴付けられてもよいが、同じタイプまたはアーキテクチャーを有しても有さなくてもよい。
【0024】
ライセンスサーバー116は、204で全体として示す1つまたは複数の機械可読記憶媒体またはコンピューター可読記憶媒体のインスタンスを含むこともできる。コンピューター可読媒体204は、プロセッサー202によって実行される場合に、ライセンスサーバーによって実行されるものとして本明細書に記載されるツールまたは関連機能のいずれかを実行する命令を含むことができる。このプロセッサーは、このコンピューター可読媒体上に埋め込まれまたはコード化された命令にアクセスしかつ/または実行することができ、かつ/またはこのコンピューター可読媒体中に記憶されたデータにアクセスすることができる。
【0025】
コンピューター可読媒体204に関するさらなる詳細について見ると、コンピューター可読媒体204は、1つまたは複数のDRM(デジタル著作権管理)モジュール206のインスタンスを含むことができる。このDRMモジュール206は、例えば、プロセッサーに読み込まれ、実行される場合にライセンスサーバーにデジタルコンテンツ(例えば図1のコンテンツ104)に適用されるライセンスを管理する1つまたは複数のソフトウェアモジュールを含むことができる。
【0026】
別の実施例では、このライセンスサーバーは、直接的ライセンス取得または間接的ライセンス取得(それぞれDLAおよびILA)シナリオを可能にすることができる。直接的ライセンスシナリオという用語は、デバイスがライセンスサーバーから直接ライセンスを得る場合を指す。間接的ライセンスシナリオという用語は、デバイスが、パーソナルコンピューターや他のプロキシなど、1台または複数台の中間デバイスを介して通信することにより、ライセンスサーバーから間接的にライセンスを得る場合を指す。
【0027】
さらに、このDRMモジュールは、ユーザー(例えば図1の102)に与えられるライセンスに対する任意の権利および制限を解釈し、実施することができる。これらの制限は、ユーザーが特定のコンテンツを何回再生できるのかを指定することができ、コンテンツの再生に適用される任意の時間制限、等を指定することができる。概してこのDRMモジュールは、コンテンツの特定のインスタンスと対話しまたは特定のインスタンスに対する操作を実行することに適用されるポリシーを確立(establish)することができる。
【0028】
次に記憶装置すなわちストア108について見ると、ストア108は、プロセッサー202と同じタイプまたは同じアーキテクチャーであってもなくてもよいプロセッサー208を含むことができる。ストア108は、プロセッサー208と通信するコンピューター可読媒体210も含むことができる。コンピューター可読媒体210は、プロセッサー208によって実行される場合に、ストア108によって実行されるものとして本明細書に記載されるツールまたは関連機能のいずれかを実行する命令を含むことができる。プロセッサー208は、コンピューター可読媒体210上に埋め込まれまたはコード化された命令にアクセスし、実行することができ、コンピューター可読媒体210中に記憶されたデータにアクセスすることができる。
【0029】
コンピューター可読媒体210は、ストア上に読み込まれる任意のコンテンツ(例えば図1のコンテンツ104)用の記憶域を含むことができる。図2は、これらのコンテンツ記憶域を全体として212で示す。コンテンツ記憶域212は、ストアがどれ位の量のコンテンツを含むのかにもよるが、任意の数の別個のコンテンツのインスタンスを記憶するための領域を含むことができる。
【0030】
コンピューター可読媒体210は、ストア中に読み込まれるコンテンツに関連するライセンス用の記憶域も含むことができる。図2は、これらのライセンス記憶域を213で示す。ライセンス記憶域213は、どれ位の量のコンテンツをストアが含み、このコンテンツのうちのどれ位の量がライセンスの適用対象であるのかにもよるが、任意の数の別個のコンテンツライセンスのインスタンスを記憶するための領域を含むことができる。
【0031】
コンピューター可読媒体210は、ライセンスサーバー116によって提供されるDRMモジュール206と協働しかつ/または通信する1つまたは複数のソフトウェアモジュールを含むことができる、DRM構成要素214を含むことができる。このDRM構成要素214および/またはDRMモジュール206は、コンテンツ記憶212中に記憶されるコンテンツに適用される任意のライセンスを管理することができる。より具体的には、このDRM構成要素は、コンテンツに適用されるライセンスの遵守を追跡するのに適した任意の情報を記憶することができる。例えば、このDRM構成要素は、コンテンツが何回アクセスされたか、コンテンツがいつアクセスされたか、等を追跡することができる。
【0032】
コンテンツ/ライセンス記憶域212について再び簡潔に述べると、一部の実施例では、このコンテンツ/ライセンス記憶域のうちライセンスを記憶する部分は、ライセンスを管理することに関係する任意の情報への不正アクセスを妨げる(あるいは防ぐ)ために保護されかつ/または隠されることが可能である。
【0033】
コンピューター可読媒体210は、図2に暗号モジュール216として示す暗号モジュールを含むことができる。暗号モジュール216には、プロセッサー208が通信する別個のハードウェアモジュールが含まれ得る。しかし図を簡略化するために、暗号モジュール216をコンピューター可読媒体210中にあるソフトウェアモジュールとして示す。この暗号モジュールは、プロセッサー208中に読み込むことができ、実行してストアがホスト120とのセキュリティーで保護されたセッションを確立し、維持し、切断できるようにする1つまたは複数のソフトウェアモジュールを含むことができる。これらのセキュリティーで保護されたセッションに関するさらなる詳細を以下に提供する。さらに、暗号モジュール216は、これらのセキュリティーで保護されたセッションの一環として、または他の任意の暗号操作の一環としてストアに割り当てられる任意の公開キー/秘密キーを保つことができる。暗号モジュール216は、暗号操作を実行するための暗号アルゴリズムの実装を含むこともできる。
【0034】
次にホスト120について見ると、ホスト120は、プロセッサー202および208と同じタイプおよびアーキテクチャーであってもなくてもよいプロセッサー218を含むことができる。プロセッサー218は、例えばユーザーが記憶装置108を挿入することができるスロットやコネクターを含み得るメディアインターフェイス220と通信しまたは協働することができる。
【0035】
ホスト120は、DRM構成要素224を含むことができるコンピューター可読媒体222も含むことができる。一部の例では、このDRM構成要素224は、ライセンスサーバー116上のDRMモジュール206と、またはストア108の1つまたは複数上のDRM構成要素214と通信しもしくは協働することができる。他の例では、DRM構成要素224は、DRMモジュール206およびDRM構成要素214の両方と通信しまたは協働することができる。
【0036】
コンピューター可読媒体222は、ホストに代わって暗号操作を実行することができる暗号モジュール225を含むことができる。暗号モジュール225は、例えばストア上の暗号モジュール216と間接的に協働することができる。動作状況面での相違は別にして、暗号モジュール216についての上記の説明は、暗号モジュール225に等しく適用できる。例えば、暗号モジュール225は、プロセッサー218が通信し得る別個のハードウェアモジュールとして実装することができる。
【0037】
ホスト120は、ストア108がメディアインターフェイス220に挿入されたという指示を受信することができる。これらの指示には、電気信号、ソフトウェアおよび/またはハードウェア割り込み、ソフトウェア報告イベント、等が含まれ得る。この指示に応答して、DRM構成要素224が、ライセンスの適用対象である任意のコンテンツを求めてストア108を検索することができ、そのコンテンツに適用される任意のライセンスを特定することができ、そのライセンスをそのストアにバインドすることができる。さらにこのDRM構成要素は、例えば再生カウント、時間制限、等など、コンテンツの再生に適用される任意のポリシーをホスト120が実施できるようにする。
【0038】
場合によっては、例えばホストが提供するスロットにユーザーがストアを挿入する場合など、ホスト120はストア108に直接アクセスすることができる。他の例では、このホストは、他のデバイスを介して間接的にストアにアクセスすることができる。例えば、図2に示すようなホスト120は、ユーザーがストアを挿入する別のホストへの無線リンクを含むことができる。
【0039】
コンピューター可読媒体222は、メディアプレーヤーアプリケーション226を含むことができる。様々な可能な実施例において、このメディアプレーヤーアプリケーションは、ユーザー128に向けてコンテンツ(例えばコンテンツ122)を再生し、または他の形でユーザー128がコンテンツにアクセスできるようにするための1つまたは複数のソフトウェアモジュールを含む。例えば、このメディアプレーヤーアプリケーションには、特定の実施例に含まれるコンテンツの性質やタイプに応じて、映画または映像閲覧アプリケーション、音声再生アプリケーション、等が含まれ得る。
【0040】
図を明瞭にするために図2には示していないが、コンピューター可読媒体222は、ホスト上で再生されまたはアクセスされ得る様々なタイプのコンテンツを復号するための1つまたは複数のコンテンツデコーダーモジュールを含むことができる。コンピューター可読媒体222は、ホストとサーバー116との間の通信を助ける1つまたは複数の伝送モジュールも含むことができる。
【0041】
コンピューター可読媒体222は、DRM構成要素224がメディアプレーヤーアプリケーション226によるアクセスのためにコンテンツを読み込む、コンテンツ記憶域228を含むことができる。例えばこのコンテンツ記憶域228は、メディアプレーヤーアプリケーション用にコンテンツを記憶するためのバッファまたは他の適したデータ構造を含むことができる。
【0042】
コンピューター可読媒体222は、DRM構成要素がライセンス情報を読み込むライセンス記憶域230も含むことができる。例えば、DRM構成要素が所与のコンテンツのインスタンスを、ストアからコンテンツ記憶域228中に読み込んだと仮定し、そのコンテンツがライセンスポリシーの適用対象であると仮定した場合、このDRM構成要素は、これらのポリシーを実施しまたは管理することに関係する任意の情報をライセンス記憶域230中に読み込むことができる。
【0043】
以下にさらに詳述するが、DRM構成要素224は、コンテンツ記憶域228中に読み込まれた任意のコンテンツに適用される任意のライセンスポリシーを実施することができる。ユーザー(例えば図1のユーザー128)がメディアインターフェイス220にストア108を挿入すると、そのユーザーはそのストアに含まれる任意のコンテンツを閲覧することができ、再生しまたはアクセスするコンテンツを選択することができる。次いでこのDRM構成要素は、選択されたコンテンツがライセンスポリシーの適用対象であるかどうかを判定することができ、そのライセンスポリシーが何なのかをさらに特定することができる。このDRM構成要素はさらに、これらのポリシーを表す情報をライセンス記憶域230中に読み込むことができ、選択されたコンテンツをコンテンツ記憶域228中に読み込むことができる。該当する任意のライセンス制限またはライセンスポリシーの遵守を仮定して、このDRM構成要素は、メディアプレーヤーアプリケーションがユーザー220に向けて選択されたコンテンツに対する要求操作を実行する許可を出すことができる。不遵守のどんな場合にも、このDRM構成要素は、不遵守を忠告し、ことによると適当なライセンスを得ることにより遵守を実現する方法を提案する適当なエラーメッセージをユーザーに提示することができる。
【0044】
前述の機能を果たすために、DRM構成要素224は、一部の例ではストア上のDRM構成要素214と通信することができる。他の例では、DRM構成要素224は、ライセンスサーバー116上のDRMモジュール206と通信することができる。場合によっては、DRM構成要素224は、DRMモジュール206およびDRM構成要素214の両方と通信することができる。
【0045】
図2のライセンスサーバー116、ストア108、およびホスト120の追加の態様を説明したので、次に解説を、今度は図3で示すホストおよびストアに対して発行されるものとしての証明書および公開キー/秘密キーの説明に向ける。
【0046】
図3は、ホスト(例えばホスト120)およびストア(例えばストア108)に対して証明書および公開キー/秘密キーを発行するための基盤300を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図3に繰り越され、同じ参照符号で示される。
【0047】
図3は、破線306によって示されるように証明書304をホストに発行する証明機関302を示す。図を簡略化するために図3では1つの証明機関302を示すが、証明機関302は、証明機関の系統または他のより大きな群のうちにあってよい。同様の線に沿って、証明書304は証明機関302によって発行される単一の証明書とすることができ、または証明機関系統内のパスに対応する証明書の集合を表すこともできる。
【0048】
一部の例では、ホスト証明書304は、少なくともホスト秘密キー308とホスト公開キー310とを含むことができる。他の例では、このホスト証明書は少なくともホスト公開キー310を含むことができ、ホスト秘密キーは別途送られる。ホストは、ホスト公開キーに対応するホスト秘密キーにアクセスすることができる。さらに、証明機関302は、証明機関302または証明機関系統内の任意の証明機関によって前に発行された任意の証明書の現在の状態を列挙する証明書失効リスト312を保持することもできる。より具体的には、証明書失効リスト312は、1つまたは複数の所与の証明書が失効しており、または他の形で無効になったかどうかを示すことができる。
【0049】
図3は、破線318によって表されるようにストア108に証明書316を発行することができる証明機関314も示す。一部の例では、ストア証明書316は、少なくともストア秘密キー320とストア公開キー322とを含むことができる。他の例では、このホスト証明書は少なくともストア公開キー322を含むことができ、ストア秘密キーは別途送られる。このストアは、ストア公開キーに対応するストア秘密キーにアクセスすることができる。さらに、証明機関314は、証明機関314または証明機関系統内の任意の証明機関によって前に発行された任意の証明書を列挙する証明書失効リスト324を保持することもできる。より具体的には、証明書失効リスト324は、1つまたは複数の所与の証明書が失効し、または他の形で無効になったかどうかを示すことができる。
【0050】
ストア108上に含まれるコンテンツに適用される任意のライセンスは、ストア108に発行される秘密キーまたは秘密キー320の集合に暗号を使用してバインドされまたは関連付けられ得る。このようにして、図3に示す証明書基盤300は、ライセンスをホスト120ではなくストア108にバインドすることができる。より具体的には、このライセンスが公開キー322のユーザーによって秘密キー320に暗号を使用してバインドされる。図1に示す矢印118が、このライセンスバインドを表すことを思い起こされたい。
【0051】
図3は、本明細書の記載の可能な実施例を限定するためではなく、専ら図および説明を簡略化するために別個の証明機関302および314を示す。単一の証明機関が、所与のストア108および所与のホスト120の両方に証明書を発行できることにも触れておく。さらに、ライセンスサーバー(例えば図1の116)によって提供されるDRMモジュール206が証明機関として働くこともでき、ホスト120および/またはストア108に証明書を発行することができる。
【0052】
図3のホスト120およびストア108に証明書および公開キー/秘密キーを発行するための基盤300を説明したので、次に解説を、今度は図4で示す、ホストがストアに対して認証する方法の説明に向ける。
【0053】
図4は、ホスト(例えばホスト120)およびストア(例えばストア108)が互いに認証することができる手順400を示す。手順400を完了することは、ホストがストア上に含まれるコンテンツを再生できるようにすることができ、この手順は、ホストとストアとの間にセキュリティーセッションを確立する。手順400は、ユーザー(例えばユーザー128)がホストにストアを挿入するときに実行され得る。
【0054】
可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図4に繰り越され、同じ参照符号で示される。さらに、限定するためではなく記載を簡略化するために、図4では様々なプロセスを列形式に配置して、ホストおよびストアがそれぞれ実行することができる手順400の各部分を示す。
【0055】
ブロック402は、ストア証明書に対するクエリーを送信することを表す。図4は、ストア証明書に対するクエリーを406で示す。図4に示す例では、クエリー406はホスト120からストア108に進むことができる。
【0056】
ブロック406は、ストア証明書に対するクエリー404を受信することを表す。図4に示す例ではストアがクエリー404を受信することができる。
【0057】
ブロック408は、ストア証明書を送信することを表す。図4に示す例では、ブロック408はクエリーに応答してストア証明書を送信することを含み得る。さらに、ブロック408は、線410によって示されるようにホスト証明書(例えば304)が有効である場合にのみ行ってもよい。ホスト証明書が有効かどうかを判定するためのプロセスを以下にさらに説明する。
【0058】
ホスト証明書が有効であると仮定して、ストアはクエリーに応答して自らの証明書のコピーを送信することができる。限定するためではなく便宜上、図4は、図3からストア証明書316を繰り越す。ホストに送られるときにこのストア証明書316は、ストア公開キー(例えば図3の322)を含むことができる。
【0059】
ホストにて、ブロック410はストア証明書を受信することを表す。図4に示す実施例では、ホスト120がストア証明書316を受信することができる。
【0060】
ブロック412は、このストア証明書の有効性を判定するために、このストア証明書をCRLと突き合わせてチェックすることを表す。例えば、ストア証明書が失効し、または他の形で無効化されている可能性がある。図4に示す実施例では、ホスト120がストア証明書316を、自らが保持するCRLと突き合わせて、そのストア証明書を発行した証明機関が保持するCRLと突き合わせて、または他の任意のエンティティが保持するCRLと突き合わせてチェックすることができる。
【0061】
ストア証明書が有効である場合、ホスト120は、破線414によって全体として表されるように図4に示す手順400の残りの部分に関与することができる。しかし、失効または他の何らかの理由でストア証明書が無効である場合、ブロック412で、ホスト120は、手順400へのこれ以上の関与を打ち切ることができる。
【0062】
ブロック416は、ストア(例えば108)にホスト証明書(例えば304)を送信することを表す。本明細書に記載のツールは、ユーザー(例えば128)がホストにストアを挿入することに応答してブロック416を実行することができる。ホスト証明書の例を図3の304で示し、参照しやすいようにこのホスト証明書304を図4に繰り越す。図3で先に述べたように、このホスト証明書はホスト公開キー310を含むことができる。ホストからストアに送信されるときに、このホスト証明書は、図4に示すようにホスト公開キー310を含むことができる。
【0063】
ブロック418は、このホスト証明書を受信することを表す。図4に示す実施例では、ストア108(またはストア108上で実行されているソフトウェア)がブロック404を実行することができる。
【0064】
ブロック420は、ホスト証明書が依然として有効か、それとも失効しているかを判定するために、受信したホスト証明書をCRL(証明書失効リスト)と突き合わせてチェックすることを表す。図4に示す実施例では、ストア108がブロック420を実行することができる。一部の例ではブロック420は、ホスト証明書を、ホスト証明書を発行した証明機関(例えば図3の302)が保持するCRLと突き合わせてチェックすることを含み得る。他の例では、ブロック420は、ホスト証明書をストア108などの他のエンティティが保持するCRLと突き合わせてチェックすることを含み得る。これらの他の例では、この他のエンティティが保持するCRLは、発行証明機関が保持するCRLのローカルコピーとすることができる。
【0065】
ホスト証明書が依然として有効であり、失効していない場合、ストアは、破線410によって全体として表されるように図4に示す手順400の残りの部分を続行することができる。しかし、ホスト証明書が無効(例えば失効済み)であると判明した場合、ストアは手順400にこれ以上関与しなくてよい。この場合、ストアによって実行されるどんな処理もブロック420で終了し得る。
【0066】
図4は、ホストがストアにストア証明書をクエリーする(例えば404)一例を示すが、ストアがホストにホスト証明書をクエリーすることにより、プロセスの流れ400を開始することもできる。簡潔にするために図4にはこれらの実施例を示さないが、これらの実施例では図4に示す役割および機能をホストとストアとの間で逆にすることができる。
【0067】
図5は、ホストとストアとの間でセッションキーを確立するプロセス500を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図5に繰り越され、同じ参照符号で示される。さらに、限定するためではなく記載を簡略化するために、図5では様々なプロセスを列形式に配置して、ホストおよびストアがそれぞれ実行することができる手順500の各部分を示す。
【0068】
ブロック502は、ストア公開キー(例えば322)を使用してナンスを暗号化することを表す。ホストは、図4に示す手順400を使用してストア公開キーを得ることができる。図5に示すように、ホストがストアに送信するためにナンスを暗号化することができる。
【0069】
ブロック504は、暗号化されたナンスを送信することを表す。図5は、暗号化されたナンスを506で示し、ブロック504は、ホスト120が暗号化されたナンス506をストア108に送信することを含むことができる。
【0070】
ストアにて、ブロック508は、暗号化されたナンス506を受信することを表す。図5に示す例では、ストアが暗号化されたナンスを受信する。
【0071】
ブロック510は、このナンスを復号することを表す。ナンスがこのストアの公開キーを使用して暗号化されたと仮定して、ブロック510は、ナンスをこのストアの秘密キー(例えば320)を使用して復号することを含むことができる。
【0072】
ブロック512は、ランダムセッションキーを生成することを表す。一部の実施例では、ブロック432は、ブロック508で受信した暗号化されたナンスに基づいてランダムセッションキーを生成することを表す。図5に示す例では、ストアがランダムセッションキーを生成する。他の実施例では、ブロック512は、ナンスに基づかずにランダムセッションキーを生成することを表す。これらの後者の実施例では、ストアは、自らをホストに対して認証するために、ナンスを他の何らかの形でホストに送り返すことができる。
【0073】
ブロック514は、このランダムセッションキーを暗号化することを表す。ブロック514は、ホストに関連する公開キーを使用してセッションキーを暗号化することを含み得る。図5は、ホスト公開キーの例を310で繰り越す。ストアは、図4に示す手順400を使用してホスト公開キーを得ることができる。
【0074】
ブロック516は、暗号化されたセッションキーを送信することを表す。図5は、暗号化されたセッションキーを518で示す。図5に示す例では、ストアが暗号化されたセッションキー518をホストに送信することができる。
【0075】
ブロック520は、暗号化されたセッションキー518を受信することを表す。図5に示す例では、ホストがこの暗号化されたセッションキーをストア108から受信する。
【0076】
ブロック522は、セッションキー518を復号することを表す。ストアがホストの公開キーを使用してこのセッションキーを暗号化したと仮定して、ブロック522は、このホストの秘密キー(例えば308)を使用してセッションキーを復号することを含むことができる。
【0077】
ブロック524は、このセッションキーを確認することを表す。ストアがナンスに基づいてセッションキーを生成する実施例では、ブロック524は、セッションキーがブロック504でストアに送信されたナンスに基づくものであることを確認することを含み得る。ストアがナンスに基づいてセッションキーを生成するのではなく、ナンスを返すことによりホストに対して認証する実施例では、ブロック524は、ストアが正しいナンスを返したことを確認することを含み得る。
【0078】
ホストおよびストアが手順400および500を成功裏に完了したと仮定して、ホストおよびストアは、互いとの通信を保護することができる。例えばホストおよびストアは、このセッションキーを使用して両者間のその後の任意の通信を暗号化することができる。さらに、ホストおよびストアが手順400および500を完了すると、このホストおよびストアは互いに認証を終え、公開キーを互いに交換し終えることになる。より具体的には、図4および図5に示す例では、ホストがナンスを暗号化するためにストアの公開キー322を使用し(ブロック502)、次いでそのナンスはストアに送信される。これを受けて、ストアが、セッションキーを生成するためにこのナンスを使用し、このセッションキーをホストの公開キーを使用して暗号化する(ブロック514)。
【0079】
図4および図5は、ホストおよびストアが、ホストおよびストアの下に見られる列に示される様々なブロックで表される処理を実行する例を示す。ただし、これらの例は限定的ではなく、本明細書の記載の範囲および精神から逸脱することなく、ホストおよびストアの役割を逆にできることに触れておく。図4に示す手順400は、ホストとストアとが互いに相互認証することをもたらす。したがって、図4および図5に示す例は本明細書の記載の可能な実施例を限定しない。
【0080】
図5の手順500を説明したので、次に解説を、今度は図6で示すストア上のライセンス記憶域のより詳細な説明に向ける。
【0081】
図6は、ライセンス記憶域を実装するのに適したデータ構造600を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図6に繰り越され、同じ参照符号で示される。
【0082】
図2から思い起こすと、ストア(例えば108)は、ライセンス記憶域(例えば212)を含み得るコンピューター可読記憶媒体(例えば210)を含むことができる。このライセンス記憶域は、ストアに暗号を使用してバインドされる様々なライセンスに関係する情報を含む、データ構造600を含むことができる。図6に示す例では、このライセンス記憶域は、ストア中に含まれるライセンスコンテンツのインスタンスに対応する1つまたは複数のライセンス記憶レコード602を含むことができる。専ら便宜上、図6は1つのレコード602を示すが、データ構造600の諸実施例は、ストアがいくつのライセンスコンテンツのインスタンスを含むのかにもよるが、任意の数のレコード602を含むことができる。
【0083】
レコード602をより詳しく見てみると、これらのレコードは、キー識別子フィールド604を含むことができる。これらのキー識別子フィールド604は、以下にさらに詳述するように、所与のライセンスコンテンツのインスタンスのライセンスを捜し出すためにデータ構造600を検索することを助ける、検索フィールドまたはインデックスフィールドを提供することができる。専ら便宜上、図6は2つのキー識別子フィールド604aおよび604nを示すが、データ構造600の諸実施例は、ストアがいくつのライセンスコンテンツのインスタンスを含むのかにもよるが、任意の数のキー識別子フィールド604を含むことができる。
【0084】
キー識別子フィールド604は、少なくとも1つのコンテンツキーフィールド606に関連付けられてよい。専ら便宜上、図5は2つのコンテンツキーフィールド606aおよび606nを示すが、データ構造600の諸実施例は、ストアがいくつのライセンスコンテンツのインスタンスを含むのかにもよるが、任意の数のコンテンツキーフィールド606を含むことができる。場合によっては、コンテンツ識別子604は、606aで示すような複数の暗号化されたコンテンツキーのインスタンスに関連付けられてよい。
【0085】
セキュリティーおよび保護を促進するために、このコンテンツキーをストアの公開キー(例えば322)を使用して暗号化することができ、それによりそれらのコンテンツキーはそのストアの秘密キーを使用してのみ復号することができる。別の例では、このコンテンツキーを、中間対称キーを使用して暗号化することができる。このようにしてたとえコンテンツキーが悪意を持った者によって何らかの形で流用されても、ストアの秘密キーがさらに漏洩しない限り、そのコンテンツキーはその悪意を持った者にとって無価値である。概してキー管理に関するベストプラクティスは、公開キー−秘密キー基盤の実装が極めて注意してハードウェア機構および/またはソフトウェア機構を経由した秘密キーの漏洩を防ぐことを要求する。例えばこれらのベストプラクティスは、セキュリティーで保護されたハードウェア実装を提案し得る。
【0086】
コンテンツ識別子フィールド604は、少なくとも1つのポリシーフィールド608にも関連付けられてよい。専ら便宜上、図6は2つのポリシーフィールド608aおよび608nを示すが、データ構造600の諸実施例は、ストアがいくつのライセンスコンテンツのインスタンスを含むのかにもよるが、任意の数のポリシーフィールド608を含むことができる。
【0087】
これらのポリシーフィールド608は、ホスト120などの再生デバイスが、ストアに意図的に暗号を使用してバインドされたライセンスを検証できるようにするポリシー情報を記憶することができる。さらに、このポリシーフィールドは、ストアに暗号を使用してバインドされたライセンスの条件に基づいて特定の操作(例えば再生、コピー、転送、等)が許可されているかどうかをホストが判定できるようにすることができる。
【0088】
ポリシーフィールド608は、ライセンスコンテンツに対する、再生、コピー、転送、アクセス、または他の任意の操作の実行に適用される任意の制限または条件を示す情報を含むことができる。例えばライセンスサーバー116によって与えられるようなコンテンツのライセンスは、フィールド608中に記憶されるようなポリシーを指定することができる。制限の例には、コンテンツを再生できる回数、コンテンツをどの程度再生できるか、コンテンツが他のストアへのコピーでよいかどうか、等に関する制限が含まれ得る。
【0089】
図6のデータ構造600を説明したので、次に解説を、今度は図7で示す、ユーザーがアクセスするためにホスト上でコンテンツを選択するときに実行され得るプロセスの流れの説明に進める。
【0090】
図7は、ユーザーがアクセスするためにホスト上でコンテンツを選択するときに実行され得る手順700を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図7に繰り越され、同じ参照符号で示される。さらに、限定するためではなく記載を簡略化するために、図7では様々なプロセスを列状に配置して、ホストおよびストアがそれぞれ実行することができる手順700の各部分を示す。
【0091】
ブロック702は、使用可能なコンテンツの選択項目をユーザーに提示することを表す。例えばホスト120は、ユーザーがホストにストア108を挿入した後に、この選択項目をメニュー形式でユーザーに提示することができる。ユーザーがホストにストアを挿入するとき、ホストは、ホストのコンテンツ/ライセンス記憶域(例えば212)を調べてホスト上の任意の使用可能なコンテンツを捜し出すことができる。次いでホストは、使用可能なコンテンツの別々のインスタンスに関連する識別子を抽出して、ユーザーに提示されるものとして使用可能なコンテンツの選択項目を投入することができる。この使用可能なコンテンツの選択は、ストア上の使用可能なコンテンツの別々のインスタンスをそれぞれが表す複数のグラフィック要素を含むことができる。
【0092】
ユーザーは、選択されたコンテンツに対してホストが何らかの操作を実行することを要求することができる。例えばユーザーは、ホストが、選択されたコンテンツを再生し、選択されたコンテンツをコピーし、またはユーザーに提供される他の任意の同様の操作を実行することを要求することができる。
【0093】
ブロック704は、ユーザーがコンテンツのインスタンスを選択したという指示を受信することを表す。例えば、ユーザーは入力デバイスを操作してグラフィック要素の1つに焦点を当て、何らかのコントロールをアクティブ化して焦点が当てられているグラフィック要素を選択することができる。ブロック704は、ユーザーが選択を行ったという電気信号、ソフトウェアイベント、または他の適当な通知を受信することを含む。
【0094】
ブロック706は、ユーザーによって選択されたコンテンツに対する要求を送信することを表す。ブロック706は、ホスト120が、全体として708で示す要求をストア108に送信することを含むことができる。
【0095】
ストアにて、ブロック710は、ユーザーによって選択されたコンテンツに対する要求を受信することを表す。ブロック710は、ストアがこの要求708をホストから受信することを含むことができる。
【0096】
ブロック712は、ユーザーによって選択されたコンテンツに関連する1つまたは複数のコンテンツキーを特定することを表す。図7ならびに次の図8〜図10に示すプロセスの流れでは、複数のコンテンツキーを処理できることに触れておく。図6は、コンテンツキーの例を606で示す。このコンテンツキーが暗号化された形式で記憶されている場合、ブロック712はコンテンツキーを復号することを含むことができる。より具体的には、コンテンツキーがストア公開キーを使用して暗号化された場合、ブロック712は、このコンテンツキーをストア秘密キー(例えば320)を使用して復号することを含むことができる。ストアとホストとは、例えば図4に示す手順400を使用して、先に互いに認証していることを思い起こされたい。したがって、ホストとストアとの間にある程度の相互信頼が今では存在し、この信頼は、ストアが図7に示す技法を使用してホストにコンテンツキーを提供できるようにし得る。
【0097】
ブロック714は、セッションキーを使用してこのコンテンツキーを暗号化することを表す。図5は、ブロック512で作成されるセッションキーの適当な例を示し、このセッションキーの暗号化されたバージョンを518で示す。図7は、ストアに割り当てられるものとしてこのセッションキーの持分を518aで示す。このセッションキーはホストおよびストアにしか知られていないので、ストアは、このセッションキーを使用してコンテンツキーを暗号化することにより、コンテンツキーを安全にホストに伝送することができる。
【0098】
ブロック716は、718で全体として示す暗号化されたコンテンツキーを送信することを表す。例えばストアが、暗号化されたコンテンツキー718をホストに送信することができる。
【0099】
ホストにて、ブロック720は、ユーザーによって要求された操作を、ユーザーによって選択されたコンテンツに適用される任意のコンテンツポリシーと突き合わせて評価することを表す。図7は、コンテンツポリシーの例を608で繰り越す。一実施例では、このポリシーまたはライセンス全体は、そのライセンスを発行しまたは得た者に関連するキーを使用してサインすることができる。ブロック720は、コンテンツキーを復号する前に、このポリシーが改ざんされていないことをチェックするために、このポリシーを評価することを含むことができる。この評価は、ライセンスの署名を確認することを含むことができる。
【0100】
図7に示す実施例では、ホストがブロック720を実行することができる。この実施例は、ホストがストアよりも多くの処理能力または処理機能を有する場合に適当であり得る。しかし、場合によっては状況が逆になり、ストアがホストよりも多くの処理能力を有する可能性もある。これらの場合には、次に図9に示す実施例が適当であり得る。
【0101】
図7は、図を簡略化するためにブロック形式で評価ブロック720を示す。ただし、この判定の追加の詳細を図8に示し、以下に説明する。
【0102】
ブロック720で実行される評価が肯定的であると仮定して、ブロック722は、暗号化されたコンテンツキー618を受信することを表す。図7に示す例では、ホストがこの暗号化されたコンテンツキーを受信することができる。ストアが自らの持分のセッションキー518を使用してコンテンツキーを暗号化する場合、ホストは、518bで示す自らの持分のセッションキーを使用してそのコンテンツキーを復号することができる。
【0103】
このコンテンツキーを使用して、ホストは、ブロック704で受信した要求に応じるために使用されるコンテンツにアクセスすることができる。このようにして、ホストはライセンスの署名を確認することにより、ポリシーが悪意を持って変更されていないことを検証することができる。
【0104】
一部の実施例では、上記に記載した中間セッションキーを使用することができる。これらの実施例では、ブロック714は、中間セッションキーを使用してコンテンツキー(例えば図6の606や図7の718)を暗号化することを含むことができる。これを受けて、ブロック722は、この中間キーを使用してコンテンツキーを復号することを含むことができる。中間セッションキーは、ストア秘密キー(例えば320)を使用して暗号化することができる。
【0105】
図8は、ユーザーによって要求された操作を、ユーザーによって選択されたコンテンツに適用される任意のポリシーと突き合わせて評価することのさらなる態様を提供する、プロセスの流れ800を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図8に繰り越され、同じ参照符号で示される。
【0106】
決定ブロック802は、ユーザーによって選択されたコンテンツがライセンス内のポリシーの適用対象であるかどうかを評価することを表す。適用対象ではない場合、プロセスの流れ800は、いいえの分岐804を選択してブロック806に進むことができ、ブロック806はユーザーからの要求を承認することを表す。
【0107】
ブロック802に戻り、選択されたコンテンツがライセンスの適用対象である場合、プロセスの流れ800は、はいの分岐808を選択して決定ブロック810に進むことができる。決定ブロック810は、ユーザーからの要求が、選択されたコンテンツに適用される任意のポリシー(例えば608)によって許可されているかどうか評価することを表す。
【0108】
ブロック810から、その要求が任意の適用されるポリシーによって許可されている場合、プロセスの流れ800は、はいの分岐812を選択して決定ブロック806に進むことができる。ブロック806は、要求を承認することを表す。
【0109】
ブロック814は、ユーザーによって要求される操作を実行することを表す。例えば、ブロック806はユーザーからの要求の承認816を伝達することを含むことができ、プロセスの流れ800は、この承認816に応答してブロック814を実行することができる。ブロック814は、図7のブロック722から復号されたコンテンツキー506を受信することを含むことができる。
【0110】
一部の可能な実施例では、ブロック814は、選択されたコンテンツをユーザーに向けて再生しまたは他の形で提供することを含むことができる。他の可能な実施例では、ブロック814は、ユーザーの要求を受けて、選択されたコンテンツをコピーしまたは転送することを含むことができる。これらの例は、可能な実施例を限定するためではなく、専ら説明を簡略化するために示す。
【0111】
決定ブロック810に戻り、適用されるポリシーによって要求が許可されていない場合、プロセスの流れ800は、いいえの分岐818を選択して決定ブロック820に進むことができる。ブロック820は、ユーザーによって出された要求を、選択されたコンテンツに適用されるライセンスポリシーによって許可されていないとして拒否することを表す。ブロック820は、要求の拒否822を送信することを含むことができる。
【0112】
ブロック824は、ブロック820で拒否された要求を出したユーザーに、エラーメッセージまたは他の適当な通知を提示することを表す。一部の例ではブロック824は、要求が、選択されたコンテンツに適用されるポリシーによって許可されなかったので拒否されたとユーザーに示すことを含み得る。さらにブロック824は、要求された操作を許可することになるライセンスを得るための1つまたは複数のオプションをユーザーに提供することを含むことができる。
【0113】
ユーザーによって要求された操作を、任意の適用されるコンテンツポリシーと突き合わせて評価するためのプロセスの流れ800を説明したので、いくつかの所見を述べておく。図7および図8に示す実施例は、ホストがストアよりも多くの処理能力を有する場合に適当であり得る。この状況では、要求をコンテンツポリシーと突き合わせて評価する役割(例えば図7および図8の720)をホストが負って、より処理能力が低いストアをこの処理から解放することができる。
【0114】
しかし他の状況では、ストアがホストよりも多くの処理能力を有する可能性もある。これらの例では、要求をコンテンツポリシーと突き合わせて評価する役割をストアが負い、それにより、より処理能力が低いホストをこの処理から解放することができる。図9および図10は、これらの後者のシナリオを示す。
【0115】
図9は、ユーザーがアクセスするためにホスト上でコンテンツを選択するときに実行され得る手順900を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図9に繰り越され、同じ参照符号で示される。さらに、限定するためではなく記載を簡略化するために、図9では様々なプロセスを列形式に配置して、ホスト(例えば120)およびストア(例えば108)がそれぞれ実行することができる手順900の各部分を示す。より具体的には、手順900に関係する特定の処理ブロックは、上記に図7で手順700に関して記載した特定の処理ブロックと同様であり得る。したがって記載が重複することを避けるために、これらの処理ブロックは、図9および図10において同じ参照番号で示すが、図7および図8に示す構成要素とは異なる構成要素によって行われてもよい。
【0116】
手順900についてより詳しく見ると、図7からブロック702、704、および706とともに、708で示すユーザーによって選択されたコンテンツに対する要求が繰り越されている。図7で上記に例示し説明したように、ホストがブロック702〜706を実行することができ、要求708をストアに出すことができる。これを受けて、先に図7で説明したようにストアがブロック710および712を実行することができる。しかし、図7に示す実施例とは異なり、図9の実施例は、ストアが評価ブロック722を実行できるようにする。したがって、図9は、要求評価ブロック720をホストに対応する列(図7に示すように)ではなくストアに対応する列に示す。
【0117】
評価ブロック720の結果が肯定的であると仮定して、次いでストアは、選択されたコンテンツに対するコンテンツキーを復号することを表すブロック712を実行することができる。ブロック712は、ストア秘密キー320によって復号することを含むことができる。さらに、図9は、図7からブロック714、716、および722とともに、暗号化されたコンテンツキー718を繰り越す。ブロック714、716、および722ならびにデータの流れ718についての前の説明は図9にも当てはまり、簡潔にするためにここでは繰り返さない。図9は、518aおよび518bで示すセッションキーの各持分も繰り越す。
【0118】
図10は、要求を任意の適用されるコンテンツポリシーと突き合わせて評価するためのプロセスの流れ1000の態様を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図10に繰り越され、同じ参照符号で示される。さらに、限定するためではなく記載を簡略化するために、図10では様々なプロセスを列状に配置して、ホスト(例えば120)およびストア(例えば108)がそれぞれ実行することができるプロセスの流れ1000の各部分を示す。
【0119】
図10に示す実施例では、ストア(例えば108)が、要求評価ブロック720によって表される特定の処理を実行することができる。図8では、この処理はホスト(例えば120)によって実行されたことを思い起こされたい。しかし図10では、次により詳細に説明するように、ホストおよび/またはストアが要求評価ブロック720に関連する処理の各部分を実行することができる。
【0120】
ブロック1002は、要求で参照されるコンテンツがライセンスの適用対象であるかどうかを評価することを表す。コンテンツがライセンスの適用対象である場合、そのライセンスは、そのコンテンツのアクセスや配布の方法や可否を示す1つまたは複数のポリシー(例えば608)を典型的には指定する。コンテンツがライセンスの適用対象である場合、プロセスの流れ1000は、はいの分岐1004を選択して評価ブロック906に進むことができ、評価ブロック906は、その要求がそのコンテンツに適用される任意のポリシーによって許可されているかどうかを判定することを表す。
【0121】
評価ブロック1006から、その要求が、適用されるポリシーによって許可されている場合、プロセスの流れ1000は、はいの分岐1008を選択して図7から繰り越されたブロック712に進むことができる。ブロック712は、選択されたコンテンツに対するコンテンツキーを、ストア秘密キー(例えば320)を使用して復号することを表す。ブロック714は、セッションキー(例えば518aまたは中間セッションキー)を使用してこのコンテンツキーを暗号化することを表す。ブロック716は、この暗号化されたコンテンツキー(例えば718)をホストに送信することを表す。ホストにて、ブロック722は、このコンテンツキーを受信し、復号することを表す。
【0122】
ストアに戻り、ブロック1010は要求を承認することを表す。図10に示すように、ストアはこの承認を1012で表すようにホストに伝えることができる。
【0123】
評価ブロック1002に戻り、コンテンツがライセンスの適用対象ではない場合、プロセスの流れ1000は、いいえの分岐1014を選択して直接ブロック1010に進むことができる。上記に説明したように、ブロック1010は要求を承認することを表す。
【0124】
評価ブロック1006に戻り、要求が、適用されるポリシーによって許可されていない場合、プロセスの流れ1000は、いいえの分岐1016を選択してブロック1018に進むことができ、ブロック1018は要求を拒否することを表す。図10に示すように、ストアはこの拒否を1020で表すようにホストに伝えることができる。
【0125】
ホストにて、ブロック1022は、コンテンツに関係する要求された操作を実行することを表す。ブロック1022は、承認1012を受信することに応答して要求された操作を実行することを含むことができる。要求された操作を実行するために、ホストはブロック722で復号されたコンテンツキーを利用することができる。図10は、コンテンツキーの暗号化されたバージョンを718で繰り越す。
【0126】
さらにホストにて、ブロック1024は、ユーザーにエラーメッセージまたは他の適当な情報を提示することを表す。例えばブロック1024は、要求された操作がそのコンテンツに適用されるライセンスおよび/またはポリシーによって許可されていないとユーザーに示すことを含み得る。ブロック1024は、要求された操作を実行するための1つまたは複数のライセンスを得ることができる方法または場所をユーザーに示すことを含むこともできる。
【0127】
要求を適用されるコンテンツポリシーと突き合わせて評価するためのプロセスの流れ1000を説明したので、次に解説を、今度は図11で示すトークン付与サービスを含む運用環境の説明に進める。
【0128】
図11は、1102で全体として示すトークン付与サービスを含む運用環境1100を示す。このトークンの例にはライセンスが含まれてよい。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図11に繰り越され、同じ参照符号で示される。
【0129】
一部の例では、ユーザーは、例えばコンテンツ/メディアソース106に関連するダウンロードサーバーからコンテンツ122をダウンロードすることができる。図11に示すように、コンテンツはストア108中に読み込むことができる。このコンテンツのうちの一部はライセンスコンテンツとすることができる。任意のライセンスコンテンツは、固有のコンテンツキー識別子または略して「キー」に関連することができる。例えば図1に示す実施例では、ライセンスサーバー(例えば116)は、これらのキーを生成するためにシード値を使用することができる。ライセンスサーバーおよびダウンロードサーバーが共通のコントロールを受けている場合、ライセンスサーバーはダウンロードサーバーを「信頼」することができ、シードをダウンロードサーバーと共有することができる。これらの例では、上記に示し説明した実施例が適当であり得る。
【0130】
しかし他の例では、再生しようとするコンテンツがライセンスサーバーによって信頼されたダウンロードサーバーからダウンロードされていない可能性もある。例えば、コンテンツはカードの製造元によってまたはストアを販売する小売業者によってストア(例えば108)上にあらかじめ読み込まれていてよく、これらの操作はライセンスサーバーとは別に管理され得る。これらの例では、トークン付与サービス1002がライセンスサーバーとある程度同様の機能を提供する図11に示す運用環境1100が適当である可能性がある。トークン付与サービス1102は、互いを信頼しないエンティティ間のライセンス管理を可能にするある程度の間接的方法を、これらのエンティティ間で秘匿性の高い情報(例えばコンテンツキーを生成するためのシード)を共有することなく提供することができる。
【0131】
このトークン付与サービスについてより詳しく見ると、このトークン付与サービスは、カード上に記憶されるトークン1004を生成することができ、このトークンを何らかのライセンスコンテンツのインスタンスに関連付けることができる。このトークンは、ストアが挿入される任意のホストが、適用される任意のライセンスポリシーと矛盾することなくそのライセンスコンテンツにアクセスすることが許可されることを示すことができる。
【0132】
このトークン付与サービスは、関係するコンテンツに関連するものとして、このトークンをストア108の製造元またはストアの小売業者に伝えることができる。これを受けて、ストアの小売業者または製造元は、このコンテンツおよび関係するトークンをストア上に読み込ませることができる。図11は、表現コンテンツ122および1104aで示す関連するトークンを含むストア108の一例を示す。このコンテンツとトークンとの間の関連性を、ブロック122とブロック1104aとをつなぐ破線によって全体として示す。ただし、この例は限定的ではなく、専ら便宜上示す。ストア108は、任意の数のコンテンツ−トークンインスタンスを含むことができ、またはトークンに関連付けられていないコンテンツインスタンスを含むこともできる。
【0133】
線1106によって全体として表されるように、ユーザー102はホスト(例えば120)にストア108を挿入することができる。このホストは、参照番号218および222でそれぞれ示す1個または複数個のプロセッサーおよびコンピューター可読記憶媒体を含むことができる。これらの参照番号を、限定するためではなく便宜上図2から繰り越す。
【0134】
コンピューター可読記憶媒体222は、ストア108がホスト120に挿入されるときにストア108を処理することができるトークン検証モジュール1108を含むことができる。より具体的には、このトークン検証モジュール1108はトークン付与サービス1102と対話して、ホストがストア上にある任意のコンテンツ(例えば122)を再生できるかどうかを判定することができる。
【0135】
トークン検証モジュール1108とトークン付与サービス1102との間の対話は、図11に示す処理のうちの少なくともいくつかを含むことができる。例えばブロック1110は、ストアが任意のトークンを含むかどうかを評価することを表す。ストアが少なくとも1つのトークン(例えば1104a)を含む場合、トークン検証モジュールははいの分岐1112を選択してブロック1114に進むことができ、このブロック1114は、ストア上で見つかった任意のトークンの検証を要求することを表す。図11は1104bで、ストアから抽出され、検証のために送信されるものとしてトークンを表す。
【0136】
図および説明を簡略化するために、図11は、トークン付与サービス1102がトークンの検証も行うシナリオを示す。ただし、これらのシナリオは限定的ではなく、本明細書の記載の範囲および精神から逸脱することなく、様々なエンティティがトークンを発行し、検証できる。
【0137】
図11に示す例において、ブロック1116はトークン検証モジュールから受信した入力トークンを検証することを表す。ブロック1116は、そのトークンが有効か無効かの判定をもたらすことができる。例えば、このトークン検証モジュールは、そのトークンを特定のコンテンツに関連して発行したかどうかを判定することができ、またはそのトークンを解析してその有効性を評価することができる。
【0138】
このトークン付与サービスは、ホスト上のトークン検証モジュールに検証応答1118を返すことができ、この検証応答1118は、トークンが有効であると認められたかまたは無効であると認められたかを示す。トークン付与サービスがトークンを検証できた場合、ホストはそのトークンに関連するコンテンツを再生することができる。トークン付与サービスがトークンを検証できなかった場合、そのトークンを別の検証サービスに提供する、人間のユーザーにエラーメッセージを提示する、等、ホストは何らかの2次的なアクションを取ることができる。
【0139】
評価ブロック1110に戻り、ホストに挿入されたストアがストア上のライセンスコンテンツに関係するトークンを一切含まない場合、トークン検証モジュールは、いいえの分岐1120を選択してブロック1122に進むことができる。ブロック1122は、トークン付与サービス1102にトークンを要求することを表し、線1124がトークンに対する要求を表す。
【0140】
トークン付与サービスにて、ブロック1126は、要求1124に応答してトークンを生成し、その新しいトークンをストア上に含まれるコンテンツ(例えば122)に関連付けることを表す。ブロック1126は、そのコンテンツにアクセスするためのライセンスを得ることに関連する任意の支払いを受けるように、人間のユーザーに促すことを含むことができる。
【0141】
図11は、ブロック1126で表される処理の結果として得られるトークン1128を示す。ブロック1126は、これらのトークンをトークン検証モジュール1108に転送することを含むことができる。図11に示す例では、ブロック1122は、新しい1つまたは複数のトークン1128を受信することを含むことができるが、トークン検証モジュール1108内の別のプロセスがこのトークンを受信できることにも触れておく。
【0142】
図11のトークン付与サービスに関係する運用環境を説明したので、次に解説を、今度は図12で示す、ストアが一時ライセンスまたは一時証明書をホストに発行できる運用環境の説明に向ける。
【0143】
図12は、ストア(例えば108)が一時ライセンスまたは一時証明書1202をホスト(例えば120)に発行できる運用環境1200を示す。可能な実施例を限定するためではなく記載の便宜上、前に記載した一部の項目が図12に繰り越され、同じ参照符号で示される。
【0144】
ストア108は1つまたは複数のライセンス(例えば118)を含むことができ、図12はそのようなライセンスの2つの例を118aおよび118nで示す。このライセンスは個々のコンテンツのインスタンス(例えば104)に関連することができ、図12はコンテンツの2つの例を104aおよび104nで示す。
【0145】
図1〜図11に示し、本明細書に記載するシナリオのいずれにおいても、ストアがホストのIDを認証したと仮定して、ストアは一時ライセンスまたは一時証明書1202をホストに発行することができる。この一時証明書または一時ライセンス1202は、ライセンス118のいずれかのサブライセンスとみなすことができる。
【0146】
この一時証明書または一時ライセンス1202を使用して、ホストはこの一時ライセンスまたは一時証明書に対応するコンテンツにアクセスし、再生することができる。この一時証明書または一時ライセンスは、1204で表すように時間的に制限されてよい。時間的に制限されたライセンス1204は、ホストが定義済みの期間にわたってコンテンツにアクセスできるようにすることができ、この期間を過ぎるとこの証明書またはライセンスは期限切れになる。
【0147】
他の例では、一時証明書または一時ライセンス1202は、1206で表すようにコンテンツの特定の部分に対してのみアクセスを許可することができる。このタイプの一時ライセンスは一種のプレビューライセンスとみなすことができ、プレビューライセンスでは、ユーザーまたはホストが完全ライセンスを得るまでホストはコンテンツの特定の部分しか再生できない。このシナリオは、例えば小売業者や製造元によってストアにコンテンツをあらかじめ読み込まれている場合に発生し得る。これらの読み込み済みコンテンツのシナリオでは、ストアはプレビューライセンスのみを含み得るが、それでもホストを介して完全ライセンスを提供することができる。
【0148】
さらに他の例では、この一時証明書または一時ライセンス1202は、1208で表すようにコンテンツへの定義済み回数のアクセスを許可することができる。例えばこの一時ライセンスは、コンテンツを1回だけ再生することを許可することができ、それ以降はその一時ライセンスは期限切れになる。ただしこの一時ライセンスは、様々な実施例に見合った任意の回数の再生を許可することができる。
結論
本システムおよび方法を構造的特徴および/または方法的アクトに特有の用語で説明したが、添付の特許請求の範囲に定義のシステムおよび方法は必ずしも上記の具体的な特徴やアクトに限定されないと理解すべきである。むしろ、具体的な特徴およびアクトは、特許請求の範囲に記載のシステムおよび方法の例示的実施形態として開示したものである。
【0149】
さらに、本明細書に記載し例示した特定のデータの流れおよびプロセスの流れの図に関し、図に示したプロセスおよびサブプロセスを、本明細書の記載の精神および範囲から逸脱することなく、示した順序と異なる順序で実行できることにも触れておく。さらに、これらのデータの流れおよびプロセスの流れを特定の構成要素に関連して本明細書に記載したが、本明細書の記載の精神および範囲から逸脱することなく、これらのデータの流れおよびプロセスの流れを他の構成要素を用いて実行できることにも触れておく。

【特許請求の範囲】
【請求項1】
機械(120)によって実行される場合に、前記機械に
ナンス(nonce)(506)を生成するステップ(502)と、
前記ナンスをストア(108)に送信するステップ(504)と、
前記ストアからセッションキー(518)を受信するステップ(520)であって、前記セッションキーは、ホスト(120)に関連する公開キー(310)を使用して暗号化される、受信するステップと
を含む認証手順を実行させる機械可読命令を含む、機械可読記憶媒体(222)。
【請求項2】
前記ナンスを前記ストアに送信する前に前記ナンスを暗号化する(502)ための命令をさらに含む、請求項1に記載の機械可読記憶媒体。
【請求項3】
前記ナンスを暗号化するための前記命令が、前記ストアに関連する公開キー(322)を使用して前記ナンスを暗号化するための命令を含む、請求項2に記載の機械可読記憶媒体。
【請求項4】
前記ストアからストア証明書(316)を受信する(410)ための命令をさらに含み、前記ストア証明書がストア公開キー(322)を含む、請求項1に記載の機械可読記憶媒体。
【請求項5】
少なくとも1つの証明書失効リスト(324)と突き合わせて前記ストア証明書の有効性をチェックする(412)ための命令をさらに含む、請求項4に記載の機械可読記憶媒体。
【請求項6】
前記ストア公開キーを使用して前記ナンスを暗号化する(502)ための命令をさらに含む、請求項4に記載の機械可読記憶媒体。
【請求項7】
前記ストアにホスト証明書(304)を送信する(416)ための命令をさらに含む、請求項6に記載の機械可読記憶媒体。
【請求項8】
前記認証手順を完了した後に、前記ストアから前記セッションキーにバインドされたライセンス(118)を受信するための命令をさらに含み、前記ライセンスは、前記ストア上に含まれるコンテンツ(104)にホスト(120)がアクセスできるようにする、請求項1に記載の機械可読記憶媒体。
【請求項9】
請求項1に記載の機械可読記憶媒体を含む、モバイルメディアプレーヤーデバイス(124、126)。
【請求項10】
機械によって実行される場合に、前記機械に
ホスト(120)からナンス(506)を受信するステップ(508)と、
前記ホストにセッションキー(518)を送信するステップ(516)と
を含む認証手順を実行させる機械可読命令を含む、機械可読記憶媒体(210)。
【請求項11】
ホスト証明書(304)を受信する(418)ための命令をさらに含み、前記ホスト証明書が、少なくとも前記ホストに関連する公開キー(310)を含む、請求項10に記載の機械可読記憶媒体。
【請求項12】
少なくとも1つの証明書失効リスト(312)と突き合わせて前記ホスト証明書をチェックする(420)ための命令をさらに含む、請求項11に記載の機械可読記憶媒体。
【請求項13】
ストア証明書(316)に対するクエリー(404)を受信する(406)ための命令をさらに含む、請求項10に記載の機械可読記憶媒体。
【請求項14】
ストア証明書(316)を送信する(408)ための命令をさらに含み、前記ストア証明書が、少なくとも前記ストアに関連する公開キー(322)を含む、請求項10に記載の機械可読記憶媒体。
【請求項15】
ナンスを受信するための前記命令が、前記ホストから暗号化されたナンス(506)を受信する(508)ための命令を含み、前記ナンスが、ストア(108)に関連する公開キー(322)を使用して暗号化される、請求項10に記載の機械可読記憶媒体。
【請求項16】
前記ホストに関連する公開キー(310)を使用して前記ランダムセッションキーを暗号化する(514)ための命令をさらに含む、請求項10に記載の機械可読記憶媒体。
【請求項17】
前記認証手順を完了した後に前記ホストにライセンス(118)を与えるための命令をさらに含み、前記ライセンスは、ストア(108)上に含まれるコンテンツ(104)に前記ホストがアクセスできるようにする、請求項10に記載の機械可読記憶媒体。
【請求項18】
請求項10に記載の機械可読記憶媒体を含む、ポータブルメモリーデバイス(110、112、114)。
【請求項19】
前記ポータブルメモリーデバイスがフラッシュメモリー、SD(セキュアデジタル)カード、またはSIM(加入者識別モジュール)カードを含む、請求項18に記載のポータブルメモリーデバイス。
【請求項20】
請求項18に記載のポータブルメモリーデバイスが挿入される、モバイルメディアプレーヤーデバイス(124、126)。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公表番号】特表2010−528537(P2010−528537A)
【公表日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2010−509542(P2010−509542)
【出願日】平成20年5月22日(2008.5.22)
【国際出願番号】PCT/US2008/064441
【国際公開番号】WO2008/147827
【国際公開日】平成20年12月4日(2008.12.4)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】