View a markdown version of this page

API SPEKE v2.1 - Composants de charge utile standard - Spécification d'API Secure Packager and Encoder Key Exchange

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

API SPEKE v2.1 - Composants de charge utile standard

Au moyen d'une seule requête SPEKE, le chiffreur peut demander plusieurs clés de contenu, ainsi que la signalisation manifeste nécessaire pour plusieurs formats d'empaquetage, conformément au contrat de cryptage défini par le chiffreur pour le contenu.

Pour couvrir tous ces aspects, un document CPIX standard contient trois sections de liste obligatoires et une section de liste facultative pour la rotation des clés de contenu en direct.

<cpix : ContentKeyList > section et élément cPix:cpix de niveau < supérieur >

Il s'agit d'une section obligatoire, applicable à la fois au streaming en direct et à la VOD, qui définit les différentes clés de contenu qui doivent être utilisées par le crypteur. L'<cpix:ContentKeyList>élément peut contenir un ou plusieurs éléments <cpix:ContentKey> enfants, chacun d'entre eux décrivant une clé de contenu distincte.

Selon la spécification CPIX 2.4, la valeur de l'ContentKey@commonEncryptionSchemeattribut doit être un nom de schéma de protection Common Encryption à 4 caractères tel que défini dans ISO/IEC 23001-7:2016, ou l'une des méthodes de cryptage définies dans la spécification HTTP Live Streaming (HLS). Les noms à 4 caractères du schéma de protection Common Encryption sont les suivants :

  • « cenc » : AES-CTR mode échantillonnage complet et cryptage vidéo du sous-échantillon NAL

  • 'cbc1' : AES-CBC mode échantillonnage complet et cryptage vidéo du sous-échantillon NAL

  • « cens » : cryptage du modèle NAL vidéo partiel en AES-CTR mode

  • « cbcs » : AES-CBC mode de cryptage du modèle NAL vidéo partiel

L'exemple suivant montre un document CPIX avec une clé de contenu unique, non chiffrée :

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

Par défaut, les clés de contenu ne sont pas chiffrées, comme dans l'exemple précédent. Mais le chiffreur peut demander le chiffrement de la clé de contenu en incluant l'élément<cpix : >. DeliveryDataList Pour plus d'informations, consultez la section Chiffrement par clé de contenu.

Élément soutenu par SPEKE Attributs obligatoires Attributs facultatifs Éléments obligatoires pour les enfants Éléments facultatifs pour enfants

<cpix:CPIX>

ID de contenu, version, xmlns : cpix, xmlns : pskc

nom, xmlns:enc

un <cpix : ContentKeyList >, un<cpix : >, un <cpix : DRMSystemList > ContentKeyUsageRuleList

un <cpix : DeliveryDataList >, un <cpix : >ContentKeyPeriodList

<cpix : >ContentKeyList

-

id

au moins un <cpix : >ContentKey

-

<cpix : >ContentKey

enfant, commun EncryptionScheme

identifiant, Algorithme, ExplicitIV

un <cpix:Data>(contenant un<pskc:Secret>)

Données HDCP

<pskc:Secret>

-

-

PlainValue ou EncryptedValue

ValueMac,<fr : >, EncryptionMethod <fr : >CipherData

<cpix:HDCPData>

-

Niveau HLS HDCP

-

HDCPOutputProtectionData

<cpix : section DRMSystemList >

Il s'agit d'une section obligatoire, pertinente à la fois pour le streaming en direct et la VOD, qui définit les différents systèmes DRM à exploiter ainsi que les clés de contenu.

L'exemple suivant montre une liste de systèmes DRM avec une seule spécification de système 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>

Pour une liste complète des DRM SystemID, consultez la section Protection du contenu du référentiel d'identificateurs. DASH-IF

Élément soutenu par SPEKE Attributs obligatoires Attributs facultatifs Éléments obligatoires pour les enfants Éléments facultatifs pour enfants

<cpix : >DRMSystemList

-

id

au moins un <cpix:DRMSystem>

-

<cpix:DRMSystem>

enfant, SystemID

identifiant, nom, PSSH, HLSAllowedCPC

-

ContentProtectionData SmoothStreamingProtectionHeaderData, deux éléments <cpix : HLSSignalingData > avec une valeur d'attribut de playlist différente

<cpix : >ContentProtectionData

-

robustesse

-

-

DRMSystem@PSSHest obligatoire si ISO-BMFF l'encapsulation est appliquée à des segments multimédia. Le chiffreur utilise l'<pssh>élément DRMSystem.ContentProtectionData innerXML uniquement à des fins de signalisation manifeste.

S'il DRMSystem@PSSH est présent et DRMSystem.ContentProtectionData contient un <pssh> élément InnerXML, les deux valeurs doivent être identiques.

Pour transmettre la DRMSystem signalisation dans les manifestes HLS, incluez à la fois un <cpix:HLSSignalingData playlist="media"> élément et un <cpix:HLSSignalingData playlist="master"> élément dans la demande et la réponse CPIX.

