SPEKE API v1: cifrado de claves de contenido - Especificación de API de Secure Packager and Encoder Key Exchange

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.

SPEKE API v1: cifrado de claves de contenido

Si lo desea, puede añadir el cifrado de claves de contenido en la implementación de SPEKE. 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 en los encriptadores que se ejecutan en la nube de AWS, los clientes importan certificados en AWS Certificate Manager y, a continuación, utilizan los ARN de los certificados resultantes para sus actividades de cifrado. El encriptador utiliza los ARN de los certificados y el servicio ACM para proporcionar claves de contenido cifradas al proveedor de claves de DRM.

Restricciones

SPEKE admite el cifrado de claves de contenido tal y como se establece en la especificación DASH-IF CPIX con las siguientes restricciones:

  • SPEKE no admite la verificación de firma digital (XMLDSIG) para cargas de solicitud o respuesta.

  • SPEKE requiere 2048 certificados basados en RSA.

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

Implementación del cifrado de claves de contenido

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

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