电子设备中安全的程序解释的方法

文档序号:6553102阅读:153来源:国知局
专利名称:电子设备中安全的程序解释的方法
技术领域
本发明涉及解释编程语言。具体地,本发明涉及一种电子设备中安全的程序解释的方法。
背景技术
安全性是电子通信设备中的重要因素。现今移动终端已经从简单的蜂窝电话发展为具有类似个人计算机的应用的多用途通信设备。通信设备提供有诸如因特网浏览、E-mail以及多媒体呼叫的广泛多种服务。一种发展移动终端的重要技术是诸如Java、Perl、PHP以及Python的各种解释的语言。这些解释的语言还在移动终端中增加了过多的增值服务和游戏。使用这些解释的语言所研发的软件包括独立程序和共享库。这些程序和库可以通过空中传输从网络服务器下载到移动终端。软件下载大多借助移动终端中所提供的浏览器发生。对于用户而言重要的是能够信任他或者她从网络下载的应用。除非在移动终端中应用适当的安全过程,否则使恶意代码潜入移动终端是很容易的。在移动终端中,恶意代码可能导致各种危害。例如,可能在并不适当通知用户的情况下,对收费服务号码建立呼叫,可能从移动终端收集并且盗用信息,以及如果移动终端支持某种移动支付系统,则可能以用户的名义进行支付购买。
历史显示已有多个例子的恶意程序是使用在另一平台上的解释器中所运行的解释的语言所编写的。这些恶意程序已经把解释环境、主机环境或者把两者都作为目标。由于解释器的运行时环境不提供与其他解释的程序或者与主机平台的充分隔离,因此恶意程序操作是可行的。
在本专利申请的上下文中将应用隔离定义为程序的持续状态和运行时行为的分离。程序可以自动共享它们的数据或者对其他程序的行为做出反应。
本领域专业人员所熟悉的现有特征包括数据锁定、进程的运行时隔离、能力框架、进程标识符、进程间通信(IPC)认证、可信计算基础、外围防护以及操作系统的软件安装程序。
这些特征一并对程序彼此之间、程序与可信计算基础以及程序与敏感系统接口加以隔离。当代操作系统中的显著特征是在进程边界处强制实施策略并且使得该系统基于进程隔离以及由此的程序隔离。可信计算基础还拒绝程序具有提高它们权限的能力。
安全的内核对本地程序彼此之间加以隔离。其意味着不可能对彼此之间未隔离的程序授予能力或访问资源。如果可能对彼此之间未隔离的应用授予能力,那么将不保证该能力不被“泄露(leak)”给恶意代码。基本上,对应用的隔离是能力框架的关键基础。
上文所述的安全性特征有助于防止恶意程序或者有缺陷的程序可能对平台、数据或者系统上的其他程序的损害。这些特征已被设计使得为本地程序提供应用隔离。系统规范目前未提出如何为解释的程序提供应用隔离。本发明提出一种实现此目的的方法。

