Processus multi-DRM pour FairPlay multi-drm-workflow-for-fairplay

Les workflows DRM impliquent la création d’un package de votre contenu, l’octroi de licences pour le contenu et la lecture du contenu protégé de votre propre application vidéo. Le workflow est généralement similaire pour chaque solution DRM, mais des différences subsistent dans les détails.

Ce workflow multi-DRM vous guide tout au long de la configuration, du conditionnement, de la licence et de la lecture du contenu HLS protégé par Apple FairPlay. Ce processus comprend également des instructions facultatives pour la mise en oeuvre de la lecture hors ligne et de la rotation des licences.

Activer le service ExpressPlay pour FairPlay enable-expressplay-service-for-fairplay

La solution DRM FairPlay d’Apple nécessite une configuration lorsque vous l’utilisez avec les services DRM ExpressPlay. Cela implique d’obtenir les informations d’identification d’Apple et de les télécharger vers ExpressPlay.

Suivez ces étapes pour activer le service ExpressPlay pour la protection de contenu FairPlay.

  1. Récupérez les informations d’identification d’Apple.

    Ces informations d’identification sont fournies de manière unique à chaque prestataire. Vous devez les demander en remplissant le formulaire suivant : https://developer.apple.com/contact/fps/.

    note note
    NOTE
    Sélectionner Content Provider pour le rôle de Principal.

    Une fois votre demande approuvée, Apple vous enverra un Package de déploiement en flux continu FairPlay.

  2. Générez une demande de signature de certificat.

    Vous pouvez utiliser openssl pour générer votre paire de clés publique/privée et votre demande de signature de certificat (CSR).

    1. Générez votre paire de clés.

      code language-none
      openssl genrsa -aes256 -out privatekey.pem 1024
      
    2. Générez votre demande de signature de certificat.

      code language-none
      openssl req -new -sha1 -key privatekey.pem -out certreq.csr
        -subj "/CN=SubjectName /OU=OrganizationalUnit /O=Organization /C=US"
      
      note note
      NOTE
      Les instructions de cette étape se trouvent dans votre Package de déploiement en flux continu FairPlay, mais sont inclus ici pour votre commodité. Si vous rencontrez des problèmes avec cette partie du processus, consultez les instructions de la section FairPlayCertificateCreation.pdf (dans votre package de déploiement).
  3. Téléchargez votre demande de signature de certificat via le portail destiné aux développeurs Apple.

    1. L’agent d’équipe de votre équipe de développement doit se connecter. developer.apple.com/account.

    2. Cliquez sur Certificates, Identifiers & Profiles, puis sélectionnez la variable iOS, tvOS, watchOS dans le menu déroulant en haut à gauche de la page, puis cliquez sur Certificates->Production sur la gauche de la page.

    3. Cliquez sur le bouton + dans le coin supérieur droit de la page pour demander un nouveau certificat. Sélectionnez la variable FairPlay Streaming Certificate option sous Production.

      La variable Ajout d’un certificat iOS s’ouvre.

    4. Dans le Ajout d’un certificat iOS, téléchargez le fichier CSR que vous avez généré à l’étape 2.b, puis cliquez sur Generate.

      Votre Clé secrète de l’application (ASK) s’affiche dans la même boîte de dialogue.

    5. Écrivez votre requête et stockez-la dans un emplacement sécurisé.

    6. Clé de votre requête pour terminer la génération du certificat et cliquez sur Continue.

    7. Après avoir vérifié que vous avez enregistré votre requête, cliquez sur Generate pour continuer.

      note note
      NOTE
      Il est important que vous enregistriez une copie de votre requête et que vous la stockiez en toute sécurité. Si votre ASK est compromis, vous ne pourrez plus protéger votre contenu avec FairPlay Streaming. Une seule (1) requête est attribuée à votre équipe. La valeur ne sera pas fournie à nouveau et vous ne pourrez pas la récupérer ultérieurement.
    8. Téléchargez votre certificat FPS.

      Veillez à enregistrer une copie de sauvegarde de votre clé privée (à partir de l’étape 2.a) et de votre clé publique (le certificat FPS que vous avez téléchargé au cours de cette étape) en lieu sûr.

  4. Configurez votre compte ExpressPlay avec vos informations d’identification FairPlay.

    1. Supposons que le nom du certificat que vous avez téléchargé à l’étape 3.h soit fairplay.cer.

    2. Ouvrez le fairplay.cer avec l’utilitaire Apple Keychain Access .

    3. Filtrez vos nombreux certificats en saisissant " fairplay" dans le champ de recherche situé en haut à droite.

    4. Identifiez le certificat FairPlay de votre entreprise.

      Le nom de votre société doit être associé au certificat émis par Apple.

    5. Développez le certificat en sélectionnant la flèche Développer, puis cliquez avec le bouton droit de la souris sur votre clé privée.

    6. Sélectionner Export “Your Company Name” et enregistrez la variable .p12 fichier .

      Vous devrez attribuer un mot de passe pour sécuriser ce fichier. Notez ce mot de passe, car vous devrez l’envoyer avec votre package d’informations d’identification.

    7. Connectez-vous à votre compte sur www.expressplay.com.

    8. Cliquez sur DRM SERVICES en haut à gauche, puis sélectionnez l’option FairPlay .

    9. Chargez vos informations d’identification FairPlay dans votre compte ExpressPlay.

      1. Créez un fichier texte contenant la valeur de votre requête ASK (32 caractères, par exemple : 1234567890abcdef1234567890abcdef), puis sélectionnez ce fichier à charger.
      2. Sélectionnez le fichier PKCS12 à l’étape 4.f. pour le transfert.
      3. Saisissez le mot de passe du fichier PKCS12 à l’étape 4.f.
      4. Cliquez sur le bouton Télécharger .

