ADOBE® MEDIA SERVER 5.0.3
デベロッパーズガイド
![]() ![]() ![]() |
翻訳:株式会社サムライズ |
---|
注意
Adobe Media Server® バージョン 5についての本ドキュメントは第三者によって翻訳されたものであり、Adobe Systems Incorporated(アドビ システムズ社)は本翻訳物の正確性や完全性を査閲していません。
HDSのコンテンツ保護の設定
AMSではHDSでコンテンツを保護するためにProtected HTTP Dynamic Streaming (PHDS) あるいは Adobe Accessを利用できます。
ライブストリーミング用にはPHDS/Adobe Accessを以下のレベルで設定します:
• サーバー—rootinstall/Apache2.2/conf/httpd.conf
• アプリケーション—rootinstall/applications/livepkgr/Application.xml
• イベント—rootinstall/applications/livepkgr/events/_definst_/liveevent/Event.xml
PHDS
Adobe Media Server 5 を使用して、DRM License Server を使用せずに、ライブおよびオンデマンドの保護されたコンテンツを、HTTP 経由で Flash Player と AIR に配信します。Adobe Media Server はコンテンツをパッケージ化するとき、ライセンスを生成し、そのライセンスをコンテンツストリームのメタデータに埋め込みます。この機能は、Protected HTTP Dynamic Streaming(PHDS)と呼ばれます。コンテンツの暗号化に加えて、PHDS は HTTP Dynamic Streaming のSWF 検証もサポートしています。
オンデマンド PHDS とライブ PHDS での F4F パッケージ化プロセスは、ライセンスを生成してそれを DRM メタデータに埋め込み、メディアと共に配信します。Flash Player 11 と AIR 3 のクライアントは、コンテンツストリームからライセンスを取得することができるため、クライアントと License Server 間の通信はなくなります。
Adobe Media Server のインストーラーは、資格情報、証明書およびポリシーファイルを rootinstall/credsディレクトリに生成します。また、インストーラーは、common-key.bin ファイルを /credsディレクトリに作成します。このファイルの内容を変更したり、新しい共通キーファイルを作成しても構いません。共通キーファイル(common-key.bin)を作成し、それを使用してコンテンツ暗号化キーを生成するには、スクランブルツールを使用します。「スクランブルツール」を参照してください。
オンデマンドやライブPHDSのライセンス生成には以下のポリシーファイルを使用します(AMS 5には出力保護をサポートする4つの新しいポリシーファイルが含まれています):
ポリシー名 |
説明 |
phds_24hr_policy.pol |
24時間限定ポリシー |
anonymous; 24 hours limited license caching. |
|
これがデフォルトのポリシーです。 ユーザーはコンテンツがパッケージ化されてから 24時間以内に再生を開始できます。ユーザーは最後までコンテンツを見続けることができます(コンテンツは一時停止できます)。 24 時間のウィンドウは、DRM メタデータが生成されると開始されます。 |
|
phds_policy.pol |
無制限ポリシー |
anonymous; unlimited license caching; and binding to Protected Streaming is permitted |
|
このポリシーでは、いつでも再生が可能です。 |
ポリシー名 |
説明 |
phds-24hr-OPBestEffort.pol |
(AMS 5) |
24時間限定 / ベストエフォート出力保護ポリシー |
|
24時間限定 / 出力保護無しのポリシーと同様で、ハードウェアコンテンツ保護が利用可能な場合、使用しなければならないという追加の制限があるポリシーです。クライアントのハードウェアが出力保護をサポートしていない場合でも視聴可能です。もしクライアントのハードウェアが出力保護をサポートしていて機能を無効化している場合、FlashPlayerはDRM Run Time Error: 3342 (NoDigitalProtectionAvail)を返します。 |
|
phds-OPBestEffort.pol |
(AMS 5) |
無制限 / ベストエフォート出力保護ポリシー |
|
無制限 / 出力保護無しのポリシーと同様で、ハードウェアコンテンツ保護が利用可能な場合、使用しなければならないという追加の制限があるポリシーです。クライアントのハードウェアが出力保護をサポートしていない場合でも視聴可能です。もしクライアントのハードウェアが出力保護をサポートしていて機能を無効化している場合、FlashPlayerはDRM Run Time Error: 3342 (NoDigitalProtectionAvail)を返します。 |
|
phds-24hr-OPRequired.pol |
(AMS 5) |
24 時間限定 / 出力保護必須ポリシー |
|
24時間限定/出力保護無しのポリシーと同様で、ハードウェアコンテンツ保護を使用しなければならないという追加の制限があるポリシーです。クライアントのハードウェアが出力保護をサポートしていない場合は視聴不可能です。もしクライアントのハードウェアが出力保護をサポートしていない場合や、出力保護をサポートしていて機能を無効化している場合は、FlashPlayerはDRM Run Time Error: 3342 (NoDigitalProtectionAvail)を返します。 |
|
phds-OPRequired.pol |
(AMS 5) |
無制限 / 出力保護必須ポリシー |
|
無制限 /出力保護無しのポリシーと同様で、ハードウェアコンテンツ保護を使用しなければならないという追加の制限があるポリシーです。クライアントのハードウェアが出力保護をサポートしていない場合は視聴不可能です。もしクライアントのハードウェアが出力保護をサポートしていない場合や、出力保護をサポートしていて機能を無効化している場合は、FlashPlayerはDRM Run Time Error: 3342 (NoDigitalProtectionAvail)を返します。 |
無制限ポリシーは通常の使用には適していません。無制限ポリシーは、ネットワークに問題が発生した場合の一時的な回避策として提供されます。メディアが Adobe Media Server と Flash Player 間のネットワークデバイス上にキャッシュされた場合、クライアントは、予期されたメディアをサーバーから受信する代わりに、ネットワークから期限切れのポリシーデータを受信する場合があります。24 時間ポリシーで生成されたメディアが 24 時間を超えてキャッシュされた場合、Player では再生が許可されません。ネットワーク設定が修正されるまでの一時的なソリューションとして無制限 PHDS ポリシーに切り替えると、キャッシュが消去されます。このソリューションにより、メディアを配信しない代わりに、より低い保護レベルでメディアを配信することができます。無制限ポリシーに切り替えた後に、キャッシュを消去して、無制限ライセンスがクライアントに伝播されるのを許可します。
Adobe Access
HDSでライブ、オンデマンドコンテンツを配信するために、Adobe AccessでHDSを有効化して保護されたストリーミングを行うことができます。Adobe Access server for protectedstreamingはHDSでの使用に最適化されたライセンスサーバ実装です。詳細は、Adobe Accessのドキュメントをご覧ください。
重要: HDSパッケージャーでコンテンツの暗号化とフラグメント化の両方を行なってください。コンテンツを暗号化するためにAdobeAccessパッケージングツールを使わないでください。HDSパッケージャーは暗号化されたコンテンツをフラグメント化できません。
メモ: Adobe Access SDK とAdobe Access license server reference implementation はHDSのためのライセンスを発行できます。.
Adobe Access server for protected streamingを配備したあと、リアルタイムにコンテンツをパッケージ化するようにAMSを設定します。.
httpd.confで、ContentProtection タグは <Location hds-live>の下で指定されます。.
Application.xml ファイルと Event.xml ファイルにはどちらにも、ライブPHDSの設定を保持するContentProtection コンテナがあります。
Application.xmlではこのコンテナは、//Application/HDS/Recording/ContentProtection に存在します。一方Event.xmlでは、//Event/Recording/ContentProtection に存在します。
はじめに
すぐにPHDSを始めるには、以下のディレクティブを理解する必要があります。
ディレクティブ |
デフォルト値 |
説明 |
HttpStreamingEncryptionScope |
content |
可能な値はoff, content, serverです。値がoffのときは、コンテンツは保護されない状態にあります。値がContentのときは、Application.xml あるいはevent.xmlファイルの設定がコンテンツ保護につかわれます。値がSeverのときは、httpd.confの設定がコンテンツ保護に使われます。 |
HttpStreamingProtectionScheme |
PHDS |
コンテンツの暗号化タイプです。FlashAccessV3, FlashAccessV2 あるいはPHDSの値が可能です。HttpStreamingProtectionSchemeは、暗号化が有効化されている場合に適用されます。HttpStreamingEncryptionScopeで暗号化のスコープを決定します。 |
PHDSの基本設定を行うため、以下の手順を実行します。
1 Adobe Media Serverをインストールした後、<root-install>/Apache 2.2/conf/に移動します。httpd.confを編集し<Location /hds-live>の下に以下のタグを追加してください:
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
HttpStreamingEncryptionScope server
HttpStreamingProtectionScheme PHDS
</Location>
メモ: この設定変更はサーバレベルでPHDSを有効化します。
2 “livestream?adbe-live-event=liveevent” と名付けたライブストリームを livepkgrへパブリッシュします。
3 http://<server-ip>:8134/hds-live/livepkgr/_definst_/liveevent/livetsream.f4m というURIでストリームを再生します。
詳細な設定
以下のセクションはPHDSとAdobeAccessの両スキームの詳細な設定についてです。
サーバーレベル
ライブPHDS/Adobe Accessのサーバレベル設定
サーバーレベルの設定が指定されたとき、その保護のパラメーターはサーバー全体に渡って適用されます。ApplicationやEventレベルで指定された暗号化のパラメーターは無視されます。
FlashMedia Server 4.5.3以降ではサーバーレベルで暗号化の設定を行うことができます。これらの設定は、そのサーバーで録画されるライブイベントに適用されます。暗号化を有効化あるいは無効化するためには、Apacheのhttpd.confファイルで以下のf4fhttp_module用のディレクティブを設定します。
共通の設定:
ディレクティブ |
デフォルト値 |
説明 |
HdsFmsDirPath |
無し |
Adobe Media Serverのルートディレクトリーの相対パス。".." を使用します。 |
HttpStreamingEncryptionScope |
content |
可能な値はoff, content, serverです。値がoffのときは、コンテンツは保護されない状態にあります。値がContentのときは、application.xml あるいはevent.xmlファイルの設定がコンテンツ保護につかわれます。値がSeverのときは、httpd.confの設定がコンテンツ保護に使われます。 |
HttpStreamingProtectionScheme |
PHDS |
コンテンツの暗号化タイプです。FlashAccessV3, FlashAccessV2 あるいはPHDSの値が可能です。HttpStreamingProtectionSchemeは、暗号化が有効化されている場合に適用されます。HttpStreamingEncryptionScopeで暗号化のスコープを決定します。 |
PHDS の設定
ディレクティブ |
デフォルト値 |
説明 |
PHDSCommonKeyFile |
<AMSInstallDir>/creds/c ommon-key.bin |
この場所でコンテンツを保護するために使用される共通キーです。PHDSCommonKeyFileのパスはrootinstall/Apache2.2に対する相対パスです。 |
PHDSVideoEncryptionLevel |
2 |
コンテンツの暗号化レベル(0- 低,1-m中, 2-高)です。低と中の設定では部分的な暗号化が行われます。サンプルの一部(例えばビデオのキーフレーム)が暗号化されます。部分的な暗号化は、復号するフレームが少なくなるため、再生パフォーマンスを改善することができます。 |
PHDSPlaybackExpiration |
24Hours |
コンテンツが再生可能な期間。可能な値は24Hours とUnlimitedです。 |
PHDSOutputProtection |
none |
クライアントで要求されるメディアのハードウェア出力保護を指定します。可な値はNone、BestEffort、Requiredです。 |
Adobe Accessの設定
ディレクティブ |
デフォルト値 |
説明 |
HdsDrmCommonKeyFile |
無し |
この場所でコンテンツを保護するために使用される共通キーです。HdsDrmCommonKeyFileのパスはrootinstall/Apache2.2に対する相対パスです。 |
HdsDrmLicenseServerURL |
無し |
コンテンツ保護のためのライセンスサーバーのURL |
HdsDrmTransportCertFile |
無し |
コンテンツ保護のためのトランスポート証明書 |
HdsDrmLicenseServerCertFile |
無し |
コンテンツ保護のためのライセンスサーバー証明書 |
HdsDrmPackagerCredentialFile |
無し |
コンテンツ保護のためのパッケージャー保護資格証明書 |
HdsDrmPackagerCredentialPassword |
無し |
上で設定されたパッケージャー保護資格証明書ファイルのパスワード |
HdsDrmPolicyFile |
無し |
コンテンツ保護のポリシー. |
HdsDrmUseUniqueContentID |
false |
デフォルトでは、保護スキームがAdobeAccessに設定されたなら、AMSはユニークではないコンテンツ IDを使用します。コンテンツIDとしてファイルパスが使われます。ゆえに1つのディレクトリ内にあるファイルのコンテンツIDは同じものになります。 この機能を使用すると、異なるビットレートの全てのファイルが1つのディレクトリに保持されているマルチビットレートストリームを、1つのコンテンツIDで暗号化することができます。もしそれぞれのファイルにユニークなIDを使いたい場合、この要素を付け加える必要があります。 |
HdsDrmContentID |
無し |
コンテンツIDを手動で設定し、全てのファイルに対して使用することができます。この要素はHdsDrmUseUniqueContentIDがtrueに設定されている場合は使用できないことに注意してください。 |
以下の例はhttpd.conf ファイルでPHDSを有効化し、設定を行います。これらの設定はこのサーバーのすべてのライブイベントにされます。
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
Options -Indexes FollowSymLinks
HttpStreamingEncryptionScope server
HttpStreamingProtectionScheme PHDS
PHDSCommonKeyFile "../creds/common-key.bin"
PHDSPlaybackExpiration 24Hours
PHDSOutputProtection None
</Location>
以下の例はhttpd.conf ファイルでAdobe Access (FlashAccessV2)を有効化し、設定を行います。これらの設定はこのサーバーのすべてのライブイベントにされます。
<Location /hds-live-faxs>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
HttpStreamingEncryptionScope server
HttpStreamingProtectionScheme FlashAccessV2
HdsDrmCommonKeyFile "../creds/common-key.bin"
HdsDrmLicenseServerURL http://<aaxs-test-server>/
HdsDrmTransportCertFile "aaxs-test-server-trnsCert.der"
HdsDrmLicenseServerCertFile "aaxs-test-server-licCert.der"
HdsDrmPackagerCredentialFile "aaxs-test-server-pkgrCert.pfx"
HdsDrmPackagerCredentialPassword pwd=
HdsDrmPolicyFile "sample_policy.pol"
Options -Indexes FollowSymLinks
</Location>
以下の例はhttpd.conf ファイルでAdobe Access (FlashAccessV3)を有効化し、設定を行います。これらの設定はこのサーバーのすべてのライブイベントにされます。
<Location /hds-live-faxs>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
HttpStreamingEncryptionScope server
HttpStreamingProtectionScheme FlashAccessV3
HdsDrmCommonKeyFile "../creds/common-key.bin"
HdsDrmLicenseServerURL http://<aaxs-test-server>/
HdsDrmTransportCertFile "aaxs-test-server-trnsCert.der"
HdsDrmLicenseServerCertFile "aaxs-test-server-licCert.der"
HdsDrmPackagerCredentialFile "aaxs-test-server-pkgrCert.pfx"
HdsDrmPackagerCredentialPassword pwd=
HdsDrmPolicyFile "sample_policy.pol"
Options -Indexes FollowSymLinks
</Location>
アプリケーションレベル
アプリケーションレベルの設定が指定された時、設定された暗号パラメーターは、特定のアプリケーションに(つまり、そのアプリケーション配下の全てのイベントに)適用されます。イベント・サーバーレベルで設定された暗号化パラメーターは無視されます。
共通設定
要素 |
デフォルト |
説明 |
HDS/Recording/ContentProtection |
Application.xmlでは"allow"
Event.xmlでは"false" |
コンテンツ保護の設定のためのコンテナエレメント。 Application.xmlでは、コンテンツ保護を有効化するためにはenabledの属性を”true”に、無効化するためには”false”に、もしくはEvent.xmlの設定でApplication.xmlのContent Protectionセクションのオーバーライドを許可するためには”allow”に設定します。
enabled="allow"のとき、サーバはApplication.xmlのContentProtectionセクションの設定は使いません。もしContentProtectionがEvent.xmlで設定されていないとき、Event.xmlではデフォルト値が"false"なのでコンテンツ保護は無効になります。
Event.xmlでは、enabled属性を"true"あるいは "false"に設定します。 |
HDS/Recording/ContentProtection/ProtectionScheme |
無し |
可能な値は. phds, FlashAccessV2,とFlashAccessV3です。 PHDSにはPHDSを使用します。 |
PHDS 設定
要素 |
デフォルト |
説明 |
HDS/Recording/ContentProtection/PHDS |
無し |
PHDS暗号化設定のコンテナです。 |
HDS/Recording/ContentProtection/PHDS/CommonKeyFile |
無し |
最終的なコンテンツ暗号化キーを生成するために(コンテンツIDと共に)使用されるベースキーを含んだcommon-key.binファイルへの相対パス。
このファイルは、インストール中にrootinstall/creds/common-key.binに生成されます。
Application.xmlでCommonKeyFileを定義した場合は、サーバーはアプリケーションディレクトリからの相対パスでそのファイルを探します。
Event.xml でCommonKeyFileを定義した場合は、サーバはイベントフォルダからの相対パスでそのファイルを探します。 |
HDS/Recording/ContentProtection/PHDS/PlaybackExpiration |
24Hours |
保護ポリシー。このポリシーはコンテンツの視聴可能な期間を決定します。可能な値は24Hours とUnlimitedです。. |
HDS/Recording/ContentProtection/PHDS/VideoEncryptionLevel |
2 |
コンテンツの暗号化レベル(0- 低,1-m中, 2-高)です。低と中の設定では部分的な暗号化が行われます。サンプルの一部(例えばビデオのキーフレーム)が暗号化されます。部分的な暗号化は、復号するフレームが少なくなるため、再生パフォーマンスを改善することができます。 |
HDS/Recording/ContentProtection/PHDS/UpdateInterval |
60 |
サーバーがDRMメタデータを生成する頻度を、分単位で指定します。 |
HDS/Recording/ContentProtection/PHDS/OutputProtection |
None |
クライアントで必要なメディアのハードウェア出力保護です。可能な値は None、BestEffort、そして Required です。 |
Adobe Access 設定
要素 |
デフォルト |
説明 |
HDS/Recording/ContentProtection/FlashAccessV2 |
無し |
FlashAccessV2の暗号化設定のコンテナです。 |
HDS/Recording/ContentProtection/FlashAccessV3 |
無し |
FlashAccessV3の暗号化設定のコンテナです。 |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/ContentID |
無し |
ライブイベントでストリームを保護するときのコンテンツIDです。 |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/CommonKeyFile |
無し |
共通キーが含まれたファイルです。 |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/LicenseServerURL |
無し |
保護されたコンテンツにライセンス発行サービスを提供するライセンスサーバのURLです。 |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/TransportCertFile |
無し |
DERフォーマットでトランスポート証明書が含まれたファイルです。 |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/LicenseServerCertFile |
無し |
DERフォーマットでライセンスサーバ証明書が含まれたファイルです。 |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/PackagerCredentialFile |
無し |
PFXフォーマットでパッケージャー保護資格証明書が含まれたファイルです。 |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/PackagerCredentialPassword |
無し |
パッケージャー保護資格証明書のパスワード |
HDS/Recording/ContentProtection/FlashAccessV3(orFlashAccessV2)/PolicyFile |
無し |
コンテンツ保護ポリシーが含まれたファイル |
アプリケーションレベルでの保護設定を許可するには、以下のようにhttpd.confを設定します。
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
Options –Indexes
FollowSymLinks
HttpStreamingEncryptionScope content
</Location>
以下の例はApplication.xmlでPHDSを有効化し、設定を行います。これらの設定はこのアプリケーションのすべてのライブイベントへ適用されます。
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
<PublishTimeout>0</PublishTimeout>
<AdjustForZeroTimeStampMessages>2</AdjustForZeroTimeStampMessages>
<AdjustForRecordingRollover>false</AdjustForRecordingRollover>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>PHDS</ProtectionScheme>
<PHDS>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<VideoEncryptionLevel>2</VideoEncryptionLevel>
<PlaybackExpiration>24Hours</PlaybackExpiration>
<OutputProtection>None</OutputProtection>
</PHDS>
</ContentProtection>
</Recording>
</HDS>
</Application>
以下の例はApplication.xmlでAdobe Access V2を有効化し、設定を行います。これらの設定はこのアプリケーションのすべてのライブイベントへ適用されます。
<Application>
<StreamManager>
<Live>
<Assume AbsoluteTime>true</AssumeAbsoluteTime>
<PublishTimeout>0</PublishTimeout>
<AdjustForZeroTimeStampMessages>2</AdjustForZeroTimeStampMessages>
<AdjustForRecordingRollover>false</AdjustForRecordingRollover>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV2</ProtectionScheme>
<FlashAccessV2>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>http://<aaxs-test-server>/</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der
</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
</FlashAccessV2>
</ContentProtection>
</Recording>
</HDS>
</Application>
以下の例はApplication.xmlでAdobe Access V3を有効化し、設定を行います。これらの設定はこのアプリケーションのすべてのライブイベントへ適用されます。
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
<PublishTimeout>0</PublishTimeout>
<AdjustForZeroTimeStampMessages>2</AdjustForZeroTimeStampMessages>
<AdjustForRecordingRollover>false</AdjustForRecordingRollover>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV3</ProtectionScheme>
<FlashAccessV3>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>http://<aaxs-test-server>/</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
</FlashAccessV3>
</ContentProtection>
</Recording>
</HDS>
</Application>
注:この場合、common-key.binファイルをrootinstall/credsディレクトリからこのrootinstall/applications/livepkgr/ディレクトリにコピーします。
イベントレベル
イベントレベルの設定が指定されたとき、指定された保護パラメーターはその特定のイベントに適用されます。アプリケーション・サーバーレベルで指定された保護パラメータは無視されます。
共通設定
要素 |
デフォルト |
説明 |
Recording/ContentProtection |
Application.xmlでは"allow"
Event.xmlでは"false" |
コンテンツ保護の設定のためのコンテナエレメント。 Application.xmlでは、コンテンツ保護を有効化するためにはenabledの属性を”true”に、無効化するためには”false”に、もしくはEvent.xmlの設定でApplication.xmlのContent Protectionセクションのオーバーライドを許可するためには”allow”に設定します。
enabled="allow"のとき、サーバはApplication.xmlのContentProtectionセクションの設定は使いません。もしContentProtectionがEvent.xmlで設定されていないとき、Event.xmlではデフォルト値が"false"なのでコンテンツ保護は無効になります。
Event.xmlでは、enabled属性を"true"あるいは "false"に設定します。 |
Recording/ContentProtection/ProtectionScheme |
無し |
可能な値は phds、FlashAccessV2、及びFlashAccessV3です。PHDSにはPHDSを使用します。 |
PHDS 設定
要素 |
デフォルト |
説明 |
Recording/ContentProtection/PHDS |
無し |
PHDS暗号化設定のコンテナです。 |
Recording/ContentProtection/PHDS/CommonKeyFile |
無し |
最終的なコンテンツ暗号化キーを生成するために(コンテンツIDと共に)使用されるベースキーを含んだcommon-key.binファイルへの相対パス。
このファイルは、インストール中にrootinstall/creds/common-key.binに生成されます。
Application.xmlでCommonKeyFileを定義した場合は、サーバーはアプリケーションディレクトリからの相対パスでそのファイルを探します。
Event.xml でCommonKeyFileを定義した場合は、サーバはイベントフォルダからの相対パスでそのファイルを探します。 |
Recording/ContentProtection/PHDS/PlaybackExpiration |
24Hours |
保護ポリシー。このポリシーはコンテンツの視聴可能な期間を決定します。可能な値は24Hours とUnlimitedです。. |
Recording/ContentProtection/PHDS/VideoEncryptionLevel |
2 |
コンテンツの暗号化レベル(0- 低,1-中, 2-高)です。低と中の設定では部分的な暗号化が行われます。サンプルの一部(例えばビデオのキーフレーム)が暗号化されます。部分的な暗号化は、復号するフレームが少なくなるため、再生パフォーマンスを改善することができます。 |
Recording/ContentProtection/PHDS/UpdateInterval |
60 |
サーバーがDRMメタデータを生成する頻度を、分単位で指定します。 |
Recording/ContentProtection/PHDS/OutputProtection |
None |
クライアントで必要なメディアのハードウェア出力保護です。可能な値はNone。BestEffort、及びRequiredです。 |
Adobe Access 設定
要素 |
デフォルト |
説明 |
Recording/ContentProtection/FlashAccessV2 |
無し |
FlashAccessV2の暗号化設定のコンテナです。 |
Recording/ContentProtection/FlashAccessV3 |
無し |
FlashAccessV3の暗号化設定のコンテナです。 |
Recording/ContentProtection/FlashAccessV3(またはFlashAccessV2)/ContentID |
無し |
ライブイベントでストリームを保護するときのコンテンツIDです。 |
Recording/ContentProtection/FlashAccessV3(またはFlashAccessV2)/CommonKeyFile |
無し |
共通キーが含まれたファイルです。 |
Recording/ContentProtection/FlashAccessV3(またはFlashAccessV2)/LicenseServerURL |
無し |
保護されたコンテンツにライセンス発行サービスを提供するライセンスサーバのURLです。 |
Recording/ContentProtection/FlashAccessV3(またはFlashAccessV2)/TransportCertFile |
無し |
DERフォーマットでトランスポート証明書が含まれたファイルです。 |
Recording/ContentProtection/FlashAccessV3(またはFlashAccessV2)/LicenseServerCertFile |
無し |
DERフォーマットでライセンスサーバ証明書が含まれたファイルです。 |
Recording/ContentProtection/ FlashAccessV3(またはFlashAccessV2)/PackagerCredentialFile |
無し |
PFXフォーマットでパッケージャー保護資格証明書が含まれたファイルです。 |
Recording/ContentProtection/ FlashAccessV3(またはFlashAccessV2)/PackagerCredentialPassword |
無し |
パッケージャー保護資格証明書のパスワード |
Recording/ContentProtection/ FlashAccessV3(またはFlashAccessV2)/PolicyFile |
無し |
コンテンツ保護ポリシーが含まれたファイル |
イベントレベルでの保護設定を許可するには、以下のようにhttpd.confを設定します。
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
Options -Indexes FollowSymLinks
HttpStreamingEncryptionScope content
</Location>
以下は、イベントレベルの保護設定を許可し、サーバーに各イベントでEvent.xmlでの設定を探すように指示するApplication.xmlの例です:
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="allow">
</ContentProtection>
</Recording>
</HDS>
</Application>
以下のEvent.xmlは単一のライブイベントにPHDSを設定します。
<Event>
<EventID>liveevent</EventID>
<Recording>
<FragmentDuration>4000</FragmentDuration>
<SegmentDuration>400000</SegmentDuration>
<DiskManagementDuration>3</DiskManagementDuration>
<ContentProtection enabled="true">
<ProtectionScheme>PHDS</ProtectionScheme>
<PHDS>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<VideoEncryptionLevel>2</VideoEncryptionLevel>
<PlaybackExpiration>24Hours</PlaybackExpiration>
<OutputProtection>None</OutputProtection>
</PHDS>
</ContentProtection>
</Recording>
</Event>
この場合、common-key.binファイルをrootinstall/credsディレクトリーからrootinstall/applications/livepkgr/events/_definst_/liveeventディレクトリーへコピーします。
以下のEvent.xml ファイルは単一のライブイベントにAdobe Access V2を設定します:
<Event>
<EventID>liveevent</EventID>
<Recording>
<FragmentDuration>4000</FragmentDuration>
<SegmentDuration>400000</SegmentDuration>
<DiskManagementDuration>3</DiskManagementDuration>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV2</ProtectionScheme>
<FlashAccessV2>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>
http://<aaxs-test-server>/
</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der
</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
</FlashAccessV2>
</ContentProtection>
</Recording>
</Event>
以下のEvent.xml ファイルは単一のライブイベントにAdobe Access V3を設定します:
<Event>
<EventID>liveevent</EventID>
<Recording>
<FragmentDuration>4000</FragmentDuration>
<SegmentDuration>400000</SegmentDuration>
<DiskManagementDuration>3</DiskManagementDuration>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV3</ProtectionScheme>
<FlashAccessV3>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>
http://<aaxs-test-server>/
</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der
</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
</FlashAccessV3>
</ContentProtection>
</Recording>
</Event>
注:この場合、common-key.binファイルをrootinstall/credsディレクトリからrootinstall/applications/livepkgr/events/_definst_/liveeventディレクトリにコピーします。
ライセンスチェーン
Adobe Media Serverは、チェーン化ライセンスを使用して生成されたポリシーからのDRMメタデータへのリーフライセンスの埋め込みをサポートしています。
もしリーフライセンスを埋め込む設定がオフになった場合でも、Adobe Media Serverはそのようなポリシーをサポートします。ただし、リーフライセンスがDRMメタデータに埋め込まれないポリシーを除きます。
注意:ライセンスチェーンのサポートは単一のサーバ証明書と証明書パスワードのペアに限定されます。
以下の表に必要な設定を挙げます。
パラメーター |
説明 |
デフォルト値 |
HdsDrmEmbedLeafLicense(サーバーレベル)
EmbedLeafLicense(アプリケーションまたはイベントレベル) |
DRMメタデータへのリーフライセンスの埋め込みを有効化します。可能な値は"true"もしくは"false"です。 注意:ポリシーファイルはチェーンライセンスを使用して作成する必要があります。 |
false |
Parameter |
Description |
Default value |
HdsDrmLicenseServerCredentialFile(サーバーレベル) LicenseServerCredentialFile(アプリケーションまたはイベントレベル) |
. HdsDrmEmbedLeafLicenseがtrueに設定されている場合は必須。がこの場所でコンテンツ保護の際に使用されるライセンスサーバー保護資格証明書です。 |
無し |
HdsDrmLicenseServerCredentialPassword(サーバーレベル) LicenseServerCredentialPassword(アプリケーションまたはイベントレベル) |
HdsDrmEmbedLeafLicenseがTrueに設定されている場合は必須。上のパラメーターで設定されたライセンスサーバ保護資格証明書ファイルのパスワードです。 |
無し |
以下の例でアプリケーションレベルのライセンスチェーン設定を示します:
<Application>
<HDS>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV3</ProtectionScheme>
<FlashAccessV3>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>http://<aaxs-test-server>/</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der
</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
<EmbedLeafLicense>true</EmbedLeafLicense>
<LicenseServerCredentialFile>
aaxs-test-server-pkgrCertLic.pfx
</LicenseServerCredentialFile>
<LicenseServerCredentialPassword>
pwd_lic=
</LicenseServerCredentialPassword>
</FlashAccessV3>
</ContentProtection>
</Recording>
</HDS>
</Application>
以下の例でイベントレベルのライセンスチェーン設定を示します:
<Event>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV3</ProtectionScheme>
<FlashAccessV3>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>
http://<aaxs-test-server>/
</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der
</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>
pwd=
</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
<EmbedLeafLicense>true</EmbedLeafLicense>
<LicenseServerCredentialFile>
aaxs-test-server-pkgrCertLic.pfx
</LicenseServerCredentialFile>
<LicenseServerCredentialPassword>
pwd_lic=
</LicenseServerCredentialPassword>
</FlashAccessV3>
</ContentProtection>
</Recording>
</Event>
注意:ライセンスチェーンはVODの使用事例ではサポートされていません。
キーローテーション
Adobe Media Server 5は、Adobe AccessやPHDSと組み合わせて使用すると保護されたHTTP Dynamic Streaming(PHDS)でキーローテーションをサポートします。一連のキーを使ってAMS5でコンテンツを暗号化することができます。定期的に暗号化キーを変更でき、コンテンツ暗号化キーをどのくらいの頻度で変更するか指定できます。暗号化キーのリストを指定することもできます。
サーバーレベル - Adobe Access
パラメーター |
説明 |
デフォルト値 |
HdsDrmEnableKeyRotation |
Adobe Access保護スキームでキーローテーションを使用するかどうか |
false |
HdsDrmKeyRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900秒 |
以下のhttpd.confを使用すると、キーローテーションがサーバーレベルで有効化されます:
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
Options -Indexes FollowSymLinks
HttpStreamingEncryptionScope server
HttpStreamingProtectionScheme FlashAccessV3
HdsDrmCommonKeyFile "../creds/common-key.bin"
HdsDrmLicenseServerURL http://<aaxs-test-server>/
HdsDrmTransportCertFile aaxs-test-server-trnsCert.der
HdsDrmLicenseServerCertFile aaxs-test-server-licCert.der
HdsDrmPackagerCredentialFile aaxs-test-server-pkgrCert.pfx
HdsDrmPackagerCredentialPassword pwd=
HdsDrmPolicyFile sample_policy.pol
HdsDrmEnableKeyRotation true
HdsDrmKeyRotationInterval 500
HdsDrmKeyRotationFilePath sample_keys.txt
</Location>
アプリケーションレベル - Adobe Access
パラメーター |
説明 |
デフォルト値 |
HDS/Recording/ContentProtection/FlashAccessV3/EnableKeyRotation |
Adobe Access保護スキームでキーローテーションを使用するかどうか |
false |
HDS/Recording/ContentProtection/FlashAccessV3/KeyRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900 秒 |
HDS/Recording/ContentProtection/FlashAccessV3/KeyRotationFilePath |
使用するローテーションキーが含まれたファイル。 このファイルにはコンテンツを暗号化するために使用する、ローテーションキーの配列が含まれます。ファイルが指定されなかった場合は、ランダムに生成されたキーが使用されます。 キーは16バイトの長さで、16進数の値で指定しなければなりません。 |
ランダムに生成されたキーが使用されます(以下の説明の通り) |
以下のApplication.xmlを使用すると、キーローテーションがアプリケーションレベルで有効化されます:
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
<PublishTimeout>0</PublishTim eout>
<AdjustForZeroTimeStampMessages>2</AdjustForZeroTimeStampMessages>
<AdjustForRecordingRollover>false</AdjustForRecordingRollover>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV3</ProtectionScheme>
<FlashAccessV3>
<ContentID >liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>http://<aaxs-test-server>/</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<Licens eServerCertFile>
aaxs-test-server-licCert.der
</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
<EnableKeyRotation>true</EnableKeyRotation>
<KeyRotationInterval>500</KeyRotationInterval>
<KeyRotationFilePath>sample_keys.txt</KeyRotationFilePath>
</FlashAccessV3>
</ContentProtection>
</Recording>
</HDS>
</Application>
イベントレベル - Adobe Access
パラメーター |
説明 |
デフォルト値 |
Recording/ContentProtection/FlashAccessV3/EnableKeyRotation |
Adobe Access保護スキームでキーローテーションを使用するかどうか |
false |
Recording/ContentProtection/FlashAccessV3/KeyRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900 秒 |
Recording/ContentProtection/FlashAcessV3/KeyRotationFilePath |
使用するローテーションキーが含まれたファイル。 このファイルにはコンテンツを暗号化するために使用する、ローテーションキーの配列が含まれます。ファイルが指定されなかった場合は、ランダムに生成されたキーが使用されます。 キーは16バイトの長さで、16進数の値で指定しなければなりません。 |
ランダムに生成されたキーが使用されます(以下の説明の通り) |
以下のEvent.xmlを使用すると、キーローテーションがイベントレベルで有効化されます。
<Event>
<EventID>liveevent</EventID>
<Recording>
<FragmentDuration>4000</FragmentDuration>
<SegmentDuration>400000</SegmentDuration>
<DiskManagementDuration>3</DiskManagementDuration>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV3</ProtectionScheme>
<FlashAccessV3>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>http://<aaxs-test-server>/</LicenseServerURL>
<TransportCertFile>aaxs-test-server-trnsCert.der</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der
</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
<EnableKeyRotation>true</EnableKeyRotation>
<KeyRotationInterval>500</KeyRotationInterval>
<KeyRotationFilePath>sample_keys.txt</KeyRotationFilePath>
</FlashAccessV3>
</ContentProtection>
</Recording>
</Event>
注:HdsDrmKeyRotationFilePathはパスをrootinstall/applications/<application-name>/に対する相対パスと見なします。
サーバーレベル - PHDS
パラメーター |
説明 |
デフォルト値 |
PHDSEnableKeyRotation |
PHDS保護スキームでキーローテーションを使用するかどうか |
false |
PHDSKeyRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900秒 |
以下のhttpd.confを使用すると、キーローテーションがサーバーレベルで有効化されます:
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
Options -Indexes FollowSymLinks
HttpStreamingEncryptionScope server
HttpStreamingProtectionScheme PHDS
PHDSVideoEncryptionLevel 2
PHDSPlaybackExpiration 24Hours
PHDSOutputProtection None
PHDSEnableKeyRotation true
PHDSKeyRotationInterval 500
</Location>
Application level - PHDS
パラメーター |
説明 |
デフォルト値 |
HDS/Recording/ContentProtection/PHDS/EnableKeyRotation |
PHDS保護スキームでキーローテーションを使用するかどうか |
false |
HDS/Recording/ContentProtection/PHDS/KeyRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900秒 |
以下のhttpd.confを使用すると、キーローテーションがアプリケーションレベルで有効化されます。
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
<PublishTimeout>0</PublishTimeout>
<AdjustForZeroTimeStampMessages>2</AdjustForZeroTimeStampMessages>
<AdjustForRecordingRollover>false</AdjustForRecordingRollover>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>PHDS</ProtectionScheme>
<PHDS>
<VideoEncryptionLevel>2</VideoEncryptionLevel>
<OutputProtection>None</OutputProtection>
<PlaybackExpiration>24Hours</PlaybackExpiration>
<EnableKeyRotation>true</EnableKeyRotation>
<KeyRotationInterval>500</KeyRotationInterval>
</PHDS>
</ContentProtection>
</Recording>
</HDS>
</Application>
イベントレベル - PHDS
パラメーター |
説明 |
デフォルト値 |
Recording/ContentProtection/PHDS/EnableKeyRotation |
PHDS保護スキームでキーローテーションを使用するかどうか |
false |
Recording/ContentProtection/PHDS/KeyRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900秒 |
以下のhttpd.confを使用すると、キーローテーションがイベントレベルで有効化されます。
<Event>
<EventID>liveevent</EventID>
<Recording>
<FragmentDuration>4000</FragmentDuration>
<SegmentDuration>400000</SegmentDuration>
<DiskManagementDuration>3</DiskManagementDuration>
<ContentProtection enabled="true">
<ProtectionScheme>PHDS</ProtectionScheme>
<PHDS>
<VideoEncryptionLevel>2</VideoEncryptionLevel>
<OutputProtection>None</OutputProtection>
<PlaybackExpiration>24Hours</PlaybackExpiration>
<EnableKeyRotation>true</EnableKeyRotation>
<KeyRotationInterval>500</KeyRotationInterval>
</PHDS>
</ContentProtection>
</Recording>
</Event>
F4Fコンテンツでジャストインタイムの暗号化を無効化する
PHDS・Adobe Accessの保護が有効化されている場合、サーバーはストリームを取り込みF4Fストリームデータへとパッケージ化します。この暗号化されていないF4Fデータは、ソースと見なされPHDS・Adobe Accessの設定に基づき暗号化されます。取り込んだストリームを既に暗号化されたF4Fデータとして格納し、ジャストインタイムのF4Fデータの暗号化を無効化するには特別な設定が必要になります。
以下はサーバーレベルでジャストインタイムの暗号化を有効化あるいは無効化するディレクティブの表です。
httpd.confのタグ:
ディレクティブ |
説明 |
デフォルト値 |
HttpStreamingJITEncryption |
ジャストインタイムの暗号化を無効化するには、値を”false”に設定します。 |
true |
rootinstall/conf/_defaultRoot_/_defaultVHost_/Application.xmlのタグ:
ディレクティブ |
説明 |
デフォルト値 |
HDS/Recording/JITEncryption |
ジャストインタイムの暗号化を無効化するには、値を”false”に設定します。 |
false |
注:ジャストインタイムの暗号化を無効化するには、HttpStreamingJITEncryptionとJITEncryptionのタグを両方ともfalseに設定しなければなりません。
JITEncryptionがfalseに設定された場合:
• rootinstall/conf/_defaultRoot_/_defaultVHost_/Application.xmlでサーバーレベルの暗号化設定(PHDS・Adobe Access)を指定します。
• 取り込まれたストリームは、暗号化されたF4Fコンテンツとして格納されます。よって、DRMmetaファイルはサーバー上、F4Fコンテンツの中に格納されます。
httpd.confで以下の設定を行うと、ジャストインタイムの暗号化がサーバー全体に渡って無効化されます。
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HdsFmsDirPath ".."
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
HttpStreamingJITEncryption false
Options -Indexes FollowSymLinks
</Location>
rootinstall/conf/_defaultRoot_/_defaultVHost_/Application.xmlで以下の設定を行うと、PHDSの保護が有効化されます:
<Application>
<!-- This section provides the means to control the behavior of -->
<!-- application-specific HTTP dynamic streaming functionality. -->
<HDS>
<!-- This section controls the behavior of HTTP live recording -->
<Recording>
<!-- The enabled attribute can be set to "true", "false" or "allow".-->
<!-- Content prote cted is enabled when the attribute is set to "true",-->
<!-- and disabled when set to "false".-->
<!-- If enabled is set to "allow", only then Event.xml have right to -->
<!-- override the ContentProtection tag completely. And none of the -->
<!-- settings inside the ContentProtection here will be used. And if -->
<!-- ContentProtection is also not specified in Event.xml, content -->
<!-- protection will be disabled by default. -->
<JITEncryption>false</JITEncryption>
<ContentProtection enabled="true">
<ProtectionScheme>PHDS</ProtectionScheme>
<PHDS>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<VideoEncryptionLevel>2</VideoEncryptionLevel>
<PlaybackExpiration>24Hours</PlaybackExpiration>
<OutputProtection>None</OutputProtection>
</PHDS>
</ContentProtection>
</Recording>
</HDS>
</Application>
rootinstall/conf/_defaultRoot_/_defaultVHost_/Application.xmlで以下の設定を行うと、Adobe Accessの保護が有効化されます:
<Application>
<!-- This section provides the means to control the behavior of -->
<!-- application-specific HTTP dynamic streaming functionality. -->
<HDS>
<!-- This section controls the behavior of HTTP live recording -->
<Recording>
<!-- The enabled attribute can be set to "true", "false" or "allow". -->
<!-- Content protection is enabled when the attribute is set to "true",-->
<!-- and disabled when set to "false". -->
<!-- If enabled is set to "allow", then Event.xml will -->
<!-- override the ContentProtection tag completely. And none of the -->
<!-- settings inside the ContentProtection will be used. And if -->
<!-- ContentProtection is not specified in Event.xml, then content -->
<!-- protection will be disabled by default. -->
<JITEncryption>false</JITEncryption>
<ContentProtection enabled="true">
<ProtectionScheme>FlashAccessV2</ProtectionScheme>
<FlashAccessV2>
<ContentID>liveevent</ContentID>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL> http://<aaxs-test-server>/
</LicenseServerURL>
<TransportCertFile>
aaxs-test-server-trnsCert.der
</TransportCertFile>
<LicenseServerCertFile>
aaxs-test-server-licCert.der</LicenseServerCertFile>
<PackagerCredentialFile>
aaxs-test-server-pkgrCert.pfx
</PackagerCredentialFile>
<PackagerCredentialPassword>pwd=</PackagerCredentialPassword>
<PolicyFile>sample_policy.pol</PolicyFile>
</FlashAccessV2>
</ContentProtection>
</Recording>
</HDS>
</Application>
HLSやHDSの暗号化されたライブストリーム向けにシステムを設定する
ジャストインタイムの暗号化がオンの場合は、HDSとHLS向けに2つの異なるアプリケーションは必要ありません。ライブコンテンツはディスクに暗号化されずに格納され、後でApacheのHDSもしくはHLSモジュールを使用して動的に暗号化されます。HttpStreamingJITEncryptionとJITEncryptionタグがfalseに設定されない限り、デフォルトではジャストインタイムの暗号化はオンです。ジャストインタイムの暗号化がオフの場合は、ライブPHLSとPHDSでの配信のためAdobe Media Serverに一組のストリームをパブリッシュするには特別な設定が必要です。ジャストインタイムの暗号化がオフでPHDSが有効化されている場合、サーバーはストリームを取り込み、暗号化されたF4Fデータへのパッケージ化します。しかし、PHLSはソースとして暗号化されていないデータが必要です。暗号化されたF4Fデータを取り込み、再度PHLS向けに暗号化することはできません。保護されたコンテンツをFlash Player・AIRとiOSデバイスに配信するには、2つの異なるアプリケーション(1つはHDS用で1つはHLS用)へとパブリッシュするようにエンコーダーを設定してください。
1 2つのliveokgrアプリケーションを作成します。“livepkgr_hds”と“livepkgr_hls”と名前をつけます。
2 rootinstall/conf/_defaultRoot_/_defaultVHost_/Application.xmlを以下のように設定します。
<Application>
<!-- This section provides the ways to control the behavior of -->
<!-- application-specific HTTP dynamic streaming functionality. -->
<HDS>
<!-- This section controls the behavior of HTTP live recording -->
<Recording>
<!-- The enabled attribute can be set to "true", "false" or "allow". -->
<!-- Content protected is enabled when the attribute is set to "true",-->
<!-- and disabled when set to "false". -->
<!-- If enabled is set to "allow", only then Event.xml have right to -->
<!-- override the ContentProtection tag completely. And none of the -->
<!-- settings inside the ContentProtection here will be used. And if -->
<!-- ContentProtection is also not specified in Event.xml, content -->
<!-- protection will be disabled by default. -->
<JITEncryption>false</JITEncryption>
<ContentProtection enabled="allow">
</ContentProtection>
</Recording>
</HDS>
</Application>
3 <AMS-Install>/applications/livepkgr_hds/Application.xmlを以下のように設定します:
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
<PublishTimeout>0</PublishTimeout>
<AdjustForZeroTimeStampMessages>2</AdjustForZeroTimeStampMessages>
<AdjustForRecordingRollover>false</AdjustForRecordingRollover>
</Live>
</StreamManager>
<HDS>
<Recording>
<ContentProtection enabled="true">
<ProtectionScheme>PHDS</ProtectionScheme>
<PHDS>
<CommonKeyFile>common-key.bin</CommonKeyFile>
<VideoEncryptionLevel>2</VideoEncryptionLevel>
<PlaybackExpiration>24Hours</PlaybackExpiration>
<OutputProtection>None</OutputProtection>
</PHDS>
</ContentProtection>
</Recording>
</HDS>
</Application>
4 httpd.confを以下のように設定します。
PHDS向けには、以下のLocationディレクティブを使用します。
<Location /hds-live>
HttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications/livepkgr_hds"
HttpStreamingContentPath "../applications/livepkgr_hds"
HttpStreamingURLSandboxLevel "App"
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
HttpStreamingJITEncryption false
Options -Indexes FollowSymLinks
</Location>
PHLS向けには、以下のLocationディレクティブを使用します。
<Location /hls-live>
HLSHttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications/livepkgr_hls"
HttpStreamingContentPath "../applications/livepkgr_hls"
HttpStreamingURLSandboxLevel "App"
HLSMediaFileDuration 8000
HLSSlidingWindowLength 6
HLSFmsDirPath ".."
HttpStreamingUnavailableResponseCode 503
HLSEncryptionScope server
HLSProtectionScheme PHLS
</Location>
5 Apacheを再起動します。
6 Flash Media Live Encoderからlivepkgr_hdsとlivepkgr_hlsの各アプリケーションにストリームをパブリッシュします。livestream%i?adbe-live-event=liveeventというストリーム名を使用します。
7 PHDSの要求URLはhttp://<serveruri>/hds-live/_definst_/<liveevent>.f4m で、PHLSの要求URLはhttp://<serveruri>/hls-live/_definst_/<liveevent>.m3u8です。HttpStreamingURLSandboxLevelディレクティブが"App"に設定されているため、要求URLはアプリケーション名を使用しません。
注:この場合、common-key.binを<AMS Install>/credsディレクトリから<AMS Install>/applications/livepkgr_hds/へコピーします。
同様に、上で述べた手順に従うと、Adobe Accessの設定もHDSとHLSで使用することができます。
VODの使用事例
オンデマンドのストリーミング向けには、PHDSを以下のレベルで設定します:
サーバー—rootinstall/Apache2.2/conf/httpd.conf
ストリーム—jit.conf ファイルを作成し、コンテンツと同じディレクトリにコピーします。
使用開始する
PHDSをすぐに使い始めるには、以下のディレクティブを理解する必要があります:
ディレクティブ |
デフォルト値 |
説明 |
EncryptionScope |
無し |
可能な値はcontentとserverです。
値がcontentの場合、jit.confファイルのPHDSの設定はhttpd.confファイルの設定をオーバーライドします。
値がserverの場合は、サーバーはhttpd.confファイルの設定を使用します。 |
ProtectionScheme |
無し |
保護のタイプを決定する文字列です。PHDSにはPHDSを使用します。 |
オンデマンドのPHDSを設定する最も単純な方法は、Apacheのhttpd.confファイル中の2行を非コメント化することです。
<IfModule jithttp_module>
<Location /hds-vod>
HttpStreamingJITPEnabled true
HttpStreamingContentPath "../webroot/vod"
JitFmsDirPath ".."
Options -Indexes FollowSymLinks
# Uncomment the following directives to enable encryption
# for this location.
EncryptionScope server
ProtectionScheme phds
</Location>
</IfModule>
注:この設定はPHDSをサーバーレベルで有効化します。
AMSのデフォルトのインストールでは、<root-install>/webrootにsample1_1500kbps.f4vというメディアファイルがインストールされます。以下のURIでこのsample1_1500kbps.f4vを再生してください。http://<server-ip>/hds-vod/ sample1_1500kbps.f4v.f4m
詳細な設定
以下のセクションでは、PHDSとAdobe Accessの両方の詳細な設定を提供します。
サーバーレベル
以下のセクションでは、どのようにすればサーバー全体でコンテンツ保護を適用できるかを説明します。
共通設定
ディレクティブ |
デフォルト値 |
説明 |
EncryptionScope |
content |
可能な値はcontentとserverです。
値がcontentの場合、jit.confファイルのPHDSの設定はhttpd.confファイルの設定をオーバーライドします。
値がserverの場合は、サーバーはhttpd.confファイルの設定を使用します。
暗号化ポリシーを設定するサーバー全体に渡る設定です。 server – 全てのコンテンツがApacheの設定に従って保護されます(jit.confは無視されます)。 content –jit.confファイルに従い、コンテンツは保護されるか、または保護されません。 off – 全てのコンテンツは保護されません(jit.confは無視されます)。 |
ProtectionScheme |
PHDS |
保護のタイプを決定する文字列です。可能な値はPHDSとFlashAccessV2です。 |
PHDSの設定
以下のjithttp_module用のディレクティブは、Apacheのhttpd.confファイルで設定します。
ディレクティブ |
デフォルト値 |
説明 |
PHDSCommonKeyFile |
creds/common-key.bin
このファイルはインストール中に作成されます。 |
この場所でコンテンツを保護するために使用される共通キーです。 |
PHDSPlaybackExpiration |
24Hours |
コンテンツが視聴可能な期間です。可能な値は24HoursとUnlimitedです。 |
PHDSOutputProtection |
None |
クライアントで要求されるメディアのハードウェア出力保護です。可能な値はNone、BestEffort、Requiredです。 |
PHDSVideoEncryptionLevel |
2 |
コンテンツの暗号化レベル(0-低、1-中、2-高)です。低と中の設定では部分的な暗号化が行われます。サンプルの一部(例えばビデオのキーフレーム)が暗号化されます。部分的な暗号化は、復号するフレームが少なくなるため、再生パフォーマンスを改善することができます。 |
Adobe Accessの設定
ディレクティブ |
デフォルト値 |
説明 |
JitDrmCommonKeyFile |
無し |
この場所でコンテンツを保護するために使用される共通キーです。JitDrmCommonKeyFileのパスはrootinstall/Apache2.2に対する相対パスです。 |
Directive |
Default Value |
Description |
JitDrmLicenseServerURL |
無し |
コンテンツ保護に使用されるライセンスサーバーのURLです。 |
JitDrmTransportCertFile |
無し |
コンテンツ保護に使用されるトランスポート証明書です。 |
JitDrmPackagerCredentialFile |
無し |
コンテンツ保護に使用されるパッケージャー保護資証明書です。 |
JitDrmPackagerCredentialPassword |
無し |
コンテンツ保護に使用されるパッケージャー保護資格証明書のパスワードです。 |
JitDrmPolicyFile |
無し |
コンテンツ保護のポリシーです。 |
以下の例では新たなLocationディレクティブを追加しています。/phds を含む要求により、保護されたコンテンツが配信されます。この設定は、PHDSPlaybackExpiration、PHDSVideoEncryptionLevel、またはPHDSCommonKeyFileを定義せず、それらのデフォルト値に依存します。
LoadModule jithttp_module modules/mod_jithttp.so
<IfModule jithttp_module>
<Location /phds>
HttpStreamingJITPEnabled true
HttpStreamingContentPath "../webroot/vod"
JitFmsDirPath ".."
Options -Indexes FollowSymLinks
EncryptionScope server
ProtectionScheme phds
</Location>
メディアプレイヤーが/webroot/vodからのコンテンツを要求した場合、そのコンテンツは保護されます。例えば、以下のURLをサンプルビデオプレイヤーから要求してみてください。
http://localhost:8134/phds/sample1_1500kbps.f4v.f4m
コンテンツが保護されていることを確認するには、ウェブブラウザーのアドレスバーに同じURLを入力してください。XML応答には、以下の様な<drmAdditionalHeader>要素が含まれています。
<?xml version="1.0" encoding="UTF-8"?>
- <manifest xmlns="http://ns.adobe.com/f4m/1.0">
<id>sample1_1500kbps.f4v</id>
<streamType>recorded</streamType>
<duration>114.61450000000001</duration>
<bootstrapInfo profile="named" id="bootstrap3628">AAABq2Fic3QAAAAAAAA</bootstrapInfo>
<drmAdditionalHeader drmContentId="sample1_1500kbps.f4v" id="drmMetadata9839">AgARfEFkZGl0aW9uYWxIZWFkZXIDAAp</drmAdditionalHeader>
- <media streamId="sample1_1500kbps.f4v" url="sample1_1500kbps.f4v" bootstrapInfoId="bootstrap3628" drmAdditionalHeaderId="drmMetadata9839">
<metadata>AgAKb25NZXRhRGF0</metadata>
</media>
</manifest>
注意: <bootstrapInfo>、<drmAdditionalHeader> および <metadata> 情報は、読みやすくなるように要約されています。
以下の例では、新たなLocationディレクティブを追加しています。/hds-vod-faxを含む要求により、Adobe Accessで保護されたコンテンツが配信されます。
<Location /hds-vod-fax>
HttpStreamingJITPEnabled true
HttpStreamingContentPath "../webroot/vod"
HttpStreamingJITConfAllowed true
JitFmsDirPath ".."
Options -Indexes FollowSymLinks
EncryptionScope server
ProtectionScheme FlashAccessV2
JitDrmCommonKeyFile common-key.bin
// Common key to be used to protect content at this location. No default
JitDrmLicenseServerURL http:
// License server URL used when protecting content at this location. No default
JitDrmTransportCertFile aaxs-test-server-trnsCert.der
// Transport certification used when protecting content at this location. No default
JitDrmLicenseServerCertFile aaxs-test-server-licCert.der
// License server certificate used when protecting content at this location.
// No default.
JitDrmPackagerCredentialFile aaxs-test-server-pkgrCert.pfx
// Packager credential used when protecting content at this location. No default
JitDrmPackagerCredentialPassword pwd=
// Packager credential password for the configured packager credential file.
// No default
JitDrmPolicyFile sample_policy.pol
//Policy to be used when protecting content at this location. No default
</Location>
注:JitDrmCommonKeyFileはパスを<AMS-Install>/Apache2.2に対する相対パスと見なします。
ストリームレベル
メディアの個々のセットに暗号化のパラメーターを設定するには、以下で述べられている設定に従ってください。
共通設定
要素 |
デフォルト値 |
説明 |
//manifest/hds:content-protection enabled |
false |
Adobe AccessもしくはPHDSによるコンテンツ保護を有効化するには、enabled 属性を "true"に設定します。 |
//manifest/hds:content-protection/hds:protection-scheme |
PHDS |
保護のタイプです。可能な値はPHDSとFlashAccessV2のみです。PHDSにはPHDSを使用します。 |
PHDSの設定
要素 |
デフォルト値 |
説明 |
//manifest/hds:content-protection/hds:phds/hds:common-key-file |
creds/common-key.bin |
サーバーのインストール時に生成された共通キーファイルへのパスです。このファイルには16バイト/128ビットのランダムなキーが含まれています。このパスは絶対パスか、jit.confファイルに対する相対パスが可能です。 |
//manifest/hds:content-protection/hds:phds/hds:video-encryption-level |
2 |
コンテンツの暗号化レベル(0-低、1-中、2-高)です。 低と中の設定では部分的な暗号化が行われます。サンプルの一部(例えばビデオのキーフレーム)が暗号化されます。 部分的な暗号化は、復号するフレームが少なくなるため、再生パフォーマンスを改善することができます。 |
//manifest/hds:content-protection/hds:phds/hds:playback-expiration |
24Hours |
保護ポリシーです。このポリシーはコンテンツの視聴可能な期間を決定します。可能な値は24Hours とUnlimitedです。 |
//manifest/hds:content-protection/hds:phds/hds:output-protection |
None |
クライアントで必要なメディアのハードウェア出力保護です。可能な値はNone、BestEffort、及びRequiredです。 |
Adobe Accessの設定
要素 |
デフォルト値 |
説明 |
//manifest/hds:content-protection/hds:flash-access/hds:common-key-file |
無し |
共通キーファイルへのパスです。このファイルには16バイト/128ビットのランダムなキーが含まれています。このパスは絶対パスか、jit.confファイルに対する相対パスが可能です。 |
//manifest/hds:content-protection/hds:flash-access/hds:content-id |
無し |
コンテンツ保護に使用されるコンテンツIDです。指定されなかった場合は、ファイル名になります。指定された場合は、そのIDはディレクトリの全ファイルで共有されます。 |
//manifest/hds:content-protection/hds:flash-access/hds:license-server-url |
無し |
ライセンスサーバーのURLです。 |
//manifest/hds:content-protection/hds:flash-access/hds:transport-cert-file |
無し |
トランスポート証明書ファイルへのパスです。ファイルはDER形式です。このパスは絶対パスかjit.confファイルに対する相対パスである必要があります。 |
//manifest/hds:content-protection/hds:flash-access/hds:license-server-cert-file |
無し |
ライセンス証明書ファイルへのパスです。ファイルはDER形式です。このパスは絶対パスかjit.confファイルに対する相対パスである必要があります。 |
Element |
Default value |
Description |
//manifest/hds:content-protection/hds:flash-access/hds:packager-credential-file |
無し |
パッケージャーの保護資格証明書ファイルへのパスです。ファイルはPFX形式です。このパスは絶対パスかjit.confファイルに対する相対パスである必要があります。 |
//manifest/hds:content-protection/hds:flash-access/hds:packager-credential-password |
無し |
パッケージャー保護資格証明書のパスワードです。. |
//manifest/hds:content-protection/hds:flash-access/hds:policy-file |
無し |
ポリシーファイルへのパスです。ファイルはAdobe Accessポリシー形式です。このパスは絶対パスかjit.confファイルに対する相対パスである必要があります。 |
以下のhttpd.confファイルはEncryptionScopeをcontentに設定しています。この設定は、jit.confファイルでの設定がhttpd.confファイルでの設定をオーバーライドするようにサーバーに指示します。メディアの各セットに対してPHDS・Adobe Accessを設定するには、この設定を使用します。
LoadModule jithttp_module modules/mod_jithttp.so
<IfModule jithttp_module>
<Location /hds-vod>
HttpStreamingJITPEnabled true
HttpStreamingContentPath "../webroot/vod"
JitFmsDirPath ".."
Options -Indexes FollowSymLinks
EncryptionScope content
</Location>
以下のjit.confファイルを一緒に使用します。このjit.confファイルはオンデマンドのメディアファイルと同じディレクトリ(/webroot/vod)にあります。このjit.confファイルはPHDSを有効化します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0>
<frame-rate>29.97</frame-rate>
<frames-per-keyframe-interval>60</frames-per-keyframe-interval>
<hds:content-protection enabled="true">
<hds:protection-scheme>phds</hds:protection-scheme>
<hds:phds>
<hds:common-key-file>
C:\Program Files\Adobe\Adobe Media Server 5\creds\common-key.bin
</hds:common-key-file>
<hds:video-encryption-level>0</hds:video-encryption-level>
<hds:playback-expiration>unlimited</hds:playback-expiration>
</hds:phds>
</hds:content-protection>
</manifest>
以下のjit.confファイルを一緒に使用します。このjit.confファイルはオンデマンドのメディアファイルと同じディレクトリ(/webroot/vod)にあります。このjit.confファイルはAdobe Accessを有効化します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">
<hds:FlashAccessV2>
<hds:content-id>jit_fax2</hds:content-id>
<hds:common-key-file>common-key.bin</hds:common-key-file>
<hds:license-server-url>http://<aaxs-test-server></hds:license-server-url>
<hds:transport-cert-file>aaxs-test-server-trnsCert.der</hds:transport-cert-file>
<hds:license-server-cert-file>aaxs-test-server-licCert.der</hds:license-server-cert-file>
<hds:packager-credential-file>aaxs-test-server-pkgrCert.pfx</hds:packager-credential-file>
<hds:packager-credential-password>pwd=</hds:packager-credential-password>
<hds:policy-file>sample_policy.pol</hds:policy-file>
</hds:FlashAccessV2>
</hds:content-protection>
</manifest>
注: -key-fileはパスを<AMS-Install>/webroot/vodに対する相対パスと見なします。
キーローテーション
Adobe Media Server 5は、Adobe AccessやPHDSと組み合わせて使用すると保護されたHTTP Dynamic Streaming(PHDS)でキーローテーションをサポートします。一連のキーを使ってAMS5でコンテンツを暗号化することができます。定期的に暗号化キーを変更でき、コンテンツ暗号化キーをどのくらいの頻度で変更するか指定できます。
Adobe Access の設定
パラメーター |
説明 |
デフォルト値 |
JITDrmEnableKeyRotation |
FAXS保護スキームでキーローテーションを使用するかどうか.。この場合、ランダムに生成されたキーが使用されます。 |
false |
JITDrmKeyRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900秒 |
以下のhttpd.confを使用すると、キーローテーションがサーバーレベルで有効化されます。
<Location /hds-vod>
HttpStreamingJITPEnabled true
HttpStreamingContentPath "../webroot/vod"
HttpStreamingJITConfAllowed true
JitFmsDirPath ".."
Options -Indexes FollowSymLinks
EncryptionScope server
ProtectionScheme FlashAccessV3
JitDrmCommonKeyFile ../creds/common-key.bin
JitDrmLicenseServerURL http://ip-address:8090
JitDrmTransportCertFile dme/transport-cert-file.der
JitDrmLicenseServerCertFile dme/transport-cert-file.der
JitDrmPackagerCredentialFile dme/transport-cert-file.pfx
JitDrmPackagerCredentialPassword kY2IUPnQuG0=
JitDrmPolicyFile dme/local_chain.pol
JitDrmEnableKeyRotation true
JitDrmKeyRotationInterval 16
</Location>
Jit.conf
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">
<hds:content-protection enabled="true">
<hds:protection-scheme> FlashAccessV3 </hds:protection-scheme>
<hds:Flashaccessv3>
<hds:content-id>jit_fax3</hds:content-id>
<hds:common-key-file>../../creds/common-key.bin</hds:common-key-file>
<hds:license-server-url>http://10.192.37.195:8090/</hds:license-server-url>
<hds:transport-cert-file>../dme/transport-cert-file.der</hds:transport-cert-file>
<hds:license-server-cert-file>../dme/transport-cert-file.der</hds:license-server-cert-file>
<hds:packager-credential-file>../dme/transport-cert-file.pfx</hds:packager-credential-file>
<hds:packager-credential-password>kY2IUPnQuG0=</hds:packager-credential-password>
<hds:policy-file>../dme/local_chain.pol</hds:policy-file>
<hds:enable-key-rotation>true</hds:enable-key-rotation>
<hds:key-rotation-interval>900</hds:key-rotation-interval>
</hds:Flashaccessv3>
</hds:content-protection>
</manifest>
PHDS の設定
このセクションでは、PHDS用のキーローテーションの設定を説明します。
パラメーター |
説明 |
デフォルト値 |
PHDSEnableKeyRotation |
PHDS保護スキームでキーローテーションを使用するかどうか。この場合、ランダムに生成されたキーが使用されます。 |
false |
PHDSRotationInterval |
キーローテーションを有効化する場合、キーローテーションの間隔(秒単位) |
900秒 |
以下のhttpd.confを使用すると、キーローテーションがサーバーレベルで有効化されます。
<Location /hds-vod>
HttpStreamingJITPEnabled true
HttpStreamingContentPath "../webroot/vod"
HttpStreamingJITConfAllowed true
JitFmsDirPath ".."
Options -Indexes FollowSymLinks
EncryptionScope server
ProtectionScheme PHDS
PHDSCommonKeyFile ../creds/common-key.bin
PHDSEnableKeyRotation true
PHDSKeyRotationInterval 16
</Location>
Jit.conf
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">
<hds:content-protection enabled="true">
<hds:protection-scheme> PHDS </hds:protection-scheme>
<hds:PHDS>
<hds:content-id>jit_phds</hds:content-id>
<hds:common-key-file>../../creds/common-key.bin</hds:common-key-file>
<hds:enable-key-rotation>true</hds:enable-key-rotation>
<hds:key-rotation-interval>900</hds:key-rotation-interval>
</hds:PHDS>
</hds:content-protection>
</manifest>
ライセンスチェーン
Adobe Media Serverは、ライセンスチェーンを使用して生成されたポリシーからDRMメタデータへのリーフライセンスの埋め込みをサポートしています。そのポリシーのルートライセンスが使用することができるように設定された、ライセンスサーバー保護資格証明書と証明書のパスワードが、埋め込まれたリーフライセンスに含まれるCEKを暗号化するために必要です。
もしリーフライセンスを埋め込む設定がオフにされた場合でも、Adobe Media Serverはそのようなポリシーをサポートします。ただし、リーフライセンスがDRMメタデータに埋め込まれないポリシーを除きます。
注意:ライセンスチェーンのサポートは単一のサーバ証明書と証明書パスワードのペアに限定されます。
以下の表に必要な設定を挙げます。
パラメーター |
説明 |
デフォルト値 |
JitDrmEmbedLeafLicense |
DRM metadataへのリーフライセンスの埋め込みを有効化します。可能な値は"true"または"false"です。. 注意:ポリシーファイルはチェーン化ライセンスを使用して作成する必要があります。 |
false |
JitDrmLicenseServerCredentialFile |
HdsDrmEmbedLeafLicenseがtrueに設定されている場合は必須です。このlocationでコンテンツを保護する際に使用されるライセンスサーバー保護資格証明書です。 |
無し |
JitDrmLicenseServerCredentialPassword |
HdsDrmEmbedLeafLicenseがtrueに設定されている場合は必須です。上の項目で設定されたライセンスサーバー保護資格証明書ファイルのライセンスサーバー保護資格証明書パスワードです。 |
無し |
以下のhttpd.confを使用すると、キーローテーションがサーバーレベルで有効化されます。
<Location /hds-vod>
HttpStreamingJITPEnabled true
HttpStreamingContentPath "../webroot/vod"
HttpStreamingJITConfAllowed true
JitFmsDirPath ".."
Options -Indexes FollowSymLinks
EncryptionScope server
ProtectionScheme FlashAccessV3
JitDrmCommonKeyFile ../creds/common-key.bin
JitDrmLicenseServerURL http://ip-address:8090
JitDrmTransportCertFile dme/transport-cert-file.der
JitDrmLicenseServerCertFile dme/transport-cert-file.der
JitDrmPackagerCredentialFile dme/transport-cert-file.pfx
JitDrmPackagerCredentialPassword kY2IUPnQuG0=
JitDrmPolicyFile dme/local_chain.pol
JitDrmEmbedLeafLicense true
JitDrmLicenseServerCredentialFile dme/transport-cert-file.pfx
JitDrmLicenseServerCredentialPassword kY2IUPnQuG0=
</Location>
Jit.conf
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">
<hds:content-protection enabled="true">
<hds:protection-scheme> FlashAccessV3 </hds:protection-scheme>
<hds:Flashaccessv3>
<hds:content-id>jit_fax3</hds:content-id>
<hds:common-key-file>../../creds/common-key.bin</hds:common-key-file>
<hds:license-server-url>http://localhost:8090/</hds:license-server-url>
<hds:transport-cert-file>../dme/transport-cert-file.der</hds:transport-cert-file>
<hds:license-server-cert-file>../dme/transport-cert-file.der</hds:license-server-cert-file>
<hds:packager-credential-file>../dme/transport-cert-file.pfx</hds:packager-credential-file>
<hds:packager-credential-password>kY2IUPnQuG0=</hds:packager-credential-password>
<hds:policy-file>../dme/local_chain.pol</hds:policy-file>
<hds:embed-leaf-license>true</hds:embed-leaf-license>
<hds:license-server-credential-file>../dme/transport-cert-file.pfx</hds:license-server-credential-file>
<hds:license-server-credential-password>kY2IUPnQuG0=</hds:license-server-credential-password>
</hds:Flashaccessv3>
</hds:content-protection>
</manifest>
Protected HTTP Dynamic StreamingでのSWF検証
SWF検証は、不正なSWFファイルがコンテンツにアクセスするのを防止します。SWF検証を使用するには、Protected HTTP Dynamic Streaming(PHDS)を有効化する必要があります。
有効な SWF ファイルのリストを作成します。これはホワイトリストと呼ばれます。これらのファイルは埋め込まれたライセンスで指定され、DRM メタデータに入れられてクライアントに送信されます。クライアント上で、Flash Player および AIR 内部の Adobe Access によってSWF 検証が実施されます。
ホワイトリストを作成するには、ホワイトリストツール(rootinstall/tools/Whitelist)を使用します。
ワークフロー
1 PHDS.を有効化します。
2 ホワイトリストツールを使用して、許可されたSWFファイルのホワイトリストを生成します。ホワイトリストファイルには任意の名前を付けることができます。拡張子は、.whitelistまたは.airwhitelistである必要があります。
3 ホワイトリストをサーバーにコピーします。
4 SWF検証を有効化し、ホワイトリストの場所を以下の場所で指定します。
• (ライブ)—Application.xmlまたはEvent.xml
• (オンデマンド)—httpd.confまたはjit.conf
5 Adobe Media Server上のlivepkgrアプリケーションにストリームをパブリッシュします。
6 OSMFメディアプレイヤーからストリームを要求します。要求 URL のシンタックスがSWF 検証が理由で変わることはありません。
サーバーはホワイトリストからのSWFのハッシュを.drmmetaファイルに埋め込みます。Flash Playerは、DRM 認証の間にSWFのハッシュの検証を試みます。
7 (ライブ)サーバーは次の順序でホワイトリストを検索します。
a アプリケーションのフォルダー(ライブHTTPストリーミングのデフォルトのアプリケーションは、rootinstall/applications/livepkgrです)。
b Application.xmlの/SWFVerification/WhitelistFolder要素内のパス
c Event.xmlの/SWFVerification/WhitelistFolder要素内のパス
8 (オンデマンド)サーバーはhttpd.conf及びオンデマンドコンテンツと同じフォルダーにあるjit.confファイル内でホワイトリストを検索します。
ハッシュが一致しない場合、Flash Playerは実行時エラー(3310)を投げ、OSMFメディアプレイヤーはフラグメントの要求を停止します。
ライブPHDSでのSWF検証の設定
ライブPHDSでSWF検証を有効化するには、サーバーレベル(httpd.conf)、アプリケーションレベル(Application.xml)、またはイベントレベル(Event.xml)でPHDSを有効化します。
サーバーレベル(httpd.conf)でライブHDSのSWF検証を設定する
SWF検証を有効化するには、以下の要素をhds-liveディレクティブに追加します。
要素 |
説明 |
デフォルト |
PHDSSWFVerification |
SWF検証の設定のコンテナです。SWF検証を有効化するには、enabled属性を"true"に設定します。 |
"false" |
PHDSSWFWhiteListFolder |
SWFホワイトリストの場所を指定します。 |
ライブイベントのアプリケーションフォルダー。 |
アプリケーションレベル(Application.xml)またはイベントレベル(Event.xml)でライブHDSのSWF検証を設定する
Application.xmlでは、SWFVerificationは以下の場所にあります。
//Application/HDS/Recording/ContentProtection/PHDS/SWFVerification
Event.xmlでは、SWFVerificationは以下の場所にあります。
//Event/Recording/ContentProtection/PHDS/SWFVerification
要素 |
説明 |
デフォルト |
/SWFVerification |
SWF検証の設定のコンテナです。SWF検証を有効化するには、enabled属性を"true"に設定します。 |
"false" |
/SWFVerification/WhiteListFolder |
ホワイトリストを含むフォルダーへのパス。フォルダーには複数のホワイトリストファイルを含めることができます。
パスは絶対パスまたは相対パスにすることができます。Application.xml ファイルの相対パスは、アプリケーションフォルダーに対する相対パスです。Event.xml ファイルの相対パスは、イベントフォルダーに対する相対パスです。セキュリティ上の理由から、下位相対パスはサポートされていません。
この設定はオプションです。値が指定されない場合、サーバーはライブイベントのアプリケーションフォルダーを検索します。 |
ライブイベントのアプリケーションフォルダー。 |
Apacheのhttpd.confファイルで以下を設定し、ブートストラップ、フラグメント、マニフェスト、drmmetaの各応答に対するキャッシュ制御を設定します。
• HttpStreamingBootstrapMaxAge
• HttpStreamingFragMaxAge
• HttpStreamingF4MMaxAge
• HttpStreamingDrmmetaMaxAge
各設定の詳細情報については、「ライブおよびオンデマンド HTTP ストリーミングのサーバーレベル(httpd.conf)での設定」を参照して下さい。
オンデマンドPHDSでのSWF検証を設定する
SWF 検証は PHDS の下で設定されます。SWF 検証を有効化するには、PHDS を有効化します。オンデマンド PHDS は、サーバーレベル(httpd.conf)またはストリームレベル(jit.conf)で有効化できます。
オンデマンド PHDS の SWF 検証を、サーバーレベル(httpd.conf)またはストリームレベル(jit.conf)で設定します。
以下のエレメントを使用して、httpd.conf ファイルで SWF 検証を有効化し、設定を行います。
要素 |
説明 |
デフォルト |
PHDSSWFVerification |
SWF検証の設定のコンテナです。SWF検証を有効化するには、enabled属性を"true"に設定します。 |
"false" |
PHDSSWFWhiteListFolder |
どこにSWFホワイトリストがあるかを指定するオプションの設定です。フォルダーには複数のホワイトリストファイルを含めることができます。
Apacheの設定がオーバーライドを許可している場合、この設定はjit.confでオーバーライドすることができます。
この設定はオプションです。値が指定されない場合、サーバーは jit.conf ファイルを含むフォルダーを検索します。folder containing the jit.conf file. |
そのメディアを含むフォルダー。 |
次のエレメントを使用して、jit.conf ファイルで SWF 検証を有効化し、設定を行います。jit.conf ファイルをオンデマンドメディアと同じディレクトリにコピーします。
要素 |
説明 |
デフォルト |
//manifest/hds:content-protection/hds:phds/hds:swf-verification |
SWF検証の設定のコンテナです。SWF検証を有効化するには、enabled属性を"true"に設定します。 |
"false" |
//manifest/hds:content-protection/hds:phds/hds:swf-verification/hds:white-list-folder |
ホワイトリストを含むフォルダーへのパス。フォルダーには複数のホワイトリストファイルを含めることができます。
パスは絶対パスまたは相対パスにすることができます。相対パスは、jit.conf ファイルが含まれたフォルダーに対して相対的です。セキュリティ上の理由から、下位相対パスはサポートされていません。
この設定はオプションです。値が指定されない場合、サーバーは jit.conf ファイルを含むフォルダーを検索します。 |
そのメディアを含むフォルダー。 |
ホワイトリストツール
ホワイトリストツールを使用して、有効なSWFとAIRファイルのリストを生成します。サーバーはこのホワイトリストを使用して、Flash PlayerとAIRアプリケーションのSWF検証を行います。
ホワイトリストツールはSWFファイル、AIR証明書ファイル、AIR署名ファイルを受け取り、各ファイルのSHA256ハッシュを生成します。このツールはハッシュをBase64でエンコードされたテキストとして1つまたは複数のテキストファイルに書き込み、出力します。そのテキストファイルは.whitelistと.airwhitelistの拡張子を使用します。
ホワイトリストツールは以下のディレクトリにあります。
rootinstall/tools/Whitelist
以下のコマンドラインシンタックスを使用して、ホワイトリストツールを実行します。
whitelist --in <file|dir> [--outDir <output dir>] [--out <output file>] [--version]
以下の表に、ホワイトリストツールのコマンドラインオプションと引数を挙げます。
オプション |
オプショナルか |
説明 |
--in <file|dir> |
いいえ |
SWFファイル、AIR署名ファイル、またはAIR証明書ファイル。SWFが含まれるディレクトリ。ディレクトリのパラメーターはAIRファイルをサポートしていません。
複数のファイルやディレクトリを指定するには、複数回--inオプションを使用します。
SWFファイルには、このツールは拡張子が.whitelistのファイルを出力します。AIR署名ファイルと証明書ファイルには、拡張子が.airwhitelistのファイルを出力します。 |
--log <file|dir> |
はい |
デフォルトのwhitelist.propertiesファイルのあるディレクトリのパスか、propertiesファイルのフルパス。この.propertiesファイルでロギングをカスタマイズします。
ホワイトリストツールはlog4j Apacheロギングをサポートしています。デフォルトでは、ログメッセージはコンソールに出力されます。他の場所に出力するには、この—logオプションを使用します。 |
--out <output file> |
はい |
.whitelistファイルや.airwhitelistファイルの名前です。もし—outが指定されなかった場合は、各swfファイルと.xmlファイルに対して.whitelistファイルと.airwhitelistファイルを作成します。
--outが指定された場合は、--outDirは無視されツールが実行されているディレクトリにファイルが保存されます、。 |
--outDir <outputdir> |
はい |
出力ディレクトリを作成し、.whitelistファイルをそこに保存します。
--outDirが指定されなかった場合は、ツールが実行されているディレクトリに.whitelistファイルや.airwhitelistファイルが作成されます。--outDirが相対パスの場合は、ツールが実行されているディレクトリに対する相対パスになります。 |
--version |
はい |
SWF検証のバージョン番号を.whitelist fileに書き込みます。 |
以下の表に、ホワイトリストツールの実行例を挙げます。
例 |
結果 |
whitelist --in foo.swf --in bar.swf |
foo.swf.whitelistとbar.swf.whitelistをカレントディレクトリに作成します。 |
whitelist --in signature.xml --in bar.swf |
signature.xml.airwhitelistとbar.swf.whitelistをカレントディレクトリに作成します。 |
whitelist --in foo.swf --in mydir
この例でmydirはbar.swfが入っているディレクトリです。 |
foo.swf.whitelistとbar.swf.whitelist をカレントディレクトリに作成します。 |
whitelist --in signature.xml --in mydir
この例でmydirはbar.swfが入っているディレクトリです。 |
signature.xml.airwhitelistとbar.swf.whitelistをカレントディレクトリに作成します。 |
whitelist --in foo.swf --in bar.swf --outDir outputdir |
outputdir/foo.swf.whitelistファイルと outputdir/bar.swf.whitelistファイルを作成します。 |
whitelist --in signature.xml --in bar.swf --outDir outputdir |
outputdir/signature.xml.airwhitelist ファイルとoutputdir/bar.swf.whitelistファイルを作成します。 |
whitelist --in foo.swf --in mydir --out outputfile
この例でmydirはbar.swfが入っているディレクトリです。 |
foo.swfとmydir/bar.swfのハッシュを含むoutputfile.whitelistファイルをカレントディレクトリに作成します。 |
whitelist --in signature.xml --in mydir --out outputfile この例でmydirはbar.swfが入っているディレクトリです。 |
signature.xmlのハッシュを含むoutputfile.airwhitelistファイルを作成します。bar.swfのハッシュを含むoutputfile.whitelistファイルを作成します。両ファイルはカレントディレクトリに作成されます。 |
whitelist --in foo.swf --in mydir --out outputfile --outDir outputdir
この例でmydirはbar.swfが入っているディレクトリです。 |
foo.swfとmydir/bar.swfのハッシュを含むoutputfile.whitelistファイルをカレントディレクトリに作成します。
警告:--outオプションが指定された場合は、ツールは—outDirオプションを無視します。 |
whitelist --in signature.xml --in mydir --out outputfile --outDir outputdir この例でmydirはbar.swfが入っているディレクトリです。 |
signature.xmlのハッシュを含むoutputfile.airwhitelistを作成します。mydir/bar.swfのハッシュを含むoutputfile.whitelistファイルを作成します。両ファイルはカレントディレクトリに作成されます。
警告:--outオプションが指定された場合は、ツールは—outDirオプションを無視します。 |
whitelist --version |
"version 1.0"と表示します。 |
もし入力ファイルが前の入力ファイルと同じ名前だった場合には、両方のファイルがホワイトリストに追加されます。
whitelist --in c:\myfolder\signature.xml --in c:\yourfolder\signature.xml --outDir c:\out\signature.xml
出力を以下に示します。
# c:\myfolder\signature.xml
XXXXXXXXXXXXXXXXXXXXXX
# c:\yourfolder\signature.xml
XXXXXXXXXXXXXXXXXXXXXXXXXXX
個々のハッシュのホワイトリスト形式を以下に示します。
# foo.swf
PGfcEwgUKWScivIRucIwG5jT
AIRファイルのホワイトリスト形式を以下に示します。
# C:\air\signatures.xml
A167FBF93528C87BBCDAC2B8CD0829479DDA6912.2
--outオプションを使用したときの複数のハッシュのホワイトリスト形式を以下に示します。
# foo.swf
PGfcEwgUKWScivIRucIwG5jT
# bar.swf
TcsQWLLi7h7WNjHqcLzzl0J15Srvdzkz2inCTKQLOHw=
# mydir/bar.swf
TcsQWLLi7h7WNjHqcLzzl0J15Srvdzkz2inCTKQLOHw=
最終更新日 2013/9/30