并行双向环境中的机顶盒应用程序的制作方法

文档序号:6515904阅读:208来源:国知局
并行双向环境中的机顶盒应用程序的制作方法
【专利摘要】本发明公开了并行双向环境中的机顶盒应用程序,其中,机顶盒或类似设备利用虚拟化技术将安全设备资源与包括在所述设备中的非信任软件框架隔离。在一个实施例中,对于传统机顶盒应用程序的安全执行提供第一虚拟机容器,同时利用第二虚拟机容器来管理软件框架或者软件框架的非信任部分。安全访问客户端/服务器接口提供为支持第一虚拟机容器与第二虚拟机容器之间交互。例如,软件框架可包括由底层Linux操作系统环境支持的Android框架并且在Linux资源容器中隔离。虚拟容器构造在各种实施方式中可采用不同级别的硬件沙盒,包括在多处理器环境中专用处理资源使用。在更多实施方式中,软件框架可分为在单独虚拟机容器中执行的受信任部分和非信任部分。
【专利说明】并行双向环境中的机顶盒应用程序
[0001]相关申请的交叉参考
[0002]该美国专利申请根据35U.S.C § 119(E)而要求下面的美国临时专利申请的优先权,它们的全部内容结合于此作为参考,并且作为该美国专利申请的一部分用于所有目的:
[0003]1.美国临时专利申请序列号61/715,785题目为“INTEGRATION of UNTRUSTEDFRAMEWORK components with A SECURE Operating system environment,,(代理人案号BP30636),2012年10月18日提交,待审。
[0004]2.美国临时专利申请序列号61/725,964题目为“INTEGRATION OF UNTRUSTEDAPPLICATIONS AND FRAMEWORKS WITH A SECURE Operating system environment”(代理人案号BP30637),2012年11月13日提交,待审。
[0005]3.美国临时专利申请序列号61/725,790题目为“INTEGRATION OF UNTRUSTEDAPPLICATIONS AND FRAMEWORKS WITH A SECURE Operating system environment”(代理人案号BP30691),2012年11月13日提交,待审。
[0006]4.2012年12月20日提交的美国专利申请第13/721,959号。
【技术领域】
[0007]本发明大体上涉及处理系统,更特定地,涉及当在受信任或者安全操作系统环境中包括非信任元件(诸如机顶盒)时使用虚拟化技术。
【背景技术】
[0008]试图适应某些类型设备中相对非信任的软件应用程序或框架可能使根据一个或者一个以上行业定义认证标准或者测试程序执行的适用认证过程复杂化。例如,由有线电视运营商使用的许多机顶盒的厂商认证经由测试实现诸如DOCSIS?、PacketCable?、CableHome?和OpenCable?规格的设备互用性和安全合规性的严格认证过程而进行。所述设备的成功认证通常需要完全的端至端安全。同样,在特定设备或者组件(诸如片上系统)中实现的数字权限管理(DRM)和其它技术可能需要不容许与不安全操作系统(OS)环境或者软件框架的某些交互的不同认证过程。
[0009]一般地,如果未隔离,则机顶盒或者类似设备中的媒介路径的任何不安全部分会造成所述路径的认证失败。大多数常规机顶盒设计为提供通过所述设备的各种元件的单一安全且认证的路径。在一些最新多处理器机顶盒中,通过在常规认证路径与非信任组件之间创建硬件边界,常规认证路径与非信任组件分开。特别是`,第一处理模块用于提供安全功能(例如,解码操作),同时安全级别较低的单独处理模块用于支持非信任框架。
[0010]众所周知,软件框架可提供底层操作系统不提供的应用程序编程接口功能和服务,并且从而在某些实施例中可提供一定程度的平台独立性。框架往往设计为可重复使用且可自适应的软件系统或子系统。例如,Android已经成为增长最快的移动设备操作系统/框架之一。Android,由开源Linux社区贡献构建,为构建可跨许多不同类型设备(诸如智能手机或者平板设备)部署的应用程序提供开发工具和可重复使用组件。
[0011]典型Android框架为基于Linux的“多用户”系统,其中每个Android应用程序为不同“用户”,所述“用户”具有代码,所述代码大体上与其它应用程序隔离运行。所述进程隔离(或者应用程序“沙盒”)提供某个程度的安全性。然而,由应用程序使用的各种组件、进程、线程等当整合在机顶盒式设备中时可能不需要充分保护,导致Android当用于所述设备中时视为“非信任”框架。例如,从未认证第三方访问任意网页或者接收代码的应用程序可能导致非信任JavaScript代码在机顶盒上执行,有可能提升权限。所述代码可利用其它代码(例如,浏览器代码)中弱点并且接收未授权文件系统访问等,从而影响设备安全性,揭露受保护数据或者引入系统不稳定性。
[0012]如上所述,一些设备的处理单元可具有多个处理器或者处理核以提供更高性能和/或多任务处理功能。在这些多处理器系统的一些多处理器系统中,当多个应用程序或者程序正在运行时,通常需要访问控制以将正在多个处理器上运行的应用程序的功能分开。正在不同处理器上运行的不同应用程序和/或任务的分开或者隔离有助于确保一个应用程序不会干扰另一个应用程序执行。同样,指派给一个处理器的数据不应由另一个处理器访问,除非在所述两个处理器之间共享数据。所述分开通常通过使用虚拟存储器来处理,其中每个进程具有不可从外部进程访问的独特存储器视角。硬件访问可通过内核或者设备驱动器接口来处理,所述内核或者设备驱动器接口提供某个程度的安全性。即使在多处理器系统中,其中一个处理器环境提供受信任或者安全操作,而另一个处理器在不安全或者受限制环境中操作,然而,当操作系统正在管理所述分开时,从不安全区侵入到安全区实际上有可能。
[0013]例如,在容许用户接收电视信号并且也容许用户访问互联网的机顶盒中,安全环境可运行与由有线电视或者卫星电视提供商或者其它服务运营商提供的某些频道或者内容的接收、解密和显示有关的应用程序(包括安全机顶盒应用程序)。机顶盒中不安全环境可执行诸如基于Android的应用程序的应用程序,所述应用程序容许用户访问互联网进行网页浏览、游戏等。在本例中,内容提供商一般不会希望用户或者其他人访问与广播或者付费频道有关的应用程序。然而,如果控制两个环境访问的软件有共性,诸如运行相同操作系统来管理两个环境中访问,那么访问违规风险可能较高。所述违规,无论有意或者无意,可能导致不安全地冲破机顶盒的安全应用程序,诸如面向网页侵入到受保护电视频道。
[0014]因此,需要获得将非信任框架、框架组件和应用程序与安全机顶盒应用程序高效整合的方法。

【发明内容】

[0015]根据本发明的一个实施方式,提供了一种可用作机顶盒的装置,包括:处理电路;机顶盒应用程序,用于执行安全媒介处理操作;软件框架,用于支持相对非信任的软件应用程序;以及由该处理电路执行的操作系统,该操作系统被构造为建立:特许操作系统环境,以执行安全媒介处理操作;以及受限操作系统环境,该机顶盒应用程序在该特许操作系统环境中执行并且该软件框架在该受限操作系统环境中执行。
[0016]进一步地,该特许操作系统环境包括第一虚拟机容器并且该受限操作系统环境包括第二虚拟机容器。[0017]进一步地,该操作系统为基于Linux的对称多处理操作系统。
[0018]进一步地,该软件框架包括Android框架的至少一个版本。
[0019]进一步地,该操作系统还包括安全访问接口以支持该第一虚拟机容器与该第二虚拟机容器之间的交互。
[0020]进一步地,该操作系统包括安全操作系统内核,该安全访问接口调节该受限操作系统环境与该安全操作系统内核之间的交互。
[0021]进一步地,该安全访问接口执行选自由以下组成的群组的至少一个操作:句柄和指针验证;非指针参数验证;堆区隔离;和在受限进程终止以后的硬件资源释放。
[0022]进一步地,该安全访问接口包括安全访问服务器和安全访问客户端,该安全访问客户端包括在该软件框架中。
[0023]进一步地,其中,该安全访问服务器与安全访问客户端之间的交互至少部分通过进程间通信调用进行。
[0024]根据本发明的另一实施方式,提供了一种在媒介传送设备中使用的方法,该媒介传送设备具有操作系统和受信任应用软件,该设备支持与非信任软件框架交互,该方法包括以下步骤:建立特许操作系统环境以通过该受信任应用软件执行安全媒介处理操作;建立受限操作系统环境以管理该非信任软件框架;并且提供安全访问接口以支持该受信任应用软件与该非信任软件框架的组件之间的交互。
[0025]进一步地,该特许操作系统环境包括第一虚拟机容器并且该受限操作系统环境包括第二虚拟机容器。
[0026]进一步地,该操作系统为基于Linux的对称多处理操作系统。
[0027]进一步地,该非信任软件框架包括Android框架的至少一个版本。
[0028]进一步地,该设备还具有用于执行媒介处理操作的硬件资源,其中,与该第二虚拟机容器相比,该安全访问接口允许通过该第一虚拟机容器相对更大地访问该硬件资源。
[0029]进一步地,该设备具有第一处理单元和第二处理单元,其中,该第一虚拟机容器在该第一处理单元上执行并且该第二虚拟机容器在该第二处理单元上执行。
[0030]根据本发明的又一实施方式,提供了一种装置,包括:处理电路;用于支持软件应用程序的软件框架,该软件框架包括受信任部分和非信任部分;以及由该处理电路执行的操作系统,该操作系统被配置为建立至少一个特许操作系统环境和至少一个受限操作系统环境,该软件框架的该受信任部分在该至少一个特许操作系统环境中执行并且该软件框架的该非信任部分在该至少一个受限操作系统环境中执行。
[0031]进一步地,该装置还包括机顶盒应用程序,该机顶盒应用程序在该至少一个特许操作系统环境中执行。
[0032]进一步地,该至少一个特许操作系统环境包括第一虚拟机容器并且该至少一个受限操作系统环境包括第二虚拟机容器。
[0033]进一步地,该软件框架包括Android框架的至少一个版本。
[0034]进一步地,该设备还包括安全访问接口以支持该至少一个特许操作系统环境与该至少一个受限操作系统环境之间的交互。
【专利附图】

【附图说明】[0035]图1示出根据本发明实施方式的非信任框架和安全操作系统内核的整合。
[0036]图2示出根据本发明各种实施方式的非信任框架被整合为机顶盒应用程序客户端。
[0037]图3示出根据本发明各种实施方式的机顶盒应用程序和利用虚拟容器的非信任框架的并行操作。
[0038]图4不出根据本发明实施方式的框架分割为受信任部分和非信任部分。
[0039]图5示出根据本发明各种实施方式利用认证应用程序的机顶盒架构。
[0040]图6示出根据本发明实施方式的受信任部分和非信任软件在单处理器环境中的整合。
[0041]图7示出根据本发明实施方式的受信任部分和非信任软件在多处理器环境中的整合。
[0042]图8为根据本发明各种实施方式的支持操作系统环境的硬件分离的多处理器系统的框图。
[0043]图9为根据本发明实施方式的机顶盒(STB) /网关(GW)的示意框图。
[0044]图10为根据本发明实施方式的支持特许操作系统环境与非信任软件框架之间的交互的方法的逻辑图。
【具体实施方式】
[0045]尽管某些实施方式结合Android框架和/或Linux操作系统进行了说明,但本发明的其它实施方式可利用多种当前或者未来操作系统/内核和框架来实行,并且采用可能利用多个处理器、处理核和/或处理电路的多种计算电路、设备、服务器和/或系统。此外,本文中某些插图说明在所述实施方式中提供处理功能的设备的处理模块、处理器或者CPU(例如,CPU1、CPU2)。然而,应当理解,在其它实施方式中可使用多种其它设备和/或术语以在实践本发明时提供处理功能。本发明可容易适于存在多个处理环境(区、域等)的其它用途,其中,期望两个或者两个以上的区之间分开和/或分离。同样地,尽管某些实施方式说明为通过机顶盒(STB)或者执行受信任媒介处理操作的类似媒介处理设备来实现,但是新颖架构和方法全部或者部分适用于其它设备,包括媒介消费设备(诸如PVR)、DVD播放器、接入点、电视机、计算设备、智能手机等。
[0046]图1示出根据本发明实施方式的安全设备104 (诸如认证机顶盒设备)内的非信任框架100 (诸如Android框架)与安全操作系统(OS)内核102的整合。一般地,OS内核102可视为操作系统的心脏(或者环0),在系统硬件与操作系统的其余部分以及已安装应用程序之间提供接口。
[0047]正如下文更详细说明的,安全软件抽象层110被提供为隔离访问设备的底层软件、硬件和安全组件。非信任框架100与安全OS内核102之间通信和数据交换可经由由安全访问客户端106和安全访问服务器108组成的安全访问层或者接口进行,安全访问客户端106和安全访问服务器108支持应用程序编程接口(API)和安全进程间通信(IPC)调用或者内核驱动程序。在某些实施方式中,安全访问客户端106可为框架100的一部分或者可通过框架100进行访问,而安全访问服务器108包括在安全操作系统环境中或者执行为安全内核模块。在一个实施方式中,通过执行通过硬件(适用时)的参数验证/检查和周边范围检查,句柄和指针验证、堆区隔离和在受限制进程终止以后硬件资源释放,安全访问接口可有助于防止由不良数据或者参数导致系统漏洞或者不稳定。
[0048]图2示出根据本发明各种实施方式的非信任框架202整合为机顶盒应用程序(“STB应用程序”)204的客户端。如图所示,STB应用程序204被提供为执行机顶盒200的基本操作,并且与非信任“客户端”框架(诸如Android框架202)连接。在本实施方式中,STB应用程序204在安全或者特许Linux内核环境(诸如对称多处理(SMP)Linux内核环境206)中执行,所述对称多处理(SMP)Linux内核环境206包括安全访问内核驱动程序208和访问服务器216,所述访问服务器216包括经由访问客户端218由STB应用程序204使用的全访问接口 210以及由Android框架202使用的更受限客体访问接口 212。STB应用程序204包括访问客户端214功能,所述访问客户端214功能支持与全访问接口 210进行通信并且例如使用基于容器的虚拟化,使Android框架202能够作为安全Linux内核环境206的非信任客户端运行。正如可以理解,客户端/服务器架构容许非信任进程崩溃或者终止,而不会影响底层硬件并且引起系统不稳定。
[0049]除访问客户端218外,所示实施方式的Android框架202可包括应用程序和应用程序支持220、JavaScript解译、浏览器功能222、插件(例如,Adobe Flash插件)和Dalvik虚拟机。Android框架202还包括平台或者操作系统访问功能224,所述平台或者操作系统访问功能224使通过最小客体Linux服务访问接口 226能够有限地访问安全Linux内核环境206的必要组件。
[0050]如述,Android为开发移动应用程序提供基于组件的框架。每个应用程序可包括不同数目和类型的组件。举例来说,所述组件可包括“Activity”组件,所述“活动”组件形成用户界面的基础,其中呈现给用户的每个屏幕为不同Activity。背景处理由“Service”组件进行,所述“Service”组件也定义用于与其它应用程序进行通信的任意接口。“内容提供商”组件功能为共享关系数据库形式信息,而“广播接收器”组件作为异步消息邮箱从系统和/或其它组件操作。所公开实施方式的Android框架202支持应用程序之间不同程度的协作和依赖性。
[0051]然而,由应用程序用于提供服务且与其它应用程序或者底层操作系统进行通信的接口必须受到保护以防范违规和一般违法行为。默认情况下,典型Android框架中应用程序没有权限执行可能负面影响其它系统组件(诸如读取或者写入私有数据或者另一个应用程序的文件,执行网络访问等)的操作。因为Android基本上从彼此“沙盒”应用程序,所以应用程序必须通过申明在基本沙盒外部的另外功能所需的权限来明确共享资源和数据。例如,应用程序可静态申明它需要的权限,并且在安装时,Android框架可能提示用户适当的同意。如上所述,在【背景技术】中,并且在没有严格硬件分离和分开执行环境中,从非信任框架的未授权代码的执行潜力可能影响整个系统安全性并且负面影响诸如本文所述缺乏某些设备的方法和架构(例如,安全访问服务器)的认证程序。
[0052]在所示实施方式中,非信任Android框架202在(多个)第一虚拟机(VM)客体Linux容器230 (诸如“LXC”或者Linux资源容器冲执行以与安全进程和资源进一步隔离。在本实施方式中,STB应用程序可相似地在具有完全主Linux服务访问228的第二 VM主Linux容器232中操作。简单地说,一般地,基于容器的虚拟化(或者操作系统级虚拟化)容许内核与安装于它上的多个隔离虚拟机或者虚拟环境一起运行。每个虚拟环境可专用于运行特定应用程序,并且通常不是完整操作系统实例,而是与管理操作系统内核中虚拟化层(或者硬件资源抽象层)一起工作的操作系统的部分实例。
[0053]虽然虚拟化可减轻非信任组件的硬件分开的需要,但是在某些实施方式中,具有不同安全级别的多个处理器可能受益于虚拟容器构造,所述虚拟容器构造经由所述处理器之一而整体操作,而其它容器可跨越多个处理器(例如,参见图7所示实施方式)。在一个所述实施方式中,(多个)第一处理器可专用于执行非安全功能,而(多个)第二安全处理器可专用于常规STB功能。在各种替代性实施方式中,非信任框架可为例如经由非处理器硬件/外围设备、与处理器和/外设的存储器隔离等的硬件。可以设想安全且非信任软件与硬件之间各种其它划分(例如,将非信任框架或者应用程序它们本身划分为“受信任”部分和“非信任”部分),其例子如下所述。此外,通过利用硬件和操作系统虚拟化特征,多个操作系统可在同一硬件上同时运行。
[0054]图3示出根据本发明各种实施方式分别利用虚拟容器306和308的机顶盒应用程序302和非信任客户端应用程序/框架304的并行操作。在所示实施方式中,非信任客户端应用程序和框架通过应用程序IPC调用和访问最小客户端312与底层机顶盒平台的安全部分交互,包括机顶盒应用程序302和安全Linux内核环境310,所述访问最小客户端312访问最小“客体” Linux服务访问316。同样地,受信任用户模式(或者“特许”)操作系统环境中应用程序经由访问客户端314接收对于“管理”Linux服务访问318的全访问。受信任用户模式环境可由全主体根文件系统320支持,而单独分区或者磁盘上最小客体根文件系统322可支持非信任用户模式(或者“受限制”)操作系统环境。
[0055]在一些实施方式中,机顶盒平台的某些资源(诸如媒介处理和硬件加速资源(用于音频/视频编码和解码、使用标准化API的二维和三维图形渲染(诸如开放图形库或者“OpenGL”)、DRM、加密/解密等)和联网接口)可由非信任客户端应用程序/框架304通过由网络套接字(network socket)进行通信的IPC调用进行访问。同样地,事件(诸如IR控制信号)可通过IPC调用(诸如调用Android API或者按钮)从机顶盒平台传送到非信任客户端应用程序/框架304。
[0056]在所示实施方式中,框架“聚合器”324可用于接受和扩展与各种框架的操作。以此方式,例如,服务提供商可将对于系统资源的安全访问提供给第三方框架和其它“中间件”产品。举例来说并且不受限制,所述产品可包括Adobe Air、Adobe Flash、Apple iOS、Microsoft Silverlight、Java applets和类似并列技术。框架聚合器324可包括一组定制操作系统库和HTML功能以支持所述技术以及用户界面网页引擎访问等。
[0057]在某些实施方式中,由框架聚合器324支持的用户界面可使用户能够推出由Android框架支持的应用程序。例如,框架聚合器324可提供一系列“按钮”,包括提供可用Android应用程序的可视化显示的Android按钮。此外,Android框架和框架聚合器324可共享图形屏幕。以此方式,将功能连接到可能有必要的Android框架可能没必要。请注意,在给定设备中,Android框架可使用与由由框架聚合器324支持的其它框架利用的工具链不同的工具链进行构建。
[0058]图4不出根据本发明替代性实施方式的框架被分割为受信任部分和非信任部分400和402。在本实施方式中,(Android)框架400、网页浏览器等的(多个)受信任部分400以及(多个)对应非信任部分402分别在一个或者一个以上单独虚拟机容器404和408中执行。受信任部分400可包括安全平台和操作系统访问接口 410。除受信任部分400外,机顶盒应用程序406可在虚拟机容器404中或者在(多个)单独且安全的虚拟机容器中操作。
[0059]使用涉及网页浏览器的例子,执行潜在不安全Flash或者JavaScript代码(诸如渲染引擎)的浏览器部分可在具有受限文件系统和外设访问的“非信任”虚拟机容器408中执行,而访问底层平台硬件和敏感操作系统资源的浏览器部分可在一个或者一个以上“受信任”虚拟机容器404中执行。在更多实施方式中,受信任部分400可包括安全框架克隆或者支持安全应用程序和/或应用程序安全部分的变形版本。在所述实施方式中,不安全应用程序或其部分可由常驻于非信任或者受限制用户域或者容器中的框架部分执行。如上所述,硬件沙盒的各种方法可用于进一步隔离框架的非信任部分并且支持受限操作系统域或环境。
[0060]本实施方式的安全Linux内核环境412包括安全访问内核驱动程序414和访问服务器420,所述访问服务器420提供支持受信任用户模式功能的全访问接口 416和支持非信任用户模式功能的客体访问接口 418。全主体Linux服务访问422和最小客体Linux服务访问424分别提供给受信任用户模式环境和非信任用户模式环境。如上,受信任用户模式环境可由全主体根文件系统426支持,而单独分区或者磁盘上最小客体根文件系统428支持非信任用户模式环境。
[0061]图5示出根据本发明的利用认证应用程序502的机顶盒或者其它安全架构500。在所示实施方式中,认证应用程序502可预安装或者例如从由服务运营商或者基于云的源提供的认证应用程序目录下载。举例来说,所述应用程序可包括媒介流应用程序(例如,Netflix)、游戏应用程序、网页浏览应用程序、基于iOS的应用程序、Android应用程序等。在一些实施方式中,可能有必要包括或者下载另外操作系统以支持对应认证应用程序类另O。或可,给定应用程序的不同认证版本可使得可用于支持多种已安装操作系统和/或框架510。认证应用程序502可在一个或者一个以上虚拟机容器508中执行。图5中其它所示元件功能如上所述。
[0062]在一个示例性实施方式中,初级机顶盒应用程序504被构造为在(多个)虚拟机容器506中执行的Android应用程序。根据相关Android框架的功能,非标准API或者库可能需要支持某个机顶盒功能,诸如PVR、图中图、转码和频道调谐操作。此外,本方法可能需要特殊接口(例如,将字符串传送到接口以创建编码路径作为硬件调用一部分)或者提供非标准功能(或者甚至应用程序)以解决可能缺乏相关框架或者认证所需的服务和功能。例如,Android框架可扩展为包括非标准功能-而不会负面影响兼容性-通过提供“隐藏”在Android移植层下并且接收和解译通过所述层的统一资源标识符(“URI”)的服务。
[0063]在其它实施方式中,下载(或者预安装)的每个应用程序包括全安全性定义,而不是端至端安全性定义由源管理或者由内容本身(或者相关联元数据)定义。例如,每个应用程序可具有其自己的可下载条件访问安全性(dCAS)或者可下载DRM元件/定义。例如,对应认证过程可涉及认证整个安全路径一部分,其中一个或者一个以上应用程序提供认证的最后部分。或可,可提供多个预定义条件访问机制,其中(已下载)应用程序定义将使用哪个机制。然后认证安全“边界”可能可行,而不考虑特定公司或者媒介的条件访问要求。
[0064]在各种实施方式中,机顶盒或者类似设备可与媒介消费网络中其它设备(例如,PVR、DVD播放器、接入点、电视机、计算设备、智能手机等)交换功能以对于应用程序要求进行比较。一旦完成比较,若有,应用程序就可选择它将允许的哪一个或者一个以上操作模式。如果机顶盒无法支持所述模式(由于资源竞争或者其它原因),那么所述模式变为不可用。如果可用,那么一组操作模式可选定且在媒介流传送期间动态切换为其它传输模式,所述其它传输模式可能需要与应用程序或者源协调以支持过渡(可能需要媒介流质量变化)。
[0065]图6示出根据本发明实施方式的受信任软件和非信任软件在单处理器(CPUl)环境中的整合。在本实施方式中,SMP Linux内核600功能为控制硬件且基于性能和/或安全隔离要求将客体虚拟机602 (支持Linux “客体”实例并且运行非信任应用程序)和主体虚拟机604 (运行受信任应用程序核心服务)锁定为一个或者一个以上单独CPU线程。
[0066]例如,当期望最大性能时,SMP Linux内核600可对于两个虚拟机中跨多个CPU线程或者和核的进程执行负载平衡。此外,受到客体虚拟机602控制的主体虚拟机604可终止,并且如果它行为不端或者受到影响,那么重启客体虚拟机602 (或者整个容器)中进程。硬限制可设置于通过客体虚拟机的CPU利用上以防止核心底层设备功能中断并且促进失控进程终止。操作中,单独线程可隔离和/或受限地访问Ι/D高速缓冲存储器606和L2高速缓冲存储器608。
[0067]图7示出根据本发明实施方式的受信任软件和非信任软件在多处理器系统中的整合。所示系统可在设备、模块、电路板等中实现。所述系统的一个或者一个以上组件也可在集成电路芯片上或者在多个集成电路芯片上实现。图7中特定实施方式示出分别识别为CPUl和CPU2的两个处理模块。虽然示出两个处理模块,但是其它实施方式可具有两个以上处理模块或者处理器,并且请注意,CPUl和CPU2可包括各种处理设备、电路等。在一个实施方式中,CPUl和CPU2可包括单个CPU的不同处理核或者某个其它处理电路。
[0068]更特定地,参考附图,SMP Linux内核700用于控制硬件且基于性能和/或安全隔离要求将(多个)客体虚拟机702Linux实例(运行非信任应用程序)和(多个)主体虚拟机704 (运行受信任应用程序核心服务)锁定为一个或者一个以上单独线程1-4。例如,非信任应用程序可在跨越CPUl和CPU2两者的虚拟机容器中执行。正如下文更充分地说明,I/D高速缓冲存储器706和708以及L2高速缓冲存储器710的各种部分可限制于特定线程或者CPU,或者与适当的保障措施共享。
[0069]图8为根据本发明各种实施方式支持操作系统环境的硬件分离的另一个多处理器系统的框图。例如,(多个)第一处理器CPUl可专用于常规STB功能并且支持安全访问服务器800,而(多个)第二处理器(网页)CPU2可专用于执行非安全功能和非信任应用程序(例如,Android框架客户端802或者网页浏览器)。由CPUl支持的受信任执行环境可限制访问某个核心STB功能,包括硬件加速方块804、DRM功能806等。
[0070]在一个实施方式中,当处于“沙盒(sandboxing)”模式时,CPUl和CPU2都隔离为单独且不同的区。在另一个实施方式中,受信任CPUl设置为具有其自己的隔离存储区并且也给予在CPU2的存储映射部分的一些或者所有地址范围内的访问权利。一般地,当在单独或者隔离区、环境或者域中操作时,两个CPU在不同应用程序上操作,使得CPUl执行一组指令,而CPU2执行一组不同指令。这个性质的隔离或者分开通常称为沙盒技术或者沙盒模式。大多数沙盒技术的目的为防止一个区访问另一个区中功能或者控制一个区访问到另一个区中。在一些情况下,两个区可受限制访问另一个区或者仅控制区间访问。在一些应用中,一个区可视为安全、特许或者受信任区,并且另一个区可视为受限制、不安全或者非信任区,其中防止通过在非安全区上操作的应用程序访问或者控制访问在安全区中运行的某些应用程序。
[0071]如上所述,许多设备利用多个处理器或者处理核以运行单独程序、应用程序等。在一个区无法访问第二区的情况下,确保这个分开的一个方法为通过检查对于系统存储器的访问。即,通过确保分配给CPUl的访问无法由CPU2访问,除非访问位置为共享位置,在CPU2上运行的应用程序可防止违反功能分开。实现这个保护的一个方法为提供访问检查和访问控制以确保正确处理模块正在访问所述处理模块的许可位置。在所示实施方式中,CPUl和CPU2可通过网络套接字、IPC调用等进行直接通信。
[0072]图9为根据本发明实施方式的机顶盒(STB)/网关(GW)901的示意框图。STB/网关901提供许多功能,包括信号从外部源转换为可由网络设备消费的内容。STB/网关901还可作为网关进行操作,所述网关支持单向或者双向通信以及网络设备间桥接。
[0073]所示实施方式的STB/网关901经由一个或者一个以上有线和无线网络/链路与住宅网络基础设施905和外部媒介系统907交互。有线和无线网络/链路可利用各种传输媒介中一个或者一个以上-诸如同轴电缆、屏蔽双绞线、光纤电缆、电力线和无线媒介(射频、微波、卫星、红外等)_并且根据多种通信和联网协议(TCP/IP、UPnP、IPv6等)进行操作。此外,有线和无线网络/链路可包括利用生成树协议、直接无线连接、对等链路等的多跳网络。
[0074]例如,外部媒介系统907可包括有线电视、卫星电视和/或地面电视系统中一个或者一个以上。各种前端设备和服务可由这些系统利用,诸如接收电视信号的有线电视前端,用于进一步处理和分布,并且可提供各种其它服务,诸如互联网连接和VoIP服务。
[0075]所示实施方式的STB/网关901包括广播/单播/多播前端913,所述广播/单播/多播前端913操作为从外部媒介系统907或者住宅网络基础设施905接收未压缩或者已压缩数字视频、数字音频和其它数据信号,用于进一步处理和分布。前端913包括调谐器电路919a,所述调谐器电路919a可操作为隔离特定频道。来自调谐器电路919a的信号然后提供给模数转换器(ADC)电路920a和解调电路921a,用于转换为二进制格式/流。一旦处于二进制格式,前向纠错(FEC)电路922a检查所接收二进制流的完整性。从二进制流提取的音频、视频和数据然后可解码(例如,通过解码925)为适合由下游设备消费的格式。请注意,解调电路921a可支持一个或者一个以上调制技术,诸如正交相移键控(QPSK)、正交幅度调制(QAM)、编码正交频分复用(COFDM)等。
[0076]前端913可集成到一个或者一个以上半导体设备中,例如,所述一个或者一个以上半导体设备可进一步支持交互数字电视、网络DVR功能、DOCSIS应用程序上IP视频和三维图形支持。此外,为不同调制方案和电视标准(诸如PAL、NTSC、ATSC、SECAM、DVB-C,DVB-T (2)、DVB-H、ISDB、T-DMB, Open Cable)可提供多个调谐器电路919a (包括带内和带外调谐器)、ADC电路920a和解调电路921a。
[0077]在本发明的一个替代性实施方式中,STB/网关901的功能由智能手机或者移动计算设备执行。在本实施方式中,“前端”913包括一个或者一个以上无线接口(包括PHY和基带功能),诸如蜂窝式(3G、4G、高级MT等)或者广域网(HetNet、W1-F1、WiMax等)接口。所述接口可支持一个或者一个以上调制和复用技术,诸如OFDM、OFDMA, SC-FDMA, QPSK, QAM、64QAM、CSMA、MM0等。在所示实施方式中,无线接口包括收发器919b、模数转换器(ADC)和数模转换器(DAC)电路920b、解调和调制电路921b以及FEC (诸如涡轮码或者LDPC码)电路922b。编码、解码和转码925功能可由处理电路和存储器911提供。
[0078]STB/网关901还包括(广域网)接口电路915,用于与住宅网络基础设施905和/或外部媒介系统907进行通信。通过通信接口电路915,STB/网关901可与上游资源直接进行通信,或者在所述资源与耦合到STB/网关901的设备(例如,设备941-949)之间提供(双向)桥接通信。
[0079]在图9实施方式中,STB/网关901经由通信接口电路917与多种设备941-949交互。例如,电视或者显示接口模块931与(数字)电视941或者其它媒介显示设备进行通信以转播电视节目并且启用可用交互媒介服务。在某些实施方式中,电视或者显示接口模块931可包括远程用户界面(RUI)服务器。同样地,音频接口 933提供对于音频系统943的音频节目或者音频库访问。
[0080]通信接口电路917还包括远程控制接口 935,用于从远程控制945接收控制信号。除传统远程控制操作外,远程控制945还可提供音频和/或手势控制信号,所述音频和/或手势控制信号转播或者映射到相关消费设备。也提供用户界面937,用于与一个或者一个以上用户界面设备947进行通信。游戏界面939功能为提供与游戏系统949的交互通信。例如,所述通信可涉及在社交网络成员和/或游戏平台中外部玩家之间的在线、多人游戏。电源管理接口 940功能提供为使设备941-949之间省电操作成为可能。
[0081]所示实施方式的STB/网关901包括处理电路、(多个)操作系统和存储器911 (其组件可包括硬件、软件或者它们组合)、服务支持923和解码/编码/转码功能925,以支持诸如如上所述网络交互。本实施方式中服务支持923包括各种功能,诸如电源管理927、桥接928和媒介服务器-接收器服务929。STB/网关的其它传统特征也可包括。例如,处理电路911可包括片上系统或者(多个)类似设备,所述类似设备提供核处理器、音频/视频解码器、媒介处理/DSP、图形核心、加密/解密核心、自适应转码等。
[0082]图10为根据本发明实施方式的支持特许操作系统环境与媒介传送设备的非信任软件框架之间的交互的方法1000的逻辑图。在所示实施方式的步骤1002中,特许操作系统环境被建立为执行诸如由主体认证机顶盒应用程序执行的安全媒介处理操作和相关功能。接着,在步骤1004中,受限操作系统环境被建立为管理且支持非信任软件框架,诸如Android框架。在一个实施方式中,特许操作系统环境和受限操作系统环境都使用虚拟机容器来构造。在步骤1006中,安全访问接口或者层(诸如上文所述)被提供为支持且调节特许操作系统环境的组件与受限操作系统环境的组件之间的交互。例如,安全访问接口可用于限制访问由机顶盒应用程序或者其它受信任软件控制的底层设备资源。
[0083]正如本文中可以使用的,术语“基本上”和“大约”为其对应术语和/或项目之间相关性提供行业可接受的公差。所述行业可接受的公差范围从1%以下到50%,并且对应于但不限于组件值、集成电路工艺变化、温度变化、升降时间和/或热噪声。所述项目间相关性范围从百分之几差异到巨大差异。也如本文中可以使用,(多个)术语“可操作地耦合到”、“耦合到”和/或“耦合”包括项目间直接耦合和/或项目间经由中间项目(例如,项目包括但不限于组件、元件、电路和/或模块)的间接耦合,其中,对于间接耦合,中间项目不会修改信号信息,而是可调整其电流电平、电压电平和/或功率电平。还如本文中可以使用,推断耦合(即,其中一个元件通过推断耦合到另一个元件)包括在两个项目之间以与“耦合到”相同的方式的直接和间接耦合。还如本文中可以使用,术语“可操作为”或者“可操作地耦合到”表示项目包括一个或者一个以上电源连接、(多个)输入、(多个)输出等,以当激活时执行一个或者一个以上其对应功能,并且还可包括推断耦合到一个或者一个以上其它项目。还如本文中可以使用,术语“与…相关联”包括单独项目的直接和/或间接耦合和/或一个项目嵌入于另一个项目内。正如本文中可以使用,术语“有利地比较”表示两个或者两个以上项目、信号等之间比较提供期望关系。例如,当期望关系为信号I比信号2具有更大幅值时,当信号I的幅值大于信号2的幅值时,或者当信号2的幅值小于信号I的幅值时,可实现有利比较。
[0084]也如本文中可以使用,术语“处理模块”、“模块”、“处理电路”和/或“处理单元”可为单个处理设备或者多个处理设备。所述处理设备可为微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑设备、状态机、逻辑电路、模拟电路、数字电路和/或基于电路硬编码和/或操作指令操纵信号(模拟和/或数字)的任何设备。处理模块、模块、处理电路和/或处理单元可具有相关联存储器和/或集成存储器元件,所述存储器和/或集成存储器元件可为单个存储器设备、多个存储器设备和/或处理模块、模块、处理电路和/或处理单元的嵌入式电路。所述存储器设备可为只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、快闪存储器、缓存存储器和/或存储数字信息的任何设备。请注意,如果处理模块、模块、处理电路和/或处理单元包括一个以上处理设备,所述处理设备可集中式分布(例如,经由有线和/或无线总线结构直接耦合在一起)或者可分布式分布(例如,经由经由局域网和/或广域网间接耦合的云计算)。还请注意,如果处理模块、模块、处理电路和/或处理单元经由状态机、模拟电路、数字电路和/或逻辑电路实现其一个或者一个以上功能,存储对应操作指令的存储器和/或存储器元件可嵌入于包括状态机、模拟电路、数字电路和/或逻辑电路的电路内或者在所述电路外部。还请注意,存储器元件可存储与一个或者一个以上图中所示步骤和/或功能中至少一些对应的硬编码和/或操作指令,并且处理模块、模块、处理电路和/或处理单元执行所述硬编码和/或操作指令。所述存储器设备或者存储器元件可包括在物品中。
[0085]上文借助于说明指定功能及其关系的性能的方法步骤对于本发明已经作出说明。为了便于说明,这些功能构成方块和方法步骤的界限和顺序在本文中已经任意定义。只要指定功能和关系适当地实现,就可定义替代性界限和顺序。任何所述替代性界限或者顺序因此在本发明范围和精神内。此外,为了便于说明,这些功能构成方块的界限已经任意定义。只要某些重要功能适当地执行,就可定义替代性界限。同样地,流程图方块在本文中也可任意定义以说明某些重要功能。为了广泛使用,流程图方块界限和顺序可以其它方式定义并且仍执行某些重要功能。功能构成方块和流程图方块和顺序的所述替代性定义因此在本发明范围和精神内。本领域一般技术人员也应当理解,功能构成方块和本文中其它说明性方块、模块和组件可实现为说明性或者通过分立组件、应用特定集成电路、执行适当软件等的处理器或者它们的任何组合来实现。
[0086]本发明也可至少部分从一个或者一个以上实施方式方面进行说明。本发明实施方式在本文中用于说明本发 明、本发明方面、本发明特征、本发明概念和/或本发明实施例。体现本发明的装置、物品、机器和/或进程的物理实施方式可包括参考本文所述实施方式中一个或者一个以上进行说明的一个或者一个以上方面、特征、概念、实施例等。此外,从图到图,实施方式可包括可使用相同或者不同引用数字的相同或者相似命名的功能、步骤、模块等,这样,功能、步骤、模块等可为相同或者相似功能、步骤、模块等或者不同功能、步骤、丰吴块等。
[0087]除非特别说明,本文中提出的任何图中到元件、从元件和/或元件之间的信号可为模拟或者数字、连续时间或者离散时间和单端或者差分。例如,如果信号路径示出为单端路径,那么它也表示差分信号路径。同样地,如果信号路径示出为差分路径,那么它也表示单端信号路径。虽然本文中说明一个或者一个以上特定架构,但是本领域一般技术人员应当理解,使用未明确示出的一个或者一个以上数据总线、元件间直接连接和/或其它元件间间接耦合的其它架构同样可实现。
[0088]术语“模块”用于说明本发明各种实施方式。模块包括经由硬件实现的功能方块,以执行一个或者一个以上模块功能,诸如处理一个或者一个以上输入信号以产生一个或者一个以上输出信号。实现模块的硬件本身可结合软件和/或固件进行操作。正如本文中使用,模块可含有一个或者一个以上子模块,所述子模块本身为模块。
[0089]虽然本发明的各种功能和特征的特定组合在本文中已经明确说明,但是这些特征和功能的其它组合同样可行。本发明并不限于本文中公开的特定实施例,并且明确包括这些其它组合。
【权利要求】
1.一种可用作机顶盒的装置,包括: 处理电路; 机顶盒应用程序,用于执行安全媒介处理操作; 软件框架,用于支持相对非信任的软件应用程序;以及 由所述处理电路执行的操作系统,所述操作系统被构造为建立: 特许操作系统环境,以执行安全媒介处理操作;以及 受限操作系统环境, 所述机顶盒应用程序在所述特许操作系统环境中执行并且所述软件框架在所述受限操作系统环境中执行。
2.根据权利要求1所述的装置,其中,所述特许操作系统环境包括第一虚拟机容器并且所述受限操作系统环境包括第二虚拟机容器。
3.根据权利要求2所述的装置,其中,所述操作系统为基于Linux的对称多处理操作系统,并且所述软件框架包括Android框架的至少一个版本。。
4.根据权利要求2所述的装置,所述操作系统还包括安全访问接口以支持所述第一虚拟机容器与所述第二虚拟机容器之间的交互。
5.根据权利要求4所述的装置,所述操作系统包括安全操作系统内核,所述安全访问接口调节所述受限操作系统环境与所述安全操作系统内核之间的交互。
6.根据权利要求5所述的装置,所述安全访问接口执行选自由以下项组成的群组中的至少一个操作:句柄和指针验证;非指针参数验证;堆区隔离;和在受限进程终止以后的硬件资源释放。
7.根据权利要求5所述的装置,所述安全访问接口包括安全访问服务器和安全访问客户端,所述安全访问客户端包括在所述软件框架中。
8.根据权利要求7所述的装置,其中,所述安全访问服务器与安全访问客户端之间的交互至少部分通过进程间通信调用进行。
9.一种在媒介传送设备中使用的方法,所述媒介传送设备具有操作系统和受信任应用软件,所述设备支持与非信任软件框架交互,所述方法包括: 建立特许操作系统环境以通过所述受信任应用软件执行安全媒介处理操作; 建立受限操作系统环境以管理所述非信任软件框架;并且 提供安全访问接口以支持所述受信任应用软件与所述非信任软件框架的组件之间的交互。
10.一种装置,包括: 处理电路; 用于支持软件应用程序的软件框架,所述软件框架包括受信任部分和非信任部分;以及 由所述处理电路执行的操作系统,所述操作系统被配置为建立至少一个特许操作系统环境和至少一个受限操作系统环境, 所述软件框架的所述受信任部分在所述至少一个特许操作系统环境中执行并且所述软件框架的所述非信任部分在所述至少一个受限操作系统环境中执行。
【文档编号】G06F9/445GK103826161SQ201310492963
【公开日】2014年5月28日 申请日期:2013年10月18日 优先权日:2012年10月18日
【发明者】马库斯·C·凯勒曼, 纳拉亚恩·拉杰戈帕尔, 乔舒亚·斯图尔茨, 凯文·瑟内基 申请人:美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1