不可信的框架組件與安全操作系統(tǒng)環(huán)境的整合的制作方法
【專利摘要】本發(fā)明提供了一種不可信的框架組件與安全操作系統(tǒng)環(huán)境的整合。例如,軟件框架可以包括由具有安全內(nèi)核的底層Linux操作系統(tǒng)環(huán)境支持的Android框架。根據(jù)性能和分離需求,軟件框架可以使用各種進(jìn)程分離技術(shù)來執(zhí)行。還可以設(shè)置安全訪問客戶端/服務(wù)器接口,以支持不可信的軟件框架(以及使用不可信的軟件框架的應(yīng)用程序)和裝置的安全和可信部分之間的交互。安全訪問接口可以配置為執(zhí)行各種操作,諸如處理驗(yàn)證、堆的指針驗(yàn)證、非指針參數(shù)驗(yàn)證、堆的分離、以及與未使用的資源相關(guān)的資源釋放。在進(jìn)一步的實(shí)施方式中,使用軟件框架聚合器來支持用于機(jī)頂盒的多個(gè)額外軟件框架。
【專利說明】不可信的框架組件與安全操作系統(tǒng)環(huán)境的整合
[0001]相關(guān)專利申請(qǐng)的交叉參考
[0002]本專利申請(qǐng)要求以下申請(qǐng)的優(yōu)先權(quán),其全部?jī)?nèi)容全面地結(jié)合于此作為參考并構(gòu)成本專利申請(qǐng)的一部分:美國(guó)臨時(shí)專利申請(qǐng)第61/715,785號(hào),第61/725,964號(hào),61/725,790號(hào),以及美國(guó)專利申請(qǐng)第13/715,395號(hào)。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明總體上涉及處理系統(tǒng),并且更具體地,涉及在諸如機(jī)頂盒的裝置中不可信的框架或路徑與安全操作系統(tǒng)環(huán)境的安全整合。
【背景技術(shù)】
[0004]將相對(duì)不可信的軟件應(yīng)用程序或框架配置在特定類型裝置中的嘗試會(huì)使依照一個(gè)或多個(gè)行業(yè)定義的認(rèn)證標(biāo)準(zhǔn)或測(cè)試程序執(zhí)行的可適用的認(rèn)證過程變得復(fù)雜。例如,通過嚴(yán)格的認(rèn)證過程進(jìn)行由有線運(yùn)營(yíng)商使用的許多機(jī)頂盒的廠商認(rèn)證,該認(rèn)證過程測(cè)試實(shí)現(xiàn)諸如DOCSIS?、PacketCableTM、CableHome?、和OpenCable?規(guī)范的裝置的互操作性和和安全合規(guī)性。這種裝置的成功認(rèn)證通常需要完整的端到端安全性。類似地,在特定裝置或組件(諸如片上系統(tǒng))中實(shí)現(xiàn)的數(shù)字版權(quán)管理(DRM)和其他技術(shù)可能要求不同的認(rèn)證過程,該認(rèn)證過程不允許與非安全操作系統(tǒng)(OS)環(huán)境或軟件框架的某些交互。
[0005]一般地,如果機(jī)頂盒或類似裝置中的媒體路徑的非安全部分不是分離的,將會(huì)導(dǎo)致這種路徑的認(rèn)證失敗。大部分傳統(tǒng)機(jī)頂盒被設(shè)計(jì)為在裝置的各種元件中提供單個(gè)的安全及認(rèn)證路徑。在一些近期的多處理器機(jī)頂盒中,通過在傳統(tǒng)認(rèn)證的路徑和不可信的組件之間創(chuàng)建硬件界限,將二者隔開。特別地,使用第一處理模塊來提供安全功能(例如,解碼操作),同時(shí)使用具有較低安全級(jí)別的單獨(dú)處理模塊來支持不可信的框架。
[0006]眾所周知,軟件框架可以提供應(yīng)用程序編程接口功能和服務(wù)(這些未由底層操作系統(tǒng)提供),從而可以在【具體實(shí)施方式】中提供一定級(jí)別的平臺(tái)獨(dú)立性??蚣芡ǔ1辉O(shè)計(jì)成可重復(fù)使用并且是適用性的軟件系統(tǒng)或子系統(tǒng)。例如,對(duì)于移動(dòng)裝置,安卓(Android)已經(jīng)成為增長(zhǎng)最快的操作系統(tǒng)/框架之一。建立在開源Linux社區(qū)的貢獻(xiàn)之上的Android為構(gòu)建可以在許多不同類型的裝置(諸如智能電話或平板裝置)中部署的應(yīng)用程序提供了開發(fā)工具和可重復(fù)使用的組件。
[0007]典型的Android框架是“多用戶”的基于Linux的系統(tǒng),其中,每個(gè)Android應(yīng)用程序都是具有通常與其他應(yīng)用程序分離運(yùn)行的代碼的不同“用戶”。這種進(jìn)程分離(或應(yīng)用程序“砂箱”)提供了一定的安全等級(jí)。然而,當(dāng)集成在機(jī)頂盒類型裝置中時(shí),應(yīng)用程序所使用的各種組件、進(jìn)程、線程等可能沒有帶來足夠的保護(hù),導(dǎo)致當(dāng)在這種裝置中使用Android時(shí),其被認(rèn)為是“不可信”框架。例如,訪問任意網(wǎng)頁(yè)或從未驗(yàn)證的第三方接收代碼的應(yīng)用程序會(huì)導(dǎo)致可能以提高的權(quán)限在機(jī)頂盒上執(zhí)行的不可信的JavaScript代碼。這種代碼可能會(huì)利用其他代碼(例如,瀏覽器代碼)的弱點(diǎn),并且接收對(duì)文件系統(tǒng)等的未經(jīng)授權(quán)的訪問,從而損害裝置的安全性、暴露受保護(hù)的數(shù)據(jù)或引入系統(tǒng)不穩(wěn)定性。[0008]如上所述,一些裝置的處理單元可能具有多個(gè)處理器或處理核,以提供更高的性能和/或多任務(wù)能力。在這些多處理器系統(tǒng)的一些中,當(dāng)運(yùn)行多個(gè)應(yīng)用或程序時(shí),通常需要訪問控制,以分離在多個(gè)處理器上運(yùn)行的應(yīng)用程序的功能。對(duì)于在不同處理器上運(yùn)行的不同應(yīng)用程序和/或任務(wù)的分離或隔離有助于確保一個(gè)應(yīng)用程序不會(huì)干擾另一應(yīng)用程序的執(zhí)行。類似地,分配給一個(gè)處理器的數(shù)據(jù)不應(yīng)當(dāng)被其他處理器訪問,除非該數(shù)據(jù)在這兩個(gè)處理器之間共享。通常通過使用虛擬內(nèi)存來處理這種分離,每個(gè)進(jìn)程都有從外部進(jìn)程不可訪問的唯一內(nèi)存視圖。通過內(nèi)核或裝置驅(qū)動(dòng)器接口,可以處理硬件訪問,這提供了一定程度的安全性。然而,即使在其中一個(gè)處理器環(huán)境提供可信或安全的操作而另一處理器在非安全或受限環(huán)境中運(yùn)行的多處理器系統(tǒng)中,當(dāng)操作系統(tǒng)正管理該分離時(shí),也存在著從非安全區(qū)侵入到安全區(qū)的極大可能性。
[0009]例如,在允許用戶接收電視信號(hào)并且還允許用戶訪問互聯(lián)網(wǎng)的機(jī)頂盒中,安全環(huán)境可以運(yùn)行涉及由有線或衛(wèi)星提供商或其他服務(wù)運(yùn)營(yíng)商提供的特定頻道或內(nèi)容的接收、解密、以及顯示的應(yīng)用程序(包括安全機(jī)頂盒應(yīng)用程序)。機(jī)頂盒中的非安全環(huán)境可能執(zhí)行應(yīng)用程序(諸如基于Android的應(yīng)用程序),其允許用戶訪問互聯(lián)網(wǎng)進(jìn)行頁(yè)面瀏覽、游戲等。在該實(shí)例中,內(nèi)容提供商通常不希望用戶或其他任何人訪問涉及廣播或付費(fèi)頻道的應(yīng)用程序。然而,如果在控制對(duì)這兩個(gè)環(huán)境的訪問的軟件中有共同性,諸如運(yùn)行相同的操作系統(tǒng)來管理在兩個(gè)環(huán)境中的訪問,則訪問違規(guī)的風(fēng)險(xiǎn)可能加劇。這種違規(guī),無論是有意的或無意的,都會(huì)導(dǎo)致非安全地觸犯機(jī)頂盒中的安全應(yīng)用程序,諸如到受保護(hù)電視頻道的源自網(wǎng)絡(luò)的侵入。
[0010]因此,需要獲得一種有效的方法將不可信的框架、框架組件、和應(yīng)用程序與安全操作系統(tǒng)環(huán)境(諸如機(jī)頂盒裝置的安全操作系統(tǒng)環(huán)境)整合。
【發(fā)明內(nèi)容】
[0011]根據(jù)本發(fā)明的一個(gè)方面,提供了一種媒體處理裝置,具有用于執(zhí)行媒體傳遞操作的軟件和硬件資源,所述媒體處理裝置包括:安全操作系統(tǒng)環(huán)境;支持至少一個(gè)應(yīng)用程序的軟件框架;以及安全訪問接口,被配置為調(diào)節(jié)所述安全操作系統(tǒng)環(huán)境與所述軟件框架之間的通信,并且被配置為提供對(duì)所述軟件和硬件資源的至少一部分的受限訪問。
[0012]優(yōu)選地,所述安全訪問接口被配置為針對(duì)經(jīng)由所述軟件框架執(zhí)行的應(yīng)用程序利用進(jìn)程分離。
[0013]優(yōu)選地,所述安全訪問接口執(zhí)行從由以下各項(xiàng)組成的組中選擇的至少一個(gè)操作:處理驗(yàn)證、堆指針驗(yàn)證、非指針參數(shù)驗(yàn)證、堆分離、以及與未使用的資源相關(guān)的資源釋放。
[0014]優(yōu)選地,所述安全訪問接口包括安全訪問服務(wù)器和安全訪問客戶端,所述安全訪問服務(wù)器并入所述安全操作系統(tǒng)環(huán)境中或者被執(zhí)行作為安全內(nèi)核模塊,并且所述安全訪問客戶端并入所述軟件框架中。
[0015]優(yōu)選地,其中,所述安全訪問服務(wù)器與所述安全訪問客戶端之間的通信至少部分地通過進(jìn)程間通信調(diào)用發(fā)生。
[0016]優(yōu)選地,其中,所述安全操作系統(tǒng)環(huán)境包括基于Linux的操作系統(tǒng)內(nèi)核。
[0017]優(yōu)選地,其中,所述軟件框架包括至少一個(gè)版本的Android框架。
[0018]優(yōu)選地,所述媒體處理裝置,被配置為機(jī)頂盒裝置,所述媒體處理裝置進(jìn)一步包括可在用于執(zhí)行媒體傳遞操作的所述安全操作系統(tǒng)環(huán)境中執(zhí)行的機(jī)頂盒應(yīng)用程序,其中,所述機(jī)頂盒應(yīng)用程序與軟件框架之間的通信至少部分地經(jīng)由所述安全訪問接口發(fā)生。
[0019]優(yōu)選地,所述安全操作系統(tǒng)環(huán)境包括特權(quán)操作系統(tǒng)環(huán)境以執(zhí)行安全媒體處理操作,所述安全操作系統(tǒng)環(huán)境進(jìn)一步被配置為建立受限操作系統(tǒng)環(huán)境,所述機(jī)頂盒應(yīng)用程序在所述特權(quán)操作系統(tǒng)環(huán)境中執(zhí)行,并且所述軟件框架在所述受限操作系統(tǒng)環(huán)境中執(zhí)行。
[0020]優(yōu)選地,所述媒體處理裝置,進(jìn)一步包括:軟件框架聚合器,支持多個(gè)額外的軟件框架,所述安全訪問接口進(jìn)一步被配置為調(diào)節(jié)所述安全操作系統(tǒng)環(huán)境與所述軟件框架聚合器之間的通信。
[0021]根據(jù)本發(fā)明的另一方面,提供了一種在具有安全操作系統(tǒng)內(nèi)核和不可信軟件框架的媒體傳遞裝置中使用的方法,包括:建立特權(quán)操作系統(tǒng)環(huán)境,以執(zhí)行所述安全操作系統(tǒng)內(nèi)核支持的安全媒體處理操作;建立受限操作系統(tǒng)環(huán)境,以支持所述不可信軟件框架,所述受限操作系統(tǒng)環(huán)境利用進(jìn)程分離;以及在所述受限操作系統(tǒng)環(huán)境中執(zhí)行所述不可信軟件框架的至少一部分。
[0022]優(yōu)選地,其中,所述安全操作系統(tǒng)內(nèi)核是對(duì)稱多處理的基于Linux的操作系統(tǒng)內(nèi)核。
[0023]優(yōu)選地,其中,所述不可信軟件框架包括至少一個(gè)版本的Android框架。
[0024]優(yōu)選地,所述方法進(jìn)一步包括:設(shè)置安全訪問接口,以調(diào)節(jié)所述特權(quán)操作系統(tǒng)環(huán)境與所述不可信軟件框架的組件之間的交互。
[0025]優(yōu)選地,其中,所述媒體傳遞裝置進(jìn)一步具有機(jī)頂盒應(yīng)用程序,所述安全媒體處理操作通過所述機(jī)頂盒應(yīng)用程序在所述特權(quán)操作系統(tǒng)環(huán)境中執(zhí)行。
[0026]優(yōu)選地,其中,所述媒體傳遞裝置具有第一處理單元和第二處理單元,其中,所述特權(quán)操作系統(tǒng)環(huán)境在所述第一處理單元上執(zhí)行,并且所述受限操作系統(tǒng)環(huán)境在所述第二處理單元上執(zhí)行。
[0027]根據(jù)本發(fā)明的又一方面,提供了一種媒體處理裝置,包括:處理電路;支持軟件應(yīng)用程序的軟件框架;以及由所述處理電路執(zhí)行的操作系統(tǒng),所述操作系統(tǒng)被配置為建立利用進(jìn)程分離的至少一個(gè)受限操作系統(tǒng)環(huán)境,所述軟件框架在所述至少一個(gè)受限操作系統(tǒng)環(huán)境中執(zhí)行。
[0028]優(yōu)選地,所述媒體處理裝置進(jìn)一步包括:用于執(zhí)行安全媒體處理操作的機(jī)頂盒應(yīng)用程序,所述操作系統(tǒng)進(jìn)一步被配置為建立用于執(zhí)行所述機(jī)頂盒應(yīng)用程序的至少一個(gè)特權(quán)操作系統(tǒng)環(huán)境。
[0029]優(yōu)選地,所述媒體處理裝置,依照至少一個(gè)版本的Android框架來實(shí)現(xiàn)所述軟件框架和所述機(jī)頂盒應(yīng)用程序。
[0030]優(yōu)選地,所述媒體處理裝置,進(jìn)一步包括安全訪問接口,以支持所述至少一個(gè)特權(quán)操作系統(tǒng)環(huán)境與所述至少一個(gè)受限操作系統(tǒng)環(huán)境之間的交互。
【專利附圖】
【附圖說明】
[0031]圖1示出了根據(jù)本公開實(shí)施方式的不可信框架和安全操作系統(tǒng)內(nèi)核的整合。
[0032]圖2示出了根據(jù)本公開實(shí)施方式的作為安全操作系統(tǒng)環(huán)境的客戶端的不可信框架的整合。[0033]圖3示出了根據(jù)本公開各實(shí)施方式的作為安全操作系統(tǒng)環(huán)境的客戶端的框架聚合器和不可信框架。
[0034]圖4示出了根據(jù)本公開各實(shí)施方式的作為虛擬環(huán)境中的機(jī)頂盒應(yīng)用程序的客戶端的不可信框架。
[0035]圖5示出了根據(jù)本公開各實(shí)施方式的機(jī)頂盒應(yīng)用程序和使用虛擬容器的不可信框架的并發(fā)操作。
[0036]圖6示出了根據(jù)本公開實(shí)施方式的單處理器環(huán)境中的可信和不可信軟件的整合。
[0037]圖7示出了根據(jù)本公開實(shí)施方式的多處理器環(huán)境中的可信和不可信軟件的整合。
[0038]圖8是根據(jù)本公開各實(shí)施方式的支持操作系統(tǒng)環(huán)境的硬件隔離的多處理器系統(tǒng)的框圖。
[0039]圖9是根據(jù)本公開實(shí)施方式的機(jī)頂盒(STB) /網(wǎng)關(guān)(GW)的示意性框圖。
[0040]圖10是根據(jù)本公開實(shí)施方式的用于支持特權(quán)操作系統(tǒng)環(huán)境(privilegedoperating system environment)與軟件應(yīng)用程序之間的交互的方法的邏輯圖。
【具體實(shí)施方式】
[0041]雖然結(jié)合Android框架和/或Linux操作系統(tǒng)描述【具體實(shí)施方式】,但是本發(fā)明的其他實(shí)施方式可以用各種現(xiàn)有或?qū)淼牟僮飨到y(tǒng)/內(nèi)核和框架來實(shí)施,并且采用可以使用多個(gè)處理器、處理核、和/或處理電路的各種計(jì)算電路、裝置、服務(wù)器、和/或系統(tǒng)。此外,文中的特定實(shí)例在所描述的實(shí)施方式中針對(duì)提供處理功能的裝置描述了處理模塊、處理器、或CPU (例如,CPUl、CPU2)。然而,可以理解,在其他實(shí)施方式中,可以使用各種其他裝置和/或命名規(guī)則,以提供實(shí)踐本發(fā)明時(shí)的處理功能。本發(fā)明可以容易地適用于需要兩個(gè)以上區(qū)之間的分離和/或隔離的存在著多個(gè)處理環(huán)境(區(qū)、域等)的其他用途。類似地,雖然【具體實(shí)施方式】被描述為通過機(jī)頂盒(STB)或執(zhí)行可信媒體處理操作的類似媒體處理裝置來實(shí)現(xiàn),但是該新穎的架構(gòu)和方法可以全部或部分地適用于其他裝置,包括諸如PVR、DVD播放器、接入點(diǎn)、電視、計(jì)算裝置、智能電話等的媒體消費(fèi)裝置。
[0042]圖1示出了根據(jù)本公開實(shí)施方式的安全裝置(諸如認(rèn)證的機(jī)頂盒裝置)104中的不可信框架100 (諸如Android框架)和安全操作系統(tǒng)(OS)內(nèi)核102的整合。一般地,OS內(nèi)核102可以看作是操作系統(tǒng)的中心(或環(huán)0),在系統(tǒng)硬件與該操作系統(tǒng)其余部分及安裝的應(yīng)用程序之間提供接口。
[0043]如以下更全面地描述的,設(shè)置了安全軟件抽象層110,以分離對(duì)裝置的底層軟件、硬件、和安全組件的訪問。經(jīng)由支持應(yīng)用程序編程接口(API)以及安全進(jìn)程間通信(IPC)調(diào)用或內(nèi)核驅(qū)動(dòng)器的安全訪問客戶端106和安全訪問服務(wù)器108組成的安全訪問層或接口,可以進(jìn)行不可信框架100與安全OS內(nèi)核102之間的通信和數(shù)據(jù)交換。在【具體實(shí)施方式】中,安全訪問客戶端106可以是框架100的一部分或者可由框架100訪問,而安全訪問服務(wù)器108并入安全操作系統(tǒng)環(huán)境中或者被執(zhí)行作為安全內(nèi)核模塊。在一個(gè)實(shí)施方式中,(非限定性地)通過用硬件(當(dāng)適用時(shí))執(zhí)行參數(shù)驗(yàn)證/檢查和周邊范圍檢查、處理驗(yàn)證、直接/間接的堆指針驗(yàn)證、堆分離、并在受限進(jìn)程終止后釋放硬件資源,安全訪問接口可以幫助防止由壞數(shù)據(jù)或參數(shù)導(dǎo)致的系統(tǒng)漏洞或不穩(wěn)定。在操作中,安全訪問服務(wù)器108可以限制訪問服務(wù)器側(cè)庫(kù)并且響應(yīng)于客戶端傳遞的無效或非法參數(shù)返回錯(cuò)誤。該安全訪問接口可以進(jìn)一步對(duì)由失控或不穩(wěn)定的客戶保留的免費(fèi)資源執(zhí)行看門狗功能。
[0044]如已經(jīng)提到的,Android為開發(fā)移動(dòng)應(yīng)用程序提供了基于組件的框架。每個(gè)應(yīng)用程序都可以由不同數(shù)量和類型的組件組成。例如,這種組件可以包括形成用戶界面的基礎(chǔ)的“Activity(活動(dòng))”組件,其中,呈現(xiàn)給用戶的每個(gè)畫面都是不同活動(dòng)。后臺(tái)處理由“Service(服務(wù))”組件執(zhí)行,其還定義了用于與其他應(yīng)用程序通信的任意接口。“Content Provider(內(nèi)容提供商)”組件用于共享關(guān)系型數(shù)據(jù)庫(kù)形式的信息,而“Broadcast Receiver (廣播接收器)”組件作為用于來自系統(tǒng)和/或其他組件的消息的異步信箱運(yùn)行。
[0045]根據(jù)所公開的實(shí)施方式的Android框架可以支持應(yīng)用程序之間的不同程度的協(xié)作和依賴。然而,應(yīng)用程序用于向其他應(yīng)用程序或底層操作系統(tǒng)提供服務(wù)和交互的接口必須是安全的,以防范違規(guī)和一般的非法行為。默認(rèn)情況下,典型Android框架中的應(yīng)用程序沒有執(zhí)行可能會(huì)負(fù)面地影響其他系統(tǒng)組件的操作(諸如讀取或?qū)懭胨接袛?shù)據(jù)或其他應(yīng)用程序的文件、執(zhí)行網(wǎng)絡(luò)訪問等)的權(quán)限。由于Android基本上彼此“沙盒處理”應(yīng)用程序,因此,應(yīng)用程序必須通過聲明基本沙盒處理以外的額外能力所需的授權(quán),明確地共享資源和數(shù)據(jù)。例如,應(yīng)用程序可以靜態(tài)地聲明其所需要的授權(quán),并且在安裝時(shí),Android框架可以提示用戶適當(dāng)?shù)耐?。如上面在【背景技術(shù)】的描述中提到的,沒有了剛性硬件分離和獨(dú)立的執(zhí)行環(huán)境,執(zhí)行來自不可信的框架的未經(jīng)授權(quán)的代碼的潛在性可能會(huì)損害整個(gè)系統(tǒng)安全,并且負(fù)面地影響沒有諸如文中描述的那些的方法和架構(gòu)(例如,安全訪問服務(wù)器)的特定裝置的認(rèn)證程序。
[0046]現(xiàn)在參照?qǐng)D2,示出了根據(jù)本公開實(shí)施方式的作為安全操作系統(tǒng)環(huán)境的客戶端的不可信框架202的整合。安全操作系統(tǒng)環(huán)境可以并入諸如機(jī)頂盒或其他媒體處理/消費(fèi)裝置200的安全裝置中。在該實(shí)施方式中,通過利用進(jìn)程分離技術(shù)的安全操作系統(tǒng)環(huán)境來執(zhí)行不可信框架202 (包括其組件,以及不可信應(yīng)用程序204)的執(zhí)行。例如,這種進(jìn)程分離技術(shù)可能涉及使用虛擬地址空間,其中,第一進(jìn)程的地址空間不同于第二進(jìn)程的地址空間。在特定實(shí)現(xiàn)方式(例如,系統(tǒng)策略允許進(jìn)程在諸如共享內(nèi)存或本地套接字的IPC通道上進(jìn)行協(xié)作)中,可以禁止或嚴(yán)格控制進(jìn)程間內(nèi)存訪問。
[0047]經(jīng)由與訪問客戶端206和軟件抽象層API212共同工作運(yùn)行的訪問服務(wù)器208,提供了對(duì)諸如基于Linux的操作系統(tǒng)210的安全或可信根操作系統(tǒng)和/或諸如安全機(jī)頂盒硬件214的底層硬件的訪問。在所示出的實(shí)施方式中,設(shè)置了包括任何必要的軟件補(bǔ)丁的完整的或部分的Linux操作系統(tǒng)實(shí)例216,以支持不可信框架202的執(zhí)行。訪問客戶端206可以進(jìn)一步用于管理不可信框架202和完整的或部分的Linux操作系統(tǒng)實(shí)例216之間的通信。另外,框架202可以包括例如使能可用應(yīng)用程序204 (例如,其可以使用應(yīng)用程序IPC調(diào)用在不可信框架202上執(zhí)行)的可視顯示的API或者一個(gè)或多個(gè)按鈕218。
[0048]圖3示出了根據(jù)本發(fā)明各實(shí)施方式的作為安全操作系統(tǒng)環(huán)境的客戶端的不可信框架308和框架聚合器302。在所示出的實(shí)施方式中,可以采用框架“聚合器” 302,以囊括和擴(kuò)展與各種各樣的框架1-η的操作,以支持各種各樣的(不可信)應(yīng)用程序304。這樣,例如,服務(wù)提供商可以為第三方框架和其他“中間件”產(chǎn)品提供對(duì)系統(tǒng)資源的安全訪問。例如,這種產(chǎn)品可以包括但不限于Adobe Air、Adobe Flash、Apple i0S、Microsoft Silverlight、Java applets、以及類似的并行(side-by-side)技術(shù)。該框架聚合器302可以包括一組定制的操作系統(tǒng)庫(kù)和HTML功能,以支持這種技術(shù)以及用戶接口 Web引擎訪問等。[0049]在【具體實(shí)施方式】中,框架聚合器302支持的用戶接口可以使得用戶能夠發(fā)起不可信框架308所支持的應(yīng)用程序。例如,Android框架308和/或框架聚合器302可以提供一系列API或按鈕314,包括提供可用Android應(yīng)用程序的可視顯示的Android按鈕。此外,Android框架308和框架聚合器302可以共享圖形畫面。這樣,可能沒有必要將端口功能加入到Android框架308中,而這否則可能會(huì)是必要的。值得注意的是,在給定裝置中,可以使用與框架聚合器302支持的其他框架所使用的不同的工具鏈來建立Android框架308,并且支持一組不同的應(yīng)用程序310的執(zhí)行。
[0050]如結(jié)合圖3更全面地描述的,不可信框架308和框架聚合器302由訪問服務(wù)器316、軟件抽象層API318、根Linux操作系統(tǒng)320、底層機(jī)頂盒硬件322、完整的或部分的Linux操作系統(tǒng)實(shí)例324 (包括任何必要的軟件補(bǔ)丁)在所示出的機(jī)頂盒300中被支持。在所示出的實(shí)施方式中,訪問客戶端312使能不可信框架與訪問服務(wù)器316之間的安全通信,而框架聚合器302由訪問客戶端306類似地支持。
[0051]圖4示出了根據(jù)本發(fā)明各實(shí)施方式的作為虛擬化環(huán)境中的機(jī)頂盒應(yīng)用程序(“STB應(yīng)用程序”)404的客戶端的不可信框架402。如圖所示,設(shè)置了 STB應(yīng)用程序404,以執(zhí)行機(jī)頂盒400的基本操作,并且與諸如Android框架402的不可信“客戶端”框架接口。在該實(shí)施方式中,在諸如對(duì)稱多處理(SMP)Linux內(nèi)核環(huán)境406的安全或特權(quán)Linux操作系統(tǒng)內(nèi)核環(huán)境中執(zhí)行STB應(yīng)用程序404,該SMP Linux內(nèi)核環(huán)境406包括安全訪問內(nèi)核驅(qū)動(dòng)器408和包括用于STB應(yīng)用程序404的完整訪問接口 410的訪問服務(wù)器416、以及由Android框架402經(jīng)由訪問客戶端418使用的更受限訪客訪問接口 412。STB應(yīng)用程序404包括訪問客戶端414功能,其支持與完整訪問接口 410的通信,并且使得Android框架402例如使用基于容器的虛擬化能夠作為安全Linux內(nèi)核環(huán)境406的不可信客戶端來運(yùn)行。正如可以理解的,客戶端/服務(wù)器架構(gòu)允許不可信進(jìn)程崩潰或終止,而不會(huì)損害底層硬件以及引起系統(tǒng)不穩(wěn)定。
[0052]除了訪問客戶端418,所示出的實(shí)施方式的Android框架402還可以包括可信/認(rèn)證的和/或不可信的應(yīng)用程序和應(yīng)用程序支持420、JavaScript解釋、瀏覽器功能422、插件(例如,Adobe Flash插件)、以及Dalvik虛擬機(jī)。在一些實(shí)施方式中,認(rèn)證的應(yīng)用程序420可以從服務(wù)運(yùn)營(yíng)商、內(nèi)容提供商、基于云的源等下載或者由其提供。Android框架402進(jìn)一步包括平臺(tái)或操作系統(tǒng)訪問功能424,其實(shí)現(xiàn)通過最小訪客Linux服務(wù)訪問接口 426對(duì)安全Linux內(nèi)核環(huán)境406的必要組件的受限訪問。
[0053]在根據(jù)本發(fā)明的各實(shí)施方式中,可以采用各種虛擬化技術(shù),包括使用在共享操作系統(tǒng)內(nèi)核或單獨(dú)操作系統(tǒng)內(nèi)核上運(yùn)行的虛擬系統(tǒng)的實(shí)施方式??梢愿鶕?jù)所需的分離級(jí)別以及處理和內(nèi)存資源的可用性來選擇具體方式。在所示出的實(shí)施方式中,在第一虛擬機(jī)(VM)訪客Linux容器430 (諸如“LXC”或Linux資源容器)中執(zhí)行不可信Android框架402,以提供與安全進(jìn)程和資源的進(jìn)一步分離。在該實(shí)施方式中,STB應(yīng)用程序可以在具有完整主機(jī)Linux服務(wù)訪問428的第二 VM主機(jī)Linux容器432中類似地運(yùn)行。簡(jiǎn)而言之,一般地,基于容器的虛擬化(或者操作系統(tǒng)級(jí)虛擬化)允許內(nèi)核利用其頂部安裝的多個(gè)分離的虛擬機(jī)或者虛擬環(huán)境來運(yùn)行。每個(gè)虛擬環(huán)境可以專用于運(yùn)行具體應(yīng)用程序,并且通常不是完整的操作系統(tǒng)實(shí)例,而是與主機(jī)操作系統(tǒng)內(nèi)核中以虛擬化層(或硬件資源抽象層)進(jìn)行工作的操作系統(tǒng)的部分實(shí)例。[0054]雖然虛擬化可以緩和對(duì)于不可信組件的硬件分離的需要,但是在特定實(shí)施方式中,具有不同安全級(jí)別的多個(gè)處理器可以從完全經(jīng)由這種處理器中的一個(gè)運(yùn)行的虛擬容積結(jié)構(gòu)受益,而其他容器可以跨多個(gè)處理器(例如,參見圖7中示出的實(shí)施方式)。在一個(gè)這種實(shí)施方式中,第一處理器可以專用于執(zhí)行非安全功能,而第二安全處理器可以專用于常規(guī)STB功能。在各可替換實(shí)施方式中,不可信框架可以是例如經(jīng)由與處理器和/或外設(shè)等分離的非處理器硬件/外設(shè)、內(nèi)存被沙盒處理的硬件。設(shè)想了安全與不可信軟件和硬件之間的各種其他劃分(例如,將不可信框架或應(yīng)用程序本身分成“可信”部分和“不可信”部分),以下描述了其實(shí)例。此外,通過使用硬件和操作系統(tǒng)虛擬化特征,多個(gè)操作系統(tǒng)可以同時(shí)在同一硬件上運(yùn)行。
[0055]圖5分別示出了根據(jù)本公開各實(shí)施方式的機(jī)頂盒應(yīng)用程序502和使用虛擬容器506和508的不可信客戶端應(yīng)用程序/框架504的并發(fā)操作。在所示出的實(shí)施方式中,通過應(yīng)用程序IPC調(diào)用和訪問最小“訪客”Linux服務(wù)訪問516的訪問最小客戶端512,不可信客戶端應(yīng)用程序和框架與底層機(jī)頂盒平臺(tái)(包括機(jī)頂盒應(yīng)用程序502、認(rèn)證的(運(yùn)營(yíng)商提供的)應(yīng)用程序526、以及安全Linux內(nèi)核環(huán)境510)的安全部分交互。類似地,可信用戶模式(或者“特權(quán)”)操作系統(tǒng)環(huán)境中的應(yīng)用程序經(jīng)由訪問客戶端514接收對(duì)“主機(jī)”Linux服務(wù)訪問518的完全訪問??尚诺挠脩裟J江h(huán)境可以由完整主機(jī)根文件系統(tǒng)520支持,而單獨(dú)部分或盤上的最小訪客根文件系統(tǒng)522可以支持不可信用戶模式(或“受限”)操作系統(tǒng)環(huán)境。
[0056]在一些實(shí)施方式中,機(jī)頂盒平臺(tái)的特定資源,諸如媒體處理和硬件加速資源(用語音頻/視頻編碼和解碼、使用標(biāo)準(zhǔn)API (諸如開放圖形庫(kù)或“OpenGL”)的2D和3D圖形渲染、DRM、加密/解密等)和網(wǎng)絡(luò)接口,可以由不可信客戶端應(yīng)用程序/框架504通過網(wǎng)絡(luò)套接字通信的IPC調(diào)用來訪問。類似地,諸如IR控制信號(hào)的事件可以通過IPC調(diào)用(諸如至Android API或按鈕的調(diào)用)從機(jī)頂盒平臺(tái)通信到不可信客戶端應(yīng)用程序/框架504。在所示出的實(shí)施方式中,可以采用諸如如上所述的框架聚合器524,以囊括并擴(kuò)展與各種各樣的框架的操作。
[0057]在可替換實(shí)施方式中,在一個(gè)或多個(gè)分離的虛擬機(jī)容器中執(zhí)行(Android)框架、web瀏覽器等的可信部分、以及相應(yīng)的不可信部分??尚挪糠挚梢园ò踩脚_(tái)和操作系統(tǒng)訪問接口。使用涉及web瀏覽器的實(shí)例,瀏覽器中潛在地執(zhí)行非安全Flash或JavaScript代碼的那部分(諸如,渲染引擎)可以在具有受限文件系統(tǒng)和外設(shè)訪問的“不可信”虛擬機(jī)容器中執(zhí)行,而瀏覽器中能夠訪問底層平臺(tái)硬件和敏感操作系統(tǒng)資源的那部分可以在一個(gè)或多個(gè)“可信”虛擬機(jī)容器中執(zhí)行。在進(jìn)一步的實(shí)施方式中,可信部分可以包括框架的安全克隆、或者支持安全應(yīng)用程序和/或應(yīng)用程序的安全部分的框架的修改版本。在這種實(shí)施方式中,其非安全應(yīng)用程序或部分可以由駐留在不可信或受限用戶域或容器中的框架部分執(zhí)行??梢圆捎锰幚矸蛛x和硬件沙盒處理的各種方法,以進(jìn)一步分離框架的不可信部分以及支持受限操作系統(tǒng)環(huán)境。
[0058]在根據(jù)本公開的進(jìn)一步實(shí)施方式中,機(jī)頂盒或其他安全架構(gòu)可以使用能夠以與行業(yè)標(biāo)準(zhǔn)認(rèn)證過程一致的方式執(zhí)行的認(rèn)證的應(yīng)用程序。例如,該認(rèn)證的應(yīng)用程序可以從由服務(wù)運(yùn)營(yíng)商或基于云的源提供的認(rèn)證的應(yīng)用程序目錄預(yù)安裝或下載。例如,這種應(yīng)用程序可以包括媒體流應(yīng)用程序(例如,Netflix)、游戲應(yīng)用程序、web瀏覽應(yīng)用程序、基于iSO的應(yīng)用程序、Android應(yīng)用程序等。在一些實(shí)施方式中,可能有必要并入或下載額外的操作系統(tǒng),以支持對(duì)應(yīng)類別的認(rèn)證的應(yīng)用程序??商鎿Q地,可以使得給定應(yīng)用程序的不同認(rèn)證版本可用,以支持各種安裝的操作系統(tǒng)和/或框架。可以在一個(gè)或多個(gè)虛擬機(jī)容器中執(zhí)行認(rèn)證的應(yīng)用程序。
[0059]在另一示例性實(shí)施方式中,將主機(jī)頂盒應(yīng)用程序構(gòu)造成在一個(gè)或多個(gè)虛擬機(jī)容器中執(zhí)行的Android應(yīng)用程序。如同框架一樣,機(jī)頂盒應(yīng)用程序可以分成可信部分和不可信部分。根據(jù)底層Android框架的能力,可能要求非標(biāo)準(zhǔn)API或庫(kù)來支持特定機(jī)頂盒功能,諸如PVR、畫中畫、轉(zhuǎn)碼、和頻道調(diào)整操作。此外,該方法可能要求特殊的接口連接(例如,將串傳遞到接口,以創(chuàng)建編碼路徑作為硬件調(diào)用的一部分)或者提供非標(biāo)準(zhǔn)功能(甚至應(yīng)用程序),以處理在相關(guān)框架中缺乏或者認(rèn)證所需的服務(wù)和功能。例如,通過提供“隱藏”在Android端口層下面并接收和解釋通過這種層傳遞的唯一資源標(biāo)示符(URI)的服務(wù),Android框架可以擴(kuò)展為包括非標(biāo)準(zhǔn)功能,而不會(huì)負(fù)面地影響兼容性。
[0060]在其他實(shí)施方式中,所下載(或者預(yù)安裝)的每個(gè)應(yīng)用程序都包括完整的安全性定義,而不是通過資源來管理或者通過內(nèi)容本身(或相關(guān)元數(shù)據(jù))來定義端到端安全性定義。例如,每個(gè)應(yīng)用程序都可以有其自身的可下載有條件的訪問安全(dCAS)或可下載的DRM元件/定義。例如,對(duì)應(yīng)的認(rèn)證過程可能涉及認(rèn)證總體安全路徑的一部分,其中,一個(gè)或多個(gè)應(yīng)用程序提供認(rèn)證的最終部分??商鎿Q地,可以提供預(yù)定義的多個(gè)有條件的訪問機(jī)制,(下載的)應(yīng)用程序定義將使用哪種機(jī)制。然后,可以認(rèn)證安全“界限”,而不考慮具體公司或媒體的有條件的訪問需求。
[0061]在各實(shí)施方式中,機(jī)頂盒或類似裝置可以與媒體消費(fèi)網(wǎng)絡(luò)中的其他裝置(例如,PVR, DVD播放器、接入點(diǎn)、電視、計(jì)算裝置、智能電話等)交換能力,以比較應(yīng)用程序的需求。一旦完成此操作,如果有的話,應(yīng)用程序可以選擇其將會(huì)允許操作的哪些一個(gè)或多個(gè)模式。如果機(jī)頂盒不能支持這種模式(由于資源競(jìng)爭(zhēng)或其他所致),則這種模式變得不可用。如果可用,則可以選擇一組操作模式并且在媒體流傳遞期間將其動(dòng)態(tài)地切換到運(yùn)作中的其他這種模式,這可能需要與應(yīng)用程序或源協(xié)調(diào),以支持該過渡(可能要求媒體流中的質(zhì)量變化)。
[0062]圖6示出了根據(jù)本公開實(shí)施方式的單個(gè)處理器(CPUl)環(huán)境中的可信與不可信軟件的整合。在該實(shí)施方式中,SMP Linux內(nèi)核600用于控制硬件,并且基于性能和/或安全分離需求,將訪客虛擬機(jī)602 (支持Linux的“訪客”實(shí)例并且運(yùn)行認(rèn)證和/或不可信的應(yīng)用程序)和主機(jī)虛擬機(jī)604 (運(yùn)行可信的應(yīng)用程序核心服務(wù))鎖定到一個(gè)或多個(gè)單獨(dú)的CPU線程。
[0063]在Linux中,“進(jìn)程”一般指由內(nèi)核600追蹤用于執(zhí)行的任務(wù)。諸如Linux的操作系統(tǒng)中的進(jìn)程可以與其他進(jìn)程以及內(nèi)核600分離。例如,進(jìn)程通常不能訪問內(nèi)核內(nèi)存。眾所周知,Linux處理還可以使用多執(zhí)行線程,其中,每個(gè)線程都共享初始化處理的資源但是具有單獨(dú)的指令指針。
[0064]在一個(gè)實(shí)施方式中,當(dāng)要求最大性能時(shí),SMP Linux內(nèi)核600可以執(zhí)行針對(duì)跨多個(gè)(PU線程或核的兩個(gè)虛擬機(jī)中的進(jìn)程的負(fù)載均衡。此外,如果行為不當(dāng)或受損,則具有訪客虛擬機(jī)602控制的主機(jī)虛擬機(jī)604可以終止并重啟訪客虛擬機(jī)602 (或者整個(gè)虛擬機(jī))中的進(jìn)程。通過訪客虛擬機(jī),可以對(duì)CPU使用設(shè)置硬限制,以防止核心底層裝置功能的中斷,并且便于終止失控的進(jìn)程。在操作中,單獨(dú)的線程可以具有到Ι/D緩存606和L2緩存608的分離和/或受限訪問。[0065]圖7示出了根據(jù)本公開實(shí)施方式的多處理器系統(tǒng)中的可信與不可信軟件的整合。所示出的系統(tǒng)可以在裝置、模塊、板等中實(shí)施。該系統(tǒng)的一個(gè)或多個(gè)組件還可以在集成電路芯片或多個(gè)集成電路芯片上實(shí)現(xiàn)。圖7的【具體實(shí)施方式】示出了分別標(biāo)識(shí)為CPUl和CPU2的兩個(gè)處理模塊。雖然示出了兩個(gè)處理模塊,但是其他實(shí)施方式可以具有多于兩個(gè)的處理模塊或處理器,并且應(yīng)當(dāng)指出的是,CPUl和CPU2可以由各種處理裝置、電路等組成。在一個(gè)實(shí)施方式中,CPUl和CPU2可以由單個(gè)CPU或一些其他處理電路的不同處理核組成。
[0066]更具體地參考附圖,SMP Linux內(nèi)核700用于控制硬件,并且基于性能和/或安全分離需求,將Linux的訪客虛擬機(jī)702實(shí)例(運(yùn)行認(rèn)證和/或不可信的應(yīng)用程序)和主機(jī)虛擬機(jī)704 (運(yùn)行可信的應(yīng)用程序核心服務(wù))鎖定到一個(gè)或多個(gè)單獨(dú)的線程1-4。例如,不可信的應(yīng)用程序可以在跨CPUl和CPU2的虛擬機(jī)容器中執(zhí)行。如以下更全面地描述的,可以將Ι/D緩存706和708以及L2緩存710的各個(gè)部分限制到特定線程或CPU,或者與適當(dāng)?shù)谋U洗胧┕叉凇?br>
[0067]圖8是根據(jù)本公開各實(shí)施方式的支持操作系統(tǒng)環(huán)境的硬件分離的另一多處理器系統(tǒng)的框圖。例如,第一處理器CPUl可以專用于常規(guī)STB功能并且支持安全訪問服務(wù)器800,而第二處理器(web) CPU2可以專用于執(zhí)行非安全功能和不可信的應(yīng)用程序(例如,Android框架客戶端802或web瀏覽器)。CPUl支持的可信執(zhí)行環(huán)境可以限制對(duì)特定核心STB功能(包括硬件加速塊804、DRM功能806等)的訪問。
[0068]在一個(gè)實(shí)施方式中,當(dāng)在“沙盒處理”模式中時(shí),CPUl和CPU2都被分離成單獨(dú)且不同的區(qū)。在另一實(shí)施方式中,可信CPUl被設(shè)置為具有其自身的分離的內(nèi)存區(qū)域并且還對(duì)CPU2的內(nèi)存映射部分的一些或所有地址范圍有訪問權(quán)限。一般地,當(dāng)在分離或隔離的區(qū)、環(huán)境、或域中運(yùn)行時(shí),兩個(gè)CPU對(duì)不同的應(yīng)用程序進(jìn)行操作,使得CPUl執(zhí)行一組指令,而CPU2執(zhí)行一組不同的指令。這種性質(zhì)的分離或隔離通常稱為沙盒處理或沙盒模式。大多數(shù)沙盒處理的目的在于防止一個(gè)區(qū)訪問其他區(qū)中的功能,或者具有一個(gè)區(qū)到另一個(gè)區(qū)的受控訪問。在一些情況下,兩個(gè)區(qū)都可以對(duì)于訪問其他區(qū)受到限制或者在區(qū)之間僅具有受控訪問。在一些應(yīng)用程序中,一個(gè)區(qū)可以看作是安全、特權(quán)、或可信區(qū),而另一個(gè)看作是受限、非安全、或不可信區(qū),其中,在非安全區(qū)上運(yùn)行的應(yīng)用程序的訪問被禁止或控制訪問在安全區(qū)中運(yùn)行的特定應(yīng)用程序。
[0069]如上面指出的,多個(gè)裝置使用多個(gè)處理器或處理核來運(yùn)行單獨(dú)的程序、應(yīng)用程序等。在一個(gè)區(qū)不能訪問第二個(gè)區(qū)的情況下,確保這種分離的一種方法是通過檢查對(duì)系統(tǒng)內(nèi)存的訪問。即,通過確保分配到CPUl的訪問不被CPU2訪問(除非訪問位置是共享位置),可以防止CPU2上運(yùn)行的應(yīng)用程序突破該功能分離。實(shí)現(xiàn)該保護(hù)的一種方法是提供訪問檢查和訪問控制,以確保正確的處理模塊訪問用于該處理模塊的允許位置。在所示出的實(shí)施方式中,CPUl和CPU2可以通過網(wǎng)絡(luò)套接字、IPC調(diào)用等直接通信。
[0070]圖9是根據(jù)本公開實(shí)施方式的機(jī)頂盒(STB)/網(wǎng)關(guān)(GW)901的示意性框圖。STB/網(wǎng)關(guān)901提供了多個(gè)功能,包括來自外部源的信號(hào)到網(wǎng)絡(luò)裝置可以使用的內(nèi)容的轉(zhuǎn)換。STB/網(wǎng)關(guān)901可以進(jìn)一步操作為網(wǎng)關(guān),其支持網(wǎng)絡(luò)裝置之間的單向或雙向通信和橋接。
[0071]所示出的實(shí)施方式的STB/網(wǎng)關(guān)901經(jīng)由一個(gè)或多個(gè)有線和無線網(wǎng)絡(luò)/鏈接與住宅網(wǎng)絡(luò)基礎(chǔ)設(shè)施905和外部媒體系統(tǒng)907交互。有線和無線網(wǎng)絡(luò)/鏈接可以使用各種傳輸介質(zhì)中的一個(gè)或多個(gè)(諸如同軸電纜、屏蔽雙絞線電纜、光纖電纜、電力線配線、和無線介質(zhì)(射頻、微波、衛(wèi)星、紅外等)),并且依照各種通信和網(wǎng)絡(luò)協(xié)議(TCP/IP、UPnP、IPv6等)運(yùn)行。另外,有線和無線網(wǎng)絡(luò)/鏈路可以包括使用生成樹協(xié)議、直接無線連接、對(duì)等鏈接等的多跳網(wǎng)絡(luò)。
[0072]外部媒體系統(tǒng)907例如可以包括電纜、衛(wèi)星、和/或地面電視系統(tǒng)中的一個(gè)或多個(gè)。這些系統(tǒng)可以使用各種前端設(shè)備和服務(wù),諸如接收電視信號(hào)用于進(jìn)一步處理和發(fā)布的有線前端,并且可以提供諸如互聯(lián)網(wǎng)連接和VoIP服務(wù)的各種其他服務(wù)。
[0073]所示出的實(shí)施方式的STB/網(wǎng)關(guān)901包括廣播/單播/多播前端913,該前端進(jìn)行操作以從外部媒體系統(tǒng)907或住宅網(wǎng)絡(luò)基礎(chǔ)設(shè)置905接收未經(jīng)壓縮或壓縮的數(shù)字視頻、數(shù)字音頻、或其他數(shù)據(jù)信號(hào),用于進(jìn)一步處理和發(fā)布。前端193包括可操作地分離特定信道的調(diào)諧器電路919a。來自調(diào)諧器電路919a的信號(hào)然后被提供到模擬數(shù)字(ADC)電路920a和解調(diào)電路921a用于轉(zhuǎn)換成二進(jìn)制格式/流。一旦處于二進(jìn)制格式,前向誤差校正(FEC)電路922a檢查所接收的二進(jìn)制流的完整性。可以將從二進(jìn)制流提取的音頻、視頻、和數(shù)據(jù)然后被解碼(例如,通過解碼925)為適于下游裝置使用的格式。值得注意的是,解調(diào)電路921a可以支持一個(gè)或多個(gè)調(diào)制技術(shù),諸如正交相移鍵控(QPSK)、正交幅度調(diào)制(QAM)、編碼正交頻分復(fù)用(COFDM)等。
[0074]前端913可以集成到一個(gè)或多個(gè)半導(dǎo)體裝置中,該半導(dǎo)體裝置例如可以進(jìn)一步支持交互式數(shù)字電視、網(wǎng)絡(luò)DVR功能、通過DOCSIS應(yīng)用程序的IP視頻、以及3D圖形支持。另外,可以設(shè)置多個(gè)調(diào)諧器電路919a (包括帶內(nèi)和帶外調(diào)諧器)、ADC電路920a、和解調(diào)電路921a,用于不同的調(diào)制機(jī)制和電視標(biāo)準(zhǔn)(諸如PAL、NTSC、ATSC、SECAM、DVB-C, DVB-T⑵、DVB-H、ISDB、T-DMB、Open Cable)。
[0075]在本公開的一個(gè)可替換實(shí)施方式中,STB/網(wǎng)關(guān)901的功能由智能電話或移動(dòng)計(jì)算裝置執(zhí)行。在該實(shí)施方式中,“前端”913包括諸如蜂窩(3G、4G、MT-Advanced等)的一個(gè)或多個(gè)無線接口(包括PHY和基帶功能)或廣域網(wǎng)絡(luò)(HetNet、Wi_F1、WiMax等)接口。接口可以支持一個(gè)或多個(gè)調(diào)制和復(fù)用技術(shù),諸如OFDM、OFDMA, SC-FDMA, QPSK, QAM、64QAM、CSMA,MIMO等。在所示出的實(shí)施方式中,無線接口包括收發(fā)器919b、模擬數(shù)字(ADC)和數(shù)字模擬(DAC)電路920b、解調(diào)和調(diào)制電路921b和FEC (諸如turbo碼和LDPC碼)電路922b??梢酝ㄟ^處理電路和存儲(chǔ)器911提供編碼、解碼、和譯碼925功能。
[0076]STB/網(wǎng)關(guān)901還包括用于與住宅網(wǎng)絡(luò)基礎(chǔ)設(shè)施905和/或外部媒體系統(tǒng)907通信的(廣域網(wǎng)絡(luò))接口電路915。通過通信接口電路915,STB/網(wǎng)關(guān)901可以直接與上游資源通信,或者在耦接至STB/網(wǎng)關(guān)901的這種資源和裝置(例如,裝置941-949)之間提供(雙向)橋接通信。
[0077]在圖9的實(shí)施方式中,STB/網(wǎng)關(guān)901經(jīng)由通信接口電路917與各種裝置941-949交互。例如,電視或顯示接口模塊931與(數(shù)字)電視941或其他媒體顯示裝置通信,以中繼電視節(jié)目并使能可用交互媒體服務(wù)。在【具體實(shí)施方式】中,電視或顯示接口模塊931可以包括遠(yuǎn)程用戶接口(RUI)服務(wù)器。類似地,視頻接口 933提供對(duì)音頻系統(tǒng)943的音頻編程或音頻庫(kù)訪問。
[0078]通信接口電路917進(jìn)一步包括用于接收來自遠(yuǎn)程控制945的控制信號(hào)的遠(yuǎn)程控制接口 935。除了傳統(tǒng)遠(yuǎn)程控制操作,遠(yuǎn)程控制945可以進(jìn)一步提供被中繼或映射到相關(guān)消費(fèi)類裝置的語音和/或姿勢(shì)控制信號(hào)。還提供了用戶接口 937,用于與一個(gè)或多個(gè)用戶接口裝置947的通信。游戲接口 939用于提供與游戲系統(tǒng)949的交互通信。例如,這種通信可以涉及社交網(wǎng)絡(luò)的會(huì)員和/或游戲平臺(tái)中的外部選手之間的在線、多選手對(duì)弈。提供了電力管理接口 940功能,以實(shí)現(xiàn)裝置941-949之間的省電操作。
[0079]所示出的實(shí)施方式的STB/網(wǎng)關(guān)901包括處理電路、操作系統(tǒng)和存儲(chǔ)器911 (其組件可以由硬件、軟件、或者其組合組成)、服務(wù)支持923、以及解碼/編碼/轉(zhuǎn)碼功能925,以支持諸如上述的那些網(wǎng)絡(luò)交互。該實(shí)施方式中的服務(wù)支持923包括諸如電力管理927、橋接928、和媒體服務(wù)器-接收器服務(wù)929的各種功能。還可以包括STB/網(wǎng)關(guān)的其他常規(guī)特征。例如,處理電路911可以包括片上系統(tǒng)或提供核心處理器的類似裝置、音頻/視頻解碼器、媒體處理器/DSP、圖形核心、加密/解密核心、自適應(yīng)轉(zhuǎn)碼等。
[0080]圖10是根據(jù)本發(fā)明實(shí)施方式的用于支持媒體處理裝置中的特權(quán)操作系統(tǒng)環(huán)境或內(nèi)核(諸如在認(rèn)證媒體處理裝置或機(jī)頂盒中使用的)與不可信的軟件框架之間的交互的方法1000的邏輯圖。在所示出的實(shí)施方式的步驟1002中,建立了特權(quán)操作系統(tǒng)環(huán)境,以執(zhí)行安全媒體處理操作。例如,可以由可信的機(jī)頂盒應(yīng)用程序來控制這種操作。然后,在步驟1004中(或者與步驟1002結(jié)合),建立受限的操作系統(tǒng)環(huán)境,以支持不可信的軟件框架。在步驟1006中,設(shè)置諸如上述的那些安全訪問接口或?qū)?,以調(diào)節(jié)媒體處理裝置和受限操作系統(tǒng)環(huán)境的安全組件之間的交互。在所示順序的步驟中(其可以以可替換順序執(zhí)行),在步驟1008中,使用一個(gè)或多個(gè)處理分離技術(shù)來執(zhí)行不可信的軟件框架以及附屬軟件應(yīng)用程序的執(zhí)行。
[0081]如文中可能使用的,術(shù)語“基本上”和“大致”為其對(duì)應(yīng)術(shù)語和/或數(shù)據(jù)之間的相關(guān)性提供了業(yè)內(nèi)可接受的公差。這種業(yè)內(nèi)可接受的公差的范圍從小于百分之一到百分之五十,并且對(duì)應(yīng)于但不限于元件值、集成電路處理波動(dòng)、溫度波動(dòng)、上升和下降時(shí)間、和/或熱噪聲。項(xiàng)目之間 的這種相關(guān)性的范圍從百分之幾的差到幅度差。如文中還可能使用的,術(shù)語“可操作地耦接至”、“耦接至”、和/或“耦接”包括項(xiàng)目之間的直接耦接和/或項(xiàng)目之間經(jīng)由干預(yù)項(xiàng)目(例如,該項(xiàng)目包括但不限于組件、元件、電路、和/或模塊)的間接耦接,其中,對(duì)于間接耦接,干預(yù)項(xiàng)目不改變信號(hào)的信息,但是可以調(diào)節(jié)其電流水平、電壓水平、和/或功率水平。如文中可能進(jìn)一步使用的,推斷的耦接(即,其中一個(gè)元件通過推斷耦接至另一元件)包括兩個(gè)項(xiàng)目之間與“耦接至”方式相同的直接或間接耦接。如文中可能會(huì)更進(jìn)一步使用的,術(shù)語“可操作為”或者“可操作地耦接至”指示當(dāng)包括一個(gè)或多個(gè)功率連接、輸入、輸出等的項(xiàng)目被激活時(shí),執(zhí)行其對(duì)應(yīng)功能中的一個(gè)或多個(gè),并且可以進(jìn)一步包括到一個(gè)或多個(gè)其他項(xiàng)目的推斷耦接。如文中可能進(jìn)一步使用的,術(shù)語“與…相關(guān)”包括單獨(dú)項(xiàng)目和/或嵌入在另一項(xiàng)目中的一個(gè)項(xiàng)目的直接和/或間接耦接。如文中可能使用的,術(shù)語“有利地比較”指示提供所需關(guān)系的兩個(gè)以上項(xiàng)目、信號(hào)等之間的比較。例如,當(dāng)所需的關(guān)系是信號(hào)I具有比信號(hào)2大的幅度時(shí),當(dāng)信號(hào)I的幅度大于信號(hào)2的幅度時(shí)或者當(dāng)信號(hào)2的幅度小于信號(hào)I的幅度時(shí),可以實(shí)現(xiàn)有利的比較。
[0082]如文中還可以使用的,術(shù)語“處理模塊”、“模塊”、“處理電路”、和/或“處理單元”
可以是單個(gè)處理裝置或多個(gè)處理裝置。這種處理裝置可以是微處理器、微控制器、數(shù)字信號(hào)處理器、微計(jì)算機(jī)、中央處理單元、場(chǎng)可編程門陣列、可編程邏輯器件、狀態(tài)機(jī)、邏輯電路、模擬電路、數(shù)字電路、和/或基于電路的硬編碼和/或操作指令操控信號(hào)(模擬和/或數(shù)字)的任何裝置。處理模塊、模塊、處理電路、和/或處理單元可以具有相關(guān)內(nèi)存和/或集成內(nèi)存元件,其可以是單個(gè)內(nèi)存裝置、多個(gè)內(nèi)存裝置、和/或處理模塊、模塊、處理電路、和/或處理單元的嵌入電路。這種內(nèi)存裝置可以是只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、易失存儲(chǔ)器、非易失存儲(chǔ)器、靜態(tài)存儲(chǔ)器、動(dòng)態(tài)存儲(chǔ)器、閃存、緩存、和/或存儲(chǔ)數(shù)字信息的任何裝置。值得注意的是,如果處理模塊、模塊、處理電路、和/或處理單元包括一個(gè)以上的處理裝置,則處理裝置可以位于中心(例如,經(jīng)由有線和/或無線總線結(jié)構(gòu)直接耦接在一起)或者位置可以是分布式的(例如,經(jīng)由局域網(wǎng)和/或廣域網(wǎng)的直接耦接的云計(jì)算)。還值得注意的是,如果處理模塊、模塊、處理電路、和/或處理單元經(jīng)由狀態(tài)機(jī)、模擬電路、數(shù)字電路、和/或邏輯電路實(shí)施其功能中的一個(gè)或多個(gè),則存儲(chǔ)對(duì)應(yīng)操作指令的內(nèi)存和/或內(nèi)存元件可以嵌入到包括狀態(tài)機(jī)、模擬電路、數(shù)字電路、和/或邏輯電路的電路中或者其外部。還值得注意的是,內(nèi)存元件可以存儲(chǔ),并且處理模塊、模塊、處理電路、和/或處理單元執(zhí)行與在一個(gè)或多個(gè)附圖中示出的至少一些步驟和/或功能對(duì)應(yīng)的硬編碼的和/或操作指令。這種內(nèi)存裝置或內(nèi)存元件可以包括在制品中。
[0083]以上已經(jīng)借助于示出指定功能的性能及其關(guān)系的方法步驟描述了本發(fā)明。為了便于描述,已經(jīng)任意定義了這些功能構(gòu)造塊和方法步驟的界限和順序。只要能適當(dāng)?shù)貓?zhí)行所指定的功能和關(guān)系,還可以定義可選的界限和順序。因此,這種可選的界限或順序在所要求的本發(fā)明的范圍和精神內(nèi)。此外,為了便于描述,已經(jīng)任意定義了這些功能構(gòu)造塊的界限。只要能適當(dāng)?shù)貓?zhí)行某些重要功能,還可以定義可選的界限。類似地,還可能已經(jīng)任意地定義了流程圖塊,以說明某些重要功能。如果使用的話,還可以另外地定義流程圖塊界限和順序,并且仍然執(zhí)行某些重要功能。功能構(gòu)造塊以及流程圖塊和順序的這種可選定義因此在所要求的本發(fā)明的范圍和精神內(nèi)。本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,文中的功能構(gòu)造塊、以及其他說明性塊、模塊、和組件可以如圖所示的實(shí)施,或者通過離散組件、專用集成電路、執(zhí)行適當(dāng)軟件的處理器等或者其任意組合來實(shí)施。
[0084]還就一個(gè)或多個(gè)實(shí)施方式至少部分地描述了本發(fā)明。本發(fā)明的實(shí)施方式在文中用于說明本發(fā)明、其方面、其特征、其概念、和/或其實(shí)例。體現(xiàn)了本發(fā)明的設(shè)備制品、機(jī)器、和/或進(jìn)程的物理實(shí)施方式可以包括參照文中描述的一個(gè)或多個(gè)實(shí)施方式描述的一個(gè)或多個(gè)方面、特征、概念、實(shí)例等。此外,從附圖到附圖,實(shí)施方式可以包含相同或相似地命名的可以使用相同或不同參考標(biāo)號(hào)的功能、步驟、模塊等,這樣,功能、步驟、模塊等可以是相同或類似的功能、步驟、模塊等或者是不同的。
[0085]除非另有特別聲明,來自、到達(dá)、或在文中給出的附圖中的任意附圖中的元件之間的信號(hào)可以是模擬或數(shù)字、連續(xù)時(shí)間或離散時(shí)間、單端或查分信號(hào)。例如,如果信號(hào)路徑示出為單端路徑,其還表示差分信號(hào)路徑。類似地,如果信號(hào)路徑示出為差分路徑,其還表示單端信號(hào)路徑。雖然文中描述了一個(gè)或多個(gè)特殊架構(gòu),如本領(lǐng)域普通技術(shù)人員認(rèn)識(shí)到的,還可以實(shí)施其他架構(gòu),其使用未明確示出的一個(gè)或多個(gè)數(shù)據(jù)總線、元件之間的直接連接、和/或其他元件之間的間接耦接。
[0086]在本發(fā)明的各實(shí)施方式的描述中使用了術(shù)語“模塊”。模塊包括經(jīng)由硬件實(shí)施以執(zhí)行一個(gè)或多個(gè)功能(諸如處理一個(gè)或多個(gè)輸入信號(hào)以產(chǎn)生一個(gè)或多個(gè)輸出信號(hào))的功能塊。實(shí)施模塊的硬件本身可以結(jié)合軟件和/或固件運(yùn)行。如文中所使用的,模塊可以包含其本身也是模塊的一個(gè)或多個(gè)子模塊。
[0087]雖然文中已經(jīng)明確描述了本發(fā)明的各種功能和特征的特殊組合,但是這些特征和功能的其他組合也是可以的。本發(fā)明不受文中公開的特殊實(shí)例的限制并且明確地包括這些其他組合。
【權(quán)利要求】
1.一種媒體處理裝置,具有用于執(zhí)行媒體傳遞操作的軟件和硬件資源,所述媒體處理裝置包括: 安全操作系統(tǒng)環(huán)境; 支持至少一個(gè)應(yīng)用程序的軟件框架;以及 安全訪問接口,被配置為調(diào)節(jié)所述安全操作系統(tǒng)環(huán)境與所述軟件框架之間的通信,并且被配置為提供對(duì)所述軟件和硬件資源的至少一部分的受限訪問。
2.根據(jù)權(quán)利要求1所述的媒體處理裝置,所述安全訪問接口被配置為針對(duì)經(jīng)由所述軟件框架執(zhí)行的應(yīng)用程序利用進(jìn)程分離。
3.根據(jù)權(quán)利要求1所述的媒體處理裝置,所述安全訪問接口執(zhí)行從由以下各項(xiàng)組成的組中選擇的至少一個(gè)操作:處理驗(yàn)證、堆指針驗(yàn)證、非指針參數(shù)驗(yàn)證、堆分離、以及與未使用的資源相關(guān)的資源釋放。
4.根據(jù)權(quán)利要求1所述的媒體處理裝置,所述安全訪問接口包括安全訪問服務(wù)器和安全訪問客戶端,所述安全訪問服務(wù)器并入所述安全操作系統(tǒng)環(huán)境中或者被執(zhí)行作為安全內(nèi)核模塊,并且所述安全訪問客戶端并入所述軟件框架中。
5.根據(jù)權(quán)利要求4所述的媒體處理裝置,其中,所述安全訪問服務(wù)器與所述安全訪問客戶端之間的通信至少部分地通過進(jìn)程間通信調(diào)用發(fā)生。
6.根據(jù)權(quán)利要求1所述的媒體處理裝置,其中,所述安全操作系統(tǒng)環(huán)境包括基于Linux的操作系統(tǒng)內(nèi)核。
7.根據(jù)權(quán)利要求1所述的媒體處理裝置,其中,所述軟件框架包括至少一個(gè)版本的Android 框架。
8.根據(jù)權(quán)利要求1所述的媒體處理裝置,被配置為機(jī)頂盒裝置,所述媒體處理裝置進(jìn)一步包括可在用于執(zhí)行媒體傳遞操作的所述安全操作系統(tǒng)環(huán)境中執(zhí)行的機(jī)頂盒應(yīng)用程序,其中,所述機(jī)頂盒應(yīng)用程序與軟件框架之間的通信至少部分地經(jīng)由所述安全訪問接口發(fā)生。
9.一種在具有安全操作系統(tǒng)內(nèi)核和不可信軟件框架的媒體傳遞裝置中使用的方法,包括: 建立特權(quán)操作系統(tǒng)環(huán)境,以執(zhí)行所述安全操作系統(tǒng)內(nèi)核支持的安全媒體處理操作;建立受限操作系統(tǒng)環(huán)境,以支持所述不可信軟件框架,所述受限操作系統(tǒng)環(huán)境利用進(jìn)程分離;以及 在所述受限操作系統(tǒng)環(huán)境中執(zhí)行所述不可信軟件框架的至少一部分。
10.一種媒體處理裝置,包括: 處理電路; 支持軟件應(yīng)用程序的軟件框架;以及 由所述處理電路執(zhí)行的操作系統(tǒng),所述操作系統(tǒng)被配置為建立利用進(jìn)程分離的至少一個(gè)受限操作系統(tǒng)環(huán)境,所述軟件框架在所述至少一個(gè)受限操作系統(tǒng)環(huán)境中執(zhí)行。
【文檔編號(hào)】H04N21/443GK103778389SQ201310492404
【公開日】2014年5月7日 申請(qǐng)日期:2013年10月18日 優(yōu)先權(quán)日:2012年10月18日
【發(fā)明者】納拉亞恩·拉杰戈帕爾, 馬庫(kù)斯·C·凱勒曼, 戴維·埃里克松 申請(qǐng)人:美國(guó)博通公司