SPEKE API v1 - Chiffrement 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.

SPEKE API v1 - Chiffrement des clés de contenu

Vous pouvez éventuellement ajouter le chiffrement par clé de contenu à votre implémentation SPEKE. Le chiffrement des clés de contenu garantit end-to-end une protection complète en chiffrant les clés de contenu pour le transit, en plus du chiffrement du contenu lui-même. Si vous ne l'implémentez pas pour votre fournisseur de clés, vous comptez sur le chiffrement de la couche de transport associé à une authentification forte pour des raisons de sécurité.

Pour utiliser le chiffrement par clé de contenu pour les chiffreurs exécutés dans le cloud AWS, les clients importent des certificats dans AWS Certificate Manager, puis utilisent les ARN des certificats obtenus pour leurs activités de chiffrement. Le crypteur utilise les ARN du 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 des clés de contenu tel que spécifié dans la spécification DASH-IF CPIX avec les restrictions suivantes :

  • SPEKE ne prend pas en charge la vérification de signature numérique (XMLDSIG) pour les charges utiles de demande ou de réponse.

  • SPEKE nécessite 2048 certificats basés sur la norme RSA.

Ces restrictions sont également répertoriées dans Personnalisations et contraintes relatives à 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>