View a markdown version of this page

API SPEKE v2.0 - 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.0 - Composants de charge utile standard

Grâce à 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'emballage, conformément au contrat de cryptage défini pour un contenu donné.

Afin de couvrir tous ces aspects, un document CPIX standard est composé de trois sections de liste obligatoires, plus 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.

Conformément à la spécification CPIX, les valeurs possibles de l'ContentKey@commonEncryptionSchemeattribut sont définies dans la spécification Common encryption in ISO base media file format specification (ISO/IEC 23001-7:2016) :

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

Par défaut, les clés de contenu ne sont pas cryptées, comme dans l'exemple ci-dessous. Mais le chiffrement des clés de contenu peut être demandé par le chiffreur en incluant l'élément<cpix : >. DeliveryDataList Reportez-vous à la section Cryptage des clés de contenu pour plus de détails.

É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, communEncryptionScheme, données

identifiant, Algorithme, ExplicitIV

un <pskc:Secret>

-

<pskc:Secret>

PlainValue ou EncryptedValue

Value Mac

-

<enc : EncryptionMethod >, <enc : >CipherData

<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 obtenir la liste complète des DRM SystemID, veuillez consulter la section Protection du contenu du référentiel des DASH-IF identificateurs.

É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

-

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

DRMSystem@PSSHest obligatoire si ISO-BMFF l'encapsulation est appliquée à des segments multimédia. DRMSystem.ContentProtectionData<pssh>L'élément InnerXML est utilisé par le chiffreur 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.

Si DRMSystem la signalisation doit être transportée dans les manifestes HLS, les <cpix:HLSSignalingData playlist="master"> éléments a <cpix:HLSSignalingData playlist="media"> et a doivent être inclus dans la demande et la réponse CPIX.

<cpix : section ContentKeyPeriodList >

Il s'agit d'une section facultative, pertinente uniquement pour la diffusion en direct, 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.

<cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </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

-

-

-

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

<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, veuillez consulter la section de documentation du contrat de cryptage. _