SPEKE API v2 - 暗号化契約 - Secure Packager と Encoder Key Exchange APIの仕様

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

SPEKE API v2 - 暗号化契約

暗号化契約は、トラックの特性に基づいて、どのコンテンツキーが特定のストリームセット内のどのトラックを保護しているかを定義します。

ストリームセット内の異なるトラックに複数のコンテンツキーを使用することが、必須ではないものの、業界のベストプラクティスとして推奨されています。少なくとも 2 つの異なるコンテンツキー (オーディオトラック用に 1 つとビデオトラック用に 1 つ) を使用するようにしてください。1 つのコンテンツキーを使用して複数のトラックを暗号化することは可能ですが、エンクリプタからキープロバイダーに送信されるCPIXドキュメントで明示的にシグナルを送信する必要があります。一般的に、エンクリプタは、必要なコンテンツキーの数と、それらがさまざまなメディアトラックの暗号化にどのように活用されるかを常に正確に記述します。

原則

暗号化契約は、CPIXドキュメントの <cpix:ContentKeyUsageRuleList>セクションにあります。このセクションでは、<cpix:ContentKeyList> セクションで定義された各コンテンツキーは、特定の <cpix:ContentKeyUsageRule> 要素に対応します。これには以下が含まれます。

  • 1 つ以上のサブコンポーネントを参照できる ContentKeyUsageRule@intendedTrackType 属性。複数のサブコンポーネントが使用されている場合は、「+」記号で区切られます。ContentKeyUsageRule@intendedTrackType の値は暗号化契約では一意であり、複数の ContentKeyUsageRule 要素で使用することはできません。

  • 1 つまたは複数の <cpix:AudioFilter> または <cpix:VideoFilter> 子要素 (ContentKeyUsageRule@intendedTrackType 属性の値に応じます)。

この関係を規定するルールは次のとおりです。

  • ストリームセットのすべてのオーディオトラックとビデオトラックを一意のコンテンツキーで保護する必要がある場合は、文字列 'ALL'ContentKeyUsageRule@intendedTrackType 属性値として使用する必要があります。例 1 は、このようなユースケースを示しています。この状況では、属性を持たない <cpix:AudioFilter /> 子属性と <cpix:VideoFilter /> 子属性の両方を含める必要があります。<cpix:AudioFilter> 要素や <cpix:VideoFilter> 要素のその他の組み合わせは、この特定のコンテキストでは無効です。

  • それ以外のすべてのユースケースでは、ContentKeyUsageRule@intendedTrackType 属性の値は自由に定義でき、<cpix:AudioFilter /> 子要素と <cpix:VideoFilter /> 子要素の数は、「+」記号で集計されたサブコンポーネントの数に対応する必要があります。例 2/3/4/5/6/7/9/10 は、ContentKeyUsageRule@intendedTrackType 属性の値に単一のサブコンポーネントが存在する場合のこの要件を示しています。例 8 は、複数のサブコンポーネントが使用される場合を示しています。ここで、ContentKeyUsageRule@intendedTrackType="SD+HD" は異なる属性値を持つ 2 つの別個の <cpix:VideoFilter> 子要素によって記述され、ContentKeyUsageRule@intendedTrackType="HDR+HFR+UHD" は異なる属性値を持つ 3 つの別個の <cpix:VideoFilter> 子要素によって記述されています。

フィルター

CPIX は複数のフィルタリング要素と属性を定義しますが、そのサブセットのみSPEKEをサポートします。次の表では、これらの違いを要約しています。

CPIX フィルタータイプ 全体的なSPEKEサポート でサポートされている属性をフィルタリングする SPEKE でサポートされていないフィルター属性 SPEKE

<cpix:VideoFilter>

あり

minPixels、maxPixels、hdr、minFps、 maxFps (オプションの属性)

wcg

<cpix:AudioFilter>

あり

minChannels, maxChannels (オプションの属性)

<cpix:KeyPeriodFilter>

あり

periodId (必須属性)

<cpix:BitrateFilter>

なし

該当なし

該当なし

<cpix:LabelFilter>

