1.什么是DRM?
? ? ? Digital Rights Management,數(shù)字版權(quán)管理,可以加強(qiáng)保護(hù)一些數(shù)字的音視頻節(jié)目內(nèi)容,文件,電子書等等的版權(quán)。在流媒體的DRM應(yīng)用可以理解為它有兩個(gè)方面的作用,一是權(quán)限控制,比如控制播放時(shí)間,控制播放次數(shù)等等,二是數(shù)據(jù)加密,對(duì)視頻數(shù)據(jù)進(jìn)行加密。
? ? ? 數(shù)字水印技術(shù)在數(shù)字內(nèi)容中嵌入隱藏標(biāo)記,這種標(biāo)記通常是不可見的,只有通過專用檢測工具才能提取。數(shù)字水印在基本不損害產(chǎn)品質(zhì)量的情況下,把著作權(quán)的相關(guān)信息,隱藏在圖片音樂或電影中,而產(chǎn)生的變化是人的視覺或體內(nèi)感覺發(fā)現(xiàn)不了的。但是,目前的數(shù)字水印技術(shù)在應(yīng)用方面還不成熟,容易被破壞或破解,而且該技術(shù)只能用于發(fā)現(xiàn)盜版后的取證或追蹤,不能做到事前預(yù)防。
? ? ? ?數(shù)字加密和防拷貝為核心的DRM技術(shù),是把數(shù)字內(nèi)容進(jìn)行加密,只有授權(quán)用戶才能解密,且密鑰是與用戶的硬件信息綁定的。加密技術(shù)加上硬件綁定技術(shù),防止了非法拷貝,還可以對(duì)用戶的播放次數(shù),播放時(shí)間進(jìn)行控制。
? ? ? ?本文將對(duì)后者的DRM技術(shù)在流媒體應(yīng)用的的其中一種方案做簡要介紹。
2.基本原理:
? ? ? ?首先在建立一個(gè)證書授權(quán)服務(wù)中心(CA),然后將音視頻等文件進(jìn)行編碼加密處理,并且會(huì)將KeyID和證書授權(quán)服務(wù)中心的Url信息放在加密文件的頭部;當(dāng)用戶使用這些加密文件時(shí),客戶端會(huì)根據(jù)其頭文件的信息自動(dòng)鏈接到證書授權(quán)中心獲取相應(yīng)的證書;只有通過授權(quán)中心的驗(yàn)證并獲得授權(quán),授權(quán)中心會(huì)發(fā)送相關(guān)的密鑰解密,解密后才能使用該音視頻文件,從而保護(hù)了這些數(shù)字多媒體產(chǎn)品的版權(quán)和使用權(quán)限。
3.DRM結(jié)構(gòu)

模塊功能:
系統(tǒng)主要包含以下四個(gè)模塊:
a.流媒體加密模塊:
? ? ? 產(chǎn)生內(nèi)容密鑰,負(fù)責(zé)對(duì)流媒體進(jìn)行加密;用業(yè)務(wù)密鑰對(duì)內(nèi)容密鑰加密,并將業(yè)務(wù)密鑰發(fā)送到密鑰管理系統(tǒng)。
b.密鑰管理模塊:
? ? ? ? 從加密模塊接收并管理業(yè)務(wù)密鑰;為授權(quán)管理系統(tǒng)提供業(yè)務(wù)密鑰查詢;任何對(duì)業(yè)務(wù)密鑰的操作都要通過密鑰管理系統(tǒng)的接口進(jìn)行。密鑰管理不與終端用戶交互。
c.授權(quán)管理模塊:
? ? ? ?接受客戶端DRM代理的請(qǐng)求,確認(rèn)用戶為合法用戶后,從密鑰管理系統(tǒng)獲得業(yè)務(wù)密鑰,打包生成許可證,對(duì)許可證加密后發(fā)送到DRM代理端。
d.DRM代理模塊:
?? ? ? 產(chǎn)生許可密鑰,工作在客戶端,請(qǐng)求授權(quán)管理模塊時(shí)發(fā)送許可公鑰,確認(rèn)用戶的合法性后,獲得許可證,并用許可私鑰解密,得到業(yè)務(wù)密鑰,業(yè)務(wù)密鑰對(duì)流媒體數(shù)據(jù)進(jìn)行解密,送入播放端播放。
4.工作原理:

