View a markdown version of this page

SPEKE API v2.0: 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.0: 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: elemento cpix:cpix de ContentKeyList > sección y 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 valores posibles del ContentKey@commonEncryptionScheme atributo se definen en la especificación sobre el cifrado común en archivos con formato de archivo multimedia de base ISO (23001-7:2016): ISO/IEC

  • «cenc»: AES-CTR modo de cifrado de submuestra (NAL) y muestra completa de vídeo

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

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

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

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

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

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

<cpixContentKeyList: >

-

id

al menos un <cpix : >ContentKey

-

<cpix : >ContentKey

niño, común, Data EncryptionScheme

id, algoritmo, ExpliciTiv

un <pskc:Secret>

-

<pskc:Secret>

PlainValue o bien EncryptedValue

Valor MAC

-

<enc: EncryptionMethod >, <enc : >CipherData

<cpix: sección DRMSystemList >

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 sola especificación de sistema PlayReady 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>

Para obtener una lista completa de los ID del sistema 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

DRMSystemList<cpix : >

-

id

al menos un <cpix:DRMSystem>

-

<cpix:DRMSystem>

kid, SystemID

id, nombre, PSSH

-

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

DRMSystem@PSSHes obligatorio si la ISO-BMFF encapsulación se aplica a los segmentos multimedia. DRMSystem.ContentProtectionDataEl cifrador aprovecha el <pssh> elemento innerXML únicamente 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.

<ContentKeyPeriodList>cpix: sección

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.

<cpix: sección 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 >, cada uno de los cuales describe las pistas a las que el cifrador aplica una clave de contenido determinada, posiblemente durante un período criptográfico específico. Es necesario que al menos un elemento <cpix: AudioFilter > o <cpix : >esté presente 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, pretendido TrackType

-

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