程序运行控制方法、其设备以及运行控制程序的制作方法

文档序号:6570208阅读:271来源:国知局
专利名称:程序运行控制方法、其设备以及运行控制程序的制作方法
技术领域
本发明涉及要在计算机上运行的应用程序的运行控制,更具体而言, 涉及用于保护系统资源免受包含不可信代码的应用程序的影响以实现应用 程序的安全运行的应用程序的运行控制。
背景技术
当利用有线或无线网络或者外部存储卡从计算机终端的外部引入或获 得应用程序(下文中简称为"应用")时,由于应用的恶意操作、应用中 的bllg等,存在计算机终端中的各条数据被欺骗性地访问或者终端系统的 安全操作相互干扰的可能性。因此,在计算机终端上安全地运行包含不可 信代码的应用的技术是很重要的。
这一类型的传统技术的一个示例在日本专利早期公开No. 2001-514411 (专利文献1)中得到公开。在该传统技术中,从外部引入或获得的"应 用"被加载到被称为"沙盒(sandbox)"的存储器中,并且对存储器的访 问通过添加到应用代码的校验码来检查。对存储器的访问如果是在沙盒内 进行的则被允许,如果是在沙盒外进行的,则对访问是否被允许进行判 断,并且如果可允许则允许访问,否则阻止访问。而且,来自应用的API (应用编程接口)调用被称为"形实转换程序(thunk)"模块的转换代 码模块转换,"形实转换程序"模块能够对主机操作系统进行访问,同时 防止计算机系统的安全性的破坏。如果API调用是在应用的运行期间进行 的,则控制被传递到转换代码模块,并且对主机操作系统对API代码的运 行是否可允许进行判断。如果API调用的运行是可允许的,则运行API调 用,而如果API调用的运行不可允许,则不运行API调用。存在某些这样 的情况即某些API调用在以指定方式修改后被运行。

发明内容
本发明要解决的问题
根据专利文献1中公开的传统技术,从外部引入或获得的应用被加载
到存储器中,其中对存储器外部的访问受限,或者应用中的API调用被转 换代码模块转换,并且当进行调用时,对应用是否可被运行进行检查。 即,应用被在孤立的运行环境中运行。通过如上配置,在诸如存在于运行 环境外部的用户数据、库或设备驱动器之类的系统资源得到保护的同时, 可以安全地运行不可信应用。
但是,在上述专利文献1公开的技术中,从外部引入或获得的应用被 允许仅经由API使用库、设备驱动器等。每次进行API调用时,都通过转 换代码模块对应用是否可被运行进行判断,并且因此,由于此时导致的开 销,应用的运行速度降低。
从而,根据本发明,可以提供一种能够解决传统技术的问题以运行包 含不可信代码的程序并且减少开销的程序运行控制方法、程序运行控制设 备和程序运行控制程序。
解决问题的手段
本发明的第一程序运行控制方法是一种用于控制计算机上程序的运行 的程序运行控制方法,包括以下步骤布置设在计算机中的设备驱动器、
库和用户数据中的每一个的至少一部分,以使得该部分可被从在运行环境
中运行的程序引用,在运行环境中对运行环境的外部的访问受限;以及在 运行环境中运行程序。
本发明的第二程序运行控制方法是一种用于控制计算机上程序的运行 的程序运行控制方法,包括以下步骤布置设在计算机中的设备驱动器、 库和用户数据中、基于程序的域确定的范围中的设备驱动器、库和用户数 据,以使得设备驱动器、库和用户数据中的每一个可被从在运行环境中运 行的程序引用,在运行环境中对运行环境的外部的访问受限;以及在运行 环境中运行程序。
本发明的第三程序运行控制方法的特征在于,程序的域是基于与程序 相关联的域信息确定的。 本发明的第四程序运行控制方法的特征在于,程序的域是基于来自对 与程序相关联的数字证书或数字签名的验证的结果确定的。
本发明的第五程序运行控制方法的特征在于,当要布置在运行环境中 的设备驱动器、库和用户数据中的每一个的范围被确定时,其中对于每一 域类型设置了范围的表被引用。
本发明的第六程序运行控制方法的特征在于,获得在包含程序的包中 提供的域信息以将该信息用作与程序相关联的域信息。
本发明的第七程序运行控制方法的特征在于,所获得的域信息是在程 序中提供的。
本发明的第八程序运行控制方法的特征在于,获得在程序中提供的域 信息以将该信息用作与程序相关联的域信息。
本发明的第九程序运行控制方法的特征在于,获得在程序中提供的域 信息和在包含程序的包中提供的域信息中的至少一个,以将该信息用作与 程序相关联的域信息。
本发明的第十程序运行控制方法的特征在于,对附接到具有域信息的 包或具有域信息的程序的数字证书或数字签名进行验证。
本发明的第十一程序运行控制方法的特征在于,在第七、第八和第九 程序运行控制方法中的任意一个中,向具有域信息的程序提供了数字签 名,并且对于每一程序运行验证所提供的数字签名。
本发明的第十二程序运行控制方法的特征在于,在第一和第二程序运 行控制方法中,程序的运行环境是在程序的激活之前创建的。
本发明的第十三程序运行控制方法的特征在于,在第一和第二程序运 行控制方法中,在程序的激活之后程序的运行立即被暂停,程序的运行环 境被创建,并且在所创建的运行环境中恢复程序的运行。
本发明的第十四程序运行控制方法的特征在于,在第一或第二程序运 行控制方法中,根据与程序相关联的域信息来控制在运行环境中运行的程 序对计算机中的功能的可访问性。
本发明的第十五程序运行控制方法的特征在于,在第一和第二程序运 行控制方法中,根据与程序相关联的域信息来控制在运行环境中运行的程
序能够被产生的数据或文件的大小。
本发明的第十六程序运行控制方法的特征在于,在第一或第二程序运 行控制方法中,根据与程序相关联的域信息来限制在运行环境中运行的程 序对计算机中的资源的使用量。
本发明的第一程序运行控制设备是一种用于控制计算机上程序的运行 的程序运行控制设备,包括运行环境创建单元,用于布置设在计算机中 的设备驱动器、库和用户数据中的每一个的至少一部分,以使得该部分可 被从在运行环境中运行的程序引用,在运行环境中对运行环境的外部的访 问受限;以及运行控制单元,用于在运行环境中运行程序。
本发明的第二程序运行控制设备是一种用于控制计算机上程序的运行
的程序运行控制设备,包括运行环境创建单元,用于布置设在计算机中 的设备驱动器、库和用户数据中、基于程序的域确定的范围中的设备驱动 器、库和用户数据,以使得设备驱动器、库和用户数据可被从在运行环境 中运行的程序引用,在运行环境中对运行环境的外部的访问受限;以及运 行控制单元,用于在运行环境中运行程序。
本发明的第三程序运行控制设备的特征在于,运行环境创建单元基于 与程序相关联的域信息来确定程序的域。
本发明的第四程序运行控制设备的特征在于,在第二程序运行控制设 备中,运行环境创建单元基于来自对与程序相关联的数字证书或数字签名 的验证的结果来确定程序的域。
本发明的第五程序运行控制设备的特征在于,在第二程序运行控制设 备中,运行环境创建单元当确定要布置在运行环境中的设备驱动器、库和 用户数据中的每一个的范围时,引用其中对于每一域类型设置了范围的 表。
本发明的第六程序运行控制设备的特征在于,在第三程序运行控制设 备中,还包括域信息获得单元,用于获得在包含程序的包中提供的域信息 以将该信息用作与程序相关联的域信息。
本发明的第七程序运行控制设备的特征在于,在第六程序运行控制设 备中,域信息获得单元将所获得的域信息提供给程序。
本发明的第八程序运行控制设备的特征在于,在第三程序运行控制设 备中,还包括域信息获得单元,用于获得在程序中提供的域信息以将该信 息用作与程序相关联的域信息。
本发明的第九程序运行控制设备的特征在于,在第三程序运行控制设 备中,还包括域信息获得单元,用于获得在程序中提供的域信息和在包含 程序的包中提供的域信息中的至少一个,以将该信息用作与程序相关联的 域信息。
本发明的第十程序运行控制设备的特征在于,在第六、第八、第九程 序运行控制设备中的任意一个中,还包括验证单元,用于对附接到具有域 信息的包或具有域信息的程序的数字证书或数字签名进行验证。
本发明的第十一程序运行控制设备的特征在于,在第七、第八和第九 程序运行控制设备中的任意一个中,还包括验证单元,用于在具有域信息 的程序中提供数字签名,并对于每一程序运行验证所提供的数字签名。
本发明的第十二程序运行控制设备的特征在于,在第一和第二程序运 行控制设备中,运行环境创建单元在程序的激活之前创建程序的运行环 境。
本发明的第十三程序运行控制设备的特征在于,在第一或第二程序运 行控制设备中,运行控制单元在程序的激活之后立即暂停程序的运行,创 建程序的运行环境,并且在所创建的运行环境中恢复程序的运行。
本发明的第十四程序运行控制设备的特征在于,在第一或第二程序运 行控制设备中,根据与程序相关联的域信息来控制在运行环境中运行的程 序对计算机中的功能的可访问性。
本发明的第十五程序运行控制设备的特征在于,在第一或第二程序运 行控制设备中,运行环境创建单元创建这样的运行环境,在该运行环境中 根据与程序相关联的域信息来控制在运行环境中运行的程序能够被产生的 数据或文件的大小。
本发明的第十六程序运行控制设备的特征在于,在第一和第二程序运 行控制设备中,还包括资源控制单元,用于根据与程序相关联的域信息来 限制在运行环境中运行的程序对计算机中的资源的使用量。 本发明的效果
根据本发明,从外部引入或获得的程序在对运行环境的外部的访问受 限的运行环境中被运行,因此,防止了对存在于运行环境外部的用户数据 等的欺骗性访问,这使得能够安全地运行包含不可信代码的程序。而且, 程序被允许使用的设备驱动器、库和用户数据被布置为供在运行环境中运
行的程序引用,因此,与只可经由API调用对设备驱动器、库等进行访问 的传统技术不同,可以减少在运行程序时导致的开销。
可被运行在所创建的运行环境中的程序引用的设备驱动器、库和用户 数据中的每一个的操作范围被扩展得越多,在程序运行时导致的开销就减 少得越多。相反地,对系统破坏的风险增大。在本发明中,该问题是通过 根据代表程序来源的域确定操作范围来解决的。即,对具有好的来源和高 安全性的程序分配较宽的操作范围,而对于不具有好的来源也没有高安全 性的程序不分配范围或分配较窄的范围。
代表程序来源的域例如是基于与程序相关联的域信息确定的。在这种 情况下,如果可以得到在从外部引入的程序自身中提供的域信息,则使用 该域信息,而如果在程序自身中没有提供域信息,并且如果在其分组中提 供了域信息,则使用在分组中提供的域信息。而且,如果域信息被篡改, 则安全性受到危害,并且如果附接有数字证书或数字签名,则证书或签名 被验证,并且在确认证书或签名没有问题之后,域信息被使用。该验证是 在程序被安装时执行的。而且,当在程序自身中提供了域信息和数字证书 或数字签名时,或者即使当其中没有提供但是系统自动地提供了它们时, 则对于每一次程序的激活验证域信息和数字证书或数字签名,因此,安全 性得到了增加。
代表程序来源的域不仅可以根据以上述方式提供的域信息来确定,还 可以根据对与程序相关联的数字证书或数字签名的验证的结果来确定。
根据本发明,可以在减少开销的同时安全地在计算机上运行包含不可 信代码的程序。原因在于,对运行环境外部的访问受限的运行环境被创 建,并且存在于计算机中提供的运行环境外部的设备驱动器、库和用户数 据被布置为,使得设备驱动器、库和用户数据中的每一个的一部分被允许
被在运行环境中运行的程序引用,并且从外部引入和获得的程序被在运行 环境中运行。