发明内容
本发明涉及一种电子设备中的安全的解释程序方法。该方法包括在所述电子设备中提供至少一个共享解释器库和可执行原型存根,在所述电子设备中加载解释的程序,在所述电子设备中使用所述可执行原型存根形成可执行存根,在所述电子设备中将所述可执行存根和所述解释的程序相关联,为所述可执行存根分配至少一个第二能力,并且在所述电子设备中执行所述可执行存根。
本发明还涉及一种电子设备,该电子设备包括配置为执行解释器引擎的至少一个共享解释器库,配置为在所述电子设备中加载解释的程序、使用可执行原型存根形成可执行存根、为所述可执行存根分配至少一个第二能力、将所述至少一个第二能力与所述可执行存根相关联的安装器实体,以及配置为执行所述可执行存根的操作系统实体。
本发明还涉及一种包括当在数据处理系统上执行时适合于执行以下步骤的代码的计算机程序,该步骤包括加载解释的程序,使用可执行原型存根形成可执行存根,将该可执行存根与解释的程序相关联、为解释的程序分配至少一个第二功能,将该至少一个第二功能与可执行存根相关联,执行该可执行存根,可执行存根为至少一个共享解释器库指示解释的程序,以及可执行存根调用该共享解释器库中的至少一个功能用于解释该解释的程序。
本发明还涉及一种包括当在数据处理系统上执行时适合于执行以下步骤的代码的计算机程序,该步骤包括为解释的程序调用至少一个与所述计算机程序相关联的功能,从分配给所述计算机程序的安全源获得关于解释的程序的信息,为至少一个共享解释器库指示所述解释的程序,所述至少一个共享库包括至少一个实现用于解释解释的程序代码的解释器引擎的功能,以及调用所述共享解释器库中的至少一个功能用于解释所述解释的程序。
在本发明的一个实施方式中,该方法还包括可执行存根为所述至少一个共享解释器库指示所述解释的程序,可执行存根调用所述至少一个共享解释器库中的至少一个功能用于解释所述解释的程序,检查外部解释的程序代码段是否被该解释的程序所引用,为所述外部解释的程序代码段推断至少一个第一能力;以及如果所述至少一个第二能力不是所述至少一个第一能力的子集,则不允许执行所述外部解释的程序代码段。
在本发明的一个实施方式中,该至少一个共享解释器库进一步被配置为检查外部解释的程序代码段是否被解释的程序所引用、为所述外部解释的程序代码段推断至少一个第一功能、以及如果至少一个第二功能不是所述至少一个第一能力的子集,则不允许执行所述外部解释的程序代码段。
在本发明的一个实施方式中,安全源是电子设备中的安全目录。安全源例如可以是计算机程序代码本身或者其可以是存储计算机程序的目录。关于解释的程序的信息可以是解释的程序的文件名。安全源还可以是操作系统,其为计算机程序提供包括计算机程序的文件的文件名。
应该注意术语外部解释的程序代码段指的是从解释的程序本身以外所获得的解释的程序代码段,例如从不同于为电子设备中的解释的程序所保留的目录的目录获得。例如,外部解释的程序代码段可以从共享解释库读取。外部解释的程序代码段还可以在解释的程序的解释期间通过空中传输获得。术语至少一个第一功能指的是分配给外部解释的程序代码段的能力集合,例如共享解释库。术语至少一个第二能力指的是可执行存根的能力集合。应该注意单个能力可能包括多个独立的操作系统、数据通信或者关于电子设备管理的操作或者功能。换言之,出于方便的原因,多个功能可以分组为单个能力。程序或者一个程序代码可以与能力集合相关联。能力授予访问那些如果未授予则所述程序或者程序代码不可用的电子设备中的资源或者功能。能力由电子设备中服务所述程序的操作系统或者功能来维护。
本发明的一个实施方式中,基于包含解释的程序代码段的文件在电子设备的文件系统中的位置以及是否已经从可信的远程发送器接收了解释的程序代码段中的至少其一为解释的程序代码段确定可靠性类别,并且基于该可靠性类别授予信任级别。
在本发明的一个实施方式中,任意数据的执行在至少一个解释器库中是禁止的。其意味着,例如,用于执行任意数据的功能对于解释器引擎是不可用的。尝试呼叫这样的功能使得在解释器引擎中产生错误。在本发明的一个实施方式中,可执行存根在独立的进程环境中执行。当解释器引擎被编译为生成至少一个共享解释器库时该禁止可以预先执行。然后将该禁止版本提供给电子设备。
在本发明的一个实施方式中,外部解释的程序代码段例如从网络服务器通过空中传输加载在所述电子设备中。在本发明的一个实施方式中,外部解释的程序代码段是包括解释的程序代码的共享解释库中的功能。外部解释的程序代码段还可以通过解释的程序根据任意数据形成,使得解释的程序代码通过解释的程序本身传送到解释器引擎。
在本发明的一个实施方式中,授予共享解释库信任级别。该信任级别可以由用户或者由安装器实体自动授予。如果安装器实体自动授予信任级别,则信任级别可以通过检查由网络服务器所提供的信任级别信息获得。操作者可能已经对信任级别信息签名。该签名可能还已经由服务供应商或者任何其他可信的实体所执行。信任级别用于确定操作系统实体级别或者安装器实体级别中的至少一个第一能力。
在本发明的一个实施方式中,加载解释的程序包括从网络服务器下载解释的程序。
在本发明的一个实施方式中,提供至少一个共享解释器库和可执行原型存根包括从网络服务器将它们下载到电子设备。
在本发明的一个实施方式中,加载至少一个共享解释库包括从网络服务器将它们下载到电子设备。
在本发明的一个实施方式中,使用电子设备中的唯一标识符标识解释的程序。例如可以由操作系统实体和安装器实体使用唯一标识符,用于涉及解释的程序和可执行存根。至少一个第二能力可以通过操作系统实体与该唯一标识符相关联。
在本发明的一个实施方式中,电子设备包括移动终端。在本发明的一个实施方式中,电子设备包括SYMBIANTM操作系统设备。在本发明的一个实施方式中,电子设备包括通用分组无线系统终端或者全球移动通信系统终端。
在本发明的一个实施方式中,计算机程序存储在计算机可读介质上。该计算机可读介质可以是可移动存储卡、磁盘、光盘或者磁带。
在本发明的一个实施方式中,电子设备是移动设备,例如,膝上计算机、掌上计算机、移动终端或者个人数字助理(PDA)。在本发明的一个实施方式中,电子设备是台式计算机或者大型计算机。
本发明的有益效果关于所加载的解释的程序的改进的可靠性。本发明使得为本地操作系统中的可执行程序所定义的能力应用于解释的程序和每个程序的程序代码或者在解释器内所执行的程序代码,否则该能力被视为具有单个能力集合的本地操作系统中的单个任意应用。