なし

該当なし

該当なし

のCPIX仕様に従って VideoFilter、〔minPixels, maxPixels] は両方のディメンションのすべての包含範囲であり、(minFps, maxFps] は maxFps ディメンションのみの包含範囲です。 AudioFilterの場合、〔minChannels, maxChannels] は両方のディメンションに含まれる範囲です。

問題のある状況

暗号化契約で提供される情報が、部分的、あいまい、または誤りである状況があります。このような場合、エンクリプタとキープロバイダーが適切に動作し、コンテンツが適切に保護されていることを保証することが重要です。次の表に、このような状況での推奨される動作を示します。

状況 エンクリプタの動作 キープロバイダーの動作

ストリームセット内の 1 つまたは複数のトラックにルールが適用されない (以下の例 3 を参照)

エンクリプタは (CPIXペイロードの外部で) 設定を確認し、関連するトラックが暗号化を必要としないことを確認する必要があります。想定と異なる場合、エンクリプタはエラーをスローして、処理を停止する必要があります。

該当なし: キープロバイダーはストリームセット構造を把握していません。

複数のルールが重複し、特定のトラックを暗号化するために複数のコンテンツキーが提案される

エンクリプタは、最後に ContentKeyUsageRule 正常に評価された をドキュメントの順序で適用する必要があります。

該当なし: キープロバイダーはストリームセット構造を把握していません。

暗号化契約は 1 回のSPEKEリクエスト/レスポンスサイクルで変更されます。

キープロバイダーは暗号化契約を定義する役割を負わないため、エンクリプタは例外を発生させ、処理を停止します。

この状況が最初に発生しないように、キープロバイダーはSPEKEリクエストのCPIXペイロードで受信した暗号化契約を変更しないでください。

不正な形式の暗号化契約: intendedTrackType/フィルター基数制約例外、サポートされていないフィルターまたは属性

エンクリプタは例外を発生させ、処理を停止し、SPEKEリクエストをキープロバイダーに送信しないものとします。これは、コンテンツ保護が誤って行われるか、一部のトラックが保護されない可能性が高いためです。

キープロバイダーは例外を発生させ、「Malformed encryption contract」(不正な形式の暗号化契約) エラーを返します。

暗号化契約は整いましたが、DRMセキュリティレベルの制約に違反しています。例えば、オーディオトラックとUHDビデオトラックの両方を保護するために単一のコンテンツキーがリクエストされています。

エンクリプタがDRMセキュリティレベルの制約を把握している場合、コンテンツ保護が誤って行われる可能性が高いため、例外を発生させ、処理を停止し、キープロバイダーにSPEKEリクエストを送信しないでください。

キープロバイダーは例外を発生させ、「リクエストされたCPIX暗号化契約がサポートされていない」エラーを返します。

暗号化契約がない

エンクリプタは、 VideoFilter または AudioFilter 要素を含まないCPIXドキュメントを送信しません。

キープロバイダーは例外を発生させ、CPIX「暗号化契約の欠落」エラーを返します。

暗号化契約の例

例 1: すべてのオーディオトラックとビデオトラックに 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>

例 2: すべてのビデオトラックに 1 つのコンテンツキー、すべてのオーディオトラックに 1 つのコンテンツキー

<cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 3: すべてのオーディオトラックと暗号化されていないビデオトラックに 1 つのコンテンツキー

<cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 4: 異なるビデオトラック (SD/HD) に複数のコンテンツキー、すべてのオーディオトラックに 1 つのコンテンツキー

<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD video tracks (more than 1024x576) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 5: 異なるビデオトラック (SD/HD/UHD) に複数のコンテンツキー、すべてのオーディオトラックに 1 つのコンテンツキー

<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD video tracks (more than 1024x576, up to 1920x1080) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" maxPixels="2073600" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD video tracks (more than 1920x1080) --> <cpix:ContentKeyUsageRule kid="75c6fa78-8b5d-6d75-9653-26f41b78d1a3" intendedTrackType="UHD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="2073601" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 6: 異なるビデオトラック (SD/HD/UHD1/UHD2) に複数のコンテンツキー、すべてのオーディオトラックに 1 つのコンテンツキー