图1是示出根据本发明第一实施例的配置的框图。
图2是示出根据本发明第一实施例的安装操作的流程图。
图3是示出根据本发明第一和第二实施例的运行环境创建操作的流程图。
图4是示出根据本发明第一和第二实施例的访问控制操作的流程图。
图5是示出根据本发明第一和第二实施例的运行环境的配置的框图。
图6是示出根据本发明第二实施例的配置的框图。
图7是示出根据本发明第二实施例的文件配置的示图。
图8是示出根据本发明第二实施例在启动应用时的操作的流程图。
图9是代表针对要在本发明第一实施例中使用的每一个域的运行环境
创建内容的表的配置图。
图IO是示出根据本发明第三实施例的配置的框图。
图11是代表针对要在本发明第一和第二实施例中使用的每一个域的
运行环境创建内容的表的配置图。
图12是代表针对要在本发明第三实施例中使用的每一个域的运行环
境创建内容的表的配置图。
图13是示出根据本发明第一实施例的安装操作的序列图。
图14是示出根据本发明第一实施例的运行环境创建操作的序列图。
图15是示出根据本发明第二实施例的运行环境创建操作的序列图。
具体实施例方式
下面参考附图描述本发明的某些优选实施例。 第一实施例
如图l所示,本发明的第一实施例包括客户终端ioo和经由有线或无 线网络连接到客户终端100的应用分发服务器200。客户终端100包括CPU (中央处理单元)101、 RAM (随机访问存储 器)102、 ROM (只读存储器)103、 HDD (硬盘驱动器)104、外部存储 器105、输出设备106、通信设备107、输入设备108、终端系统110、控 制装置120、应用获得装置130、域信息获得装置140、验证装置150、运 行控制装置160、访问控制装置170、资源控制装置180和运行环境创建 装置190。装置120至190中的每一个位于客户终端100的用户空间中。
终端系统UO包括应用存储区域lll、设备驱动器112、用户数据113 和库(库程序)114。
这些装置和设备中的每一个近似按如下方式操作。
CPU 101是控制每个装置和程序的运行并且还执行计算处理的中央处 理单元。
RAM 102是作为可读且可写的存储设备的随机访问存储器。RAM 102 用作当每个装置操作和/或其中运行每个程序时用于读和写数据的临时存储 设备。在某些情况下,RAM102临时存储自身的运行代码。
ROM 103是被配置为只读的只读存储器。ROM 103存储关于每个装 置、程序的运行代码、数据等的信息。即使当客户终端100关闭时,所存 储的运行代码和数据也不会被擦除。
HDD 104是作为可读且可写的存储设备的硬盘驱动器。其读写处理速 度低于RAM 102的速度,但是,其容量较大,并且即使当客户终端100 关闭时,所存储的运行代码和数据也不会被擦除。
外部存储器105是可与客户终端100分离的可读且可写的存储器。运 行代码或关于应用的数据、库114、用户数据113、设备驱动器112等被 保存在外部存储器105中。通过将外部存储器105附接到客户终端100, 运行代码或数据可以被添加到客户终端100。
输出设备106在显示设备上显示来自由客户终端100执行的处理的结 果并且输出语音。
通信设备107通过执行与外部的通信来将运行代码或关于应用的数 据、库114、用户数据113、设备驱动器112等捕捉到客户终端100中。 输入设备108通过操作键(按钮)或利用语音作出执行新处理的请
求,来将信息捕捉到客户终端100中。
控制装置120控制安装在客户终端100中的每个装置以执行以下处
理获得应用,创建用于运行应用的环境和对应用的运行施加控制。
应用获得装置130从应用分发服务器200或外部存储器105获得获取 应用(附接有域信息和数字签名或数字证书)的包,并将所获得的包存储 到客户终端100中的应用存储区域111内。
域信息获得装置140获得附接到由应用获得装置no获取的包的域信息。
验证装置150对附接到由应用获得装置130获得的包的数字签名或数 字证书执行验证处理。
运行控制装置160运行应用并在由运行环境创建装置190创建的运行 环境中施加各种控制。
当应用访问终端系统110时,访问控制装置170基于应用的域信息来 限制访问。
资源控制装置180基于应用的域信息来限制对要由应用使用的诸如 RAM 102、 HDD 104、 CPU 101之类的资源的使用量。
运行环境创建装置190创建孤立的运行环境,在该环境中可以在客户 终端IOO上运行应用。此时,根据附接到应用的域信息,终端系统110中 的设备驱动器112、用户数据113和库114中的每一个的一部分可以直接 从应用的运行环境的内部引用。而且,运行环境创建装置190对运行环境 的创建是一个不仅包含实际运行环境,还包含了对己经创建的运行环境的 选择的概念。这可以应用到本发明的其他实施例。
接下来,通过参考图l中的配置图,图2、 3和4中的流程图以及序列 图来描述第一实施例的整体配置的操作。
首先,执行从客户终端100的外部获得应用并将应用存储到客户终端 IOO中的操作。
客户终端100中的应用获得装置130根据由控制装置120提供的指 令,经由有线和无线网络获得来自应用存储区域111的包含应用的包,或 者获得来自外部存储器105的包含应用的包,并将所获得的包存储到应用
存储区域lll中(见图2中的步骤A1)。接下来,域信息获得装置140从 附接到所获得的包的域信息数据获得域信息(图2中的步骤A2)。域信 息是标识应用的分发者的类型的信息。从而,客户终端IOO在获得应用 时, 一次获取打包的一个或多个应用。在一个包中包含一条信息。在一个 包中包含的域信息被用作包中包含的每个应用的域信息。
接下来,验证装置150获得附接到应用的数字签名或数字证书(图2 中的步骤A3),然后验证数字签名或数字证书(图2中的步骤A4)。通 过该验证,确认包含应用的包和附接到其的域信息在通信期间未被篡改。
通过参考图13中的序列图来描述上述处理。首先,控制装置120向 应用获得装置130提供用于获得应用的指令(见图13中的步骤El)。当 通过通信从终端外部获得了应用时,利用通信设备107 (图13中的步骤 E2)从应用分发服务器200 (图13中的步骤E3)获得包。接下来,控制 装置120将包含所获得的应用的包存储到应用存储区域111中(图13中的 步骤E4)。应用存储区域111是在RAM 102、 HDD 104和外部存储器 105中的任意一个中留出的区域。接下来,控制装置120向域信息获得装 置140提供用于获得域信息的指令(图13中的步骤E5),并且域信息获 得装置140获得附接到应用存储区域111中存储的应用的包的域信息(图 13中的步骤E6)。而且,控制装置120指示验证装置150 (图13中的步 骤E7)获得附接到应用存储区域111中存储的应用的包的数字签名或数字 证书,并且还指示验证装置150 (图13中的步骤E9)执行验证数字签名 或数字证书的处理(图13中的步骤E10)。
接下来,描述运行从客户终端100的外部下载到客户终端100中的应 用的操作。
首先,客户终端100中的控制装置120利用运行环境创建装置190来 创建运行环境以在其中运行应用(图3中的步骤B1)。图5示出了运行环 境中的配置图。
运行环境300是这样一种环境,其中对运行环境的外部的访问例如受 限于存在于运行环境外部的终端系统110、设备驱动器112、用户数据113 和库114的功能。因此,通过在运行环境300中运行应用301,可以保护
终端系统和/或数据的功能免受应用301的影响。
而且,运行环境创建装置190在运行环境300中以这样一种方式来布 置设备驱动器112、用户数据113和库114中的每一个的部分或全部,在 该方式中,可以从运行环境300中的应用301进行访问。设备驱动器子集 302表明在设备驱动器112中包含的多个设备驱动器中每个设备驱动器的 部分或全部位于运行环境300内。设备驱动器子集302表明在用户数据 112中包含的多个用户数据中每个用户数据的部分或全部位于运行环境 300内。类似地,库子集304表明库114中包含的多个库中的每个库的部 分或全部位于运行环境300内。
运行环境创建装置190基于附接到应用301的包的域信息和预设的管 理表来确定设备驱动器112、用户数据113和库114中的每一个的哪些部 分要被布置在运行环境300中。图9示出了管理表400的一个示例。管理 表400由运行环境创建装置190管理,并且位于RAM 102、 ROM 103、 HDD 104和外部存储器105中的任意一个中,优选地位于专用于读取的存 储设备中以便不被恶意地重写。在管理表400中,描述了关于应用运行的 规范、运行环境、针对应用的每一个域类型可创建的数据大小的信息。
图9中所示的管理表400是以这样一种方式创建的,其中所有的应用 可以分类为域A、域B、域C和域D中的任何一种。在该管理表400中, 也可以运行属于这些域中的任意一个的应用。
对于属于域A的应用,设备驱动器全集、用户数据全集和库全集被安 装在运行环境300内,以使得设备驱动器112、用户数据113和库114可 以从运行环境300的内部进行访问并且被设置为使得不对可创建的数据的 总大小施加限制。
对于属于域B的应用,设备驱动器全集、库全集和用户数据子集被布 置在运行环境300中,以使得设备驱动器112和库114中的每一个的全部 以及只有用户数据113的一部分可以从运行环境300的内部进行访问并且 被设置为使得对可创建数据的总大小施加限制。
对于属于域C的应用,设备驱动器112被设置为不从运行环境300的 内部进行访问,因此,用户数据子集和库子集被布置在运行环境300中, 以使得用户数据113和库114可以部分地从运行环境300的内部进行访问 并且被设置为使得对可创建数据的总大小施加限制。
另外,对于属于域D的应用,设备驱动器112和用户数据113被设置 为不从运行环境300的内部进行访问,因此,库子集位于运行环境300 中,以使得库114部分地从运行环境300的内部进行访问并且被设置为使 得对可创建数据的总大小施加限制。该设置对应于只能引用最小应用的操 作所需的库的情况。
从而,运行环境被创建为使得要由应用产生的多个数据(文件)的总 大小的上限受限于图9中所示的管理表400中的可创建数据大小。
通过参考图14中的序列图来描述上述处理。当控制装置120向运行 环境创建装置190提供用于创建运行环境的指令时(图14中的步骤 Fl),运行环境创建装置190创建运行环境300,其中在客户终端100上 运行应用(图14中的步骤F2)。运行环境300是在RAM 102、 HDD 104 和外部存储器105中的任意一个中创建的。接下来,控制装置120指示运 行环境创建装置190顺序地执行设备驱动器布置处理、用户数据布置处理 和库布置处理(图14中的步骤F3、 F5和F7)。响应于这些指令,运行环 境创建装置190只在运行环境300中布置设备驱动器112、用户数据113 和库114中被规定为可以被对象应用的域引用的部分的那一部分,以使得 可以从对象应用进行对其的引用(图14中的步骤F4、 F6和F8)。从而, 如图5所示,创建了运行环境300,其中设备驱动器112、用户数据113 和库114中的每一个的子集被布置。
而且,运行环境创建装置190可以在紧接着应用的下载之后或者紧挨 着应用的运行之前创建运行环境。
在运行环境300的创建之后,运行控制装置160使应用301在运行环 境300中被运行。下面描述在运行环境300中运行应用301的同时所执行 的应用301的操作。
运行环境300中的应用301被允许自由地访问布置在运行环境300中 的设备驱动器112、用户数据113和库114中的每一个的集合(全集或子 集)。另一方面,当对运行环境300的外部进行访问时,例如,当对终端
系统110的功能进行访问时,访问被资源控制装置180检査(图4中的步 骤Cl),并且如果访问被允许,则访问可以进行(图4中的步骤C2), 而如果访问不被允许,则访问不能进行(图4中的步骤C3)。访问是否被 允许是根据附接到应用301的域信息来判断和确定的。而且,当应用301 被运行时要使用的客户终端100中的资源(例如CPU 101、 RAM 102、 HDD 104、输出设备106、通信设备107、输入设备108等)的使用量由资 源控制装置180限定。最大使用量根据附接到应用301的域信息来确定。 接下来,说明第一实施例的效果。
在第一实施例中,从外部获得的应用在孤立的运行环境300中运行, 其中对客户终端100的数据和/或功能的直接访问不被允许,因此,可以保 护客户终端100的数据或功能免受恶意访问,并且从外部引入或获得的应 用可以在客户终端IOO上运行。
而且,在第一实施例中,根据附接到从外部引入或获得的应用的包的 域信息,客户终端100的用户数据113、设备驱动器112或库114中的每 一个的部分或全部被布置在上述孤立的运行环境300中,因此,从外部引 入或获得的应用被允许使用的数据和功能的范围可以根据应用的域来设 置。这样,当应用进行对布置在运行环境300中的设备驱动器112、用户 数据113和库114的访问时,不需要在对存在于运行环境300的外部的数 据和功能的访问时所要执行的检査处理(例如在图4的步骤C中),这使 得由于省略了检査过程而能获得高速访问和客户终端100中导致的开销的 减少。
另外,在第一实施例中,应用可以产生的数据(文件)的总大小的上 限可以在与域信息相对应的每一运行环境300中设置。这可以对继续无限 制地创建数据文件的恶意应用或由于其bug而进行错误处理的应用施加限 制,从而抑制了对要由其他应用使用的区域的损坏。
第二实施例
下面参考附图详细描述本发明的第二实施例。
如图6所示,本发明的第二实施例由客户终端1构成。
客户终端1包括CPU 101、 RAM 103、 HDD 104、外部存储器105、 输出设备106、通信设备107、输入设备108、用户数据113、库(库程 序)114、应用117、 OS (操作系统)处理装置118、设备驱动器112和运 行控制处理装置116。
运行控制处理装置116包括控制装置1161、域信息获得装置1162、 验证装置1163、运行许可判断装置1164、访问控制装置1165、资源控制 装置1166和运行环境创建装置1167。
用户数据113、库114和应用117在客户终端1的用户空间中操作。 而且,OS处理装置118、设备驱动器112和运行控制处理装置U6在客户 终端1的内核空间中操作。即,运行控制处理装置116中包含的装置1161 至1167中的每一个被配置为充当OS系统的一部分。第二实施例的装置 1161至1167中的每一个不同于位于用户空间中的第一实施例的装置120 至190中的每一个。另一个不同之处在于,在第二实施例中,域信息和数 字签名或数字证书被附接到每一应用,而在第一实施例中,域信息和数字 签名或数字证书以包的单位被附接。
上述装置和设备中的每一个近似按如下方式操作。
CPU 101是控制每个装置和/或程序的运行并且执行计算处理的中央处 理单元。
RAM 102是作为可读且可写的存储设备的随机访问存储器。RAM 102 用作当在每个装置操作时以及程序运行时使用的数据被读或写时的临时存 储区域。在某些情况下,其临时存储自身的运行代码。
ROM 103是作为只读存储设备的只读存储器。每个装置的操作状态、 程序的运行代码、数据等被存储在其中。即使当客户终端1被关闭时,所 存储的运行代码和数据也不会被擦除。
HDD 104是作为可读且可写的存储设备的硬盘驱动器。其读写处理速 度低于RAM 102的速度,但是,其容量较大,并且即使当客户终端1关 闭时,所存储的运行代码和数据也不会被擦除。
外部存储器105是可与客户终端1分离的可读且可写的存储器。运行 代码或关于应用的数据、库114、用户数据113、设备驱动器112等被保 存在外部存储器105中。通过将外部存储器105附接到客户终端1,运行
代码或数据可以被添加到客户终端1。
输出设备106在显示设备上显示来自由客户终端1执行的处理的结果 并且输出语音。
通信设备107通过执行与外部的通信来将运行代码或关于应用的数 据、库114、用户数据113、设备驱动器112等捕捉到客户终端1中。
输入设备108通过操作键(按钮)或利用语音作出执行新处理的请 求,来将信息捕捉到客户终端l中。
OS处理装置118在OS的控制下执行处理,OS包括由应用117作出 的系统调用。另外,在执行系统调用处理的同时,OS处理装置118调用 控制装置1161。
控制装置1161控制装置1162至1167中的每一个,创建运行应用117
和库114的环境,并且控制运行。
域信息获得装置1162获得与库114和应用117相关联的域信息。 验证装置1163执行验证附接到应用117的数字签名和/或数字证书的处理。
运行许可判断装置1164运行应用117和库114,并且在由运行环境创 建装置1167创建的运行环境中施加各种控制。
访问控制装置1165控制应用117对客户终端1中的资源的访问。
资源控制装置1166基于应用117的域信息来限制要由应用117和库 114使用的包括RAM 102、 HDD 104、 CPU 101等的资源的使用量。
运行环境创建装置1167创建孤立的运行环境,其中应用117被允许 在客户终端1中运行。此时,根据附接到应用117的域信息,客户终端1 中的设备驱动器112、用户数据113和库114中的每一个的一部分可以从 运行环境的内部进行引用。如同第一实施例的情况一样,运行环境创建装 置1167在RAM 102、 ROM 103、 HDD 104和外部存储器105中的任意一 个中安装了如图9所示的用于创建运行环境的管理表400以进行管理。运 行环境被创建为使得要由应用产生的多个数据(文件)的总大小的上限受 限于图9所示的管理表400中的可创建数据大小。
接下来,通过参考图8、 3和4中的流程图以及图15中的序列图来描
述第二实施例的整体配置的操作。
首先,客户终端i从外部获得应用in并将其存储到客户终端i。当
从外部获得应用117时,客户终端1可使用任何途径。客户终端1可使用 通信设备107来接收应用117,或者可通过将保存有应用的外部存储器 105连接到客户终端l来获得应用117。而且,与图1中所示的第一实施例 的应用获得装置130不同的是,不需要特殊的装置来获得应用117。 S卩, 一个应用117可以从客户终端1的外部获得另一个应用117。从外部不仅 可获得应用,而且可获得库114和用户数据113。所获得的应用117可以 存储在RAM 101、 HDD 104和外部存储器105中的任意一个存储设备中。 在第二实施例中,所获得的应用附接有域信息和数字签名或数字证书。
接下来,通过参考图8描述当应用被激活时执行的操作。
当应用117启动时,应用117与其域信息、数字签名或数字证书一同 被加载到诸如RAM102之类的存储设备中(图8中的步骤D1)。
此时OS处理装置118调用控制装置1161。控制装置1161调用域信息 获得装置1162来获得示出应用117的来源的域信息(图8中的步骤 D2)。域信息获得装置1162取得附接到应用117的域信息。域信息是用 来标识应用的分发者的种类的信息。如果域信息未被附接到应用117,则 应用117被判断为由属于不可信域的分发者分发的应用并且被按此处理。
接下来,验证装置1163获得附接到应用117的数字签名或数字证书 (图8中的步骤D3)。然后,验证装置1163验证所获得的数字签名或数 字证书(图8中的步骤D4)。用于这一验证的密钥位于RAM 102、 ROM 103、 HDD 104、外部存储器105或CPU 101中包括的防篡改区域中,并 且位于客户终端1中包括的防篡改区域中。通过这一验证,可以确认应用 117和附接到其的域信息未被篡改。如果应用未附接有数字签名或数字证 书,或者即使应用附接了数字签名或数字证书但是验证失败,则判断出应 用有被篡改的可能,并且返回错误结果。
而且,在第一实施例中,域信息和数字签名或数字证书是以包含多个 应用的包为单位附接的,但是在第二实施例中,是针对每一应用117附接 的。图7示出了这些条信息已被嵌入到的应用的文件的配置。图7中的文
件500包括构成应用的运行代码501 (其成为可以在客户终端1上运行的 代码)、成为构成应用的运行代码501所属的域的域信息502、以及成为 其中向运行代码501和域信息502提供签名的信息的数字签名503。在图 7中,数字签名503被附接到的文件500被示为示例,但是,可以使用附 接有数字证书而不是数字签名503的文件。
接下来,运行许可判断装置1164基于由附接到应用117的域信息示 出的域的类型和图9中的管理表400来确定是否许可应用117的运行(图 8中的步骤D5)。如果运行不被许可,则返回错误结果。
通过参考图15中的序列图来描述上述处理。控制装置1161当应用 117被加载到其中时,调用域信息获得装置1162来获得示出应用117的来 源的域信息(图15中的G1)。域信息获得装置1162取得附接到应用117 的域信息(图15中的G2)。另外,控制装置1161指示验证装置1163从 应用117获得数字签名或数字证书(图15中的步骤G3)并验证其签名或 证书(图15中的步骤G4)。然后,控制装置1161请求运行许可判断装置 1164判断应用是否被允许运行(图15中的G5)。
接下来,通过参考图3和15来描述运行应用117的环境的创建。
在运行许可判断装置1164提供了对应用117的运行的许可之后,控 制装置1161调用运行环境创建装置1167 (图15中的G7),并且创建运 行应用的运行环境(图3中的步骤Bl和图15中的步骤G8)。在运行环 境中,对位于运行环境外部的设备(例如,对设备驱动器112、用户数据 113和库114)的访问受到限制。因此,通过在运行环境中运行应用117, 可以保护客户终端1的功能或数据免受应用的影响。在该环境中,留出了 图9的管理表400中所示的针对每一个域可产生的区域,在该区域允许应 用的运行。
而且,运行环境创建装置1167创建运行环境,并且在运行环境中布 置设备驱动器112、用户数据113和库114中的每一个的部分或全部(步 骤B2),以使得该部分可以从运行环境中的应用117进行访问。应用117 在该运行环境中运行。设备驱动器112、用户数据113和库114的哪些部 分被引用是基于附接到应用的域信息和图9中所示的管理表而确定的。
在运行环境的创建之后,任务被从控制装置1161和OS处理装置118
返回,并且应用in被正常激活以运行。
接下来,描述在运行应用时访问控制装置1165限制应用117对指定 的设备驱动器、用户数据或库的访问的方法。
应用117在被运行时被允许对于布置在由运行环境创建装置1167创 建的运行环境中的设备驱动器112、用户数据113和库114来说是可自由 访问的。另一方面,应用117对未放置在运行环境中的设备驱动器112、 用户数据113和库114的每个集合的访问由访问控制装置1165限制。
例如,假定应用117调用OS处理装置118以便访问用作设备驱动器 的通信设备107的控制设备驱动器。OS处理装置118调用访问控制装置 1165检査访问是否被许可。访问控制装置1165基于用作应用117的原始 文件的位置来判断该应用是原先就存在于客户终端1上的应用,还是从外 部获得的新应用。如果该应用是原先就存在的,则访问被许可,否则不被 许可。来自该处理的结果被作为返回值返回到控制装置1161和OS处理装 置118。这里,如果访问被许可,则OS处理装置118响应于来自应用117 的调用而访问通信设备107的控制设备驱动器。另一方面,如果访问不被 许可,则返回错误结果。
在运行应用117时使用的包括CPU 101、存储器、HDD 104、网络等 的客户终端1中资源的使用量受资源控制装置1166的限制。资源的最大 使用量由资源控制装置1166以与当确定对资源的访问时采用的方式相同 的方式,根据应用117是否是从客户终端1的外部获得的而加以确定。
根据第二实施例,描述了对应用117的运行控制,但是,通过也将域 信息和数字签名或数字证书附接到库,可以对应用进行相同的运行控制。
接下来,描述第二实施例的效果。
根据第二实施例,可以获得与第一实施例中相同的效果,另外,还可 以实现下面的效果。
根据第二实施例,当应用在客户终端1上被某人篡改时,可以进行验 证。原因在于,如图7所示,域信息502和数字签名503或数字证书是在 包含构成应用的运行代码501的每一运行文件中附接的,另外,每次运行
文件500作为应用启动时,利用域信息502和数字签名503或数字证书来 进行对篡改的检查(图8中的步骤D1至D5)。在第一实施例中,对篡改 的检查只在包含多个应用的包被开发时利用域信息和数字签名或数字证书 进行一次,因此,处理被简化,但是相反地,在这一时刻之前的其他篡改 不被检查,结果,还需要对从包开发的应用的严格管理。
另外,根据第二实施例,如果某人试图从外部获得应用,则客户终端 1可以利用所有可能的方法安全地安装来自外部的应用。原因在于,如图 7所示,域信息和数字签名503或数字证书是针对包含构成应用的运行代 码501的每一运行文件500附接的,并且每次在运行文件500作为应用被 激活时,利用域信息502和数字签名或数字证书进行对篡改的检査(图8 中的步骤D1至D5)。在第一实施例中,当包含多个应用的包被开发时, 利用域信息和数字签名或数字证书对篡改的检査只进行一次,因此,如果 被认为是安全的客户终端1上的应用进入与外部服务器的通信,则与假定 接收到恶意的应用然后将该应用存储到客户终端1上的存储设备中不同的 是,不进行对恶意应用的检查,这允许恶意应用被运行而不进行检查。结 果,在第一实施例中,需要控制以便许可应用只与可信服务器通信或者许 可只运行保证是已通过开发包而存储的应用。
另外,根据第二实施例, 一个应用可以安全地激活另一个应用,而不 用考虑安全性。原因在于,域信息获得装置1162、验证装置1163、运行 许可判断装置1164和运行环境创建装置1167作为OS功能的一部分而存 在,并且所有这些装置都可以从OS处理装置118无失败地调用(系统调 用),而OS处理装置118总是在应用激活时被调用,并且创建了与要激 活的应用的来源和/或分发者相匹配的运行环境。在第一实施例中,每个装 置在用户空间中操作,因此, 一个特殊应用,除非具有域信息获得装置 140、验证装置150、运行控制装置160和运行环境创建装置190,否则不 能通过创建与另 一个应用的来源相匹配的运行环境来激活该另 一个应用。 即,在第一实施例中,除了具有上述装置的特殊应用以外的一个应用不能 安全地激活另一个应用。
第三实施例接下来,参考附图描述本发明的第三实施例。
本发明的第三实施例的配置如图IO所示。第三实施例的配置与图6
中所示的第二实施例的配置的不同之处在于,存在于客户终端1的内核空
间中的访问控制装置1165、资源控制装置1166和运行环境创建装置1167 被去除,应用分发服务器2连接到客户终端1,并且运行环境创建装置 115被额外放置在客户终端1的用户空间中。
运行环境创建装置115包括控制装置1151、应用获得装置1152、域 信息设置/获得装置1153、签名嵌入/验证装置1154、运行控制装置1155、 访问控制装置1156、资源控制装置1157、运行环境创建装置1158和应用 存储区域1159。
第三实施例的应用分发服务器2、控制装置1151、应用获得装置 1152、运行控制装置1155、访问控制装置1156、资源控制装置1157和运 行环境创建装置1158的功能分别与图1的第一实施例的配置图中所示的 应用分发服务器200、控制装置120、应用获得装置130、运行控制装置 160、访问控制装置170、资源控制装置180和运行环境创建装置190的功 能相同,并且它们的操作与第一和第二实施例中几乎相同。
域信息设置/获得装置1153不仅具有从应用的包取得域信息的功能 (这是图1的第一实施例的配置图中所示的域信息获得装置140的功 能),还具有将域信息嵌入到通过开发包取得的应用中的功能。另外,签 名嵌入/验证装置1154不仅具有验证附接到应用的包的数字签名或者验证 数字证书的功能(这是图1的第一实施例的配置图中所示的验证装置150 的功能),还具有新将数字签名或数字证书附接到通过开发包取得的应用 的功能。
第三实施例的组件中除了上述组件以外的组件与第二实施例中的相 同,并且它们的操作几乎相同。
下面关于第三实施例的描述集中于与第一和第二实施例的主要不同点。
由应用获得装置1152从应用分发服务器2或外部存储器105获得的应 用可以是通过对多个应用打包而获得的应用包或者一个应用。
当获得了应用包时, 一个域信息和数字签名或数字证书被附接到该 包。而且,如同第二实施例的情况一样,如图7所示,域信息和数字签名 或数字证书可以是也可以不是附接到应用包中包含的一个应用。根据第三 实施例,如果域信息和数字签名或数字证书不是附接到由客户终端1获得 的应用包中包含的每个文件,则在应用包的开发之后,域信息和数字签名 或数字证书被附接到每个文件。即,应用包中包含的域信息由域信息设置/
获得装置1153取得,并且所取得的相同域信息被附接到已被包含在包中 的应用117。其后,数字签名或数字证书由签名嵌入/验证装置1154附接 到应用117。
当获得了一个应用时, 一条域信息和数字签名或数字证书被附接到所 获得的应用。
第三实施例从应用117的获得到运行的操作几乎与第一实施例中的相 同。第三实施例的操作与第一实施例的操作的不同之处在于,在运行应用 时,应用的签名被进一步验证。即,通过将数字签名附接到应用包和应 用,在获得应用包时进行对篡改的检査,并且在运行应用时再次执行对篡 改的另一检查。
与第一实施例中一样,在从应用117的获得到运行的时间段期间,由 运行环境创建装置1158创建运行环境。其后,在所创建的运行环境中运 行应用117。
在激活应用117时,运行控制处理装置116确认域信息和数字签名或 数字证书是正确的。
而且,在图10中,访问控制装置1156、资源控制装置1157和运行环 境创建装置1158被包含在放置在用户空间中的运行环境创建装置115 内,但是,这些装置中的某一些可以包含在放置在内核空间中的运行控制 处理装置116内,而不是在运行环境创建装置115内。
此外,在图10中,域信息设置/获得装置1153和签名嵌入/验证装置 1154被包含在放置在用户空间中的运行环境创建装置115内,但是,这些 装置可以包含在放置在内核空间中的运行控制处理装置116内,而不是在 运行环境创建装置115内。在这种情况下,域信息设置/获得装置1153和
签名嵌入/验证装置1154被包含在域信息获得装置1162和验证装置1163 中。这样,在应用包的幵发之后,对在包中包含的每个文件中嵌入域信息 的处理或者对将数字签名或数字证书附接到每个文件的处理可以由放置在 用户空间中的运行环境创建装置115所包含的控制装置1151实现,控制 装置1151经由OS处理装置118从放置在内核空间中的运行控制处理装置 116所包含的控制装置1161调用域信息获得装置1162和验证装置1163。 接下来,描述第三实施例的效果。
根据第三实施例,可以获得与第一实施例中相同的效果,并且另外, 还可以实现下面的效果。
根据第三实施例,馈送给包含应用的包的域信息被提供给应用,并且 数字签名或数字证书被新提供给具有域信息的应用,并且当应用被激活 时,附接到应用的数字签名或数字证书被验证,因此,与第一实施例相 比,可以以更安全的方式来运行程序,其中在第一实施例中,附接到与域 信息一起提供的包的数字签名或数字证书只在程序被安装时被验证。
第四实施例
接下来,参考附图描述本发明的第四实施例。
在第一至第三实施例中,为了减少当应用运行(启动)时导致的开 销,在应用的运行之前执行创建运行环境的处理。在第四实施例中,在应 用的激活之后,应用的运行被立即暂停以创建应用的运行环境,并且应用 的运行在所创建的运行环境中恢复。
在第四实施例中,如同第三实施例的情况一样,采用图10中所示的 配置,并且在第四实施例中反转了第三实施例中调用运行控制处理装置 116和运行环境创建装置1158的顺序。这里,可以通过应用获得装置 1152或者通过其他方法来获得应用117。 g卩,任何方法都可用于获得应用 117。应用117没有必要存储在应用存储区域1159中。所要求的是域信息 和数字签名或数字证书被附接到应用117。
紧接着应用117被运行控制装置1155或其他装置激活之后,域信息 获得装置1162和验证装置1163被经由OS处理装置118从放置在内核空 间中的运行控制处理装置116中包含的控制装置1161调用。通过执行这
些处理,可以获得应用117的域信息,并且数字签名或数字证书的验证完
成,从而确保了应用117的完美。
当运行控制处理装置116获得域信息时,放置用户空间中的其他装置 立即继续处理。放置在用户空间中的控制装置1151和运行环境创建装置 1158经由OS处理装置118被调用。此时,域信息被传递到其。然后,运 行环境创建装置1158创建与域信息相对应的运行环境。其后,应用117 被正常地激活并且其运行继续。
结果,在内核中只执行了获得域信息和验证数字签名或数字证书的处 理,并且其后在用户空间中执行剩余的处理。
而且,域信息获得装置1162可以被从内核空间中去除,并且放置在 用户空间中的域信息设置/获得装置1153可以获得域信息。在这种情况 下,在内核空间中,只执行附接到应用117的数字签名或数字证书的验 证。
在上述实施例的每一个中,程序的域是基于附接到应用包或程序的域 信息确定的,但是,在第四实施例中,确定程序的域的方法并不限于上述 实施例中采用的域确定方法,而是可以通过其他方法确定。可用方法的一 个示例包括这样的方法,该方法在数字签名或数字证书被附接到应用包或 程序时基于来自数字签名或数字证书的验证的结果来确定程序的域。更具 体而言,通过依次利用示出验证成功的根证书或预先附接到每个域的开放 密钥执行附接到应用的数字签名或数字证书的验证,与根证书或公共密钥 相对应的域和与即使利用任何根证书或公共密钥验证也不成功的情况相对 应的域被用作程序的域。
接下来,通过参考示例详细描述实施例的配置和操作。
示例1
首先,禾U用图1的配置图来说明基于上述第一实施例配置的示例1。 而且,作为示出创建每一个域的运行环境的方法的管理表400的具体示 例,使用了管理表401。在示例1中,运行环境是基于图11中所示的内容 创建的。
在示例1中,当应用被从外部引入到客户终端IOO上时执行的处理流
如下所示。
假定如图1所示,要从外部馈送的应用存在于应用分发服务器200上 或外部存储器105中。作为外部存储器105,提供了诸如SD (安全数字) 卡、致密闪盘(CompactFlash )之类的可去除存储卡。
这里,要处理的应用的形式包括单个文件、多个文件群组(例如各自 由运行文件和各种设置文件以及应用的运行所需的数据构成的文件群 组)、以及利用一般数据存档软件(例如,zip、 tar格式)打包的多个文 件群组。
另外,示例1的外部应用包括具有应用的域信息的描述的信息文件。 假定在示例1中,应用是以通过将多个文件群组打包为一个文件而获得的 应用包的形式分发的,并且其域信息文件被包含在一个应用包中。
域信息包含用于对应用的归属分类的信息,并且根据这一归属,要创 建的运行环境被控制,并且访问和资源控制的范围以及限制度被改变。作 为归属名,例如可以使用应用的创建者所属的公司名。另外,当客户终端 100是移动电话时,可以使用诸如移动电话运营商、移动电话供应商、可 信第三方供应商、不可信供应商等的组织名来进行分类以创建运行环境。 另外,作为包含可使用的域信息的信息文件的示例,提供了一般数字证 书。作为数字证书的形式,例如X.509格式被广泛使用。利用数字证书, 这里描述的域信息被当作由可信认证机构担保的域信息加以处理。
一般数字签名可以附接到要在示例1中处理的外部应用以进行发送。 通过附接数字签名,可以检测到在网络上分发的应用文件的篡改。通过利 用由应用分发者持有的私密密钥对由诸如SHA-1 (安全散列算法,Secure Hash Algorithm)之类的散列算法创建的应用包文件的散列数据加密而获 得的数字签名的形式被广泛采用。由应用分发者持有的私密密钥对应于附 接到应用的证书中包含的开放密钥,并且利用证书中包含的开放密钥,可 以对加密的签名数据进行解密。
假定在示例1中, 一个数字证书或一个数字签名附接到一个应用包。 客户终端100的控制装置120将应用安装在客户终端100中,这是通过以 下方式实现的利用应用获得装置130从通过有线或无线网络连接的应用
分发服务器200或从外部存储器105中获得这一形式的外部应用、附接的 域信息、数字证书、数字签名文件等,并将其存储到客户终端100内部的 应用存储区域lll中(图2中的步骤A1)。所存储的应用包被开发并存储 为构成应用的文件。而且,域信息与每个文件相关联。
其后,利用域信息获得装置140,从域信息文件获得域信息(图2中 的步骤A2)。接下来,利用验证装置150,获得附接到应用的数字证书或 数字签名(图2中的步骤A3),然后对应用进行验证(图2中的步骤 A4)。验证确认了附接到应用的域信息是正确的并且应用文件未被篡改。 从而,从客户终端IOO的外部将应用安装到终端中的处理终止。 接下来,描述从客户终端100的外部获得的应用的运行。 控制装置120在运行从外部获得并被存储在应用存储区域111中的应 用之前,首先利用运行环境创建装置190创建应用的运行环境(图3中的 步骤B1)。这里创建的应用的运行环境是与在客户终端IOO中受保护的诸 如存储器空间、盘、库、盘驱动器等的各种资源和功能相分离的孤立环 境,并且要在运行环境中运行的应用不被允许自由地访问这些资源和功 能。这可以防止从外部获得的应用欺骗性地访问客户终端100中的数据和/ 或功能并与其他应用的操作相干扰。
另外,在运行环境中,与客户终端100上的文件系统不同的独立文件 系统被准备并在其中分配,并且在大小上允许根据域限定的文件系统被创 建。作为用于实现这种独立运行环境和文件系统的方法的示例,包括一种 创建另一种不同的应用运行环境或OS系统上的另一文件系统或客户终端 IOO的系统文件的方法。这是这样一种技术,其中作为客户终端IOO的OS (称为"宿主OS")上的应用,使得另一 OS (称为"访客OS")操 作,并且使得外部应用在访客OS上运行,并且被称为Java V1V^或UML (使用模块Linux,即,在一个Linux OS上操作另一个Linux OS的技术) 的技术是一个示例。创建另一文件系统的方法的示例包括利用在UNIX^等 中采用的chroot命令将可以从外部应用引用的目录限制到文件系统的部分 或全部的方法。另一示例包括在具有多个处理器的多处理器环境中,使处 理器A操作客户终端100的基础系统和其OS并且使另一处理器B操作另
一 OS的方法。在这种情况下,由处理器B运行的OS上的环境被当作与 基础系统所操作的环境不同的独立运行环境,并且外部应用在独立环境中 被操作。
通过针对被设置为图11中的管理表401的每一个域分配可创建数据 大小值,在移动电话运营商中,使得利用存在于用作基础的客户终端100 上的文件系统来产生数据(文件),而不创建另一独立文件系统。在移动 电话供应商、可信第三方供应商和不可信供应商中,创建了提供这样的区 域的文件系统,在该区域中可以分别产生1M字节、300K字节和10K字 节大小的数据。
而且,运行环境创建装置190在如上所述根据应用的域信息创建的应 用运行环境中布置设备驱动器112、用户数据113和库114中的每一个的 部分或全部(图3中的步骤B2)。
还假定在示例1中,设备驱动器112、用户数据113和库114中的每 一个由客户终端100的终端系统110中的多个目录构成。以用户数据113 为例,在每个电话目录数据、邮件地址数据、图像数据等中根据每一数据 种类存储了每一条数据。因此,对用户数据的布置部分的处理是指这些目 录的部分被布置。
如代表布置之后的运行环境的图5所示,通过在应用的运行环境300 中布置设备驱动器子集302、用户数据子集303和库子集304,运行在运 行环境300中的应用301可以引用并利用这里布置的操作范围内的设备驱 动器、用户数据和库。
设备驱动器112、用户数据113和库114中的每一个的哪一操作范围 要被布置在运行环境中是根据与应用相关联的域信息和图1中所示的管理 表401来确定的。当域信息例如被分类为四种信息类型(包括关于移动电 话运营商、移动电话供应商、可信第三方供应商和不可信供应商的信息) 时,执行以下处理对移动电话运营商和移动电话供应商布置设备驱动器 112、用户数据113和库114中的每一个的全部操作范围的处理,对不可 信供应商不布置任意一个操作范围的处理,以及对可信第三方供应商布置 操作范围中的一部分的处理。这可以通过准备这样一个目录来实现,在该
目录中,设备驱动器全集、用户数据全集和库全集以被引用的方式位于用
作基础的文件系统上。通过在运行环境中创建/dev、 /bin、 /lib、 /usr、 /etc 等作为目录以使得所创建的作为目录的/dev、 /bin、 /lib、 /usr、 /etc等可以 被设备驱动器全集或子集、用户数据全集或子集、库全集或子集根据域信 息来引用,可以在运行环境中根据域布置设备驱动器、用户数据和库。而 且,在某些情况下,设备驱动器、用户数据和库中的每一个的全集或子集 可以以拷贝形式布置在运行环境中。
在创建了运行环境之后,控制装置120利用运行控制装置160在运行 环境300中运行应用301。当应用301在Linux等上运行时,应用301被 作为进程运行。唯一地标识进程的标识符与域信息相关联,而域信息与应 用相关联。
运行在运行环境300中的应用301可自由访问放置在运行环境300中 的设备驱动器、用户数据和库,但是,其对放置在运行环境300外部的终 端系统110的各种功能(例如,显示功能、通信功能等)以及对终端系统 IIO中的设备驱动器112、用户数据113和库U4的访问受限于访问控制装 置170。
访问控制装置170限制访问的具体方法的一个示例包括这样一种方 法,其中检查功能被嵌入在设置终端系统中的API内以进行访问,并且当 每个API被调用时,检查功能在访问控制装置170处进行关于可访问性的 査询,并且只有当访问被允许时,才进行API调用。
由访问控制装置170施加的访问限制的范围可以根据与应用301相关 联的域信息而改变。在这种情况下,从要使用的进程标识符获得相关联的 域信息。例如,移动电话运营商和移动电话供应商被允许访问全部功能和 数据,不可信供应商不被允许访问任何功能和数据,而可信供应商被允许 访问功能和数据中的 一部分。
另外,应用301要使用的客户终端IOO和终端系统110中的硬件和软 件资源的量受限于资源控制装置180。客户终端100和终端系统110中的 资源包括CPU 101、 RAM 102、 HDD 104、通信设备107和显示终端屏幕 的窗口。
示例2
接下来,通过参考图6中的配置图来描述基于第二实施例的示例2。 另外,作为示出针对每一个域创建运行环境的方法的管理表400的特定示 例,采用了图11中所示的管理表401。在示例2中,运行环境是基于图 11中所示的内容创建的。要安装在客户终端1上的OS是Lirmx。
在示例2中,当应用117被从客户终端1的外部捕捉到客户终端1上 时,执行下面的处理。
首先,客户终端1从外部获得应用117以将所获得的应用117存储到 客户终端1中。客户终端1可以使用任何途径和/或任何方法来从外部获得 应用117。为了获得应用117,客户终端1可以利用通信设备107来从外 部服务器接收应用117,或者可以将存储应用117的外部存储器105连接 到客户终端1。获得应用117的任何特殊装置,例如第一实施例中所示的 应用获得装置130,不是必需的。g卩,应用可以从客户终端1的外部获得 其他应用117。不仅是应用117,而且库114和用户数据113也可以从外 部获得。所获得的应用117可以存储在任何存储设备中,例如RAM 102、 HDD 104、外部存储器105等中。
接下来,通过参考图8描述当应用117被激活时执行的操作。
当应用117被激活时,构成应用117的运行文件的内容被OS处理装 置118加载到诸如RAM 102之类的存储区域中。在这种情况下,在Linux 中进行"execsystem"调用。此时,OS处理装置118被调用(图8中的步 骤D1)。
在OS处理装置118被调用之后,OS处理装置118立即调用控制装置 1161。控制装置1161调用域信息获得装置1162以获得示出应用117的来 源的域信息。域信息获得装置1162取得附接到应用117的域信息。如果 域信息被附接,则应用117被判断为是由不可信供应商分发的,并且应用 117被当作属于不可信供应商的域加以处理。
域信息表示用于标识应用117的分发者的类型的信息,并且在图11 中的管理表401的情况下,域信息表示诸如作为移动电话运营商、移动电 话供应商、可信第三方供应商或不可信供应商的类型的信息。可以添加关
于作者名(合作名)的信息。在域信息中,由字符串构成的清楚文本或者 经加密的清楚文本被添加到运行文件的末端。
而且,可以附接一般数字签名。通过附接数字签名,尽管应用是在网
络上被分发的,但是即使在应用117被存储在客户终端1中之后,也可以 检测构成应用117的运行文件的篡改。通过利用由应用分发者持有的私密 密钥对应用117的散列数据(该数据是利用诸如SHA-1之类的单向散列算 法获得的)加密而获得的数据被广泛地用作数字签名数据。
提供了描述域信息的一般数字证书的使用。例如,X.509格式被广泛 使用。利用数字证书,这里描述的域信息被当作由可信认证机构担保的加 以处理。而且,数字签名可以附接到证书。由应用分发者持有的私密密钥 对应于附接到应用的证书中包含的公共密钥,并且利用证书中包含的公共 密钥,可以对经加密的签名数据进行解密。
接下来,验证装置1163验证附接到应用117的数字签名或数字证 书。该验证可以确认应用117未被篡改。当未附接有数字签名或数字证书 时,或者当存在被篡改的可能时(即,当验证失败时),返回错误结果 (图8中的步骤D3)。用于签名验证并且与由分发者持有的私密密钥相 对应的公共密钥可以被验证装置1163预先保存,并且当使用证书时,公 共密钥被包含在证书中,并且可以使用公共密钥。而且,当验证装置1163 预先保存公共密钥时,存在两种方法, 一种方法保存对于所有域来说共同 的一个公共密钥,另一种方法保存用于每一个域的公共密钥。例如,在有 四个域的情况下,要保存四个公共密钥。当保存多个公共密钥时,有必要 指定与应用117中包含的域信息相对应的公共密钥并检查是否已发生篡 改。
而且,在示例1中,域信息和数字签名或数字证书是以包含多个应用 的包为单位附接的,但是,在示例2中,域信息和数字签名或数字证书是 在每一个应用117中附接的。构成应用117并嵌入信息的文件的配置如图 7所示。在图7中,示出了文件500,文件500并未附接数字证书,而是附 接了数字签名503。
在已确定应用所属的域之后,运行许可判断装置1164判断应用117
是否被允许运行。运行许可判断装置1164根据附接到应用117的域信息 来确定应用117是否被允许运行。如果运行不被许可,则返回错误结果 (图8中的步骤D4)。
运行是否被允许是通过参考图11中所示的管理表401来判断的。根 据管理表401,如果从应用117取得的域信息是移动终端供应商,则应用 117或客户终端的运行被许可。而且,如图11所示的管理表401可能根据 客户终端1的使用而改变。
接下来,描述运行应用117的环境的创建。
应用117在接收到来自运行许可判断装置1164的运行许可之后,利 用运行环境创建装置1167创建运行应用117的运行环境。
另外,在该运行环境中,提供并分配了与客户终端1上的文件系统不 同的独立文件系统,以便创建在大小上允许根据域限定的文件系统。上述 用于实现这种独立运行环境和/或文件系统的方法的示例包括这样两种方 法, 一是如示例1中所述,在客户终端1的OS上且在文件系统上创建指 定的原始应用运行环境和/或文件系统,二是在多处理器环境中,在不同于 客户终端1上的基础系统和OS所操作的处理器的另一处理器上创建专用 于外部应用的OS和/或文件系统。
基于图11中针对每一个域可创建的数据基础的值,利用文件系统可 以在移动电话运营商上无限地产生数据文件,就像在用作基础的客户终端 100上一样,而不用创建不同的文件系统。在移动电话供应商、可信第三 方供应商和不可信供应商上分别创建了具有可以创建1M字节、300K字节 和10K字节的数据的区域的文件系统。
运行环境是其中对运行环境的外部(例如,对设备驱动器112、用户 数据113和库114)的访问受限的环境。因此,通过在运行环境中运行应 用117,可以保护客户终端1的功能和/或数据免受应用的影响。
这里创建的运行环境是与包括客户终端1的设备驱动器112、用户数 据113和库114在内的各种资源及其功能相隔离并且分离的环境,并且要 在该环境中运行的应用117不被允许自由地访问其资源和功能。这防止了 从外部获得的应用117欺骗性地访问客户终端1中的功能和/或数据,并且
/或者与其他应用117的操作相干扰。在使用Linux的系统中,在创建运行 环境时,已知的是使用了用户空间中的"mkdir"和"chroot"命令。在示 例2中,与这些命令相等同的功能可以被运行环境创建装置1167在内核 空间中操作。
而且,运行环境创建装置1167在运行环境中布置设备驱动器112、用 户数据113和库114中的每一个的部分或全部,以使得该部分可被从运行 环境中的应用访问。设备驱动器112、用户数据113和库114中的每一个 的哪些部分被定位是根据附接到应用117的域信息和图11中的管理表401 确定的(步骤B2)。
在示例2中,设备驱动器112、用户数据113、库114等中的每一个 都由客户终端1中的多个目录构成。以用户数据113为例,电话目录数 据、邮件地址数据、图像数据等中的每一个根据数据类型被存储在不同的 目录中。因此,对用户数据的放置部分的处理表示这些目录的该部分被放 置在运行环境中以被引用。在示例2中,该功能的放置是由运行环境创建 装置1167在内核空间中执行的。
这些功能被放置在运行环境中,因此,运行在运行环境中的应用117 可以引用并使用运行环境中放置的范围内的每种资源。设备驱动器112、 用户数据113和库114中的每一个的哪些操作范围要被放置在运行环境中 是根据附接到应用117的域信息和图11中的管理表401确定的。
如示出创建后的运行环境的图5所示,设备驱动器子集302、用户数 据子集303和库子集304被布置在运行环境300中,结果,在运行环境 300中操作的应用301被允许引用并使用放置在运行环境中的范围内的设 备驱动器112、用户数据113和库114。
设备驱动器112、用户数据113和114中的每一个的哪些操作范围要 被布置在运行环境中是根据与应用相关联的域信息和图11中所示的管理 表401确定的。例如,当域信息被分类为四种信息类型(包括关于移动电 话运营商、移动电话供应商、可信第三方供应商和不可信供应商的信息) 时,执行以下处理对移动电话运营商和移动电话供应商布置设备驱动器 112、用户数据113和库114中的每一个的全部操作范围的处理,对不可
信供应商不布置任意一个操作范围的处理,以及对可信第三方供应商布置 其操作范围中的一部分的处理。这可以通过准备这样一个目录来实现,在 该目录中,设备驱动器全集、用户数据全集和库全集以被引用的方式位于
用作基础的文件系统上。通过在运行环境中创建/dev、 /bin、 /lib、 /usr、 /etc等作为目录以使得所创建的作为目录的/dev、 /bin、 /lib、 /usr、 /etc等 可以被设备驱动器全集或子集、用户数据全集或子集、库全集或子集根据 域信息来引用,可以在运行环境中根据域布置设备驱动器、用户数据和 库。而且,在某些情况下,设备驱动器、用户数据和库中的每一个的全集 或子集可以以拷贝形式布置在运行环境中。
在运行环境的创建之后,例程被从控制装置120返回,并且应用117 被正常地激活以启动其应用。
接下来,描述在应用的运行期间访问控制装置1165执行的控制应用 117对各种资源的访问的方法。当应用117实际访问资源时,访问控制装 置1165操作。对诸如设备驱动器、用户数据和库之类的访问资源的控制 已经由运行环境创建装置1167施加,但是,利用访问控制装置1165,可 以进一步详细地控制访问。
在应用117的运行期间,允许对布置在由运行环境创建装置1167创 建的运行环境中的设备驱动器112、用户数据113和库114进行自由访 问。如果不希望从客户终端外部获得的应用117对设备驱动器112、用户 数据113和库114中的任意一个进行访问,则对它们中的任意一个的访问 可以由访问控制装置1165限制。
例如,应用117当试图访问用作设备驱动器112的通信设备107的控 制设备驱动器时,调用OS处理装置118。 OS处理装置118调用访问控制 装置1165来检查访问是否被允许。为了从应用访问设备驱动器112,在 Linux中,调用诸如"打开"(open)、"关闭"(close)、"读" (read)、"写"(write)等的系统调用。此时,OS处理装置118被调 用。访问控制装置1165基于构成应用117的原始文件所处的位置来判断 应用最初是存在于客户终端1中还是从外部获得的。如果应用原先就存 在,则访问被许可,否则访问不被许可。结果作为返回值被返回给控制装
置1161和OS处理装置118。这里,如果访问是可允许的,则OS处理装 置118访问通信设备107的控制设备驱动器,否则返回错误结果。
艮P,预先由访问控制装置1165进行设置,以使得原先存在于客户终 端1中的应用被允许访问资源,而从客户终端1的外部获得的应用不被允 许访问该资源。作为实现上述情况的一种方法,在Linux的情况下, SELinux的使用是已知的。当Linux被用作客户终端1中的OS时,通过进 行如下设置可以容易地实现以上方法,该设置使得对作为访问设置的对象 的资源的访问在系统创建时在SELirmx策略文件中被默认禁止,而只有己 经存在于客户终端1中的应用117的访问被许可。
而且,当应用117被运行时使用的诸如CPU 101、存储器、HDD 104 和网络之类的客户终端100中的资源的使用量由资源控制装置180限制。 资源的最大使用量取决于应用117是否是从客户终端1的外部获得的而确 定,这与取决于应用117是否是从客户终端1的外部获得的而允许访问资 源的情况一样。
示例3
接下来,描述示例3。在示例3中,作为示出针对每一个域的运行环 境的创建的表,使用了图12中的管理表501所示的内容。在示例1和2 中,使用了图11中的表401。处理的内容与示例l和2中的相同,而图ll 中表的内容不同于图12中表的内容。gp,在图11中,属于不可信供应商 的应用是可运行的,并且其运行环境是/bin、 /lib子集,可创建数据(文 件)的大小是IOK字节。在图12中,属于不可信供应商的应用是不可运 行的,并且运行环境和数据(文件)不可被创建。从而,通过重写管理表 的内容,创建针对每一个域的运行环境的方法改变。在示例3中,有这样 的益处通过重写图11和12中所示的表的内容,创建运行环境的方法可 以灵活地改变。
工业应用性
本发明可适用于在客户终端中从外部下载应用以安全运行的运行控制 设备,并且可适用于使得计算机实现外部应用的下载的运行控制程序和运 行控制设备。
权利要求
1.一种用于控制计算机上程序的运行的程序运行控制方法,包括以下步骤布置设在所述计算机中的设备驱动器、库和用户数据中的每一个的至少一部分,以使得该部分被从在运行环境中运行的程序引用,在所述运行环境中对所述运行环境的外部的访问受限;以及在所述运行环境中运行所述程序。
2. —种用于控制计算机上程序的运行的程序运行控制方法,包括以下 步骤布置设在所述计算机中的设备驱动器、库和用户数据中、基于所述程 序的域确定的范围中的设备驱动器、库和用户数据,以使得所述设备驱动 器、库和用户数据被从在运行环境中运行的程序引用,在所述运行环境中 对所述运行环境的外部的访问受限;以及在所述运行环境中运行所述程序。
3. 如权利要求2所述的程序运行控制方法,其中所述程序的域是基于 与所述程序相关联的域信息确定的。
4. 如权利要求2所述的程序运行控制方法,其中所述程序的域是基于 来自对与所述程序相关联的数字证书或数字签名的验证的结果确定的。
5. 如权利要求2所述的程序运行控制方法,其中当要布置在所述运行 环境中的所述设备驱动器、库和用户数据中的每一个的范围被确定时,其 中对于每一域类型设置了所述范围的表被引用。
6. 如权利要求3所述的程序运行控制方法,其中获得在包含所述程序 的包中提供的域信息以将该信息用作与所述程序相关联的域信息。
7. 如权利要求6所述的程序运行控制方法,其中所获得的域信息是在 所述程序中提供的。
8. 如权利要求3所述的程序运行控制方法,其中获得在所述程序中提 供的域信息以将该信息用作与所述程序相关联的域信息。
9. 如权利要求3所述的程序运行控制方法,其中获得在所述程序中提供的域信息和在包含所述程序的包中提供的域信息中的至少一个,以将该 信息用作与所述程序相关联的域信息。
10. 如权利要求6至9中的任意一个所述的程序运行控制方法,其中 对附接到具有所述域信息的所述包或具有所述域信息的程序的数字证书或 数字签名进行验证。
11. 如权利要求7至9中的任意一个所述的程序运行控制方法,其中 在具有所述域信息的所述程序中提供了数字签名,并且对于每次程序运行 验证所提供的数字签名。
12. 如权利要求1或权利要求2所述的程序运行控制方法,其中所述 程序的运行环境是在所述程序的激活之前创建的。
13. 如权利要求1或权利要求2所述的程序运行控制方法,其中在所 述程序的激活之后所述程序的运行立即被暂停,所述程序的运行环境被创 建,并且在所创建的运行环境中恢复所述程序的运行。
14. 如权利要求1或权利要求2所述的程序运行控制方法,其中根据 与所述程序相关联的域信息来控制在所述运行环境中运行的程序对计算机 中的功能的可访问性。
15. 如权利要求1或权利要求2所述的程序运行控制方法,其中根据 与所述程序相关联的域信息来控制其中能够产生在所述运行环境中运行的 程序的数据或文件的大小。
16. 如权利要求1或权利要求2所述的程序运行控制方法,其中根据 与所述程序相关联的域信息来限制在所述运行环境中运行的程序对计算机 中的资源的使用量。
17. —种用于控制计算机上程序的运行的程序运行控制设备,包括 运行环境创建单元,用于布置设在所述计算机中的设备驱动器、库和用户数据中的每一个的至少一部分,以使得该部分被从在运行环境中运行 的程序引用,在所述运行环境中对所述运行环境的外部的访问受限;以及 运行控制单元,用于在所述运行环境中运行所述程序。
18. —种用于控制计算机上程序的运行的程序运行控制设备,包括 运行环境创建单元,用于布置设在所述计算机中的设备驱动器、库和用户数据中、基于所述程序的域确定的范围中的设备驱动器、库和用户数 据,以使得所述设备驱动器、库和用户数据被从在运行环境中运行的程序 引用,在所述运行环境中对所述运行环境的外部的访问受限;以及 运行控制单元,用于在所述运行环境中运行所述程序。
19. 如权利要求18所述的程序运行控制设备,其中所述运行环境创建 单元基于与所述程序相关联的域信息来确定所述程序的域。
20. 如权利要求18所述的程序运行控制设备,其中所述运行环境创建 单元基于来自对与所述程序相关联的数字证书或数字签名的验证的结果来 确定所述程序的域。
21. 如权利要求18所述的程序运行控制设备,其中所述运行环境创建 单元当确定要布置在所述运行环境中的所述设备驱动器、库和用户数据中 的每一个的范围时,引用其中对于每一域类型设置了所述范围的表。
22. 如权利要求19所述的程序运行控制设备,还包括域信息获得单 元,用于获得在包含所述程序的包中提供的域信息以将该信息用作与所述 程序相关联的域信息。
23. 如权利要求22所述的程序运行控制设备,其中所述域信息获得单 元将所获得的域信息提供给所述程序。
24. 如权利要求19所述的程序运行控制设备,还包括域信息获得单 元,用于获得在所述程序中提供的域信息以将该信息用作与所述程序相关 联的域信息。
25. 如权利要求19所述的程序运行控制设备,还包括域信息获得单 元,用于获得在所述程序中提供的域信息和在包含所述程序的包中提供的 域信息中的至少一个,以将该信息用作与所述程序相关联的域信息。
26. 如权利要求22至25中的任意一个所述的程序运行控制设备,还 包括验证单元,用于对附接到具有所述域信息的所述包或具有所述域信息 的程序的数字证书或数字签名进行验证。
27. 如权利要求23至25中的任意一个所述的程序运行控制设备,还 包括验证单元,用于在具有所述域信息的所述程序中提供数字签名,并对 于每次程序运行验证所提供的数字签名。
28. 如权利要求17或权利要求18所述的程序运行控制设备,其中所 述运行环境创建单元在所述程序的激活之前创建所述程序的运行环境。
29. 如权利要求17或权利要求18所述的程序运行控制设备,其中所 述运行控制单元在所述程序的激活之后立即暂停所述程序的运行,创建所 述程序的运行环境,并且在所创建的运行环境中恢复所述程序的运行。
30. 如权利要求17或权利要求18所述的程序运行控制设备,其中根 据与所述程序相关联的域信息来控制在所述运行环境中运行的程序对计算 机中的功能的可访问性。
31. 如权利要求17或权利要求18所述的程序运行控制设备,其中所 述运行环境创建单元创建这样的运行环境,在该运行环境中根据与所述程 序相关联的域信息来控制其中能够产生在所述运行环境中运行的程序的数 据或文件的大小。
32. 如权利要求17或权利要求18所述的程序运行控制设备,还包括 资源控制单元,用于根据与所述程序相关联的域信息来限制在所述运行环 境中运行的程序对计算机中的资源的使用量。
33. —种使得计算机充当运行环境创建单元和运行控制单元的运行控 制程序,所述运行环境创建单元用于布置设在所述计算机中的设备驱动 器、库和用户数据中的每一个的至少一部分,以使得该部分被从在运行环 境中运行的程序引用,在所述运行环境中对所述运行环境的外部的访问受 限,所述运行控制单元用于在所述运行环境中运行所述程序。
34. —种使得计算机充当运行环境创建单元和运行控制单元的运行控 制程序,所述运行环境创建单元用于布置设在所述计算机中的设备驱动 器、库和用户数据中、基于所述程序的域确定的范围中的设备驱动器、库 和用户数据,以使得所述设备驱动器、库和用户数据被从在运行环境中运 行的程序引用,在所述运行环境中对所述运行环境的外部的访问受限,所 述运行控制单元用于在所述运行环境中运行所述程序。
35. 如权利要求34所述的运行控制程序,其中所述运行环境创建单元 基于与所述程序相关联的域信息来确定所述程序的域。
36. 如权利要求34所述的运行控制程序,其中所述运行环境创建单元 基于来自对与所述程序相关联的数字证书或数字签名的验证的结果来确定 所述程序的域。
37. 如权利要求34所述的运行控制程序,其中所述运行环境创建单元 当确定要布置在所述运行环境中的所述设备驱动器、库和用户数据中的每 一个的范围时,引用其中对于每一域类型设置了所述范围的表。
38. 如权利要求35所述的运行控制程序,其中使得所述计算机充当域 信息获得单元,该单元用于获得在包含所述程序的包中提供的域信息以将 该信息用作与所述程序相关联的域信息。
39. 如权利要求38所述的运行控制程序,其中所述域信息获得单元将 所获得的域信息提供给所述程序。
40. 如权利要求35所述的运行控制程序,其中使得所述计算机充当域 信息获得单元,该单元用于获得在所述程序中提供的域信息以将该信息用 作与所述程序相关联的域信息。
41. 如权利要求35所述的运行控制程序,其中使得所述计算机充当域 信息获得单元,该单元用于获得在所述程序中提供的域信息和在包含所述 程序的包中提供的域信息中的至少一个,以将该信息用作与所述程序相关 联的域信息。
42. 如权利要求38至41中的任意一个所述的运行控制程序,其中使 得所述计算机充当验证单元,该单元用于对附接到具有所述域信息的所述 包或具有所述域信息的程序的数字证书或数字签名进行验证。
43. 如权利要求39至41中的任意一个所述的运行控制程序,其中使 得所述计算机充当验证单元,该单元用于在具有所述域信息的所述程序中 提供数字签名,并对于每一程序运行验证所提供的数字签名。
44. 如权利要求33或权利要求34所述的运行控制程序,其中所述运 行环境创建单元在所述程序的激活之前创建所述程序的运行环境。
45. 如权利要求33或权利要求34所述的运行控制程序,其中所述运 行控制单元在所述程序的激活之后立即暂停所述程序的运行,创建所述程 序的运行环境,并且在所创建的运行环境中恢复所述程序的运行。
46. 如权利要求33或权利要求34所述的运行控制程序,其中使得所 述计算机充当访问控制单元,该单元根据与所述程序相关联的域信息来控 制在所述运行环境中运行的程序对计算机中的功能的可访问性。
47. 如权利要求33或权利要求34所述的运行控制程序,其中所述运 行环境创建单元创建这样的运行环境,在该运行环境中根据与所述程序相 关联的域信息来控制其中能够产生在所述运行环境中运行的程序的数据或 文件的大小。
48. 如权利要求33或权利要求34所述的运行控制程序,其中使得所 述计算机充当资源控制单元,该单元用于根据与所述程序相关联的域信息 来限制在所述运行环境中运行的程序对计算机中的资源的使用量。
全文摘要
本发明提供了一种在减小开销的同时安全地运行包含不可信代码的应用程序的程序运行控制方法、其设备以及运行控制程序。运行环境创建装置(190)创建其中对运行环境的外部的访问受限的运行环境,并布置设在计算机中的设备驱动器(112)、库(114)和用户数据(113)中的至少一部分,布置的方式使得该部分可以被从运行在运行环境中的程序引用。运行控制装置(160)运行从应用分发服务器(200)引入并获得的应用程序。
文档编号G06F21/53GK101346727SQ20068004942
公开日2009年1月14日 申请日期2006年9月27日 优先权日2005年12月27日
发明者伊贺德寿, 才田好则 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1