DRM コンテンツの暗号化
    • PDF

    DRM コンテンツの暗号化

    • PDF

    記事の要約

    One Click Multi DRMは、Live Stationを含め CPIXベースの APIを活用した DRMコンテンツを Encryptionできる機能をサポートします。

    参考
    • CPIX APIは、DASH産業フォーラムで定義した Content Protection Information Exchange Format(CPIX)標準ガイドに従って実装された APIで、メディアコンテンツのパッケージング過程でマルチ DRMを適用するために必要なキーを連携する規格を定義します。
    • APIを利用すると、CPIXベースのキー連携をサポートするエンコーダ/トランスコーダソリューションと PallyConマルチ DRMを簡単に連携できます。
    • サイト作成完了後、サイトを有効化状態にしてからライセンス発行が可能です。
    • One Click Multi DRMは、Naver Cloud Live Station商品と簡単な連携をサポートします。連携ガイドの詳細は、Live Station DRM適用ガイドをご参照ください。

    One Click Multi DRM活用のためのコンテンツ暗号化の適用

    区分パス説明
    PallyCon CPIX APIPallycon CPIX Clientガイドに移動するPallyConで実装した CPIX APIで、エンコーダ/トランスコーダソリューション企業に該当する APIで PallyConマルチ DRMと連携可能。Flussonic Media Serverとの連携で PallyCon CPIX APIを適用
    SPEKE APISPEKEガイドに移動するAWS Elementalで実装した CPIX APIで、PallyConと事前連携して AWS Elementalメディアサービスの MediaPackageまたは MediaConvert製品で PallyConマルチ DRMを簡単に適用可能。SPEKE API連携の詳細はガイドをご参照ください
    ATEME NEA-DVR CPIX APIガイドに移動するAnevia(ATEMEに買収)に実装した CPIX APIで、NEA-DVRソリューションと事前連携して PallyConマルチ DRMと簡単に適用可能
    参考
    • PallyCon CPIX APIクライアントは、主要開発言語ごとに事前に実装した CPIXクライアントモジュールを提供します。
    • このモジュールには、KMSサーバと通信のための XML規格のリクエストデータ作成とレスポンスデータ解析機能が実装されています。

    Pallycon CPIX APIのサポートスペック

    現在、PallyCon CPIX APIクライアントは次のスペックをサポートしています。

    項目サポートスペック説明
    開発言語C++, C#, Java, PythonDRMパッケージング開発環境による言語別サンプル提供
    DRMのタイプWidevine, PlayReady, FairPlay, NCG, HLS_NCG- NCG: PallyConそのものが DRMである NCG規格でパッケージング対象ファイル全体を暗号化する際に使用
    - HLS_NCG: AES-128暗号化した HLSコンテンツのキーを NCG規格で暗号化する方式
    暗号化方式CENC, CBC1, CENS, CBCSクライアントプラットフォームでサポートする AES暗号化方式により、一般的に CENCまたは CBCSを指定
    トラックタイプALL_TRACKS, AUDIO, SD, HD, UHD1, UHD2マルチキーパッケージング時にトラック別に異なる暗号化キーを適用するために使用

    マルチ DRMコンテンツの暗号化方式はCBCSAES-CBC (AES-CBC with subsample)の2種類のみを使用します。
    PlayReadyと Widevine DRMをサポートする DASHコンテンツパッケージングには CENCが使用され、FairPlayサポートが必要な HLSまたは CMAFパッケージング時には CBCS暗号化を適用します。

    暗号化方式プロトコルDRMのタイプ暗号化アルゴリズムサポートデバイス
    DRMHLSFairPlayAES-CBCMac/iOS Safariブラウザ、iOS/iPadOS/tvOSアプリ、HLS HTML5
    DRMDASHPlayReady, WidevineCENC (Common Encryption)MS Edge, Internet Explorer 11, Google Chrome, Firefox, Opera DASH HTML5

    One Click Multi DRMの活用フロー

    • STEP 1. 暗号化された DRMコンテンツを用意します。
    • STEP 2. 暗号化 DRMコンテンツ設定( contentIddrmTypeなど)を参照してクライアントから One Click Multi DRMライセンス発行をリクエストします。
    • STEP 3. クライアント(プレーヤー)で DRMコンテンツを再生します。
    注意

    One Click Multi DRMサイトで使用中の「Policy」に従い再生/セキュリティ詳細規則が適用されたライセンスが発行されます。
    リクエストしたライセンス情報や暗号化された DRMコンテンツ情報が一致しない場合、再生が円滑ではありません。

    DRMコンテンツ Encryption

    DRMコンテンツを準備するための暗号化方策をご紹介します。
    DRMコンテンツ暗号化のためには、まず NAVERクラウドプラットフォームコンソールまたは APIを通じて Multi DRMサイトを作成する必要があり、Pallycon CPIXクライアントに関する詳細は、ガイドをご参照ください。

    Liveコンテンツ DRMの暗号化

    1. Live Stationを使用する場合
      • step 1. One Click Multi DRMを通じて Siteを作成します。
      • step 2. Live Station > DRM設定で作成した Siteを選択し Multi DRM Encryptionのためのチャンネルを作成します。
    2. Live Stationを使用しない場合
      • step 1. コンテンツ DRM Encryptionのための PallyCon CPIX APIまたは SPEKE APIなど API別キーリクエスト URLに One Click Multi DRMサイト詳細情報で取得した KMS token を追加して呼び出します。
      • step 2. 発行された CPIX JSONレスポンスからコンテンツ暗号化のための暗号化データを取得します。
      • step 3. CPIX APIレスポンスで取得した DRM暗号化情報を各種サードパーティーエンコーダ/トランスコーダ/パッケージソリューション連携ソリューションに入力します

    参考。CPIX APIレスポンスで取得した DRMの暗号化情報

    フィールド名説明
    key_id_hex, key_id_b64, key_hex, key_b64, iv_hex, iv_b64それぞれ16進数または Base64形式の Key ID、Key、IV値を表します。
    psshPlayReadyまたは Widevineで使用する PSSHデータです。(ヘッダを含む)
    pssh_payload_onlypsshデータからヘッドが削除された payload部分です。
    key_uriFairPlay DRMが適用された HLS m3u8ファイルの#EXT-X-Keyタグに含まれる URIパラメータ値です。

    VODコンテンツ DRMの暗号化

    • VOD Stationを通じた DRM暗号化は、CPIX v1のみサポートします。
    • 24年中に One Click Multi DRM商品と VOD Stationの簡単な DRM連携をサポートする予定です。
    1. VOD Stationを使用する場合
      • step 1 Multi DRM Encryptionのための VOD Stationチャンネルを作成します。
      • step 2. チャンネル作成時に VOD Station DRM暗号化設定のための必須値を入力します。
        • Content ID: DRMパッケージングされたコンテンツの固有 IDであり、CPIX APIをリクエストする際に XML Bodyに含む Content IDの値です。
        • DRM System ID: DRMシステムの固有 IDであり、CPIX APIをリクエストする際に XML Bodyに含む System IDです。選択した暗号化設定に合わせて1つか2つの System IDを含める必要があります。一行に1つずつ入力してください。
          • 例) 9A04F079-9840-4286-AB92-E65BE0885F95EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED
        • DRM Key URL: CPIX APIリクエスト URLです。Multi DRMサイトで取得した kmsTokenを パスに入れて入力します。
          • 例) https://kms.pallycon.com/v1/cpix/pallycon/getKey/{kmsToken}
    2. VOD Stationを使用しない場合
      • step 1. コンテンツ DRM Encryptionのための PallyCon CPIX APIまたは SPEKE APIなど API別キーリクエスト URLに One Click Multi DRMサイト詳細情報で取得した KMS token を追加して呼び出します。
      • step 2. 発行された CPIX JSONレスポンスからコンテンツ暗号化のための暗号化データを取得します。
      • step 3. CPIX APIレスポンスで取得した DRM暗号化情報を各種サードパーティーエンコーダ/トランスコーダ/パッケージソリューション連携ソリューションに入力し、DRM暗号化を暗号化パッケージングに適用します。

    CPIX APIリクエスト例

    POST /v1/cpix/pallycon/getKey/{kmsToken}
    HOST: kms.pallycon.com
    Content-Type: application/json
    x-ncp-apigw-timestamp:1521787414578
    x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
    x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
    x-ncp-region_code:KR
    

    Request body

    /* step 1. vod dash content request xml */
    <?xml version="1.0" encoding="UTF-8"?>
    <cpix:CPIX id="your-content-id" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:speke="urn:aws:amazon:com:speke">
      <cpix:ContentKeyList>
          <cpix:ContentKey kid="681e5b39-49f2-4dfa-b744-86573c22e6fb"></cpix:ContentKey>
      </cpix:ContentKeyList>
      <cpix:DRMSystemList>
          <!-- Common encryption / MSS (Playready) -->
          <cpix:DRMSystem kid="681e5b39-49f2-4dfa-b744-86573c22e6fb" systemId="9a04f079-9840-4286-ab92-e65be0885f95" />
          <!-- Common encryption (Widevine)-->
          <cpix:DRMSystem kid="681e5b39-49f2-4dfa-b744-86573c22e6fb" systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" />
      </cpix:DRMSystemList>
    </cpix:CPIX>
    

    レスポンス例

    /* step 2. vod dash content response xml */
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <cpix:CPIX id="cpix-test-cid" xmlns:cpix="urn:dashif:org:cpix" xmlns:speke="urn:aws:amazon:com:speke" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" >
       <cpix:ContentKeyList>
           <cpix:ContentKey explicitIV="MDEyMzQ1Njc4OWFiY2RlZg==" kid="12ea753c-23e7-bc02-4474-b2b976c43beb">
               <cpix:Data>
                   <pskc:Secret>
                       <pskc:PlainValue>SzC1qc1cEpyFU6t/lL7Byw==</pskc:PlainValue>
                   </pskc:Secret>
               </cpix:Data>
           </cpix:ContentKey>
       </cpix:ContentKeyList>
       <cpix:DRMSystemList>
           <!-- Common encryption / MSS (Playready) -->
           <cpix:DRMSystem kid="12ea753c-23e7-bc02-4474-b2b976c43beb" systemId="9a04f079-9840-4286-ab92-e65be0885f95">
                <cpix:ContentProtectionData>qAUAAAEAAQCeB...A=</cpix:ContentProtectionData><!-- V2に追加 -->
               <cpix:PSSH>AAACwnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAqKiAgAAAQABAJgCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBQAEgAWABxAEUAdQBjAGoAQQByAHgARQBkAEwASwA1AGQAcwBRADcANgB3AD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AC8ARgA3AEIAMQBmAEgAMgBlADAAYwA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAHQAZQBzAHQAdABvAGsAeQBvAC4AcABhAGwAbAB5AGMAbwBuAC4AYwBvAG0ALwByAGkALwBwAGwAYQB5AHIAZQBhAGQAeQAvAGwAaQBjAGUAbgBzAGUATQBhAG4AYQBnAGUAcgAuAGQAbwA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cpix:PSSH>
           </cpix:DRMSystem>
           <!-- Common encryption (Widevine)-->
           <cpix:DRMSystem kid="12ea753c-23e7-bc02-4474-b2b976c43beb" systemId="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
                <cpix:ContentProtectionData>qAUAAAEAAQCeB...A=</cpix:ContentProtectionData><!-- V2に追加 -->
               <cpix:PSSH>AAAAVXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADUIARIQEup1PCPnvAJEdLK5dsQ76xoMaW5rYWVudHdvcmtzIg1jcGl4LXRlc3QtY2lkKgJIRA==</cpix:PSSH>
           </cpix:DRMSystem>
       </cpix:DRMSystemList>
    </cpix:CPIX>
    
    参考

    <cpix:CPIX id=""> : リクエストデータに入力した CID値が返されます。
    <cpix:ContentKey> : コンテンツ暗号化に使用するキー値(<pskc:PlainValue> )と IV(explicitIV)、そしてそのキーに対する kid値が返されます。kid値は、リクエストデータに入力された値とは別に KMS で新しく作成された値を適用し、キーと IVは Base64エンコードされた形で返されます。
    <cpix:DRMSystem> : PlayReadyと Widevineそれぞれの DRMに対する PSSHデータが返されます。<cpix:PSSH> タグにはベース PSSH値が表示され、<cpix:ContentProtectionData>タグにはヘッダ部分を削除した PSSHデータが表示されます。


    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.