SPEKEAPIv1: cifrado de claves de contenido - Especificación de intercambio seguro de claves de empaquetador y codificador API

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

SPEKEAPIv1: cifrado de claves de contenido

Si lo desea, puede añadir el cifrado de claves de contenido a su SPEKE implementación. El cifrado de claves de contenido garantiza una end-to-end protección total al cifrar las claves de contenido para su tránsito, además de cifrar el contenido en sí. Si no implementa esta funcionalidad para su proveedor de claves, debe utilizar el cifrado de capa de transporte junto con un sólido mecanismo de autenticación para garantizar la seguridad.

Para utilizar el cifrado de claves de contenido para los cifradores que se ejecutan en AWS Cloud, los clientes importan los certificados al AWS Certificate Manager y, a continuación, utilizan el certificado resultante ARNs para sus actividades de cifrado. El cifrador usa el certificado ARNs y el ACM servicio para proporcionar claves de contenido cifradas al DRM proveedor de claves.

Restricciones

SPEKEadmite el cifrado de claves de contenido tal como se especifica en la CPIX especificación DASH -IF con las siguientes restricciones:

  • SPEKEno admite la verificación de firma digital (XMLDSIG) para las cargas útiles de solicitud o respuesta.

  • SPEKErequiere certificados RSA basados en 2048.

Estas restricciones también se enumeran en Personalizaciones y restricciones de la especificación DASH -IF.

Implementación del cifrado de claves de contenido

Para proporcionar el cifrado de claves de contenido, incluya lo siguiente en las implementaciones de su proveedor de DRM claves:

  • Administre el elemento <cpix:DeliveryDataList> en las cargas de las solicitudes y las respuestas.

  • Proporcione valores cifrados en el elemento <cpix:ContentKeyList> de las cargas de respuesta.

Para obtener más información sobre estos elementos, consulte la especificación DASH-IF CPIX 2.0.

Ejemplo del elemento <cpix:DeliveryDataList> de cifrado de claves de contenido en la carga de una solicitud

En el siguiente ejemplo se resalta el elemento <cpix:DeliveryDataList> en negrita:

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

Ejemplo del elemento <cpix:DeliveryDataList> de cifrado de claves de contenido en la carga de una respuesta

En el siguiente ejemplo se resalta el elemento <cpix:DeliveryDataList> en negrita:

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

Ejemplo del elemento <cpix:ContentKeyList> de cifrado de claves de contenido en la carga de una respuesta

En el ejemplo siguiente se muestra la gestión de las claves de contenido cifradas en el elemento <cpix:ContentKeyList> de la carga de respuesta. Aquí se utiliza el elemento <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 comparación, el siguiente ejemplo muestra una carga de respuesta similar con la clave de contenido entregada sin cifrar, como una clave sin cifrar. Aquí se utiliza el elemento <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>