PlayReady Packager の開発
パッケージャーに PlayReady を組み込んでコンテンツを保護する前に、いくつかの考慮事項を確認する必要があります。 暗号化するコンテンツの PlayReady 保護を提供するパッケージャーの開発に注意してください。
- Microsoft からのライセンス契約は必要ありません。
- コンテンツへの PlayReady の挿入に関連する Microsoft には料金はかかりません。
- PlayReady エンコーダーまたはパッケージーに適用される Microsoft に対する使用料の支払いはありません。
そのため、これらの項目に時間や予算を割り当てる必要はありません。
注意
一部のMicrosoft PlayReady パートナーは、自分で開発したくない場合は、会社の PlayReady パッケージャーを開発できます。
開発の概要
パッケージャーに PlayReady 機能を組み込むための開発時間は、次のコンポーネントの開発とテストによって異なります。
キー ジェネレーター - コンテンツの暗号化に使用されるキー値を生成します (関連する KeyID と共に)。 KeySeed メカニズムを使用する場合、このジェネレーターは PlayReady キー シード 仕様で定義されている関数を実装する必要があります。
PlayReady ヘッダー ジェネレーター — PlayReady オブジェクト (PlayReady ヘッダーや埋め込みライセンス Microsoft Storeを含む) を生成します。 この PlayReady ヘッダーには、KeyID または KeyID の一覧、PlayReady ライセンス サーバーの既定の URL、保護されたコンテンツに必要なカスタム値が含まれます。 この関数は、 PlayReady ヘッダーの仕様に記載されている要件に従う必要があります。
Packager — キー ジェネレーターによって提供されるキー値と、PlayReady ヘッダー ジェネレーターによって作成された PlayReady オブジェクトを使用してコンテンツをパッケージ化します。
キー管理システム — キー値とそれに関連付けられている KeyId を格納します (KeySeed メカニズムを使用する場合は必要ありません)。
PlayReady Packager の開発
独自の PlayReady Packager を開発することにした場合は、コンテンツの保存と配信方法に基づいて、パッケージャーの動作方法を決定する必要があります。 次の一覧は、PlayReady 機能をパッケージャーに追加するために必要な手順を示しています。
暗号化形式を選択します。 コンテンツを保護するために、さまざまな種類の暗号化が使用されます。 Microsoft PlayReadyシステムでは、対称キー アルゴリズムである Advanced Encryption Standard (AES) が使用されます。 バージョン 4.0 以降、PlayReady システムは、ISO 標準 ISO/IEC 23001-7 で定義されているように、CBC (暗号ブロック チェーン) モードと CTR (カウンター モード) モードの両方で AES 128 キーをサポートしています。 コンテンツを保護するために使用される暗号化メカニズムはコンテナーにカプセル化されるため、さまざまなプラットフォームでファイルを効率的に参照および復号化できます。
CTR モードまたは CBC モードで使用される AES-128 キーを使用する暗号化形式は、 PlayReady 製品のコンプライアンス規則によって許可されます。 詳細については、「 PlayReady コンテンツ暗号化モード」を参照してください。
コンテンツを暗号化する方法を選択します。 詳細については、「 暗号化キーの使用」を参照してください。
PlayReady のみを使用してコンテンツの暗号化を解除するか、複数の DRM をサポートするかを選択します。 詳細については、「 暗号化ツールの使用」を参照してください。
コンテンツ キー (キー値とキー ID) を生成して格納する方法を選択します。
パッケージャーには、コンテンツの暗号化と暗号化解除に使用されるキー値を作成する何らかの種類のキー ジェネレーターを含める必要があります。 キー ジェネレーターは、キー ID をキー値に関連付ける必要があります。 キー値はシークレットのままであり、キー ID は公開され、コンテンツの PlayReady ヘッダーに挿入されます。 パッケージャーにキー ジェネレーターが含まれていない場合は、キー ジェネレーターを個別に開発またはソース化する必要があります。
複数のキー値とそれに関連付けられているキー ID を格納するキー管理システムを開発するか、サード パーティのライセンスを取得する必要があります。 キー管理システムは、データベースまたはその他の種類のストレージ システムである可能性がありますが、承認なしでキー値に誰もアクセスできないようにセキュリティで保護する必要があります。 Microsoft では、PlayReady でキー管理システムを提供していません。 または、キー管理システムの代わりに PlayReady で提供される KeySeed メカニズムを使用することもできます (KeySeed メカニズムは、パッケージャーと、コンテンツの暗号化を解除するためのライセンスを提供する PlayReady サーバーに組み込む必要があります)。
暗号化されたコンテンツに PlayReady オブジェクト (PlayReady ヘッダーや埋め込みライセンス ストアを含む) を挿入する方法を選択します。 詳細については、「 PlayReady ヘッダーを生成する方法」を参照してください。
キー値とキー ID を PlayReady サーバーに提供する方法を選択します。これにより、キー値が PlayReady クライアントに分散されます。
独自の PlayReady ライセンス サーバーを開発することも (PlayReady のライセンスが必要です。ただし、PlayReady サーバーの開発または使用に関して Microsoft によって料金や使用料は収集されません)、またはサードパーティが提供または運用する PlayReady サーバーを使用できます。 独自の PlayReady サーバーを開発する場合でも、PlayReady Server をサード パーティが提供または運用する場合でも、クライアントがコンテンツを効率的に再生できるようにするには、キー値とキー ID をタイムリーにサーバーに伝達できる必要があります。
クライアントが PlayReady ライセンス サーバーに接続してコンテンツ暗号化キーを取得する方法を選択します。 クライアント アプリは、ライセンスを取得する必要がある場合に、PlayReady ライセンス サーバー URL (ライセンス取得 URL または LA URL とも呼ばれます) を認識する必要があります。 クライアント アプリは、その LA URL 値をハードコーディングするようにプログラミングすることも、サーバーから動的に取得することもできます。 クライアント アプリにこの LA URL 値がない場合は、コンテンツの PlayReady ヘッダーにある LA URL 値 (既定の LA URL) が使用されます。 必須ではありませんが、パッケージ化時にサービスがコンテンツの PlayReady ヘッダーに既定の LA URL 値を含めるのは非常に一般的です。