Protección de contenido con cifrado dinámico
Advertencia
Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS.
Use Azure Media Services para proteger los medios desde el momento en que deja el equipo hasta el almacenamiento, el procesamiento y la entrega. Con Media Services puede entregar el contenido cifrado de forma dinámica en vivo y a petición con el Estándar de cifrado avanzado (AES-128) o cualquiera de los tres sistemas de administración de derechos digitales (DRM) principales: Microsoft PlayReady, Google Widevine y Apple FairPlay.
FairPlay Streaming es una tecnología de Apple que solo está disponible para el vídeo transferido a través de HTTP Live Streaming (HLS) en dispositivos iOS, en Apple TV y en Safari en macOS. Media Services también proporciona un servicio para entregar claves AES y licencias de DMR (PlayReady, Widevine y FairPlay) a los clientes autorizados. Si el contenido está cifrado con una clave sin cifrado AES y se envía a través de HTTPS, no será claro hasta que llegue al cliente.
En Media Services v3, una clave de contenido se asocia con un localizador de streaming (consulte este ejemplo). Si usa el servicio de entrega de claves de Media Services, puede permitir que Azure Media Services genere la clave de contenido automáticamente. La clave de contenido la debería generar usted mismo si usa su propio servicio de claves o si tiene que controlar un escenario de alta disponibilidad en el que necesita tener la misma clave de contenido en dos centros de datos.
Cuando un reproductor solicita una transmisión, Media Services usa la clave especificada para cifrar de forma dinámica el contenido mediante la clave sin cifrado de AES o el cifrado DRM. Para descifrar la secuencia, el reproductor solicitará la clave del servicio de entrega de claves de Media Services o la del servicio que especifique. Para determinar si el usuario tiene autorización para obtener la clave, el servicio evalúa la directiva de claves de contenido que especificó para la clave.
Puede usar la API REST o una biblioteca cliente de Media Services para configurar las directivas de autorización y autenticación de sus licencias y claves.
Widevine no está disponible en la región de Azure GovCloud.
Nota:
Los servicios multimedia aplicarán la versión de TLS 1.2 a todas las solicitudes de KeyDelivery, RESTv2, el punto de conexión de streaming y los orígenes de streaming de eventos en directo. Las cuentas que usen las versiones de TLS 1.0 o 1.1 existentes estarán exentas de esta aplicación. Si quiere aplicar TLS 1.2 en todas las solicitudes de estos puntos de conexión de servicios multimedia, póngase en contacto con el soporte técnico de AMS.
Exploradores que admiten clientes DRM
Los exploradores comunes admiten los siguientes clientes DRM:
Browser | Cifrado |
---|---|
Chrome | Widevine |
Microsoft Edge, Internet Explorer 11 | PlayReady |
Firefox | Widevine |
Opera | Widevine |
Safari | FairPlay |
Control del acceso al contenido
Puede controlar quién tiene acceso a su contenido configurando la directiva de claves de contenido. Media Services admite varias formas de autorizar a los usuarios que realizan solicitudes de clave. El cliente (reproductor) debe cumplir la directiva antes de que se pueda entregar la clave al cliente. La directiva de claves de contenido puede tener una restricción de apertura o de token.
Se puede usar una directiva de clave de contenido con restricción abierta cuando se desea emitir una licencia a cualquier persona sin autorización. Por ejemplo, si los ingresos se basan en AD y no en la suscripción.
Con una directiva de clave de contenido con restricción de token, la clave de contenido solo se enviará a un cliente que presente un token JWT o un token web simple (SWT) válidos en la solicitud de clave o licencia. Este token debe ser emitido por un STS.
Uso de Azure AD como STS
Puedes usar Azure AD com un STS. Debe estar configurado para crear un token firmado con las notificaciones de clave y emisión que especificaste en la configuración de restricción de tokens. El servicio de entrega de claves o licencias de Media Services devuelve la licencia o clave solicitada al cliente si se cumplen estas dos condiciones:
- El token es válido.
- Las notificaciones del token coinciden con las configuradas para la licencia o la clave.
Al configurar la directiva de restricción de token, debe especificar los parámetros de clave de comprobación principal, el emisor y el público. La clave de comprobación principal contiene la clave con la que se firmó el token. El emisor es el STS que emite el token. El público, a veces denominado ámbito, describe la intención del token o del recurso cuyo acceso está autorizado por el token. El servicio de entrega de claves o licencias de Media Services valida que los valores del token coincidan con los de la plantilla.
Prevención de reproducción de tokens
La característica Prevención de reproducción de tokens permite establecer un límite en cuántas veces se puede usar el mismo token para solicitar una clave o una licencia. Puede agregar una notificación de tipo urn:microsoft:azure:mediaservices:maxuses
en el token, donde el valor es el número de veces que se puede usar el token para adquirir una licencia o una clave. Todas las solicitudes subsiguientes con el mismo token para la entrega de claves devolverán una respuesta no autorizada.
Consideraciones
- Debes deben tener control sobre la generación de tokens. La notificación debe colocarse en el propio token.
- Cuando se usa esta característica, las solicitudes con tokens cuya hora de expiración sea superior a una hora desde el momento en que se reciba la solicitud se rechazan con una respuesta no autorizada.
- Los tokens se identifican de forma única mediante su firma. Cualquier cambio en la carga útil (por ejemplo, la actualización a la hora de expiración o la notificación) cambia la firma del token y se contará como un nuevo token con el que la entrega de claves no se ha encontrado antes.
- Se produce un error en la reproducción si el token ha superado el
maxuses
valor. - Esta característica se puede usar para todo el contenido protegido existente (solo se debe cambiar el token emitido).
- Funciona con JWT y también con SWT.
Uso de un STS personalizado
Puedes optar por usar un servicio de token de seguridad personalizado para proporcionar tokens. Entre los motivos se incluyen:
Tu proveedor de identidad (IDP) no soporta STS.
Tal vez necesites un control más flexible o más estricto para integrar el servicio de token de seguridad con tu sistema de facturación.
Por ejemplo, un operador de serviciod OTT puede ofrecer varios paquetes de suscriptor, por ejemplo, prémium, básico y deportes. El operador puede querer hacer coincidir las notificaciones de un token con el paquete de un suscriptor de forma que solo el contenido de un paquete específico esté disponible. En este caso, un STS personalizado proporciona la flexibilidad y el control necesarios.
Para incluir las notificaciones personalizadas en el token y seleccionar entre diferentes ContentKeyPolicyOptions con distintos parámetros de licencia DRM (una licencia de suscripción en lugar de una licencia de alquiler).
Para incluir una notificación que represente el identificador de clave de contenido de la clave a la que el token concede acceso.
Cuando se utiliza un servicio de token de seguridad personalizado, se deben realizar dos cambios:
- Al configurar un servicio de entrega de licencias para un recurso, debes especificar la clave de seguridad utilizada para la comprobación por el servicio de token de seguridad personalizado en lugar de la clave actual de Azure AD.
- Cuando se genera un token JTW, se especifica una clave de seguridad en lugar de la clave privada del certificado X509 actual en Azure AD.
Hay dos tipos de claves de seguridad:
- Clave simétrica: La misma clave se usa para generar y verificar un token JWT.
- Clave asimétrica: Se usa un par de claves público-privadas de un certificado X509 junto con la clave privada para cifrar o generar un token JWT y con la clave pública para verificar el token.
Nota
Si utiliza .NET Framework o C# como plataforma de desarrollo, el certificado X509 usado en una clave de seguridad asimétrica debe tener una longitud de clave de al menos 2048. Esta longitud de clave es un requisito de la clase System.IdentityModel.Tokens.X509AsymmetricSecurityKey en .NET Framework. De lo contrario, se produce la siguiente excepción: IDX10630: El valor "System.IdentityModel.Tokens.X509AsymmetricSecurityKey" para la firma no puede ser menor que 2048 bits.
Uso de un servicio de entrega de claves o licencia distinto de Media Services
Puedes editar plantillas de directiva de claves si desea usar otro servicio de entrega de licencias o claves.
Guías, tutoriales y ejemplos
En el ejemplo de .Net Digital Rights Management se muestra cómo implementar un sistema de varios DRM con Media Services v3 mediante .NET.
Hay ejemplos de protección de contenido adicionales disponibles para Node.JS y Python:
Node.JS | Python | Descripción |
---|---|---|
Carga y transmisión Node.js mediante HLS y DASH con DRM de PlayReady y Widevine | Carga y transmisión Python mediante HLS y DASH con DRM de PlayReady y Widevine | Muestra cómo codificar y transmitir mediante DRM de Widevine y PlayReady. |
Protección básica de contenido Node.js DRM de Playready y streaming | Protección básica de contenido Python DRM de Playready y streaming | Muestra cómo codificar y transmitir mediante DRM de Widevine y PlayReady |
Protección básica de contenido Node.js DRM de Widevine y streaming | Protección básica de contenido Python DRM de Widevine y streaming | Muestra cómo codificar y transmitir mediante DRM de Widevine y PlayReady |
Obtener ayuda y soporte técnico
Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes:
- PREGUNTAS Y RESPUESTAS
-
Stack Overflow. Etiquete preguntas con
azure-media-services
. - @MSFTAzureMedia o use @AzureSupport para solicitar soporte técnico.
- Abra una incidencia de soporte técnico a través del Azure Portal.