Protection du contenu avec chiffrement dynamique et distribution de clés

Logo de Media Services v3


Avertissement

Azure Media Services sera mis hors service le 30 juin 2024. Pour plus d’informations, consultez le Guide de mise hors service AMS.

Utilisez Azure Media Services pour sécuriser votre média à partir du moment où il quitte votre ordinateur jusqu’au stockage, au traitement et à la livraison. Media Services vous permet de transmettre votre contenu dynamique ou à la demande chiffré dynamiquement avec la norme Advanced Encryption Standard (AES-128) ou un des principaux systèmes de gestion des droits numériques (DRM) : Microsoft PlayReady, Google Widevine et Apple FairPlay.

FairPlay Streaming est une technologie Apple qui n’est disponible que pour la vidéo transférée via HTTP Live Streaming (HLS) sur les appareils iOS, sur Apple TV et dans Safari sur macOS. Media Services fournit également un service de distribution de clés AES et licences (PlayReady, Widevine et FairPlay) DRM aux clients autorisés. Si le contenu est chiffré avec une clé en clair AES et est envoyé via HTTPS, il ne s’affiche en clair qu’une fois qu’il atteint le client.

Dans Media Services v3, une clé de contenu est associée à un localisateur de streaming (consultez cet exemple). Si vous utilisez le service de remise de clé Azure Media Services, vous pouvez demander à ce service de générer la clé de contenu pour vous. Vous devez générer la clé de contenu vous-même si vous utilisez votre propre service de remise de clé, ou si vous avez besoin de gérer un scénario de haute disponibilité au cours duquel vous avez besoin d’avoir la même clé de contenu dans deux centres de données.

Lorsqu’un flux est demandé par un lecteur, Media Services utilise la clé spécifiée pour chiffrer dynamiquement votre contenu à l’aide du chiffrement de clé en clair AES ou DRM. Pour déchiffrer le flux, le lecteur demande la clé au service de remise des clés Media Services, ou au service de remise des clés que vous avez spécifié. Pour déterminer si l’utilisateur est autorisé ou non à obtenir la clé, le service évalue la stratégie de clé de contenu que vous avez spécifiée pour la clé.

Système de protection du contenu

Vous pouvez utiliser l’API REST ou le la bibliothèque de client Media Services pour configurer des stratégies d’authentification et d’autorisation pour vos licences et vos clés.

Widevine n’est pas disponible dans la région GovCloud.

Notes

Media Services applique TLS 1.2 pour toutes les demandes adressées aux points d’origine de diffusion en continu de KeyDelivery, de RESTv2, du point de terminaison de streaming et des événements en direct. Les comptes avec une utilisation existante de TLS 1.0 ou 1.1 seront exemptés de cette application. Si vous souhaitez appliquer TLS 1.2 pour toutes vos demandes adressées à ces points de terminaison de services multimédia, contactez le support AMS.

Navigateurs qui prennent en charge les clients DRM

Les navigateurs courants prennent en charge les clients DRM suivants :

Browser Chiffrement
Chrome Widevine
Microsoft Edge, Internet Explorer 11 PlayReady
Firefox Widevine
Opera Widevine
Safari FairPlay

Contrôle de l’accès au contenu

Vous pouvez contrôler qui a accès à votre contenu en configurant la stratégie d’autorisation de clé de contenu. Media Services prend en charge plusieurs méthodes d’autorisation des utilisateurs effectuant des demandes de clé. Le client (lecteur) doit répondre à la stratégie avant que la clé de contenu ne puisse lui être remise. La stratégie de clé de contenu peut contenir une restriction ouverte ou de jeton.

Vous pouvez utiliser une stratégie de clé de contenu limitée à l’ouverture si vous souhaitez attribuer une licence à une personne dépourvue d’autorisation. Par exemple, si vos recettes sont basées sur la publicité plutôt que sur des abonnements.

Avec une stratégie de clé de contenu limitée au jeton, la clé de contenu n’est envoyée qu’à un client qui présente un JSON Web Token ou un simple jeton web (SWT) valides dans la demande de clé ou de licence. Ce jeton doit être émis par un service d’émission de jeton de sécurité (STS).

Utilisation d’Azure AD en tant que STS

Vous pouvez utiliser Azure AD en tant que service d’émission de jeton de sécurité (STS). Il doit être configuré pour créer un jeton signé avec la clé spécifiée et émettre les revendications spécifiées dans la configuration de restriction de jeton. Le service de remise de clé ou de licence Media Services retourne la licence ou la clé demandées au client si les deux conditions suivantes sont réunies :

  • Le jeton est valide.
  • Les revendications dans le jeton correspondent à celles configurées pour la licence ou la clé.

Quand vous configurez la stratégie de restriction par jeton, vous devez définir les paramètres de clé de vérification, émetteur et audience principaux. La clé de vérification principale contient le jeton avec lequel la clé a été signée. L’émetteur est le service STS qui émet le jeton. L’audience, parfois appelé étendue, décrit l’intention du jeton ou de la ressource à laquelle le jeton autorise l’accès. Le service de distribution de clés ou de licences Media Services vérifie que les valeurs dans le jeton correspondent aux valeurs du modèle.

Prévention de réexécution de jeton

