在计算机系统中将保护与特权级分离以提供灵活保护模型技术方案

技术编号:2861016 阅读:338 留言:0更新日期:2012-04-11 18:40
描述了通过将保护与特权分离在计算机系统中提供灵活保护模型的方法和系统。接收描述定义保护类型和代码部分的两个或两个以上域之间关系的信息。在相同特权级中可执行提供细粒度保护的多个域的代码部分。不要求该关系是线性的。此外,就常规操作系统上下文切换开销而言,与跨保护域相关联的开销相对较小。

【技术实现步骤摘要】

本专利技术的实施例涉及保护计算机系统中的信息。更具体地讲,本专利技术的实施例涉及通过将信息保护与和访问信息相关联的特权级分离来保护与计算机系统相关联的信息。
技术介绍
当前,一个与计算机系统相关联的问题是保护计算机系统里的信息免受可能是意外或恶意的不希望的访问。例如,可能不希望用户能够确定某些代码如何起作用、代码所操作的数据或者存储数据所用的数据结构。这里所用的信息包括但不限于代码、数据和/或存储数据所用的格式(也称为“数据结构”)。此外,为了本申请的目的,诸如访问、修改和/或执行信息的动作在下文中将称为“访问”。在计算机术语中,“特权”确定在计算机系统里的信息上允许执行什么动作代码。在大多数的操作系统中,允许执行代码的动作由代码执行或驻留于什么特权级来确定。例如,通常,代码在称为核心和用户的两个特权级之一中执行。而且,驻留于核心中的代码具有无限量的权力来执行动作,例如访问计算机系统里任何地方的信息。相反,驻留于用户级的代码具有有限量的权力来执行动作。例如,用户级的代码不能直接访问核心中的代码或数据。在计算机术语中,“保护”涉及保护计算机系统里的信息,防止对该信息执行各种动作。例如,保护驻留于核心中的代码或数据免受计算机系统的用户无意间或恶意地访问该代码或数据。类似地,保护核心中的代码和数据免受用户级的代码的直接访问。相反,用户可能无意间或恶意地访问用户级的代码和数据。通常,操作系统驻留在核心里,而应用程序驻留在用户级。操作系统代码具有比用户应用程序高的保护级别。但是,一般对于操作系统或对于应用程序而言没有细粒度的保护。例如,应用程序可能包括一组模块和/或库。这些模块和/或库中的一部分可能来自第三方,因此不受到高度信任。希望从库里的其它模块和/或服务以灵活方式为应用程序库里的某些模块和/或服务以灵活方式提供保护。在另一个实例中,厂商提供的应用程序库通常包含可能被不良应用程序代码、如解除引用未初始化指针的应用程序代码所破坏的关键数据。在这些及其它情况下,非常希望控制这些模块的访问以及这些模块无意或恶意地访问的对象,以便提供更多应用程序健壮性。
技术实现思路
本专利技术实现独立于特权级的灵活的细粒度保护。本专利技术允许该灵活性具有大量减少的开销。而且,不需要细粒度保护的代码不会产生任何额外开销。本专利技术提供对应用程序模块的所希望的保护,而不需要将该模块移到核心。本专利技术允许程序开发者定制保护级别以满足他们在任何特权级的需要,而不涉及或影响其它特权级中的代码。本专利技术的实施例涉及在相同特权级内提供计算机系统中的细粒度保护的方法和系统,换言之,也就是通过将保护与特权级分离。在一个实施例中,接收描述两个或两个以上保护类型的信息。此外,接收描述两个或两个以上保护类型和代码部分之间关系的信息。该关系不要求是线性的。在相同特权级中执行这些代码部分。描述两个或两个以上保护类型及关系的信息与这些代码部分相关联。附图说明结合于本说明中并构成本说明的一部分的附图说明了本专利技术的实施例以及描述,用于说明本专利技术的原理图1A(现有技术)是应用程序部分在核心中执行的计算机系统的框图。图1B(现有技术)是Multics体系结构的框图。图2A是根据本专利技术的实施例、用于编译和链接编辑应用程序的代码部分的示范性计算机系统的框图。图2B是根据本专利技术的实施例、描述核心和应用程序代码的示范性计算机系统的框图。图3A和图3B描述根据本专利技术的实施例、在应用程序内通过将保护与特权分离来加强计算机系统中保护的流程图。图4描述示范性计算机系统的框图,根据该系统可实践本专利技术的实施例。除非明确说明,否则本说明中提到的图不应理解为是按比例绘制的。具体实施例方式现在将详细参照本专利技术的各种实施例,附图中说明了本专利技术的实例。虽然本专利技术将结合这些实施例进行描述,但是应当理解它们并非要将本专利技术局限于这些实施例。相反,本专利技术意在涵盖可包含于所附权利要求所定义的本专利技术的实质和范围内的备选方案、修改和等效物。此外,在本专利技术的以下描述中,陈述了大量具体细节,以便提供本专利技术的全面理解。在其它情况下,未详细描述公知的方法、过程、元件和电路,以免不必要地影响本专利技术的各方面。软件系统和功能概况如已经陈述的,存在关于在应用程序内或核心内以细粒度保护代码和数据免于无意或恶意的不希望的访问的问题。该问题的一个解决方案是将需要保护的应用程序部分从应用程序的其它部分转移到核心。这个方法通常涉及所谓的“上下文切换”,这将进行更详细说明。现有技术的图1A是其中应用程序部分在核心中执行的计算机系统的框图。例如,应用程序代码部分(C1A,C2A,C3A)和代码(C1A,C2A,C3A)所操作的数据(D1A,D2A,D3A)驻留于核心140A,而应用程序代码部分(C4A,C5A,C6A)和代码(C4A,C5A,C6A)所操作的数据(D4A,D5A,D6A)驻留于用户级150A。保护驻留于核心140A的应用程序的代码(C1A,C2A,C3A)和数据(D1A,D2A,D3A)以防止用户对其访问。但是,这个解决方案有许多缺点。一个缺点是从在用户级150A中执行的代码(C4A,C5A,C6A)与在核心140A中执行的代码(C1A,C2A,C3A)之间上下文切换引起的开销。例如,当用户级150A中的代码(C4A,C5A,C6A)调用核心140A中的代码(C1A,C2A,C3A)时,则需要保存包括极大量寄存器的内容的“上下文”。当控制从核心140A中的代码(C1A,C2A,C3A)返回到用户级150A中的代码(C4A,C5A,C6A)时,则需要恢复“上下文”。在上下文切换期间,需要许多CPU周期来保存和恢复这些寄存器的内容。第二个缺点是驻留于核心中的应用程序部分(C1A,C2A,C3A)可能使核心不稳定。为了使计算机可靠地工作,操作系统需要稳定。核心140A的主要目的是要提供对操作系统的高级特权和保护。潜在地,引入到核心140A的任何代码(C1A,C2A,C3A)可能有缺陷,因此可能使操作系统不稳定。第三个缺点是可能不允许应用程序代码在核心中执行。如已经讨论的,操作系统需要稳定。因此,负责在核心中执行的代码的程序开发者可能不允许负责应用程序的程序开发者将应用程序的一些部分置于核心中。第四个缺点是一旦应用程序代码的一部分转移到核心,则它不能再调用其它应用程序。换句话说,回调不再是可能的。在许多环境中,这是不可接受的。对此问题的第二个解决方案包括将用户特权级分成若干个线性信任级(下文称为“Multics”)。现有技术的图1B是Multics体系结构的框图。例如,核心具有位于环0的最高信任级,用户级则分成若干个较低的信任级(环1、2、3)。可导致更多破坏的代码通常受到较大的调试,并因此具有较高信任级。例如,位于环0的核心可导致最大量的破坏,因此,最多地调试环0中的代码,并且该代码是最受信任的代码。此外,提供给环0最多的保护。相反,最少调试环3中的代码,因此,最少信任环3,并且提供给环3最少的保护。以下规则总结了线性信任级如何在Multics中工作。1.环(j)中的代码应当能够调用环(j)中的代码或者任何编号大于“j”的环中的代码。2.应当拒绝环(j)中的代码直接调用环(i)中的代码的能力,其中“i”小于“j”,但是,环(j)可按照受控本文档来自技高网
...

