SPEKE API v2 - 標準ペイロードコンポーネント - Secure Packager および Encoder Key Exchange API の仕様

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

SPEKE API v2 - 標準ペイロードコンポーネント

1 回の SPEKE 要求により、エンクリプタは特定のコンテンツに対して定義された暗号化契約に従って、複数のコンテンツキーを、複数のパッケージ形式に必要なマニフェストシグナリングとともにリクエストすることができます。

これらすべての側面をカバーするために、標準の CPIX ドキュメントは、3 つの必須リストセクションと、ライブコンテンツのキーローテーションのためのオプションのリストセクションで構成されています。

<cpix:ContentKeyList> セクションおよび最上位 <cpix:CPIX> 要素

これは、ライブストリーミングと VOD ストリーミングの両方に関連した必須セクションで、エンクリプタで使用する必要があるさまざまなコンテンツキーを定義します。<cpix:ContentKeyList> 要素には 1 つまたは複数の <cpix:ContentKey> 子要素を含めることができます。それぞれの要素は個別のコンテンツキーについて記述します。

CPIX 仕様に従って、ContentKey@commonEncryptionScheme 属性に使用できる値は、ISO ベースメディアファイル形式ファイルの一般的な暗号化の仕様 (ISO/IEC 23001-7:2016) で定義されています。

  • 'cenc': AES-CTR モードのフルサンプルとビデオ NAL サブサンプル暗号化

  • 'cbc1': AES-CBC モードのフルサンプルとビデオ NAL サブサンプル暗号化

  • 'cens': AES-CTR モードの部分的なビデオ NAL パターン暗号化

  • 'cbcs': AES-CBC モードの部分的なビデオ NAL パターン暗号化

次の例は、暗号化されていない単一のコンテンツキーを持つ CPIX ドキュメントを示しています。

<cpix:CPIX contentId="abc123" version="2.3" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"> <cpix:ContentKeyList> <cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="98ee5596-cd3e-a20d-163a-e382420c6eff" commonEncryptionScheme="cbcs"> <cpix:Data> <pskc:Secret> <pskc:PlainValue>5dGAgwGuUYu4dHeHtNlxJw==</pskc:PlainValue> </pskc:Secret> </cpix:Data> </cpix:ContentKey> </cpix:ContentKeyList> ... </cpix:CPIX>

デフォルトでは、以下の例のように、コンテンツキーは暗号化されません。ただし、<cpix:DeliveryDataList> 要素を含めることで、エンクリプタがコンテンツキーの暗号化をリクエストできます。詳細については、コンテンツキーの暗号化のセクションを参照してください。

SPEKE でサポートされる要素 必須属性 オプションの属性 必須の子要素 オプションの子要素

<cpix:CPIX>

contentId、version、xmlns:cpix、xmlns:pskc

name、xmlns:enc

1 <cpix:ContentKeyList>、1 <cpix:DRM SystemList>、1 <cpix:ContentKeyUsageRuleList>

1 <cpix:DeliveryDataList>、1 <cpix:ContentKeyPeriodList>

<cpix:ContentKeyList>

-

id

少なくとも 1 つの <cpix:ContentKey>

-

<cpix:ContentKey>

kid、 commonEncryptionSchemeData

id、Algorithm、explicitIV

1 つの <pskc:Secret>

-

<pskc:Secret>

PlainValue または EncryptedValue

ValueMAC

-

<enc:EncryptionMethod>、<enc:CipherData>

<cpix:DRM SystemList> セクション

これは、ライブストリーミングと VOD ストリーミングの両方に関連した必須セクションで、コンテンツキーとともに使用する必要があるさまざまな DRM システムを定義します。

次の例は、単一の DRM システム仕様を持つ PlayReady DRM システムリストを示しています。

<cpix:DRMSystemList> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="9a04f079-9840-4286-ab92-e65be0885f95"> <cpix:HLSSignalingData playlist="media">HicXmbZ2m[...]4==</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">HicXmbZ2m[...]jEi</cpix:HLSSignalingData> <cpix:ContentProtectionData>t7WwH24FI[...]YCC</cpix:ContentProtectionData> <cpix:PSSH>FFFFanBzc[...]A==</cpix:PSSH> <cpix:SmoothStreamingProtectionHeaderData>s5RrJ12HL[...]UBB</cpix:SmoothStreamingProtectionHeaderData> </cpix:DRMSystem> </cpix:DRMSystemList>

