用于为计算系统提供可配置防火墙的框架的制作方法

文档序号:6506103阅读:154来源:国知局
专利名称:用于为计算系统提供可配置防火墙的框架的制作方法
技术领域
一般来说,本发明涉及计算系统,更具体地说,本发明涉及用于提供安全计算系统的技术。
背景技术
不同于典型的桌面型电脑,其它计算设备是可移动的,高度专用于特定应用,在相对较小的存储器和/或处理限制下运行。举例来说,智能卡代表一种可高度专用于特定应用(如证券)的移动计算设备。智能卡还是这样一种计算环境的一个实例,其中它可提供的存储器和处理能力的大小通常没有桌面型(如个人计算机)环境中那样大。因此,智能卡可以提供一个很好的实例,下文将对它进行论述。
智能卡是在大约二十年前提出的,当时它采用用于存储关键信息的存储卡形式(如电话卡)。但是,现在的智能卡要比最初提出时的智能卡复杂得多。现在,智能卡可以具有嵌入式集成电路(IC)。智能卡例如可以是包括嵌入式集成电路(IC)的塑料卡。智能卡可以和信用卡类似。而且,它可用于高度敏感的应用(例如,银行业、证券)。因此,许多团体已经作出广泛努力来开发安全智能卡。
智能卡技术是由国际标准化组织(ISO)和国际电工委员会(IEC)的第一联合技术委员会(JTC1)规定和控制的行业标准。在1987年提出且在2003年最近更新的国际标准系列ISO/IEC 7816规定了智能卡的各个方面,包括物理特性、物理接点、电子信号和传输协议、命令、安全架构、应用标识符和公共数据元素。
在一些使用领域中,智能卡只是仅仅提供受保护的非易失性存储器的存储卡。但是,更先进的智能卡具有微处理器和存储器,它们可用于进行安全处理和存储。智能卡可以在没有电池的情况下运行(即,只有在与读卡器相连时才变得主动)。当相连时,在执行复位序列后,智能卡保持被动,以便等待从客户机(主机)应用程序接收命令请求。智能卡可以是接触型或非接触型。顾名思义,接触型智能卡采用通过读卡器和智能卡的8-引线接点之间的物理接触进行通信的方式来工作,而非接触型智能卡则通过射频信号进行通信,其范围通常小于2英尺。非接触型智能卡的无线电通信所基于的技术与商店中用于防盗和追踪库存的射频ID(RFID)标签类似。图1示出了接触型和非接触型智能卡。图1A和图1B分别示出了接触型智能卡和非接触型智能卡。
考虑到现今移动设备很普及,所以需要开发更适合它们的编程环境。其中,这些编程环境应当安全。

