




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机安全中的认证问题 王成远 19915040概要: 认证是计算机网络安全中的重要问题,它是正常进行电子商务等活动的重要前提。为保证安全,人们对认证标准进行了很多讨论,本文对其中的一些问题进行了详细说明。关键词: 网络安全 认证 标准一可接受的认证度量在大范围网络系统中众所周知的一种认证技术是使用一条委托仲裁路径,网路上每个实体可认证该条路上的下一个。最近人们已发展这项技术使之支持多路认证,但面对交叉路径、证书歧义性和不同钥匙使用的互相依赖性,该技术的成功应用还不明朗。因此有人提议建立度量来评价多路认证的置信度。这里提出了一系列指导原则来设计这些度量,并说明以前的途径关于这些度量的不足及认证结果该是怎样的。然后提出建立满足这些原则的度量方向,只有这样才能建立满意的认证标准。11简介确定公钥的所有者或确定用户的公钥,是在任何大规模开放的系统中安全的进行事务处理的一个基本要素,由于在具有多种不同管理领域的系统中缺少一个单独的授权认证机构来提供这种信息服务,许多系统(如DSSA,SPX,PEM,PGP)求助于通过一条路或链的认证机构。在这种模型里,用户可查出一系列的认证机构来:(1)验证该路上第一个认证机构;(2)每个认证机构可以验证该路上下一个认证机构;(3)该路上最后的认证机构是目标人或感兴趣的关键所在。若用户相信该路上每一个认证机构,他会相信得到了一个正确的名字钥匙关联。但这种认证方式有弱点:它依赖于该路上每个认证机构都是正确的,若该路上任何一个认证机构发生错误认证,用户会被误导。提高目标认证保证的一个自然方法是使用多条路,但多路提供的保证可能是不清楚的,特别是当存在共有的认证机构或认证机构互相关联的时候。结合认证机构的结论含糊性和看待谁在实际制造结论的含糊性,有置信度认证的完成会很困难。一些研究者因此提出度量多路提供置信度的尺度。例如:经过多路认证后返回一个数值:数值大则表明这些路支持的名字公钥关联(对目标名字或公钥)有更高的置信度。在X.509证书中支持度量的扩充已被提出。基于不同度量的鉴定,这些度量的标准还没有广泛达成一致。一些认证度量(只关心名字公钥关联的置信度)的设计规则:它们主要集中于三个领域,即度量输出值的意义、在何种程度上度量输出可被恶意行为操纵、在实际中有效使用度量的展望。12已提出的度量尺度概览先介绍两个概念: 实体:它拥有并使用密/公钥对。如:一个人、认证服务器或认证机构;用户:他们应用度量来得到名字钥匙的关联保证。几种度量方式:Beth-Borcherding-Klein:信任关系以有向图方式表达。图的节点是实体。图中有两种类型的边:一种是“直接边”(direct edge),直接边AB意思是A相信它可以验证(即含有B的公钥)B,另一种是“推荐边”(recommendation edge),推荐边AB代表A相信B可以验证别的实体或推荐别的实体来验证或其它推荐事项。每一个推荐边或直接边以0,1之间的值相关联。AB的情况下,该值表示A确实掌握B的正确公钥的概率,AB的情况下,该值表示A作为推荐者相信B的概率,高值代表更高的信任程度。 Maurer:以有向图作为输入,图的节点是实体,同样有两种不同边-直接边和推荐边。但此时AB意思是:评价该度量的用户掌握由实体A发布和签名的带有B的公钥的证书,类似的,推荐边AB意味着用户拥有被A签名的B的推荐。每一个推荐边或直接边以0,1之间的值相关联,称为确信参数,它被产生边的实体赋值。如果用户A想要用户B的公钥,该度量计算该钥匙是B的公钥的置信度,使用指定边的信任参数。 Reiter-Stubblebine:以有向图作为输入,图的节点是公钥(实际的公钥,没有对任何实体的引用),边K1K2代表评估该度量的用户有一个由密钥K1签名(即K1可被用来确认签名)所对应的一个证书,该证书分配属性给K2,其中与K2关联的属性表明K2的所有者,并作为标志包括在边K1K2。没有其它值与边和节点关联。Reiter和Stubblebine研究了两种有关的度量,每个度量输入上述有向图、用户希望认证的钥匙(目标钥匙)、用户信任的钥匙(源钥匙,如他自己的)和考虑路长度的范围b。第一个度量返回从源钥匙到目标钥匙最大长度为b的点不相交的路的最大集合,第二个度量返回整数k和从源钥匙到目标钥匙的一系列最大长度为b的路的集合,其特点是k个节点被移去(破坏)才能破坏所有的路,k是使这样的路存在的最大值,称为从源钥匙到目标钥匙的连通度。若坚持这些度量返回数字输出,则在路不相交的情况下返回不相交路的个数,其它情况下返回连通度。 Zimmermann: 把Zimmermann作为度量归因于它使用了PGP最流行的公钥管理系统之一,它的有向图类似于Reiter-Stubblebine的图,节点是公钥,边K1K2标有属性值,代表关联这些属性到K2并被K1证实的证书。不同之处是用户赋以每一节点一个信任值,分别是:不知道、不信任、部分信任、完全信任。PGP以下列方式计算每个节点的合法性:首先宣布合法节点K0代表用户钥匙,任何节点K,使得K0K是图的边,然后重复下面的步骤直到没有钥匙能被确定是合法的。如果有一些节点K满足(1)从合法的完全信任的节点有一条边到K或(2)从两个合法且部分信任的节点有一样标记的边到K,则K被认为是合法的。需要从完全或部分信任的节点引出的边的数目可被调节,但一或两条是缺省的,分别的。实际上,节点合法性的确定被分派到节点的信任值所交织,即一个信任值被分派到一个节点当且仅当它被确定是合法后,这样它的所有者被假定知道。13 设计规则把规则分成三个范畴:度量结果的意义、度量对实体错误行为的敏感性、度量的实际成效。下面分别叙述这些规则。131度量结果的意义规则1:建立应用度量的模型应该不要求用户推断钥匙和它们主人的关联,特别的:当描述模型中的证书时,实体不要对证书签名,而由钥匙做这件事;建立该规则的动机一是建立名字钥匙的关联是困难和易错的过程,否则就不需要度量了;Maurer模型达不到这一点。同样在Beth-Borcherding-Klein模型里,节点是实体,用户为了安全的对边AB或边AB赋值,必须验证该值从A而来,假定认证秘密进行,仍要求用户能决定可认证A的钥匙。第二个动机是建立被单一实体签名的证书隐藏了实体用于签此证书的钥匙:被同一实体所拥有的不同私钥签名的不同证书会导致描述证书时的模糊性。规则二:模型参数的意义应该是非歧义的,特别是将它们应用于模型中并使用它们的概率意义和信任值的时候;规则三:度量应该考虑更多有关用户想要做出的有关认证决定的信息;规则四:度量输出应该直观,应该能用直观的自然语言描述输出含义;132 敏感性 下面讨论实体非正常操作对度量灵敏度的影响:非正常操作指一或多个实体用欺骗手段来控制度量输出来提高用户在认证中的置信度。如果攻击者能够增大度量输出使之达到应用可接受的认证,则该度量并没有达到服务目的(会误导用户)。为解释这一观点,下面说明Beth-Borcherding-Klein对非正常操作过度敏感。实际上,该度量的一个特性是单个非正常操作的实体能够随心所欲的提高或降低度量的结果。为说明这一点,有必要检查一下计算Beth-Borcherding-Klein度量的规则:假定实体A想要认证B(确定B的公钥),Beth,et al 提出并证明以下规则用于计算A(基于连接A和B的边)认证B的总“分数”。如果有路AC带有推荐值V1,推荐边CD带有值V2,那么ACD带有推荐值V1*V2。如果有路AC带有推荐值V1,直接边CD带有值V2,那么ACD带有直接信任值1(1V2)V1。若对1im,有ni条不同的路从A到B并以边CiB结束,带有直接值Vi,1,Vi,ni,那么结合的直接信任值是Vcom(A,B)=1-mi=1(nij=1( 1-Vij)1/ni 下面举例说明上述规则会产生前述问题。如图一: 从规则1和2,路径ACFB,ADGB和AEGB得到直接信任值0.204、0.173和0.765。结合这些并由规则三可得到Vcom(A,B)=0.649。现在考虑图二,由于D的非正常操作,D产生另外的路从A到B经过H、I、J,这样D产生可改变的度量输出,从ADHB得到0.821,同样对于ADIB 和ADJB。由规则三产生Vcom(A,B)=0.998。这说明一个非正常操作的节点能使输出接近它选择的值,并完全影响结果。 图一 图二由此导出:规则五:度量应被设计成有弹性的以便控制被非正常操作的实体,它对不同形式非正常操作的灵敏度影响应该是清楚的;133 度量的实际成效规则六:度量的可用性不应该依赖于隐藏从用户那里得来的和认证相关的决定;规则七:度量应该能被有效计算;规则八:度量对部分信息的输出应该是有意义的。14 更好的度量为满足上述规则,提出一个度量,它基于名字-钥匙关联保险的概念,希望它能适合很多商业应用。该模型仍是一个有向图,象Zimmermann和Reiter-Stubblebine度量那样,图的节点是公钥。边K1K2在模型中存在,如果用户拥有证书对K2赋以属性且其签名可用K1验证。每一边用在证书中包括的属性值标记。每边K1K2也有数值标记代表K1的所有者为K2的属性和行为保险的金额。即若在证书中与K2关联的属性错误,或与K2对应的私钥被用来误导用户,K1的所有者将对用户负责所付的金额。特别的,如果与K2对应的私钥被损害并被有敌意的使用,K1的所有者将负责规定的金额。实际上,若基于K1验证的证书发生对K2的错误认证,或K2出现错误行为,K1的所有者将会为用户负赔偿损失的负责。边K1K2的保险标记必须从K1的所有者处以可靠的方式得到,因此很自然该值将被存储在边K1K2代表的证书中,注意到没有要求用户确定K1的真正所有者,这与定律1一致,确定了K1没被破坏。实际上,K1可能被破坏并被用来伪造K1K2的证书,包括它的所有属性和它包括的保险数额。但在这种情况下,不管谁为K1保证都将负责,这可沿任一条路回溯,即从任一个可信任的源钥匙到目标钥匙的路,若K1K2是该路上第一个有责任的边,即:第一条边其上的属性值不正确,证明钥匙K2非正常操作,则K1的所有者将负责任。在实际中,确定哪条边是路上第一条责任边的规则需被建立,假定这样的确定可被产生。获得错误的针对目标钥匙的名字钥匙关联暗示每一条从源钥匙到目标钥匙的路必须有一个初始责任边,一旦这些边被标识,产生这些边的钥匙所有者将要为它产生的每个有责任的边的保险金额负责,一个自然谨慎的度量是目标钥匙的名字钥匙关联的最小保险额,即以所有可能的方式选择从可信任的源钥匙到到目标钥匙的有责任边的交织中,用户期望赔偿的最小金额是多少?使用图论中的工具可以精确得到这一数值。令Ks表示可信的源钥匙,Kt表示目标钥匙,对每一边KK,令边的容量为c(K,K),它代表该边的保险金额,对不存在的边KK,令c(K,K)=0。一个Ks,Kt-cut代表将图的节点分成两个部分A,B使得KsA且KtB,Ks,Kt-cut(A,B)的容量表示为c(A,B),它只是从A到B的边的总容量即c(A,B)=KA,KB c(K,K),则Ks,Kt-cut的最小容量是所有Ks,Kt-cuts的最小容量的分割。总之,该度量用有向图表示,可信任的源钥匙Ks和目标钥匙Kt作为输入,返回名字钥匙关联的保险数值,这通过计算Ks,Kt-cut的最小容量实现。以上是对认证度量的一些简单介绍。二分布式目标系统的认证体制分布式目标系统的保护问题非常重要。这里提出一个新的认证体制,它基于一个中央认证服务器和位于系统各个站点的安全内核的合作;描述了一个新的信息流动权限管理途径,它基于新的信息流动权限和特权授权体制。这种认证体制适用于不同的安全保险级,包括诸如Bell-LaPadula的多级保险。介绍了针对分布式对象系统Bell-LaPadula模型的扩充,并描述了安全体制的实现。21简介211分布式系统的保护 多数保护模型基于主体和客体:主体是系统中的主动实体,而客体是被动实体,即数据容器。主体和客体之间的交互用监督程序控制,它可以检查访问被批准还是拒绝。分布式系统的保护很困难,因为在这种系统中没有全局状态,保护分布式系统中的每个站点不等于保护整个系统。保护分布式系统直接涉及到信任,即什么实体在系统中该被信任,根据这种信任,怎样才能保护整个系统。下面提出两个通常的保护分布式系统的途径并说明其优缺点。集中式保护: 该途径基于集中式监督程序,它检查所有从主体到客体的信息流动。它倾向于只相信一个站点,每个从主体到客体的访问都被它控制,它可以批准或拒绝访问。这种体制的成功实现可从Newcastle Connection的安全文件服务看到,在这个设计里,每一个用户可从他的终端通过安全文件管理器访问他的文件,该管理器检查并管理所有文件访问权限。 红皮书途径在这种途径下,系统中每个站点有一个置信计算库(TCB:trusted computing base),并能根据NCSC橙皮书(orange book)标准求值,每个TCB不仅检查所有本地访问而且检查所有从远程到本地和本地到远程间的访问。此外,在这种途径下,每个TCB相信系统中所有其它TCBs,这种TCBs被称为NTCB(network trusted computing base)。虽然红皮书(red book)途径没有瓶颈现象,但安全保险前后一致的保持比集中式途径更困难,因为每个TCB必须知道系统中的所有主体(本地或远程)和它们访问本地客体的权限,这样才能实现访问控制。若系统中TCBs中的任何一个泄密,整个系统的安全会被损害,因为每个TCB相信所有其它的TCBs。下面提出一个安全保护设计来改进上述两种途径中的缺点。21 2最小特权律最小特权律在大多数系统中并没被遵守,如:Unix进程总是以它的用户的所有特权来运行,但大多数情况下,他并不需要所有这些特权。而且,依靠SUID位,用户可模仿另外的用户来进行特别操作。如:用户改变它的密码时拥有所有的根特权,但他只需要更新/etc/passwd中的数据。通常在大多数分布式系统中(如Kerberos、SESAME)授予特权并不严格实行最小特权律。在这些途径里,当一个主体S向另一个主体S授权时,S进行的操作根据S的身份进行检查。这意味着S不得不拥有相应的权限虽然它并不使用它们。 为严格执行最小特权律,一个主体必须能够传送它不拥有的特权,这样,访问控制必须根据实现访问的主体的身份而不是根据传送特权的客体的身份进行。这里提出的认证体制使用新的授权体制来严格实现最小特权律。213 面向对象系统的保护 新的认证体制适应于面向对象的编程范例。在该范例中使用的对象,是由它的私有状态信息和一系列描写对象接口的操作构成。每个对象的状态由一系列变量描述。对对象的操作被称为方法,它是唯一修改对象状态和得到状态信息的手段。对方法的调用导致相应操作的进行。这里对象的意义包括了主动和被动实体(主体和客体)。所有对对象的访问依赖于驱动信息流的消息。 下面只考虑系统中一个对象对另一个对象的访问权限。分布式对象系统中包括很多不同种类的对象,一些是持久的对象,其它是为完成系统中的部分操作的临时对象。这里把对两种对象的保护分别考虑。系统中执行的大部分操作是高级操作,即操作的实现包括不同站点对象间的合作。如:向用户发邮件包括邮件传输代理、邮件交付代理、文件服务器和命令解释程序。新的认证体制可以处理高级操作。 对象管理组织(OMG)提出了分布式对象系统的总体安全框架。这里提出的方案可被看成CORBA建议的一个特别实现。下面将描述系统的结构,即实体间如何协作来完成对整个系统的保护。并给出基于新的访问控制管理认证协议的理论,最后介绍实现的高级安全模型。22两级别的保护 对持久对象以集中式认证服务器方式实现,它能管理系统中高级操作的访问权限;第二级保护对系统中每个站点实现:安全内核负责检查对所有本地对象的访问和管理本地所有临时对象的访问权限。221 认证服务器 认证服务器负责管理系统中所有持久对象的访问权限,它决定对系统中每个持久对象的访问是否被批准或拒绝。为得到决定,认证服务器存储了一个访问矩阵(里面定义了访问持久对象的权限)并管理一些规则,这些规则允许建立和交付权能到被批准访问持久对象的对象。 为使认证服务器容错和抵抗入侵,可应用不同技术如:Fragmentation-Redundancy-Scattering technique等。为达到这一点,认证服务器必须由几个安全站点构成,并且只有其中的大部分被相信。这意味着面对少数安全站点的故障或遭入侵,整个系统的安全不会损害。所有非机密数据被复制到不同的安全站点,机密数据则分片散放在不同的安全站点上,所有安全站点执行多数投票的方法来决定认证服务器的每个决定。这样,前节集中式管理中单点失败的弱点得到了解决。 认证服务器 图三 认证服务器和安全内核222安全内核系统中的每个站点都有一个安全内核,它有两个作用:(1) 检查所有对本地对象的访问,不管是持久或临时的;(2) 自动管理本地临时对象的所有访问权限。安全内核通过检查是否每个请求携带了授权访问的权能来控制所有对本地对象的访问,该权能可能被认证服务器交付,如果访问是针对持久物体,或被安全内核本身交付,如果访问是针对本地临时物体。安全内核总能实施强制访问控制规则。每个安全内核必须拥有监督程序的通常性质,它必须防止篡改,必须总能被调用,必须足够小来分析和测试。这样对每个安全内核信任到一定程度:控制任何一个安全内核是困难的,但即使入侵者成功控制一个安全内核,整个系统的安全也不会被损害。事实上,这意味着攻击者能够控制对本地对象的所有访问但不准许访问远程对象,或模仿远程对象。每个安全内核或每个站点并不信任系统中的其它安全内核,它只相信认证服务器。这意味着红皮书中的弱点在这种途径下被克服。223总结由于认证服务器和不同安全内核的结合,可以保护整个网络资源而不必担心单点失败(对认证服务器应用容错技术消除这个弱点)也不象红皮书中所说过度信任每一个站点。 下文介绍新的访问控制管理途径,使它既有效又有适应性。23访问权限管理 对临时对象的访问权限管理非常简单:每个安全内核负责产生每个临时对象方法的权能,并递交这些权能到被批准调用这些方法的对象,当这些方法被调用时检查这些权能即可。 对认证服务器级的访问权限管理:其目标是定义访问权限管理的途径来允许以半自动化的方式为高级操作建立并传送特权。该途径的关键是简单适用性。该模型基于符号权限和凭证的想法。231方法权限和符号权限一个对象会独立的调用另一个对象的方法,只不过要执行一些它需要的准确操作,这种访问对应一种基本的操作。另一方面,一些调用被某个对象执行是因为它被包括在系统中高级操作的实现中。例如:从用户U到用户U发邮件是高级操作,它包括对许多对象的操作如邮件传输代理、邮件交付代理、用户U的邮箱等。当区别这两种操作时,也要区别关联到这些操作的两种访问权限,即方法权限和符号权限。方法权限是调用某个物体的某个方法的权限。符号权限是用来批准实现高级操作的高级权限(如在系统中任何打印机上打印文件f是符号权限)。总之,为批准一个高级操作的实现需要一些符号权限。方法权限和符号权限存放在访问矩阵中。在该矩阵里,行和列代表用户,角色,类或对象。角色代表一系列用户具有的同样职责,一个角色是一个用户属性,单个用户针对不同职责可有不同角色。角色用作矩阵项而不是用户标识来减少访问矩阵的大小并简化管理。实际上,访问某个对象或类的权限常为一组用户而不是单个用户定义。角色是收集管理用户的灵活方式。同样类的意义是帮助定义访问一系列对象(所有类的实例)的权限使得访问矩阵管理简单。实体e拥有对另一个实体e的访问权限可在行e和列e交叉处找到。方法权限和符号权限以两种不同方式描述。实体e拥有对另一个实体e的方法权限以e的相应方法列表描述,如:若M e,e=(f,g),则e有权力调用e的方法f,g但不允许调用e的其它方法。232符号权限规则符号权限规则描述了访问矩阵中必须有的符号权限集来批准高级操作的实现,这里只给出这种规则的简单例证: C1,C2,C3 A(recorderscene)(e,rec,cam,tape)这里:C1=RSe,rec(rec,cam,tape), C2=RSe,cam(rec,cam,tape), C3=RSe,tape(rec,cam,tape)。A(recorderscene)(e,rec,cam,tape)代表批准实体e实现下面高级操作:从电影摄影机cam用磁带记录器rec在录像磁带tap上记录一段场景。实体e被批准实现这个操作当且仅当在访问矩阵中能找到下列e的符号权限: -用磁带记录器rec为一系列包括cam的电影摄像机和一系列包括tape(RSe,rec(rec,cam,tape))的磁带记录场景的权限;-从电影摄像机cam为一系列包括rec的磁带记录器和一系列包括tape(RSe,cam(rec,cam,tape))的磁带记录场景的权限;-在磁带tape上为一系列包括rec的磁带记录器和一系列包括cam(RSe,tape(rec,cam,tape))的电影摄像机记录场景的权限。在访问矩阵里用户U的符号权限例子如下: rec cam tape U A B C Staff A B C 这里: A= RS(this,cam,tape),B= RS (rec,this,tape),C= RS (rec,cam,this),this表示对应列放置权限的实体。用户U也可被批准实现高级操作,如果Staff是U的一个角色。233权能产生规则 当某个对象被批准实现某些特定操作(要么访问某个对象的方法要么执行包括若干对象的操作)时,它必须至少拥有一个权能,权能产生规则阐明了怎样建立这样的权能。一个对象掌握的权能,最低限度是它的权力引用和列表。我们必须保证权能不被伪造,不被回放,只能用于权能产生的目的对象。凭证 权能包含可直接授予接受权能对象的访问权限,也包含称为凭证的非直接访问权限。凭证是批准某个对象将要获得的访问权限,接受凭证的对象u把凭证传送给其上含有对象标识u的对象。u收到凭证后可用它自己的标识执行相应操作。可见,凭证与代理很相似,代理是对象O给与对象O的访问权限,使得O能代表O执行任务(Kerberos V5,SESAME和CORBA)。代理可以很好的实现最小特权律。但为产生代理,发出授权的对象必须总拥有它希望赋予被授权对象的访问权力,在凭证里这是不必要的。凭证可比代理更好的实现最小特权律。而且,接受凭证的对象用它自己的标识执行操作而不是用发出授权对象的标识,这和代理不同。在新的访问控制协议里,凭证包括简单的权能,也包括执行高级操作的权能。它不会被伪造或回放。 权能产生规则的定义 基本操作的权能产生规则如下: Cap(O,O.method(x1,xn)):=ref_O,refO.method,nonce,refx1, ,refxn nonce意思是只用一次,以防止伪造和回放攻击。O代表被批准访问O的方法的对象,x1,xn是参数。 高级操作的权能产生规则如下: Cap(O,op(arg1,argn):=list_of_capabilities,list_of_vouchers 凭证或者是其它对象O的权能,或者是O执行高级操作的权利。值得注意的是:系统中每个操作都由对象实现,对象或用户都可为实现高级操作提出认证。在用户情况下,认证可通过是因为用户本人或他的角色之一有相应权限。在对象情况下,认证被批准是由于对象本身或它的父类有相应的权限。但在每一种情况下,操作都是在对象的意义上进行,因此每个权能是为对象产生。当用户U被批准实现高级操作时,它通过接口对象操作(如Shell),该接口对象首先接受权能并开始执行任务。234结论 新的访问权限管理和授权协议有下列优点: 符号权限和权能产生权限比只支持方法权限的全局访问矩阵更容易管理,权能产生规则是一般规律,当任一个高级操作开始时它都能被使用。每一权能产生规则只能声明一次并当相应高级操作执行时做出示例。对管理员来说,管理这些符号权限和权能产生规则是很容易的。而且,只要针对特别操作的权能产生规则正确产生,针对这种操作的权能总会被正确交付。 授权协议严格贯彻了最小特权律。举例来说:当对象O执行操作时,其访问控制根据O的标识实现,虽然O代表另一个对象O执行。24 分布式对象系统的多级安全模型241模型意图对于多级安全,Bell-LaPadula模型是参考模型。但其主要缺点是*-property的严格限制。如:用户以SECRET登录,并读了CONFIDENTIAL文件,并拷贝了这份文件。*-property要求用户用至少是安全的分类产生拷贝,但显然拷贝中包含的信息分类和原始文件的信息分类一样,这样,*-property要求用户产生和它的内容分类不对应的文件标记。该例强调了以下问题:系统中的信息分类将单调递增,这个增加导致在可访问性方面的信息降低。这样的系统需要可信对象的干预来定时性的解密信息。可信对象是被相信不会损害安全的对象。它们在系统中的操作不服从访问控制规律,可以解密信息,这根据模型里的访问控制律是不合法的。总之,该模型主要问题是它不允许做的事,很多事实上是安全的操作在这个模型里不允许。这里提出的新模型象Bell-LaPadula那样防止了系统中的不合法的信息流,但约束更少,一些在Bell-LaPadula模型里不允许的合法信息流在新模型里被允许。新模型适于面向对象的编程范例。242安全实体新模型的重要特征之一是区别两种对象集:无状态对象和有状态对象,任何对象都可存放数据,但这些数据可被分成两个范畴:系统数据和应用数据。应用数据是从应用角度构成对象状态的数据,即数据被程序员在对象源代码中说明。系统数据被系统增加到对象中来控制对象的执行(例如进程栈)。无状态对象是不存储应用数据的对象,它的状态在每次调用时被初始化,在两个连续请求访问某个无状态对象的条件下没有信息流动。无状态对象的意义和橙皮书中对象重用的意义类似。相反的,有状态对象存储应用数据和读写这些数据的方法。无状态对象的例子在传统的Unix系统中可以找到很多,例如NFS服务器就是无状态对象。此对象在内存中不保存任何它收到的请求,它的状态在每次调用时初始化。所有的对象管理器总的说来是无状态对象(如浏览器)。多级安全策略的目标是防止用户得到他们不清楚访问的信息。假定用户在系统中实现的每个任务是依靠行为,可通过防止行为间的非法信息流来防止用户间的非法信息流,这样必须确认高安全等级的行为不能向比它安全等级低的行为传送信息,但两个行为间可通过访问同一对象来交换信息,一个行为写对象而另一个行为读对象。这样在系统中必须控制所有行为和对象间的交互并控制访问对象的每个请求。为实现这些访问控制,必须对模型中实体赋以不同的安全等级,可根据对用户的许可赋以相应的安全等级。由于对象是系统的信息容器,必须根据它们的分类(无状态对象或有状态对象)赋以相应的安全等级,为控制行为和对象间的交互,必须根据不同需要指定安全等级。243 不同的标记下面定义一个有限的关于偏序二进关系“”的安全等级集合,每个安全等级由一个分类和一系列的范畴构成,安全等级如下次序:信息的安全等级l(由分类c和范畴C构成)被另一个信息的安全等级l(由分类c和范畴C构成)支配:l l当切仅当cc且CC。下文中谈及“安全等级”时经常使用“分类”或“许可”。用户: 标记经常和系统中每个用户建立联系,该标记代表了用户的许可。对象:以不同的方式标记无状态对象和状态对象。标记LO和每个有状态对象O联系,标记是对象的分类。它代表了构成数据状态的数据分类,分类是固定的,在对象生命期内不会改变。两个标记Llowo和Lhigho被关联到每个无状态对象O(LlowoLhigho)Llowo,Lhigho是置信度区间,它定义了针对该对象的信任。无状态对象不存储任何应用数据,这样不能像有状态对象那样被指定一个分类,但每个无状态对象能像有状态对象那样被行为访问。每个行为携带一个特定安全级的信息,每个无状态对象这样可潜在的访问这些信息。我们赋以无状态对象的标记代表了应赋予该对象的信任。高标记代表可被该对象读取的最高等级的数据,低标记代表了可被该对象写的最低级别的数据。假定:无状态对象实际上是一个特洛伊木马,它保持了对它访问所有请求所携带所有数据的本地拷贝,对该对象的低标记保证拷贝不会产生低于该标记的标记。这意味着将来恶意行为需要和该低标记相等或稍大的许可来读取数据。相反,特洛伊木马不会读取并存储比Lhigho更高的数据。假定一个系统管理员决定使用新的来自匿名Ftp服务器的免费软件NFS服务程序,然后他估计对该NFS服务程序(假定为无状态对象)的信任程度,这样指定了代表该信任的置信度区间。要求:对每个行为a赋以两个标记:分别是Llowa和Lhigha,它们可随被该行为访问的对象类型和标记浮动,低标记代表被该行为携带的信息分类,即被该行为读过的最高级别的信息。高标记代表了实体的许可,它被启动该行为的用户初始化。这样两标记可写成:分类,许可,行为携带的信息被它访问对象间的不同请求携带。为了在模型中生成访问控制,必须标记这些请求,对每个请求r赋以一个固定的双标记,即Llowr和Lhighr。假定行为由n个请求(r1,r2,rn)构成。第一个请求r1访问一个对象是为了执行它的一个方法,该执行导致一个新消息的发出,即r2请求。r2的双标记依赖于的r1的双标记和r1访问对象的类型和标记。这样,不同请求的双标记根据行为访问的不同对象会有所不同。实体Llowa,Lhigha(浮动标记)的标记依次为:Llowr1,Lhighr1 Llowrn,Lhighrn。系统中用户的标记被认证服务器维护,而对象的标记附加在对象上,请求消息携带行为的双标记,当对应行为访问局部对象时可被安全内核检查。244访问规则认证协议基于刚提出的不同标记的强制性访问规则构成,这些规则不能被绕过。故必须精确理解术语读访问和写访问的意义。称对一个有状态对象O的读访问为任何O的方法的执行引起从O的内部状态到执行该方法的行为的信息流。相应的,称写访问为任何O的方法的执行,它引起从执行该方法的行为到O的内部状态的信息流。称读写访问任何O的一个方法的执行为激起执行该方法的实体和O的状态之间的信息交换。对无状态对象的访问: 若请求r被批准访问无状态对象O(通过调用它的任何方法)则,Llowo,Lhigho和Llowr,Lhighr的交集不为空。相反的,请求r未被批准访问无状态对象O,如果该对象的最大信任度没有支配该请求的分类,或由于请求的许可没有该对象的最小确信度高。对有状态对象的访问: 至于有状态对象,安全策略有以下规则实施:简单安全状况:若请求r被批准读一个有状态对象O,则LoLhighr。*-状态:如果请求r被批准写一个有状态对象O,则LlowrLo。为实施这些规则,每一个有状态对象的方法被指定一个属性来指示哪种访问被该方法实现:读、写或读-写。245 标记的演变这里考虑行为a的当前请求r,它访问对象O。若O是无状态对象: -若LlowoLhighr或LlowrLhigho:访问被拒绝。-(R1) -若LlowoLhighr并且Llowr Lhigho:访问被有限制的允许,Llowa,Lhigha变为 Max(Llowa,Llowo),Min(Lhigha,Lhigho)。-(R2) 该限制意味着行为a的下个请求会被标记为Llowr,Lhigh r=Max(Llowr,Llowo),Min(Lhighr,Lhigho)。注意特别情形:若Llowa,LhighaLlowo,Lhigho,则访问可被无限制的批准:因为Max(Llowa,Llowo)=Llowa并且Min(Lhigha,Lhigho)=Lhigha。规则R1保证请求不会访问对象除非请求的双标记和对象确信度空间的交集不为空。规则R2描述行为通过请求r访问对象O的双标记进化,当前行为携带的信息分类根据赋以对象的最小确信度改变。行为的许可根据被赋以该对象的最高确信度改变。若O是一个有状态对象: -若M是一个读方法并且若L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业旅游学课件
- 农业报表化肥培训课件
- 化工企业环保培训课件
- 别踩黑块课件
- 品质营销推广规划方案(3篇)
- 先秦朱子论语课件
- 先秦两汉文学课件
- 内科慢阻肺讲解课件
- 内科循环系统课件
- 3口耳目手足 公开课一等奖创新教学设计
- 2025年四川基层法律服务工作者执业核准考试仿真试题及答案一
- 信息技术基础教程(WPS版)课件 第3章 Windows 10 操作系统的使用
- 小鹿斑比题目及答案
- 中学知识竞赛试题及答案
- 2025-2030中国建筑行业供应链金融发展现状与前景分析
- 2025-2026学年人教版(2024)初中物理八年级上册教学计划及进度表
- 医院环境感染监测制度
- 医院一键式报警系统建设与实施
- 精选急腹症影像学表现资料课件
- 角膜 角膜炎课件
- 《卫生政策学》第三章 政策问题确认
评论
0/150
提交评论