CN1298511A - 基于堆栈的安全性要求 - Google Patents

基于堆栈的安全性要求 Download PDF

Info

Publication number
CN1298511A
CN1298511A CN99805488A CN99805488A CN1298511A CN 1298511 A CN1298511 A CN 1298511A CN 99805488 A CN99805488 A CN 99805488A CN 99805488 A CN99805488 A CN 99805488A CN 1298511 A CN1298511 A CN 1298511A
Authority
CN
China
Prior art keywords
requirement
security requirement
security
action
caller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN99805488A
Other languages
English (en)
Inventor
R·谢夫勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/044,944 external-priority patent/US6226746B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1298511A publication Critical patent/CN1298511A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

一种用于获得动作之安全性要求的系统,其中所述动作是计算机上执行的线程所请求的。线程在其执行期间启用多个方法。系统包括调用堆栈和确定装置。调用堆栈按照线程启用方法的次序存储每个方法的标识符和安全性要求。确定装置组合来自调用堆栈的方法安全性要求,以便获得被请求动作的安全性要求。

Description

基于堆栈的安全性要求
相关申请
下列美国专利申请是本申请的依据,并通过引用包括在此申请中。
1997年12月11日提交的、序号为08/988,431号美国专利申请,其发明名称为“对资源访问的控制”。
1997年12月11日提交的、序号为____号美国专利申请,其发明名称为“在计算机系统中提供安全性的保护范围”。
1997年12月11日提交的、序号为____号美国专利申请,其发明名称为“安全级别解决方案、装载和定义”。
1997年12月11日提交的、序号为____号美国专利申请,其发明名称为“分类的、参数化的且可扩展的访问控制许可”。
1997年6月26日提交的、序号为08/883,636号美国专利申请,其发明名称为“用于通信信道的与层次无关的安全性”。
1998年2月26日提交的、序号为60/076,048号美国临时专利申请,其发明名称为“分布式计算系统”。
1998年3月20日提交的、序号为09/044,923号美国专利申请,其发明名称为“租用存储器的方法和系统”。
1998年3月20日提交的、序号为09/044,838号美国专利申请,其发明名称为“在分布式系统中用于委托确认租用的方法、装置和产品”。
1998年3月20日提交的、序号为09/044,834号美国专利申请,其发明名称为“在分布式系统中用于分组成员资格租用的方法、装置和产品”。
1998年3月20日提交的、序号为09/044,916号美国专利申请,其发明名称为“用于失效检测的租用”。
1998年3月20日提交的、序号为09/044,933号美国专利申请,其发明名称为“在基于事件的系统中用于传输行为的方法”。
1998年3月20日提交的、序号为09/044,919号美国专利申请,其发明名称为“在分布式系统中用于事件通知的对象的延迟重构和远程装载”。
1998年3月20日提交的、序号为09/044,938号美国专利申请,其发明名称为“用于远程方法启用的方法和设备”。
1998年3月20日提交的、序号为09/045,652号美国专利申请,其发明名称为“用于确定性散列以识别远程方法的方法和系统”。
1998年3月20日提交的、序号为09/044,790号美国专利申请,其发明名称为“在决定分布式系统中用于确定远程对象之状态的方法和设备”。
1998年3月20日提交的、序号为09/044,930号美国专利申请,其发明名称为“在分布式系统中用于进行与远程过程调用相关联的处理的可下载的智能代理”。
1998年3月20日提交的、序号为09/044,917号美国专利申请,其发明名称为“远程方法的挂起和继续”。
1998年3月20日提交的、序号为09/044,835号美国专利申请,其发明名称为“在数据库中用于多入口和多模板匹配的方法和系统”。
1998年3月20日提交的、序号为09/044,839号美国专利申请,其发明名称为“在数据库中用于原地修改的方法和系统”。
1998年3月20日提交的、序号为09/044,945号的美国专利申请,其发明名称为“在数据库中用于类型安全属性匹配的方法和系统”。
1998年3月20日提交的、序号为09/044,931号的美国专利申请,其发明名称为“在分布式系统中的动态查找服务”。
1998年3月20日提交的,序号为09/044,939号的美国专利申请,其发明名称为“在分布式系统中用于提供为与一个装置通信而使用的可下载代码的设备和方法”。
1998年3月20日提交的、序号为09/044,826号的美国专利申请,其发明名称为“便于访问查找服务的方法和系统”。
1998年3月20日提交的、序号为09/044,932号的美国专利申请,其发明名称为“在分布式系统中用于动态地验证信息的装置和方法”。
1998年2月26日提交的、序号为09/030,840号的美国专利申请,其发明名称为“在网络上进行动态分布计算的方法和装置”。
1998年3月20日提交的,序号为09/044,936的美国专利申请,其发明名称为“用于持久共享存储空间的交互式设计工具”。
1998年3月20日提交的,序号为09/044,934的美国专利申请,其发明名称为“基于多形态令牌的控制”。
1998年3月20日提交的、序号为09/044,915的美国专利申请,其发明名称为“基于堆栈的存取控制”。
1998年3月20日提交的,序号为09/044,837的美国专利申请,其发明名称为“安全性要求的按照方法指定”。
发明背景
本发明针对计算机系统中的安全措施,本发明尤其针对把各种方法的安全性要求组合到计算机上执行的线程的调用层次中。
分布式系统通常包含通过通信网络互连的许多台不同的计算机。经常,在互通的计算机之间建立客户一服务器关系。一般,“客户”定义为进行调用以请求资源的一种过程,所述资源位于或受控于“服务器”进程。在这种意义下,也可把执行请求进程和执行服务器进程的计算机分别称为客户和服务器。然而,这些作用会根据信息和特定处理的前后关系而改变。
促进客户-服务器关系的一种机构是远程过程调用(RPC),其中客户启用服务器的功能。RPC是一种机构,它提供工作于相同或不同计算机上的两个进程之间的同步通信。通常在两个部分中执行RPC机构:一个部分在客户一方,而另一个部分在服务器一方。
当客户计算机与服务器计算机通信时,安全是经常发生的问题。不履行安全会严重地妨碍客户和服务器的计算机的工作。因此,使用计算机系统的组织是易于受到有意或无意地造成计算机系统误操作的人员或盗窃该组织机密信息的人员的损害。
系统操作员一般着手解决三类安全问题:(1)防止消息的截获和改变;(2)控制对服务器的访问;(3)由客户鉴定服务器。系统操作员已经用传统方式在面向对象的编程环境中通过确定安全级别来解决这些问题,所述安全级别提供了用于设置通信要求的方法。一个这样的面向对象的编程环境是SunMicrosystemTM JavaTM面向对象的编程环境,这在1997年Sams.net出版的题为《Java 1.1开发者指南》的正文中有描述,其作者为Jaworski,该指南的内容通过引用包括在此。
安全级别包括五种通信要求:机密性、完整性、匿名性、鉴定_服务器和无_委托。机密性保证消息内容是非公开的。系统操作员使用加密技术来保证只有具有正确密钥的一方才能对消息解密。完整性检测消息内容(请求和回答两者)何时已经改变,并拒绝处理经改变的消息。系统操作员可以在客户和服务器两个位置上通过使用校验和(checksum)等来完成该项检测。
匿名性表示客户要求不具名。换言之,客户不希望被服务器鉴定。鉴定_服务器表示客户在调用远程方法之前需要鉴定服务器。通过该项通信要求可保证客户与正确的服务器通信。无_委托是指不允许服务器在其进行的调用中以客户的标识符委托。换言之,不授权给服务器对自称为客户的其它计算机系统进行调用。
在客户的位置处,对于每个通信要求用单个位(bit)来表示安全级别。通过设置相应于机密性、完整性、匿名性、签定_服务器和无_委托的位,客户分别指定将保证机密性,将保证完整性,客户将保持匿名,将对服务器鉴定和将不提供委托。
传统上,客户在全局上下文或者在按照参考(per-reference)的基础上指示安全级别的优先选择。在传统的PRC系统中,客户通常要参考服务器。该“服务器参考(server reference)”一般包括诸如服务器主机之网址等网络信息;诸如连接到主机的哪个端口等协议信息;以及用于识别将成为调用主题的服务器对象的对象标识符。因此,“按照参考”是指在服务器参考的场合下设置通信要求,从而由用该服务器参考所作的任何调用来使用这些通信要求。
如果客户在执行一个方法期间在某个全局上下文上设置通信要求,那么后一方法可以复盖这些通信要求,这可以通过由后一方法重写全局上下文,或者通过在按照参考的基础上设置通信要求来实现。即使客户在执行一个方法期间在按照参考的基本上设置通信要求,后一方法仍可以通过在相同的服务器参考上重写这些通信要求而重写这些通信要求。
例如,假设客户启用第一方法,然后第一方法启用第二方法,并且将服务器参考传递给第二方法。假设第二种方法用该服务器参考在远程服务器上执行功能X。还假设第一方法具有机密性和完整性的通信要求,并且在将参考内容传递给第二方法之前,将这些要求设置在全局上下文或服务器参考上。又假设第二方法将通信要求重写在传递给它的参考上,用只鉴定服务器的通信要求来代替原来的通信要求。在传统的系统中,第二种方法的通信要求替换了第一种方法的通信要求,所以对服务器的调用将只鉴定服务器。结果,不能保证第一种方法所要求的机密性和完整性。
传统的安全级别优选指定无法保证将遵循在调用层次中包含的各方法的个别通信要求。因此,希望改善通信系统中的安全性要求指定。
发明内容
符合本发明原理的系统和方法通过把各方法的通信要求合并在调用层次中而解决了这一需要。也就是说,合并各方法的个别通信要求,以获得适合调用的最严格的通信要求组。
符合本发明原理的一种系统可以获得针对计算机上执行的某一线程所要求的动作的安全性要求。在执行期间,该线程调用多个方法。系统包括一调用堆栈和一确定单元。调用堆栈按照线程调用方法的次序,为每个方法存储一标识符和安全性要求。确定单元组合来自调用堆栈的方法安全性要求,以获取用于被请求动作的安全性要求。
附图概述
包括在本说明书中并构成说明书一部分的附图示出了本发明的一个实施例,附图和说明书一起说明了本发明的目的、优点和原理。在这些附图中:
图1是符合本发明原理的计算机网络图;
图2是在符合本发明原理的一个实施例中图1计算机的图;
图3是与图2中计算机上的一线程相关联的调用堆栈的图;
图4是一流程图,示出了在符合本发明原理的一个实施例中图3的收集安全性要求方法所执行的处理;以及
图5是一流程图,示出了其它符合本发明的实施例,它们用于确定与某一动作相关的安全性要求。
详细描述
下面对本发明的详细描述参照附图。在不同图中的相同的标号表示相同或相似的单元。还有,下面的详细描述并不限制本发明。本发明的范围由所附的权利要求书及其等效物来限定。
符合本发明原理的系统和方法合并一线程中每个例程(即,功能,方法)的通信要求,其中所述线程请求对资源作访问的一个动作。当检测到请求这种动作时,根据与线程相关的调用层次中各例程的通信要求,用该动作的通信要求构造一个决定。调用层次指示已被某个线程或以该线程的名义调用的但还没有输出的例程。
分布式系统的概述
符合本发明的方法和系统与在具有各种部件(包括硬件和软件)的分布式系统中工作。例示的分布式系统(1)允许系统用户在具有许多装置的网络上共享服务和资源;(2)为编程人员提供允许开发稳健的且安全的分布式系统的工具和编程模式;以及(3)简化管理分布式系统的任务。为了完成这些目标,例示的分布式系统使用JavaTM编程环境,允许代码和数据以无缝的方式在装置间移动。因此,将例示的分布式系统放在Java编程环境的顶层层面上,并且该分布式系统使用此环境的特性,包括由它提供的安全性以及很强的类型定义能力。1997年Sams.net出版的题为《Java 1.1开发者指南》对该Java编程环境作了更清楚的描述,其作者为Jaworski。
在例示的分布式系统中,不同的计算机和装置联合起来作为单个系统出现在用户的面前。由于作为单个系统出现,所以例示的分布式系统提供了简单的访问,以及单个系统能够提供的共享能力,并且不丧失个人计算机或工作站的灵活性和个人化响应。例示的分布式系统可以包含成千上万个装置,它们由地理位置分散的用户操作,但这些用户都同意委托、管理和政策的基本主张。
在例示的分布式系统内有服务的各种逻辑分组,其中服务由一个或多个装置提供,而每个逻辑分组称为“Djinn”。“服务”是指用户、程序、装置或另一服务可以访问的资源、数据和功能,并且所述资源、数据和功能是可以计算的、存储相关的、通信相关的,或者与访问另一用户相关。作为Djinn一部分而提供的服务的例子包括诸如打印机、显示器、盘片等装置;诸如应用程序、实用程序等软件;诸如数据库和文档等信息;以及系统的用户。
用户和装置都可以参加Djinn。当加入Djinn时,用户或装置对Djinn增加零项或多项服务,并且可以在受安全性约束的情况下访问其所包含的任何一个服务。因此,装置和用户联合成一个Djinn,共同访问其服务。在编程上,Djinn的服务作为Java编程环境的对象而出现,其中Java编程环境可以包括其它对象、用不同编程语言编写的软件部分,或者硬件装置。一个服务具有一个接口,用于定义对该服务可请求的操作,并且服务的类型决定了构成该服务的接口。
图1例示了分布式系统1000,它包括通过网络1400连接互连的计算机1100、计算机1200和装置1300。计算机1100和1200可以包括任何传统的计算机,诸如IBM兼容机,甚至是“哑”(dumb)终端。在典型的操作期间,计算机110和1200可以建立客户一服务器关系,以便发送和获得数据。
装置1300可以是许多装置中的任何一种,诸如打印机、传真机、存储装置、计算机或其它装置。网络1400是局域网、广域网或互联网。尽管在构成例示的分布式系统1000时,仅示出了两个计算机和一个装置,但本领域的熟练技术人员应该理解,例示的分布式系统100可以包括另外的计算机或装置。
图2更详细地示出了计算机1100,显示了例示分布式系统1100的许多软件部分。本领域的熟练技术人员应该理解,计算机1200或装置1300可以用类似的方式构造。计算机1100包括存储器2100、辅助存储装置2200、中央处理器(CPU)2300、输入装置2400和视频显示器2500。存储器2100包括查询服务2110、发现服务器2120和JavaTM运行时系统2130。Java运行时系统2130包括JavaTM远程方法调用系统(RMI)2140和JavaTM虚拟机(JVM)2150。辅助存储装置2200包括JavaTM空间2210。
如上所述,例示的分布式系统1000基于Java编程环境,因此它使用Java运行时系统2130。Java运行时系统2130包括JavaTM应用程序设计接口(API),允许程序在Java运行时系统的顶层运行,以便按独立于平台的方式访问各种系统功能,包括主操作系统的窗口化功能和网络化能力。由于Java API为与移植了Java运行时系统2130的所有操作系统提供了单个公共的API,所述在Java运行时系统顶层运行的程序以独立于平台的方式运行,不必考虑主平台的操作系统或硬件配置。Java运行时系统2130作为JavaTM软件开发套件的一部分提供,而JavaTM软件开发套件可以向加州Mountain View市的太阳微系统公司购买。
JVM 2150也促进了平台独立。JVM 2150象抽象计算机那样工作,它按字节代码的形式接收来自各程序的指令,并且通过动态地将字节代码转换成诸如目标代码等执行形式来解释这些字节代码,然后执行。RMI 2140通过允许在一个计算机或装置上执行的对象调用另一个计算机或装置上某对象的方法,来方便远程方法调用。RMI可以位于JVM内,并且RMI和JVM两者都作为Java软件开发套件的一部分提供。
查询服务2110定义了一特定Djinn可以使用的服务。也就是说,可以存在不止一个Djinn,因此例示的分布式系统1000内有不止一个查询服务。对于Djinn内的每个服务,查询服务2110包括一个对象,并且每个对象包括各种便于访问相应服务的方法。查询服务2110及其访问在共同待批的美国专利申请第09/044,826号中有更详细的描述,该专利申请的名称为“便于访问查找服务的方法和系统”,先前已通过引用包括在本申请中。
在称作引导和加入或者发现的过程中,发现服务器2120检测何时将新的装置加到例示的分布式系统1000中,并且当检测新的装置时,发现服务器将一个查询服务2110的引用传送给新的装置,从而新装置可以向查询服务登记其服务,并且变成Djinn的一员。在登记后,新装置变成Djinn的一员,并且它可以访问查询服务2110中包含的所有服务。引导和参加的过程在共同待批的美国专利申请第09/044,939号中有更详细的描述,该专利申请的发明名称为“在分布式系统中用于提供为与一个装置通信而使用的可下载代码的设备和方法”,先前已通过引用包括在此。
Java空间2210是例示分布式系统1000内各程序使用的一个对象资源库,用于存储对象。诸程序使用Java空间2210持久地存储对象,并且使这些对象可以被例示分布式系统内的其它装置访问。Java空间在共同待批的美国专利申请第08/971,529号中有更详细的描述。该专利申请的发明名称为“使用多形态入口和入口匹配的数据库系统”,已转让给共同的受让人,其申请日为1997年11月17日,其内容通过引用包括在此。本领域的熟练技术人员应该理解,例示的分布式系统1000可以包含许多查询服务、发现服务器和Java空间。
调用堆栈举例
在典型的操作期间,诸如计算机1100等客户计算机执行线程(或过程),这些线程通过调用而访问诸如图1中计算机1200或装置1300等服务器上的资源。RMI 2140(图2)确定与线程调用相关的通信要求。根据符合本发明的一个实施例,通信要求根据目前线程正在执行的例程(例如,方法,功能)以及启用了目前执行的例程的例程而变化。导致执行线程中目前正在执行的例程的调用顺序反映在该线程的调用堆栈中。
图3例示了线程的调用堆栈。参考例示的调用堆栈,以便说明安全机构的操作过程,其中所述安全机构的操作过程可以确保在调用中满足构成线程的诸程序的通信要求。
图3是一方框图,它包括与线程3200相关的调用堆栈3100,其中对象3310的方法3210调用另一对象3320的方法3220,方法3220调用又一对象3330的方法3230,方法3230调用安全控制器对象3340的收集通信要求方法3240。
线程3200是在计算机1100上执行的线程。调用堆栈3100是一堆栈数据结构,它表示线程3200在任何给定情况下启用方法的调用层次结构。在图3所示的情况下,调用堆栈3100包括尚未结束的线程每次执行方法时使用的帧。
每一帧3110-3140对应于已被线程3200调用但还没有结束的方法。各帧在调用堆栈3100上的相对位置反映了对应于这些帧的方法的调用次序。当一个方法结束时,从调用堆栈3100中去除与方法对应的帧。当调用一个方法时,将对应于该方法的帧加在调用堆栈3100的顶层。
每一帧包含了与该帧相应的有关方法与对象的信息。由该信息,通过启用由JVM 2150为每个对象提供的“取类”方法,可以确定方法的类。帧中包含的信息也包括了对相应方法的通信要求。
例如,假设线程3200调用方法3210。在执行方法3210时,线程3200启用方法3220;当执行方法3220时,线程3200启用方法3230;并且当执行方法3230时,线程3200启用方法3240。此时,如图3所示,调用堆栈3100代表了诸方法的调用层次。帧3140对应于方法3240,帧3130对应于方法3230,帧3120对应于方法3220,而帧3110对应于方法3210。当线程3200完成方法3240时,从调用堆栈3100中除去帧3140。
调用堆栈上的每个方法都包括一组通信要求。下述代码示例说明了一项为方法设置通信要求的技术。尽管代码示例可能类似于太阳微系统股份有限公司使用的Java编程语言,但该例仅是说明性的,不代表实际的代码应用。
try  {

     Security. beginRequired (the requirements);

       [code to which the requirement apply]
}   finally  {

    Security.endScope();}