发明内容
如上所述,考虑到移动设备很普及,所以需要开发更适合它们的编程环境。这些编程环境通常在相对有限的资源(处理能力和/或存储器)下运行和/或提供高度专门化的功能。
作为一种与平台无关的编程环境,其中,JavaTM技术十分适合这样的环境。JavaTM是一种十分适合在分布式环境(如因特网)中使用的编程语言。它经过设计具有C++语言的“观感”,但是它的使用要比C++简单,并且加强了面向对象的编程模型。JavaTM可用于创建可在单个计算机上运行或者可分布在网络中的服务器和客户机中的完整应用程序。它还可用于建造用作网页的一部分的小的应用程序模块或小应用程序。小应用程序使得网页用户可以与网页互动。
JavaTM平台包括Java CardTM技术。Java CardTM技术使JavaTM编程平台适合用在那些环境高度专门化和/或在相对于例如桌面型计算环境更严格的存储器和/或处理限制下运行的智能卡和其它移动设备上。Java Smart CardsTM可用于许多不同的领域。它们可用于增加对要求高安全等级的信息系统的验证和安全访问。存储在Java SmartCardsTM中的信息便于携带。通过Java CardTM技术,可以在紧密但安全的介质中携带有价值的敏感的个人信息,如病史、信用卡号或电子现金余额等。
还存在不同于智能卡形式的Java CardTM技术,如智能按钮和USB令牌(如图1C和图1D所示)。与智能卡类似,智能按钮和USB令牌也可用于例如验证用户或携带敏感信息。智能按钮可包括电池,并且通常是基于接触的,而USB令牌可直接插入PC的USB端口中,而无需接触或非接触型阅读器。在任一情况下,这些其它形式都可提供与智能卡相同的编程能力,并且具有防篡改性。
除了由JavaTM编程环境提供的保护外,JavaTM卡技术还提供应用程序(或小应用程序)防火墙作为增加的运行时加强保护。该防火墙基本上将JavaTM卡平台划分成多个独立的受保护对象空间(或“内容”)。换句话说,该防火墙在一个内容和另一个内容之间提供了边界。在该环境中,独立的受保护空间(或内容)可能不能相互访问。
应注意,通常将多个小应用程序一起打包在称为JavaTM包的包中。还应注意,单个JavaTM包中的所有小应用程序共享相同的内容。这意味着,在相同包内的小应用程序之间没有防火墙。而且,防火墙边界取决于打包小应用程序的方式。这意味着,不可能根据个别小应用程序来规定防火墙边界。可将该防火墙实施称为基于包的防火墙环境。
在基于包的防火墙环境中,要想允许不在相同包内的小应用程序相互访问,就需要相对复杂的技术。举例来说,必须为可由其它小应用程序访问的小应用程序实施可共用接口(例如,JCSystem.getAppletShareableInterfaceObject()方法)。因此,第一小应用程序可请求访问第二小应用程序的可共用接口。然后,代表第一小应用程序,JavaTM卡运行时环境(JCRE)可以通过调用一种方法(例如,getAppletShareableInterfaceObject()方法)来向第二小应用程序请求访问它的可共用接口。如果第二小应用程序允许访问,那么第一小应用程序必须获得第二小应用程序的引用。
鉴于上述情形,用于提供安全计算环境的备选技术将有用。为了实现本发明的这些和其它目的,公开了用于提供可配置防火墙的框架。该可配置防火墙提供了控制块,该控制块可用作实施并控制计算环境中的各个组件之间的访问权限的机构。因此,该防火墙控制块可用于判定计算环境中的一个组件是否可以访问另一个组件。
举例来说,根据本发明的一个实施例,可以为JavaTM卡计算环境中的每个JavaTM应用程序(或小应用程序)提供一个控制块。由此允许灵活的环境,其中可以为每个单独小应用程序选择性地配置和规定防火墙边界。这提供了灵活的环境,其中可以采用使得可以允许每个小应用程序访问所需的小应用程序集合或反之的方式来规定防火墙边界。
另外,还将说明,可以采用各种适合于不同系统要求(例如,处理速度、存储器)的技术来实施防火墙控制块。因此,该可配置防火墙可用于为各种计算系统,尤其是那些在相对有限的处理能力下运行和/或提供高度专门化功能的计算系统(如智能卡)实施安全性。还将说明,多种形式的防火墙控制块可使用各种技术来实施安全性。本发明的其它方面提供了可用于使用各种防火墙控制块来实施安全性的技术。
本发明可以有多种实施方式,包括系统、装置、方法或计算机可读介质。下文将论述本发明的几个实施例。
作为一种计算环境,本发明的一个实施例包括操作系统、在该操作系统上运行的虚拟机、在该虚拟机上运行的第一和第二应用程序。另外,在该计算环境中提供了防火墙控制块。
防火墙控制块规定了第一应用程序相对于第二应用程序的访问权限,而且还规定了第二应用程序相对于该第一应用程序的访问权限。例如,可为移动设备实施该防火墙控制块。举例来说,可以使用根据本发明一个实施例的防火墙控制块来实施JavaTM智能卡。
又一个实施例可以实施为一种用于为JavaTM顺应性(compliant)计算环境提供安全性的方法。JavaTM顺应性计算环境包括JavaTM虚拟机和多个在该JavaTM虚拟机上运行的JavaTM顺应性小应用程序。首先,接收来自第一JavaTM顺应性小应用程序的请求。该请求是访问第二JavaTM顺应性小应用程序的请求。接着,读取与第二JavaTM顺应性小应用程序相关联的防火墙控制块。此后,根据该防火墙控制块判定是否应当允许第一JavaTM顺应性小应用程序访问该第二JavaTM顺应性小应用程序。下文将论述,该判定可以根据各种不同的标准进行。因此,只有经判定应当允许访问时才同意第一JavaTM顺应性小应用程序的访问。类似地,可以实施包括计算机程序代码的计算机可读介质。


