ライセンス取得
保護されたコンテンツを再生するには、コンテンツの有効なライセンスが利用可能である必要があります。 コンテンツの有効なライセンスがない場合は、ライセンスを取得する必要があります。 ライセンス取得中、クライアントはライセンス サーバーまたはプロキシ サーバーからライセンスを取得します。 ライセンス取得クライアントは、携帯電話やTablet PCなどのモバイル デバイス上のメディア プレーヤー、またはパーソナル コンピューター上のメディア プレーヤーです。 ライセンス取得用のクライアントは、ライセンス サーバーに直接接続し、取得したコンテンツのライセンスを要求します。
ライセンス取得のコンテキストでは、ライセンス サーバーとパッケージ サーバーは DRM サーバーと見なされます。 携帯機器やライセンス取得が可能なパソコンは、クライアントと見なされます。
ライセンス取得のためのサーバーとクライアントの相互作用
このセクションでは、ライセンス取得に関するコンポーネントの相互作用について説明します。
サーバー側では、PlayReady Server SDK によって次の機能が提供されます。
- ライセンスの生成/発行
コンシューマーのポータブル デバイスまたはパーソナル コンピューター上のクライアントは、次の機能を提供します。
- ライセンスの取得
- 使用規則の適用
- コンテンツの暗号化解除
ドメイン、測定、Secure Stop、Secure Delete のサポートも PlayReady Server SDK に含まれています。
プロアクティブな事後対応型ライセンスの取得
ライセンス取得には、次の 2 つのモードがあります。
- プロアクティブ ライセンス取得 — クライアント アプリケーションは、再生を開始する前にライセンス要求を明示的に開始します。 これは通常、アプリケーションがコンテンツを参照するようにシステムがプログラミングされ、再生セッションが開始される前にライセンスを "事前に" 取得する時間がかかるシナリオです。 ライセンスを受け取った後は、いつでも再生を開始できます。 アプリケーションは、すぐに再生を開始できます。または、通常はオフライン再生シナリオで、コンテンツが実際に再生される数日前にライセンスが取得される場合があります。
- 事後対応ライセンスの取得 - クライアント アプリケーションは、コンテンツが再生される前にライセンスを明示的に取得しません。 再生が開始されると、PlayReady メディア プレーヤーは、このコンテンツを復号化できる既存の PlayReady ライセンスを探します。 使用可能なライセンスが見つからない場合は、再生を再開する前に、関連付けられているライセンス取得オブジェクトを自動的に使用してライセンスを取得します。
次の図は、コンテンツ保護とライセンス取得のアーキテクチャの概要を示しています。
次の図に示すように、ライセンスの取得は次の手順に従います。
コンテンツ プロバイダーは、ライセンス キー シードとキー識別子を使用してキーを生成します。
コンテンツ プロバイダーは、ライセンス サーバーのキー識別子と URL をコンテンツ ヘッダーに配置し、キーで暗号化してファイルを保護します。
コンテンツ プロバイダーは、保護されたファイルをユーザーに配信します。
ユーザーのメディア プレーヤーは、ユーザーのデバイスの DRM コンポーネントに対してクエリを実行して、保護されたファイルを再生できるかどうかを判断します。
DRM コンポーネントは、ユーザーのデバイス上のライセンス Microsoft Storeで、ファイルを再生するための有効なライセンスを検索します。
DRM コンポーネントが必要なライセンスを見つけられない場合は、ライセンス サーバーにライセンスを要求します。 ライセンスの要求に使用されるライセンス チャレンジには、コンテンツ ヘッダーとユーザーのデバイスに関する情報が含まれています。
ライセンス サーバーは、共有ライセンス キー シードとキー識別子を使用して、手順 1 でコンテンツ プロバイダーによって生成されたのと同じコンテンツ キーを生成します。 その後、ライセンス サーバーによってキーが暗号化されます。
ライセンス サーバーは、ライセンスを作成し、暗号化されたコンテンツ キーをライセンスに追加し、秘密署名キーを使用してライセンスに署名します。
ライセンス サーバーは、署名されたライセンスをユーザーのデバイスに配信します。
ユーザーのデバイス上の DRM コンポーネントは、証明書の署名と有効期限を確認し、ライセンス Microsoft Storeにライセンスを配置します。
DRM コンポーネントは、要求されたコンテンツのパケットを復号化し、プレーヤーに送信します。
この時点で、プレイヤーは使用可能な形式でコンテンツを取得します。 ライセンスによって有効になっているすべてのポリシーを使用できます。 たとえば、ライセンスで "再生" が有効な場合、ライセンス取得クライアントはコンテンツを再生できます。
次の図は、ライセンスを事前に取得するための基本的な手順を示しています。
次の図は、ライセンスを事後対応的に取得するための基本的な手順を示しています。
クライアントが保護されたファイルを取得した後、そのクライアントは、そのコンテンツを使用するアクションを実行する前にライセンスを取得する必要があります。 ライセンスは、関連するコンテンツにアクセスするために必要な情報を格納し、そのコンテンツにアクセスできるルールを格納します。 ユーザーは、保護されたコンテンツが既にライセンスを持っているユーザーからコピーされた場合でも、保護されたコンテンツを再生するために独自のライセンスを取得する必要があります。 ライセンスには、対応するコンテンツを復号化するための暗号化キーが含まれています。または、チェーンされたライセンスの場合は中間キーが含まれます。 ライセンスには、コンテンツの使用を指定する権限やその他のプロパティも含まれています。 たとえば、ライセンスによって、保護されたファイルを再生できる回数と、ライセンスの有効期限が切れるかどうかが決まります。 これらのプロパティは、保護されたファイルとは別にライセンスで構成されます。
各ライセンスには、次の情報が含まれています。
- コンテンツ暗号化キー。
- ライセンスの権限。
- ライセンスの条件とも呼ばれる、適切な制限と適切な修飾子。
クライアントは、ライセンスに関連付けられているコンテンツの暗号化を解除する前に、ライセンスからポリシーを取得する必要があります。 ライセンス内のコンテンツ保護情報は、クライアントの公開キーまたはクライアントのドメインの公開キー暗号化情報を使用して暗号化されます。 ライセンスは、コンテンツ保護情報を復号化するための秘密キーを持つクライアントまたはドメインに "バインド" されていると見なされます。
クライアントは、ライセンス サーバーから直接、またはプロキシ サーバー経由でライセンスを取得します。
ライセンス取得のためのトランスポート
PlayReady ライセンスの取得はすべて、クライアントとサーバーの間のトランザクションを必要とします。
- クライアントによって生成され、サーバーに送信されるチャレンジ。
- サーバーによって生成され、クライアントに送信される応答。
トランザクションは、通常、インターネット、HTTP または HTTPS を介して、または閉じたネットワーク上で発生します。 使用されるプロトコルは Simple Object Access Protocol (SOAP) に基づいており、カスタマイズできます。 トランザクションは、たとえばクライアントが 1 つの場所にチャレンジを投稿し、サーバーがこのチャレンジを処理し、応答を生成し、その応答を他の場所に投稿するなど、非同期的に実装することもできます。
注意
PlayReady はライセンスブロードキャストをサポートしていません。つまり、サーバーはブロードキャスト ネットワーク上のクライアントにライセンスを送信します。