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 par clé de contenu
Vous pouvez éventuellement ajouter le chiffrement par clé de contenu à votre implémentation SPEKE. Le chiffrement de clé de contenu garantit une protection totale de bout en bout en chiffrant les clés de contenu en transit, en plus de chiffrer le contenu lui-même. Si vous ne l'implémentez pas pour votre fournisseur de clés, vous vous fiez au chiffrement de la couche transport et à une authentification renforcée pour la 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 de certificat qui en résultent 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 par clé 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 des signatures numériques (XMLDSIG) pour les charges utiles de demande ou de réponse.
-
SPEKE nécessite 2048 certificats RSA-based .
Ces restrictions sont également répertoriées dans Personnalisations et contraintes de la DASH-IF spécification.
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 plus d'informations sur ces éléments, consultez 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>