SPEKE v2.1 peut indiquer la robustesse ou le niveau de protection du contenu attendu pour chaque système DRM. DASH et HLS l'expriment par le biais de différents attributs, décrits dans les paragraphes suivants.

Dans SPEKE v2.1, l'<cpix:ContentProtectionData>élément prend en charge un attribut facultatif@robustness. La valeur de cet attribut est spécifique à la DRM et annonce le niveau de robustesse attendu du système DRM pour les représentations chiffrées par la clé de contenu référencée. Le chiffreur utilise cette valeur comme @robustness attribut de l'ContentProtectionélément du manifeste DASH pour ce système DRM.

Dans SPEKE v2.1, l'<cpix:DRMSystem>élément prend en charge un attribut facultatif@HLSAllowedCPC. Pour le DRM identifié par la @systemId valeur, cet attribut spécifie la valeur à ajouter dans l'ALLOWED-CPCattribut de la EXT-X-STREAM-INF balise dans la liste de lecture multivariante HLS. L'ALLOWED-CPCattribut annonce la configuration de protection du contenu (CPC) prise en charge par le système DRM pour la clé de contenu associée. Cet attribut n'a de sens que lorsqu'une playlist HLS est créée pour le contenu multimédia.

<cpix : section ContentKeyPeriodList >

Il s'agit d'une section facultative, pertinente à la fois pour le streaming en direct et la VOD, qui définit les périodes de chiffrement appliquées au contenu.

L'<cpix:ContentKeyPeriodList>élément peut contenir un ou plusieurs éléments <cpix:ContentKeyPeriod> enfants, chacun d'entre eux décrivant une période cryptographique distincte dans la chronologie en direct. L'utilisation d'UUID dans le cadre de la valeur de l'attribut id est une approche couramment utilisée.

Dans SPEKE v2.1, le chiffreur peut signaler l'intervalle de temps qu'un <cpix:ContentKeyPeriod> couvre, en plus des éléments suivants : @index

  • Pour le contenu en direct, l'@startattribut est l'heure de l'horloge murale pour le début de la période et l'@endattribut est l'heure de l'horloge murale pour la fin de la période. Les deux sont du même typexs:dateTime.

  • Pour le contenu VOD, l'@startOffsetattribut est l'heure de début de la période et l'@endOffsetattribut est l'heure de fin de la période. Les deux sont du même typexs: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>
Élément soutenu par SPEKE Attributs obligatoires Attributs facultatifs Éléments obligatoires pour les enfants Éléments facultatifs pour enfants

<cpix : >ContentKeyPeriodList

-

id

au moins un <cpix : >ContentKeyPeriod

-

<cpix : >ContentKeyPeriod

identifiant, index

début, fin, StartOffset, EndOffset

-

-

Si des périodes de chiffrement sont utilisées, les clés de chiffrement doivent également être associées à l'une des périodes de chiffrement du document CPIX, comme indiqué dans la section suivante.

<cpix : section ContentKeyUsageRuleList >

Il s'agit d'une section obligatoire, pertinente à la fois pour le streaming en direct et la VOD, qui définit comment les différentes clés de contenu protégeront les titres au sein du stream et pendant les périodes de cryptage.

L'élément <cpix : ContentKeyUsageRuleList > peut contenir un ou plusieurs éléments enfants <cpix : ContentKeyUsageRule >, chacun d'eux décrivant les pistes auxquelles une clé de contenu donnée est appliquée par le chiffreur, potentiellement pendant une période de chiffrement spécifique. Au moins un élément <cpix : AudioFilter > ou <cpix : VideoFilter > doit être présent dans un élément<cpix : >. ContentKeyUsageRule

L'exemple suivant présente une liste simple avec une seule règle appliquant une seule clé de contenu à toutes les pistes audio et vidéo pendant une période de chiffrement spécifique.

<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>
Élément soutenu par SPEKE Attributs obligatoires Attributs facultatifs Éléments obligatoires pour les enfants Éléments facultatifs pour enfants

<cpix : >ContentKeyUsageRuleList

-

id

au moins un <cpix : >ContentKeyUsageRule

-

<cpix : >ContentKeyUsageRule

enfant, prévu TrackType

-

au moins un <cpix : AudioFilter > ou un <cpix : >(*) VideoFilter

<cpix : >KeyPeriodFilter

<cpix : >KeyPeriodFilter

ID de période

-

-

-

<cpix : >AudioFilter

-

Nombre de canaux minimum, canaux maximum

-

-

<cpix : >VideoFilter

-

Minpixels, MaxPixels, HDR, MinFPS, MaxFPS

-

-

(*) Pour une explication détaillée de l'utilisation d'une ou de plusieurs clés de contenu pour protéger une ou plusieurs pistes d'un stream, consultez la section documentation du contrat de cryptage. _