SPEKE API v2 - DASH-IF 仕様のカスタマイズと制約 - Secure Packager および Encoder Key Exchange API の仕様

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SPEKE API v2 - DASH-IF 仕様のカスタマイズと制約

DASH Industry Forum CPIX 2.3 仕様は、多くのユースケースとトポロジをサポートしています。SPEKE API v2.0 仕様では、CPIX プロファイルと CPIX 用の API の両方が定義されています。この 2 つの目標を達成するために、次のカスタマイズと制約を適用した CPIX 仕様に準拠しています。

CPIX プロファイル
  • SPEKE は、エンクリプタコンシューマーのワークフローに従います。

  • 暗号化されたコンテンツキーの場合、SPEKE により次の制限が適用されます。

    • SPEKE は、リクエストおよびレスポンスペイロードにデジタル署名検証 (XMLDSIG) をサポートしていません。

    • SPEKE には 2048 ビットの RSA ベースの証明書が必要です。

  • SPEKE は CPIX 機能のサブセットのみを利用します。

    • SPEKE は UpdateHistoryItemList の機能を省略します。リストがレスポンスに存在する場合、SPEKE はそれを無視します。

    • SPEKE では、ルート/リーフキー機能は省略されます。ContentKey@dependsOnKey 属性がレスポンスに存在する場合、SPEKE はそれを無視します。

    • SPEKE では、BitrateFilter 要素と VideoFilter@wcg 属性は省略されます。これらの要素または属性が CPIX ペイロードに存在する場合、SPEKE はそれを無視します。

  • スタンダードペイロードコンポーネントのページまたは暗号化契約のページで「サポートされる」として参照されている要素または属性のみ、SPEKE v2 と交換される CPIX ドキュメントで使用できます。

  • すべての要素および属性は、エンクリプタが CPIX リクエストに含めている場合、キープロバイダーの CPIX レスポンスで有効な値を保持します。そうでない場合、エンクリプタは停止してエラーをスローします。

  • SPEKE は KeyPeriodFilter 要素でキーローテーションをサポートします。SPEKE は ContentKeyPeriod@index のみを使用して、キー期間を追跡します。

  • HLS シグナリングの場合、複数の DRMSystem.HLSSignalingData 要素を使用する必要があります。DRMSystem.HLSSignalingData@playlist 属性値「media」で使用されるものと、DRMSystem.HLSSignalingData@playlist 属性値「master」で使用されるものです。

  • キーをリクエストするとき、エンクリプタは、ContentKey 要素にオプションの @explicitIV 属性を使用することがあります。キープロバイダーは、属性がリクエストに含まれていなくても、@explicitIV を使用して IV で応答することができます。

  • エンクリプタはキー識別子 (KID) を生成しますが、これは与えられたコンテンツ ID とキー期間に対して同じです。キープロバイダーには、リクエストドキュメントに対するレスポンスとして KID が含まれます。

  • エンクリプタは CPIX@contentId 属性の値を含めます。この属性に空の値を受け取ると、キープロバイダーは「Missing CPIX@contentId」(CPIX@contentId がありません) という説明を含むエラーを返します。CPIX@contentId 値をキープロバイダーでオーバーライドすることはできません。

    CPIX@id 値が null でない場合は、キープロバイダーによって無視されます。

  • エンクリプタは CPIX@version 属性の値を含めます。この属性に空の値を受け取ると、キープロバイダーは「Missing CPIX@version」(CPIX@version がありません) という説明を含むエラーを返します。サポートされていないバージョンのリクエストを受け取った場合、キープロバイダーから返されるエラーの説明は「Unsupported CPIX@version」(サポートされていない CPIX@version です) になります。

    CPIX@version 値をキープロバイダーでオーバーライドすることはできません。

  • エンクリプタは、リクエストされたキーごとに ContentKey@commonEncryptionScheme 属性の値を含めます。この属性に空の値を受け取ると、キープロバイダーは「@for ContentKeycommonEncryptionScheme KID を見逃す」というエラーを返しますid

    一意の CPIX ドキュメントでは、異なる ContentKey@commonEncryptionScheme 属性に複数の値を混在させることはできません。このような組み合わせを受け取ると、キープロバイダーは「非準拠の ContentKey@commonEncryptionScheme combination」という説明のエラーを返すものとします。

    すべての ContentKey@commonEncryptionScheme 値がすべての DRM テクノロジと互換性があるわけではありません。このような組み合わせを受け取ると、キープロバイダーはContentKey「@commonEncryptionScheme non compatible with DRMSystemid」という説明のエラーを返すものとします。

    ContentKey@commonEncryptionScheme 値をキープロバイダーでオーバーライドすることはできません。

  • CPIX レスポンス本文で DRMSystem@PSSHDRMSystem.ContentProtectionData innerXML <pssh> 要素に異なる値を受け取った場合、エンクリプタは停止してエラーをスローします。

