本發(fā)明涉及保護在裝置上的媒體內(nèi)容以防止媒體內(nèi)容的未經(jīng)認證的回放的方法。本發(fā)明還涉及在裝置上遞送媒體內(nèi)容的方法,并且具體地涉及使用HTTP實時串流遞送媒體內(nèi)容的方法。
背景技術(shù):
諸如視頻和/或音頻數(shù)據(jù)的多媒體可以使用公知的技術(shù)串流到最終用戶的裝置上。媒體內(nèi)容被從提供商下載或以其它方式提取,并且在下載時同時被遞送或呈現(xiàn)給用戶。例如,串流視頻可以同時下載到用戶裝置并顯示以供觀看。類似地,音頻內(nèi)容可以同時下載到用戶裝置并被回放以供收聽。因此,通過串流媒體內(nèi)容,用戶不一定需要首先下載內(nèi)容,并且僅僅在內(nèi)容被完全下載時才能訪問它以供消費(例如觀看、收聽等)。
使用HTTP作為互聯(lián)網(wǎng)上的傳輸協(xié)議的媒體串流具有優(yōu)于其它傳統(tǒng)串流傳輸方法的益處。例如,連接到互聯(lián)網(wǎng)的許多裝置和系統(tǒng)支持HTTP協(xié)議。使用HTTP串流傳輸?shù)囊曨l內(nèi)容通常被分成被稱為片段的小片數(shù)據(jù),其中每個片段可以保存幾秒的視頻數(shù)據(jù)。因此,一小時視頻可以包含數(shù)百個片段。只要僅接收到少量片段,媒體播放器就可以開始顯示視頻內(nèi)容。此外,HTTP支持自適應(yīng)比特率串流,其允許媒體播放器根據(jù)當前可用于裝置的連接帶寬,選擇在運行中的更高或更低質(zhì)量的視頻。此外,通過使用HTTP,媒體內(nèi)容也可以被加密。使用這種串流傳輸方法的串流協(xié)議,例如HTTP實時串流傳輸(HLS)、平滑串流傳輸和MPEG-DASH,已經(jīng)在移動裝置上被廣泛采用。
然而,對于高質(zhì)量媒體內(nèi)容,串流式媒體是相對帶寬密集的,并且通常需要相對快速的互聯(lián)網(wǎng)連接以便提供令人滿意的用戶體驗。如果連接丟失,例如如果裝置離線,則串流可以被中斷并且媒體內(nèi)容可能不再被遞送到最終用戶,直到連接被重新建立。這顯然不利地影響用戶體驗。因此,本領(lǐng)域中存在在用戶將消費媒體內(nèi)容的任何時間和任何地方更可靠地遞送媒體內(nèi)容的需要。
另外,如果在裝置上向用戶提供的媒體內(nèi)容受到保護以免發(fā)生違背內(nèi)容提供商的利益的非法復制或重新分發(fā),那也是優(yōu)選的。存在可以用于防止媒體內(nèi)容的未認證分發(fā)和/或回放的各種加密技術(shù)。例如,由蘋果公司開發(fā)的FairPlay加密系統(tǒng)依賴于用于解密加密的媒體內(nèi)容所需的主密鑰。通過加密該主密鑰,如果未認證用戶不具有解密加密的主密鑰所需的第二“用戶”密鑰,則能夠防止未認證用戶獲得對媒體內(nèi)容的訪問。
然而,在本領(lǐng)域中仍然存在進一步改進和開發(fā)用于加密或保護媒體內(nèi)容免受未經(jīng)認證的分發(fā)和/或回放的方法的需要。本發(fā)明的目的是滿足這種需要。
技術(shù)實現(xiàn)要素:
根據(jù)本發(fā)明的第一方面,提供了一種在裝置上串流傳輸媒體內(nèi)容的方法。在裝置處接收串流媒體內(nèi)容的請求。從裝置的本地媒體存儲器提取所請求的媒體內(nèi)容的至少第一部分。將所請求的媒體內(nèi)容的至少第一部分遞送到所述裝置的媒體播放器以用于回放。與所請求的媒體內(nèi)容的至少第一部分的遞送并行地,將所請求的媒體內(nèi)容的第二部分從遠程媒體存儲器下載到裝置。
媒體內(nèi)容的一部分可以包括一個或多個媒體片段。因此,媒體內(nèi)容的片段可以被遞送到所述裝置的媒體播放器以供回放。如果片段被存儲在本地媒體存儲器中(例如,如果它們以前已經(jīng)被下載到裝置),則一旦接收到串流請求并且所述片段已經(jīng)從本地商店抓取或提取了,則所存儲的媒體片段的回放可以馬上開始。所請求的媒體內(nèi)容的其它片段可以從遠程媒體存儲器下載并作為串流遞送到媒體播放器。媒體片段的下載、串流傳輸和回放可以彼此并行地操作。
在一個實施例中,可以確定所述裝置的本地媒體存儲器是否包括所請求的媒體內(nèi)容的至少第一部分??梢詫⑺埱蟮拿襟w內(nèi)容的至少第一部分遞送到裝置的媒體播放器以供回放??梢源_定遠程媒體存儲器是否包括其上存儲的所請求的媒體內(nèi)容的至少第二部分。與所請求的媒體內(nèi)容的至少第一部分的遞送并行,所請求的媒體內(nèi)容的至少第二部分可以從遠程媒體存儲器下載到所述裝置。
因此,該方法可以包括從本地媒體商店或特定遠程媒體商店定位每個媒體部分(或片段)及其相應(yīng)位置。定位可以基于包括在所請求的媒體內(nèi)容中的元數(shù)據(jù)。然后可以通過從裝置的本地媒體器存儲獲取它或者通過從遠程媒體存儲下載它,來將每個媒體片段串流式傳輸?shù)窖b置的媒體播放器以供回放。定位、下載和串流式傳輸功能可以并行操作以向裝置的最終用戶提供令人滿意的回放體驗。
所述裝置可以是能夠串流傳輸媒體內(nèi)容的任何裝置。例如,裝置可以是諸如膝上型計算機或平板電腦的便攜式裝置。該裝置可以是諸如智能電話的移動裝置,或者可以是能夠顯示視頻的電視或其它裝置,或者可以是能夠連接到顯示裝置的機頂盒?;蛘?,裝置不需要具有顯示器,并且可以被布置為純粹地串流音頻內(nèi)容。
本地媒體存儲器可以是用于存儲一個或多個媒體文件的所述裝置的存儲器的一部分。該裝置可以包括多于一個物理存儲器。遠程媒體存儲器可以是傳統(tǒng)媒體服務(wù)器、云上的服務(wù)器、或者可以形成一個或多個內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)的一部分??梢允褂闷渌愋偷倪h程媒體存儲器。
所請求的媒體內(nèi)容的第一和第二部分可以包括任何數(shù)量的所請求的媒體內(nèi)容。例如,從遠程存儲器下載的媒體內(nèi)容的程度可以接近100%,在這種情況下,該方法的操作接近傳統(tǒng)實時串流傳輸?shù)牟僮鳌;蛘?,可以從本地存儲器獲取大部分媒體內(nèi)容,在這種情況下,由于所請求的媒體內(nèi)容的大部分已經(jīng)存儲在裝置上,因此可以優(yōu)化回放體驗的質(zhì)量。媒體播放器的操作可以不受從本地媒體存儲器獲取的內(nèi)容的量以及作為預下載(例如,存儲在裝置的本地存儲器中)的可用內(nèi)容的量的影響。結(jié)果,本發(fā)明改進了媒體播放器的媒體串流的位置透明度。
所請求的媒體內(nèi)容的至少第二部分可以被直接下載到本地媒體存儲器以遞送到媒體播放器?;蛘?,所請求的媒體內(nèi)容的至少第二部分可被下載并直接遞送到媒體播放器。因此,無論每個媒體片段的不同位置如何,媒體片段可以連續(xù)地遞送到媒體播放器,在串流過程中沒有中斷。
所請求的媒體內(nèi)容的至少第二部分可以根據(jù)串流協(xié)議(諸如HTTP實況串流傳輸(HLS)協(xié)議)來下載。所請求的媒體內(nèi)容的至少第二部分可以從互聯(lián)網(wǎng)下載。在一些實施例中,所請求的媒體內(nèi)容可以從諸如LAN、無線LAN、移動和蜂窩3G/4G/LTE等的其它類型的網(wǎng)絡(luò)下載。
所請求的媒體內(nèi)容可以包括多個媒體片段。所請求的媒體內(nèi)容的至少第一部分和所請求的媒體內(nèi)容的至少第二部分可以各自包括多個媒體片段中的一個或多個。
每個媒體片段可以包括用于HTTP傳輸?shù)拿襟w內(nèi)容。此外,除了多個媒體片段之外,所請求的媒體內(nèi)容可以包括元數(shù)據(jù),并且所述元數(shù)據(jù)可以包括與所請求的媒體內(nèi)容有關(guān)的描述或其它信息,以及所請求的媒體內(nèi)容中的媒體片段的列表。
通過使用所述裝置的媒體定位器單元(MLU),一個或多個解密密鑰可以被下載到裝置上的本地密鑰存儲器。具體地,所請求的媒體內(nèi)容的第一和第二部分中的至少一個可以被加密,并且一個或多個解密密鑰可以被布置為解密所請求的媒體內(nèi)容的第一和第二部分中的至少一個。HLS特別地支持媒體串流的加密。解密密鑰可以從遠程服務(wù)器或其它遠程存儲器下載。
通過使用所述裝置的客戶端安全代理(CSA),一個或多個認證證書可以被下載到裝置上的證書存儲器。解密密鑰可以從遠程服務(wù)器或其它遠程存儲器下載。
將一個或多個解密密鑰下載到密鑰存儲器可以包括首先由MLU請求來自CSA的認證證書,然后所請求的認證證書可以從CSA傳送到MLU。
盡管加密的媒體內(nèi)容和解密密鑰可以被高速緩存在客戶端裝置上,但是CSA可以與MLU一起部署以保護媒體內(nèi)容提供商的利益。CSA可以從公共密鑰基礎(chǔ)設(shè)施認證中心請求X.509客戶端證書,并管理用于在不同密鑰服務(wù)器上認證客戶端的證書。
因此,如果所述裝置第一次嘗試從特定遠程密鑰服務(wù)器提取一個或多個解密密鑰,則密鑰服務(wù)器可以通過遞送適當?shù)恼J證證書來請求所述裝置的認證。所述裝置的CSA可以被布置為提取這樣的證書并將其遞送到MLU,以用于隨后遞送到密鑰服務(wù)器以進行認證。
有利地,利用協(xié)同操作的MLU和CSA,HLS串流的媒體內(nèi)容可以通過加密來保護,并且客戶端裝置可以被認證以允許訪問媒體內(nèi)容。
媒體存儲器、密鑰存儲器和證書存儲器可以各自位于裝置的安全存儲器中。安全存儲器可以由裝置的操作系統(tǒng)(例如Apple iOSTM或Google AndroidTM)或僅允許有效用戶訪問存儲區(qū)域的任何其它類似操作環(huán)境來保證。
雖然媒體內(nèi)容變得更容易被用戶在各種裝置上訪問和消費,但媒體內(nèi)容提供商需要對什么人或什么裝置可以訪問內(nèi)容的可靠控制。一旦媒體內(nèi)容被遞送到客戶端,用戶可以重新分發(fā)它,或者對媒體內(nèi)容執(zhí)行可能違反內(nèi)容提供商的使用策略的其它動作。
因此,根據(jù)本發(fā)明,可以確定在受保護環(huán)境中的安全存儲是否已經(jīng)違規(guī)。如果安全存儲已經(jīng)違規(guī),則可以刪除媒體存儲器、密鑰存儲器和證書存儲器中的至少一個的內(nèi)容,和/或可以停止所請求的媒體內(nèi)容的回放。此外,MLU和CSA可以被布置為相互通信。如果MLU和CSA不再相互通信、或者如果通信有疑問,則可以刪除媒體存儲器、密鑰存儲器和證書存儲器中的至少一個的內(nèi)容,和/或可以停止回放所請求的媒體內(nèi)容。
因此,CSA可以驗證和確保在其操作環(huán)境中的安全存儲的完整性和安全性,并且可以確認MLU的狀態(tài)。CSA可以另外檢查操作環(huán)境的安全策略的維護。如果CSA檢測到安全策略被違反了,則CSA可以清除證書存儲并通知MLU,并且MLU在從CSA接收到通知時可以停止媒體串流處理,以及清除密鑰存儲器和本地媒體商店。如果檢測到違反使用策略的任何用戶行為或安全環(huán)境的其它破壞,則可以刪除所有存儲的客戶端證書、緩存的解密密鑰和加密的媒體。
另外,MLU可以從CSA接收關(guān)于所述裝置的受保護的應(yīng)用環(huán)境的狀態(tài)的周期性更新。當MLU失去與CSA的聯(lián)系并且不能保證其在安全環(huán)境中操作時,可以停止媒體串流傳輸,并且可以分別清除證書存儲器、密鑰存儲器和本地媒體存儲器的內(nèi)容。
解密密鑰和/或所請求的媒體內(nèi)容可以被布置為在下載/提取之后預定的時間段內(nèi)到期。在到期時,可以停止所請求的媒體內(nèi)容的回放。另外,在到期時,可以從所述裝置中刪除解密密鑰和/或所請求的媒體內(nèi)容。
根據(jù)本發(fā)明,還提供了一種布置成執(zhí)行上述方法的裝置,以及包括這種裝置的系統(tǒng)。
根據(jù)本發(fā)明的第二方面,提供了一種在裝置上保護媒體內(nèi)容免于未經(jīng)認證的回放的方法。該方法包括在裝置處接收播放媒體內(nèi)容的請求,其中所請求的媒體內(nèi)容被加密。該方法還包括獲得加密的媒體內(nèi)容。該方法還包括使用第一加密密鑰進一步加密經(jīng)加密的媒體內(nèi)容,以便產(chǎn)生雙重加密的媒體內(nèi)容,其中第一加密密鑰是所述裝置特有的。
所請求的媒體內(nèi)容可以包括適合于在裝置上播放的任何媒體文件或文件,諸如但不限于視頻數(shù)據(jù)、音頻數(shù)據(jù)和/或圖像數(shù)據(jù)。媒體內(nèi)容可以包括在數(shù)字媒體文件中。當由所述裝置獲得時,媒體內(nèi)容可能已經(jīng)由遠程媒體服務(wù)器使用下面更詳細討論的一個或多個第二加密密鑰來加密。在能夠播放或執(zhí)行加密的媒體內(nèi)容之前,所述裝置必須首先確定第二加密密鑰的位置,以便解密加密的媒體內(nèi)容。應(yīng)當注意,術(shù)語“加密密鑰”和“解密密鑰”可以互換使用,因為它們基本上是相同的密鑰,但是用于反向操作。
一旦在裝置處接收到加密的媒體內(nèi)容,則使用專用于裝置的第一加密密鑰來執(zhí)行另一第二加密步驟。使用這種基于裝置的加密密鑰的第二加密有助于安全或保護媒體內(nèi)容免受未經(jīng)認證的分發(fā)或回放,因為將雙重加密的媒體內(nèi)容恢復到其單加密狀態(tài)所需的第一加密密鑰是特定于裝置的。因此,沒有這種裝置特定的加密密鑰,未認證的裝置將不能播放媒體內(nèi)容。第一加密密鑰對于裝置可以是唯一的,并且沒有其它裝置能夠再現(xiàn)第一加密密鑰。本領(lǐng)域中存在已知的用于產(chǎn)生這種唯一的或裝置特定的加密密鑰的方法,例如通過在對裝置的標識號(例如廠商ID或序列號)使用散列函數(shù)的變體。
有利地,該方法允許改進保護以防止未認證的加密媒體內(nèi)容的回放,因為第一加密密鑰不需要存儲在裝置上,而是可以簡單地由裝置(例如使用合適的應(yīng)用程序)生成,只要存在對解密雙重加密的媒體內(nèi)容的需求。
該方法還可以包括在裝置上存儲雙重加密的媒體內(nèi)容。雙重加密的媒體內(nèi)容可以存儲在所述裝置的合適的存儲器中,以用于將來的回放,例如每當裝置從用戶接收到播放媒體內(nèi)容的請求時。
當裝置接收到播放加密的媒體內(nèi)容的請求時,所述裝置可以使用第一加密密鑰對雙重加密的媒體內(nèi)容進行解密,以便再現(xiàn)加密的媒體內(nèi)容。該裝置然后可以接收一個或多個第二加密密鑰。然后,可以使用一個或多個第二加密密鑰第二次解密加密的媒體內(nèi)容,以便產(chǎn)生解密的媒體內(nèi)容,從而允許媒體內(nèi)容的回放。
有利地,一個或多個第二加密密鑰可以遠離所述裝置存儲,以便提高系統(tǒng)的安全性。因此,在加密的媒體內(nèi)容可以被完全解密用于回放之前,一個或多個第二加密密鑰可能必須首先被裝置請求并且在裝置處被接收。
獲得所請求的媒體內(nèi)容可以包括從遠程媒體服務(wù)器下載所請求的媒體內(nèi)容。因此,如果所請求的媒體內(nèi)容尚未存儲在所述裝置上,則該裝置可以與存儲媒體內(nèi)容的遠程服務(wù)器通信,以便將所請求的媒體內(nèi)容下載到裝置上?;蛘?,如上所述,雙重加密的媒體內(nèi)容可能已經(jīng)存儲在裝置上,在這種情況下,該裝置可以從裝置的本地存儲(例如從合適的存儲器)提取媒體內(nèi)容。
如我們已經(jīng)看到的,為了完全解密雙重加密的媒體內(nèi)容,不僅需要裝置特定的第一加密密鑰,而且裝置還必須訪問一個或多個第二加密密鑰(所述密鑰已經(jīng)用于第一次加密所述一個或多個密鑰媒體內(nèi)容)。因此,該方法還可以包括確定與加密的媒體內(nèi)容相關(guān)的元數(shù)據(jù)是否存儲在裝置上。如果是,則裝置可以提取元數(shù)據(jù),或者如果不是,則裝置可以從遠程元數(shù)據(jù)服務(wù)器請求元數(shù)據(jù)并在裝置處接收元數(shù)據(jù)。
加密的媒體內(nèi)容可以包括與加密的媒體內(nèi)容相關(guān)的元數(shù)據(jù)。在這種情況下,加密的媒體內(nèi)容通常包含多個加密的媒體片段(例如要回放的視頻或音頻數(shù)據(jù))以及與加密的媒體片段相關(guān)的未加密的元數(shù)據(jù)。元數(shù)據(jù)可以包括標識一個或多個第二加密密鑰的位置的數(shù)據(jù)。該位置可以是遠程密鑰服務(wù)器中的一個或多個第二加密密鑰的位置。
因此,一旦由裝置獲得(無論其是否已被裝置從遠程存儲位置請求,或者其是否包含加密的媒體內(nèi)容本身),所述元數(shù)據(jù)可以用于訪問所需的一個或多個第二加密密鑰以完全解密雙重加密的媒體內(nèi)容。
接收一個或多個第二加密密鑰可以包括從遠程密鑰服務(wù)器請求一個或多個第二加密密鑰。特別地,該方法可以包括從訪問控制服務(wù)器請求認證令牌,在裝置處接收認證令牌,以及使用認證令牌從遠程密鑰服務(wù)器請求一個或多個第二加密密鑰。因此,裝置可以首先獲得認證令牌,并且結(jié)合識別一個或多個第二加密密鑰的位置的元數(shù)據(jù),使用認證令牌來獲得一個或多個第二加密密鑰。
應(yīng)當注意,如果媒體內(nèi)容被分成多個單獨加密的媒體片段,則可以有多于一個的第二加密密鑰。在這種情況下,一個或多個第二加密密鑰中的每一個可以與多個加密的媒體片段中的對應(yīng)的一個相關(guān)聯(lián)。因此,元數(shù)據(jù)可以標識每個單獨的第二加密密鑰的位置,以便允許對構(gòu)成媒體內(nèi)容的全部媒體片段進行解密。
一旦裝置訪問了第二加密密鑰,就可以使用第二加密密鑰進一步解密加密的媒體內(nèi)容(已經(jīng)使用裝置特定的加密密鑰解密過一次),以便完全解密媒體內(nèi)容。該方法然后可以進一步包括使用裝置的媒體播放器來執(zhí)行解密的媒體內(nèi)容。
以與上面結(jié)合本發(fā)明的第一方面所描述的大致相同的方式,所請求的媒體內(nèi)容的一部分可以本地駐留在裝置的存儲器中,并且第二部分可能必須從媒體服務(wù)器下載。因此,獲得加密的媒體內(nèi)容可以包括從裝置的本地存儲器提取加密的媒體內(nèi)容的至少第一部分。獲得加密的媒體內(nèi)容還可以包括:與提取加密的媒體內(nèi)容的至少第一部分并行地,從遠程媒體服務(wù)器向裝置下載加密的媒體內(nèi)容的至少第二部分。加密的媒體內(nèi)容的至少第二部分可以被下載到本地存儲器,以便遞送到裝置的媒體播放器。
根據(jù)本發(fā)明,還提供了一種布置成執(zhí)行上述方法的裝置,以及包括這種裝置的系統(tǒng)。
在本公開說明書的范圍內(nèi),本發(fā)明的第二方面的任何特征或元件(即,關(guān)于保護媒體內(nèi)容免于未經(jīng)認證的回放的方法)可以與本發(fā)明的第一方面的任何特征或元件(即,方法向裝置傳送媒體內(nèi)容)組合。
附圖說明
現(xiàn)在將結(jié)合附圖描述本發(fā)明的具體實施例,其中:
圖1是根據(jù)本發(fā)明的實施例的系統(tǒng)的圖;
圖2是示出根據(jù)本發(fā)明的實施例的遞送媒體內(nèi)容的方法所采取的步驟的串流程圖;和
圖3是示出根據(jù)本發(fā)明的實施例的保護媒體內(nèi)容免于未經(jīng)認證的回放的方法所采取的步驟的串流程圖。
具體實施方式
本發(fā)明的目的是提供一種用于遞送和保護媒體內(nèi)容的改進方法。雖然下面描述了本發(fā)明的各種實施例,但是本發(fā)明不限于這些實施例,并且這些實施例的變型可以完全落入本發(fā)明的范圍內(nèi),本發(fā)明的范圍僅由所附權(quán)利要求限制。
圖1示出了根據(jù)本發(fā)明的實施例的媒體串流系統(tǒng)100。在系統(tǒng)100的客戶端或終端用戶側(cè)上,系統(tǒng)100包括客戶端裝置105,例如便攜式移動裝置??蛻舳搜b置105可以是能夠進行媒體內(nèi)容回放的任何其它裝置,諸如電視、PC、膝上型計算機、移動電話、機頂盒、音頻系統(tǒng)等。
客戶端裝置105包括媒體播放器110、媒體定位器單元115(MLU)和客戶端安全代理(CSA)120。媒體播放器110、MLU 115和CSA 120可以包括在客戶端裝置105的操作系統(tǒng)中的應(yīng)用程序的一個或多個軟件模塊中。
客戶端裝置105還包括本地媒體存儲器125、密鑰存儲器130和證書存儲器135。本地媒體存儲器125、密鑰存儲器130和證書存儲器135駐留在客戶端裝置105的安全儲存器或安全存儲器140中。每個存儲器不需要駐留在公共安全存儲器中,但可駐留在單獨的安全存儲中。本地媒體存儲器125的存儲器大小實質(zhì)上大于傳統(tǒng)媒體播放器的存儲器緩沖器,使得如果互聯(lián)網(wǎng)連接丟失并且下載尚未完成,則客戶端裝置105可以在短時間段內(nèi)繼續(xù)媒體內(nèi)容的回放。媒體播放器110、MLU 115和CSA 120是安全環(huán)境中的應(yīng)用程序的組件。所述應(yīng)用程序是在諸如Apple iOS、Google Android OS等操作系統(tǒng)的受保護運行時(runtime)環(huán)境或受保護的應(yīng)用程序環(huán)境160中的,使得單個組件不能被替換。受保護的應(yīng)用程序環(huán)境160包括安全存儲器140,使得當受保護的應(yīng)用程序環(huán)境受損時不能訪問存儲在其中的數(shù)據(jù)。
在多媒體串流系統(tǒng)100的服務(wù)器側(cè)上,提供了認證證書服務(wù)器145或公共密鑰基礎(chǔ)設(shè)施證書機構(gòu)(PKI CA)、密鑰服務(wù)器150和媒體服務(wù)器155。PKI CA 145、密鑰服務(wù)器150和媒體服務(wù)器155可以形成內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)的一部分或作為類似云服務(wù)器的一部分。它們可以駐留在公共服務(wù)器或單獨的服務(wù)器上。CDN提供對跨互聯(lián)網(wǎng)復制的媒體內(nèi)容的方便訪問。在其它實施例中,PKI CA 145、密鑰服務(wù)器150和媒體服務(wù)器155可以駐留在聯(lián)網(wǎng)到客戶端裝置105的其它用戶裝置上。另外,PKI CA 145、密鑰服務(wù)器150和媒體服務(wù)器155可以是在互聯(lián)網(wǎng)上或在MLU 115可訪問的專用網(wǎng)絡(luò)上的任何地方的服務(wù)器應(yīng)用程序,它們中每個都有獨立運行的多個服務(wù)。媒體內(nèi)容和媒體片段可以從任何數(shù)量的媒體服務(wù)器155、156、157下載。
媒體播放器110被布置為根據(jù)HLS協(xié)議處理和播放其接收的媒體內(nèi)容,例如媒體片段。例如,媒體播放器110可以處理和顯示諸如直播電視串流或電影的視頻內(nèi)容、或諸如音樂曲目或其它音頻文件的音頻內(nèi)容。媒體播放器110可以與MLU 115通信,使得媒體播放器110可以接收由MLU115傳送給它的媒體內(nèi)容。為了簡化本發(fā)明的實施例,媒體播放器110可以是由操作系統(tǒng)提供的標準組件。
MLU 115是可以從本地媒體存儲器125提取媒體內(nèi)容的客戶端裝置105的組件。MLU 115還可以從密鑰存儲器130提取解密密鑰。特別地,MLU 115被布置為使用來自密鑰存儲器130的解密密鑰來解密和處理加密的媒體內(nèi)容,使得即使在離線時,即當從互聯(lián)網(wǎng)斷開時,客戶端裝置105也能夠進行媒體內(nèi)容回放。MLU 115還被布置為將解密密鑰從密鑰服務(wù)器150下載到客戶端裝置105,以及將媒體內(nèi)容從媒體服務(wù)器155或媒體服務(wù)器155、156、157下載到客戶端裝置105。所述下載優(yōu)選地根據(jù)HLS協(xié)議使用HTTP進行。當下載時,解密密鑰存儲在密鑰存儲器130中,并且媒體內(nèi)容存儲在本地媒體存儲器125中。不同的密鑰可以分別分配給不同的媒體內(nèi)容,或者分配給媒體內(nèi)容或多個媒體內(nèi)容的不同片段。
除了確??蛻舳藗?cè)的受保護的運行時環(huán)境之外,CSA 120還被布置為通過使用X.509客戶端證書在密鑰服務(wù)器150上認證客戶端裝置105??梢允褂闷渌问降目蛻舳俗C書或認證令牌。X.509客戶端證書從PKI CA145獲得,由CSA 120下載并本地存儲在客戶端裝置105的證書存儲器135中??赡苄枰煌目蛻舳俗C書來播放不同的媒體內(nèi)容??蛻舳俗C書可以由PKI CA 145無效,并且要求MLU 115提供有效的客戶端證書以便從密鑰服務(wù)器150提取解密密鑰。
現(xiàn)在將根據(jù)本發(fā)明的實施例描述媒體串流傳輸系統(tǒng)100的操作方法。
在傳統(tǒng)的媒體串流技術(shù)中,屬于提供商的媒體內(nèi)容被存儲在服務(wù)器上,并且在客戶端裝置上運行的客戶端應(yīng)用程序下載媒體內(nèi)容,同時并行地顯示內(nèi)容。媒體服務(wù)器和媒體客戶端之間的操作由串流協(xié)議規(guī)定。
HLS是使用HTTP傳輸協(xié)議用于在互聯(lián)網(wǎng)上進行媒體串流的串流協(xié)議。HLS支持媒體內(nèi)容的加密(AES-128)串流。當在加密模式中使用HLS時,通常通過網(wǎng)絡(luò)服務(wù)器向客戶端應(yīng)用程序提供解密密鑰。
本發(fā)明擴展了串流操作以支持媒體內(nèi)容的預下載以及混合操作模式,根據(jù)混合操作模式,預下載的內(nèi)容和實時串流內(nèi)容被一起使用。因此,在客戶端側(cè)的媒體播放器可以像執(zhí)行正常的HLS處理那樣操作。
根據(jù)方法200,在步驟205,客戶端裝置105使用HLS接收串流媒體內(nèi)容的請求。例如,客戶端裝置105的用戶可以輸入打開媒體內(nèi)容的命令,諸如通過經(jīng)由在連接到互聯(lián)網(wǎng)時顯示給用戶的網(wǎng)頁訪問鏈接。該請求可以首先在媒體播放器110處接收然后媒體播放器110將該請求傳遞給MLU115,或者該請求可以由MLU 115直接接收。
在MLU 115處接收到對串流媒體的請求時,在步驟210,MLU 115從本地媒體存儲器125提取或抓取任何相關(guān)媒體串流片段或其它所請求的媒體內(nèi)容。這不是從遠程服務(wù)器搜索和下載整個所請求的媒體內(nèi)容。在步驟210同時,在步驟215,MLU 115將剩余的所請求的HLS媒體片段從媒體服務(wù)器155下載到本地媒體存儲器125。
例如,所請求的媒體內(nèi)容可以包括視頻的元數(shù)據(jù)和所請求的媒體內(nèi)容的多個媒體片段。元數(shù)據(jù)可以包含諸如以下信息的信息:媒體片段的細節(jié)、媒體片段可以從其下載的媒體服務(wù)器的位置、視頻是否被加密以及可以提供解密密鑰或密鑰解密媒體內(nèi)容的密鑰服務(wù)器的位置。媒體片段可以由MLU 115根據(jù)串流協(xié)議來組裝。
當客戶端裝置105處于混合操作模式時,多個這樣的媒體片段可以形成所請求的媒體內(nèi)容的第一部分,并且可以存儲在本地媒體存儲器125中。與所請求的媒體內(nèi)容有關(guān)的任何其它媒體片段形成所請求的媒體內(nèi)容的第二部分,其可以并行地從媒體服務(wù)器155下載到本地媒體存儲器125中。
因此,所請求的媒體片段中的一個或多個被存儲在本地媒體存儲器125中。一旦由MLU 115獲取,在步驟235,該部分被遞送到媒體播放器110以供回放。雖然媒體播放器110正在處理和顯示/播放所請求的媒體內(nèi)容的已經(jīng)下載的片段,但與實時串流類似,其余片段從媒體服務(wù)器155并行地下載到本地媒體存儲125。
在諸如HLS協(xié)議的常規(guī)數(shù)據(jù)串流技術(shù)中,如果客戶端裝置在媒體內(nèi)容的下載完成之前下線,并且隨后在經(jīng)過一片段時間之后上線,則媒體內(nèi)容的下載需要重新啟動。
根據(jù)本發(fā)明的實施例,如果互聯(lián)網(wǎng)連接丟失,而媒體內(nèi)容的下載仍在進行中,則MLU 115繼續(xù)從本地媒體存儲器125獲取媒體片段,并將它們傳送到媒體播放器110。一旦客戶端裝置105重新連接到互聯(lián)網(wǎng)時,MLU115將根據(jù)元數(shù)據(jù)自動地恢復針對未完成的媒體片段的下載處理,并且用戶可能不會注意到曾經(jīng)發(fā)生過互聯(lián)網(wǎng)斷開(假設(shè)斷開不持續(xù)太久),因為回放是連續(xù)的。
如已經(jīng)提到的,HLS協(xié)議允許串流媒體的加密以提供數(shù)字版權(quán)管理,使得媒體內(nèi)容的版權(quán)持有者可以控制已經(jīng)存儲在客戶端裝置105上的媒體的分發(fā)和傳播。
在步驟220,MLU 115確定從本地媒體存儲器125提取的所請求的媒體內(nèi)容是否被加密。如果被加密,則在步驟230,MLU 115訪問客戶機裝置105的本地密鑰存儲器130。如果必要的解密密鑰(或多個密鑰)被存儲在本地密鑰存儲器130中,則MLU 115提取解密密鑰并在步驟225解密加密的媒體內(nèi)容然后可以將解密的媒體內(nèi)容傳遞給媒體播放器110以供回放(步驟235)。或者,加密的媒體內(nèi)容可以利用解密密鑰傳遞到媒體播放器110,在這種情況下,媒體播放器110可以在回放之前解密媒體內(nèi)容。
如果必需的密鑰未存儲在本地密鑰存儲器130中,則在步驟250,MLU 115訪問密鑰服務(wù)器150。在步驟255,密鑰服務(wù)器150確定客戶端裝置105是否被認證以訪問所需密鑰。如果客戶端裝置105在密鑰服務(wù)器150上被認證,則在步驟290,MLU 115可以從密鑰服務(wù)器150下載或以其它方式提取解密密鑰。然后,MLU 115可以解密加密的媒體內(nèi)容并將解密的媒體內(nèi)容傳遞到媒體播放器110。如果MLU未在密鑰服務(wù)器150上認證,則在步驟260,MLU 115向CSA 120請求相關(guān)認證證書。
在步驟265,CSA 120訪問客戶端裝置105上的本地證書存儲器135,并且在步驟270確定所請求的認證證書是否存儲在其上。如果所請求的認證證書存儲在本地證書存儲器135中,則在步驟280(在下面更詳細地描述),CSA 120提取證書并將其傳送給MLU 115。如果在步驟270確定所請求的認證證書沒有存儲在本地證書存儲器135中,則在步驟275,CSA120請求來自PKI CA 145的相關(guān)認證證書。在步驟280,CSA 120下載或以其它方式提取認證證書。在步驟285,CSA 120將認證證書傳遞給MLU115,MLU 115在步驟285將認證證書傳遞到密鑰服務(wù)器150。一旦密鑰服務(wù)器150使用認證證書來認證客戶機裝置105,在步驟290則由MLU 115下載或以其它方式提取相關(guān)解密密鑰。然后操作進行到步驟225,其中加密的媒體內(nèi)容被解密,并且在步驟235,解密的媒體內(nèi)容最終被傳遞到媒體播放器110以供回放。上述方法僅僅是特定實施例的說明,并且在不脫離本發(fā)明的情況下可以省略/添加許多步驟。
為了防止傳播下載的媒體內(nèi)容的非法副本,本地媒體存儲器125和密鑰存儲器130位于由客戶端裝置105上的操作系統(tǒng)提供的受保護的應(yīng)用程序環(huán)境160的安全存儲器140中,所述操作系統(tǒng)例如是已經(jīng)提到的Apple iOS或Google Android OS。能夠建立受保護的應(yīng)用程序環(huán)境160的其它操作系統(tǒng)也可以使用。
CSA 120周期性地(例如每分鐘)驗證安全存儲器140以及受保護的應(yīng)用程序環(huán)境160的完整性。驗證可以基于由操作系統(tǒng)提供的功能來實現(xiàn)。例如,如果客戶端裝置105是越獄的(jail-broken)或刷機的(rooted),或者如果安全存儲器140被確定為違規(guī)的(compromised),則CSA 120警告MLU 115,并且MLU 115刪除本地媒體存儲器125和密鑰存儲器130中的現(xiàn)有數(shù)據(jù)。另外,停止媒體播放器110對媒體內(nèi)容的回放。在播放可以繼續(xù)之前,MLU 115需要來自CSA 120的關(guān)于安全存儲器140或受保護的應(yīng)用程序環(huán)境160未違規(guī)的肯定響應(yīng)。如果CSA 120確定安全存儲裝置140的完整性已經(jīng)被破壞,或者如果CSA 120失去與證書存儲裝置135的聯(lián)系,則證書存儲裝置135的內(nèi)容也可以被刪除。
MLU 115和CSA 120還被布置為彼此周期性地或連續(xù)地通信。如果MLU 115不能建立與CSA 120的連接,則MLU 115不能驗證其在受保護的應(yīng)用程序環(huán)境160中運行,因此MLU 115刪除本地媒體存儲器125和密鑰存儲器130中的相關(guān)媒體文件。此外,媒體內(nèi)容媒體播放器110停止。當接收到來自CSA 120的肯定響應(yīng)時,MLU 115可以恢復媒體內(nèi)容的下載和處理,并且媒體播放器110可以繼續(xù)回放。
根據(jù)本發(fā)明的另一實施例,CSA 120請求來自PKI CA 145的認證證書,用于從密鑰服務(wù)器150提取一個或多個解密密鑰。認證證書具有定義在其期間相關(guān)媒體內(nèi)容和解密密鑰可以本地存儲在客戶端裝置105中的到期日期/時間。媒體內(nèi)容和解密密鑰的有效期可以彼此相關(guān)聯(lián)。當MLU115檢測到媒體內(nèi)容或解密密鑰已過期時,它將停止將相關(guān)媒體內(nèi)容串流傳輸?shù)矫襟w播放器110并清除本地媒體存儲器125中的該媒體內(nèi)容。認證證書的到期日期可基于PKI CA 145的開放標準和認證證書,例如X.509。MLU115可以檢查媒體內(nèi)容和解密密鑰或密鑰的到期,即使客戶端裝置105離線或者在媒體內(nèi)容的下載完成之后。有利地,當客戶端裝置105在線時,CSA 120可以利用可從互聯(lián)網(wǎng)獲得的公共時間服務(wù)來檢查內(nèi)部裝置時鐘,以確保裝置時鐘沒有被手動調(diào)整。因此,所述數(shù)據(jù)串流傳輸方法可以進一步擴展到媒體內(nèi)容租賃的服務(wù)。
總之,利用在保護的運行時環(huán)境上使用安全存儲的MLU 115和CSA120的組合操作,HLS串流傳輸被擴展為包括預下載和實時串流模式。此外,提取的媒體內(nèi)容被保護免受非法復制,因為客戶端裝置向認證中心注冊并且在密鑰服務(wù)器上認證。操作可以對于媒體播放器完全透明。
現(xiàn)在將描述根據(jù)本發(fā)明的另一實施例的媒體串流系統(tǒng)100的另一操作方法(圖3中所示的方法300)。應(yīng)當注意,圖3示出了示例方法,并且在不脫離本發(fā)明的范圍的情況下可以改變步驟的順序。該方法還可以包括更少或更多數(shù)量的步驟。
在步驟305,裝置105接收播放包括一組媒體片段的媒體內(nèi)容的請求。在步驟310,媒體定位器單元115確定與所請求的媒體內(nèi)容有關(guān)的元數(shù)據(jù)是否存儲在裝置105的存儲器中,例如在本地媒體存儲器125中。如果不是,則在步驟315,媒體定位器單元115從媒體服務(wù)器155(或者任何數(shù)量的媒體服務(wù)器155、156和157,如果所述元數(shù)據(jù)存儲在多個服務(wù)器上)。如果元數(shù)據(jù)已經(jīng)存儲在裝置105中,則媒體定位器單元115從存儲器中提取元數(shù)據(jù)。一個或多個元數(shù)據(jù)文件包含視頻片段的簡要描述,并且對于每個片段,包含相應(yīng)視頻片段加密密鑰的位置。
一旦獲得了元數(shù)據(jù)文件,在步驟320,媒體定位器單元115確定媒體片段是否存儲在本地媒體存儲器125中。如果沒有,則在步驟325,媒體定位器單元115從媒體服務(wù)器155(或者從多個媒體服務(wù)器155、156和157,如果媒體片段分布在多個服務(wù)器上)下載(加密的)媒體片段。一旦媒體片段被下載,在步驟326,裝置105使用裝置特定的或基于裝置的加密密鑰來加密媒體片段??梢允褂帽绢I(lǐng)域中已知的技術(shù)在裝置105處生成裝置特定的加密密鑰。因為媒體片段已經(jīng)被加密,所以(已經(jīng)加密的)媒體片段的加密導致雙重加密的媒體片段。注意,如果在步驟320發(fā)現(xiàn)媒體片段存儲在本地媒體存儲器125中,則媒體片段將已經(jīng)經(jīng)歷了該雙重加密。一旦發(fā)生了基于裝置的加密,雙重加密的媒體片段可以存儲在本地媒體存儲125中以備將來使用。媒體片段的這種雙重加密確保了想要播放媒體片段的任何未認證裝置將不能這樣做,因為它們不具有用于加密媒體片段的相同的裝置特定的加密密鑰。
在步驟330,元數(shù)據(jù)被更新以指向本地存儲的用于由媒體播放器110回放的雙重加密的媒體片段。為了實現(xiàn)雙重加密的媒體片段的回放,在步驟335,裝置105使用裝置特定加密密鑰來解密雙重加密的媒體片段,以便再現(xiàn)加密的媒體片段。在步驟340,客戶端安全代理120從認證證書服務(wù)器145(其也可以稱為訪問控制服務(wù)器)請求認證令牌。所請求的認證令牌從認證證書服務(wù)器145發(fā)送到裝置105。在步驟350,裝置105使用元數(shù)據(jù)來確定媒體片段加密密鑰在密鑰服務(wù)器150中的位置。認證令牌允許裝置105在密鑰服務(wù)器150上認證。通過使用認證令牌和元數(shù)據(jù),裝置105從密鑰服務(wù)器150請求必要的媒體片段加密密鑰,并接收返回的所述密鑰。最后,在步驟360,裝置105使用媒體片段加密密鑰來完全解密加密的媒體片段。完全解密后,媒體片段現(xiàn)在準備好在媒體播放器110上回放。
注意,如果在本地媒體存儲器125中沒有找到所請求的媒體片段,則該過程可以以在線串流傳輸模式操作,由此媒體片段被連續(xù)地下載(步驟325)、雙重加密(步驟336)、存儲在本地媒體存儲器、并且被雙重解密用于回放(步驟335-360)?;蛘撸陬A下載模式中,所請求的媒體片段可能已經(jīng)被存儲在本地媒體存儲器125中,在這種情況下不需要下載,并且也不需要雙重加密,因為存儲的媒體片段已經(jīng)預先下載。如果媒體片段存在于裝置105的存儲器中,但裝置105不是原始的下載裝置,例如,媒體片段已經(jīng)從另一個裝置復制,然后當媒體播放器嘗試解密媒體片段時,將會失敗,因為它不能產(chǎn)生由原始下載裝置產(chǎn)生的相同的裝置特定的加密密鑰。
裝置105還可以以混合模式操作,由此一些媒體片段預先下載在啊啊裝置的存儲器上,并且一些媒體片段在裝置存儲器上未找到。在這種情況下,該方法沿著圖3的串流程圖的兩個分支操作。
媒體定位器單元115可以在運行時切換模式,例如從混合模式到預下載模式或從在線串流模式到混合模式等,而不影響回放。
在具有多核處理器的裝置上,可以針對不同的媒體片段并行運行不同的步驟。
雖然已經(jīng)結(jié)合各種實施例描述了本發(fā)明,但是應(yīng)當理解,本發(fā)明不限于這些實施例,并且這些實施例的改變、修改和變化可以由本領(lǐng)域技術(shù)人員執(zhí)行而不脫離本發(fā)明的范圍。例如,媒體定位器單元和客戶端安全代理可以實現(xiàn)為被設(shè)置在計算機或處理器上運行的軟件,所述計算機或處理器被配置為執(zhí)行所述軟件。