由于通信要求与特定的方法相关,所以必须提供某种机构,用以确定线程的通信要求,其中线程的调用堆栈包括多个与多个方法相关的帧。根据符合本发明的一个实施例,该决定由安全控制器对象完成。
安全控制器举例
根据符合本发明的一个实施例,安全控制器对象3340确定与线程3200请求的一特定动作相关的通信要求。具体地说,在执行一动作(诸如调用服务器)前,RMI 2140启用安全控制器对象3340的收集安全性要求方法3240。该收集安全性要求方法3240组合与调用堆栈3100上每个帧相关的通信要求。方法3240组合这些通信要求,以便为被请求的动作获得最严格的要求。方法3240可以按任何传统的方法进行组合操作。
如果调用层次中的任何一个方法请求机密性、完整性或鉴定服务器,那么方法3240将为该动作分指定机密性、完整性或鉴定服务器。如果一方法请求匿名,那么方法3240将为该动作指定匿名,凌驾于任何非匿名的指示。如果有一个方法拒绝允许委托,那么方法3240不会为该动作指定任何委托,这凌驾于对委托的任何授权。
为动作确定安全性要求
图4是一流程图,示出了收集安全性要求方法3240所执行的处理。假设当线程3200请求一动作时,线程3200正在执行方法3230。再假设当线程3200启用方法3240时,线程3200已经启用了方法3210、方法3220和方法3230,但还没有结束这些方法。将请求动作时与线程3200相关的通信要求存储在帧3110-3130中。
方法3240首先识别诸方法,即方法3210-3230,这些方法具有的帧位于调用堆栈3100中[步骤4110]。方法3240检查分别与方法3210-3230相关的帧3110-3130,以便确定每个方法所请求的通信要求[步骤4120]。通过组合这些方法的通信要求,确定针对该动作的安全性要求[步骤4130]。如上所述,当方法3240组合通信要求时,它用更高的要求替换较低的要求。RMI 2140执行附着于方法3240确定的安全性要求的动作。
如果该动作是调用,用以启用一服务器上的一个远程方法,例如RMI 2140获得服务器的安全性要求。RMI 2140通过从包含要求的服务器安全级别库的本地拷贝中获得服务器的安全性要求。RMI 2140用服务器的安全性要求确定远程方法是否支持由方法3240确定的安全性要求。如果远程方法不支持安全性要求,那么RMI 2140将该事实通知线程3200。RMI 2140可以通过抛出异常来做到这一点。
如果远程方法支持安全性要求,那么RMI 2140确定通信协议是可以使用的,然后选择一个满足由方法3240确定的安全性要求和服务器的安全性要求进行最小组合的协议。当RMI 2140找到一个通信协议时,RMI 2140与服务协商,以便用该协议进行调用,然后开始使用协议进行调用。
为动作确定安全性要求的其它实施例
图5是一流程图,示出了符合本发明的另一些实施例,用于确定与动作相关的安全性要求。参照图4,用上述方式组合具有调用堆栈帧的诸方法的通信要求[步骤5110]。在另一个符合本发明的实施例中,将具有调用堆栈帧的诸方法的通信要求与全局上下文中设置的通信要求组合,以便获得一组组合的、针对该动作的通信要求[步骤5120]。当组合通信要求时,较高的通信要求替换了较低的通信要求。
在另一实施例中,将具有调用堆栈帧的诸方法的通信要求与将执行动作的服务器的通信要求组合,以便获得针对该动作的通信要求[步骤5130]。再一次,当组合通信要求时,较高的通信要求替换了较低的通信要求。
在又一实施例中,将经组合的通信要求组(即,具有调用堆栈帧的诸方法的通信要求和设置在全局上下文上的通信要求)与将执行动作的服务器的通信要求组合,以便获得针对该动作的通信要求[步骤5130]。当组合通信要求时,较高的通信要求替换了较低的通信要求。
结论
符合本发明原理的系统和方法通过组合与调用层次中每个方法相关的安全性要求,来确定与动作相关的安全性要求。
以上对本发明较佳实施例的描述提供了说明和描述,但不打算穷举或限制本发明于所揭示的明确形式。根据上述原理可以进行各种变化和改变,或者可以通过发明实践来获得这些变化和改变。本发明的范围由权利要求书及其等效物来限制。
尽管将符合本发明的系统和方法描述成在例示的分布式系统和Java编程环境下工作,但本领域的熟练技术人员应该理解,本发明可以在其它系统和其它编程环境中实行。另外,尽管将本发明的一些方面(aspect)描述成存储在存储器中,但本领域的熟练技术人员应该理解,这些方面还可以存储在其它类型的计算机可读的媒体上,或者从其它类型的计算机可读媒体中读出。其它类型的计算机可读媒体例如可以是辅助存储装置,如硬盘、软件或CD-ROM;来自互联网的载波;或者其它形式的RAM或ROM。Sun,Sun Microsystems,Sun logo,Java和基于Java的商标是太阳微系统股份有限公司在美国和其它国家的商标或注册商标。