CPIX 用の API
  • キープロバイダーは、X-Speke-User-Agent HTTP レスポンスヘッダーの値を含めます。

  • SPEKE 準拠のエンクリプタはクライアントとして機能し、POST オペレーションをキープロバイダーエンドポイントに送信します。

  • エンクリプタは HTTP リクエストヘッダーの値を含め、SPEKE v2X-Speke-Version.0 の「2.0」のように MajorVersionMinorVersion、リクエストで使用される SPEKE バージョンを とします。キープロバイダーがエンクリプタによって使用される SPEKE バージョンを現在のリクエストでサポートしていない場合、キープロバイダーは「Unsupported SPEKE version」(サポート対象外の SPEKE バージョン) という説明を含むエラーを返し、ベストエフォートベースでの CPIX ドキュメントの処理を試行しません。

    キープロバイダーは、エンクリプタによって定義された X-Speke-Version ヘッダー値をリクエストへのレスポンスで変更できません。

  • レスポンス本文でエラーを受信すると、エンクリプタはエラーをスローし、SPEKE v1.0 のバージョニングでリクエストを再試行しません。

    キープロバイダーがエラーを返さないものの、必須情報を含む CPIX ドキュメントを返さない場合、エンクリプタは停止してエラーをスローする必要があります。

次の表は、キープロバイダーがメッセージの本文で返す必要がある標準メッセージをまとめたものです。エラーの場合の HTTP レスポンスコードは 4XX または 5XX になり、200 ではありません。422 エラーコードは SPEKE/CPIX に関連するすべてのエラーに使用できます。

エラーケース エラーメッセージ

CPIX @contentId が定義されていない

Missing CPIX@contentId (CPIX@contentId がありません)

CPIX @version が定義されていない

Missing CPIX@version (CPIX@version がありません)

CPIX@version がサポートされていない

Unsupported CPIX@version (サポート対象外の CPIX@version)

ContentKey@ commonEncryptionScheme は定義されていません

ContentKey@commonEncryptionScheme for KID がありません id ( は ContentKey@kid 値とid等しくなります)

単一の CPIX ドキュメントで使用される複数の ContentKey@commonEncryptionScheme values

非準拠の ContentKey@commonEncryptionScheme combination

ContentKey@ commonEncryptionScheme は DRM テクノロジーと互換性がありません

ContentKeyDRMSystem との互換性commonEncryptionScheme がない id ( は DRMSystem @systemId 値とid等しい)systemId

X-Speke-Version ヘッダー値がサポートされている SPEKE バージョンではない

Unsupported SPEKE version (サポート対象外の SPEKE バージョン)

暗号化契約の形式が正しくない

Malformed encryption contract (不正な形式の暗号化契約)

暗号化契約が DRM のセキュリティレベルの制約と矛盾している

Requested CPIX encryption contract not supported (リクエストされた CPIX 暗号化契約はサポートされていません)

暗号化契約に VideoFilter または AudioFilter 要素が含まれていない

Missing CPIX encryption contract (CPIX 暗号化契約がありません)