结合附图,通过以下详细描述,将能很容易地理解本发明,附图中类似的附图标记表示类似的结构元件,并且在附图中图1A、1B、1C和1D示出了移动计算设备。
图2示出了根据本发明一个实施例的示范性计算环境。
图3A-3F示出了根据本发明的几个实施例的防火墙控制块。
图4示出了可为Java小应用程序实施的简化防火墙控制块。
图5示出了根据本发明一个实施例的用于在JavaTM卡环境中提供防火墙的方法。
具体实施例方式
如背景技术中所述,考虑到移动设备很普及,所以需要开发更适合它们的编程环境。这些编程环境通常在相对有限的资源(处理能力和/或存储器)下运行和/或提供高度专门化的功能。
作为一种与平台无关的编程环境,其中,JavaTM技术十分适合这样的环境。JavaTM是一种十分适合在分布式环境(如因特网)中使用的编程语言。它经过设计具有C++语言的“观感”,但是它的使用要比C++简单,并且加强了面向对象的编程模型。JavaTM可用于创建可在单个计算机上运行或者可分布在网络中的服务器和客户机中的完整应用程序。它还可用于建造用作网页的一部分的小的应用程序模块或小应用程序。小应用程序使得网页用户可以与网页互动。
JavaTM平台包括Java CardTM技术。Java CardTM技术使JavaTM编程平台适合用在那些环境高度专门化和/或在相对于例如桌面型计算环境更严格的存储器和/或处理限制下运行的智能卡和其它移动设备上。Java Smart CardsTM可用于许多不同的领域。它们可用于增加对要求高安全等级的信息系统的验证和安全访问。存储在Java SmartCardsTM中的信息便于携带。通过Java CardTM技术,可以在紧密但安全的介质中携带有价值的敏感的个人信息,如病史、信用卡号或电子现金余额等。
还存在不同于智能卡形式的Java CardTM技术,如智能按钮和USB令牌(如图1C和图1D所示)。和智能卡几乎一样,这些智能按钮和USB令牌也可用于例如验证用户或携带敏感信息。智能按钮包括电池,并且基于接触,而USB令牌则可直接插入PC的USB端口中,无需接触或非接触型阅读器。两者都提供了与智能卡相同的编程能力,并且具有防篡改性。
除了由JavaTM编程环境提供的保护外,Java CardTM技术还提供应用程序(或小应用程序)防火墙作为增加的运行时加强保护。该防火墙基本上将Java CardTM平台划分成多个独立的受保护对象空间(或“内容”)。换句话说,该防火墙在一个内容和另一个内容之间提供了边界。在该环境中,独立的受保护空间(或内容)可能不能相互访问。
应注意,通常将多个小应用程序一起打包在称为JavaTM包的包中。还应注意,单个JavaTM包中的所有小应用程序共享相同的内容。这意味着,在相同包内的小应用程序之间没有防火墙。而且,防火墙边界取决于打包小应用程序的方式。这意味着,不可能以每个小应用程序为基础来规定防火墙边界。可将该防火墙实施称为基于包的防火墙环境。
在基于包的防火墙环境中,要想允许不在相同包内的小应用程序相互访问,就需要相对复杂的技术。举例来说,必须为一个可由其它小应用程序访问的小应用程序实施可共用接口(例如,JCSystem.getAppletShareableInterfaceObject()方法)。因此,第一小应用程序可请求访问第二小应用程序的可共用接口。然后,代表第一小应用程序,Java卡运行时环境(JCRE)可以通过调用一种方法(例如,getShareableInterfaceObject()方法)来向第二小应用程序请求访问它的可共用接口。如果第二小应用程序允许访问,那么第一小应用程序必须获得第二小应用程序的引用。
鉴于上述情形,用于提供安全计算环境的备选技术将有用。为了实现本发明的这些和其它目的,公开了用于提供可配置防火墙的框架。该可配置防火墙提供了防火墙控制块,该防火墙控制块可用作实施并控制计算环境中的各个组件之间的访问权限的机构。因此,该防火墙控制块可用于根据防火墙控制块中规定的访问权限来判定计算环境中的一个组件是否可以访问另一个组件。
举例来说,根据本发明的一个实施例,可以为Java CardTM计算环境中的每个JavaTM应用程序(或小应用程序)提供一个控制块。由此允许采用使得可以允许每个小应用程序访问所需的小应用程序集合的方式来在每个小应用程序周围配置防火墙边界。另外,还将说明,可以采用各种适合于不同系统要求(例如,处理速度、存储器)的技术来实施防火墙控制块。因此,该可配置防火墙可用于为各种计算系统、尤其是那些在相对有限的处理能力下运行和/或提供高度专门化的功能的计算系统(如智能卡)实施安全性。还将说明,多种形式的防火墙控制块可以相互协作或相互组合地用于实施安全性。本发明的其它方面提供了可用于使用各种防火墙控制块来实施安全性的技术。
下面参照图1-5来论述本发明的实施例。但是,本领域的技术人员将容易地明白,本文针对这些附图给出的详细描述只是为了解释说明的目的,因为本发明的延伸范围超过这些有限的实施例。
图2示出了根据本发明一个实施例的示范性计算环境200。该计算环境200包括卡侧202、阅读器侧204和后端应用程序和系统206。
在所述实施例中,将卡侧202实施为提供多应用环境的JavaCardTM平台202。如图2所示,多个Java CardTM应用程序(或小应用程序)A、B、C、D、E、F和G可驻存在Java CardTM平台202(或Java CardTM)上。这些Java CardTM应用程序(或小应用程序)由Java卡运行时环境(JCRE)208支持。Java卡运行时环境(JCRE)208包括Java CardTM框架、应用程序编程接口(API)和安全设施210。Java卡运行时环境(JCRE)208在由卡操作系统(OS)214支持的JavaTM虚拟机212上运行。Java CardTM小应用程序A、B、C、D、E、F、G和H可在载入时例示化,并且在切断电源时仍有效。因此,卡小应用程序以与服务器类似的方式运转,并且保持被动。换句话说,在对卡平台202加电后,小应用程序在被选中之前一直保持不运行,选中时可进行初始化。
阅读器侧204包括主应用程序220和卡接受设备(CAD)224。例如,主应用程序220可驻存在桌面型电脑或诸如PC、电子付款终端、蜂窝电话或证券子系统等的终端上。在任一情况下,主应用程序220都可便于后端应用程序和系统206与Java CardTM小应用程序A、B、C、D、E、F和G之间的通信。卡接受设备(CAD)224可以是例如位于主应用程序220和Java CardTM平台202之间的接口设备。另外,卡接受设备(CAD)224可以为卡供电和/或便于与卡侧202进行电或(射频)RF通信。例如,CAD 224可以是使用串行端口附设到桌面型电脑的读卡器,或者它可以集成到诸如饭店或加油站的电子付款终端之类的终端中。还应注意,CAD 224可以例如将来自主应用程序220的应用程序协议数据单元(APDU)命令转送给JavaCardTM平台202。应用程序协议数据单元(APDU)还可用于将来自Java CardTM平台202的响应转送给主应用程序220。
因此,阅读器侧204允许Java CardTM平台202的用户访问由主应用程序220和/或后端应用程序和系统206提供的服务。后端应用程序和系统206提供支持JavaTM小应用程序A、B、C、D、E、F和G的服务。例如,后端应用程序206可以提供到电子付款系统的连通性。因此,后端应用程序和系统206可以提供例如对信用卡和/或其它付款信息的访问。
将明白,Java卡运行时环境(JCRE 208)可以为JavaTM小应用程序A、B、C、D、E、F和G提供防火墙保护。而且,由该运行时环境(JCRE 208)提供的防火墙保护可以进行配置。这意味着,其中,不必根据包含一或多个JavaTM小应用程序的包边界来规定防火墙保护。换句话说,不必根据包230、232和234来规定防火墙保护。可以使用防火墙控制块来配置防火墙保护,下文将进一步说明防火墙控制块(例如,参见图3),但是将首先进一步说明可配置的防火墙。
如图2所示,包230包含JavaTM小应用程序A和B。类似地,包232包含JavaTM小应用程序C和D。包234包含JavaTM小应用程序E、F和G。但是,可以单独为每个JavaTM小应用程序规定防火墙边界。换句话说,对于JavaTM小应用程序A、B、C、D、E、F和G中的每个JavaTM小应用程序来说,可以规定与包含该JavaTM小应用程序的包无关的防火墙边界。举例来说,可以通过防火墙边界部分240来同意包230中的JavaTM小应用程序A访问包232中的JavaTM小应用程序C。但是,当包230中的JavaTM小应用程序B试图访问包232中的JavaTM小应用程序C时,防火墙部分240可拒绝JavaTM小应用程序B的访问。
为了进一步说明,图2还示出了JavaTM小应用程序D周围的防火墙边界部分242。例如,防火墙边界部分242可以拒绝包括包含在同一包232中的JavaTM小应用程序C在内的所有其它JavaTM小应用程序的访问。但是,应注意,JavaTM小应用程序D能够访问其它小应用程序(如JavaTM小应用程序B)。还应注意,防火墙可用于实施库,不管是否存在包边界,该库都可由一个或多个选定的JavaTM小应用程序和/或包访问。举例来说,可以将JavaTM小应用程序E和F实施为库250。库250可以由JavaTM小应用程序A、B、C和D中的任何一个JavaTM小应用程序访问。
如上所述,可以使用防火墙控制块来实施防火墙边界。根据本发明的一个方面,可以为每个JavaTM小应用程序和/或JavaTM包规定该防火墙控制块。防火墙控制块可用于判定是否应当同意一个JavaTM小应用程序访问另一个JavaTM小应用程序和/或JavaTM包。
图3A示出了根据本发明一个实施例的防火墙控制块300。防火墙控制块300包括防火墙控制值302和防火墙控制指示符304。防火墙控制值302提供访问权限定义。防火墙控制指示符304指示应如何解释这些定义以便判定一个组件是否应当访问另一个组件。
例如,防火墙控制值302可用于为JavaTM小应用程序定义防火墙访问值。换句话说,控制值302可以为第一JavaTM小应用程序和/或包定义访问权限。然后,防火墙控制指示符304可用于判定其它JavaTM小应用程序是否可以访问该第一JavaTM小应用程序和/或JavaTM包。将了解,例如,可以将防火墙控制值302和304均实施为字节数组(即,一个或多个字节的数组)。图3B示出了防火墙控制块310的实施例。防火墙控制块310包括表示为M字节数组的防火墙控制值。N字节数组表示防火墙控制指示符。应注意,N通常小于M(即,防火墙控制指示符通常需要较少的字节)。
为了进一步说明,图4示出了分别为图2中的小应用程序A、B、C、D、E、F和G实施的简化防火墙控制块A、B、C、D、E、F和G。因此,例如,防火墙控制块A可用于判定JavaTM小应用程序A可以访问哪些JavaTM小应用程序。另外,防火墙控制块A还可用于判定另一个小应用程序是否可以访问JavaTM小应用程序A。如图4所示,防火墙控制块A包括防火墙控制值402和防火墙控制指示符404。防火墙控制值402表示为一系列数值(例如,字节值{1,2,3,4,5,6})。
防火墙控制值402({1,2,3,4,5,6})可用于判定JavaTM小应用程序A是否可以访问例如JavaTM小应用程序C。为了作出该判定,可以使用防火墙控制块C的防火墙控制指示符408。防火墙控制指示符408指示值{3}。例如,可将这个指示符值解释为允许那些与防火墙控制块C的防火墙控制值406({1,2,3,7,8,9})中的前三个值匹配的JavaTM小应用程序(或包)的访问。
这意味着,可将防火墙控制值402({1,2,3,4,5,6})中的前三个值和防火墙控制值406({1,2,3,7,8,9})中的前三个值进行比较。应注意,防火墙控制值402({1,2,3,4,5,6})中的前三个值和防火墙控制值406({1,2,3,7,8,9})中的前三个值相匹配。因此,可同意小应用程序A访问小应用程序C。
另一方面,小应用程序C不可访问小应用程序A,因为防火墙控制指示符404({4})指示防火墙控制值406({1,2,3,7,8,9})中的前四个值应当与防火墙控制值402({1,2,3,4,5,6})中的前四个值相匹配。但是,第四个值并不匹配(即,7不等于4)。因此,拒绝小应用程序C访问小应用程序A。
类似地,不同意JavaTM小应用程序B访问JavaTM小应用程序C,因为防火墙控制值410({1,9,4,3,5,6})中的第二个值(或第三个值)与防火墙控制值406({1,2,3,7,8,9})中的第二个值(或第三个值)不匹配。防火墙控制块D的防火墙控制指示符412指示值{40}。例如,该值{40}可指示其它JavaTM小应用程序都不可访问JavaTM小应用程序D(例如,只有Java CardTM管理系统可以访问JavaTM小应用程序D)。但是,JavaTM小应用程序D能够访问其它JavaTM小应用程序(如JavaTM小应用程序B)。另一方面,分别为JavaTM小应用程序E和F提供的防火墙控制指示符414和416可指示值{1},例如,可将该值{1}解释为允许第一个防火墙控制值等于该值{1}的所有JavaTM小应用程序(例如,小应用程序A、B、C、D和G)的访问。因此,例如,小应用程序E和F可代表可提供给其它选定的小应用程序的库。
图3C示出了根据本发明另一个实施例的控制块320。如图3C所示,可将防火墙控制值302实施为字节数组,而使用单个字节来实施防火墙控制指示符304。
还应注意,根据本发明的其它实施例,可以使用另外的单个字节来实施防火墙控制块。可将该单个字节添加到通常已经可用的数据中。为了进行说明,图3D示出了根据本发明另一个实施例的防火墙内容实施例330。防火墙内容实施例330包括内容标识(ID)332和应用标识符数据(AID),它们通常是在Java CardTM环境中提供的。除了这两个外,还提供了AID的字节指示符336。AID的字节指示符336的使用方式可以与防火墙控制指示符(例如,如图4中所示的404、408)类似,而应用标识符数据(AID)可用作防火墙控制值(例如,图4中的402、406)。
将了解,与现有Java CardTM环境类似,可根据ISO 7816标准来定义应用标识符数据(AID)。ISO 7816是描述宽范围的用于建造智能卡系统的技术的多部分标准。ISO 7816-5定义了将用于唯一标识卡应用(以及卡文件系统中的某些种类的文件)的AID(应用标识符)数据格式。Java CardTM平台使用该AID数据格式来标识小应用程序和包。AID由国际标准化组织(ISO)管理,因此它们可用作唯一标识符。
如图3E所示,Java CardTM平台所用的AID格式可以是字节数组,将该字节数组解释为两个不同片断。第一片断是称为RID(资源标识符)的5字节值。第二片断是称为PIX(独家标识符扩展)的可变长度值。PIX的长度可以是从0到11个字节。因此,AID的总长可以是从5到16个字节。ISO控制着将RID分配给各个公司,其中每个公司从ISO获得它自己的唯一RID。各公司使用它们自己的RID来管理为AID分配PIX。在JavaTM平台中,使用Unicode字符串和基于因特网域名的命名机制来唯一地标识包。在Java CardTM平台中,可以使用AID来标识包和小应用程序。因此,安装在Java CardTM技术允许设备上的每个小应用程序都具有唯一的AID。这个AID以类似于包AID的方式构造而成。它通常是那个小应用程序的小应用程序供应商的RID和PIX的串联。
图3F示出了根据本发明又一个实施例的防火墙控制块350的一个实施例。例如,防火墙控制块350可代表图3D中的控制块330的一个实施例。在任一情况下,与现有Java CardTM环境类似,使用字节数组来表示AID,并且使用短值来表示通常用于表示内容(或对象空间)的内容ID。将了解,将AID字节指示符实施为单个字节值。因此,控制块350可适用于那些无需将用于防火墙实施的开销减到最少的情形。然而,可以采用如上所述的类似方式,将AID字节指示符用作防火墙控制指示符,并将AID用作防火墙控制值。
图3G示出了根据本发明再一个实施例的控制块360。在所述实施例中,使用表示RID值的单字节数组来实施控制块360。这意味着,只使用RID值来判定JavaTM小应用程序(或包)是否可以访问另一个JavaTM小应用程序(或包)。举例来说,如果RID值匹配,那么可以同意访问。RID值通常是在Java CardTM环境中提供的。因此,可以在无需大量开销用于存储并处理防火墙控制块信息的情况下实施控制块360。与RID值类似,AID值也可用于实施防火墙控制块。
基于上文,应明白,本发明设想许多不同的防火墙控制块实施例。这些实施例中的一个或多个实施例可适合于特定的系统要求(例如,存储器存储、速度等)。例如,图3G中的控制块360可适合于那些应当将指派给防火墙的存储器和开销减到最少的环境。
还应注意,各种实施例可进行组合。举例来说,图3H示出了根据本发明另一个实施例的控制块370。例如,控制块370可表示控制块320和350的组合。在所描述的实施例中,提供了AID、防火墙控制值和防火墙控制指示符。下文将说明,控制块370提供了使用各种技术在JavaTM卡环境中实施可配置防火墙的灵活性。另外,控制块370可用作用于说明这些技术中的一些技术的有用工具。
因此,图5示出了根据本发明一个实施例的用于在JavaTM卡环境中提供防火墙的方法500。例如,方法500可与图3H中的控制块370结合使用,其中在图3H的控制块370中提供了AID、防火墙控制值和防火墙控制指示符。首先,在操作502,读取第一JavaTM小应用程序的第一字节码指令。接着,在操作504,作出第一JavaTM小应用程序的该字节码是否正在尝试访问另一个(或第二)JavaTM小应用程序中的对象的判定。如果在操作504中判定第一JavaTM小应用程序的该字节码没有在尝试访问第二JavaTM小应用程序中的对象,那么方法500进行至操作506,在操作506,判定是否已经到达最后一个字节码指令。如果经判定已经到达最后一个字节码指令,那么方法500结束。但是,如果在操作506判定尚未到达最后一个字节码指令,那么方法500进行至操作508,在操作508,读取第一JavaTM小应用程序的下一个字节码指令。此后,方法500进行至操作504,在操作504,判定第一JavaTM小应用程序的该字节码是否正在尝试访问第二JavaTM小应用程序中的对象。
如果在操作504判定第一JavaTM小应用程序的该字节码正在尝试访问第二JavaTM小应用程序中的对象,那么方法500进行至操作510,在操作510,读取第二JavaTM小应用程序的防火墙控制指示符。因此,在操作512,作出第二JavaTM小应用程序的防火墙控制指示符是否等于第一值(例如,0x80)的判定。如果在操作512判定第二JavaTM小应用程序的防火墙控制指示符等于第一值,那么方法500进行至操作514,在操作514,可以绕过控制块防火墙保护(例如,可以根据包边界提供防火墙保护)。方法500在操作514之后结束。但是,如果在操作512判定第二JavaTM小应用程序的防火墙控制指示符不等于第一值,那么方法500进行至操作516,在操作516,判定第二JavaTM小应用程序的防火墙控制指示符是否等于第二值。该第二值可指示应比较第一和第二JavaTM小应用程序的PIX值(例如,参见图3E)是否匹配。因此,如果第二JavaTM小应用程序的防火墙控制指示符等于第二值,那么在操作518,可以比较第一和第二小应用程序的PIX值。此后,方法500进行至操作520,在操作520,判定这些值是否匹配。如果这些值不匹配,那么方法500进行至操作522,在操作522,拒绝访问。另外,在操作524,输出错误(例如,可以发出“Java.lang.SecurityException”)。方法500在操作524之后结束。
另一方面,如果在操作520判定存在匹配,那么方法500进行至操作526,在操作526,同意第一JavaTM小应用程序访问第二JavaTM小应用程序。将了解,可以在无需实施可共用接口的情况下提供该访问。在一个实施例中,通过调用一种方法来提供第二小应用程序的引用。例如,该方法可以是实施为JavaTM卡管理(或系统)环境的一部分的相对简单的获取引用方法(例如,getAppletReference()方法)。本领域的技术人员将了解,还可以为该获取引用方法提供伙伴方法。例如,该伙伴方法可以是实施为JavaTM小应用程序类的方法。
继续参照图5,如果在操作516判定第二JavaTM小应用程序的防火墙控制指示符不等于第二值,那么方法500进行至操作528,在操作528,判定第二JavaTM小应用程序的防火墙控制指示符是否等于第三值。如果第二JavaTM小应用程序的防火墙控制指示符等于第三值,那么方法500进行至操作530,在操作530,比较第一和第二小应用程序的AID(例如,参见图3E)值。此后,方法500以如上所述的类似方式进行至操作520。
但是,如果在操作528判定第二JavaTM小应用程序的防火墙控制指示符不等于第三值,那么方法500进行至操作532,在操作532,判定它是否等于第四值。该第四值可指示访问只留给Java CardTM管理。因此,如果第二JavaTM小应用程序的防火墙控制指示符等于第四值,那么方法500进行至操作534,在操作534,判定是否正在JavaCardTM管理内容下执行该字节码(例如,内容ID是否是Java CardTM管理的内容ID)。取决于该判定,方法500可以采用如上所述的类似方式,要么进行至步骤522,在步骤522拒绝访问,要么进行至步骤526,在步骤526同意访问。
最后,如果在操作532判定第二JavaTM小应用程序的防火墙控制指示符不等于第四值,那么方法500进行至操作536,在操作536,解释该防火墙控制指示符。举例来说,可以采用与如图4所述类似的方式来解释该防火墙控制指示符,其中根据该防火墙控制指示符的值来比较分别分配给第一和第二小应用程序的防火墙控制值的一个或多个字节。在任一情况下,根据该解释,在操作538,确定适当的控制值,并比较它们的匹配性。因此,方法500进行至操作520,在操作520,判定这些值之间是否匹配。方法500以如上所述的类似方式进行,在操作526同意访问,或者在操作522拒绝访问。在操作524,输出错误,或者在操作526,允许第一JavaTM小应用程序访问第二JavaTM小应用程序,此后方法500结束。
通过书面描述,本发明的许多特征和优点显而易见,因此,所附权利要求要覆盖本发明的所有这些特征和优点。另外,因为本领域的技术人员将能很容易地想到许多修改和变化,所以不希望将本发明限制在所示和所述的确切构造和操作。因此,可将所有合适的修改和等价物再分类为落在本发明的范围内。
权利要求
1.一种计算环境,包括操作系统;在所述操作系统上运行的虚拟机;在所述虚拟机上运行的第一应用程序;在所述虚拟机上运行的第二应用程序;以及第一防火墙控制块,其中所述第一防火墙控制块规定了所述第一应用程序相对于所述第二应用程序的访问权限,而且还规定了所述第二应用程序相对于所述第一应用程序的访问权限。
2.如权利要求1所述的计算环境,其特征在于,所述计算环境还包括第二防火墙控制块,其中所述第二防火墙控制块规定了所述第二应用程序相对于所述第一应用程序的访问权限,而且还规定了所述第一应用程序相对于所述第二应用程序的访问权限。
3.如权利要求1所述的计算环境,其特征在于,所述第一防火墙控制块规定了所述第一应用程序相对于所述计算环境中的任何其它应用程序的访问权限,而且还规定了所述任何其它应用程序相对于所述第一应用程序的访问权限。
4.如权利要求3所述的计算环境,其特征在于,所述第一防火墙控制块包括防火墙控制值和防火墙控制指示符。
5.如前述权利要求中任一权利要求所述的计算环境,其中所述防火墙控制值是由一个或多个字节表示的访问权限控制值,并且其中所述防火墙控制值是由一个或多个字节表示的指示符值,所述一个或多个字节指示应当如何相对于其它应用程序的访问权限解释所述防火墙控制值。
6.如前述权利要求中任一权利要求所述的计算环境,其中所述计算环境是JavaTM顺应性计算环境,其中所述第一和第二应用程序是JavaTM顺应性小应用程序,以及其中所述防火墙控制值包括RID。
7.如权利要求4所述的计算环境,其中所述计算环境是JavaTM顺应性计算环境,其中所述第一和第二应用程序是JavaTM顺应性小应用程序,以及其中所述防火墙控制块包括AID。
8.如权利要求4所述的计算环境,其中所述计算环境是JavaTM卡顺应性计算环境,以及其中所述第一防火墙控制块被实施在运行时环境中。
9.一种移动计算设备,包括操作系统;在所述操作系统上运行的JavaTM顺应性虚拟机;在所述JavaTM顺应性虚拟机上运行的第一JavaTM顺应性小应用程序;在所述JavaTM顺应性虚拟机上运行的JavaTM顺应性小应用程序;以及第一防火墙控制块,其中所述第一防火墙控制块规定了所述第一JavaTM顺应性小应用程序相对于在所述JavaTM顺应性虚拟机上运行的至少一个其它JavaTM顺应性小应用程序的访问权限,而且还规定了所述至少一个其它JavaTM顺应性小应用程序相对于所述第一JavaTM顺应性小应用程序的访问权限。
10.如权利要求9所述的移动计算设备,其特征在于,所述移动设备是JavaTM顺应性智能卡。
11.如权利要求10所述的移动计算设备,其特征在于,所述第一防火墙控制块包括防火墙控制值和防火墙控制指示符。
12.如权利要求10所述的移动计算设备,其中所述防火墙控制值是由一个或多个字节表示的访问权限控制值,以及其中所述防火墙控制值是由一个或多个字节表示的指示符值,所述一个或多个字节指示应当如何相对于其它应用程序的访问权限解释所述防火墙控制值。
13.如权利要求10所述的移动计算设备,其特征在于,所述第一防火墙控制块包括RID。
14.如权利要求10所述的移动计算设备,其特征在于,所述第一防火墙控制块包括PID。
15.如权利要求10所述的移动计算设备,其特征在于,为每个JavaTM顺应性小应用程序规定防火墙控制块。
16.一种用于为JavaTM顺应性计算环境提供安全性的方法,所述JavaTM顺应性计算环境包括JavaTM虚拟机和多个在所述JavaTM虚拟机上运行的JavaTM顺应性小应用程序,所述方法包括接收来自在JavaTM虚拟机上运行的第一JavaTM顺应性小应用程序的访问第二JavaTM顺应性小应用程序的请求;读取与所述第二JavaTM顺应性小应用程序相关联的防火墙控制块;根据所述防火墙控制块判定是否应当允许所述第一JavaTM顺应性小应用程序访问所述第二JavaTM顺应性小应用程序;以及当所述判定步骤判定应当允许访问时,允许所述第一JavaTM顺应性小应用程序访问所述第二JavaTM顺应性小应用程序。
17.如权利要求16所述的方法,其特征在于,所述方法还包括当所述判定步骤判定应当允许访问时,向所述第一JavaTM顺应性小应用程序提供关于所述第二JavaTM顺应性小应用程序的引用。
18.如权利要求16所述的方法,其特征在于,所述提供引用的步骤包括调用经实施的第一方法,所述第一方法实施为JavaTM管理(或系统)环境的一部分;以及调用第二方法,由于所述调用第二方法而将所述第二方法实施为小应用程序类。
19.如前述权利要求中任一权利要求所述的方法,其特征在于,所述判定是否应当允许所述第一JavaTM顺应性小应用程序访问所述第二JavaTM顺应性小应用程序的判定步骤包括读取防火墙控制值;以及读取防火墙控制指示符。
20.如前述权利要求中任一权利要求所述的方法,其特征在于,所述判定是否应当允许所述第一JavaTM顺应性小应用程序访问所述第二JavaTM顺应性小应用程序的判定步骤包括读取与所述第一JavaTM顺应性小应用程序相关联的第一PID;读取与所述第二JavaTM顺应性小应用程序相关联的第二PID;判定所述第一PID是否与所述第二PID匹配;以及只有当所述判定步骤判定所述第一PID与所述第二PID匹配时才允许访问。
21.如前述权利要求中任一权利要求所述的方法,其特征在于,所述判定是否应当允许所述第一JavaTM顺应性小应用程序访问所述第二JavaTM顺应性小应用程序的判定步骤包括读取与所述第一JavaTM顺应性小应用程序相关联的第一AID;读取与所述第二JavaTM顺应性小应用程序相关联的第二AID;判定所述第一AID是否与所述第二AID匹配;以及只有当所述判定步骤判定所述第一AID与所述第二AID匹配时才允许访问。
22.一种包括用于为计算环境提供安全性的计算机程序代码的计算机可读介质,所述计算机可读介质包括用于接收来自第一应用程序的访问第二应用程序的请求的计算机程序代码;用于读取与所述第二应用程序相关联的防火墙控制块的计算机程序代码;根据所述防火墙控制块判定是否应当允许所述第一应用程序访问所述第二应用程序;以及当所述判定步骤判定应当允许访问时允许所述第一应用程序访问所述第二应用程序。
23.如权利要求22所述的计算机可读介质,还包括用于读取与所述第一JavaTM顺应性小应用程序相关联的第一PID的计算机程序代码;用于读取与所述第二JavaTM顺应性小应用程序相关联的第二PID的计算机程序代码;用于判定所述第一PID是否与所述第二PID匹配的计算机程序代码;以及用于只有当所述判定步骤判定所述第一PID与所述第二PID匹配时才允许访问的计算机程序代码。
24.如权利要求22所述的计算机可读介质,还包括用于读取与所述第一JavaTM顺应性小应用程序相关联的第一AID的计算机程序代码;用于读取与所述第二JavaTM顺应性小应用程序相关联的第二AID的计算机程序代码;用于判定所述第一AID是否与所述第二AID匹配的计算机程序代码;以及用于只有当所述判定步骤判定所述第一AID与所述第二AID匹配时才允许访问的计算机程序代码。
全文摘要
公开了一种用于计算系统的可配置防火墙。该可配置防火墙提供了防火墙控制块,该防火墙控制块可用作实施并控制计算环境中的各个组件之间的访问权限的机构。因此,该防火墙控制块可用于判定计算环境中的一个组件(例如,小应用程序)是否可以访问另一个组件。由此允许灵活的环境,其中可以采用使得可以允许每个小应用程序访问所需的其它小应用程序集合的方式来配置防火墙边界。另外,可以采用各种适合于不同系统要求(例如,处理速度、存储器)的技术来实施控制块。因此,该可配置防火墙可用于为各种计算系统、尤其是那些在相对有限的处理能力下运行和/或提供高度专门化的功能的计算系统(如智能卡)实施安全性。
文档编号G06F12/14GK1918549SQ200480041732
公开日2007年2月21日 申请日期2004年12月9日 优先权日2003年12月22日
发明者M·K·萨尔茨 申请人:太阳微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1