SPEKEAPIv2 - Componenti del payload standard - Specifiche per lo scambio di chiavi Secure Packager ed Encoder API

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SPEKEAPIv2 - Componenti del payload standard

Tramite una singola SPEKE richiesta, l'encryptor può richiedere più chiavi di contenuto, insieme alla necessaria segnalazione Manfest per più formati di imballaggio, in base al contratto di crittografia definito per un determinato contenuto.

Per coprire tutti questi aspetti, un CPIX documento standard è composto da tre sezioni di elenco obbligatorie, più una sezione di elenco opzionale per la rotazione delle chiavi relative ai contenuti in tempo reale.

Sezione <cpix: ContentKeyList > ed elemento <cpix : >di primo livello CPIX

Questa è una sezione obbligatoria, rilevante sia per il live che per VOD lo streaming, che definisce le diverse chiavi di contenuto che devono essere utilizzate dal criptatore. L'<cpix:ContentKeyList>elemento può contenere uno o più elementi <cpix:ContentKey> secondari, ognuno dei quali descrive una chiave di contenuto distinta.

Secondo le CPIX specifiche, i possibili valori dell'ContentKey@commonEncryptionSchemeattributo sono definiti nella specifica Common encryption in ISO base media file format files (ISO/IEC23001-7:2016):

  • 'cenc': AES - CTR modalità di crittografia del campionamento completo e del sottocampione video NAL

  • 'cbc1': AES - CBC modalità di crittografia del campionamento completo e del sottocampione video NAL

  • 'cens': AES - modalità di crittografia parziale del pattern video CTR NAL

  • 'cbcs': AES - CBC modalità di crittografia parziale del pattern video NAL

L'esempio seguente mostra un CPIX documento con un'unica chiave di contenuto non crittografata:

<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>

Per impostazione predefinita, le chiavi di contenuto non sono crittografate, come nell'esempio seguente. Tuttavia, la crittografia delle chiavi di contenuto può essere richiesta dal criptatore mediante l'inclusione dell'elemento<cpix : >. DeliveryDataList Per ulteriori dettagli, consulta la sezione Content Key Encryption.

Elemento supportato da SPEKE Attributi obbligatori Attributi facoltativi Elementi secondari obbligatori Elementi secondari opzionali

<cpix : >CPIX

contentId, versione, xmlns:cpix, xmlns:pskc

nome, xmlns:enc

uno <cpix: ContentKeyList >, uno<cpix : >, uno <cpix : >DRMSystemListContentKeyUsageRuleList

uno<cpix : >, uno <cpix : >DeliveryDataListContentKeyPeriodList

<cpixContentKeyList: >

-

id

almeno un <cpix : >ContentKey

-

<cpix : >ContentKey

ragazzo, Dati commonEncryptionScheme

id, Algoritmo, ExplicitIV

uno <pskc:Secret>

-

<pskc:Secret>

PlainValue o EncryptedValue

Valore MAC

-

<enc: EncryptionMethod >, <enc : >CipherData

Sezione <cpix : >DRMSystemList

Questa è una sezione obbligatoria, rilevante sia per il live che per VOD lo streaming, che definisce i diversi DRM sistemi che devono essere sfruttati insieme alle chiavi di contenuto.

L'esempio seguente mostra un elenco DRM di sistemi con un'unica specifica di PlayReady DRM sistema:

<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>

Per un elenco completo di DRMsystemIDs, consulta la sezione Protezione dei contenuti del repository DASH -IF Identifiers.

Elemento supportato da SPEKE Attributi obbligatori Attributi facoltativi Elementi secondari obbligatori Elementi secondari opzionali

<cpix : >DRMSystemList

-

id

almeno un <cpix : >DRMSystem

-

<cpix : >DRMSystem

bambino, systemId

bambino, nome, PSSH

-

ContentProtectionData, SmoothStreamingProtectionHeaderData, due elementi <cpix: HLSSignalingData > con un valore di attributo di playlist diverso

DRMSystem@PSSHè obbligatorio se ISO - l'BMFFincapsulamento viene applicato ai segmenti multimediali. DRMSystem.ContentProtectionDataXML<pssh>l'elemento interno viene sfruttato dal criptatore solo per scopi di segnalazione manifesta.

Se DRMSystem@PSSH è presente e DRMSystem.ContentProtectionData contiene un XML <pssh> elemento interno, entrambi i valori devono essere identici.

Se la DRMSystem segnalazione deve essere trasmessa nei HLS manifesti, nella CPIX richiesta <cpix:HLSSignalingData playlist="media"> e nella risposta devono essere inclusi sia <cpix:HLSSignalingData playlist="master"> gli elementi a che a.

Sezione <cpix : >ContentKeyPeriodList

Questa è una sezione facoltativa, rilevante solo per lo streaming live, che definisce i periodi crittografici applicati al contenuto.

L'<cpix:ContentKeyPeriodList>elemento può contenere uno o più elementi <cpix:ContentKeyPeriod> secondari, ognuno dei quali descrive un periodo crittografico distinto nella timeline live. L'utilizzo UUIDs come parte del valore dell'attributo id è un approccio comunemente usato.

<cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </cpix:ContentKeyPeriodList>
Elemento supportato da SPEKE Attributi obbligatori Attributi facoltativi Elementi secondari obbligatori Elementi secondari opzionali

<cpix : >ContentKeyPeriodList

-

id

almeno un <cpix : >ContentKeyPeriod

-

<cpix : >ContentKeyPeriod

id, indice

-

-

-

Se si utilizzano periodi crittografici, le chiavi di crittografia devono essere allegate anche a uno dei periodi crittografici del CPIX documento, come mostrato nella sezione seguente.

Sezione <cpix : >ContentKeyUsageRuleList

Questa è una sezione obbligatoria, rilevante sia per il live che per VOD lo streaming, che definisce in che modo le diverse chiavi di contenuto proteggeranno le tracce all'interno dello streamset e durante i periodi crittografici.

L'elemento <cpix: ContentKeyUsageRuleList > può contenere uno o più elementi secondari <cpix: ContentKeyUsageRule >, ognuno dei quali descrive le tracce a cui l'encryptor applica una determinata chiave di contenuto, potenzialmente durante uno specifico periodo di crittografia. È necessario che almeno un elemento <cpix: AudioFilter > o un elemento <cpix : >sia presente in un elemento<cpix : >. VideoFilter ContentKeyUsageRule

L'esempio seguente mostra un elenco semplice con una sola regola che applica una singola chiave di contenuto a tutte le tracce audio e video durante uno specifico periodo crittografico.

<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>
Elemento supportato da SPEKE Attributi obbligatori Attributi facoltativi Elementi secondari obbligatori Elementi secondari opzionali

<cpix : >ContentKeyUsageRuleList

-

id

almeno un <cpix : >ContentKeyUsageRule

-

<cpix : >ContentKeyUsageRule

bambino, intendedTrackType

-

almeno un <cpix: AudioFilter > o un <cpix : >(*) VideoFilter

<cpix : >KeyPeriodFilter

<cpix : >KeyPeriodFilter

periodId

-

-

-

<cpix : >AudioFilter

-

minChannels, maxChannels

-

-

<cpix : >VideoFilter

-

minPixels, leimaxPixels, minFps maxFps

-

-

(*) Per una spiegazione dettagliata sull'uso di una o più chiavi di contenuto per proteggere una o più tracce in uno streamset, consulta la sezione relativa alla documentazione del contratto di crittografia. _