專利名稱:用于受保護內(nèi)容的可縮放分發(fā)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于受保護內(nèi)容的可縮放分發(fā)的方法和系統(tǒng)。
背景技術(shù):
數(shù)字內(nèi)容分發(fā)非常受歡迎,特別是在因特網(wǎng)和其他網(wǎng)絡(luò)上內(nèi)容的流傳輸中。大多數(shù)內(nèi)容生產(chǎn)者期望某種版權(quán)管理,因此內(nèi)容分發(fā)系統(tǒng)通常使用數(shù)字版權(quán)管理(DRM)技術(shù)來控制內(nèi)容的使用。例如,可能要求客戶端從服務(wù)器獲得許可用以成功地訪問加密內(nèi)容流,其中許可包含內(nèi)容密鑰。遺憾地是,許可服務(wù)器的使用并不總是理想的。為了向客戶端安全地提供許可和內(nèi)容密鑰,許可服務(wù)器不僅必須授權(quán)客戶端使用內(nèi)容,還必需以不危害內(nèi)容發(fā)發(fā)系統(tǒng)的DRM的方式進行配置。支持這樣的許可服務(wù)器或從外部提供者獲得許可服務(wù)器的計算資源可能對于內(nèi)容提供者是顯著的物流問題。
發(fā)明內(nèi)容
一種計算機化設(shè)備可以實現(xiàn)內(nèi)容播放器以使用網(wǎng)絡(luò)接口來訪問內(nèi)容流,該內(nèi)容流包括加密內(nèi)容和根據(jù)可由內(nèi)容播放器訪問的全局密鑰加密的內(nèi)容密鑰。內(nèi)容播放器可以確定是否存在滿足授權(quán)條件的令牌(token),并且僅在存在滿足授權(quán)條件的令牌時使用全局密鑰來解密內(nèi)容密鑰??梢栽诳蛻舳颂幉⑶抑辽俨糠只趦?nèi)容流中所包括的數(shù)據(jù)來評估授權(quán)條件。例如,授權(quán)條件可以在許可中指定或在內(nèi)容流中指定作為令牌參數(shù)。授權(quán)條件的例子包括存在具有與在內(nèi)容流中所包括的數(shù)據(jù)中的相應(yīng)內(nèi)容ID相匹配的內(nèi)容ID的令牌;存在根據(jù)在內(nèi)容流中所包括的數(shù)據(jù)中標識的數(shù)字簽名而簽名的令牌;存在與執(zhí)行授權(quán)過程的機器的設(shè)備ID匹配的令牌;和/或存在未過期的令牌,其中基于令牌中的存活時間指示符來評估過期。不限于本主題而是為了提供簡要介紹而討論所例示的實施方式。附加的實施方式包括體現(xiàn)內(nèi)容播放器的計算機可讀介質(zhì),以及用于基于對令牌是否滿足一個或多個授權(quán)條件的評估來訪問具有嵌入許可的加密內(nèi)容流的計算機實現(xiàn)的方法。附加的實施方式包括用于分發(fā)令牌和許可以供這樣的客戶端使用的服務(wù)器側(cè)設(shè)備、方法和計算機可讀介質(zhì)。以下在具體實施方式
中描述這些和其他實施方式。在閱讀說明書和/或?qū)嵺`根據(jù)這里所教導(dǎo)的一個或多個方面而配置的實施方式之后,可以確定本主題的目標和優(yōu)點。
在說明書的剩余部分中更具體地陳述了完整和能夠?qū)崿F(xiàn)的公開。說明書參考以下附圖。圖I是示出包括實現(xiàn)被配置為處理具有嵌入許可數(shù)據(jù)的內(nèi)容流的內(nèi)容播放器的一個或多個客戶端的內(nèi)容分發(fā)系統(tǒng)的示圖;圖2是示出被縮放以服務(wù)多個客戶端的內(nèi)容分發(fā)系統(tǒng)的例子的示圖;圖3是示出被配置為處理具有嵌入許可數(shù)據(jù)的內(nèi)容流的內(nèi)容播放器的示例性架構(gòu)的示圖;圖4示出了在基于對令牌進行驗證而處理具有嵌入許可數(shù)據(jù)的流方面由內(nèi)容播放器執(zhí)行的示例程序流;圖5是示出用于處理內(nèi)容流的例示性計算機化方法的流程圖;以及圖6是示出由內(nèi)容提供者執(zhí)行的例示性方法的流程圖。
具體實施例方式這里公開的實施方式包括體現(xiàn)用于實現(xiàn)可縮放內(nèi)容分發(fā)系統(tǒng)的代碼的計算機可讀介質(zhì)、計算機系統(tǒng)和方法。例如,如圖I中所示,內(nèi)容分發(fā)系統(tǒng)100包括實現(xiàn)內(nèi)容播放器104的一個或多個客戶端102。每個內(nèi)容播放器104包括全局密鑰106或具有對全局密鑰106的訪問。一個或多個令牌108也可以存在于客戶端102并且由客戶端102使用帶外機 制來獲得(即獨立于內(nèi)容的下載而獲得)。內(nèi)容服務(wù)器110提供內(nèi)容流112,內(nèi)容流112包括具有加密內(nèi)容116的嵌入許可114。加密內(nèi)容116可通過使用許可114中所包括的內(nèi)容密鑰來訪問。內(nèi)容密鑰自身被加密以使用全局密鑰106可訪問。內(nèi)容播放器104被配置為僅在存在滿足一個或多個授權(quán)條件的令牌時使用全局密鑰106來解密內(nèi)容密鑰。如果存在滿足條件的令牌,則可以使用解密的內(nèi)容密鑰來解密內(nèi)容。由于對客戶端是否被允許使用在播放器104處出現(xiàn)的內(nèi)容的確定(以下被稱作“客戶端側(cè)內(nèi)容授權(quán)”),內(nèi)容提供者可以免除部署諸如在內(nèi)容被消費時對客戶端授權(quán)的許可服務(wù)器之類的基礎(chǔ)設(shè)施的麻煩。相反,內(nèi)容提供者僅僅需要提供用于將令牌108中繼到客戶端的某種機制,而內(nèi)容密鑰利用內(nèi)容自身進行安全地解密和分發(fā),無需許可工作流。現(xiàn)在將詳細參考多種示例實施方式和備選示例性實施方式并且詳細參考附圖。通過解釋的方式而不作為限制提供每個例子。對于本領(lǐng)域技術(shù)人員來說應(yīng)當理解可以進行修改和變化。例如,作為一個實施方式的一部分而例不或描述的特征可以在另一實施方式上使用以產(chǎn)生進一步的實施方式。在以下詳細描述中,陳述許多具體細節(jié)以提供對主題的透徹理解。然而,本領(lǐng)域技術(shù)人員將理解,可以沒有這些具體細節(jié)而實踐主題。沒有詳細描述本領(lǐng)域技術(shù)人員將知曉的其他實例、方法和裝置以便不使主題難以理解。如上所述,圖I是示出計算設(shè)備102的例子的示圖。計算設(shè)備102可以備選地被稱作數(shù)據(jù)處理系統(tǒng)、計算機化設(shè)備或簡單地被稱作“計算機”。計算設(shè)備102表示桌面、膝上、平板或任何其他計算系統(tǒng),諸如移動設(shè)備(PDA、智能電話、媒體播放器、游戲系統(tǒng)等)或嵌入式系統(tǒng)(例如車輛、電器、電視或其他設(shè)備中的嵌入式系統(tǒng))。在圖I中所示的例子中,計算設(shè)備102具有包括經(jīng)由內(nèi)部總線122、連接等互連的一個或多個處理器118和計算機可讀介質(zhì)(存儲器120)的數(shù)據(jù)處理硬件元件??偩€122還連接到I/O組件124,諸如通用串行總線(USB) ,VGA,HDMI或其他顯示適配器、串行連接器、和/或到計算系統(tǒng)的其他硬件的其他I/O連接。另外,I/O組件124包括到網(wǎng)絡(luò)連接126的一個或多個網(wǎng)絡(luò)接口。網(wǎng)絡(luò)連接126可以包括有線連接(例如因特網(wǎng)、光纖、有線電視)和/或無線連接(例如IEEE 802. 11,802. 16、藍牙、經(jīng)由GSM、CDMA, UMTS, LTE或其他無線標準的無線電通信等)。
硬件還包括一個或多個顯示器128和輸入設(shè)備130(例如鍵盤、小鍵盤、鼠標、觸摸屏接口等)。應(yīng)當理解,計算設(shè)備102可以包括其他元件,諸如存儲設(shè)備和諸如揚聲器、麥克風等之類的其他I/O組件。計算機可讀介質(zhì)120可以包括RAM、ROM或其他存儲器。在該例子中,計算機可讀介質(zhì)120體現(xiàn)了用于內(nèi)容播放器104的程序邏輯,并且存儲了包括全局密鑰106和令牌108的數(shù)據(jù)元素。在實際中,全局密鑰106可以集成到內(nèi)容播放器104中。例如,定義全局密鑰106的值可以被硬編碼到內(nèi)容播放器104中而不是作為分離的文件被參考。作為另一例子,全局密鑰106可以被定義為對在執(zhí)行期間由內(nèi)容播放器104的程序邏輯可訪問的硬件元件的參考。在一些實現(xiàn)中,在提供或維護內(nèi)容播放器104的一方的控制之下執(zhí)行的獨立化或其他過程期間定義全局密鑰106。例如,內(nèi)容播放器104可以連接到用于獨立化過程的服務(wù)器,在所述獨立化過程期間全局密鑰106被提供給內(nèi)容播放器104。一般而言,內(nèi)容播放器104使得計算設(shè)備102接收包括這里所述的嵌入許可114和加密內(nèi)容116的流112。內(nèi)容播放器104檢查滿足一個或多個授權(quán)條件的恰當?shù)牧钆?08 的存在。如果滿足條件,則內(nèi)容播放器104使得計算設(shè)備102使用全局密鑰106來解密許可114中所包括的內(nèi)容密鑰,并且使用解密的內(nèi)容密鑰來訪問加密內(nèi)容116。內(nèi)容播放器104可以如該例子中所示的那樣以軟件實現(xiàn),或可以使用由數(shù)據(jù)處理元件可訪問或作為數(shù)據(jù)處理元件的部分(例如作為專用集成電路(ASIC)或可編程邏輯設(shè)備(例如PLA、FPGA等))的硬件來實現(xiàn)。內(nèi)容播放器104的使用可以允許用于DRM保護內(nèi)容的分發(fā)的可縮放系統(tǒng)。圖2是用于分發(fā)內(nèi)容的系統(tǒng)101的例子。如這里所示的那樣,多個客戶端(102-1、102-2、102-3、102-4)中的每個實現(xiàn)內(nèi)容播放器104的實例,每個實例具有對相同的全局密鑰106的訪問。內(nèi)容提供者可以使用許可部署服務(wù)器111和多個內(nèi)容服務(wù)器110-1、110_2、110-N。如這里所示,每個內(nèi)容服務(wù)器110提供基于從許可部署服務(wù)器111提供的加密數(shù)據(jù)、內(nèi)容和許可的內(nèi)容流112。內(nèi)容、許可和加密數(shù)據(jù)可以在服務(wù)器110處被組裝成流112,或許可部署服務(wù)器可以生成包括加密內(nèi)容和許可數(shù)據(jù)的分組,并且部署該分組以供服務(wù)器110流傳輸。取決于具體的許可參數(shù),可以提供相同的內(nèi)容流112 ;或者如112’處所示,內(nèi)容流可以包括對于不同的客戶端102來說不同的嵌入許可。例如,內(nèi)容流可以適配于特定的客戶端設(shè)備或特定的設(shè)備類型或分類。另外,應(yīng)當理解在實際中客戶端的數(shù)目可以是數(shù)百或數(shù)千的數(shù)目。其他內(nèi)容提供者實體可以使用其自身的內(nèi)容服務(wù)器,或多個不同的內(nèi)容提供者實體可以使用相同的內(nèi)容服務(wù)器。例如,在一些實現(xiàn)中,內(nèi)容提供者可以維護許可部署服務(wù)器111,然后從服務(wù)器111向用于向客戶端進行流傳輸?shù)膬?nèi)容遞送網(wǎng)絡(luò)(CDN)部署受保護的內(nèi)容。每個客戶端102使用受限于嵌入在內(nèi)容流112(112’)中的許可114中所指定的條件的相同全局密鑰106來訪問內(nèi)容密鑰。在實際中,可以使用不同的全局密鑰106,諸如對于不同的設(shè)備、不同分類的設(shè)備、不同版本的內(nèi)容播放器104或?qū)τ谄渌康牡牟煌置荑€。因為在客戶端102處理內(nèi)容授權(quán),所以內(nèi)容提供者不需要作為流傳輸過程的一部分實現(xiàn)服務(wù)器側(cè)許可和客戶端驗證工作流。相反,提供者110僅提供具有包括對應(yīng)內(nèi)容密鑰的嵌入許可114、以及指定授權(quán)條件的數(shù)據(jù)(在許可中或分離地體現(xiàn)在內(nèi)容數(shù)據(jù)中)的加密內(nèi)容116。這允許非??煽s放的方案,這是因為可以部署內(nèi)容和嵌入許可/授權(quán)數(shù)據(jù),而無需在所部署的內(nèi)容/許可數(shù)據(jù)由客戶端使用時支持服務(wù)器側(cè)內(nèi)容授權(quán)活動??梢栽谠S可獲取/使用過程之外驗證客戶端,例如在分發(fā)在客戶端側(cè)內(nèi)容授權(quán)過程期間所使用的令牌中可以使用相對輕量的基礎(chǔ)設(shè)施。在一些實現(xiàn)中,可以使用從San Jose,California的AdobeSystem Incorporated可獲得的Flash 媒體令牌驗證方案。圖3是示出內(nèi)容播放器104的示例性架構(gòu)300的示圖??梢允褂萌魏魏线m的技術(shù)來實現(xiàn)內(nèi)容播放器104。例如,在一些實現(xiàn)中,內(nèi)容播放器104被實現(xiàn)為Adobe Flash .或AIR 應(yīng)用。然而,內(nèi)容播放器104可以被實現(xiàn)以供在另一運行時環(huán)境中使用或在操作系統(tǒng)內(nèi)執(zhí)行。作為另一例子,內(nèi)容播放器104可以被實現(xiàn)為單機應(yīng)用的部分,諸如web瀏覽器中可以訪問和呈現(xiàn)流傳輸?shù)膬?nèi)容的應(yīng)用。UI和文件控制模塊302表示用于提供用戶接口和提供內(nèi)容輸出的程序代碼或硬 件邏輯。例如,模塊302可以提供窗口或其他接口并且使用一個或多個編解碼器在恰當時呈現(xiàn)音頻、視頻和/或音頻視頻內(nèi)容。模塊302可以進一步打開恰當?shù)木W(wǎng)絡(luò)連接,并且使用諸如動態(tài)HTTP流傳輸連接之類的合適的流傳輸技術(shù)來獲取內(nèi)容流112。作為具體的例子,可以使用由San Jose,California的Adobe System Incorporated提供的實施消息傳輸協(xié)議(RTMP)。模塊302還可以向負責分析指示授權(quán)條件的數(shù)據(jù)和解密內(nèi)容的組件傳遞許可114和內(nèi)容116。令牌獲取模塊304表示內(nèi)容播放器104通過其獲得令牌108以供在訪問受保護內(nèi)容中使用的代碼或邏輯??蛻舳?02可以經(jīng)由帶外機制以任何合適的方式實際地獲取令牌108?!皫鈾C制”意指與訪問流112分離的數(shù)據(jù)處理工作流或會話。當然,可以使用用于獲得內(nèi)容的相同網(wǎng)絡(luò)硬件來獲得令牌。與發(fā)布許可相比,令牌的生成輕量得多(即使用較不復(fù)雜的計算基礎(chǔ)設(shè)施)。如前所述,它將通常不需要任何特殊硬件或服務(wù)器裝置,并且可以容易地并入到諸如用戶驗證服務(wù)器的基礎(chǔ)設(shè)施之類的現(xiàn)有基礎(chǔ)設(shè)施中。換言之,在一些實現(xiàn)中,內(nèi)容播放器104被配置為訪問流112而無需與服務(wù)器協(xié)商內(nèi)容的權(quán)限。內(nèi)容播放器104可以進行任何所需的工作流以獲得對服務(wù)器的權(quán)限(例如,例程握手、一般服務(wù)器登錄(如果需要)),但流被簡單地提供給內(nèi)容播放器104而無需針對流傳輸?shù)膬?nèi)容的權(quán)限進行進一步的授權(quán)檢查。相反,內(nèi)容分發(fā)系統(tǒng)取決于經(jīng)由令牌108進行的客戶端側(cè)內(nèi)容授權(quán),這有助于內(nèi)容服務(wù)器104使用許可和全局密鑰106??梢栽谌魏螘r間獲得令牌108,包括在訪問流112之前或緊接在訪問流112之前。用于獲得令牌的工作流可以由播放器104中所包括的客戶端102的令牌獲取組件來處理、或被實現(xiàn)為分離的組件(例如web瀏覽器或消息傳輸程序)。例如,客戶端可以訪問與內(nèi)容提供者110相關(guān)聯(lián)的web站點或服務(wù),并且在登入、付費等之后獲得一個或多個令牌108。然后web站點或服務(wù)可以將客戶端重新定向至特定的URL/URI以訪問對應(yīng)的流112。作為其他例子,令牌108可以與播放器104 —同提供、可以使用硬件來分發(fā)或者可以由客戶端設(shè)備102在網(wǎng)絡(luò)126上以某種其他方式接收。注意,令牌108是數(shù)據(jù)元素而不是許可,并且以其自身不能用于解密諸如加密內(nèi)容密鑰或加密內(nèi)容自身之類的受保護的內(nèi)容。如這里所示出的,內(nèi)容播放器104還包括令牌驗證器模塊306和解密模塊308。這些模塊在虛線框中示出,以指示至少對應(yīng)于這些模塊的程序代碼/硬件邏輯是以安全的方式實現(xiàn)的。例如,可以使用任何合適的技術(shù)來加固內(nèi)容播放器104以避免惡意方獲得對全局密鑰106的訪問或更改內(nèi)容播放器104的邏輯以獲得對受保護的內(nèi)容的訪問,即使用于訪問受保護內(nèi)容的條件尚未滿足。一般而言,驗證器模塊306確定是否存在滿足授權(quán)條件的令牌,同時解密模塊308處理解密內(nèi)容密鑰的細節(jié)然后處理加密的內(nèi)容。僅在令牌位于諸如由播放器104定義的存儲位置之類的預(yù)期位置時令牌可以“存在”。例如,令牌可以存儲在安全的存儲庫中或可以以其他方式受保護以避免篡改。下面將與圖4 一同討論操作圖3的令牌驗證器模塊306和解密模塊308的例子,圖4示出了由內(nèi)容播放器104執(zhí)行的示例程序流400。最初,UI模塊302從合適的資源(例如,經(jīng)由與存放來自圖I的內(nèi)容提供者110的內(nèi)容的服務(wù)器的因特網(wǎng)連接)獲得內(nèi)容流112,并且使得流可用于內(nèi)容播放器104的其他組件,包括令牌驗證器模塊306。令牌驗證器模塊306包括用于標識指定必須滿足以使內(nèi)容播放器104執(zhí)行解密過程的授權(quán)條件的數(shù)據(jù)的代碼或硬件邏輯。 在該例子中,條件被指示為令牌參數(shù)114A,并且在流程400中,在401處示出了標識授權(quán)條件的步驟。在該例子中,參數(shù)114A指引令牌驗證器306定位和驗證令牌108,如402處所示。雖然令牌參數(shù)114A在該例子中被示為嵌入許可的部分,但它們可以位于內(nèi)容流中的其他地方。在該例子中,令牌108包括存活時間指示符108A、內(nèi)容ID 108B和設(shè)備ID 108C。該例子的第一授權(quán)條件是令牌108是否被有效地簽名,因此令牌驗證器模塊306首先進行檢查以確定令牌108是否有效。例如,參數(shù)114A可以標識令牌108必須匹配的數(shù)字簽名,如果令牌108未被恰當?shù)睾灻?,則令牌108將被視為無效。該例子的第二授權(quán)條件是令牌是否過期。例如,存活時間指示符108A可以簡單地標識過期日期/時間,因此通過評估該指示符來檢查該授權(quán)條件而無需參考嵌入的許可中所包括的參數(shù)。備選地,令牌驗證器模塊306可以檢查以確定作為許可中的參數(shù)而指定的時間/日期是否已經(jīng)過去,或存活時間指示符是否在嵌入許可中所指定的閾值時間段內(nèi)。該例子中的第三授權(quán)條件是令牌是否用于流112中的特定內(nèi)容。例如,可以檢查內(nèi)容ID 108B以確定它是否與許可參數(shù)114A中所包括的對應(yīng)內(nèi)容ID匹配。該例子還說明了第四授權(quán)條件,該第四授權(quán)條件基于確定令牌108中所包括的設(shè)備ID 108C是否與客戶端102的設(shè)備ID匹配。在一些實現(xiàn)中,參數(shù)114A可以包括指示客戶端102必須具有與客戶端102的設(shè)備ID匹配的令牌108的條件;然而,設(shè)備ID的驗證可以默認地發(fā)生,而無需參數(shù)114A指定執(zhí)行設(shè)備ID匹配過程。檢查設(shè)備ID或其他合適的標識符可以避免在不恰當?shù)目蛻舳颂幓趶那‘數(shù)目蛻舳藦?fù)制或竊取的令牌108而執(zhí)行授權(quán)。為了支持設(shè)備ID的驗證,內(nèi)容提供者可以實現(xiàn)響應(yīng)于來自客戶端102的請求而提供令牌108的令牌分發(fā)系統(tǒng)??梢酝ㄟ^這樣的方式來生成令牌,使得該令牌基于請求中所包括的設(shè)備ID和/或基于請求中所包括的并且由內(nèi)容提供者用于生成唯一的設(shè)備ID的其他信息(例如硬件細節(jié))而綁定到客戶端102。不是所有內(nèi)容提供者都可選擇將令牌綁定到特定的設(shè)備,因此將理解,出于示例而非限制的目的而示出設(shè)備ID 108Co除了設(shè)備ID綁定之外或替代設(shè)備ID綁定,也可以使用到特定內(nèi)容播放器104實例或版本的綁定。如果令牌108有效,則如403處所示,令牌驗證器模塊306向解密模塊308提供命令,如404處所示,解密模塊308獲得嵌入許可114中所包括的內(nèi)容密鑰114B。如上所述,內(nèi)容密鑰是根據(jù)全局密鑰106加密的。由此,如405處所示,解密模塊308使用全局密鑰106來解密內(nèi)容密鑰114B。然后,如406和407處所示,加密內(nèi)容116可以通過使用內(nèi)容密鑰114B而被訪問、解密,并且作為解密內(nèi)容流輸出。例如,內(nèi)容流可以被提供到Π和文件控制模塊302以輸出音頻、視頻或音頻視頻內(nèi)容。在該例子中,UI和文件控制模塊302是關(guān)于回放音頻、視頻或音頻視頻內(nèi)容而被討論的??梢栽趯崿F(xiàn)內(nèi)容播放器104的設(shè)備處直接回放內(nèi)容(例如使用圖I的顯示器128和音頻輸出組件)或內(nèi)容可以由模塊302中繼到另一設(shè)備以供實際輸出。另外,這里所討論的原理可以應(yīng)用于對其他作為包括許可的流而分發(fā)的受保護的內(nèi)容的訪問。例如,可以以流傳輸格式與嵌入許可設(shè)置條件一同提供游戲或其他應(yīng)用的內(nèi)容以供在播放器104中使用。
圖5是示出由諸如實現(xiàn)內(nèi)容播放器104的客戶端102之類的客戶端執(zhí)行的示例性處理方法500中步驟的流程圖。塊502表示從一個內(nèi)容提供者或多個內(nèi)容提供者獲得一個或多個令牌。如上所述,可以使用帶外機制(即通過與接收內(nèi)容的事務(wù)或工作流分離的事務(wù)或工作流)來獲得令牌。例如,可以使用web瀏覽器或其他應(yīng)用來從許可服務(wù)器或代表內(nèi)容提供者操作的其他安全設(shè)備獲得一個或多個令牌。例如,終端用戶可以訪問web頁面或其他資源以在合適的驗證過程、付費等之后下載一個或多個令牌,其中該web頁面或其他資源將終端用戶的設(shè)備重新定向到用于執(zhí)行接收內(nèi)容的事務(wù)/工作流的恰當?shù)馁Y源(例如內(nèi)容服務(wù)器)。附加地或備選地,可以完全與訪問內(nèi)容獨立而獲得一個或多個令牌。例如,可以在內(nèi)容播放器104被下載或以其他方式獲得時獲得令牌。因為塊502可以與訪問受保護內(nèi)容的流分離地執(zhí)行,所以它由虛線連接到塊504,據(jù)此,應(yīng)當清楚,在實際中方法500可以在假定已經(jīng)獲得令牌的情況下在塊504處開始。塊504表示訪問具有嵌入許可的加密內(nèi)容的流。例如,播放器104可以向恰當?shù)木W(wǎng)絡(luò)資源(例如流傳輸服務(wù)器110)提交請求并且使用上述RTMP協(xié)議或其他流傳輸協(xié)議來獲取流。在塊506處,該方法標識必須滿足的授權(quán)條件。例如,這可能要求標識嵌入許可中或內(nèi)容流中其他地方包括的一個或多個參數(shù)。許可例如可以嵌入在流的特定部分(例如整個流的首標(header))中或可以散布在流的多個部分中??梢酝ㄟ^監(jiān)視流并且一旦首標或其他部分已到達即提取許可數(shù)據(jù)來獲得嵌入許可。作為具體例子,流最初可以包括基本首標和握手數(shù)據(jù),隨后是一旦連接建立后的一個或多個對象。對象可以包含嵌入許可,然后可以跟隨有包括加密內(nèi)容數(shù)據(jù)的一個或多個對象。可以基于預(yù)期的文件結(jié)構(gòu)或句法來標識實際的許可參數(shù)。塊508表示檢查客戶端是否具有與嵌入許可中所指定的參數(shù)匹配和/或以其他方式滿足用于訪問內(nèi)容的授權(quán)條件的令牌。如圖5中所示,如果不存在匹配的令牌,則該方法完成。作為例子,匹配處理可以包括確定本地存儲在內(nèi)容播放器104中的令牌是否滿足以下準則中的一些或全部
I.令牌被利用令牌參數(shù)中所指定的數(shù)字簽名來簽名;和/或2.令牌包括與實現(xiàn)內(nèi)容播放器104的計算設(shè)備的設(shè)備ID匹配的設(shè)備ID ;和/或3.令牌包括嵌入許可中所指定的內(nèi)容ID。除了上述準則之外或替代上述準則,塊508可以表示檢查在許可參數(shù)中或內(nèi)容流中的其他地方未指定的一個或多個條件。例如,內(nèi)容播放器104可以被配置為檢查令牌的存活時間指示符以保證令牌沒有過期。即使存在具有正確的簽名并且與其他參數(shù)匹配的令牌,如果該令牌過期則它也將是不匹配的。如果在塊508處定位到匹配的令牌,則執(zhí)行塊510和512。塊510表示使用客戶端104中所包括的全局密鑰來解密嵌入許可中所包括的內(nèi)容密鑰。然后,解密的內(nèi)容密鑰被用于訪問來自內(nèi)容流的加密內(nèi)容。本領(lǐng)域技術(shù)人員應(yīng)當理解解密內(nèi)容的細節(jié)。應(yīng)當理解,可以使用任何合適的密鑰技術(shù),并且當塊508、510和512被執(zhí)行時,應(yīng)當小心避免對未加密內(nèi)容/未加密密鑰的未授權(quán)訪問,并且避免黑客破壞令牌驗證過程。 圖6是示出由內(nèi)容提供者執(zhí)行的例示性方法600中的步驟的流程圖。例如,可以使用諸如圖2中所示的許可部署服務(wù)器111之類的一個或多個計算機化設(shè)備來執(zhí)行該方法。在以下例子中,作為單個實體而討論許可部署服務(wù)器,但應(yīng)當理解,該功能可以分布在多個計算機化設(shè)備上。塊602表示在計算機化設(shè)備中存儲將內(nèi)容項與至少一個授權(quán)條件相關(guān)聯(lián)的數(shù)據(jù)。例如,可以選擇上述授權(quán)條件中的一個或多個,諸如令牌匹配設(shè)備ID、內(nèi)容ID、數(shù)字簽名和/或滿足過期條件(例如當在播放器處被考慮時未過期)的要求。塊604表示向內(nèi)容播放器(例如內(nèi)容播放器104)提供令牌,令牌包括當在客戶端設(shè)備處評估時滿足一個或多個授權(quán)條件的數(shù)據(jù)。例如,令牌可以經(jīng)由網(wǎng)絡(luò)連接被下載到請求的客戶端。作為另一例子,令牌可以被存儲到被使用離線機制中繼到客戶端的硬件設(shè)備或計算機可讀介質(zhì)。該數(shù)據(jù)可以是當被客戶端評估時將滿足授權(quán)條件的數(shù)據(jù)。例如,令牌可以基于來自內(nèi)容播放器的請求中所提供的信息來包括內(nèi)容ID、存活時間指示符和/或設(shè)備ID中的至少一個。另外,令牌可以根據(jù)與內(nèi)容提供者相關(guān)聯(lián)的簽名而被數(shù)字簽名。塊606表示提供(以必要的程度)指定將要被包括在內(nèi)容流中的一個或多個授權(quán)條件,所述內(nèi)容流將還包括內(nèi)容項的加密版本。例如,可以在將要嵌入到內(nèi)容流中的許可中指定所述條件。作為另一例子,可以在要包括在內(nèi)容流中其他地方(諸如內(nèi)容首標對象中)的令牌參數(shù)中指定所述條件。例如,所述條件可以包括標識所要求的數(shù)字簽名、內(nèi)容ID和/或所要求的存活時間指示符的值的數(shù)據(jù)。如前所述,一些授權(quán)條件(例如未過期令牌的存在、具有與執(zhí)行授權(quán)過程的客戶端的設(shè)備ID匹配的設(shè)備ID的令牌的存在)可以直接由內(nèi)容播放器評估。然而,在這些特征不被默認使能的情況下,許可/授權(quán)條件可以包括數(shù)據(jù)以如內(nèi)容提供者所期望的那樣觸發(fā)這些條件的客戶端側(cè)評估。在一些實現(xiàn)中,內(nèi)容提供者使用計算設(shè)備僅向恰當?shù)目蛻舳朔职l(fā)令牌。由此,可以在令牌被提供到客戶端處的內(nèi)容播放器之前,執(zhí)行合適的驗證的過程以保證客戶端和/或內(nèi)容播放器的身份。如果要求付費,則還可以在該驗證過程期間處理付費細節(jié)。定義許可和授權(quán)條件的數(shù)據(jù)可以被提供到分離的計算過程,該分離的計算過程處理到將訪問流的內(nèi)容播放器的內(nèi)容的實際流。通常(雖然并非必要),該分離的過程可以由與分配令牌和指定令牌的授權(quán)參數(shù)的設(shè)備分離的計算機化設(shè)備(例如內(nèi)容服務(wù)器110)提供。許可部署服務(wù)器111可以處理根據(jù)內(nèi)容密鑰加密內(nèi)容項和根據(jù)全局密鑰加密內(nèi)容密鑰的細節(jié),或?qū)τ谶@樣的任務(wù)可以取決于服務(wù)提供者。例如,第三方提供者可以向多個客戶端102分發(fā)內(nèi)容播放器104,并且以安全的方式維護關(guān)于全局密鑰106的數(shù)據(jù)。內(nèi)容提供者可以根據(jù)內(nèi)容密鑰加密內(nèi)容項,并且取決于第三方提供者來以可以由內(nèi)容播放器104的實例訪問的方式加密內(nèi)容密鑰。附加地或備選地,內(nèi)容提供者可以取決于分離的實體以維護內(nèi)容服務(wù)器110和分發(fā)內(nèi)容流。例如,內(nèi)容提供者可以取決該數(shù)據(jù)以生成到內(nèi)容遞送網(wǎng)絡(luò)(CDN)的內(nèi)容流112以供使用合適硬件的廣泛分發(fā)。然而,CDN不需要從事支持特定于內(nèi)容的授權(quán)例程,并且內(nèi)容提供者也不需要作為內(nèi)容分發(fā)流的一部分而支持內(nèi)容授權(quán)。
全局密鑰106可以是跨許多設(shè)備可訪問的,諸如跨特定內(nèi)容播放器104的全部實例。內(nèi)容播放器104可以被足夠地加固以減少全局密鑰106的可訪問性;以減少來自嵌入許可的內(nèi)容密鑰的未加密版本的可訪問性;以及避免黑客繞過令牌驗證邏輯。例如,可以采取措施以避免可能揭露可用于獲得驗證期間使用的標記/變量、全局密鑰106和內(nèi)容密鑰的未保護版本的數(shù)據(jù)的反編譯/調(diào)試操作。然而,即使在攻破的情況下,內(nèi)容分發(fā)系統(tǒng)可以自適應(yīng)。例如,在攻破發(fā)生之后,內(nèi)容提供者可以簡單地改變?yōu)榉职l(fā)使用新的內(nèi)容密鑰(如果該內(nèi)容密鑰已經(jīng)變?yōu)榭色@得)加密的內(nèi)容和/或使用被推送到內(nèi)容播放器104的新的全局密鑰106來加密內(nèi)容密鑰。上面說明了授權(quán)條件的若干例子,但這些例子不旨在限制性的。例如,對于由內(nèi)容播放器104進行的評估可以自然地或通過參考在許可參數(shù)中列舉的或包括在內(nèi)容流中其他地方的授權(quán)條件而指定任何合適的條件。一般考虎就存儲在諸如計算機存儲器之類的計算系統(tǒng)存儲器內(nèi)的數(shù)字比特或二進制數(shù)據(jù)信號上的操作的算法或符號表示而言呈現(xiàn)了詳細描述的一些部分。這些算法描述或表示是數(shù)據(jù)處理領(lǐng)域中普通技術(shù)人員用于向該領(lǐng)域中其他技術(shù)人員傳達他們的成果的實質(zhì)的技術(shù)的例子。算法在這里并且通常被視作產(chǎn)生期望的結(jié)果的操作的自洽序列或類似的處理。在此上下文中,操作或處理涉及物理量的物理操縱。通常但并非必需地,這樣的量可以采取能夠被存儲、轉(zhuǎn)移、組合、比較或以其他方式被操縱的電或磁信號。主要出于公共使用的原因,有時將這樣的信號稱作比特、數(shù)據(jù)、值、元素、符號、字符、術(shù)語、數(shù)字、標號等被證明是便利的。然而,應(yīng)當理解,全部這些和類似的術(shù)語應(yīng)當與恰當?shù)奈锢砹肯嚓P(guān)聯(lián)并且僅僅是便利的標簽。除非具體地相反陳述,如從前述討論中明顯的那樣,應(yīng)當理解在本說明書全文中,利用諸如“處理”、“計算”、“運算”、“確定”等之類的術(shù)語的討論指操縱或變換被表示為計算平臺的存儲器、寄存器或其他信息存儲設(shè)備、傳輸設(shè)備或顯示設(shè)備內(nèi)的物理電或磁量的數(shù)據(jù)的諸如一個或多個計算機和/或類似的電子計算設(shè)備之類的計算平臺的動作或過程。這里所討論的多種系統(tǒng)不限于任何特定的硬件架構(gòu)或配置。計算設(shè)備可以包括提供以一個或多個輸入為條件的結(jié)果的任何合適的元件布置。合適的計算設(shè)備包括訪問軟件的多用途的基于微處理器的計算機系統(tǒng),該軟件將該計算系統(tǒng)從一般用途計算裝置編程或配置為實施本主題的一個或多個實施方式的特殊計算裝置。在編程或配置計算設(shè)備中將使用的軟件中,任何合適的編程、腳本或其他類型的語言或語言的組合可以被用于實施這里所包含的教導(dǎo)。計算設(shè)備可以訪問體現(xiàn)計算機可讀指令的一個或多個非暫時性計算機可讀介質(zhì),該計算機可讀指令當被至少一個計算機執(zhí)行時導(dǎo)致該至少一個計算機實施本主題的一個或多個實施方式。當利用軟件時,該軟件可以包括一個或多個組件、過程和/或應(yīng)用。除軟件之外或備選軟件,計算設(shè)備可以包括使得設(shè)備操作以實施本主題的一個或多個方法的電路。計算設(shè)備的例子包括但不限于服務(wù)器、個人計算機、移動設(shè)備(例如平板、智能電話、個人數(shù)字助理(PDA)等)、電視、電視機頂盒、便攜式音樂播放器和諸如照相機、攝像機和移動設(shè)備之類的消費者電子設(shè)備。計算設(shè)備可以被集成到例如“智能”電器、汽車、售貨亨等的其他設(shè)備中。 這里所公開的本發(fā)明的實施方式可以在計算設(shè)備的操作中執(zhí)行。以上例子中所呈現(xiàn)的塊的順序可以改變,例如,塊可以被重新排序、組合、和/或分解為子塊。特定的塊或過程可以并行地執(zhí)行。任何合適的非暫時性計算機可讀介質(zhì)可以用于實施或?qū)嵺`這里公開的主題,該計算機可讀介質(zhì)包括但不限于軟盤、驅(qū)動器、磁存儲介質(zhì)、光存儲介質(zhì)(例如CD-ROM、DVD-ROM及其變形)、閃存、RAM、ROM和其他存儲設(shè)備。這里對“適配為”或“配置為”的使用意為不排除適配為或配置為執(zhí)行附加的任務(wù)或步驟的設(shè)備的開放和包含性語言。另外,對“基于”的使用意為開放和包含性的,其中“基于”一個或多個所陳述的條件或值的過程、步驟、計算或其他動作在實際中可以基于超出所陳述的條件或值的附加的條件或值。這里所包括的標題、列表和編號僅僅為了解釋的便利并且不旨在限制性的。雖然已經(jīng)參考本主題的具體實施方式
詳細描述了本主題,但應(yīng)當理解,本領(lǐng)域技術(shù)人員在獲得對以上內(nèi)容的理解之后可以容易地產(chǎn)生對這樣的實施方式的變更、變化和等效物。據(jù)此,應(yīng)當理解,出于示例而非限制的目的而呈現(xiàn)了本公開,并且本公開不排除對本主題的這樣的修改、變化和/或添加的包含,如本領(lǐng)域普通技術(shù)人員將容易清楚的那樣。
權(quán)利要求
1.一種計算機化設(shè)備,包括 網(wǎng)絡(luò)接口 ;以及 數(shù)據(jù)處理硬件元件; 其中所述數(shù)據(jù)處理硬件元件實現(xiàn)內(nèi)容播放器,所述內(nèi)容播放器被配置為使用所述網(wǎng)絡(luò)接口來訪問內(nèi)容流,所述內(nèi)容流包括加密內(nèi)容和嵌入許可,所述許可包括根據(jù)所述內(nèi)容播放器可訪問的全局密鑰而加密的內(nèi)容密鑰,以及 其中所述內(nèi)容播放器被配置為確定是否存在滿足授權(quán)條件的令牌,并且僅在存在滿足所述授權(quán)條件的所述令牌的情況下使用所述全局密鑰來解密所述內(nèi)容密鑰。
2.如權(quán)利要求I所述的計算機化設(shè)備, 其中所述內(nèi)容流包括指定數(shù)字簽名的數(shù)據(jù),以及 其中確定是否存在滿足授權(quán)條件的令牌包括確定是否存在根據(jù)所述數(shù)字簽名而被簽名的令牌。
3.如權(quán)利要求2所述的計算機化設(shè)備,其中確定是否存在滿足授權(quán)條件的令牌進一步包括確定是否存在包含與所述計算機化設(shè)備的設(shè)備ID相匹配的設(shè)備ID的令牌。
4.如權(quán)利要求3所述的計算機化設(shè)備,其中確定是否存在滿足授權(quán)條件的令牌進一步包括評估包括在所述令牌中的存活時間指示符以確定所述令牌是否過期。
5.如權(quán)利要求I所述的計算機化設(shè)備,其中所述數(shù)據(jù)處理硬件元件還實現(xiàn)令牌獲取組件,所述令牌獲取組件被配置為獨立于訪問所述內(nèi)容流而獲得所述令牌。
6.如權(quán)利要求I所述的計算機化設(shè)備,其中所述數(shù)據(jù)處理硬件包括處理器,并且所述內(nèi)容播放器包括包含在所述處理器可訪問的存儲器設(shè)備中的程序組件。
7.如權(quán)利要求I所述的計算機化設(shè)備,其中所述內(nèi)容播放器進一步被配置為使用解密的內(nèi)容密鑰來解密所述加密內(nèi)容,并且提供基于所述解密的內(nèi)容的輸出。
8.如權(quán)利要求I所述的計算機化設(shè)備,其中所述全局密鑰與所述內(nèi)容播放器的多個實例可訪問的全局密鑰相同,所述內(nèi)容播放器的每個實例在不同的計算機化設(shè)備處實現(xiàn)。
9.一種計算機實現(xiàn)的方法,包括 存儲將內(nèi)容項與至少一個授權(quán)條件相關(guān)聯(lián)的數(shù)據(jù); 經(jīng)由網(wǎng)絡(luò)連接向內(nèi)容播放器提供令牌,所述令牌包括在客戶端處被評估時要滿足所述至少一個授權(quán)條件的數(shù)據(jù); 提供指定至少一個授權(quán)條件的數(shù)據(jù),所述數(shù)據(jù)將被嵌入在包括所述內(nèi)容項的加密版本的內(nèi)容流中。
10.如權(quán)利要求9所述的計算機實現(xiàn)的方法,進一步包括確定與所述內(nèi)容播放器相關(guān)聯(lián)的設(shè)備ID以及將所述設(shè)備ID包括在所述令牌中,以及 其中所述授權(quán)條件包括與所述內(nèi)容播放器應(yīng)用相關(guān)聯(lián)的所述設(shè)備ID的匹配。
11.如權(quán)利要求10所述的計算機實現(xiàn)的方法, 其中所述授權(quán)條件包括數(shù)字簽名的匹配,以及 其中所述方法包括數(shù)字化地簽名所述令牌,以及將指定數(shù)字簽名的數(shù)據(jù)包括在將要嵌入內(nèi)容流的數(shù)據(jù)中。
12.如權(quán)利要求11所述的計算機實現(xiàn)的方法,其中所述授權(quán)條件包括存在未過期令牌,并且所述方法包括將存活時間指示符包括在所述令牌中。
13.如權(quán)利要求12所述的計算機實現(xiàn)的方法, 其中所述內(nèi)容播放器被配置為訪問內(nèi)容流,所述內(nèi)容流包括加密內(nèi)容項和根據(jù)所述內(nèi)容播放器可訪問的全局密鑰而加密的內(nèi)容密鑰,以及 其中所述內(nèi)容播放器被配置為(i)基于所述存活時間指示符確定所述令牌是否過期,以及(ii)在使用所述全局密鑰來解密所述內(nèi)容密鑰之前,驗證所述令牌與在所述許可中指定的內(nèi)容ID、設(shè)備ID和數(shù)字簽名相匹配。
14.如權(quán)利要求13所述的計算機實現(xiàn)的方法,其中提供所述許可包括從第一計算設(shè)備向被配置為向所述內(nèi)容播放器提供所述內(nèi)容流的分離的計算設(shè)備提供所述許可。
15.一種計算機程序產(chǎn)品,其包括包含程序代碼的非瞬態(tài)計算機可讀介質(zhì),所述程序代碼包括 用于使用計算設(shè)備的網(wǎng)絡(luò)接口訪問內(nèi)容流的程序代碼,所述內(nèi)容流包括加密內(nèi)容和嵌入許可,所述嵌入許可包括根據(jù)全局密鑰而加密的內(nèi)容密鑰; 用于確定是否存在滿足授權(quán)條件的令牌的程序代碼;以及 用于僅在存在滿足所述授權(quán)條件的所述令牌的情況下使用所述全局密鑰來解密所述內(nèi)容密鑰的程序代碼。
16.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中用于確定是否存在滿足授權(quán)條件的令牌的程序代碼包括用于確定是否存在根據(jù)內(nèi)容流中所指定的數(shù)字簽名而被簽名的令牌的代碼。
17.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中用于確定是否存在滿足授權(quán)條件的令牌的程序代碼包括用于確定是否存在包含與所述計算設(shè)備的設(shè)備ID相匹配的設(shè)備ID的令牌的代碼。
18.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中用于確定是否存在滿足授權(quán)條件的令牌的程序代碼包括用于評估包括在所述令牌中的存活時間指示符以確定所述令牌是否過期的代碼。
19.如權(quán)利要求15所述的計算機程序產(chǎn)品,進一步包括 用于使用與所述內(nèi)容流的訪問分離的帶外機制來從第一計算系統(tǒng)請求所述令牌的程序代碼。
20.如權(quán)利要求15所述的計算機程序產(chǎn)品, 其中用于訪問的程序代碼包括用于建立與內(nèi)容服務(wù)器的連接并且獲得所述內(nèi)容流而不執(zhí)行特定于所述內(nèi)容的授權(quán)例程的代碼。
全文摘要
本發(fā)明涉及用于受保護內(nèi)容的可縮放分發(fā)的方法和系統(tǒng)。具體地,涉及一種計算機化設(shè)備,其可以實施實現(xiàn)內(nèi)容播放器以使用網(wǎng)絡(luò)接口訪問內(nèi)容流,該內(nèi)容流包括加密內(nèi)容和嵌入的許可,該許可包括根據(jù)由該內(nèi)容播放器可訪問的全局密鑰而加密的內(nèi)容密鑰。該內(nèi)容播放器確定是否存在滿足授權(quán)條件的令牌,并且僅在這樣的令牌存在時使用該全局密鑰來解密該內(nèi)容密鑰??梢灾辽俨糠只趦?nèi)容流中所包括的數(shù)據(jù)來評估該授權(quán)條件。該授權(quán)條件可以包括存在具有與該許可中對應(yīng)的內(nèi)容ID匹配的內(nèi)容ID的令牌;存在具有正確設(shè)備ID的令牌;存在根據(jù)在該許可中標識的數(shù)字簽名而簽名的令牌;和/或存在未過期的令牌,其中基于令牌中的存活時間指示符來評估過期。
文檔編號G06F21/00GK102682233SQ201110461379
公開日2012年9月19日 申請日期2011年12月28日 優(yōu)先權(quán)日2011年1月13日
發(fā)明者K·沙, S·阿格拉沃 申請人:奧多比公司