View a markdown version of this page

API SPEKE v2.1 - 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à.

API SPEKE v2.1 - 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 imballaggio, in base al contratto di crittografia definito dall'crittografo per il contenuto.

Per coprire tutti questi aspetti, un documento CPIX standard contiene tre sezioni di elenco obbligatorie e una sezione di elenco opzionale per la rotazione delle chiavi dei contenuti live.

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

Secondo la specifica CPIX 2.4, il valore dell'ContentKey@commonEncryptionSchemeattributo deve essere un nome di schema di protezione Common Encryption di 4 caratteri come definito in ISO/IEC 23001-7:2016o uno dei metodi di crittografia definiti nella specifica HTTP Live Streaming (HLS). I nomi dello schema di protezione Common Encryption a 4 caratteri sono:

  • '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.4" 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 precedente. Ma l'encoptor può richiedere la crittografia delle chiavi dei contenuti includendo l'elemento<cpix : >. DeliveryDataList Per ulteriori informazioni, consulta Crittografia delle chiavi dei contenuti. API SPEKE v2.1 - Crittografia delle chiavi dei contenuti

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 EncryptionScheme

id, algoritmo, ExplicitIV

<pskc:Secret>uno <cpix:Data>(contenente uno)

dati HDCP

<pskc:Secret>

-

-

PlainValue oppure EncryptedValue

ValoreMac, <enc: EncryptionMethod >, <enc : >CipherData

<cpix:HDCPData>

-

Livello HLSHDCP

-

HDCPOutputProtectionData

<cpix: sezione DRMSystemList >

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

-

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

<cpix : >ContentProtectionData

-

robustezza

-

-

DRMSystem@PSSHè obbligatorio se l' ISO-BMFF incapsulamento viene applicato ai segmenti multimediali. L'encoptor utilizza l'DRMSystem.ContentProtectionDataelemento innerXML <pssh> solo per scopi di segnalazione manifesta.

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

Per inserire DRMSystem segnali nei manifesti HLS, includete sia un <cpix:HLSSignalingData playlist="media"> elemento che un <cpix:HLSSignalingData playlist="master"> elemento nella richiesta e risposta CPIX.

SPEKE v2.1 può segnalare la robustezza del DRM o il livello di protezione dei contenuti previsto per ciascun sistema DRM. DASH e HLS lo esprimono attraverso diversi attributi, descritti nei paragrafi seguenti.

In SPEKE v2.1, l'<cpix:ContentProtectionData>elemento supporta un attributo opzionale. @robustness Il valore di questo attributo è specifico del DRM e indica il livello di robustezza previsto dal sistema DRM per le rappresentazioni crittografate dalla chiave di contenuto di riferimento. L'encoptor utilizza questo valore come @robustness attributo dell'ContentProtectionelemento nel manifesto DASH per questo sistema DRM.

In SPEKE v2.1, l'elemento supporta un attributo opzionale<cpix:DRMSystem>. @HLSAllowedCPC Per il DRM identificato dal @systemId valore, questo attributo specifica il valore da aggiungere nell'attributo del EXT-X-STREAM-INF tag nella playlist ALLOWED-CPC multivariante HLS. L'ALLOWED-CPCattributo annuncia la configurazione di protezione dei contenuti (CPC) supportata dal sistema DRM per la chiave di contenuto associata. Questo attributo ha significato solo quando viene creata una playlist HLS per i contenuti multimediali.

<cpix: sezione ContentKeyPeriodList >

Questa è una sezione opzionale, rilevante sia per lo streaming live che per quello VOD, 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.

In SPEKE v2.1, l'encoptor può segnalare l'intervallo di tempo <cpix:ContentKeyPeriod> coperto da a, oltre a: @index

  • Per i contenuti live, l'@startattributo è l'ora da parete per l'inizio del periodo e l'@endattributo è l'ora da parete per la fine del periodo. Entrambi sono di tipoxs:dateTime.

  • Per i contenuti VOD, l'@startOffsetattributo è l'ora di inizio del periodo e l'@endOffsetattributo è l'ora di fine del periodo. Entrambi sono di tipoxs:duration.

<cpix:ContentKeyPeriodList>
	<cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" start="2026-01-01T00:00:00Z" end="2026-01-01T00:00:06Z" />
</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

inizio, fine, startOffset, endOffset

-

-

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 sulla documentazione del contratto di crittografia. SPEKE API v2.1 - Contratto di crittografia _