信息处理装置、信息处理方法及程序的制作方法

文档序号:6569180阅读:132来源:国知局
专利名称:信息处理装置、信息处理方法及程序的制作方法
技术领域
本发明涉及一种当应用进程执行特权命令时根据该应用进程的属性 值来控制可否执行特权命令的信息处理装置。
背景技术
在信息处理装置中,以减轻开销等为目的,使所有操作(OS)和常规应用进程在特权级别下进行动作。在这种信息处理装置中,准备有使用特 权命令实现丰富功能的库函数。另一方面,近年来,确保信息处理装置安全成为重要课题。伴随此课题,正在开发一种像SE-Linux那样的、能够在每个应用进程中设定安全 级别的安全0S。这里,所谓安全级别是应用进程的属性之一,是在用于 该应用进程所利用的功能或资源的访问控制的判断的属性,例如,有所谓 常规用户权限、根权限的属性值,和所谓可信赖的进程(trusted)、或不 明确是否可信赖的进程(untrusted)的属性值。在对这样的每一个应用进程设定安全级别的OS之下,不能够有效利 用以让所有应用进程在特权级别下进行动作为前提所开发出的库函数。其 理由是由于,在没有特权级别的应用进程所调用的库函数中包含有需要特 权级别的命令时,作为特权命令违反,产生错误。毫无疑问,虽然如果对 全部应用进程设定特权级别,数据库函数的利用上会不存在问题,但就会 失去使用能够对每个应用进程设定安全级别的、永久OS的优点。因此,为了让在用户级别下进行动作的应用进程能够利用特权命令, 提出了一种技术,当在用户级别下执行应用进程时,产生了执行特权命令 而引起的例外处理的情况下,该特权命令的地址,如果在ROM区,便由 例外处理执行该特权命令,从例外处理返回,如果在RAM区,原则上作 为违反特权命令而报错。这种现有技术例如被记载在特开2003-223317号公报中。此外,作为相关的背景技术,有以下的技术。特开2001-249848号公 报中记载的"基于先行特权级别的特权升级"的发明是一种计算机系统, 包括处理器;存储器,具有包含保存特权升级命令的第1存储页的多个 存储页;操作系统,保存在上述存储器内、控制上述处理器及上述存储器。 上述处理器具有通过控制对系统源的可访问性来控制该计算机系统中的 应用命令的执行的当前特权级别,同时还具有先行特权级别状态。上述存 储器是一种该第1存储页按处于第特权级别的应用命令不能写入的存储 器。上述操作系统读出上述先行特权级别状态,将该读出的先行特权级别 状态与上述当前特权级别进行比较,在上述先行特权级别状态被赋予了与 上述当前特权级别相同或比其更低的特权的情况下,将上述当前特权级别 向比上述第1特权级别更高位的第2特权级别进行升级这样的处理,由此 执行上述特权升级命令。在特许第2677458号公报中记载的"系统调用执行装置"的发明中, 进行系统调用处理的第1单元由执行系统管理的特权任务和用户任务构成 任务。在从用户任务处理到向特权任务处理转移的情况下,能够在进行特 权任务所使用的CPU模式(运算结果标志)和指令指针以及存储区或寄 存器区内的数据的备份,或者完全不进行上述数据备份,便将控制转移到 特权任务。并且,当用户任务上的系统调用发出时,此系统调用发出执行 系统调用命令,该系统调用命令由系统调用操作码和保存有特权库(bank) 的指令的开始地址的地址表的值构成。进行分支处理的第2单元,当执行 用户任务上的分支命令时,此分支命令指定分支命令操作码和保存有特权 库的执行指令的开始地址的地址表。由此,执行由可间接地指定上述指令 的开始地址的2重间接地址构成的分支命令。进行中断处理的第3单元, 当执行中断时,按照保存对每个中断处理要因所指定的中断处理开始地址 的地址表来进行中断处理。当执行上述3个单元中任意一个时,如果向特 权任务转移,则根据地址表自身的地址来判断是否进行待避处理。并且, 从用户任务处理向特权任务处理转移时,由于无软件的插入,所以包括将 CPU切换为特权模块的单元。在特开平5-100957号公报中记载的"信息处理装置"的发明中,程序执行级别寄存器保存表示执行的程序的特权度的多级的执行级别。存储器 部包括多个存储区,该多个存储区分别指定多级的访问执行级别。存储器 访问执行级别寄存器保存与此存储器部的各个存储区的访问执行级别对 应的执行级别。当比较器将来自于上述程序执行级别寄存器的当前执行中 的程序的执行级别与由来自于上述存储器访问执行级别寄存器的此程序 指定的上述存储器部的存储区的访问执行级别进行比较,且两者一致时, 比较器就输出一致信号。命令定序器根据上述一致信号,允许向相对于上 述执行中的程序的指定此程序的上述存储器部的存储区的访问。特开2002-342166号公报中记载的"信息处理装置及访问级别控制方 法"是一种能够在每个进程中变更访问级别的信息处理装置的发明。访问 检测部检测来自上述处理部的对规定地址的访问。当上述访问检测部检测 出向上述规定地址的访问时,就能够变更访问级别。发明内容根据上述特开2003-223317号公报,由于对于在用户级别下进行动作 的应用进程,允许执行配置在称为ROM区域的改写困难的存储区域内的 特权命令,所以,如果将包含特权命令的库函数保持在ROM区的话,就 能够将库函数的功能提供给应用进程。此外,对于配置在称为RAM区域 的容易改写的存储区域内的特权命令而言,由于能够禁止基于在用户级别 下进行动作的应用进程的执行,因此能够防止在应用代码内的特权命令的 非法使用。但是,应用进程对于像直接跳转到配置在ROM区域内的库函数内的 特权命令的攻击没有抵抗性。其理由是因为,即使按照跳转目的地的特权 命令的指令产生例外处理,但由于此特权命令的地址是ROM区域内,所 以在例外处理中也会执行该特权命令。本来,库函数是将基本上执行从入 口到出口的全部处理作为前提而制作的,所以,进行像执行仅其一部分的 处理这样的非法攻击时,就会导致不可测的事态。鉴于这样的事情而提出本发明,其目的在于防止因应用进程引起的特 权命令的非法使用。本发明的另一个目的在于防止应用进程引起的库函数的非法使用。本发明的权利要求l所述的信息处理装置,包括存储部,保持库(library)函数、应用进程、应用进程的属性值及第 1特定命令的允许地址范围,该库函数在由自函数进行的处理中保证执行 的部分的执行前执行上述第1特定命令、并且在返回到调用源前执行第2 特定命令;特权命令执行控制部,当上述应用进程执行特权命令而产生了内部中 断时,根据上述应用进程的上述属性值控制可否执行特权命令;安全门(security gate)侵入处理部,当上述应用进程执行第1特定命 令而产生了内部中断时,检査上述第1特定命令的地址是否在上述允许地 址范围内,如果处于上述允许地址范围内,则变更上述应用进程的上述属 性值;以及安全门退出处理部,当上述应用进程执行第2特定命令而产生了内部 中断时,将上述应用进程的上述属性值复原。本发明的权利要求2所述的信息处理装置,根据权利要求1所述的信 息处理装置,上述属性值是表示上述应用进程的安全级别的属性值。本发明的权利要求3所述的信息处理装置,根据权利要求2所述的信 息处理装置,上述特权命令执行控制部进行根据上述应用进程的安全级别 的权限检査,在具有执行特权命令的权限时执行特权命令。本发明的权利要求4所述的信息处理装置,根据权利要求1所述的信 息处理装置,上述属性值是表示上述应用进程的安全门侵入状态的属性 值。本发明的权利要求5所述的信息处理装置,根据权利要求4所述的信 息处理装置,上述特权命令执行控制部,在上述应用进程处于安全门侵入 状态的情况下,执行特权命令。本发明的权利要求6所述的信息处理装置,根据权利要求1所述的信 息处理装置,上述属性值包含表示上述应用进程的安全级别的属性值和表 示上述应用进程的安全门侵入状态的属性值。本发明的权利要求7所述的信息处理装置,根据权利要求6所述的信 息处理装置,上述特权命令执行控制部在上述应用进程处于安全门侵入状 态的情况下,省略根据上述应用进程的安全级别的权限检查,执行特权命令,在上述应用进程不处于安全门侵入状态的情况下,进行根据上述应用 进程的安全级别的权限检査,在具有执行特权命令的权限时执行特权命本发明的权利要求8所述的信息处理装置,根据权利要求6所述的信 息处理装置,上述安全门侵入处理部变更成为安全门侵入状态的应用进程 的安全级别;上述安全门退出处理部将成为安全门退出状态的应用进程的安全级别复原;并且上述特权命令执行控制部,进行根据上述应用进程的安全级别的权限 检査,在具有执行特权命令的权限时执行特权命令。本发明的权利要求9所述的信息处理装置,根据权利要求6所述的信 息处理装置,上述特权命令执行控制部在上述应用进程处于安全门侵入状 态的情况下,更新了上述应用迸程的安全级别后,进行根据上述应用进程 的安全级别的权限检査,当具有执行特权命令的权限时执行特权命令后, 将安全级别恢复到原来的值。本发明的权利要求10所述的信息处理装置,根据权利要求7、 8或9 所述的信息处理装置,包括安全门临时退出处理部,当在处于安全门侵入状态的上述应用进程的 运行中产生了信号或中断时,在调用上述应用进程的信号/中断句柄 (handle)前将上述应用进程的安全级别恢复为安全门侵入前的值,在根 据上述信号/中断句柄的处理结束时或结束后,恢复为安全门侵入后的值。本发明的权利要求11所述的信息处理装置,根据权利要求1所述的 信息处理装置,包括-安全门临时退出处理部,在由上述安全门侵入处理部变更了上述应用 进程的上述属性值后,到由上述安全门退出处理部将上述应用进程的上述 属性值复原之前的上述应用进程的运行中产生了信号或中断时,在调用上 述应用进程的信号/中断句柄前将上述应用进程的上述属性值恢复到基于 上述安全门侵入处理部的变更前的值,在根据上述信号/中断句柄的处理结 束时或结束后,恢复为基于上述安全门侵入处理部的变更后的值。本发明的权利要求12所述的信息处理装置,根据权利要求2、 3、 6 10任意一项所述的信息处理装置,上述安全门侵入处理部将上述应用进程 的安全级别变更为特权级别。本发明的权利要求13所述的信息处理装置,根据权利要求2、 3、 6 10任意一项所述的信息处理装置,包括保持安全级别变更规则的安全级别变更策略数据库,上述安全门侵入处理部根据上述安全级别变更规则变更 上述应用进程的安全级别。本发明的权利要求14所述的信息处理装置,根据权利要求4 10任 意一项所述的信息处理装置,表示上述应用进程的安全门侵入状态的属性 值,作为对应各应用进程的进程ID至少保持有安全级别的进程管理用数 据库的1个标志被记录。本发明的权利要求15所述的信息处理装置,根据权利要求4 10任 意一项所述的信息处理装置,包括管理安全门侵入状态的应用进程的一览 的数据库,根据在该数据库中是否记录有进程ID来决定表示应用进程的 安全门侵入状态的属性值。本发明的权利要求16所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述库函数在保证执行的处理记述之前配置 有第1特定命令,在返回到调用源的出口之前配置有第2特定命令。本发明的权利要求17所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述库函数在保证执行的处理记述之前配有 置第1特定命令,在配置第1特定命令的部位之后必须执行的路径上配置 有改变上述应用进程的堆栈的命令列,以在返回到调用源前经过包含第2 特定命令的函数。本发明的权利要求18所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述库函数在保证执行的处理记述之前配置 有第l特定命令;上述安全门侵入处理部,在变更了上述应用进程的上述属性值的情况 下,改变上述应用进程的堆栈,以在上述应用进程返回到调用源之前,经 过包含第2特定命令的函数。本发明的权利要求19所述的信息处理装置,根据权利要求1 U任 意一项所述的信息处理装置,上述预定的地址范围是ROM区域内的地址范围。本发明的权利要求20所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述预定的地址范围是被从ROM区域装入 到RAM区域的库函数在RAM区域上的地址范围。本发明的权利要求21所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述预定的地址范围是被从可信赖的文件系 统装入到RAM区域的库函数在RAM区域上的地址范围。本发明的权利要求22所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述预定的地址范围是被从文件系统装入到 RAM区域的可信赖的库函数在RAM区域上的地址范围。本发明的权利要求23所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述安全门侵入处理部,在上述应用进程执 行第1特定命令发生了内部中断时,除进行上述第1特定命令的地址是否 在上述允许地址范围内的检查外,还进行上述第1特定命令的地址是否是 程序区的检査。本发明的权利要求24所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述第1特定命令和上述第2的特定命令分 别是对操作系统发出安全门侵入请求、退出请求的系统调用命令。本发明的权利要求25所述的信息处理装置,根据权利要求1 11任 意一项所述的信息处理装置,上述库函数包含基本库函数和服务API库函 数。本发明的权利要求26所述的信息处理装置,根据权利要求25所述的 信息处理装置,上述基本库函数,作为特权命令包含共有存储器操作系统 调用命令和信号机操作系统调用命令;上述服务API库函数包含程序代码,该程序代码利用包含上述共有存 储器操作系统调用命令和信号机操作系统调用命令的基本库函数。本发明的权利要求27所述的信息处理装置,根据权利要求25所述的 信息处理装置,上述基本库函数包含作为用于与X服务器进行通信的特权 命令的套接字(socket)通信系统调用命令;上述服务API库函数包含程序代码,该程序代码利用包含上述套接字通信系统调用命令的基本库函数。本发明的权利要求28所述的信息处理装置,根据权利要求25所述的信息处理装置,上述基本库函数,为了打开包含DRM管理对象内容的文件,而作为特权命令包含有文件打开系统调用命令;上述服务API库函数,进行DRM处理,且包含程序代码,该程序代 码利用包含上述文件打开系统调用命令的基本库函数。本发明的权利要求29所述的信息处理装置,根据权利要求25所述的 信息处理装置,上述基本库函数,为了与外部的服务器进行通信,而作为 特权命令包含有套接字通信系统调用命令;上述服务API库函数,进行HTTP处理,且包含程序代码,该程序代 码利用包含上述套接字通信系统调用命令的基本库函数。本发明的权利要求30所述的信息处理方法,在信息处理装置中保持 库函数、应用进程、应用进程的属性值及第l特定命令的允许地址范围, 该库函数在由自函数进行的处理中保证执行的部分的执行前执行上述第1 特定命令、并且在返回到调用源前执行第2特定命令;该信息处理方法执行特权命令执行控制处理,当上述应用进程执行特权命令产生了内部中断时,根据上述应用进程的上述属性值控制可否执行特权命令;安全门侵入处理,当上述应用进程执行第l特定命令产生了内部中断 时,检査上述第l特定命令的地址是否在上述允许地址范围内,如果处于 上述允许地址范围内,则变更上述应用进程的上述属性值;以及安全门退出处理,当上述应用进程执行第2特定命令产生了内部中断 时,将上述应用进程的上述属性值复原。本发明的权利要求31所述的信息处理方法,上述属性值是表示上述 应用进程的安全级别的属性值。本发明的权利要求32所述的信息处理方法,根据权利要求31所述的 信息处理方法,在上述特权命令执行控制处理中,进行根据上述应用进程 的安全级别的权限检査,在具有执行特权命令的权限时执行特权命令。本发明的权利要求33所述的信息处理方法,根据权利要求30所述的 信息处理方法,上述属性值是表示上述应用进程的安全门侵入状态的属性值。本发明的权利要求34所述的信息处理方法,根据权利要求33所述的 信息处理方法,在上述特权命令执行控制处理中,在上述应用进程处于安 全门侵入状态的情况下,执行特权命令。本发明的权利要求35所述的信息处理方法,根据权利要求30所述的 信息处理方法,上述属性值包含表示上述应用进程的安全级别的属性值和 表示上述应用进程的安全门侵入状态的属性值。本发明的权利要求36所述的信息处理方法,根据权利要求35所述的 信息处理方法,上述特权命令执行控制处理中,在上述应用进程处于安全 门侵入状态的情况下,省略根据上述应用进程的安全级别的权限检查,执 行特权命令,在上述应用迸程不处于安全门侵入状态的情况下,进行根据 上述应用进程的安全级别的权限检查,在具有执行特权命令的权限时执行 特权命令。本发明的权利要求37所述的信息处理方法,根据权利要求35所述的 信息处理方法,在上述安全门侵入处理中,变更成为安全门侵入状态的应 用进程的安全级别;在上述安全门退出处理中,将成为安全门退出状态的应用进程的安全 级别复原;在上述特权命令执行控制处理中,进行根据上述应用进程的安全级别 的权限检査,在具有执行特权命令的权限时执行特权命令。本发明的权利要求38所述的信息处理方法,根据权利要求35所述的 信息处理方法,在上述特权命令执行控制处理中,在上述应用进程处于安 全门侵入状态的情况下,更新了上述应用进程的安全级别后,进行根据上 述应用进程的安全级别的权限检查,当具有执行特权命令的权限时执行特 权命令后,将安全级别恢复到原来的值。本发明的权利要求39所述的信息处理方法,根据权利要求36、 37或38所述的信息处理方法,上述信息处理装置进行安全门临时退出处理,当在处于安全门侵入状态的上述应用进程的运 行中产生信号或中断时,在调用上述应用进程的信号/中断句柄前将上述应 用进程的安全级别恢复为安全门侵入前的值,在根据上述信号/中断句柄的处理结束时或结束后,恢复为安全门侵入后的值。本发明的权利要求40所述的信息处理方法,根据权利要求30所述的 信息处理方法,上述信息处理装置进行安全门临时退出处理,在由上述安全门侵入处理变更了上述应用进程 的上述属性值后,到由上述安全门退出处理将上述应用进程的上述属性值 复原之前的上述应用进程的运行中,产生了信号或中断时,在调用上述应 用进程的信号/中断句柄前将上述应用进程的上述属性值恢复到基于上述 安全门侵入处理的变更前的值,在根据上述信号/中断句柄的处理结束时或 结束后,恢复为基于上述安全门侵入处理的变更后的值。本发明的权利要求41所述的信息处理方法,根据权利要求31、 32、 35 39任意一项所述的信息处理方法,在上述安全门侵入处理中,将上述 应用进程的安全级别变更为特权级别。本发明的权利要求42所述的信息处理方法,根据权利要求31、 32、 35 39任意一项所述的信息处理方法,上述计算机包括保持安全级别变更 规则的安全级别变更策略数据库,在上述安全门侵入处理中,根据上述安 全级别变更规则变更上述应用进程的安全级别。本发明的权利要求43所述的信息处理方法,根据权利要求33 39任意一项所述的信息处理方法,表示上述应用进程的安全门侵入状态的属性 值,作为对应各应用进程的进程ID至少保持有安全级别的进程管理用数 据库的1个标志被记录。本发明的权利要求44所述的信息处理方法,根据权利要求33 39任 意一项所述的信息处理方法,包括管理安全门侵入状态的应用进程的一览 的数据库,根据在该数据库中是否记录有进程ID来决定表示应用进程的 安全门侵入状态的属性值。本发明的权利要求45所述的信息处理方法,根据权利要求30 40任 意一项所述的信息处理方法,上述库函数在保证执行的处理记述之前配置 有第l特定命令,在返回到调用源的出口之前配置有第2特定命令。本发明的权利要求46所述的信息处理方法,根据权利要求30 40任 意一项所述的信息处理方法,上述库函数在保证执行的处理记述之前配置 有第1特定命令,在配置第1特定命令的部位之后必须执行的路径上,配置有改变上述应用进程的堆栈的命令列,以在返回到调用源前经过包含第 2特定命令的函数。本发明的权利要求47所述的信息处理方法,根据权利要求30 40任 意一项所述的信息处理方法,上述库函数在保证执行的处理记述之前配置 有第1特定命令;上述安全门侵入处理中,在变更了上述应用进程的上述属性值的情况 下,改变上述应用进程的堆栈,以在上述应用进程返回到调用源之前,经 过包含第2特定命令的函数。发明效果根据本发明,当应用进程调用库函数时,用此库函数进行的处理中, 在保证执行的部分的执行之前,执行第l特定命令,产生内部中断。在此 内部中断相关的例外处理中,通过安全门侵入处理部,检查第l特定命令 的地址是否在允许地址范围内,如果处于允许地址范围内,则变更应用进 程的属性值以便能够执行特权命令,如果不在允许地址范围内就不进行这 种属性值的变更。此后,执行调用的库函数的后续的处理,执行伴随与此 的保证执行的部分。然后,库函数的处理进入特权命令的部位时,根据此 特权命令的执行而产生内部中断,在此内部中断相关的例外处理中,通过 特权命令执行控制部,根据应用进程的属性值控制是否执行特权命令。因 此,在不允许特权命令的执行的应用进程向特权命令直接跳转的情况下, 由于不执行第l特定命令,所以与属性值仍旧是不能执行特权命令的状态 相反,在第1特定命令调用存在于允许地址范围内的正规的库函数的情况 下,由于根据第l特定命令的执行变更属性值以便能够使用特权命令,所 以就能够执行特权命令。此外此情况下,就变成必须执行在第1特定命令 后配置的、保证执行的部分。而且,在从库函数返回到调用源的应用进程 之前,当应用进程执行第2特定命令时,产生内部中断,在此内部中断相 关的例外处理中,通过安全门退出处理部,应用进程的属性值恢复到不能 执行特权命令的原来的状态。由此,防止正规的库中所包含的特权命令之 外的特权命令的执行。根据本发明,能够向应用进程提供在设定在应用进程中的属性值中包含不允许执行的特权命令的库函数。其理由是因为,就向应用进程提供的 正规的库函数而言,通过预先将其包含的第1特定命令所存在的地址范围 设定为允许地址范围,在应用进程调用库函数的情况下,检查在第l特定 命令执行时其地址在允许地址范围,变更应用进程的属性值就能够执行特 权命令。此外,根据本发明,能够防止跳过保证执行部分,执行包含特权命令 的剩余的部分这样的库函数的非法利用。其理由是因为,应用进程如果跳 过保证库函数内的执行的部分,进行向中途的部分直接跳转这样的不正当 的操作的话,由于不执行第l特定命令不变更属性值,在特权命令的执行 时刻就会出错。此外,根据本发明,能够防止根据应用进程的特权命令的非法使用。 其理由是因为,为了在从库函数返回到应用进程前根据第2特定命令将属 性值复原,使应用进程的属性值成为能够执行特权命令的状态仅限定在库 函数的执行中。