【技术保护点】
一种通过将保护与特权分离在计算机系统中提供灵活保护的方法,所述方法包括:允许描述两个或两个以上保护类型的信息的接收(302);允许描述所述两个或两个以上保护类型与在所述计算机系统的相同特权级中执行的代码部分之间关系的信息的接 收,其中不要求所述关系是线性的(302);以及允许描述所述两个或两个以上保护类型的所述信息和描述所述关系的所述信息与所述代码部分的关联(306)。

【技术特征摘要】
US 2004-1-30 10/7695941.一种通过将保护与特权分离在计算机系统中提供灵活保护的方法,所述方法包括允许描述两个或两个以上保护类型的信息的接收(302);允许描述所述两个或两个以上保护类型与在所述计算机系统的相同特权级中执行的代码部分之间关系的信息的接收,其中不要求所述关系是线性的(302);以及允许描述所述两个或两个以上保护类型的所述信息和描述所述关系的所述信息与所述代码部分的关联(306)。2.如权利要求1所述的方法,其特征在于,所述关系是用户可定义的。3.如权利要求1所述的方法,其特征在于,所述代码部分是域,并且所述保护类型中每一个至少部分由一个或多个域属性来定义。4.如权利要求3所述的方法,其特征在于,所述一个或多个域属性包括指明用于具体域的唯一值的域标识符。5.如权利要求3所述的方法,其特征在于,所述一个或多个域属性包括指明用于保护同时使用具体域的各个用户的唯一值的私钥。6.如权利要求3所述的方法,其特征在于,所述一个或多个域属性包括指明具体域访问与另一个域相关联的代码时必须使用的值的共享代码密钥。7.如权利要...

【专利技术属性】
技术研发人员:AK埃扎特
申请(专利权)人:惠普开发有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1