DRM SystemID の完全なリストについては、DASH-IF 識別子リポジトリのコンテンツ保護セクションを参照してください。

SPEKE でサポートされる要素 必須属性 オプションの属性 必須の子要素 オプションの子要素

<cpix:DRM SystemList>

-

id

少なくとも 1 つの <cpix:DRMSystem>

-

<cpix:DRMSystem>

kid、systemId

id、name、PSSH

-

ContentProtectionData、 SmoothStreamingProtectionHeaderData2 つの <cpix:HLS SignalingData> 要素と異なるプレイリスト属性値

ISO-BMFF カプセル化がメディアセグメントに適用されている場合、DRMSystem@PSSH は必須です。DRMSystem.ContentProtectionData innerXML <pssh> 要素は、マニフェストシグナリングの目的でのみ、エンクリプタによって利用されます。

DRMSystem@PSSH が存在し、DRMSystem.ContentProtectionData に innerXML <pssh> 要素が含まれている場合、両方の値は同じでなければなりません。

DRMSystem シグナリングが HLS マニフェストで伝送される場合、CPIX リクエストとレスポンスには、<cpix:HLSSignalingData playlist="media"> 要素と <cpix:HLSSignalingData playlist="master"> 要素の両方が含まれている必要があります。

<cpix:ContentKeyPeriodList> セクション

これは、ライブストリーミングにのみ関連するオプションのセクションで、コンテンツに適用される暗号化期間を定義します。

<cpix:ContentKeyPeriodList> 要素には 1 つまたは複数の <cpix:ContentKeyPeriod> 子要素を含めることができます。それぞれの要素はライブタイムラインの個別の暗号化期間について記述します。id 属性の値の一部として UUID を使用することは、一般的に使用されるアプローチです。

<cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </cpix:ContentKeyPeriodList>
SPEKE でサポートされる要素 必須属性 オプションの属性 必須の子要素 オプションの子要素

<cpix:ContentKeyPeriodList>

-

id

少なくとも 1 つの <cpix:ContentKeyPeriod>

-

<cpix:ContentKeyPeriod>

id、index

-

-

-

暗号化期間を使用する場合は、次のセクションに示すように、CPIX ドキュメント内のいずれかの暗号化期間に暗号化キーをアタッチする必要があります。

<cpix:ContentKeyUsageRuleList> セクション

これは、ライブストリーミングと VOD ストリーミングの両方に関連する必須セクションであり、暗号化期間にわたってストリームセット内でさまざまなコンテンツキーがトラックを保護する方法を定義します。

<cpix:ContentKeyUsageRuleList> 要素には、1 つまたは複数の <cpix:ContentKeyUsageRule> 子要素を含めることができます。各要素は、特定の暗号化期間中に特定のコンテンツキーがエンクリプタによって適用されるトラックを記述します。<cpix:AudioFilter> 要素に少なくとも 1 つの <cpix:VideoFilter> ContentKeyUsageRule要素が存在する必要があります。

次の例は、特定の暗号化期間中にすべてのオーディオトラックとビデオトラックに 1 つのコンテンツキーを適用するというルールのみを含む単純なリストを示しています。

<cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="ALL"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
SPEKE でサポートされる要素 必須属性 オプションの属性 必須の子要素 オプションの子要素

<cpix:ContentKeyUsageRuleList>

-

id

少なくとも 1 つの <cpix:ContentKeyUsageRule>

-

<cpix:ContentKeyUsageRule>

kid、 intendedTrackType

-

少なくとも 1 つの <cpix:AudioFilter> または 1 つの <cpix:VideoFilter> (*)

<cpix:KeyPeriodFilter>

<cpix:KeyPeriodFilter>

periodId

-

-

-

<cpix:AudioFilter>

-

minChannels、maxChannels

-

-

<cpix:VideoFilter>

-

minPixels、maxPixels、hdr、minFps、maxFps

-

-

(*) ストリームセット内の 1 つまたは複数のトラックを保護するために単一または複数のコンテンツキーを使用することに関する詳細な説明については、ドキュメントの暗号化契約セクションを参照してください。_