图1是表示本发明的信息处理装置的硬件结构的一个例子的方框图。 图2是本发明的第1实施方式的方框图。图3是本发明的第2实施方式的方框图。图4是本发明的第2实施方式的变化例的方框图。图5是本发明的第3实施方式的方框图。图6是本发明的第1实施方式的实施例1的方框图。图7是表示本发明的第1实施方式的实施例1的动作的流程图。图8是表示本发明的第1实施方式的实施例1的动作的流程图。图9是表示本发明的第1实施方式的实施例1的动作的流程图。图10是表示本发明的第1实施方式的实施例1中的应用程序、API库程序及基本库程序的内容实例的图。图11是表示本发明的第1实施方式的实施例1的具体适用实例1的方框图。图12是表示本发明的第1实施方式的实施例1的具体适用实例2的方框图。图13是表示本发明的第1实施方式的实施例1的具体适用实例3的 方框图。图14是表示本发明的第1实施方式的实施例1的具体适用实例4的 方框图。图15是本发明的第1实施方式的实施例2的方框图。图16是表示本发明的第1实施方式的实施例2的动作的流程图。图17是表示本发明的第1实施方式的实施例2的动作的流程图。图18是表示本发明的第1实施方式的实施例2的动作的流程图。图19是本发明的第1实施方式的实施例2的变形例的方框图。图20是本发明的第1实施方式的实施例3的方框图。图21是表示本发明的第1实施方式的实施例3的动作的流程图。图22是本发明的第1实施方式的实施例4的方框图。图23是表示本发明的第1实施方式的实施例4的动作的流程图。图24是本发明的第2实施方式的实施例1的方框图。图25是本发明的第2实施方式的实施例1中的堆栈改变处理的说明图。图26是本发明的第3实施方式的实施例1的方框图。图27是表示本发明的第3实施方式的实施例1的动作的流程图。
具体实施方式
下面,参照附图,详细说明用于实施本发明的最佳实施方式。 <本发明的信息处理装置的硬件结构实例>参照图1,本发明的信息处理装置的硬件结构的一个例子包括CPU1,ROM2, RAM3,显示部4,输入操作部5,文件系统6以及将它们相互连 接的总线7。 ROM2是读取专用的存储器,存储由CPU1执行的操作系统 (OS)、库函数及固定数据等。RAM3是可读写的存储器,临时存储由 CPU1执行的应用进程及运算数据等。显示部4由LCD等构成,显示应用 画面等。输入操作部5有键盘等构成,输入来自用户的数据和指示。文件 系统6由硬盘和SD卡等构成,存储应用程序和各种数据。作为具有这样的硬件结构的信息处理装置的例子,有个人计算机等常规的计算机、控制 终端、携带电话等。 <第1实施方式>参照图2,本发明的第1实施方式将OSll、库函数12、应用进程13、属性值14及第1特定命令的允许地址范围15保持在计算机可读取的记录介质中。库函数12在由自函数进行的处理中保证执行的部分21的执行前执行 第1特定命令22、并且在返回到调用源前执行第2特定命令23。典型地, 在函数的开始部分配置第l特定命令22,在返回到调用源之前的部分配置 第2特定命令23。在库函数12中包含1个以上的特权命令24。第l特定 命令22、第2特定命令23及特权命令24是系统调用命令,在其执行时产 生内部中断,控制转移到OSll。此外,事先设定第l特定命令22的允许 地址范围15,在第1特定命令22的执行引起内部中断时,由OSll进行 参照。应用进程13执行调用库函数12的调用命令41、直接跳转到库函数 12内的特权命令24的跳转命令42、及特权命令43。例如,OSll是能够对每个应用进程13设定安全级别的安全OS。OS11 管理每个应用进程13的属性值14。属性值14是在应用进程13所利用的 功能或资源的访问控制的判断中使用的1个以上的属性值。作为属性值14 的具体例,有表示安全级别的属性值、表示安全门侵入状态的属性值。此 外,在因第1特定命令22、第2特定命令23及特权命令24、 43的执行而 产生内部中断时,作为对应它们的例外处理,具有进行安全门侵入处理31、 安全门退出处理32及特权命令执行控制33的功能。在特权命令执行控制33中,应用进程13调用库函数12执行其特权 命令24时,及执行应用代码上的特权命令43时,根据应用进程13的属 性值14控制可否执行特权命令24、 43。在安全门侵入处理31中,应用进程13执行第1特定命令22时,检 査第1特定命令22的地址是否在允许地址范围15内,如果处于允许地址 范围15内的话,则变更应用进程13的属性值14。在安全门退出处理32中,应用进程13执行第2的特定命令23时,将应用进程13的属性值14复原。接着,说明本实施方式的动作。在此,假设应用进程13的属性值14为不能执行特权命令的值。此外,假设在允许地址范围15中,设定配置 有正规的库函数12的存储器(例如图1的ROM2)的存储器地址范围。应用进程13根据调用命令41调用库函数12时,首先执行配置在其 开始部分的第1特定命令22,通过OS11的安全门侵入处理31变更应用 进程13的属性值14。例如,在由安全级别控制可否执行特权命令的情况 下变更安全级别,在安全门侵入状态下控制可否执行特权命令的情况下变 更表示有无安全门侵入的属性值。再有也可以进行以下处理在此时刻事 先变更表示安全门侵入状态的属性值,在特权命令执行控制33的时刻判 定是不是安全门侵入状态,如果是安全门侵入状态,在变更安全级别后根 据安全级别判断可否执行特权命令,再次进行将安全级别复原。接着,在执行了保证处理的部分21后,由应用进程13执行特权命令 24时,通过OSll的特权命令执行控制33,根据应用进程13的属性值14 判定可否执行特权命令,如果可执行的话,则进行特权命令24的执行, 将控制返回到调用源。接着,进入库函数12的处理,在返回到调用源之前执行第2特定命 令23时,通过OS11的安全门退出处理32,将应用进程13的属性值14 恢复到安全门侵入前的状态。此后,应用进程13执行直接跳转到库函数12的特权命令24的命令 42时,虽然通过执行跳转方的特权命令24将控制移到OS11的特权命令 执行控制33,但由于没有执行第1特定命令,所以不能将应用进程13的 属性值14变更为可执行特权命令,所以在特权命令执行控制33中,不执 行特权命令而报错。此外,应用进程13直接执行特权命令43时,虽然控制转移到OS11 的特权命令执行控制33,但由于此情况下也没有执行第1特定命令,所以 不能将应用进程13的属性值14变更为可执行特权命令,所以在特权命令 执行控制33中,不执行特权命令而报错。如此,根据本实施方式,就能够防止因应用进程13引起的特权命令 24、 43及库函数12的非法使用。<第2实施方式>参照图3,本发明的第2实施方式与第1实施方式不同点在于,不在库函数12内配置第2特定命令23,替代于此,配置改变(更新)应用进 程13的堆栈17的命令列23,以在返回到调用源前经过包含第2特定命令 23的函数16。在此,命令列25的配置位置,如果是在配置第1特定命令 22的部位之后必须执行的路径上的话,可以是任意的位置。接着,以与第1实施方式的不同点为中心说明本实施方式的动作。应用进程13根据调用命令41调用库函数12时,首先执行在其开始 部分配置的第l特定命令22,通过OSll的安全门侵入处理31,变更应用 进程13的属性值14。接着,通过由应用进程13来执行命令列25,就能 够改变堆栈17以在返回应用进程13之前经过函数16。接着,执行保证处 理的部分21后,由应用进程13执行特权命令24时,通过OSll的特权命 令执行控制33,根据应用进程13的属性值14判定可否执行特权命令,如 果可执行的话,则进行特权命令24的执行,将控制返回到调用源。接着, 进入库函数12的处理,在为了获得调用源的信息而对堆栈17进行出桟操 作(pop)时,得到了函数16的信息,因此调用函数16,执行其中的第2 特定命令23。由此,执行OSll的安全门退出处理32,将应用进程13的 属性值14恢复到安全门侵入前的状态。应用进程13执行直接跳转到库函数12的特权命令24的命令42时和 执行特权命令43时的操作与第1实施方式相同。如此,根据本实施方式,就能够防止因应用进程13引起的特权命令 24、 43及库函数12的非法使用。此外,在从库函数12返回调用源的应用 进程13的出口存在多个的情况下,在库函数12内配置第2特定命令的方 法中,需要在这些所有的出口之前配置第2特定命令,但在本实施方式中, 具有仅配置1个命令列就能完成的优点。<第2实施方式的变化例>参照图4,本发明的第2实施方式的变化例与第1实施方式不同点在 于,不在库函数12内配置第2特定命令23,替代于此,在OSll的安全 门侵入处理31中追加改变(更新)应用进程13的堆栈17的处理,以在 从库函数12返回应用进程13前经过包含第2特定命令23的函数16。接着,以与第1实施方式的不同点为中心说明本实施方式的操作。 应用进程13根据调用命令41调用库函数12时,首先执行在其开始部分配置的第l特定命令22,通过OSll的安全门侵入处理31,变更应用 进程13的属性值14,并且改变堆栈17以在从库函数12返回应用进程13 之前经过函数16。接着,执行了保证处理的部分21后,由应用进程13 执行特权命令24时,通过OSll的特权命令执行控制33,根据应用进程 13的属性值14判定可否执行特权命令,如果可执行的话,则进行特权命 令24的执行,将控制返回到调用源。接着,迸入库函数12的处理,在为 了获得调用源的信息而对堆栈17进行出栈操作时,得到了函数16的信息, 因此调用函数16,执行其中的第2特定命令23。由此,执行OSll的安全 门退出处理32,将应用进程13的属性值14恢复到安全门侵入前的状态。应用进程13执行直接跳转到库函数12的特权命令24的命令42时和 执行特权命令43时的操作与第1实施方式相同。如此,根据本实施方式,就能够防止因应用进程13引起的特权命令 24、 43及库函数12的非法使用。此外,在从库函数12返回调用源的应用 进程13的出口存在多个的情况下,在库函数12内配置第2特定命令的方 法中,需要在这些所有的出口之前配置第2特定命令,在第2实施方式中 需要配置1个命令列25,但本实施方式中不需要它们。<第3实施方式>参照图5,本发明的第3实施方式与第1实施方式不同点在于,由0S11 执行安全门临时退出处理34:通过安全门侵入处理31变更应用进程13 的属性值14后,在通过安全门退出处理34将应用进程13的属性值14复 原之前的应用进程13的运行中产生了信号或中断26时,在调用应用进程 13的信号/中断句柄44前将应用进程13的属性值14恢复到基于安全门侵 入处理31的变更前的值,在根据信号/中断句柄44的处理结束时,恢复为 基于安全门侵入处理31的变更后的值。接着,以与第i实施方式的不同点为中心说明本实施方式的操作。 应用进程13根据调用命令41调用库函数12时,首先执行在其开始 部分配置的第1特定命令22,通过OSll的安全门侵入处理31,变更应用 进程13的属性值14。接着,执行保证处理的部分21后,由应用进程13执行特权命令24时,通过OS11的特权命令执行控制33,根据应用进程13的属性值14判定可否执行特权命令,如果可执行的话,则进行特权命 令24的执行,将控制返回到调用源。此后,在产生信号冲断26时,产生 内部中断,控制移向OSll,执行安全门临时退出处理34,当应用进程13 的属性值14恢复到基于安全门侵入处理31的变更前的值后,调用应用进 程13的信号/中断句柄44。然后,在基于信号/中断句柄44的处理结束时, 控制返回OSll的安全门临时退出处理34,应用进程13的属性值14恢复 为基于安全门侵入处理31的变更后的值后,控制返回到由库函数12的上 述信号/中断26所中断的部位。然后,进入库函数12的处理,在返回调用 源之前执行第2特定命令时,通过OSll的安全门退出处理32,将应用进 程13的属性值14恢复为安全门侵入前的状态。应用进程13执行直接跳转到库函数12的特权命令24的命令42时和 执行特权命令43时的动作与第1实施方式相同。如此,根据本实施方式,与第l实施方式相比,能够可靠地防止因应 用进程13引起的特权命令24、 43及库函数12的非法使用。 (实施例)接着,参照附图,详细地说明本发明的实施例。 <第1实施方式的实施例1>参照图6,本发明的第1实施方式的实施例1,由通过程序控制进行 动作的计算机100构成,计算机100具备常规存储区UO和高可靠存储区 120。此外,在计算机100中,作为常规程序的OS130进行工作。在常规存储区110中配置应用程序111。在高可靠存储区120中配置 可信赖的服务API库121和基本库122。在此,高可靠存储区是所存储的 信息被篡改的可能性低、可靠性高的存储区,常规存储区是与高可靠存储 区相反的存储区。此外,基本库122是提供文件操作功能、文字列操作功 能、通信功能等,被各种各样的应用程序iio或库程序所利用的基本功能 的库(例如libc)。服务API库121是包含应用程序110使用提供给应用 程序的服务时,直接调用的API函数的库。在本实施例的情况下,在服务API库121中配置第1特定命令123和 第2特定命令124。此外,服务API库121或基本库122包含特权处理系统调用125。在OS130中设置有安全门进入处理部131、安全门退出处理部132、 存储器种类判断处理部133、安全级别变更部134、安全级别变更策略数 据库135、权限检査处理部136、特权处理系统调用处理部137、和进程状 态管理数据库138。 OS130例如是Linux也可以是其以外种类的OS。常规存储区110由RAM等实现,能够从应用程序1U自由地利用。应用程序IH为在产品出厂时不包含的、此后追加的这样可否信赖不 明确的程序。通常,应用程序111通过OS130从文件系统等非易失性存储 器载入到常规存储区U0中,作为应用进程被执行。高可靠存储区120是具有不容易从应用进程改变的特性的存储区。最 通常的实现方法虽然是基于ROM的应用,但也可以是OS130管理下的原 来的、被设为不容易从应用进程改变的RAM,即也可以是作为没有被设 定来自应用程序的写入权限的存储空间而被分配的RAM。此情况下,通 过在高可靠存储区120中从ROM或文件系统装载API库121及基本库122 来配置OS130。再有,例如,在Linux中,由于保存程序代码的存储空间 被设定为禁止写入,所以相当于此种存储空间。服务API库121对应用程序111提供各种各样的库功能,应用程序 111具有多个在利用此功能时调用的API函数。第1特定命令123作为特定的系统调用命令被安装,配置在上述API 函数的开始。当应用进程调用此命令123时,产生内部中断,调用OS130 的安全门进入处理部131。第2特定命令124也作为特定的系统调用命令被安装,配置在上述 API函数处理的末尾。应用进程调用此命令124时,产生内部中断,调用 OS130的安全门退出处理部132。基本库122是利用服务API库121等的、提供更基本的功能的库。特权处理系统调用125为了实现服务API库121或基本库122的功能, 调用OS130的功能,在能否信赖不明确的应用进程的安全级别中,没有被 赋予执行权。再有,应用进程调用特权处理系统调用125时,产生内部中 断,调用OS130内的权限检查处理部136。应用进程的安全级别,在本实 施例的情况下,设为"低"(非特权级别)和"高"(特权级别)2个级别。毫无疑问,像具有3级别以上的级别的计算机、某种携带电话那样, 能够适用于具有装置制造者级别、通信事业者级别、可信赖的应用销售商 级别、能否信赖不明确这4个级别的安全级别的终端。安全门进入处理部131,根据存储器种类判断处理部133的结果,判 断第1特定命令123是否被正规地执行,在被正规执行了的情况下,使用 安全级别变更部134将该应用进程的安全级别转换为更高级别。另一方面, 在非法执行了第1特定命令123的情况下,不进行安全级别的转换。存储器种类判断处理部133判断被执行的第1特定命令123是否处于 高可靠存储区120中。具体地,将高可靠存储区120的地址范围作为允许 地址范围加以保持,比较被执行的第1特定命令123的地址和允许地址范 围,如果第1特定命令123的地址在允许地址范围内的话,就判断为处于 高可靠存储器120中,除此之外判断为处于常规存储区110内。此外,存 储器种类判断处理部133还可以通过参照OS130管理的数据,确认作为高 可靠存储区被确认的第1特定命令所存在的存储地址是程序代码区而不是 数据区,如果这样,就能够防止数据区的偶然的模式一致导致的判断错误。上述的允许地址范围的设定按如下的a) 、 b)执行。a) 如果高可靠存储区120是ROM区的话,则设此ROM区的地址范 围为允许地址范围。b) 在将处于文件系统或ROM中的可信赖的服务API库程序装载在 RAM区并执行的计算机的情况下,设此装载的存储器地址范围为允许地 址范围。再有,装载的服务API库程序是不是可信赖的判断可利用以下的 方法预先保持装载源的文件系统或ROM本身是不是可信赖的信息,参 照此信息进行判断的方法;预先保持可信赖的服务API库程序的列表,参 照此列表进行判断的方法;在可信赖的服务API库程序本身中预先附加上 标记(署名等),在装载时进行确认的方法等。安全门退出处理部132使用安全级别变更部134,将该应用进程的安 全级别恢复为原来的状态。进程状态管理数据库138保持唯一识别应用进程的进程ID和安全级 别的组。安全级别变更部134根据安全门进入处理部131的请求,对应当变更该应用进程的安全级别的、进程状态管理数据库138的表示该应用进程的 安全级别的部分进行变更。此时,为了能复原,在进程状态管理数据库138 中保持变更前的值。在此,也可以设置保持变更规则的安全级别变更策略数据库135,安 全级别变更部134根据保持在此数据库135中的变更规则,变更应用进程 的安全级别。例如,如果根据应用进程的种类、特性、原来的安全级别, 使用记述将安全级别提高到哪个级别的变更规则,或根据装置(计算机) 的状态,使用记述将安全级别提高到哪个级别的变更规则的话,就能更灵 活的进行安全级别的变更。此外,安全级别变更部134根据安全门退出处理部132的请求,进行 将该应用进程的安全级别复原的处理。权限检查处理部136参照进程状态管理数据库138的信息判断对 OS130请求的特权处理系统调用是不是由请求方的应用进程的当前的安 全级别执行的权限,在具有权限的情况下,使用特权处理系统调用处理部 137进行处理。在无权限时不进行系统调用的执行,设为出错。特权处理系统调用处理部137进行被请求的特权处理系统调用的处理。接着,参照从图6及图7至图9的流程图,详细地说明本实施例的动作。首先,通过OS130,应用进程程序lll被装载在常规存储区110中, 作为应用进程(迸程ID-nnn)被执行。此时,应用进程可否信赖不明确, 按安全级别为"低"进行操作。应用进程,根据需要调用服务API库121 提供的API函数,执行配置在API函数的开始的、第1特定命令123 (图 7的步骤S101)。执行第1特定命令123时,调用处于OS130内的安全门进入处理部 131。在安全门进入处理部131中,使用存储器种类判断处理部133求出 成为调用原因的第1特定命令123所存在的存储区的种类(图7的步骤 S102)。仅限求出的存储区的种类是高可靠存储区120的情况下,使用安 全级别变更部134将应用进程的安全级别变更为较高的级别(图7的步骤 S103及S104)。由此,处于进程状态管理数据库138内的、涉及该应用进程的安全级别的数据例如就会由"低"变更为"高"。在结束应用进程 的安全级别的变更后,结束第1特定命令123的处理(图7的步骤S114)。在步骤S103中,如果存储区的种类不是高可靠存储区120,就不变更应 用进程的安全级别,结束第1特定命令123的处理(图7的步骤S114)。 此后,应用进程执行服务API库121的处理和服务API库121进一步 调用的基本库122所提供的程序,在此过程中就会执行特权处理系统调用 125。执行特权处理系统调用125时(图8的步骤Slll),调用OS130内 的权限检查处理部136。在权限检查处理部136中,参照处于进程状态管 理数据库138内的、该应用进程的安全级别,如果处于"高"状态,就使 用特权处理系统调用处理部137进行特权处理(图8的步骤Sl 12及Sl 13), 结束处理(图8的步骤S114)。在应用进程的安全级别是"低"的情况下, 不进行特权处理,返回特权模式错误(图8的步骤S115),结束处理(图 8的步骤SU4)。此后,在应用进程中结束服务API库121的处理,在处理返回应用程 序111之前,执行第2特定命令124 (图9的步骤S121)。执行第2特定命令124时,调用处于OS130内的安全门退出处理部 132。在安全门退出处理部132中,使用安全级别变更部134,将该应用进 程的安全级别复原(图9的步骤S122)。在此,处于进程状态管理数据库 138内的、涉及该应用进程的安全级别的数据就会恢复为"低"。接着,参照图IO,说明应用程序lll、服务API库121及基本库122 的具体例。再有,OS是Linux。参照图10,在应用进程111中,写入此应用程序想要实现的处理。 API库程序121向应用程序111提供发出快门声拍摄照片的处理。发出此 快门声的处理也是保证其执行的部分。基本库程序122提供针对设备文件 的打开、关闭、读出、写入的功能。此外,应用程序lll被配置在常规存 储区110,API库程序121及基本库程序122被配置在高可靠性存储区120。 而且,设应用进程没有被赋予对设备文件进行操作的权限,成为安全门侵 入时被变更的安全级别后,首次被赋予能够对设备文件进行操作的权限。生成对应于应用程序111的应用进程时,从应用程序111的步骤A01的main ()函数开始处理。应用进程为了在处理的中途进行照片拍摄,调 用API库程序121提供的Camera—TakePicture函数(步骤A04)。在 Camera—TakePicture函数的开始,调用作为第1特定命令时的安全门侵入 系统调用(步骤B04)、变更应用进程的安全级别。此后,为了发出快门 声,调用声音设备文件的打开函数(步骤B06),通过向此文件写入快门 声,产生快门音(步骤B07),调用关闭函数,关闭声音设备文件(步骤 B08)。接着为了拍摄照片,调用照相机设备的打开函数(步骤B10), 通过向此文件写入拍摄指令进行照片拍摄(步骤Bll),为了取得得到的 图像,在调用读出函数后(步骤B12),调用关闭函数关闭照相机设备文 件(步骤B13)。在此,在原来的应用进程中,虽然没有针对设备文件的 操作的权限,但由于根据通过安全门来变更安全级别,所以正常地处理针 对本设备文件的操作。API库程序121,此后调用在Camera—TakePicture 函数的末尾作为第2特定命令时的安全门退出系统调用(步骤B15),将 应用进程的安全级别恢复为原来的级别后,返回应用进程。如此这样,应用进程仅在执行作为服务API函数的 Camera—TakePicture函数期间,能够进行针对设备文件的操作。为了从应 用程序中直接操作设备文件,即便作为调用基本库程序122内的例如打开 函数(步骤COl),由于没有侵入安全门(即不执行第l特定命令),所 以也出错。此外,即使直接跳转到步骤C05也同样出错。此外,即使应用 程序111模仿步骤C05的命令(syscall (OPEN、 path、 fd),也同样出错。 并且,即使应用程序111模仿步骤B04的命令(syscall(SEC—GATE—IN), 想要非法变更安全级别,由于本命令不在高可靠存储区,因此也出错。基于以上的结果,如果应用进程不正确利用API库程序121的话,就 不能利用基本库程序122提供的照相机功能。而且,正确利用API库程序 121时, 一定会执行发出快门音的处理,能够保证此处理的执行。例如, 由于在携带电话的照相机拍摄时一定会发生快门声,所以如图10的API 库程序121那样,如果通过保证发出声音的处理的执行的API库程序在应 用程序111中允许对照相机设备的访问的话,就能够防止不发出声音便操 作快门这样的非法行为。如此,根据本实施例,就能够对是否可信赖不明确的应用进程,安全地提供在应用进程中设定的安全级别中包含不允许执行的程序代码的库 函数。下面,列举几个具体的适用例,具体地说明本实施例的效果。 <适用例1>参照图ll,在本适用例中,作为基本库122配置libc,在libc内部有 共有存储器操作系统调用命令和信号机操作系统调用命令的程序代码。在服务API库121中的服务API函数的处理中,有利用libc中的共有存储器操作系统调用命令和信号机操作系统调用命令的程序代码。应用进程没有 被赋予使用那些如果被滥用就有可能对整个系统造成深刻的坏影响的系 统调用的权限。如果使用本发明的结构,应用进程仅执行服务API函数期间能够进行 信号机操作和共有存储器操作,即使调用从应用程序中直接提供libc的信号机操作系统调用命令和共有存储器操作系统调用命令,也会出错。为此, 能够一面禁止应用程序的任意的信号机和共有存储器的操作, 一面提供利用这些操作的服务API函数。 <适用例2>参照图12,本适用例的计算机,作为向应用程序111中提供的GUI 系统,提供X服务器/委托人。在此计算机中,作为基本库122配置libc, 在libc内部存在socket通信系统调用命令的程序代码。此外,作为服务 API程序121,配置X客户端库(xlib),在此当中,调用包含libc中的 socket通信系统调用命令的函数。在应用进程中,不赋予根据socket通信 系统调用命令的进行与X服务器的通信的权限。如果使用本发明的结构,应用进程仅在通过位于高可靠存储区120中 的xlib库时,能够进行与X服务器的通信。如此这样,就能够阻止应用程 序未通过xlib,任意的进行与X服务器的通信,对X服务器造成恶劣影响 这种情况。<适用例3>参照图13,本适用例的计算机,根据基于DRM (Digital Rights Management)的利用权限管理,提供图像或音乐、动画等的内容服务。在 此计算机中,作为基本库122配置libc,在libc内部存在文件打开系统调 用命令的程序代码。此外,作为服务API程序121,配置DRM库,在此当中进行DRM处理,还调用包含libc内的文件打开系统调用命令的函数。 此外,在计算机内部,具有包含DRM管理对象的内容的文件系统。在应 用进程中,不赋予打开此DRM管理对象的内容的权限。如果使用本发明的结构,只有在应用进程通过DRM库适当地进行 DRM处理的情况下,能够打开DRM管理对象内容。即使在应用程序中想 要任意地打开DRM管理对象内容,但由于能够防止这种情况,因此还能 够期待不需要以往所必需的DRM管理对象内容的加密这种效果。<适用例4>参照图14,本适用例的计算机,提供与计算机2外的系统(服务器) 进行通信的服务。在此计算机中,作为基本库122配置libc,在libc内存 在socket通信系统调用命令的程序代码。此外,作为服务API程序121, 配置HTTP通信库,在此当中进行HTTP处理,还调用发出libc内的socket 通信系统调用命令的函数。在应用进程中,不赋予进行socket通信系统调 用的权限。如果使用本发明的结构,应用进程仅通过HTTP通信库的情况下,可 进行能够与外部的服务器的通信的设定。通过这样的设定,能够防止在应 用程序中任意地进行与外部服务器通信,能够防止应用进程通过设想外的 协议进行与外部服务器的通信,和使用基于应用程序独自的HTTP处理的 非法的参数的HTTP通信等。<第1实施方式的实施例2>参照图15,本发明的第1实施方式的实施例2与实施例1的不同点在 于,作为应用进程的新的属性值追加表示安全门侵入状态的属性值,进程 状态管理数据库138保持进程ID和安全级别和对应于上述属性值的安全 门通过标志的组,具备具有变更此进程状态管理数据库138内的安全门通 过标志的功能的安全门侵入状态记录处理部138,应用进程在侵入安全门 的时刻不变更其安全级别,用安全门通过标志管理处于安全门侵入状态, 在通过权限检查处理部136的特权命令执行的权限检查时,临时变更安全 级别。接着,参照从图15及图16至图18的流程图详细地说明本实施例的 操作。首先,通过OS130将应用程序111装载在常规存储区110中,作为应 用进程(进程ID-nnn)执行。此时,应用进程可否信赖不明确,设按安 全级别为"低"进行动作。此外,安全门通过标志是"0"。应用进程, 根据需要调用服务API库121提供的API函数,执行配置在API函数的开 始的、第1特定命令123 (图16的步骤S201)。执行第1特定命令123时,调用处于OS130内的安全门进入处理部 131。在安全门进入处理部131中,使用存储器种类判断处理部133求出 成为调用原因的第1特定命令123所存在的存储区的种类(图16的步骤 S202)。仅限求出的存储区的种类是高可靠存储区120的情况下,使用安 全门进入状态记录处理部139,记录应用进程是安全门侵入状态(图16 的步骤S203及S204)。由此,处于进程状态管理数据库138内的、该应 用进程的安全门通过标志例如就会由"0"变更为"1"。在结束应用进程 的安全门通过标志的变更后,结束第1特定命令123的处理(图16的步 骤S205)。另一方面,如果第1特定命令123存在的存储区不是高可靠存 储区120 (图16的步骤S203中NO),就不变更应用进程的安全门通过 标志,结束第1特定命令123的处理(图16的步骤S205)。此后,应用进程执行服务API库121的处理和服务API库121进一步 调用的基本库122提供的程序,在此过程中就会执行特权处理系统调用命 令125。执行特权处理系统调用命令125时(图17的步骤S211),调用OS130 内的权限检查处理部136。在权限检査处理部136中,参照处于进程状态 管理数据库138内的、该应用进程的安全门通过标志,如果处于"1"状 态,就使用安全级别变更部134将该应用进程的安全级别变更为"高"(图 17的步骤S212及S213)接着,依据变更了的安全级别,检査应用进程是 否保持有处理特权处理系统调用命令的权限,在保持有权限的情况下,使 用特权处理系统调用处理部137进行特权处理(图17的步骤S214及 S215)。在没有保持权限的情况下,不进行特权处理,设为特权模式错误 (图17的步骤S218)。此后,再次使用安全级别变更部134将该应用进 程的安全级别恢复为"低",结束特权处理系统调用处理(图17的步骤 S216及S217)。此后,应用进程,结束服务API库121的处理,在处理返回应用程序111之前,执行第2特定命令124 (图18的步骤S221)。执行第2特定命令124时,调用处于OS130内的安全门退出处理部 132。在安全门退出处理部132中,使用安全门进入状态记录处理部139, 将该应用进程的安全门通过标志复原(图18的步骤S222)。由此,处于 进程状态管理数据库138内的、该应用进程的安全门通过标志就会恢复为 "0,,。如此根据第1实施方式的实施例2,相比于第1实施方式的实施例1, 由于能够縮短限定使应用进程的安全级别成为"高"的状态的区间,就能 够更安全地运用。此外,由于在安全级别变更策略数据库135中能够按特权处理系统调 用单位保持安全级别变更策略,所以就能够进行更灵活的安全级别变更。 例如,从侵入安全门到退出,出现多个种类的特权处理系统调用命令,其 中几个存在不管在哪种情况下都不能在正体不明确的应用进程中利用的 特别的命令(例如电源复位等)的情况下,就能够仅将此特别的命令的场 所从安全级别变更的对象中除外。<第1实施方式的实施例2的变化例>再有,在本实施例中,虽然用设置在对应各应用进程的进程ID至少 保持安全级别的进程状态管理数据库中的标志,来管理应用进程是不是安 全门侵入状态,但也可以,例如如图19所示,设置管理安全门侵入状态 的应用进程的进程ID —览的安全门侵入中进程ID数据库150。这种情况 下,安全门侵入状态记录处理部139进行如下处理,在数据库150中记录 来自安全门侵入处理部131请求的应用进程的进程ID,从数据库150中删 除来自安全门退出处理部132中请求的应用进程的进程ID。此外,权限检 查处理部136通过检索成为权限检查的对象的应用进程的ID是否被记录 在数据库150中,来判断该应用进程是不是安全门侵入状态。<第1实施方式的实施例3>参照图20,本发明的第1实施方式的实施例3与上述实施例2的不同 点在于,从图15所示的第1实施方式的实施例2的结构中省略安全级别 变更部134及安全门级别变更策略数据库135,权限检査处理部136在应用进程处于安全门侵入状态的情况下,按照应用进程的安全级别省略权限 检査,执行特权命令,在应用进程不在安全门侵入状态的情况下,根据应 用进程的安全级别进行权限检查,在具有执行特权命令的权限时执行特权 命令,在没有执行特权命令的权限时,作为特权命令违反会产生错误。
接着,参照从图20及图21的流程图,详细地说明本实施例的操作。
首先,通过OS130将应用程序111装载在常规存储区IIO中,作为应 用进程(进程ID=nnn)加以执行。此时,应用进程可否信赖不明确,设 按安全级别为"低"进行操作。应用进程,按照请求调用服务API库121 提供的API函数,执行配置在API函数的开始的、第1特定命令123。此 时的操作与图15的实施例2相同,其结果,仅限存在第1特定命令123 的存储区是高可靠存储区120的情形,处于进程状态管理数据库138内的、 该应用进程的安全门通过标志例如就会由"0"变更为"1"。
此后,应用进程执行服务API库121的处理和进一步调用服务API 库121的基本库122提供的程序,在此过程中就会执行特权处理系统调用 命令125。
执行特权处理系统调用命令125时(图21的步骤S301),调用OS130 内的权限检查处理部136。在权限检査处理部136中,参照处于进程状态 管理数据库138内的、该应用进程的安全门通过标志,如果不处于"1" 状态,就通过根据安全级别的权限检查,使用特权处理系统调用处理部137 进行特权处理,结束特权处理系统调用处理(图21的步骤S302、 S304、 S305)。另一方面,如果安全门通过标志是"0"的状态(图21的步骤 S302为NO),则依据该应用进程的安全级别,检查该应用进程是否保持 有处理特权处理系统调用命令的权限,在保持有权限的情况下,使用特权 处理系统调用处理部137进行特权处理,结束特权处理系统调用处理(从 图21的步骤S303到S305〉。但是,在没有保持权限的情况下,就不进 行特权处理,作为特权模式错误(图2的步骤S303、 S306)。
此后,应用进程,结束服务API库121的处理,在处理返回应用程序 111之前,执行第2特定命令124时,与图15的实施例2相同,处于进程 状态管理数据库138内的、该应用进程的安全门通过标志恢复为"0"。
如此根据第1实施方式的实施例3,相比于第1实施方式的实施例1涉及安全级别变更的处理,就不用极其细致的控 制,另一方面,结构变简单,应用变容易,具有提高处理速度的效果。
再有,在本实施例中,虽然用设置在对应各应用进程的进程ID至少 保持安全级别的进程状态管理数据库中的标志,来管理应用进程是不是安 全门侵入状态,但也可以,与图19所示的实施例同样,设置管理安全门
侵入状态的应用进程的进程ID —览的安全门侵入中迸程ID数据库150。 <第1实施方式的实施例4>
参照图22,本发明的第1实施方式的实施例4与上述实施例2的不同 点在于,从图15所示的第1实施方式的实施例2的结构中省略安全级别 变更部134、安全门级别变更策略数据库135及进程状态管理数据库138, 另一方面,追加管理安全门侵入状态的应用进程的进程ID —览的安全门 侵入中的进程ID数据库150,权限检查处理部136按照应用进程是否处于 安全门侵入状态来控制是否执行特权命令。
接着,参照图22及图23的流程图,详细地说明本实施例的操作。
首先,通过OS130将应用程序1U装载在常规存储区110中,作为应 用进程(进程ID=nnn)加以执行。本实施例的情况下,由于不需要对应 用进程进行安全级别的设定,所以可以设定任意的安全级别。应用进程, 按照请求调用服务API库121提供的API函数,执行配置在API函数的开 始的、第1特定命令123。此时的操作与图19的实施例2的变化例相同, 其结果,仅限第1特定命令123所存在的存储区是高可靠存储区120的情 形,在安全门侵入中进程ID数据库150中登记该应用进程的进程ID。
此后,应用进程执行服务API库121的处理和进一步调用服务API 库121的基本库122提供的程序,在此过程中就会执行特权处理系统调用 命令125。
执行特权处理系统调用命令125时(图23的步骤S401),调用OS130 内的权限检查处理部136。在权限检査处理部136中,调査是否在安全门 侵入中进程ID数据库159中登记有该应用进程的进程ID,如果登记了的 话,则使用特权处理系统调用处理部137进行特权处理,结束特权处理系 统调用处理(从图23的步骤S402到S404)。另一方面,如果没有登记 (图23的步骤S402为NO),则不进行特权处理,设为特权模式错误(图23的步骤S305)。
此后,应用进程,结束服务API库121的处理,在处理返回应用程序 111之前,执行第2特定命令124时,与图19的实施例2的变化例相同, 从安全门侵入中进程ID数据库150中删除该应用进程的进程ID。
如此根据第1实施方式的实施例4,相比于第1实施方式的实施例1 及实施例2,由于不进行涉及安全级别的处理,就不用极其细致的控制, 另一方面,结构变得更简单,应用变容易,具有提高处理速度的效果。
再有,在本实施例中,虽然用安全门侵入中进程ID数据库150来管 理应用进程是不是安全门侵入状态,但也可以,与第l实施方式的实施例 2同样,用设置在对应各应用进程的进程ID至少保持安全级别的进程状态 管理数据库中的标志来进行管理。
<第2实施方式的实施例1>
参照图24,本发明的第2实施方式的实施例1与上述第1实施方式的 实施例1的不同点在于,替代省略在存在于服务API库121中的各API 函数的处理的末尾配置的第2特定命令124,在执行第1特定命令123时, 在各API函数上附加作为改变应用进程的堆栈的命令列时的堆栈改变处 理部126,以在返回应用程序之前一定经过包含第2特定命令124的函数。 接着,参照图24及图25,详细地说明本实施例的操作。 首先,通过OS130将应用程序111装载在常规存储区110中,作为应 用进程(进程ID=nnn)加以执行。此时,应用进程可否信赖不明确,设 按安全级别为"低"进行操作。应用进程,根据需要调用服务API库121 提供的API函数,执行配置在API函数的开始的、第1特定命令123。由 此,与第1实施方式的实施例1相同,仅限第1特定命令123所存在的存 储区种类是高可靠存储区120的情形,使用安全级别变更部134,将应用 进程的安全级别例如从"低"变更为"高"。接着,运行堆栈改变处理部 126,改变该应用进程的堆栈信息,如图25所示,在服务API库内API 函数的堆栈信息和应用程序内函数的堆栈信息之间插入执行第2特定命令 的函数的堆栈信息。像这样,通过改变堆栈信息,该应用进程就会结束服 务API库内API函数的处理,在处理返回应用程序内函数之前,就一定会 调用执行第2特定命令124的函数。调用执行第2特定命令124的函数,执行此第2特定命令124时,与 第1实施方式的实施例1相同,使用安全级别变更部134将应用进程的安
全级别恢复为"低"。然后,根据堆栈信息,将控制返回应用程序。
如此根据第2实施方式的实施例1,通过堆栈改变处理,应用进程结 束服务API库内API函数的处理,由于在处理返回应用程序内函数之前, 能够调用必定执行第2特定命令124的函数,所以能够防止因第2特定命 令124的配置错误引起的特权级别的非法流出。
再有,与本实施例相同,通过堆栈改变处理无一例外地执行第2特定 命令124的结构,还能够适用于第1实施方式的实施例1之外的其它的实 施例。此外,也可以如第2实施方式的变化例中所说明的,作为OS130 的一功能提供堆栈改变处理,通过在第1特定命令123执行时调用的安全 门侵入处理部131来进行堆栈改变处理。
<第3实施方式的实施例1>
参照图26,本发明的第3实施方式的实施例1,在第1实施方式的实 施例1的结构中追加信号/中断句柄112、信号/中断处理部140和安全门临 时退出处理部141。此外,进程状态管理数据库138保存应用进程的进程 ID、当前的安全级别、进程生成时原始分配的安全级别(初始级别)和安
全级别的保存域的组。
信号/中断句柄112,存在于应用程序lll内,进行对应于在应用进程
运行期间产生的信号或中断的处理。
信号/中断处理部140,存在与OS130中,在应用进程运行期间产生信
号或中断时,中断到此为止的处理,经过安全门临时退出处理部141,进 行调用应用程序内的信号/中断句柄112的处理。
安全门临时退出处理布141,在信号/中断处理部140调用应用程序内 的信号/中断句柄112之前,进行临时将该应用进程的安全级别复原的处 理。
接着,参照图26及图27的流程图,详细地说明本实施例的操作。 利用第1实施方式的实施例1中说明的处理动作使计算机100进行工 作的情况下,在应用进程进行处理期间产生信号/中断时,OS130临时中断 应用进程的处理,使用信号/中断处理部140调用处于应用程序111内的信号/中断句柄U2。此时,万一应用进程的状态,正处于从安全门进入处理 部131中通过的状态下,在应用进程处于特权状态的情况下,就这样,保 持特权状态不动,执行应用程序内的程序代码,变成安全的危险状态。因 此,在本实施方式中为了防止其,在信号/中断处理部140调用信号/中断句柄112之前,使用安全门临时退出处理部141,如下所示,进行临时将该应用进程的安全级别复原的处理。在应用进程的处理中产生信号或中断时(图27的步骤S501),信号/ 中断处理部140调用安全门临时退出处理布141。安全门临时退出处理部 141将该应用进程的当前的安全级别记录在进程状态管理数据库138的保 存域中(图27的步骤S502)。接着,将该进程的安全级别变更为进程生 成时原本分配的安全级别(图27的步骤S503)。此后,调用处于应用程 序111中的信号/中断句柄112 (图27的步骤S504)。结束信号/中断句柄112的处理时,控制返回安全门临时退出处理部 141,安全门临时退出处理布141,将该应用进程的安全级别恢复为在进程 状态管理数据库138的保存域记录的安全级别(图27的步骤S505)。此 后,控制返回信号/中断处理部140,结束信号/中断处理(图27的步骤 S506)。如此根据本实施例,即使在通过安全门的特权状态的应用进程中产生 信号/中断,执行处于应用程序内的句柄的情况下,由于能够将该应用进程 的安全级别临时恢复为应用进程中原本分配的状态,就能够防止特权状态 的非法流出。再有,与本实施例相同,将信号/中断句柄112的执行中的应用进程的 安全级别临时复原的结构,也能够适用于第1实施方式的实施例1之外的 其它的实施例及第1实施例1的方式以外的其它的实施方式。根据本发明,能够适用于在信息处理装置中安全地追加可否信赖不明 确的应用程序这样的用途。在此,信息处理装置能够在从个人计算机这样 的设备,到携带电话或PDA等移动通信终端等组装的计算机、游戏机及 多功能复印机等中适用。
权利要求
1. 一种信息处理装置,包括存储部,保持库函数、应用进程、应用进程的属性值及第1特定命令的允许地址范围,该库函数在由自函数进行的处理中保证执行的部分的执行前执行上述第1特定命令、并且在返回到调用源前执行第2特定命令;特权命令执行控制部,当上述应用进程执行特权命令而产生了内部中断时,根据上述应用进程的上述属性值控制可否执行特权命令;安全门侵入处理部,当上述应用进程执行第1特定命令而产生了内部中断时,检查上述第1特定命令的地址是否在上述允许地址范围内,如果处于上述允许地址范围内,则变更上述应用进程的上述属性值;以及安全门退出处理部,当上述应用进程执行第2特定命令而产生了内部中断时,将上述应用进程的上述属性值复原。
2、 根据权利要求1所述的信息处理装置,上述保证执行的部分,是 通过实施参数检査和必需的预处理,来保证之后的关键处理的安全执行的 部分。
3、 根据权利要求1或2所述的信息处理装置,上述属性值是表示上 述应用进程的安全级别的属性值。
4、 根据权利要求3所述的信息处理装置,上述特权命令执行控制部 进行根据上述应用进程的安全级别的权限检查,在具有执行特权命令的权 限时执行特权命令。
5、 根据权利要求1或2所述的信息处理装置,上述属性值是表示上 述应用进程的安全门侵入状态的属性值。
6、 根据权利要求5所述的信息处理装置,上述特权命令执行控制部 在上述应用进程处于安全门侵入状态的情况下,执行特权命令。
7、 根据权利要求1或2所述的信息处理装置,上述属性值包含表示 上述应用进程的安全级别的属性值和表示上述应用进程的安全门侵入状 态的属性值。
8、 根据权利要求7所述的信息处理装置,上述特权命令执行控制部 在上述应用进程处于安全门侵入状态的情况下,省略根据上述应用进程的安全级别的权限检査,执行特权命令,在上述应用进程不处于安全门侵入 状态的情况下,进行根据上述应用进程的安全级别的权限检查,在具有执 行特权命令的权限时执行特权命令。
9、 根据权利要求7所述的信息处理装置,上述安全门侵入处理部变更成为安全门侵入状态的应用进程的安全 级别;上述安全门退出处理部将成为安全门退出状态的应用进程的安全级别复原;并且上述特权命令执行控制部,进行根据上述应用进程的安全级别的权限 检查,在具有执行特权命令的权限时执行特权命令。
10、 根据权利要求7所述的信息处理装置,上述特权命令执行控制部 在上述应用进程处于安全门侵入状态的情况下,更新了上述应用进程的安 全级别后,进行根据上述应用进程的安全级别的权限检查,当具有执行特 权命令的权限时执行特权命令后,将安全级别恢复到原来的值。
11、 根据权利要求8 10中任意一项所述的信息处理装置,包括 安全门临时退出处理部,当在处于安全门侵入状态的上述应用进程的运行中产生了信号或中断时,在调用上述应用进程的信号/中断句柄前将上 述应用进程的安全级别恢复为安全门侵入前的值,在根据上述信号/中断句 柄的处理结束时或结束后,恢复为安全门侵入后的值。
12、 根据权利要求1或2所述的信息处理装置,包括安全门临时退出处理部,在由上述安全门侵入处理部变更了上述应用 进程的上述属性值后,到由上述安全门退出处理部将上述应用进程的上述 属性值复原之前的上述应用进程的运行中产生了信号或中断时,在调用上 述应用进程的信号/中断句柄前将上述应用进程的上述属性值恢复到基于 上述安全门侵入处理部的变更前的值,在根据上述信号/中断句柄的处理结 束时或结束后,恢复为基于上述安全门侵入处理部的变更后的值。
13、 根据权利要求3、 4、 7 11中任意一项所述的信息处理装置,上述安全门侵入处理部将上述应用进程的安全级别变更为特权级别。
14、 根据权利要求3、 4、 7 11中任意一项所述的信息处理装置,包括保持安全级别变更规则的安全级别变更策略数据库,上述安全门侵入处理部根据上述安全级别变更规则变更上述应用进程的安全级别。
15、 根据权利要求5 11中任意一项所述的信息处理装置,表示上述 应用进程的安全门侵入状态的属性值,作为对应各应用进程的进程ID至 少保持有安全级别的进程管理用数据库的1个标志被记录。
16、 根据权利要求5 11中任意一项所述的信息处理装置,包括管理安全门侵入状态的应用进程的一览的数据库,根据在该数据库中是否记录有进程ID来决定表示应用进程的安全门侵入状态的属性值。
17、 根据权利要求1 12中任意一项所述的信息处理装置,上述库函 数在保证执行的处理记述之前配置有第1特定命令,在返回到调用源的出 口之前配置有第2特定命令。
18、 根据权利要求1 12中任意一项所述的信息处理装置,上述库函 数在保证执行的处理记述之前配有置第1特定命令,在配置第1特定命令 的部位之后必须执行的路径上配置有改变上述应用进程的堆栈的命令列, 以在返回到调用源前经过包含第2特定命令的函数。
19、 根据权利要求1 12中任意一项所述的信息处理装置, 上述库函数在保证执行的处理记述之前配置有第1特定命令; 上述安全门侵入处理部,在变更了上述应用进程的上述属性值的情况下,改变上述应用进程的堆栈,以在上述应用进程返回到调用源之前,经 过包含第2特定命令的函数。
20、 根据权利要求1 12中任意一项所述的信息处理装置,上述预定 的地址范围是ROM区域内的地址范围。
21、 根据权利要求1 12中任意一项所述的信息处理装置,上述预定 的地址范围是被从ROM区域装入到RAM区域的库函数在RAM区域上的 地址范围。
22、 根据权利要求1 12中任意一项所述的信息处理装置,上述预定 的地址范围是被从可信赖的文件系统装入到RAM区域的库函数在RAM 区域上的地址范围。
23、 根据权利要求1 12中任意一项所述的信息处理装置,上述预定 的地址范围是被从文件系统装入到RAM区域的可信赖的库函数在RAM 区域上的地址范围。、 根据权利要求1 12中任意一项所述的信息处理装置,上述安全 门侵入处理部,在上述应用进程执行第l特定命令发生了内部中断时,除 进行上述第1特定命令的地址是否在上述允许地址范围内的检查外,还进 行上述第1特定命令的地址是否是程序区的检查。
25、 根据权利要求1 12中任意一项所述的信息处理装置,上述第l 特定命令和上述第2的特定命令分别是对操作系统发出安全门侵入请求、 退出请求的系统调用命令。
26、 根据权利要求1 12中任意一项所述的信息处理装置,上述库函 数包含基本库函数和服务API库函数。
27、 根据权利要求26所述的信息处理装置,上述基本库函数,作为特权命令包含共有存储器操作系统调用命令和 信号机操作系统调用命令;上述服务API库函数包含程序代码,该程序代码利用包含上述共有存 储器操作系统调用命令和信号机操作系统调用命令的基本库函数。
28、 根据权利要求26所述的信息处理装置,上述基本库函数包含作为用于与X服务器进行通信的特权命令的套 接字通信系统调用命令;上述服务API库函数包含程序代码,该程序代码利用包含上述套接字 通信系统调用命令的基本库函数。
29、 根据权利要求26所述的信息处理装置,上述基本库函数,为了打开包含DRM管理对象内容的文件,而作为特权命令包含有文件打开系统调用命令;上述服务API库函数,进行DRM处理,且包含程序代码,该程序代码利用包含上述文件打开系统调用命令的基本库函数。
30、 根据权利要求26所述的信息处理装置,上述基本库函数,为了与外部的服务器进行通信,而作为特权命令包 含有套接字通信系统调用命令;上述服务API库函数,进行HTTP处理,且包含程序代码,该程序代 码利用包含上述套接字通信系统调用命令的基本库函数。
31、 一种信息处理方法,在信息处理装置中保持库函数、应用进程、应用进程的属性值及第1 特定命令的允许地址范围,该库函数在由自函数进行的处理中保证执行的 部分的执行前执行上述第1特定命令、并且在返回到调用源前执行第2特 定命令;该信息处理方法执行特权命令执行控制处理,当上述应用进程执行特权命令产生了内部中 断时,根据上述应用进程的上述属性值控制可否执行特权命令;安全门侵入处理,当上述应用进程执行第1特定命令产生了内部中断 时,检查上述第l特定命令的地址是否在上述允许地址范围内,如果处于 上述允许地址范围内,则变更上述应用进程的上述属性值;以及安全门退出处理,当上述应用进程执行第2特定命令产生了内部中断时,将上述应用进程的上述属性值复原。
32. 根据权利要求31所述的信息处理方法,上述保证执行的部分, 是通过实施参数检查和必需的预处理,来保证之后的关键处理的安全执行 的部分。
33. 根据权利要求31或32所述的信息处理方法,上述属性值是表示 上述应用进程的安全级别的属性值。
34. 根据权利要求33所述的信息处理方法,在上述特权命令执行控 制处理中,进行根据上述应用进程的安全级别的权限检查,在具有执行特 权命令的权限时执行特权命令。
35. 根据权利要求31或32所述的信息处理方法,上述属性值是表示 上述应用进程的安全门侵入状态的属性值。
36. 根据权利要求35所述的信息处理方法,在上述特权命令执行控 制处理中,在上述应用进程处于安全门侵入状态的情况下,执行特权命令。
37. 根据权利要求31或32所述的信息处理方法,上述属性值包含表 示上述应用进程的安全级别的属性值和表示上述应用进程的安全门侵入 状态的属性值。
38. 根据权利要求37所述的信息处理方法,上述特权命令执行控制 处理中,在上述应用进程处于安全门侵入状态的情况下,省略根据上述应 用进程的安全级别的权限检査,执行特权命令,在上述应用进程不处于安全门侵入状态的情况下,进行根据上述应用进程的安全级别的权限检查, 在具有执行特权命令的权限时执行特权命令。
39、 根据权利要求37所述的信息处理方法,在上述安全门侵入处理中,变更成为安全门侵入状态的应用进程的安全级别;在上述安全门退出处理中,将成为安全门退出状态的应用进程的安全 级别复原;在上述特权命令执行控制处理中,进行根据上述应用进程的安全级别 的权限检查,在具有执行特权命令的权限时执行特权命令。
40、 根据权利要求37所述的信息处理方法,在上述特权命令执行控 制处理中,在上述应用进程处于安全门侵入状态的情况下,更新了上述应 用进程的安全级别后,进行根据上述应用进程的安全级别的权限检査,当 具有执行特权命令的权限时执行特权命令后,将安全级别恢复到原来的 值。
41、 根据权利要求38 40中任意一项所述的信息处理方法,上述信息处理装置进行安全门临时退出处理,当在处于安全门侵入状态的上述应用进程的运 行中产生信号或中断时,在调用上述应用进程的信号/中断句柄前将上述应 用迸程的安全级别恢复为安全门侵入前的值,在根据上述信号/中断句柄的 处理结束时或结束后,恢复为安全门侵入后的值。
42、 根据权利要求31或32所述的信息处理方法,上述信息处理装置进行安全门临时退出处理,在由上述安全门侵入处理变更了上述应用进程 的上述属性值后,到由上述安全门退出处理将上述应用进程的上述属性值 复原之前的上述应用进程的运行中,产生了信号或中断时,在调用上述应 用进程的信号/中断句柄前将上述应用进程的上述属性值恢复到基于上述 安全门侵入处理的变更前的值,在根据上述信号/中断句柄的处理结束时或 结束后,恢复为基于上述安全门侵入处理的变更后的值。
43、 根据权利要求33、 34、 37 41中任意一项所述的信息处理方法, 在上述安全门侵入处理中,将上述应用进程的安全级别变更为特权级别。
44、 根据权利要求33、 34、 37 41中任意一项所述的信息处理方法, 上述计算机包括保持安全级别变更规则的安全级别变更策略数据库,在上 述安全门侵入处理中,根据上述安全级别变更规则变更上述应用进程的安 全级别。
45、 根据权利要求35 41中任意一项所述的信息处理方法,表示上 述应用进程的安全门侵入状态的属性值,作为对应各应用进程的进程ID 至少保持有安全级别的进程管理用数据库的1个标志被记录。
46、 根据权利要求35 41中任意一项所述的信息处理方法,包括管 理安全门侵入状态的应用进程的一览的数据库,根据在该数据库中是否记 录有进程ID来决定表示应用进程的安全门侵入状态的属性值。
47、 根据权利要求31 42中任意一项所述的信息处理方法,上述库 函数在保证执行的处理记述之前配置有第1特定命令,在返回到调用源的 出口之前配置有第2特定命令。
48、 根据权利要求31 42中任意一项所述的信息处理方法,上述库 函数在保证执行的处理记述之前配置有第1特定命令,在配置第1特定命 令的部位之后必须执行的路径上,配置有改变上述应用进程的堆栈的命令 列,以在返回到调用源前经过包含第2特定命令的函数。
49、 根据权利要求31 42中任意一项所述的信息处理方法, 上述库函数在保证执行的处理记述之前配置有第1特定命令; 上述安全门侵入处理中,在变更了上述应用进程的上述属性值的情况下,改变上述应用进程的堆栈,以在上述应用进程返回到调用源之前,经 过包含第2特定命令的函数。
50、 一种程序,用于在具有计算机可读取的记录介质的计算机中执行 处理,该计算机可读取的记录介质保持库函数、应用进程、应用进程的属 性值及第l特定命令的允许地址范围,该库函数在由自函数进行的处理中 保证执行的部分的执行前执行上述第1特定命令、并且在返回到调用源前 执行第2特定命令,上述程序使该计算机执行特权命令执行控制处理,当上述应用进程执行特权命令产生了内部中 断时,根据上述应用进程的上述属性值控制可否执行特权命令;安全门侵入处理,当上述应用进程执行第1特定命令产生了内部中断时,检査上述第l特定命令的地址是否在上述允许地址范围内,如果处于 上述允许地址范围内,则变更上述应用进程的上述属性值;以及安全门退出处理,当上述应用进程执行第2特定命令产生了内部中断 时,将上述应用进程的上述属性值复原。
51、 根据权利要求50所述的程序,上述保证执行的部分,是通过实施参数检査和必需的预处理,来保证之后的关键处理的安全执行的部分。
52、 根据权利要求50或51所述的程序,上述属性值是表示上述应用 进程的安全级别的属性值。
53、 根据权利要求52所述的程序,在上述特权命令执行控制处理中, 进行根据上述应用进程的安全级别的权限检査,在具有执行特权命令的权 限时执行特权命令。
54、 根据权利要求50或51所述的程序,上述属性值是表示上述应用 进程的安全门侵入状态的属性值。
55、 根据权利要求54所述的程序,在上述特权命令执行控制处理中, 在上述应用进程处于安全门侵入状态的情况下,执行特权命令。
56、 根据权利要求50或51所述的程序,上述属性值包含表示上述应 用进程的安全级别的属性值和表示上述应用进程的安全门侵入状态的属 性值。
57、 根据权利要求56所述的程序,上述特权命令执行控制处理中, 在上述应用进程处于安全门侵入状态的情况下,省略根据上述应用进程的 安全级别的权限检查,执行特权命令,在上述应用进程不处于安全门侵入 状态的情况下,进行根据上述应用进程的安全级别的权限检查,在具有执 行特权命令的权限时执行特权命令。
58、 根据权利要求56所述的程序,在上述安全门侵入处理中,变更成为安全门侵入状态的应用进程的安 全级别;在上述安全门退出处理中,将成为安全门退出状态的应用进程的安全 级别复原;在上述特权命令执行控制处理中,进行根据上述应用进程的安全级别 的权限检查,在具有执行特权命令的权限时执行特权命令。
59、 根据权利要求56所述的程序,在上述特权命令执行控制处理中, 在上述应用进程处于安全门侵入状态的情况下,更新了上述应用进程的安 全级别后,进行根据上述应用进程的安全级别的权限检查,当具有执行特 权命令的权限时执行特权命令后,将安全级别恢复到原来的值。
60、 根据权利要求57 59中任意一项所述的程序,在上述计算机中进行安全门临时退出处理,当在处于安全门侵入状态的上述应用进程的运 行中产生信号或中断时,在调用上述应用进程的信号/中断句柄前将上述应 用进程的安全级别恢复为安全门侵入前的值,在根据上述信号/中断句柄的 处理结束时或结束后,恢复为安全门侵入后的值。
61、 根据权利要求50或51所述的程序,在上述计算机中进行-安全门临时退出处理,在由上述安全门侵入处理变更了上述应用进程的上述属性值后,到由上述安全门退出处理将上述应用进程的上述属性值 复原之前的上述应用进程的运行中,产生了信号或中断时,在调用上述应 用进程的信号/中断句柄前将上述应用进程的上述属性值恢复到基于上述 安全门侵入处理的变更前的值,在根据上述信号/中断句柄的处理结束时或 结束后,恢复为基于上述安全门侵入处理的变更后的值。
62、 根据权利要求52、 53、 56 60中任意一项所述的程序,在上述 安全门侵入处理中,将上述应用进程的安全级别变更为特权级别。
63、 根据权利要求52、 53、 56 60中任意一项所述的程序,上述计 算机包括保持安全级别变更规则的安全级别变更策略数据库,在上述安全 门侵入处理中,根据上述安全级别变更规则变更上述应用进程的安全级 别。
64、 根据权利要求54 60中任意一项所述的程序,表示上述应用进 程的安全门侵入状态的属性值,作为对应各应用进程的进程ID至少保持 有安全级别的进程管理用数据库的1个标志被记录。
65、 根据权利要求54 60中任意一项所述的程序,包括管理安全门 侵入状态的应用进程的一览的数据库,根据在该数据库中是否记录有进程 ID来决定表示应用进程的安全门侵入状态的属性值。
66、 根据权利要求50 61中任意一项所述的程序,上述库函数在保证执行的处理记述之前配置有第1特定命令,在返回到调用源的出口之前 配置有第2特定命令。
67、 根据权利要求50 61中任意一项所述的程序,上述库函数在保证执行的处理记述之前配置有第1特定命令,在配置第1特定命令的部位 之后必须执行的路径上,配置有改变上述应用进程的堆栈的命令列,以在返回到调用源前经过包含第2特定命令的函数。
68、 根据权利要求50 61中任意一项所述的程序, 上述库函数在保证执行的处理记述之前配置有第1特定命令; 上述安全门侵入处理中,在变更了上述应用进程的上述属性值的情况下,改变上述应用进程的堆栈,以在上述应用进程返回到调用源之前,经 过包含第2特定命令的函数。
全文摘要
防止因应用进程而导致的特权命令和库函数的非法使用。设立一个所谓的安全门概念,在配置在ROM等不容易被篡改的高可靠性的存储区的库函数的开头配置对OS要求进入安全门的命令;在库函数的末端配置对OS要求退出安全门的命令,只有当应用进程处于进入安全门状态时,才将安全级别改变为更高级别,由此就能够临时地执行特权命令。
文档编号G06F21/74GK101283332SQ200680037198
公开日2008年10月8日 申请日期2006年10月3日 优先权日2005年10月4日
发明者千岛博 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1