Claims (17)

1.一种获得动作之安全性要求的系统,其中所述动作是计算机上执行的调用者所请求的,所述调用者在执行期间至少启用多个方法中的一个,其特征在于,所述系统包括:
调用堆栈,它按照调用者启用的次序存储方法的表示,并存储至少一个方法的安全性要求;和
确定装置,它组合来自调用堆栈的方法安全性要求,以便获得被请求动作的安全性要求。
2.如权利要求1所述的系统,其特征在于,调用堆栈只存储目前被启用之方法的表示和安全性要求。
3.如权利要求1所述的系统,其特征在于,所述方法安全性要求包括机密性要求,通过该要求,调用者可以在通信期间确保保密。
4.如权利要求1所述的系统,其特征在于,所述方法安全性要求包括完整性要求,通过该要求,调用者可以在传送期间确保通信不变。
5.如权利要求1所述的系统,其特征在于,所述方法安全性要求包括匿名要求,通过该要求,调用者可以在被请求动作中保持匿名。
6.如权利要求1所述的系统,其特征在于,所述方法安全性要求包括服务器鉴定要求,通过该要求,调用者请求一装置对其本身进行鉴定。
7.如权利要求1所述的系统,其特征在于,所述方法安全性要求包括委托要求,通过该要求,调用者授权一装置以调用者的身份进行委托。
8.如权利要求1所述的系统,其特征在于,所述确定装置包括:
组合装置,用于组合来自调用堆栈的方法安全性要求,用较高的方法安全性要求替换较低的方法安全性要求。
9.如权利要求1所述的系统,其特征在于,调用者是在计算机上执行的一个线程。
10.如权利要求1所述的系统,其特征在于,调用者是在计算机上执行的一个程序。
11.一种获得动作之安全性要求的系统,其中所述动作是计算机上执行的某个线程所请求的,所述线程在执行期间至少启用多个方法中的一个,其特征在于,所述系统包括:
用于存储线程启用时至少一个方法的方法标识符和安全性要求的装置;
用于组合所存方法安全性要求的装置;和
用于从经组合的方法安全性要求中获得被请求动作之安全性要求的装置。
12.一种用计算机实施的、用于确定动作之安全性要求的方法,其中所述动作是计算机上执行的一个操作所请求的,所述操作在执行期间至少启用多个功能中的一个,其特征在于,所述方法包括以下步骤:
存储由操作启用时至少一个功能的功能标识符和安全性要求;
接收操作对所述动作的请求;
组合被存储的功能安全性要求;和
由经组合的功能安全性要求确定被请求动作的安全性要求。
13.一种计算机可读媒体,它包含用于控制计算机执行一动作的指令,其中所述动作是由计算机上执行的一个操作所请求的,所述操作在执行期间调用多个功能,其特征在于,所述方法包括以下步骤:
存储由操作启用时至少一个功能的功能标识符和安全性要求;
接收操作对所述动作的请求;
组合被存储的功能安全性要求;
由经组合的功能安全性要求确定被请求动作的安全性要求;和
用确定的安全性要求执行被请求的动作。
14.一种数据处理系统,其特征在于,包括:
存储器,它包括:
程序,该程序在执行期间启用多个方法,
调用堆栈,它存储程序启用时的方法标识符,以及每个方法所请求的安全性要求,和
运行时环境,它接收来自程序的动作请求,将诸方法的方法安全性要求组合到调用堆栈中,根据经组合的方法安全性要求确定被请求动作的安全性要求,并且用确定的安全性要求执行被请求的动作;和处理器,用于执行运行时环境和程序。
15.一种在计算机系统中执行一操作的方法,其特征在于,所述方法包括以下步骤:
通过第二调用者从第一调用者那里接收一个执行操作的请求,第一和第二调用者具有分开的安全性要求;和
确定是否根据第一和第二调用者两者的安全性要求执行该操作。
16.如权利要求15所述的方法,其特征在于,所述确定步骤包括以下子步骤:
组合第一和第二调用者的安全性要求,用安全性要求中较高的要求替换安全性要求中较低的要求。
17.如权利要求15所述的方法,其特征在于,所述操作是对具有安全性要求的服务器的远程调用,所述方法还包括以下步骤:
当服务器的安全性要求支持第一和第二调用者两者的安全性要求时,执行操作;以及
当服务器的安全性要求不支持第一和第二调用者两者的安全性要求时,拒绝执行操作。
CN99805488A 1998-02-26 1999-02-18 基于堆栈的安全性要求 Pending CN1298511A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US09/044,944 US6226746B1 (en) 1998-03-20 1998-03-20 Stack-based system and method to combine security requirements of methods
US09/044,944 1998-03-20
US60/076,048 1998-03-20