Vous pouvez désormais créer des applications iOS ou des pages HTML5 avec la protection de contenu FairPlay, ainsi que votre fairplay.cer certificat utilisant le service ExpressPlay pour FairPlay.

Regroupez votre contenu pour FairPlay package-your-content-for-fairplay

Pour regrouper votre contenu, vous pouvez utiliser Adobe Offline Packager ou d’autres outils tels que le package Bento4 ExpressPlay.

Les packages préparent la vidéo pour la lecture (par exemple, la fragmentation du fichier d’origine et sa mise dans un manifeste), et protègent la vidéo avec la solution DRM de votre choix (dans ce cas, FairPlay) :

  1. Regroupez votre contenu.

    Voici un exemple de package utilisant Adobe Offline Packager. Le Packager utilise un fichier de configuration (par exemple, fairplay.xml), qui ressemble à ceci :

    code language-none
    <config>
    <in_path>mp4_file_path</in_path>
    <out_type>hls</out_type>
    <out_path>out_file_path</out_path>
    <drm/>
    <drm_sys>FAIRPLAY</drm_sys>
    <frag_dur>4</frag_dur>
    <target_dur>6</target_dur>
    <key_file_path>creds/fairplay.bin</key_file_path>
    <iv_file_path>creds/iv.bin</iv_file_path>
    <key_url>user_provided_value</key_url>
    <content_id>_default_</content_id>
    </config>
    
    • in_path - Cette entrée indique l’emplacement de la vidéo source sur votre machine locale d’emballage.
    • out_type - Cette entrée décrit le type de la sortie empaquetée, dans ce cas HLS pour FairPlay.
    • out_path - Emplacement sur l’ordinateur local sur lequel vous souhaitez que la sortie s’effectue.
    • drm_sys - La solution DRM que vous proposez. Ceci est FAIRPLAY dans ce cas.
    • frag_dur - Durée du fragment en secondes.
    • target_dur - Durée cible de la sortie HLS.
    • key_file_path - Il s’agit de l’emplacement du fichier de licence sur votre ordinateur de package qui sert de clé de chiffrement de contenu (CEK). Il s’agit d’une chaîne hexadécimale de 16 octets codée en base 64.
    • iv_file_path - Il s’agit de l’emplacement du fichier IV sur votre machine d’emballage.
    • key_url - Le paramètre URI de la variable EXT-X-KEY de la balise .m3u8 fichier .
    • content_id - Valeur par défaut.

    Comme indiqué dans la variable Documentation sur Packager, "Il est recommandé de créer un fichier de configuration contenant les options courantes que vous souhaitez utiliser pour générer les sorties. Créez ensuite la sortie en fournissant des options spécifiques sous forme d’argument de ligne de commande."

    code language-none
    java -jar OfflinePackager.jar -in_path sample.mp4 -out_type hls
    -out_path out_file_path -drm -drm_sys FAIRPLAY -key_file_path "creds/fairplay.bin"
    -key_url "user_provided_value"
    

    Le fichier M3U8 généré comporte une EXT-X-KEY qui s’affiche comme suit :

    code language-none
    #EXT-X-KEY:METHOD=SAMPLE-AES,URI="user_provided_value",​
    KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
    

Définition de stratégies pour FairPlay setting-policies-for-fairplay

Vous pouvez définir des stratégies pour le contenu protégé par FairPlay à l’aide d’un serveur de droits. Vous pouvez configurer le vôtre ou utiliser un exemple de serveur de droits fourni par Adobe.