附图示出了本发明的实施方式并且和描述一起帮助解释本发明的原理,其中所包含的附图提供了对本发明的进一步理解并且组成了本说明书的一部分。在这些附图中图1是示出了根据本发明的电子设备中的目录树的示例的框图;图2A和图2B是示出了本发明一个实施方式中的安全的程序解释的方法的流程图;以及图3是示出了根据本发明的电子设备的框图。
具体实施例方式
现在详细地参考本发明的实施方式,这些实施方式的示例在附图中示出。
图1是示出了根据本发明的电子设备中的目录树的示例的框图。该电子设备在图3中示出。在本发明的一个实施方式中,该电子设备是SYMBIANTM操作系统设备。目录树示出了哪些对该方法至关重要的文件存储在根据本发明的电子设备中以及它们的相互关系如何。图1中有根节点100,其与子目录101、102以及103相连接。子目录101存储二进制文件,其实现解释器。解释器例如可以是Java解释器、Perl解释器、PHP解释器或者Python解释器。子目录101中有文件111、112和113。文件111包括用于解释器的引擎,其直接执行程序源码或者执行已经使用编译器生成的字节码。由解释器引擎所解释的程序源码或者字节码在下文中称为解释的程序代码。编译器采用人类可读源码并且将其编译为字节码。但是,应该注意的是字节码可以是任何可以由解释器引擎执行的中间语言。该中间语言可以是为机器执行优选的任何格式。中间语言不一定必须包括一个字节大小的操作代码。基本上文件111是动态链接库(DLL),其包括用于执行解释器引擎的功能。文件112是可执行存根解释器,当其被执行时,其最终调用置于文件111中的解释器引擎。一旦解释的程序安装到电子设备,则文件113借助文件112形成。
子目录102包括一个程序,其将使用解释器引擎而得以解释。子目录102包括文件121,其包括解释的程序。子目录名中的组成<SID>表示安全标识符(SID),其已经被分配给解释的程序。该SID唯一地标识解释的程序并且使得将能力分配给解释的程序。能力表示可以由使用SID所标识的应用调用的操作系统功能或者操作系统功能的集合。能力的示例包括组建并且在远程网络上例如与远程因特网服务器进行通信的能力,以及访问存储在电子设备上的文件的能力。单个能力可以包括多个相关功能和操作。例如,所有与IP套接字相关的功能可以包括单个能力。其他能力可以涉及电源管理、通过BLUETOOTHTM(蓝牙)或者红外线的局域通信以及低级无线协议操作。
子目录103包括共享库,其包括将由例如存储在文件121中的解释的程序的解释的程序所调用的功能。共享库存储在文件131中。子目录132还包括策略文件,其控制如何在电子设备中管理共享库的策略。策略文件将定义如何管理/resource/<lang>目录和如何创建用于针对某种脚本自举解释器的lang-<version->-stub-interpreter.exe。使用策略定义文件的有益效果是没有解释器特定的外来码在软件安装程序的环境中执行。所有解释器的策略还可以在它们被实现之前被交叉引用并且检查错误和冲突。在这种情况下需要的策略支持也可以非常简单。为共享解释库分配信任级别,换言之,允许用于库中功能的能力的集合。该能力的集合是由操作者确定的或者是由用户确定的。在操作者确定的情况下,当文件从网络服务器下载时将能力指示给电子设备。该能力被验证,例如,使得使用操作者的数字签名对它们进行标记。在用户确定的情况下,提示用户指示哪些能力允许用于库。被分配给共享解释库的能力应该反映出哪些功能性已经被测试过并且因此在该库的情况下被认为是可靠的。例如,可以认为库下载文件到电子设备是安全的,但不允许读取电子设备中的文件。
图2A和图2B是示出了本发明一个实施方式中的安全的程序解释的方法的流程图。
在步骤202,共享解释器库包括主解释器代码,即提供给电子设备的解释器引擎。例如,可以提供共享库作为本地操作系统的一部分或者当用户要求下载解释器时,可以通过空中传输从网络服务器将共享库下载到电子设备。
在步骤204,将包括为解释单个解释的程序必须调用解释器引擎的功能的可执行原型存根提供给电子设备。例如,可以将可执行原型存根提供作为本地操作系统的一部分或者当用户请求从网络服务器下载解释器时通过空中传输将可执行原型存根下载到电子设备。共享解释器库的安装,包括主解释器代码,并且可执行原型存根可以在独立的安装器实体中执行,该实体将它们存储于电子设备中的非易失性存储器中。
在本发明的一个实施方式中,共享解释库也可以加载到电子设备。该共享库可以使用诸如磁盘或者光盘的可移动存储介质或者可移动存储卡加载到电子设备,或者共享库可以通过空中传输下载到电子设备。共享解释库的安装可以在独立安装器实体中完成,该实体将其存储在电子设备中的非易失性存储器中。
可选地,在步骤206,为电子设备中的共享解释库授予信任级别。信任级别规定了分配给共享解释库的能力的集合。该授予决定可以基于由操作者或者由电子设备所信任的任何其他实体签名的信任级别信息。该信任通过例如公钥基础结构(PKI)和信任链建立。电子设备的用户还可以经由电子设备的用户接口明确规定授予决定。
在步骤208,对电子设备加载解释的程序。例如,解释的程序通过空中传输下载。解释的程序可能已经由用户从WWW页或者WAP页选择。解释的程序例如从网络服务器下载,电子设备已经建立连接到该服务器。解释的程序的安装可以由安装器实体完成。在本发明的一个实施方式中,解释的程序还可以使用诸如磁盘或者光盘的可移动存储介质或者可移动存储卡加载到电子设备。
在步骤210,将唯一标识符分配给解释的程序。解释的程序可以使用可能已经下载到电子设备中的共享库中的功能。唯一标识符从颁发者获得,其负责为电子设备中执行的应用分配唯一标识符。
在步骤212,授予解释的程序的能力在电子设备中确定。例如,通过分析解释的程序的解释的程序代码确定能力或者可以在所提供的与来自网络服务器或者来自可移动存储介质的解释的程序相关联的独立文件或者数据结构中规定能力。还可以存在不为其授予能力的解释的程序。在这种情况下,解释的程序仅仅被允许向显示器呈现信息以及使用键盘与用户交互。
在步骤214,使用可执行原型存根形成可执行存根。形成可执行存根用于调用解释器引擎以及用于为解释器引擎确定解释的程序。使用可执行原型存根形成可执行存根。可以使用在独立策略文件中所提供的指令形成可执行存根,提供该文件例如与共享解释库相关联或者与解释的程序相关联。可执行存根的形成可以由安装器实体完成。
在步骤216,禁止运行来自可执行存根的其他程序。实现该禁止,使得例如可执行存根为解释器引擎明确指示待执行的解释的程序。解释的程序通过例如提供诸如图1中的文件121的解释的程序的文件名来指示。
在步骤218,为解释的程序所确定的能力被分配给电子设备中在步骤214所形成的可执行存根。可执行存根将表示用于操作系统安全功能的解释的程序。由于使用可执行存根调用解释器引擎并且为解释引擎提供解释的程序的事实,所以确保除了共享解释库中的解释的程序或者功能以外,不执行其他解释的程序代码。换言之,除非经由可执行存根否则不可能在解释器引擎中执行解释的程序。
标签“A”表示在图2A中所示的方法在图2B中的继续点。
在步骤220,负责通过可执行存根和解释器引擎对解释的程序加以解释的处理通过电子设备的操作系统在独立的进程环境下执行。对于每个解释的程序而言,具有独立的进程环境。
在步骤222,由解释器引擎检查该程序是否结束。如果程序未结束,则该方法继续到步骤224。
在步骤224,由解释器引擎检查外部解释的程序代码是否通过解释器引擎解释。如果是这种情况,则方法继续到步骤226,否则该方法继续到步骤220。外部解释的程序代码的一个示例是包含在共享解释库中的代码。外部解释的程序代码的另一个示例是在当前代码的解释期间电子设备已经接收到的代码。
在步骤226,外部解释的程序代码的信任级别通过解释器引擎与可执行存根的能力相比较。确定可执行存根的能力是与外部解释的程序代码的信任级别相关联的能力的子集,该外部解释的程序代码即,例如共享解释库。给定的信任级别唯一地规定了已经分配给外部解释的程序代码的能力集合。例如基于外部解释的程序代码在电子设备文件系统中的位置推断信任级别。例如,如果该代码位于诸如解释的程序的目录的可信目录中,或者位于语言特定的可信目录中,则其至少被授予解释的程序的能力。如果可执行存根的能力不是与信任级别相关联的能力的子集,换言之,可执行存根具有不属于为外部解释的程序代码所规定的能力集合的能力,则解释器引擎认为将超出信任级别。
在步骤228,解释器引擎检查是否超出信任级别。如果超出,则该方法继续到步骤230。否则该方法继续到步骤220。
在步骤230,解释器引擎不允许程序的执行。可以向用户提供适合的错误消息并且终止可执行存根的执行。
图3是示出了根据本发明的电子设备300的框图。电子设备300包括第一存储器(未示出)和第二存储器(未示出)。第一存储器是易失性RAM工作存储器并且第二存储器是非易失性存储器。在本发明的一个实施方式中,第一和第二存储器是同一存储器,其是非易失性的。电子设备还包括处理器(未示出)。
在图3中存在方框302,其示出了电子设备中的软件。该软件至少包括操作系统实体316、安装器实体304和通信实体306。该软件还可以包括解释器引擎310和与解释器引擎310相关联的可执行存根308。解释器引擎310执行用于例如解释的程序312的解释的程序的解释的程序代码。解释的程序可以使用至少一个存储在共享库314中的功能。共享库314包括在解释器引擎310所执行的解释的程序代码中规定的功能。共享库314还可以包括在电子设备的本地机器码中所规定的功能。可执行存根308用于调用解释器引擎310中的给定解释的程序的实例。没有其他解释的程序可以使用同一可执行存根在解释器引擎310中被调用。通信实体306完成电子设备中的涉及通信的任务。其包括用于无线接口通信和与例如因特网的远程网络通信的协议栈。当通信实体306从远程网络接收解释的程序312时,将其提供给安装器实体304。安装器实体304将解释的程序312存储到电子设备非易失性存储器。安装器实体304为解释的程序312创建特定的可执行存根。在本发明的一个实施方式中,当解释的程序312安装到电子设备300中的非易失性存储器中时,安装器实体使用策略文件形成必要文件。当共享库下载到电子设备300时,安装器304还可以负责非易失性存储器中的共享库314的安装和配置。类似地,当解释器下载到电子设备300时,安装器实体还可以负责安装和配置解释器引擎310和非易失性存储器中的原型存根。操作系统实体316或者安装器实体304可以负责为共享库和解释的程序分配信任级别和能力。在本发明的一个实施方式中,安装器实体304是电子设备300内所执行的应用。在本发明的一个实施方式中,可执行存根308是操作系统实体306之下电子设备300内所执行的应用。解释器引擎310是电子设备300的本地机器码中的动态链接库。功能由可执行存根308从动态链接库中调用。
在下文中描述本发明的一个实施方式,其中本发明的方法应用于SYMBIANTM操作系统环境中。解释的应用彼此之间和主平台的隔离的重要性比由这些解释的程序所操控的数据和所提供的功能性重要。如果仅一个程序为解释器执行,则隐含地执行应用隔离。
当使用单个解释器执行大部分应用时的情况应用隔离变得关键。大量平台安全工作将成为冗余,解释器不正确地应用平台安全。这将留给恶意程序将其他解释的程序的有价值数据作为目标的能力。
Microsoft宏病毒问题是该种问题的可能范围的最坏情况的一个示例。如果程序所运行其中的环境(例如Word、Excel)不安全,则主要操作系统是否安全并不重要。
集成意味着将操作系统平台安全的语法和语义的重要方面提供给解释的程序。需要下列特征解释的程序必须具有唯一标识,解释的程序必须具有其本身的私有目录,共享代码库必须具有信任级别并且信任级别必须如单独的程序那样被管理,解释的程序必须具有分配给其的能力集合,每个解释的程序必须在独立进程环境中执行,以及解释的程序必须由其能力集合所限制。
所提出的用于执行这些的方法以下文所述为基础。主要思想如下所述将可执行解释器放置在/sys/bin/lang-<version>-interpreter.dll的DLL中(<version>部分表示解释器的版本),创建/sys/bin/lang-<version>-stub-interpreter.exe(<version>部分表示解释器的版本)可执行存根,为每个解释的程序分配SID/VID对如为任何其他程序所分配的那样,将解释的程序文件置于目录/private/<SID>/中,对于每个解释的程序X将/sys/bin/lang-<version>-stub-interpreter.exe复制到/sys/bin/interpreted-program-X.exe并且向interpreted-program-X(解释的程序-X)分配能力X所具有的,stub-interpreter(存根-解释器)将总是从它的私有目录执行所指定的程序,将通用目标共享代码置于/resource/<lang>/lib中,将任何所需的本地DLL置于/sys/bin中,并且将指示用于管理共享代码的策略的文件置于/resource/<lang>/policy.txt下。
该解决方案基本上以将被认为是本地操作系统程序的这种方式将解释的程序映射到本地操作系统平台安全上。另外一个有益效果是其保持了类似于当能力分配给本地程序的情况下的用户体验。该解决方案还没解决如何为共享代码分配信任级别。这将在下一部分中论述。
所提出的设计不能彻底解决如何将信任级别分配给解释的程序外部的单独的多段代码。由于下列原因该问题很棘手。大多数解释语言从语言内提供对解释器的访问(例如在Perl或者Python中通过eval()函数)。因此任何I/O源可以用于提供ready-to-run(准备运行)代码(对于本地程序也是如此,但是这种代码的出现将拒绝认证)。
基于对解释器外部I/O的监控不能减少那些被用作代码以及那些作为数据的输入数据。
使用存根解释器可执行程序提供了一种为程序附加能力的简洁的方法,但是使用现有操作系统机制为任意输入附加能力仍没有简便方法。
基于上文所述,很明显为通用目的代码附加信任级别的任何健全的机制都需要来自实际解释器的支持。对于此有两种可用的选择拒绝将引起不可信代码的加载/运行代码带能力运行,基于代码来源在运行时引入较低的能力。
在运行时调整能力可能需要改变操作系统内核。折中的解决方案需要具有能力的解释器禁止加载和运行来自除脚本私有目录以外的其他源的代码。
不为/sys/resource中的共享代码库分配SID/VID值。SID/VID值仅分配给/sys/bin下的二进制文件。策略文件格式被定义为描述如何管理在解释的程序之间共享的解释的程序代码。策略文件将定义如下·如何管理/sys/resource/<lang>目录·如何为自举某种脚本的解释器创建lang-<version>-stub-interpreter.exe目录/sys是仅安装器实体可以写入的一个目录。但是每个程序可以读取该目录。目录/private/<SID>是仅可以由安装器实体或者存在于该目录中的程序读取的目录。电子设备具有这两种类型的目录的原则是指本质上的,而并非指目录的实际名称。
使用策略定义文件的有益效果是没有特定解释器外来代码在SWInstall(即软件安装程序)的环境中执行。所有解释器的策略还可以在执行它们之前交叉引用以及检查错误和冲突。在这种情况下所需要的策略支持也是非常简单的。
解释器应该具有以下在其中所执行的特征·在脚本内所使用的默认目录是/private/<SID>。如果文件不是全域可读取/可写入的,则必须明确声明。
·运行私有目录外部的代码并且如果程序已经被授予任何能力(包括用户能力),则禁止/sys/resource目录。一种方法希望是具有禁止该特征的特定的“developer-switch(开发者切换)”。
·如果已经授予了用户能力,则程序代码仅可以从程序私有目录和共享代码目录加载。
·如果已经授予了系统能力,则程序代码仅可以从程序私有目录加载。
对于本领域技术人员而言技术的进步很明显,本发明的基本思想可以按各种方式实现。因此本发明和它的实施方式不限于上文所描述的示例;取而代之的是它们可以在权利要求书的范围内改变。
权利要求
1.一种电子设备中的安全的程序解释的方法,所述方法包括在所述电子设备中提供至少一个共享解释器库和可执行原型存根;在所述电子设备中加载解释的程序;在所述电子设备中使用所述可执行原型存根形成可执行存根;在所述电子设备中将所述可执行存根与所述解释的程序相关联;为所述可执行存根分配至少一个第二能力;以及在所述电子设备中执行所述可执行存根。
2.根据权利要求1所述的方法,所述方法还包括所述可执行存根将所述解释的程序指示给所述至少一个共享解释器库;所述可执行存根调用所述至少一个共享解释器库中的至少一个功能用于解释所述解释的程序;检查外部解释的程序代码段是否被所述解释的程序所引用;为所述外部解释的程序代码段推断至少一个第一能力;以及如果所述至少一个第二能力不是所述至少一个第一能力的子集,则不允许执行所述外部解释的程序代码段。
3.根据权利要求2所述的方法,所述方法还包括在所述电子设备中加载所述外部解释的程序代码段;以及在独立的进程环境中执行所述可执行存根。
4.根据权利要求2所述的方法,其中所述解释的程序代码段的所述加载包括从网络服务器下载解释的程序代码段到所述电子设备。
5.根据权利要求2所述的方法,所述方法还包括为所述外部解释的程序代码段授予信任级别;以及基于所述信任级别确定所述至少一个第一能力。
6.根据权利要求5所述的方法,所述方法还包括基于包括解释的程序代码段的文件在所述电子设备的文件系统中的位置和所述解释的程序代码段是否已经从可信远程发送器接收中的至少其一,为所述解释的程序代码段确定可靠性类别;以及基于所述可靠性类别授予所述信任级别。
7.根据权利要求1所述的方法,其中所述解释的程序的所述加载包括从网络服务器下载所述解释的程序。
8.根据权利要求1所述的方法,其中所述提供所述至少一个共享解释器库和所述可执行原型存根包括从网络服务器下载所述至少一个共享解释器库和所述可执行原型存根到所述电子设备。
9.根据权利要求1所述的方法,其中使用所述电子设备中的唯一标识符标识所述解释的程序。
10.根据权利要求1所述的方法,其中所述电子设备是移动终端。
11.根据权利要求1所述的方法,其中所述电子设备是SYMBIANTM操作系统设备。
12.根据权利要求1所述的方法,其中所述电子设备是通用分组无线系统终端或者全球移动通信系统终端。
13.一种电子设备包括至少一个共享解释器库,其被配置为执行解释器引擎;安装器实体,在所述电子设备中其被配置为加载解释的程序、使用可执行原型存根形成可执行存根、将所述可执行存根与所述解释的程序相关联、为所述可执行存根分配至少一个第二能力;以及操作系统实体,其被配置为实现所述可执行存根。
14.根据权利要求13所述的电子设备,其中所述至少一个共享解释器库还被配置为检查外部解释的程序代码段是否由解释的程序所引用,为所述外部解释的程序代码段推断至少一个第一能力,以及如果至少一个第二能力不是所述至少一个第一能力的子集,则不允许执行所述外部解释的程序代码段。
15.根据权利要求14所述的电子设备,其中所述加载所述至少一个解释的程序代码段包括从网络服务器下载所述至少一个解释的程序代码段到所述电子设备。
16.根据权利要求14所述的电子设备,其中所述安装器实体还被配置为在所述电子设备中加载所述外部解释的程序代码段,并且所述操作系统实体还被配置为在独立的进程环境中执行所述可执行存根。
17.根据权利要求14所述的电子设备,其中所述至少一个共享解释器库还被配置为对所述外部解释的程序代码授予信任级别,并且基于所述信任级别确定所述至少一个第一能力。
18.根据权利要求13所述的电子设备,其中所述加载所述解释的程序包括从网络服务器下载所述解释的程序。
19.根据权利要求13所述的电子设备,其中所述安装器实体还被配置为从网络服务器下载所述至少一个共享解释器库和所述可执行原型存根到所述电子设备。
20.根据权利要求13所述的电子设备,其中所述操作系统实体还被配置为使用唯一标识符标识所述解释的程序。
21.根据权利要求13所述的电子设备,其中所述电子设备是移动终端。
22.根据权利要求13所述的电子设备,其中所述电子设备是SYMBIANTM操作系统设备。
23.根据权利要求13所述的电子设备,其中所述电子设备是通用分组无线系统终端或者全球移动通信系统终端。
24.一种包括当在数据处理系统上执行时适合于执行以下步骤的代码的计算机程序,所述步骤包括加载解释的程序;使用可执行原型存根形成可执行存根;将所述可执行存根与所述解释的程序相关联;为所述解释的程序分配至少一个第二能力;将所述至少一个第二能力与所述可执行存根相关联;执行所述可执行存根;所述可执行存根将解释的程序指示给至少一个共享解释器库;以及所述可执行存根调用所述共享解释器库中的至少一个功能用于解释所述解释的程序。
25.根据权利要求24所述的计算机程序,其中所述计算机程序存储在计算机可读介质上。
26.根据权利要求25所述的计算机程序,其中所述计算机可读介质是可移动存储卡。
27.根据权利要求25所述的计算机程序,其中所述计算机可读介质是磁盘或者光盘。
28.一种包括当在数据处理系统上执行时适合于执行以下步骤的代码的计算机程序,所述步骤包括为解释的程序提供至少一个与所述计算机程序相关联的能力;从分配给所述计算机程序的安全源获得关于所述解释的程序的信息;为至少一个共享解释器库指示所述解释的程序,所述至少一个共享库包括实现用于对解释的程序代码加以解释的解释器引擎的至少一个功能;以及调用所述共享解释器库中的至少一个功能用于解释所述解释的程序。
29.根据权利要求28所述的计算机程序,其中所述安全源是电子设备中的安全目录。
30.根据权利要求28所述的计算机程序,其中所述计算机程序存储在计算机可读介质上。
31.根据权利要求30所述的计算机程序,其中所述计算机可读介质是可移动存储卡。
32.根据权利要求30所述的计算机程序,其中所述计算机可读介质是磁盘或者光盘。
全文摘要
本发明涉及用于在电子设备中安全的程序解释的方法。加载一种解释的程序并且使用可执行原型存根形成可执行存根。该可执行存根与解释的程序相关联。还为该解释的程序进而为该可执行存根分配至少一个第二能力。可执行存根调用共享解释器库中的至少一个功能用于解释该解释的程序。解释器引擎检查解释的程序是否引用外部解释的程序代码段。解释引擎推断至少一个第二能力用于该外部解释的程序代码段。如果所述至少一个第一能力不是所述至少一个第二能力的子集,则该解释器引擎不允许执行所述外部解释的程序代码段。
文档编号G06F21/22GK101065756SQ200580040204
公开日2007年10月31日 申请日期2005年11月24日 优先权日2004年11月24日
发明者L·塔尔克卡拉 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1