- 印刷する
- 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 API | Pallycon CPIX Clientガイドに移動する | PallyConで実装した CPIX APIで、エンコーダ/トランスコーダソリューション企業に該当する APIで PallyConマルチ DRMと連携可能。Flussonic Media Serverとの連携で PallyCon CPIX APIを適用 |
SPEKE API | SPEKEガイドに移動する | 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, Python | DRMパッケージング開発環境による言語別サンプル提供 |
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コンテンツの暗号化方式はCBCS
、AES-CBC (AES-CBC with subsample)
の2種類のみを使用します。
PlayReadyと Widevine DRMをサポートする DASHコンテンツパッケージングには CENCが使用され、FairPlayサポートが必要な HLSまたは CMAFパッケージング時には CBCS暗号化を適用します。
暗号化方式 | プロトコル | DRMのタイプ | 暗号化アルゴリズム | サポートデバイス |
---|---|---|---|---|
DRM | HLS | FairPlay | AES-CBC | Mac/iOS Safariブラウザ、iOS/iPadOS/tvOSアプリ、HLS HTML5 |
DRM | DASH | PlayReady, Widevine | CENC (Common Encryption) | MS Edge, Internet Explorer 11, Google Chrome, Firefox, Opera DASH HTML5 |
One Click Multi DRMの活用フロー
- STEP 1. 暗号化された DRMコンテンツを用意します。
- STEP 2. 暗号化 DRMコンテンツ設定(
contentId
、drmType
など)を参照してクライアントから 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の暗号化
- Live Stationを使用する場合
- step 1. One Click Multi DRMを通じて Siteを作成します。
- step 2. Live Station > DRM設定で作成した Siteを選択し Multi DRM Encryptionのためのチャンネルを作成します。
- 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値を表します。 |
pssh | PlayReadyまたは Widevineで使用する PSSHデータです。(ヘッダを含む) |
pssh_payload_only | psshデータからヘッドが削除された payload部分です。 |
key_uri | FairPlay DRMが適用された HLS m3u8ファイルの#EXT-X-Key タグに含まれる URIパラメータ値です。 |
VODコンテンツ DRMの暗号化
- VOD Stationを通じた DRM暗号化は、CPIX v1のみサポートします。
- 24年中に One Click Multi DRM商品と VOD Stationの簡単な DRM連携をサポートする予定です。
- 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-E65BE0885F95
、EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED
- 例)
- DRM Key URL: CPIX APIリクエスト URLです。Multi DRMサイトで取得した kmsTokenを パスに入れて入力します。
- 例)
https://kms.pallycon.com/v1/cpix/pallycon/getKey/{kmsToken}
- 例)
- 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データが表示されます。