View a markdown version of this page

SPEKE API v2.0 - Componenti del payload standard - Specifica API Elemental Secure Packager and Encoder Key Exchange

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

SPEKE API v2.0 - Componenti del payload standard

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

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

<cpix: ContentKeyList > sezione ed elemento cpix:Cpix di primo livello < >

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

In base alla specifica CPIX, i possibili valori dell'ContentKey@commonEncryptionSchemeattributo sono definiti nella specifica Common encryption in ISO base media file format files (ISO/IEC 23001-7:2016):

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

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

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

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

L'esempio seguente mostra un documento CPIX 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. Ma la crittografia delle chiavi di contenuto può essere richiesta dall'crittografo tramite l'inclusione dell'elemento<cpix : >. DeliveryDataList Per maggiori dettagli, consulta la sezione Content Key Encryption.

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

<cpix:CPIX>

ID contenuto, 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

bambino, comune, Data EncryptionScheme

id, algoritmo, esplicito

uno <pskc:Secret>

-

<pskc:Secret>

PlainValue oppure EncryptedValue

ValueMac

-

<enc: EncryptionMethod >, <enc : >CipherData

<DRMSystemList>cpix: sezione

Questa è una sezione obbligatoria, rilevante sia per lo streaming live che per quello VOD, che definisce i diversi sistemi DRM da sfruttare insieme alle chiavi di contenuto.

L'esempio seguente mostra un elenco di sistemi DRM con una singola PlayReady specifica di sistema 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>

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

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

<cpix : >DRMSystemList

-

id

almeno uno <cpix:DRMSystem>

-

<cpix:DRMSystem>

bambino, SystemID

id, nome, PSSH

-

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

DRMSystem@PSSHè obbligatorio se l' ISO-BMFF incapsulamento viene applicato ai segmenti multimediali. DRMSystem.ContentProtectionDataL'<pssh>elemento InnerXML viene utilizzato dal crittografo solo per scopi di segnalazione manifesta.

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

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

<cpix: sezione ContentKeyPeriodList >

Questa è una sezione opzionale, 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 in tempo reale. L'uso degli UUID 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 vengono utilizzati periodi crittografici, le chiavi di crittografia devono essere allegate anche a uno dei periodi crittografici nel documento CPIX, come mostrato nella sezione seguente.

<cpix: sezione ContentKeyUsageRuleList >

Questa è una sezione obbligatoria, rilevante sia per lo streaming live che per quello VOD, 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 una determinata chiave di contenuto viene applicata dall'crittografatore, potenzialmente durante uno specifico periodo crittografico. È necessario che almeno un elemento <cpix: AudioFilter > o un elemento <cpix : >sia presente in un elemento<cpix : >. VideoFilter ContentKeyUsageRule

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

<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

ragazzino, previsto TrackType

-

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

<cpix : >KeyPeriodFilter

<cpix : >KeyPeriodFilter

Periodo ID

-

-

-

<cpix : >AudioFilter

-

Canali min, canali massimi

-

-

<cpix : >VideoFilter

-

MinPixel, MaxPixel, hdr, 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 della documentazione del contratto di crittografia. SPEKE API v2.0 - Contratto di crittografia _