翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SPEKE API v2.1 - 暗号化契約
暗号化契約は、トラックの特性に基づいて、どのコンテンツキーが特定のストリームセット内のどのトラックを保護しているかを定義します。
ストリームセット内の異なるトラックに複数のコンテンツキーを使用することは、推奨される業界のベストプラクティスです。必須ではありませんが、少なくとも 2 つの異なるコンテンツキーを使用することをお勧めします。1 つはオーディオトラック用、もう 1 つはビデオトラック用です。単一のコンテンツキーを使用して複数のトラックを暗号化できます。ただし、エンクリプタはキープロバイダーに送信する CPIX ドキュメントでこれを明示的に通知する必要があります。一般的に、エンクリプタは常に必要なコンテンツキーの数と、それらを使用してさまざまなメディアトラックを暗号化する方法を正確に記述します。
Principles
暗号化契約は、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> |
いいえ |
該当なし |
該当なし |
VideoFilter の CPIX 仕様によると、[minPixels, maxPixels] は両方のディメンションのすべての包含範囲ですが、(minFps, maxFps] は maxFps ディメンションに対してのみ包含されます。AudioFilter の場合、[minChannels, maxChannels] は両方のディメンションの包含範囲です。
問題のある状況
暗号化契約で提供される情報が部分的、あいまい、または誤りである場合があります。このような場合、エンクリプタとキープロバイダーが適切に動作し、コンテンツが適切に保護されていることを保証することが重要です。次の表に、このような状況での推奨される動作を示します。
| 状況 | エンクリプタアクション | キープロバイダーアクション |
|---|---|---|
|
ストリームセット内の 1 つまたは複数のトラックにルールが適用されない (以下の例 3 を参照) |
エンクリプタは、(CPIX ペイロードの外部の) 設定を確認し、関係するトラックが暗号化を必要としないことを確認する必要があります。想定と異なる場合、エンクリプタはエラーをスローして、処理を停止する必要があります。 |
該当なし: キープロバイダーはストリームセット構造を把握していません。 |
|
複数のルールが重複し、特定のトラックを暗号化するために複数のコンテンツキーが提案される |
エンクリプタは、ドキュメントの順番で正常に評価された最後の ContentKeyUsageRule を適用する必要があります。 |
該当なし: キープロバイダーはストリームセット構造を把握していません。 |
|
暗号化契約が単一の SPEKE リクエスト/レスポンスサイクルで変更される |
キープロバイダーは暗号化契約を定義する責任がないため、エンクリプタは例外を発生させて処理を停止する必要があります。 |
この状況がそもそも発生しないようにするために、キープロバイダーが SPEKE 要求の CPIX ペイロードで受信した暗号化契約を変更しないようにする必要があります。 |
|
不正な形式の暗号化契約: intendedTrackType/filters カーディナリティ制約例外、サポートされていないフィルターまたは属性 |
エンクリプタは例外を発生させ、処理を停止し、SPEKE リクエストをキープロバイダーに送信しないものとします。これは、コンテンツが誤って保護されたり、一部のトラックが保護されないままになる可能性が高いためです。 |
キープロバイダーは例外を発生させ、「Malformed encryption contract」(不正な形式の暗号化契約) エラーを返します。 |
|
暗号化契約の形式は正しいが、DRM のセキュリティレベルの制約に違反している。例えば、オーディオトラックと UHD ビデオトラックの両方を保護するために、単一のコンテンツキーが要求されている |
この場合、誤ったコンテンツ保護が行われる可能性が非常に高いため、エンクリプタが DRM セキュリティレベルの制約を把握している場合には、例外を発生させて処理を停止し、SPEKE リクエストをキープロバイダーに送信しません。 |
キープロバイダーは例外を発生させ、「Requested CPIX encryption contract not supported」(リクエストされた CPIX 暗号化契約はサポートされていません) エラーを返します。 |
|
暗号化契約がない |
エンクリプタは、VideoFilter 要素または AudioFilter 要素を含まない CPIX ドキュメントを送信しません。 |
キープロバイダーは例外を発生させ、「Missing CPIX encryption contract」(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/HD2/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 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="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>
例 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"/> <cpix: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>