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