FairPlay的多重DRM工作流程 multi-drm-workflow-for-fairplay
DRM工作流程包括封裝您的內容、提供內容的授權,以及從您自己的視訊應用程式播放受保護的內容。 每個DRM解決方案的工作流程通常都類似,但細節部分有所差異。
此多DRM工作流程會帶您完成Apple FairPlay所保護之HLS內容的設定、封裝、授權和播放。 此工作流程也包含實施離線播放和授權輪換的選用指示。
啟用FairPlay的ExpressPlay服務 enable-expressplay-service-for-fairplay
當您搭配ExpressPlay DRM服務使用Apple的FairPlay DRM解決方案時,需要一些設定。 其中涉及從Apple取得認證,並將其上傳至ExpressPlay。
請依照下列步驟啟用ExpressPlay服務,以提供FairPlay內容保護。
-
從Apple取得認證。
這些認證會唯一提供給每個服務提供者。 您必須填妥下清單格來要求這些許可權: https://developer.apple.com/contact/fps/.
note note NOTE 選取 Content Provider 主要角色的。 您的請求獲得核准後,Apple會傳送給您 FairPlay串流部署套件.
-
產生憑證申請檔。
您可以使用 openssl 以產生您的公開/私密金鑰組,以及您的憑證簽署要求(CSR)。
-
產生您的金鑰組。
code language-none openssl genrsa -aes256 -out privatekey.pem 1024 -
產生您的CSR。
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 此步驟的指示位於 FairPlay串流部署套件,但為了方便您使用,也隨附於此處。 如果您對流程的這部分有任何問題,請查閱中的指示 FairPlayCertificateCreation.pdf (在您的部署套件中)。
-
-
透過Apple開發人員入口網站上傳CSR。
-
開發團隊的團隊代理必須登入 developer.apple.com/account.
-
按一下 Certificates, Identifiers & Profiles,然後選取 iOS, tvOS, watchOS 下拉式清單,然後按一下 Certificates->Production (在頁面左側)。
-
按一下 + 按鈕來要求新憑證。 選取 FairPlay Streaming Certificate 下的選項 Production.
此 新增iOS憑證 對話方塊開啟。
-
在 新增iOS憑證,上傳您在步驟2.b.中產生的CSR檔案,然後按一下 Generate.
您的應用程式秘密金鑰(ASK)會顯示在同一個對話方塊中。
-
寫下您的ASK,並將其儲存在安全的位置。
-
在ASK中取得金鑰以完成憑證產生並按一下 Continue.
-
確認已儲存ASK之後,請按一下 Generate 以繼續。
note note NOTE 請務必儲存ASK的復本並妥善儲存。 如果您的ASK受到損害,您將無法再使用FairPlay串流保護您的內容。 只有一(1)個ASK分配給您的團隊。 系統將不會再提供值,而且您稍後將無法擷取值。 -
下載您的FPS憑證。
請務必將您的私密金鑰(來自步驟2.a.)和公開金鑰(您在此步驟中下載的FPS憑證)的備份復本儲存在安全的地方。
-
-
使用您的FairPlay憑證設定您的ExpressPlay帳戶。
-
假設您在步驟3.h.下載的憑證名稱是 fairplay.cer.
-
開啟 fairplay.cer 使用Apple鑰匙圈存取公用程式的檔案。
-
輸入"
fairplay」在右上角的搜尋欄位中。 -
識別您公司的FairPlay憑證。
您的公司名稱應與Apple發行的憑證相關聯。
-
選取展開箭頭來展開憑證,然後以滑鼠右鍵按一下您的私密金鑰。
-
選取 Export “Your Company Name” 並儲存 .p12 檔案。
系統會要求您指定密碼來保護此檔案。 記下此密碼,因為您將需要連同認證封裝一起傳送此密碼。
-
登入您的帳戶於 www.expressplay.com.
-
按一下 DRM SERVICES 然後選取「 」 FairPlay 標籤。
-
將您的FairPlay憑證上傳至您的ExpressPlay帳戶。
- 建立包含ASK值的文字檔(應該是32個字元,例如:
1234567890abcdef1234567890abcdef),並選取此檔案以上傳。 - 從Step 4.f.選取要上載的PKCS12檔案。
- 從Step 4.f輸入PKCS12檔案密碼。
- 按一下「上傳」按鈕。
- 建立包含ASK值的文字檔(應該是32個字元,例如:
-
現在,您可以建立iOS應用程式或HTML5頁面,並具有FairPlay內容保護功能以及 fairplay.cer 憑證使用FairPlay的ExpressPlay服務。
封裝您的內容以進行FairPlay package-your-content-for-fairplay
若要封裝您的內容,您可以使用AdobeOffline Packager或其他工具,例如ExpressPlay的Bento4封裝程式。
封裝程式會準備視訊以進行播放(例如,將原始檔案分割並放入資訊清單中),並使用您選擇的DRM解決方案(在此案例中為FairPlay)來保護視訊:
-
封裝您的內容。
以下是使用Adobe Offline Packager的封裝範例。 封裝程式會使用組態檔(例如 fairplay.xml),如下所示:
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— 此專案指向本機封裝電腦上的來源視訊位置。out_type— 此專案說明封裝輸出的型別,在此案例中為FairPlay的HLS。out_path— 本機電腦上您要輸出輸出的位置。drm_sys— 您封裝的DRM解決方案。 這是FAIRPLAY在此案例中。frag_dur— 片段持續時間(秒)。target_dur- HLS輸出的目標持續時間。key_file_path— 這是封裝電腦上用作內容加密金鑰(CEK)的授權檔案位置。 它是Base-64編碼的16位元組十六進位字串。iv_file_path— 這是封裝機器上IV檔案的位置。key_url— 的URI引數EXT-X-KEY的標籤 .m3u8 檔案。content_id— 預設值。
如 Packager檔案,「最佳實務是建立包含您要用於產生輸出的常用選項的設定檔。 然後,提供特定選項作為命令列引數來建立輸出。」
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"產生的M3U8檔案具有
EXT-X-KEY屬性,如下所示:code language-none #EXT-X-KEY:METHOD=SAMPLE-AES,URI="user_provided_value", KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
設定FairPlay的原則 setting-policies-for-fairplay
您可以使用軟體權利檔案伺服器,為受FairPlay保護的內容設定原則。 您可以設定自己的軟體,或使用Adobe提供的軟體權利檔案伺服器範例。
Adobe提供範例ExpressPlay軟體權利檔案伺服器(SEES),說明如何操作 基於時間 和 裝置繫結 權利。 此範例軟體權利檔案伺服器是以ExpressPlay服務為基礎建置。
參考伺服器:範例ExpressPlay軟體權利檔案伺服器(SEES)
FairPlay的授權和播放 licensing-and-playback-for-fairplay
在視訊資訊清單檔案(skd:)中使用的配置與ExpressPlay權杖請求(https:)中使用的配置之間,授權和播放受FairPlay保護的內容需要交換URL配置。
從iOS TVSDK使用者端實作授權和播放的說明如下: 在TVSDK應用程式中啟用Apple FairPlay. 您也可以選擇實作FairPlay的離線播放和授權輪換。
透過FairPlay離線HLS section_047A05D1E3B64883858BC601CFC8F759
您可能想要讓使用者在無法擷取授權時播放受FairPlay保護的內容,因為播放器會與網路隔離(例如在飛機上)。
開始此工作之前,請下載並閱讀Apple檔案 「使用FairPlay串流和HTTP即時串流的離線播放」. 閱讀指南以瞭解如何下載Transport Stream (TS)區段並將它們儲存到您的本機電腦。
使用此工作流程實作FairPlay的離線播放:
- 下載HLS TS區段。
- 向FairPlay伺服器要求「持續租用」授權(請參閱 「FairPlay持續租賃政策」)。
- 儲存
persistentContentKey. - 離線播放FairPlay內容。
FairPlay授權輪換 section_D32AA08C61474B4F876AC2A5F18CB879
授權輪換是一種防止長時間播放的內容受到授權攻擊的方案。
在M3U8資訊清單中,每個金鑰標籤會套用到下列TS區段,直到下一個金鑰標籤或檔案結尾為止。
若要新增許可證輪換,請執行下列動作:
-
在授權輪換期間插入新的FairPlay金鑰標籤。
可新增任意數量的關鍵標籤。
對於線性內容,請務必在M3U8視窗中保留最新的金鑰標籤。 大約還剩兩個TS區段可供播放時(大約20秒),iOS會要求下一個M3U8。 如果新的M3U8包含新的關鍵標籤,所有關鍵請求都將立即發生。 將不會再次請求先前的現有金鑰。 iOS會等待所有主要要求完成,再開始播放。
對於具有授權輪換的VOD內容,所有關鍵請求都將在播放開始時發生。
以下是包含金鑰輪換的範例M3U8:
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,