1.什么是DRM?
? ? ? Digital Rights Management,數字版權管理,可以加強保護一些數字的音視頻節目內容,文件,電子書等等的版權。在流媒體的DRM應用可以理解為它有兩個方面的作用,一是權限控制,比如控制播放時間,控制播放次數等等,二是數據加密,對視頻數據進行加密。
? ? ? 數字水印技術在數字內容中嵌入隱藏標記,這種標記通常是不可見的,只有通過專用檢測工具才能提取。數字水印在基本不損害產品質量的情況下,把著作權的相關信息,隱藏在圖片音樂或電影中,而產生的變化是人的視覺或體內感覺發現不了的。但是,目前的數字水印技術在應用方面還不成熟,容易被破壞或破解,而且該技術只能用于發現盜版后的取證或追蹤,不能做到事前預防。
? ? ? ?數字加密和防拷貝為核心的DRM技術,是把數字內容進行加密,只有授權用戶才能解密,且密鑰是與用戶的硬件信息綁定的。加密技術加上硬件綁定技術,防止了非法拷貝,還可以對用戶的播放次數,播放時間進行控制。
? ? ? ?本文將對后者的DRM技術在流媒體應用的的其中一種方案做簡要介紹。
2.基本原理:
? ? ? ?首先在建立一個證書授權服務中心(CA),然后將音視頻等文件進行編碼加密處理,并且會將KeyID和證書授權服務中心的Url信息放在加密文件的頭部;當用戶使用這些加密文件時,客戶端會根據其頭文件的信息自動鏈接到證書授權中心獲取相應的證書;只有通過授權中心的驗證并獲得授權,授權中心會發送相關的密鑰解密,解密后才能使用該音視頻文件,從而保護了這些數字多媒體產品的版權和使用權限。
3.DRM結構
模塊功能:
系統主要包含以下四個模塊:
a.流媒體加密模塊:
? ? ? 產生內容密鑰,負責對流媒體進行加密;用業務密鑰對內容密鑰加密,并將業務密鑰發送到密鑰管理系統。
b.密鑰管理模塊:
? ? ? ? 從加密模塊接收并管理業務密鑰;為授權管理系統提供業務密鑰查詢;任何對業務密鑰的操作都要通過密鑰管理系統的接口進行。密鑰管理不與終端用戶交互。
c.授權管理模塊:
? ? ? ?接受客戶端DRM代理的請求,確認用戶為合法用戶后,從密鑰管理系統獲得業務密鑰,打包生成許可證,對許可證加密后發送到DRM代理端。
d.DRM代理模塊:
?? ? ? 產生許可密鑰,工作在客戶端,請求授權管理模塊時發送許可公鑰,確認用戶的合法性后,獲得許可證,并用許可私鑰解密,得到業務密鑰,業務密鑰對流媒體數據進行解密,送入播放端播放。
4.工作原理:
該機制使用了三種密鑰:內容密鑰,業務密鑰,許可密鑰。
a.工作流程:
1.發生在服務器端:
1.內容密鑰生成器生成內容密鑰(CK一般是對稱密鑰),業務密鑰生成器生成業務密鑰公鑰和私鑰(SK),并有一個KeyId與之對應存到密鑰管理數據庫。
2.用內容密鑰加密視頻數據,然后業務密鑰的公鑰加密內容密鑰得到CKCM。
3.將CDCK、KeyId、授權管理服務器Url、版本號等相關信息打包到加密的視頻數據頭部。
2.發生在客戶端:
4.客戶端請求播放視頻,得到頭部的CDCK、KeyId、授權管理服務器Url、版本號等相關信息和加密的視頻數據。
5.客戶端本地會有一個DRM的代理模塊(或插件),代理模塊會檢查本地的DRM許可證庫有沒有播放的許可證。如果有,并且許可證合法有效就播放視頻。如果沒有,就請求授權管理服務器Url獲取許可證。
6.請求許可證之前,DRM代理模塊(或插件)會生成許可公鑰和許可私鑰。
7.請求許可證時,會將KeyId、許可公鑰、以及一些其他信息(可能是用戶名密碼,用戶ID,可能是購買的碼串,可能是一些其他可以驗證播放權限的信息),post到授權管理服務器。
3.發生在服務器端:
8.授權管理服務器收到KeyId、許可公鑰以及相關信息,先檢查是否具有相關權限,然后查詢權限信息(比如播放時間或播放次數等等)。
9.根據KeyId從密鑰管理數據庫查詢SK,將SK和相關權限信息打包成許可證,然后用許可公鑰加密許可證,返回給客戶端。
4.發生在客戶端:
10.客戶端收到許可證,用本地的許可私鑰解密,得到SK和權限等相關信息,查看是否具有播放權限,如果沒有,彈出啟示,交銀子或者充會員等等。如果具有權限,設置權限信息,比如播放時間為30days,播放次數為20次等等。
11.得到業務密鑰(SK),用SK解密CDCK,得到內容密鑰(CK),用CK解密視頻數據,將數據送到播放模塊播放。
b.加密流程:
1.內容密鑰生成器生成內容密鑰(CK),將CK送入偽隨機序列生成器,它將作為生成偽隨機序列的根據。用得到的偽隨機序列對選中的TS數據包進行加擾;(數據內容一般采用對稱加密)
2.生成的內容密鑰用業務密鑰(SK)加密后,送入密鑰管理系統中的密鑰管理表中保存。授權系統訪問密鑰管理表得到SK,將SK和用戶的觀看權限等信息打包到許可證中;(內容密鑰加密一般采用非對稱加密)
3.本地DRM代理模塊會生成一對密鑰(許可公鑰和許可私鑰),然后去請求授權系統把KeyId和許可公鑰傳到服務器,服務器端根據KeyId取出業務密鑰,生成許可證,用許可公鑰對許可證進行加密,傳到客戶端。(這里采用的非對稱加密)。
c.解密流程
1.用許可密鑰解密許可證,得到業務密鑰;
2.用業務密鑰解密內容密鑰;用內容密鑰生成偽隨機序列,對TS數據流解擾。
? ? 非法用戶即使獲得了TS數據流,但是沒有DRM代理生成的許可密鑰,就無法解密許可證,所以仍然無法正常觀看節目。
5、密鑰關系
3種密鑰的關系如圖。
內容密鑰用于對TS流加密;業務密鑰用于對內容密鑰加密,存放在密鑰管理數據庫中;許可密鑰用于對由業務密鑰和用戶權限組成的許可證進行加密。
1、內容密鑰(CK)由內容密鑰發生器生成,是一個隨機性數列。它是周期性變化的。內容密鑰的變化周期即為生命周期。
2、業務密鑰(SK)收集當前的節目ID,時間等信息經過hash變換,生成一個定長的數列,用這個數列作為業務密鑰。業務密鑰的生命周期是用戶對流媒體節目的使用期限,一旦用戶對節目的使用期限過期,業務密鑰也隨之過期。
3、許可密鑰(RK)由DRM代理生成并負責分配,分為許可公鑰和許可私鑰兩部分。許可公鑰用于加密業務密鑰,許可私鑰用于解密業務密鑰。與前兩種密鑰相比,生命周期較長。
6.應用范圍:
? ? 版權保護在遠程教育、視頻點播作用很明顯,在遠程教育中,主要采取在線播放方式,許可證信息限制了用戶的播放時間,過期則許可證無效;在視頻點播中,限制了用戶的播放次數,即使用戶將流媒體下載到了本機中,也必須擁有新的許可證。