Publications (1)

Publication Number Publication Date
CN1298511A true CN1298511A (zh) 2001-06-06

Family

ID=26722193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99805488A Pending CN1298511A (zh) 1998-02-26 1999-02-18 基于堆栈的安全性要求

Country Status (6)

Country Link
EP (1) EP1057110A2 (zh)
JP (1) JP2002505477A (zh)
KR (1) KR20010040981A (zh)
CN (1) CN1298511A (zh)
AU (1) AU2686699A (zh)
WO (1) WO1999044138A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437479C (zh) * 2004-04-30 2008-11-26 微软公司 一种用于管理堆上的数据使用的系统及方法
CN102867152A (zh) * 2011-06-14 2013-01-09 国际商业机器公司 使用主动化身保护资源的系统和方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100560166B1 (ko) * 2001-12-05 2006-03-13 한국전자통신연구원 실시간 버퍼 오버플로우 해킹 탐지 방법
JP4062441B2 (ja) 2003-07-18 2008-03-19 日本電気株式会社 並列処理システム及び並列処理プログラム
JP4844102B2 (ja) * 2005-11-30 2011-12-28 富士ゼロックス株式会社 サブプログラム及びそのサブプログラムを実行する情報処理装置
KR100949949B1 (ko) * 2008-02-28 2010-03-30 주식회사 안철수연구소 콜 스택을 이용한 디버깅 방지 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0635792B1 (de) * 1993-07-16 2003-08-27 Siemens Aktiengesellschaft Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
WO1998004971A1 (en) * 1996-07-25 1998-02-05 Tradewave Corporation Method and system for generalized protocol implementation on client/server communications connections

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437479C (zh) * 2004-04-30 2008-11-26 微软公司 一种用于管理堆上的数据使用的系统及方法
CN102867152A (zh) * 2011-06-14 2013-01-09 国际商业机器公司 使用主动化身保护资源的系统和方法
CN102867152B (zh) * 2011-06-14 2016-06-01 国际商业机器公司 使用主动化身保护资源的系统和方法