La fonctionnalité De prévention de la relecture de jeton vous permet de définir une limite sur le nombre d’utilisations du même jeton pour demander une clé ou une licence. Vous pouvez ajouter une revendication de type urn:microsoft:azure:mediaservices:maxuses dans le jeton, où la valeur correspond au nombre d’utilisations du jeton pour acquérir une licence ou une clé. Toutes les demandes suivantes de remise de clé effectuées à l’aide du même jeton renvoient une réponse Non autorisé.

Considérations

  • Vous devez pouvoir contrôler la génération de jetons. La revendication doit être placée dans le jeton lui-même.
  • Lors de l’utilisation de cette fonctionnalité, les demandes comportant des jetons dont le délai d’expiration est supérieur à une heure après le moment de réception de la demande sont rejetées avec une réponse Non autorisé.
  • Les jetons sont identifiés de façon unique par leur signature. Toute modification apportée à la charge utile (par exemple, une mise à jour de l’heure d’expiration ou de la revendication) a pour effet de modifier la signature du jeton et est considérée comme un nouveau jeton que la fonctionnalité de remise de clé n’a pas encore rencontré.
  • La lecture échoue si le jeton a dépassé la maxuses valeur.
  • Cette fonctionnalité peut être utilisée pour tout contenu protégé existant (seul le jeton émis doit être modifié).
  • Cette fonctionnalité opère avec JWT et SWT.

Utilisation d’un STS personnalisé

Vous pouvez choisir d’utiliser un STS personnalisé pour fournir des jetons. En voici plusieurs raisons :

  • Votre fournisseur d’identité (IdP) ne prend pas en charge le STS.

  • Vous pouvez avoir besoin de contrôler de manière plus souple ou plus stricte l’intégration du STS avec votre système de facturation des abonnés.

    Par exemple, un service OTT peut proposer plusieurs offres d’abonné, par exemple des offres premium, de base et sports. L’opérateur peut chercher à associer les revendications d’un jeton avec l’offre d’un abonné afin que seul le contenu d’une offre spécifique soit mis à disposition. Dans ce cas, un STS personnalisé offre la souplesse et la maîtrise nécessaires.

  • Pour inclure des revendications personnalisées dans le jeton afin de pouvoir opérer une sélection parmi différentes ContentKeyPolicyOptions avec différents paramètres de licence DRM, par exemple une licence d’abonnement ou une licence de location.

  • Pour inclure une revendication représentant l’identificateur de clé de contenu de la clé à laquelle le jeton accorde l’accès.

Lorsque vous utilisez un STS personnalisé, vous devez effectuer deux modifications :

  • Lorsque vous configurez un service de distribution de licences pour une ressource, vous devez spécifier la clé de sécurité utilisée par le STS personnalisé, et non la clé actuelle d’Azure AD.
  • Une fois le jeton JTW généré, une clé de sécurité est spécifiée à la place de la clé privée du certificat X509 courant dans Azure AD.

Il existe deux types de clés de sécurité :

  • Clé symétrique : la même clé est utilisée pour générer et vérifier un jeton JWT.
  • Clé asymétrique : une paire de clés publique-privée dans un certificat X509 est utilisée avec une clé privée pour chiffrer/générer un jeton JWT et avec la clé publique pour vérifier le jeton.

Notes

Si vous utilisez .NET Framework/C# en tant que plateforme de développement, le certificat X509 utilisé pour la clé de sécurité asymétrique doit avoir une longueur d’au moins 2 048 bits. La longueur de clé constitue une exigence de la classe System.IdentityModel.Tokens.X509AsymmetricSecurityKey dans .NET Framework. Dans le cas contraire, l’exception suivante est générée : IDX10630 : La longueur de la signature « System.IdentityModel.Tokens.X509AsymmetricSecurityKey » ne peut pas être inférieure à « 2048 » bits.

Utilisation d’un service de distribution de clés/licences autre que Media Services

Vous pouvez modifier des modèles de stratégie de clés si vous souhaitez utiliser un autre service de distribution de licences/clés.

Guides pratiques, didacticiels et exemples

L’exemple .Net Digital Rights Management vous montre comment implémenter un système multi-DRM avec Media Services v3 à l’aide de .NET.

Il existe des exemples de protection de contenu supplémentaires disponibles pour Node.JS et Python :

Node.JS Python Description
Node.JS Télécharger et diffuser en continu HLS et DASH avec PlayReady et Widevine DRM Python Télécharger et diffuser en continu HLS et DASH avec PlayReady et Widevine DRM Illustre comment encoder et diffuser en streaming à l’aide de Widevine et PlayReady DRM
Node.JS Protection et diffusion en continu de contenu Playready DRM de base Python Protection et diffusion en continu de contenu Playready DRM de base Illustre comment encoder et diffuser en streaming à l’aide de PlayReady DRM
Node.JS Protection et diffusion en continu de contenu Widevine DRM de base Python Protection et diffusion en continu de contenu Widevine DRM de base Illustre comment encoder et diffuser en streaming à l’aide de Widevine DRM

Obtenir de l’aide et du support

Vous pouvez contacter Media Services pour toute question ou suivre nos mises à jour selon l’une des méthodes suivantes :