<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD video tracks (more than 1024x576, up to 1920x1080) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" maxPixels="2073600" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD1 video tracks (more than 1920x1080, up to 4096x2160) --> <cpix:ContentKeyUsageRule kid="75c6fa78-8b5d-6d75-9653-26f41b78d1a3" intendedTrackType="UHD1"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="2073601" maxPixels="8847360" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD2 video tracks (more than 4096x2160) --> <cpix:ContentKeyUsageRule kid="63d2ec36-6b7c-9f34-4546-97d01f36f7c5" intendedTrackType="UHD2"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="8847361" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 7: 異なるビデオトラック (SD/HD1/HD2UHD1//UHD2) に複数のコンテンツキー、すべてのオーディオトラックに 1 つのコンテンツキー

<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD1 video tracks (more than 1024x576, up to 1280x720) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD1"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" maxPixels="921600" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD2 video tracks (more than 1280x720, up to 1920x1080) --> <cpix:ContentKeyUsageRule kid="cda406d8-9d87-4f76-92da-31110e756176" intendedTrackType="HD2"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="921601" maxPixels="2073600" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD1 video tracks (more than 1920x1080, up to 4096x2160) --> <cpix:ContentKeyUsageRule kid="75c6fa78-8b5d-6d75-9653-26f41b78d1a3" intendedTrackType="UHD1"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="2073601" maxPixels="8847360" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD2 video tracks (more than 4096x2160) --> <cpix:ContentKeyUsageRule kid="63d2ec36-6b7c-9f34-4546-97d01f36f7c5" intendedTrackType="UHD2"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="8847361" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 8: 異なるビデオトラック (複数の属性タイプに基づく) に複数のコンテンツキー、すべてのオーディオトラックに 1 つのコンテンツキー

<cpix:ContentKeyUsageRuleList> <!-- Rule for SD and HD video tracks--> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD+HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="442368" maxFps="30" hdr="false"/> <cpix:VideoFilter minPixels="442369" maxPixels="2073600" maxFps="30" hdr="false"/> </cpix:ContentKeyUsageRule> <!-- Rule for HDR, HFR and UHD video tracks--> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HDR+HFR+UHD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter hdr="true" /> <cpix:VideoFilter minFps="30" /> <cpix:VideoFilter minPixels="20736001" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks--> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 9: すべてのビデオトラックに 1 つのコンテンツキー、ステレオおよびマルチチャネルオーディオトラックに複数のコンテンツキー

<cpix:ContentKeyUsageRuleList> <!-- Rule for video tracks--> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <!-- Rule for stereo audio tracks--> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="STEREO_AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter maxChannels="2"/> </cpix:ContentKeyUsageRule> <!-- Rule for multichannel audio tracks--> <cpix:ContentKeyUsageRule kid="7ae8e96f-309e-42c3-a510-24023d923373" intendedTrackType="MULTICHANNEL_AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <AudioFilter minChannels="3"/> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

例 10: すべてのビデオトラックに 1 つのコンテンツキー、ステレオおよび 2 つの種類のマルチチャネルオーディオトラックに複数のコンテンツキー

<cpix:ContentKeyUsageRuleList> <!-- Rule for video tracks--> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <!-- Rule for stereo audio tracks--> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="STEREO_AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter maxChannels="2"/> </cpix:ContentKeyUsageRule> <!-- Rule for multichannel audio tracks (3 to 6 channels)--> <cpix:ContentKeyUsageRule kid="7ae8e96f-309e-42c3-a510-24023d923373" intendedTrackType="MULTICHANNEL_AUDIO_3_6"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter minChannels="3" maxChannels="6"/> </cpix:ContentKeyUsageRule> <!-- Rule for multichannel audio tracks (7 channels and more)--> <cpix:ContentKeyUsageRule kid="81eb3761-55ff-4d22-a31d-94f01bbfd8ba" intendedTrackType="MULTICHANNEL_AUDIO_7"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter minChannels="7"/> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>