Also Published As

Publication number Publication date
KR20010040981A (ko) 2001-05-15
JP2002505477A (ja) 2002-02-19
WO1999044138A2 (en) 1999-09-02
EP1057110A2 (en) 2000-12-06
AU2686699A (en) 1999-09-15
WO1999044138A3 (en) 1999-11-04

Similar Documents

Publication Publication Date Title
CN1292116A (zh) 保密要求的按照方法指定
CN1308824C (zh) 用于管理计算环境中的请求的执行的方法和系统
US6226746B1 (en) Stack-based system and method to combine security requirements of methods
KR100324504B1 (ko) 데이터처리시스템에서의프로세서집약적동작처리방법및그장치
Champine et al. Project athena as a distributed computer system
US5758069A (en) Electronic licensing system
US7779034B2 (en) Method and system for accessing a remote file in a directory structure associated with an application program executing locally
AU779145B2 (en) Entitlement management and access control system
US8131825B2 (en) Method and a system for responding locally to requests for file metadata associated with files stored remotely
US6668327B1 (en) Distributed authentication mechanisms for handling diverse authentication systems in an enterprise computer system
US5905860A (en) Fault tolerant electronic licensing system
EP2511821B1 (en) Method and system for accessing a file in a directory structure associated with an application
CN1298512A (zh) 基于堆栈的访问控制
US20070083620A1 (en) Methods for selecting between a predetermined number of execution methods for an application program
US20070083610A1 (en) Method and a system for accessing a plurality of files comprising an application program
CN1292117A (zh) 基于事件的分布式系统中传送行为的方法和装置
CN1298513A (zh) 用于远程方法启用的方法和设备
US20040098726A1 (en) JMS integration into an application server
CN1298514A (zh) 确定性散列识别远程方法的方法和系统
CN1298503A (zh) 分布式系统中的动态查找服务
JPH096661A (ja) システム資源管理装置および管理方法
CN1292192A (zh) 基于多形态令牌的控制
US7849055B2 (en) Method and system for limiting instances of a client-server program within a restricted distributed network
CN105677693B (zh) 一种访问数据库的方法及装置
CN1298511A (zh) 基于堆栈的安全性要求

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication