能力


  Share  
|


在概念上,一种能力,就像是连续的访问控制矩阵。 每一科目有与此相关的一套双,每两人一个对象和一组权利。 主题与此相关联的名单资料,可上网的命名对象中的任何方法所命名的权利。 更正式地:

让o是一套对象,研究了一套权利,一种制度。 一种能力, c组名单,是一套对c = ( (海外,俄文) :邻包括在o ,俄包括在r ) 。 让上限,是一个功能决定的能力表c与某一特定主题的第 诠释能力名单上限( ) = ( (爱,扶轮社) : 1 < = i < = n )的是,受s可以进入爱用的任何权利,在扶轮社。

我们缩写"能力"名单,为c名单。

能力概括对象的身份。 当一个进程提出了一种能力,就代表一个用户,操作系统审查能力,以确定双方的目的和获得该进程的标题。 这反映了怎样capabiliies内存管理工作;位置的物体记忆是概括能力。 没有能力和整个过程,不能名字对象在某种意义上说,将给予它想要获取。

例如:打开一个unix文件,而这一过程给人的档案名称,以内核。 内核获得档案的数量inode中解决的名字,通过档案等级。 一旦inode中获得的,系统决定了,如果要求进入,应准予使用访问控制权限。 如果准入是理所当然的,操作系统返回一个能力称为file描述。 能力是紧密地联系到文件的对象,因此,即使文件被删除,新的文件具有相同的名字是创造, file描述仍然是指把以往的文件。


"码字"的iliffe相类似的能力。 "能力"是一个办法,以控制进入物体在内存或二级存储。 法布里广义这个想法实施基于能力解决。

该体系结构的能力,更有趣的,比的访问控制列表。 访问控制列表和进程的身份是控制下的作业系统。 在没有缺陷,对用户程序可以改变它们只有通过援引操作系统服务。 但是,这个过程必须找出一种能力,以使用它,所以这个过程必须有一定的控制能力。 如果这一进程能够建立一种能力,然后把它用,接入控制失败。

执行能力

这三个机制是用来保护功能:标签,受保护的内存,并加密。

一贴上标签,建筑都有一套钻头与每一个硬件一句话。 标签有两个国家:内容和unset 。 如果标签是一套,一个普通的进程可以读,但是不能修改这个词。 如果标签被销毁,一个普通的过程,可以阅读和修改文字。 此外,一个普通的进程不能改变国家的标签;处理器必须在一个特权模式,这样做的。

例如: b5700用了一个贴有标签的架构(虽然它没有使用能力,作为保护机制) 。 标签领域包括三个钻头,并表示,如何架构是对待字(指针,描述,类型等) 。


较常见的是用钻头保护与传呼或分割。 所有功能都存放在一个页(部分) ,这一进程可以读,但并不会改变。 这就要求,没有特殊用途硬件以外使用的内存管理计划。 但这一进程必须参考的能力,间接地,通常是通过指针,而不是直接的。

例如:上限制度,不容许程序,以修改部分,由指示打好。 它也储存能力,在这一部分。 围栏登记失散的指示和能力。


第三种选择是使用加密技术。 目标标签和内存保护,是防止能力,从被篡改的。 这是近乎完整的检验。 密码校验是另外一种机制,用以检查资料的完整性。 每一个有能力有一个密码校验和与此相关,并校验和进行数字加密采用密码系统,其关键是众所周知的作业系统。

当进程是一个有能力的作业系统,该系统首先recomputes密码校验与能力。 然后,要么enciphers该校验和使用加密钥匙,并比较它与一个储存能力,或deciphers该校验和提供能力,并比较了它与计算机校验。 如果它们能配合,有能力,是改变。 如果没有,有能力予以驳回。

例如:阿米巴系统是一个分布式系统,用能力,以名义物体。 对创作,并能在相对应的对象是回来了。 使用对象,该计划提出了相应的能力。 能力编码物体名称( 24位) ,服务器,它创造的( 48位) ,权利( 8位) ,在128位的数量。 最初,所有权利都被打开。

过去48位元是用来作为检查场。 这是一个随机数,在选定的创作时间。 (因为能力是考虑到物体所有人,车主可以自由修改的权利,在无危险) 。号码是存放在一个表对应的服务器创建,对象,所以当能力是提交给服务器,它验证了该随机数是正确的。 攻击者需要知道随机数,以便能够建立一种能力。 不过,由于tanenbaum注意到,该系统是脆弱的,如果有能力,是披露。


复制和放大能力

能力拷贝能力,就意味着有能力给予的权利。 防止程序,由滥送权利,副本国旗与能力。 一个过程,不能照搬一种能力,以另一种程序,除非拷贝旗定。 如果这一进程是否复制能力,复制旗,可将其关闭(在裁量要么进程或内核) 。

例如:阿米巴用一个有趣的计划。 它不控制复制的权利。 然而,用途,以这些复制权,可以把受到限制。

假设用户马特意愿,让用户冬青阅读对象,他堪称登峰造极。 他通过他的能力为对象到服务器,并请有限制的能力,为读。 服务器上创建了一个新的能力为对象,但只有读权被打开。 权利场,现在是所有0的除读取位,这是一个1 。 这是xor'ed与抽查,并输入到一个加密散列函数。 输出是新的随机数,为这方面的能力。 限制能力,然后通过回马特,是谁给它以冬青。

当冬青用途的能力,服务器注意到,至少有一个位在人权领域是0 。 它的权利领域,异或的,它与随机数的原始能力(储存在其表) ,以及哈希结果。 如果由此产生的散列配合随机数的能力,能力是有效的;否则,它不是。


放大的,是不断增加的特权。 构思模块化编程,尤其是抽象的数据类型,要求权利的过程,有一个对象被放大。

要了解为什么,考虑下面的抽象数据类型的一个柜台。

 舱柜;程序进入增量(无功合作减少威胁:整数) ;开始合作减少威胁: = ctr有关+ 1 ;完;函数条目getval ( ctr有关:整数) ;开始getval : = ctr有关;完;程序条目清晰(无功合作减少威胁:整数) ;开始合作减少威胁: = 0 ;完;结束。 

假设x是被宣布为一个反。 规则的抽象数据类型,使该对象,以获取只能由计数器模块。 所以,最初的能力,为十大将含有有权援引反模块只。 但是,当对象通过向反模块,这一进程必须现在能阅读和书写,以表示反对。 因此,能力必须扩增暂时而模块柜是否活跃。

例如:开创性系统水螅用于扩增模板,以建立健全的过程中的权利。 与每一个程序,在模块是一个样板,即增加了权利能力,按需要发放。 举例来说,模板,为getval程序,将增加阅读的权利,而该程序是活跃。 模板为增量程序将放入阅读和书写的权利。


例如:英特尔iapx 432系统实现了一个类似的机制,在硬件。 它的"准入描述"对应能力。 3钻头在有能力控制各种系统功能。 其中的比特控制扩增的权利。 当一个抽象数据类型模块构造,允许钻头的类型控制对象(定义数据类型) ,载到许可程序的需要。 当程序是所谓的,该系统检查扩增位。 如果是一套,在权利类型控制对象是or'ed与权利,在广义的对象被通过。 这一组合界定权利提供给程序。


撤销权

在一个能力体系,吊销获取某种物体,需要所有的能力,给予进入该物体被吊销。 在概念上,每一个过程,可以核对,然后和能力删除。 成本的这种行动,将是不能接受的,不过,以目前的替代方法是使用。

最简单的机制是间接的。 确定一个或一个以上的全球物体表。 在这项计划下,每一个对象有一个相应的条目在桌子上。 能力不名称的对象直接;他们名下的条目在表中相对应的对象。

这项计划有几个明显的优势。 第一,依法吊销能力,因此,在进入全球物体表无效。 那么任何一个参照,将获得一个无效的表条目,并会被拒绝。 第二,如果只有部分能力,是被撤销的,该物体可以有多种条目,每个对应一套不同的权利,或者一个不同的用户群。

例如:阿米巴用途基本上这个计划。 撤销能力,他们物体所有人要求服务器改变随机编号,并发出新的能力。 这无效所有现有的能力。


另类撤销机制利用抽象数据类型的经理。 包括每个抽象数据类型是一个撤销程序。 当通道被撤销的,该型经理simpy不允许进一步通道由当事人,其权利受到撤销。 这并不影响其他方法获取对象的基本抽象数据类型。 例如,进入一个文件可能会被撤销,但这种技术将不会阻止我们获得的基本环节,通过另一种类型的经理。 该scp3系统在使用这种技术。

比较与访问控制列表

两个问题理解的使用访问控制:

  1. 鉴于主题,是什么物体,它可以获取,以及如何呢?

  2. 给一个对象,有什么科目可以访问它,又如何呢?

从理论上讲,无论是访问控制列表或能力可以回答这些问题。 对于第一个问题,能力是最简单的;仅仅是列出的内容主题的相关的c -清单。 对于第二个问题,的acl是最简单的;仅仅是列出的内容对象的访问控制列表。 在一个前交叉韧带为基础的系统,在回答第一个问题,要求所有的物体被扫描。 该系统中提取所有acl的作品与相关的议题。 在基于能力的系统,在回答第二个问题,要求所有科目将扫描。 该系统中提取所有的能力与客体的问题。

karger和赫伯特推测说,实际差别在回答第二个问题的原因是多系统的使用访问控制列表比能力。 这个问题是问往往比第一。 作为重点事件应对转变,从"谁存取对象"的范围扩大到" ,还有什么做当事人查阅, "基于能力的系统可能变得更为常见。

这是一篇文章说,由李华明寄养

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions