Système de bout en bout simple
En règle générale, Microsoft PlayReady protège le contenu en fournissant des licences pour les fichiers multimédias. Il n’est pas nécessaire de masquer les fichiers, de les rendre inaccessibles ou de mettre en place une protection spéciale lorsque les fichiers sont transmis du système au système. En d’autres termes, il n’y a pas de configuration requise du système d’exploitation ou de mécanismes de transport de fichiers de haute sécurité nécessaires. Toutefois, la copie d’un fichier et sa remise à un ami ne permet pas à cet ami d’utiliser le fichier s’il est protégé par PlayReady. Pour utiliser un fichier multimédia, les utilisateurs ont besoin d’une licence. Cette licence est le principal moyen d’exercer le contrôle sur le contenu (le fichier multimédia). Une licence est accordée à un seul client (tel qu’un lecteur multimédia) ou à un domaine. La licence ne fonctionnera pas sur d’autres clients ou d’autres domaines.
Chaque licence contient des droits et des restrictions, définissant exactement la façon dont le contenu peut être utilisé et dans quelles conditions. Par exemple, une licence de fichier de musique peut activer un « droit à lire », mais restreindre le niveau de sécurité de l’application sur lequel le contenu peut être lu. La licence peut être valide pour la période comprise entre le 1er octobre 2017 et le 1er novembre 2017. Il peut y avoir plusieurs licences pour un seul fichier. Un utilisateur pourra accéder à son contenu et l’utiliser tant que l’une des licences accorde les droits appropriés et que les restrictions n’empêchent pas l’accès.
Vue d’ensemble d’un service vidéo de bout en bout
L’illustration suivante contient un aperçu général d’un service vidéo de bout en bout, y compris le back-end du service à gauche et les clients à droite.
Sur le côté gauche de l’illustration, vous pouvez voir que le service dispose de certains serveurs pour diffuser en continu la vidéo (réseau de distribution de contenu). Il existe également certains serveurs qui permettent aux utilisateurs de parcourir le contenu et de choisir le contenu qu’ils souhaitent lire (interface utilisateur). En outre, certains serveurs permettent aux utilisateurs de se connecter et d’être authentifiés, ainsi que de payer pour le contenu (authentification, paiement). Il existe également un serveur de licences PlayReady.
Sur le côté droit de l’illustration sont les clients. Les clients peuvent être Windows applications, applications de smartphone ou appareils spécifiques tels que les zones supérieures, les récepteurs réseau, et ainsi de suite. Certains de ces clients peuvent être fournis avec un client intégré PlayReady dans leurs joueurs, par exemple, l’OEM peut avoir intégré PlayReady dans le système d’exploitation ou dans le matériel. D’autres peuvent être fournis avec un client intégré à l’application publiée dans l’App Store. Il existe de nombreuses options différentes pour que les joueurs intègrent PlayReady côté client.
Cette rubrique va se concentrer sur ce que Fait PlayReady pour un service, comme illustré dans la figure suivante.
Ce que PlayReady fournit est un moyen pour un client de demander des licences à partir d’un serveur, qui remet ensuite les clés qui protègent le contenu dans un formulaire protégé sur un réseau ouvert. La deuxième chose que PlayReady fait est de fournir des droits et des restrictions de droit au client. Avec PlayReady, le service a la possibilité de fournir une clé pour la lecture de contenu, mais, par exemple, autoriser le client à utiliser cette clé pendant deux jours dans un scénario de location. PlayReady permet donc de déclarer des droits et des restrictions appropriées avec la clé.
PlayReady offre également un moyen de stocker de manière plus sécurisée la clé de contenu côté client afin que le client puisse utiliser cette clé client pour déchiffrer le contenu pour le rendu, mais pas autoriser l’enregistrement du contenu dans l’espace clair et le partage avec d’autres utilisateurs.
Pour vous assurer que les clients PlayReady se comportent correctement, PlayReady nécessite des implémentations matérielles et logicielles pour suivre les règles de conformité et de robustesse. Ces règles régissent le comportement d’un client lorsqu’il déchiffre ou traite du contenu PlayReady. Ils exigent également que les clients traitent correctement les restrictions trouvées dans une licence. Par conséquent, si un client reçoit des instructions pour utiliser la clé de contenu pendant plus de 48 heures, le client doit suivre ces instructions. Ces règles sont fournies par Microsoft dans les règles de conformité et de robustesse, et il incombe au développeur client d’appliquer ces règles dans ses clients.
Processus de chiffrement et de licence de base
Les étapes suivantes illustrent le processus de chiffrement et de licence de bout en bout pour le contenu et la façon dont PlayReady est impliqué dans le processus.
La figure suivante contient un élément multimédia ( un fichier audio/vidéo ) qui n’a pas été chiffré. La méthode utilisée pour chiffrer le contenu est entièrement à la hauteur du fournisseur de contenu et n’est pas fournie dans le cadre de PlayReady.
Pour chiffrer ce fichier, le service doit utiliser un générateur de clés dans son chiffreur de contenu qui génère une nouvelle clé de contenu qui sera utilisée pour chiffrer le contenu. Cette clé de contenu sera remise ultérieurement du serveur de licences PlayReady au client pour autoriser le déchiffrement du contenu et le rendu pour l’utilisateur. Outre la clé de contenu, qui est une valeur privée, les services de chiffrement associent également un identificateur de clé (KeyID), qui est un GUID, à la clé de contenu. KeyID est une valeur publique.
La clé et keyID sont conçues au moment du chiffrement et sont stockées dans un système de gestion des clés, qui est généralement un type de base de données. PlayReady ne fournit pas le système de gestion des clés. Il incombe donc au service ou au partenaire qui crée le service auprès du radiodiffuseur pour fournir le système de gestion des clés.
Outre le stockage de la clé et du KeyID dans le système de gestion des clés, vous devez également ajuster keyID à un packager, ce qui génère ensuite un en-tête. Cet en-tête est mis en forme par le service ou le partenaire en fonction de la spécification de l’en-tête PlayReady, puis ajusté dans l’en-tête du fichier de contenu.
À ce stade, l’audio et la vidéo seront chiffrés à l’aide de KeyID, et vous disposerez d’un fichier de contenu chiffré prêt à être remis à un client.
À présent, le client peut commencer à consommer le contenu. La première chose que le client va probablement faire est d’authentifier l’utilisateur auprès du service, généralement en fournissant un nom de connexion et un mot de passe, mais tout autre mécanisme d’authentification de l’utilisateur et de l’appareil est correct. En règle générale, un jeton de session est retourné au client une fois que l’utilisateur est vérifié. Notez que quel que soit le mécanisme utilisé pour l’authentification de l’utilisateur, il incombe entièrement au service de l’authentification de l’utilisateur ; PlayReady ne fournit pas cette technologie.
Ensuite, le contenu est remis au client (par exemple, le client a commencé à télécharger une partie du flux de données qui compose le contenu). Le client commence ensuite à analyser ce contenu et découvre qu’il est chiffré et utilise une clé inconnue, mais contient un KeyID.
À ce stade, le client envoie une demande d’acquisition de licence au serveur de licences.
Le serveur de licences s’interface ensuite avec le service d’authentification pour vérifier l’utilisateur. En général, la première chose que le serveur de licences fait est de vérifier que le client/l’utilisateur a le droit pour cette licence particulière. Et encore une fois, PlayReady ne fournit pas cette disposition (authentification), nous fournissons simplement le serveur de licences. Le service d’authentification répond généralement avec oui ou non, ou peut-être oui avec des restrictions (par exemple, cet utilisateur a le droit pour ce film particulier, mais seulement à une qualité inférieure de la vidéo, car l’utilisateur n’a pas le niveau d’abonnement de qualité le plus élevé - en fonction du montant payé par l’utilisateur par mois).
Ensuite, le serveur de licences demande la valeur de la clé, en fonction du KeyID, du système de gestion des clés qui stocke les clés, et le système de gestion des clés répond à cette demande. Juste pour répéter, PlayReady ne fournit pas les composants du système de gestion de clés. Il y aura donc une demande provenant du serveur de licences PlayReady vers le composant que le service a créé pour stocker les clés.
La clé est reçue par le serveur de licences et le serveur de licences peut fournir la licence. La réponse de licence PlayReady protégée inclut la valeur de la clé et une liste de droits et de restrictions appropriées pour que le client s’applique.
Bien que cette démonstration montre que le serveur de licences PlayReady ne fournit qu’une seule clé, il est possible que le serveur de licences fournisse une pile de licences dans une réponse de licence. Plusieurs licences peuvent être incluses dans une transaction, chaque licence fournissant une clé si le contenu est protégé par plusieurs clés ou si le service souhaite fournir plusieurs clés à l’avance, car, par exemple, le service sait que l’utilisateur va écouter huit pistes dans une ligne.
L’autre élément de technologie fourni par PlayReady est un moyen de stocker la clé et les droits dans le client, qui est appelé magasin de licences.
Le magasin de licences est généralement appelé HDS, car la structure du magasin de licences est un magasin de données haché. Il peut y avoir plusieurs types de magasins de licences sur un appareil : une application peut contenir son propre HDS pour s’assurer que le système HDS d’une entreprise n’est pas dans le même fichier que le hdS d’une autre entreprise. Il appartient entièrement au développeur client de faire ce choix de conception. Par exemple, en utilisant PlayReady sur Windows, Microsoft a choisi d’avoir un HDS pour Internet Explorer et un autre pour Microsoft Edge par site, ainsi qu’un pour chaque application universelle Windows.
Le hdS peut être stocké de manière persistante, par exemple sur le disque dur ou la mémoire persistante de l’appareil, ou il peut être stocké de manière non persistante, par exemple en mémoire non persistante. Par conséquent, lorsque le serveur de licences émet une licence, il peut définir une propriété de la licence indiquant que la licence ne doit pas être stockée sur le disque dur du client, ou dans le cas d’une zone ou d’un téléphone défini, qu’elle ne doit pas être stockée en mémoire persistante, car, en tant que service, vous ne souhaitez pas que vos licences soient stockées en mémoire persistante. Dans ce cas, il suffit de stocker le HDS en mémoire dans le contexte de l’application de lecteur. Dès que l’utilisateur ferme l’application de lecteur, la licence et ses droits disparaîtront.