API SPEKE v1 - Cryptage des clés de contenu - 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 v1 - Cryptage des clés de contenu

Si vous le souhaitez, vous pouvez ajouter le chiffrement de clé de contenu à votre implémentation SPEKE. Le chiffrement de la clé de contenu garantit end-to-end en chiffrant les clés de contenu en transit, en plus de chiffrer le contenu lui-même. Si vous n'implémentez pas cette fonctionnalité pour votre fournisseur de clés, vous comptez sur le chiffrement de la couche de transport plus sur une authentification solide pour assurer la sécurité.

Pour utiliser le chiffrement de clé de contenu pour les chiffreurs qui s'exécutent dans le cloud AWS, les clients importent des certificats dans AWS Certificate Manager, puis utilisent les ARN de certificat générés pour leurs activités de chiffrement. Le chiffreur utilise les ARN de certificat et le service ACM pour fournir des clés de contenu chiffrées au fournisseur de clés DRM.

Restrictions

SPEKE prend en charge le chiffrement de clé de contenu, comme indiqué dans la spécification DASH-IF CPIX, avec les restrictions suivantes :

  • SPEKE ne prend pas en charge la vérification des signatures numériques (XMLDSIG) pour les charges utiles de demandes ou de réponses.

  • SPEKE nécessite 2048 certificats RSA.

Ces restrictions sont également répertoriées dansPersonnalisations et contraintes pour la spécification DASH-IF.

Implémentation du chiffrement de clé de contenu

Pour fournir un chiffrement de clé de contenu, incluez les éléments suivants dans vos implémentations de fournisseur de clés DRM :

  • Traitez l'élément <cpix:DeliveryDataList> dans les charges utiles de demande et de réponse.

  • Fournissez des valeurs chiffrées dans l'élément <cpix:ContentKeyList> des charges utiles de réponse.

Pour de plus amples informations sur ces éléments, veuillez consulter la spécification DASH-IF CPIX 2.0.

Exemple d'élément de chiffrement de clé de contenu <cpix:DeliveryDataList> dans la charge utile de requête

L'exemple suivant met en évidence l'élément <cpix:DeliveryDataList> ajouté en gras :

<?xml version="1.0" encoding="UTF-8"?> <cpix:CPIX id="example-test-doc-encryption" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:speke="urn:aws:amazon:com:speke"> <cpix:DeliveryDataList> <cpix:DeliveryData id="<ORIGIN SERVER ID>"> <cpix:DeliveryKey> <ds:X509Data> <ds:X509Certificate><X.509 CERTIFICATE, BASE-64 ENCODED></ds:X509Certificate> </ds:X509Data> </cpix:DeliveryKey> </cpix:DeliveryData> </cpix:DeliveryDataList> <cpix:ContentKeyList> ... </cpix:ContentKeyList> </cpix:CPIX>

Exemple d'élément de chiffrement de clé de contenu <cpix:DeliveryDataList> dans la charge utile de réponse

L'exemple suivant met en évidence l'élément <cpix:DeliveryDataList> ajouté en gras :

<cpix:CPIX xmlns:cpix="urn:dashif:org:cpix" xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:speke="urn:aws:amazon:com:speke" id="hls_test_001"> <cpix:DeliveryDataList> <cpix:DeliveryData id="<ORIGIN SERVER ID>"> <cpix:DeliveryKey> <ds:X509Data> <ds:X509Certificate><X.509 CERTIFICATE, BASE-64 ENCODED></ds:X509Certificate> </ds:X509Data> </cpix:DeliveryKey> <cpix:DocumentKey Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"> <cpix:Data> <pskc:Secret> <pskc:EncryptedValue> <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" /> <enc:CipherData> <enc:CipherValue><RSA CIPHER VALUE></enc:CipherValue> </enc:CipherData> </pskc:EncryptedValue> <pskc:ValueMAC>qnei/5TsfUwDu+8bhsZrLjDRDngvmnUZD2eva7SfXWw=</pskc:ValueMAC> </pskc:Secret> </cpix:Data> </cpix:DocumentKey> <cpix:MACMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512"> <cpix:Key> <pskc:EncryptedValue> <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" /> <enc:CipherData> <enc:CipherValue><RSA CIPHER VALUE></enc:CipherValue> </enc:CipherData> </pskc:EncryptedValue> <pskc:ValueMAC>DGqdpHUfFKxdsO9+EWrPjtdTCVfjPLwwtzEcFC/j0xY=</pskc:ValueMAC> </cpix:Key> </cpix:MACMethod> </cpix:DeliveryData> </cpix:DeliveryDataList> <cpix:ContentKeyList> ... </cpix:ContentKeyList> </cpix:CPIX>

Exemple d'élément de chiffrement de clé de contenu <cpix:ContentKeyList> dans la charge utile de réponse

L'exemple suivant illustre le traitement de la clé de contenu chiffrée dans l'élément <cpix:ContentKeyList> de la charge utile de réponse. Elle utilise l'élément <pskc:EncryptedValue> :

<cpix:ContentKeyList> <cpix:ContentKey kid="682681c8-69fa-4434-9f9f-1a7f5389ec02"> <cpix:Data> <pskc:Secret> <pskc:EncryptedValue> <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> <enc:CipherData> <enc:CipherValue>NJYebfvJ2TdMm3k6v+rLNVYb0NoTJoTLBBdbpe8nmilEfp82SKa7MkqTn2lmQBPB</enc:CipherValue> </enc:CipherData> </pskc:EncryptedValue> <pskc:ValueMAC>t9lW4WCebfS1GP+dh0IicMs+2+jnrAmfDa4WU6VGHc4=</pskc:ValueMAC> </pskc:Secret> </cpix:Data> </cpix:ContentKey> </cpix:ContentKeyList>

En comparaison, l'exemple suivant affiche une charge utile de réponse similaire avec la clé de contenu non chiffrée, comme une clé en clair. Elle utilise l'élément <pskc:PlainValue> :

<cpix:ContentKeyList> <cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="682681c8-69fa-4434-9f9f-1a7f5389ec02"> <cpix:Data> <pskc:Secret> <pskc:PlainValue>5dGAgwGuUYu4dHeHtNlxJw==</pskc:PlainValue> </pskc:Secret> </cpix:Data> </cpix:ContentKey> </cpix:ContentKeyList>