您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 系统的安全性和保密性设计
系统的访问控制技术8.2访问控制技术ISO所定义的5大安全服务功能是:认证、访问控制、数据保密性、数据完整性和防止否认服务。其中访问控制服务在系统安全体系结构中起着不可替代的作用。访问控制是通过某种途径显式地准许或限制访问能力及范围的一种方法。它是针对越权使用资源的防御措施,通过限制对关键资源的访问,防止非法用户的侵入或因为合法用户的不慎操作而造成的破坏.从而保证系统资源受控地、合法地被使用。用户只能在自己的权限内访问系统资源,不得越权访问。访问控制技术通常和身份认证密切联系,但并不能取代身份认证,它是建立在身份认证的基础之上的,通俗地说,身份认证解决的是‘你是谁,你是否真的具有你所声称的身份”,而访问控制技术解决的是‘你能做什么,你有什么样的权限”这个问题。访问控制系统一般包括主体(subject)、客体(object)及安全访问政策几个实体。访问控制的目的是:限制主体对访问客体的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么。8.2.1访问控制的实现方法访问控制的常见实现方法有访问控制矩阵、访问能力表、访问控制表和授权关系表等几种。1.访问控制矩阵从数学角度看,访问控制可以表示为一个矩阵的形式,其中行表示客体(各种资源),列表示主体(通常为用户),行和列的交叉点表示某个主体对某个客体的访问权限(如读、写、执行、修改、删除等)。2.访问能力表访问控制矩阵虽然直观,但并非每个主体和客体之间都存在着权限关系,相反,实际的系统中虽然可能有很多的主体和客体,但主体和客体之间的权限关系可能并不多,这样就存在着很多空白项。为了减轻系统的开销与浪费,我们从主体(行)出发,用访问能力表达矩阵某一行的信息;也可以从客体(列)出发,用访问控制表(AccessControlList)表达矩阵某一列的信息。能力(capacity)是受一定机制保护的客体标志,标记了客体以及主体(访问者)对客体的访问权限。只有当一个主体对某个客体拥有访问的能力时,它才能访问这个客体。在访问能力表中,由于它着眼于某一主体的访问权限,并以主体为出发点描述控制信息,所以很容易获得一个主体所被授权可以访问的客体及其权限,但如果要求获得对某一特定客体有特定权限的所有主体就比较困难。在一个安全系统中,正是客体本身需要得到可靠的保护,访问控制服务应该能够控制可访问某一客体的主体集合,并能够授予或取消主体的访问权限,于是出现了以客体为出发点的实现方式―ACL(访问控制表),现代的操作系统大都采用基于ACL的方法。3.访问控制表访问控制表是目前采用最多的一种实现方式。它可以对某一特定资源指定任意一个用户的访问权限,还可以将有相同权限的用户分组,并授予组的访问权,ACL的优点在于它的表述直观、易于理解,而目比较容易查出对某一特定资源拥有访问权限的所有用户,以便有效实施授权管理。在一些实际应用中还对ACL进行了扩展,从而进一步控制用户的合法访问时间,是否需要审计等。尽管ACL灵活方便,但将它应用到网络规模较大、需求复杂的企业内部网络时,就暴露出了一些问题:1.ACL需对每个资源指定可以访问的用户或组以及相应的权限。当网络中资源很多时,需要在ACL设定大量的表项。而且,当用户的职位、职责发生变化时,为反映这些变化,管理员需要修改用户对所有资源的访问权限。另外,在许多组织中,服务器一般是彼此独立的,各自设置自己的ACL,为了实现整个组织范围内的一致的控制政策,需要各管理部门的密切合作。所有这些,都会使得访问控制的授权管理变得费力而繁琐,且容易出错。2.单纯使用ACL,不易实现最小权限原则及复杂的安全政策。4.授权关系表授权关系表弥补了基于ACL和基于访问能力表的方法的不足,它的每一行(或称一个元组)都表示主体和客体的一个权限关系。如果该表按客体进行排序就拥有访问能力表的优势,如果按主体进行排序就拥有了访问控制表的好处。这种实现方式也特别适合采用关系数据库。8.2.2访问控制策略自主访问控制、强制访问控制和基于角色的访问控制是系统中常用的3种访问控制策略,其中前两种(DAC和MAC)属于传统的访问控制策略。以上每种策略不是绝对互斥的,我们可以把几种策略综合起来应用,以获得更好、更安全的系统保护效果。当使用多重策略的时候,只有各种策略的交集策略被允许,访问才被许可。当然,在某些场合下,也可能存在着一些冲突,比如被某一策略许可的访问被另一策略所禁止,这样就产生了冲突,这种情况需要在管理层通过协商来协调。1.自主访问控制自主访问控制(DAC)是目前计算机系统中使用最多的访问控制机制,它是在确认主体身份以及(或)它们所属组的基础上对访问进行限制的一种方法,称其为自主型是因为在DAC系统中,一个拥有一定访问权限的主体可以直接或间接地将权限传给其他主体。其基本思想是:允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。Windows、UNIX系统都采用了自主型的访问控制技术。自主访问控制根据访问者的身份和授权来决定访问模式,主体访问者对访问的控制有一定的权利。但正是这种权利使得信息在移动过程中的访问权限关系会被改变。如用户A可以将其对客体目标O的访问权限传递给用户B,从而使不具备对0访问权限的B也可以访问O,这样就很容易产生安全漏洞,所以自主访问控制的安全级别很低。2.强制访问控制强制访问控制是“强加”给访问主体的,即系统强制主体服从访问控制政策。MAC主要用于多层次安全级别的军事应用当中,它预先将主体和客体分级,即定义用户的可信任级别及信息的重要程度(安全级别,比如可以分成绝密级、机密级、秘密级、无密级等),然后根据主体和客体的级别标记来决定访问模式,用户的访问必须遵守安全政策划分的安全级别以及有关访问权限的设定。当用户提出访问请求时,系统对主客体两者进行比较以确定访问是否合法。在典型应用中,MAC的访问控制关系可以分为两种:用上读/下写来保证数据完整性以及利用下读/上写来保证数据的保密性。它们都是通过梯度安全标签来实现信息的单向流通的。强制访问控制(MAC)的优势最主要在于它能阻止“特洛伊木马”。一个“特洛伊木马”是在一个执行某些合法功能的程序中隐藏的代码,它利用运行此程序的主体权限违反安全策略,通过伪装成有用的程序在进程中泄漏信息。一个“特洛伊木马”能够以直接与非直接泄漏两种方式泄漏信息。对于前者,“特洛伊木马”使信息的安全表示不正确并泄漏给非授权用户;对于后者,“特洛伊木马”通过编制返回给一个主体的合法信息中的方式非直接泄露信息,例如,可能表面上某些提问需要回答,而实际上用户回答的内容被传送给了“特洛伊木马”。阻止“特洛伊木马”的策略是基于非循环信息流,所以在一个级别上读信息的主体一定不能在另一个违反非循环规则的安全级别上写。同样,在一个安全级别上写信息的主体一定不能在另一个违反非循环规则的安全级别上读。由于MAC策略是通过梯度安全标签实现信息的单向流通,因而它可以很好地阻止“特洛伊木马”的泄密。强制访问控制(MAC)的主要缺陷在于实现工作量太大、管理不便、不够灵活,而且MAC由于过于偏重保密性,对其他方面如系统连续工作能力、授权的可管理性等考虑不足。3.基于角色的访问控制20世纪如年代出现的一种基于角色的访问控制(RBAC)技术有效地克服了传统访问控制技术的不足,可以减少授权管理的复杂性,降低管理开销,而且还能为管理者提供一个比较好的安全实现政策的环境,从而成为了实施面向企业的安全策略的一种有效的访问控制方式。角色是一个或一群用户在组织内可执行的操作组合。用户在一定的部门中具有一定的角色,其所执行的操作与其所扮演的角色的职能相匹配,这正是基于角色的访问控制的基本特征、即依据RBAC策略,系统定义了各种角色,每种角色可以完成一定的职能,不同的用户根据其职能被赋予相应的角色,一旦某个用户成为某个角色的成员,则此用户可以完成该角色所具有的职能。RBAC根据用户在组织内所处的角色进行授权与访问控制。也就是说,传统的访问控制直接将访问主体(发出访问操作、存取要求的主动方)和客体(被调用的程序或欲存取的数据访问)相联系,而RBAC在中间加入了角色,通过角色沟通主体与客体。在RBAC中,用户标识对于身份认证以及审计记录是十分有用的,但真正决定访问权限的是用户对应的角色标识。由于用户与客体无直接联系,他只有通过角色才能享有该角色所对应的权限,从而访问相应的客体,因此用户不能自主地将访问权限授予别的用户,这是RBAC与DAC的根本区别。RBAC与MAC的区别在于:MAC是基于多级安全需求的,而RBAC则不是,因为军用系统主要关心的是防止信息从高安全级流向低安全级,即限制“谁可以读/写什么信息”,而RBAC的系统主要关心的是保护信息的完整性,即“谁可以对什么信息执行何种动作”.角色控制比较灵活,根据配制可以使某些角色接近DAC,而某些角色更接近于MAC。角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色,而且授权规定是强加给用户的,用户只能被动接受,不能自主地决定,用户也不能自主地将访问权限转而赋予他人,这是一种非自主型访问控制。最后要指出的是角色和组的区别。组通常仅仅作为用户的集合,而角色一方面是用户的集合,另一方面又是权限的集合,作为中间媒介将用户和权限连接起来。当然角色可以在组的基础上实现,这样就对保持原有系统非常有利。此时角色就成为了一个策略部件,与组织的授权、责任关系相联系,而组成为实现角色的工具,两者间是策略与实现机制的关系。数据的完整性8.4数据完整性数据完整性要求禁止未经授权的数据篡改,它同数据机密性紧密相连,也是更进一步的信息安全目标。保护数据完整性的方法有很多:可以通过访问控制的方法阻止数据未经授权的篡改;可以通过时间戳来判断数据最后一次修改的时间;可以通过数据校验或消息摘要的方法来判断数据是否已经被篡改。Biba修改了Bell-Lapadula模型,针对数据完整性建立了Biba数据完整性模型。本节首先简要介绍Biba模型,然后详细介绍报文摘要算法。8.4.1Biba完整性模型Biba模型规定:(l)如果主体的安全级别高于或等于客体的安全级别,那么主体可以对该客体写访问。(2)如果一个主体仅可以读访问一个客体。则对于另外一个客体p来说,如果p的安全级别低于或等于o的级别,那么该主体对于p可以有写访问的权限。Biha模型可以概括为:(l)读访问策略同Bell-Lapadula模型一样:(2)主体不能够更改安全级别比它高的客体。这也就保证高级别客体的完整性。Biba模型同Bell-Lapadula模型一样,虽然都可以从理论上证明其安全性,但在实际应用中很难完全满足模型的要求,所以Biba模型也仅是一个理论上的模型。8.4.2杂凑函数与消息摘要所谓杂凑函数H是一个公开的函数,杂凑函数可以将任意长的消息M映射为较短的、固定长度的一个值H(M),我们称H(M)为杂凑码或消息摘要。因为杂凑码是消息中所有比特的函数,所以杂凑函数可以提供错误检测的能力,改变消息中任何一个比特或几个比特都会使杂凑码发生改变。这种错误检测方法可以判断数据是否被篡改,从而保护数据的完整性。使用杂凑函数提供消息认证有5种基本方法:(l)消息与杂凑码链接后使用对称加密算法加密,所用密钥仅为收发双方共享。这种方法可以确保接收的消息来源于消息发送方,且没有被篡改,同时这种方法还能够提供数据机密性保障。(2)用对称加密算法仅对杂凑码加密。这种方法同(l)类似,有更快的速度但不提供数据机密性保障。(3)采用非对称加密算法,使用发送方的私钥对杂凑码进行加密。由于只有发送方能够产生这样的消息,所以这种方法可以提供数字签名功能。(4)消息发送方同时使用对称加密和非对称加密两种算法,在(3)的基础上使用对称密钥加密消息和使用私钥变换过的杂凑码。这种方法同时提供数字签名和数据加密的功能。(5)消息收发双方共享-特定秘密S,消息发送方将消息M和秘密S链接在一起并产生杂凑值,发送消息时仅发送M和杂凑值。由于
本文标题:系统的安全性和保密性设计
链接地址:https://www.777doc.com/doc-5006408 .html