該機(jī)制使用了三種密鑰:內(nèi)容密鑰,業(yè)務(wù)密鑰,許可密鑰。
a.工作流程:
1.發(fā)生在服務(wù)器端:
1.內(nèi)容密鑰生成器生成內(nèi)容密鑰(CK一般是對(duì)稱密鑰),業(yè)務(wù)密鑰生成器生成業(yè)務(wù)密鑰公鑰和私鑰(SK),并有一個(gè)KeyId與之對(duì)應(yīng)存到密鑰管理數(shù)據(jù)庫。
2.用內(nèi)容密鑰加密視頻數(shù)據(jù),然后業(yè)務(wù)密鑰的公鑰加密內(nèi)容密鑰得到CKCM。
3.將CDCK、KeyId、授權(quán)管理服務(wù)器Url、版本號(hào)等相關(guān)信息打包到加密的視頻數(shù)據(jù)頭部。
2.發(fā)生在客戶端:
4.客戶端請(qǐng)求播放視頻,得到頭部的CDCK、KeyId、授權(quán)管理服務(wù)器Url、版本號(hào)等相關(guān)信息和加密的視頻數(shù)據(jù)。
5.客戶端本地會(huì)有一個(gè)DRM的代理模塊(或插件),代理模塊會(huì)檢查本地的DRM許可證庫有沒有播放的許可證。如果有,并且許可證合法有效就播放視頻。如果沒有,就請(qǐng)求授權(quán)管理服務(wù)器Url獲取許可證。
6.請(qǐng)求許可證之前,DRM代理模塊(或插件)會(huì)生成許可公鑰和許可私鑰。
7.請(qǐng)求許可證時(shí),會(huì)將KeyId、許可公鑰、以及一些其他信息(可能是用戶名密碼,用戶ID,可能是購買的碼串,可能是一些其他可以驗(yàn)證播放權(quán)限的信息),post到授權(quán)管理服務(wù)器。
3.發(fā)生在服務(wù)器端:
8.授權(quán)管理服務(wù)器收到KeyId、許可公鑰以及相關(guān)信息,先檢查是否具有相關(guān)權(quán)限,然后查詢權(quán)限信息(比如播放時(shí)間或播放次數(shù)等等)。
9.根據(jù)KeyId從密鑰管理數(shù)據(jù)庫查詢SK,將SK和相關(guān)權(quán)限信息打包成許可證,然后用許可公鑰加密許可證,返回給客戶端。
4.發(fā)生在客戶端:
10.客戶端收到許可證,用本地的許可私鑰解密,得到SK和權(quán)限等相關(guān)信息,查看是否具有播放權(quán)限,如果沒有,彈出啟示,交銀子或者充會(huì)員等等。如果具有權(quán)限,設(shè)置權(quán)限信息,比如播放時(shí)間為30days,播放次數(shù)為20次等等。
11.得到業(yè)務(wù)密鑰(SK),用SK解密CDCK,得到內(nèi)容密鑰(CK),用CK解密視頻數(shù)據(jù),將數(shù)據(jù)送到播放模塊播放。
b.加密流程:
1.內(nèi)容密鑰生成器生成內(nèi)容密鑰(CK),將CK送入偽隨機(jī)序列生成器,它將作為生成偽隨機(jī)序列的根據(jù)。用得到的偽隨機(jī)序列對(duì)選中的TS數(shù)據(jù)包進(jìn)行加擾;(數(shù)據(jù)內(nèi)容一般采用對(duì)稱加密)
2.生成的內(nèi)容密鑰用業(yè)務(wù)密鑰(SK)加密后,送入密鑰管理系統(tǒng)中的密鑰管理表中保存。授權(quán)系統(tǒng)訪問密鑰管理表得到SK,將SK和用戶的觀看權(quán)限等信息打包到許可證中;(內(nèi)容密鑰加密一般采用非對(duì)稱加密)
3.本地DRM代理模塊會(huì)生成一對(duì)密鑰(許可公鑰和許可私鑰),然后去請(qǐng)求授權(quán)系統(tǒng)把KeyId和許可公鑰傳到服務(wù)器,服務(wù)器端根據(jù)KeyId取出業(yè)務(wù)密鑰,生成許可證,用許可公鑰對(duì)許可證進(jìn)行加密,傳到客戶端。(這里采用的非對(duì)稱加密)。
c.解密流程
1.用許可密鑰解密許可證,得到業(yè)務(wù)密鑰;
2.用業(yè)務(wù)密鑰解密內(nèi)容密鑰;用內(nèi)容密鑰生成偽隨機(jī)序列,對(duì)TS數(shù)據(jù)流解擾。
? ? 非法用戶即使獲得了TS數(shù)據(jù)流,但是沒有DRM代理生成的許可密鑰,就無法解密許可證,所以仍然無法正常觀看節(jié)目。
5、密鑰關(guān)系
3種密鑰的關(guān)系如圖。
內(nèi)容密鑰用于對(duì)TS流加密;業(yè)務(wù)密鑰用于對(duì)內(nèi)容密鑰加密,存放在密鑰管理數(shù)據(jù)庫中;許可密鑰用于對(duì)由業(yè)務(wù)密鑰和用戶權(quán)限組成的許可證進(jìn)行加密。

1、內(nèi)容密鑰(CK)由內(nèi)容密鑰發(fā)生器生成,是一個(gè)隨機(jī)性數(shù)列。它是周期性變化的。內(nèi)容密鑰的變化周期即為生命周期。
2、業(yè)務(wù)密鑰(SK)收集當(dāng)前的節(jié)目ID,時(shí)間等信息經(jīng)過hash變換,生成一個(gè)定長的數(shù)列,用這個(gè)數(shù)列作為業(yè)務(wù)密鑰。業(yè)務(wù)密鑰的生命周期是用戶對(duì)流媒體節(jié)目的使用期限,一旦用戶對(duì)節(jié)目的使用期限過期,業(yè)務(wù)密鑰也隨之過期。
3、許可密鑰(RK)由DRM代理生成并負(fù)責(zé)分配,分為許可公鑰和許可私鑰兩部分。許可公鑰用于加密業(yè)務(wù)密鑰,許可私鑰用于解密業(yè)務(wù)密鑰。與前兩種密鑰相比,生命周期較長。
6.應(yīng)用范圍:
? ? 版權(quán)保護(hù)在遠(yuǎn)程教育、視頻點(diǎn)播作用很明顯,在遠(yuǎn)程教育中,主要采取在線播放方式,許可證信息限制了用戶的播放時(shí)間,過期則許可證無效;在視頻點(diǎn)播中,限制了用戶的播放次數(shù),即使用戶將流媒體下載到了本機(jī)中,也必須擁有新的許可證。