SPEKE API v2: componentes de carga estándar - Especificación de API de Secure Packager and Encoder Key Exchange

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

SPEKE API v2: componentes de carga estándar

A través de una única solicitud SPEKE, el encriptador puede solicitar múltiples claves de contenido, junto con la señalización manifiesta necesaria para varios formatos de empaquetado, de acuerdo con el contrato de cifrado definido para un contenido determinado.

Para cubrir todos estos aspectos, un documento CPIX estándar se compone de tres secciones de lista obligatorias, además de una sección de lista opcional para la rotación de claves de contenido en directo.

<cpix:CPIX><cpix: ContentKeyList > sección y elemento de nivel superior

Se trata de una sección obligatoria, relevante tanto para la transmisión en directo como para la de vídeo bajo demanda, en la que se definen las diferentes claves de contenido que debe utilizar el encriptador. El elemento <cpix:ContentKeyList> puede contener uno o varios elementos secundarios <cpix:ContentKey>, cada uno de los cuales describe una clave de contenido distinta.

Según la especificación CPIX, los posibles valores del atributo ContentKey@commonEncryptionScheme se definen en la especificación sobre el cifrado común en los archivos con formato de archivo multimedia de base ISO (ISO/IEC 23001-7:2016):

  • 'cenc': cifrado de muestra completa y submuestra NAL de vídeo en modo AES-CTR

  • 'cbc1': cifrado de muestra completa y submuestra NAL de vídeo en modo AES-CBC

  • 'cens': cifrado de patrón NAL de vídeo parcial en modo AES-CTR

  • 'cbcs': cifrado de patrón NAL de vídeo parcial en modo AES-CBC

El siguiente ejemplo muestra un documento CPIX con una única clave de contenido no cifrada:

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

De forma predeterminada, las claves de contenido no están cifradas, como en el siguiente ejemplo. Sin embargo, el cifrador puede solicitar el cifrado de las claves de contenido mediante la inclusión del elemento<cpix : >. DeliveryDataList Consulte la sección de cifrado de claves de contenido para obtener más información.

Elemento compatible con SPEKE Atributos obligatorios Atributos opcionales Elementos secundarios obligatorios Elementos secundarios opcionales

<cpix:CPIX>

ID de contenido, versión, xmlns:cpix, xmlns:pskc

nombre, xmlns:enc

uno <cpix: ContentKeyList >, uno<cpix:DRM >, uno <cpix : >SystemListContentKeyUsageRuleList

uno <cpix: DeliveryDataList >ContentKeyPeriodList, uno <cpix : >

<cpixContentKeyList: >

-

id

al menos un <cpix : >ContentKey

-

<cpix : >ContentKey

niño, Data commonEncryptionScheme

id, algoritmo, ExpliciTiv

un <pskc:Secret>

-

<pskc:Secret>

PlainValue o EncryptedValue

Valor MAC

-

<enc: EncryptionMethod >, <enc : >CipherData

<cpix:DRM >sección SystemList

Esta es una sección obligatoria, relevante tanto para la transmisión en vivo como para la transmisión bajo demanda, que define los diferentes sistemas DRM que deben aprovecharse junto con las claves de contenido.

El siguiente ejemplo muestra una lista de sistemas DRM con una única especificación de sistema DRM: PlayReady

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

Para obtener una lista completa de los ID de los sistemas DRM, consulte la sección Protección de contenido del repositorio de identificadores DASH-IF.

Elemento compatible con SPEKE Atributos obligatorios Atributos opcionales Elementos secundarios obligatorios Elementos secundarios opcionales

<CPIX:DRM >SystemList

-

id

al menos un <cpix:DRMSystem>

-

<cpix:DRMSystem>

kid, SystemID

id, nombre, PSSH

-

ContentProtectionData, SmoothStreamingProtectionHeaderData, dos SignalingData <cpix:HLS >elementos con un valor de atributo de lista de reproducción diferente

DRMSystem@PSSH es obligatorio si la encapsulación ISO-BMFF se aplica a los segmentos multimedia. El encriptador aprovecha el DRMSystem.ContentProtectionData elemento innerXML <pssh> solo con fines de señalización de manifiestos.

Si DRMSystem@PSSH está presente y DRMSystem.ContentProtectionData contiene un elemento <pssh> innerXML, ambos valores deberán ser idénticos.

Si la señalización DRMSystem se va a incluir en los manifiestos HLS, se deben incluir tanto los elementos <cpix:HLSSignalingData playlist="media"> como los <cpix:HLSSignalingData playlist="master"> en la solicitud y la respuesta del CPIX.

ContentKeyPeriodListsección <cpix : >

Esta es una sección opcional, relevante solo para la transmisión en vivo, que define los períodos criptográficos que se aplican al contenido.

El elemento <cpix:ContentKeyPeriodList> puede contener uno o varios elementos secundarios <cpix:ContentKeyPeriod>, cada uno de los cuales describe un periodo de cifrado distinto en la cronología en directo. El uso de los UUID como parte del valor del atributo id es un enfoque de uso común.

<cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </cpix:ContentKeyPeriodList>
Elemento compatible con SPEKE Atributos obligatorios Atributos opcionales Elementos secundarios obligatorios Elementos secundarios opcionales

<cpix : >ContentKeyPeriodList

-

id

al menos un <cpix : >ContentKeyPeriod

-

<cpix : >ContentKeyPeriod

id, índice

-

-

-

Si se utilizan períodos de cifrado, las claves de cifrado también deben adjuntarse a uno de los períodos cifrados del documento CPIX, como se muestra en la siguiente sección.

sección <cpix : >ContentKeyUsageRuleList

Se trata de una sección obligatoria, relevante tanto para el streaming en directo como para el de vídeo bajo demanda, en la que se define cómo las diferentes claves de contenido protegerán las pistas incluidas en el streamset y en todos los períodos cifrados.

El elemento <cpix: ContentKeyUsageRuleList > puede contener uno o varios elementos secundarios de <cpix: ContentKeyUsageRule >, y cada uno de ellos describe las pistas a las que el cifrador aplica una clave de contenido determinada, posiblemente durante un período de cifrado específico. Es necesario que haya al menos un elemento <cpix: AudioFilter > o un <cpix : >en un elemento <cpix: VideoFilter >. ContentKeyUsageRule

El siguiente ejemplo muestra una lista sencilla con una sola regla que aplica una única clave de contenido a todas las pistas de audio y vídeo durante un periodo de cifrado específico.

<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 compatible con SPEKE Atributos obligatorios Atributos opcionales Elementos secundarios obligatorios Elementos secundarios opcionales

<cpix : >ContentKeyUsageRuleList

-

id

al menos un <cpix : >ContentKeyUsageRule

-

<cpix : >ContentKeyUsageRule

niño, intendedTrackType

-

al menos un <cpix: AudioFilter > o un <cpix : >(*) VideoFilter

<cpix : >KeyPeriodFilter

<cpix : >KeyPeriodFilter

ID de período

-

-

-

<cpix : >AudioFilter

-

minChannels, maxChannels

-

-

<cpix : >VideoFilter

-

minPixels, maxPixels, hdr, minFps, maxFps

-

-

(*) Para obtener una explicación detallada sobre el uso de claves de contenido únicas o múltiples para proteger una o varias pistas de un streamset, consulte la sección de documentación del Contrato de cifrado._