Adobe fournit un exemple de serveur de droits ExpressPlay (SEES) qui indique comment procéder en fonction du temps et liaison d’appareil droits. Cet exemple de serveur de droits repose sur les services ExpressPlay.

Serveur de référence : exemple de serveur de droits ExpressPlay (SEES)

Licences et lecture pour FairPlay licensing-and-playback-for-fairplay

L’autorisation et la lecture de contenu protégé par FairPlay nécessitent l’échange de schémas d’URL, entre le schéma utilisé dans le fichier de manifeste vidéo (skd:) et celui utilisé dans les demandes de jeton ExpressPlay (https:).

Les instructions de mise en oeuvre de la licence et de la lecture d’un client TVSDK iOS sont les suivantes : Activer Apple FairPlay dans les applications TVSDK. Vous pouvez également mettre en oeuvre la lecture hors ligne et la rotation des licences pour FairPlay (facultatif).

HLS hors ligne avec FairPlay section_047A05D1E3B64883858BC601CFC8F759

Vous souhaitez peut-être permettre aux utilisateurs de lire du contenu protégé par FairPlay lorsque son autorisation n’est pas récupérable car le lecteur est isolé du web (par exemple dans un avion).

Avant de commencer cette tâche, téléchargez et lisez le document Apple "Lecture hors ligne avec FairPlay Streaming et HTTP Live Streaming". Lisez le guide pour savoir comment télécharger des segments de flux de transport (TS) et les enregistrer sur votre ordinateur local.

Mettez en oeuvre la lecture hors ligne pour FairPlay avec ce workflow :

  1. Téléchargez le segment HLS TS.
  2. Demandez la licence de location permanente au serveur FairPlay (voir "FairPlay Persistent Rental Policy").
  3. Enregistrez le persistentContentKey.
  4. Lire le contenu FairPlay hors ligne.
NOTE
FairPlay Streaming sur le client ne démarre pas le décryptage si la clé de contenu persistante a expiré. Cependant, l’expérience utilisateur se poursuivra si la clé de contenu expire au cours de la lecture.
Voir Utilisation de la diffusion en continu HTTP pour plus d’informations.

Rotation de la licence FairPlay section_D32AA08C61474B4F876AC2A5F18CB879

La rotation des licences est un schéma destiné à empêcher le piratage de licences de contenu lu pendant longtemps.

Dans un manifeste M3U8, chaque balise clé s’applique aux segments TS suivants jusqu’à la balise clé suivante ou jusqu’à la fin du fichier.

Pour ajouter une rotation de licence, procédez comme suit :

  • Insérez une nouvelle balise de clé FairPlay pendant la rotation de la licence.

    Vous pouvez ajouter n’importe quel nombre de balises clés.

    Pour les contenus linéaires, veillez à conserver la balise clé la plus récente dans la fenêtre M3U8 . iOS demandera le prochain M3U8 lorsqu’il reste environ deux segments TS à lire (environ 20 secondes). Si le nouveau M3U8 contient de nouvelles balises de clés, toutes les demandes de clés se produisent immédiatement. Les clés existantes précédentes ne seront plus demandées. iOS attend la fin de toutes les requêtes clés avant que la lecture ne démarre.

    Pour les contenus VOD avec rotation de licence, toutes les demandes clés se produisent au début de la lecture.

    Voici un exemple de M3U8 avec rotation de clé :

    code language-none
    #EXTM3U
    #EXT-X-TARGETDURATION:10
    #EXT-X-VERSION:5
    #EXT-X-MEDIA-SEQUENCE:0
    #EXT-X-PLAYLIST-TYPE:VOD
    #EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://one?cek=1dc2cc71d913f4f74eca0c4632
    212b25&iv=e21f0f72b6363ff6143737cb1e9ca8d7",KEYFORMAT="com.apple.streaming
    keydelivery",KEYFORMATVERSIONS="1"
    #EXTINF:10,
    fileSequence0.ts
    #EXTINF:10,
    fileSequence1.ts
    #EXTINF:10,
    fileSequence2.ts
    #EXTINF:10,
    fileSequence3.ts
    #EXTINF:10,
    fileSequence4.ts
    #EXTINF:10,
    fileSequence5.ts
    #EXTINF:10,
    fileSequence6.ts
    #EXTINF:10,
    fileSequence7.ts
    #EXTINF:10,
    #EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://two?cek=f6efc698b96cf8f4fa46d5237d
    337c77&iv=18401077091784bcda8079acf978dc95",KEYFORMAT="com.apple.streaming
    keydelivery",KEYFORMATVERSIONS="1"
    #EXTINF:10,
    fileSequence8.ts
    #EXTINF:10,
    
recommendation-more-help
65c6b713-0922-46bf-a817-e70a5a893727