精华内容
下载资源
问答
  • 第一章 访问控制的概念  访问控制分类  网络访问控制 ... 自主访问控制DAC) 第三章 访问控制模型  BELL-LAPADULA保密性模型  LATTICE安全模型  BIBA完整性模型  CLARK WILSON完整

    第一章 访问控制的概念

     访问控制分类

     网络访问控制

     主机/操作系统访问控制

     应用程序访问控制

     加密方式在访问控制系统中的应用

    第二章 强制访问控制与自主访问控制

     强制访问控制(MAC)

     自主访问控制(DAC)

    第三章 访问控制模型

     BELL-LAPADULA保密性模型

     LATTICE安全模型

     BIBA完整性模型

     CLARK WILSON完整性模型

     CHINESE WALL模型


    第一讲 访问控制概念


    绪论

      访问控制,作为提供信息安全保障的主要手段,及最为突出的安全机制, 被广泛地应用于防火墙、文件访问、VPN及物理安全等多个方面。 所有这些技术可归诸于几类访问控制模型,本文将一一介绍并以实例说明,以帮助设计者在多变的环境中解决相关安全问题。

    第一章 访问控制的概念

      访问控制是信息安全保障机制的核心内容,它是实现数据保密性和完整性机制的主要手段。访问控制是为了限制访问主体(或称为发起者,是一个主动的实体;如用户、进程、服务等),对访问客体(需要保护的资源)的访问权限,从而使计算机系统在合法范围内使用;访问控制机制决定用户及代表一定用户利益的程序能做什么,及做到什么程度。

    访问控制的两个重要过程:
    1、通过"鉴别(authentication)"来检验主体的合法身份
    2、通过"授权(authorization)"来限制用户对资源的访问级别

    访问包括读取数据,更改数据,运行程序,发起连接等。

    访问控制分类

    因实现的基本理念不同,访问控制可分为以下两种:

    • 强制访问控制(Mandatory access control)
    • 自主访问控制(Discretionary access control)
      (关于强制访问控制与自主访问控制,本文将在第二章作详细介绍。)

      例如,当一个用户通过身份认证机制登陆到某一WINDOWS系统时,WINDOWS文件访问控制机制将检查系统中哪些文件该用户可以访问。

      访问控制所要控制的行为有以下几类:读取数据、运行可执行文件、发起网络连接等等。

    访问控制应用类型

    根据应用环境的不同,访问控制主要有以下三种:

    • 网络访问控制
    • 主机、操作系统访问控制
    • 应用程序访问控制

    网络访问控制


    图1-1                   

      访问控制机制应用在网络安全环境中,主要是限制用户可以建立什么样的连接以及通过网络传输什么样的数据,这就是传统的网络防火墙。防火墙作为网络边界阻塞点来过滤网络会话和数据传输。根据防火墙的性能和功能,这种控制可以达到不同的级别。

     防火墙可实现以下几类访问控制:

      1) 连接控制,控制哪些应用程序终结点之间可建立连接。例如,防火墙可控制内部的某些用户可以发起对外部WEB站点间的的连接。

      2) 协议控制,控制用户通过一个应用程序可以进行什么操作,例如,防火墙可以允许用户浏览一个页面,同时拒绝用户在非信任的服务器上发布数据。

      3) 数据控制,防火墙可以控制应用数据流的通过。如防火墙可以阻塞邮件附件中的病毒。

    防火墙实现访问控制的尺度依赖于它所能实现的技术。

    主机/操作系统访问控制


    图1-2

      目前主流的操作系统均提供不同级别的访问控制功能。通常,操作系统借助访问控制机制来限制对文件及系统设备的访问。

      例如:Windows NT/2000操作系统应用访问控制列表来对本地文件进行保护,访问控制列表指定某个用户可以读、写或执行某个文件。文件的所有者可以改变该文件访问控制列表的属性。

    应用程序访问控制


       访问控制往往嵌入应用程序(或中间件)中以提供更细粒度的数据访问控制。当访问控制需要基于数据记录或更小的数据单元实现时,应用程序将提供其内置的访问控制模型。

     例如,大多数数据库(如Oracle)都提供独立于操作系统的访问控制机制,Oracle使用其内部用户数据库,且数据库中的每个表都有自己的访问控制策略来支配对其记录的访问。

      另外比较典型的例子是电子商务应用程序,该程序认证用户的身份并将其置于特定的组中,这些组对应用程序中的某一部分数据拥有访问权限。

    加密方式在访问控制系统中的应用

      加密方法也经常被用来提供实现访问控制。或者独立实施访问控制,或者作为其它访问控制机制的加强手段。例如,采用加密可以限定只有拥有解密密钥的用户才有权限访问特定资源。

      IPsec VPN采用强加密机制来提供访问控制以非可信网络中的用户访问经由VPN传输的数据。此外,加密和密钥管理也可实现访问控制机制,只有拥有相应的密钥(IPsec安全关联协商成功),才可以解密及访问数据。

      存储于本地硬盘的数据也可以被加密,所以同一系统中的用户若无相应解密密钥也不可读取相关数据。如此就可以代替传统的文件权限控制方式。个别数据库产品可以加密位于本地磁盘上的数据库文件,这样就可弥补操作系统访问控制机制的不足。



    第二章 强制访问控制与自主访问控制

    强制访问控制(MAC)

      用来保护系统确定的对象,对此对象用户不能进行更改。也就是说,系统独立于用户行为强制执行访问控制,用户不能改变他们的安全级别或对象的安全属性。这样的访问控制规则通常对数据和用户按照安全等级划分标签,访问控制机制通过比较安全标签来确定的授予还是拒绝用户对资源的访问。强制访问控制进行了很强的等级划分,所以经常用于军事用途。


                  图2-1

      在强制访问控制系统中,所有主体(用户,进程)和客体(文件,数据)都被分配了安全标签,安全标签标识一个安全等级。

    •  主体 (用户, 进程) 被分配一个安全等级
    •  客体 (文件, 数据) 也被分配一个安全等级
    •  访问控制执行时对主体和客体的安全级别进行比较

      用一个例子来说明强制访问控制规则的应用,如WEB服务以"秘密"的安全级别运行。假如WEB服务器被攻击,攻击者在目标系统中以"秘密"的安全级别进行操作,他将不能访问系统中安全级为"机密"及"高密"的数据。

    自主访问控制(DAC)

      自主访问控制机制允许对象的属主来制定针对该对象的保护策略。通常DAC通过授权列表(或访问控制列表)来限定哪些主体针对哪些客体可以执行什么操作。如此将可以非常灵活地对策略进行调整。由于其易用性与可扩展性,自主访问控制机制经常被用于商业系统。

    自主访问控制中,用户可以针对被保护对象制定自己的保护策略。

    •  每个主体拥有一个用户名并属于一个组或具有一个角色
    •  每个客体都拥有一个限定主体对其访问权限的访问控制列表(ACL
    •  每次访问发生时都会基于访问控制列表检查用户标志以实现对其访问权限的控制

      在商业环境中,你会经常遇到自主访问控制机制,由于它易于扩展和理解。大多数系统仅基于自主访问控制机制来实现访问控制,如主流操作系统(Windows NT Server, UNIX 系统),防火墙(ACLs)等。

      强制访问控制和自主访问控制有时会结合使用。例如,系统可能首先执行强制访问控制来检查用户是否有权限访问一个文件组(这种保护是强制的,也就是说:这些策略不能被用户更改),然后再针对该组中的各个文件制定相关的访问控制列表(自主访问控制策略)。

     

    第三章 访问控制模型 之 强制访问控制(MAC)

    Bell-LaPadula保密性模型是第一个能够提供分级别数据机密性保障的安全策略模型(多级安全)。

    1973年,David BellLen LaPadula提出了第一个正式的安全模型,该模型基于强制访问控制系统,以敏感度来划分资源的安全级别。将数据划分为多安全级别与敏感度的系统称之为多级安全系统

    Bell-LaPadula (BLP) 安全模型对主体和客体按照强制访问控制系统的哲学进行分类,这种分类方法一般应用于军事用途。

    数据和用户被划分为以下安全等级

    •  公开(Unclassified
    •  受限(Restricted
    •  秘密(Confidential
    •  机密(Secret
    •  高密(Top Secret

    BLP 保密模型基于两种规则来保障数据的机秘度与敏感度:

    •  上读(NRU) , 主体不可读安全级别高于它的数据
    •  下写(NWD) , 主体不可写安全级别低于它的数据

      直接来讲,要考虑数据的保秘性. 例如.假如一个用户,他的安全级别为"高密",想要访问安全级别为"秘密"的文档,他将能够成功读取该文件,但不能写入;而安全级别为"秘密"的用户访问安全级别为"高密"的文档,则会读取失败,但他能够写入。这样,文档的保秘性就得到了保障。

      另外,目前不能在原有操作系统中直接进行安全分级。也就是说,在解决其易用性与功能单一性之前,BLP模型不能直接用于商业系统。


     

    图3-1 图3-1为一个用户和资源安全分级的例子。BLP模型允许用户读取安全级别比他低的资源;相反地,写入对象的安全级别只能高于用户级别。简言之,信息系统是一个由低到高的层次化结构。
     

     

                          图3-2

    图3-2示例在通讯过程中如何体现BLP模型思想,尽管这种应用在BLP模型的实际应用中并不多见。当企业的两个分支网络要跨越非可信网络进行互联时,我们可以为两个网络及其间传输的数据设定虚拟的安全标签,可以假设两个分支机构的安全级别均为"机秘",而Internet,作为VPN的传输媒介,它的安全级别为"公开",因此依照BLP模型,Internet上的用户仅可以看到"公开"的数据。而两个分支网络间的数据安全级别为"机秘",因此,访问控制机制导致Internet用户不能访问"机秘"数据,而这是由于VPN使用了加密技术以实现访问控制机制。

      另外的一个例子是防火墙所实现的单向访问机制,它不允许敏感数据从内部网络(例如,其安全级别为"机秘")流向Internet(安全级别为"公开"),所有内部数据被标志为"机密"或"高密"。防火墙提供"上读"功能来阻止Internet对内部网络的访问,提供"下写"功能来限制进入内部的数据流只能经由由内向外发起的连接流入(例如,允许HTTP的"GET"操作而拒绝"POST"操作,或阻止任何外发的邮件)。

    Lattice安全模型



    Lattice 模型通过划分安全边界对BLP模型进行了扩充,它将用户和资源进行分类,并允许它们之间交换信息,这是多边安全体系的基础。

      多边安全的焦点是在不同的安全集束(部门,组织等)间控制信息的流动,而不仅是垂直检验其敏感级别。

      建立多边安全的基础是为分属不同安全集束的主体划分安全等级,同样在不同安全集束中的客体也必须进行安全等级划分,一个主体可同时从属于多个安全集束,而一个客体仅能位于一个安全集束。

      在执行访问控制功能时,lattice模型本质上同BLP模型是相同的,而lattice模型更注重形成"安全集束"。BLP模型中的"上读下写"原则在此仍然适用,但前提条件必须是各对象位于相同的安全集束中。主体和客体位于不同的安全集束时不具有可比性,因此在它们中没有信息可以流通。

      例如,某用户有安全级别为"高密"并从属于安全集束"ALPHA",另一个安全级别为"机密"的集束"BETA"中的用户试图访问从属于多个安全集束中的文件,若他需要访问集束"ALPHA"中安全级别为"机密"的文件,访问将被允许;而他访问集束"BETA"中的"机密"文件的试图将被拒绝。试图访问集束"GAMMA"中的任何对象都将被拒绝,因为其在集束"GAMMA"中不具有任何安全等级

    Biba完整性模型


      七十年代,Ken Biba提出了Biba访问控制模型,该模型对数据提供了分级别的完整性保证,类似于BLP保密性模型,BIBA模型也使用强制访问控制系统。

      Biba完整性模型对主体和客体按照强制访问控制系统的哲学进行分类,这种分类方法一般应用于军事用途

     数据和用户被划分为以下安全等级

    •  公开(Unclassified
    •  受限(Restricted
    •  秘密(Confidential
    •  机密(Secret
    •  高密(Top Secret

    BIBA模型基于两种规则来保障数据的完整性的保密性。

    •  下读(NRU) 属性, 主体不能读取安全级别低于它的数据
    •  上写(NWD) 属性, 主体不能写入安全级别高于它的数据

      从这两个属性来看,我们发现BibaBLP模型的两个属性是相反的,BLP模型提供保密性,而BIBA模型对于数据的完整性提供保障。

      BIBA模型并没有被用来设计安全操作系统,但大多数完整性保障机制都基于Biba模型的两个基本属性构建。

      如图3-4,一个安全级别为"机密"的用户要访问级别为"秘密"的文档,他将被允许写入该文档,而不能读取。如果他试图访问"高密"级的文档,那么,读取操作将被允许,而写入操作将被拒绝。这样,就使资源的完整性得到了保障。

      因此,只有用户的安全级别高于资源的安全级别时可对资源进行写操作,相反地,只有用户的安全级别低于资源的安全经别时可读取该资源。简而言之,信息在系统中只能自上而下进行流动。

    应用举例:


    Biba模型在应用中的一个例子是对WEB服务器的访问过程。如图形-5,定义Web服务器上发布的资源安全级别为"秘密",Internet上用户的安全级别为"公开",依照Biba模型,Web服务器上数据的完整性将得到保障,Internet上的用户只能读取服务器上的数据而不能更改它,因此,任何"POST"操作将被拒绝。

      另一个例子是对系统状态信息的收集,网络设备作为对象,被分配的安全等级为"机密",网管工作站的安全级别为"秘密",那么网管工作站将只能使用SNMP的"get"命令来收集网络设备的状态信息,而不能使用"set"命令来更改该设备的设置。这样,网络设备的配置完整性就得到了保障。

     

    Clark Wilson完整性模型

      Clark-Wilson数据完整性安全模型是在1987年被提出的,通常被用在银行系统中来保证数据的完整性,该模型略显复杂,是为现代数据存储技术量身定制的。

      Clark Wilson完整性模型经常应用在银行应用中以保证数据完整性,它的实现基于成形的事务处理机制。

    •  系统接受"自由数据条目 (UDI)"并将其转换为 "受限数据条目 (CDI)"
    •  "受限数据条目 (CDI)"仅能被"转换程序(TP)"所改变
    •  "转换程序 (TP)" 保证"受限数据条目
      CDI"的完整性
    •  每个受限数据条目(CDI) 拥有一个完整性检查程序 (IVP)
    •  访问控制机制由三个元素组成 (主体, TP, CDI)

    应用举例:
     

    图3-6所示为Clark Wilson完整性模型在电子商务程序中的应用,用户接到自主数据条目(UDI)并由转换程序(TP)将其转换为受限数据条目(CDICDI1CDI1用来更新CDI2(例如客户的订单)和CDI3(如客户的帐单),完整性检查程序(IVP)总是要检查是否CDI2(订单)和CDI3(帐单)是否出入平衡,因此可确保整个交易的完整性。

    Chinese Wall模型

    Chinese Wall模型是应用在多边安全系统中的安全模型(也就是多个组织间的访问控制系统),应用在可能存在利益冲突的组织中。最初是为投资银行设计的,但也可应用在其它相似的场合。

    Chinese Wall安全策略的基础是客户访问的信息不会与目前他们可支配的信息产生冲突。在投资银行中,一个银行会同时拥有多个互为竞争者的客户,一个银行家可能为一个客户工作,但他可以访问所有客户的信息。因此,应当制止该银行家访问其它客户的数据。

    Chinese Wall安全模型的两个主要属性:

    •  用户必须选择一个他可以访问的区域
    •  用户必须自动拒绝来自其它与用户所选区域的利益冲突区域的访问

      这种模型同时包括了DACMAC的属性:银行家可以选择为谁工作(DAC),但是一旦选定,他就被只能为该客户工作(MAC)。

    应用示例:


    图3-7

      Chinese Wall安全模型在网络安全体系中应用的一个典型的例子是位于防火墙内部的一台服务器,连接着内部与外部网络。假如策略禁止经由此服务器转发数据,该服务器将曝露于外部网络(也就是说,该服务器仅能与外部网络通讯,而不能与内部网络通讯)


    图3-8

      另外用远程访问VPN来举例说明,位于Internet上的用户与内部网络建立VPN会话之后。依照中国墙安全模型所建议,在任何时候,用户或与Internet通讯,或与公司网络进行通讯,二者只可选其一(也就是说:隧道不可分割)

      单向会话只发生在有限的时间内,本安全模型的核心在于--用户选择与其中一方进行通讯,则放弃了与另一方会话的权利。

    第二讲 传统的访问控制

    一、基本概念

    访问控制的基本任务是:防止非法用户进入系统及合法用户对系统资源的非法使用,它保证主体对客体的所有直接访问都是经过授权的。

    1.客体:

    是一种能够从其它主体或客体接收信息的实体(文件、目录、数据块、记录、程序、存储器段、网络节点等),即包含有信息,又可以被访问的实体。

    2.主体

    是一种可以使信息在客体之间流动的实体(进程、作业或任务(代表用户),用户也称为是主体)或能访问或使用客体的活动实体。

    通常,我们把主体也看作是一个客体。因为当一个程序存放在内存或硬盘上时,那么它就与其它数据一样被当作客体,可供其它主体访问,但当这个程序运行时,它就成为了主体,可以去访问别的客体。

    3.访问模式(访问权限)
          是指主体对客体可进行的特定访问操作如:读(r)、写(w可读可写或修改)、添加(a)、删除(d)、运行(e)等。

    二种特殊的访问权限是控制权(c)、拥有权(o)。

           c是指某个主体具有改变其它主体对某客体的访问权限的能力。

           o若主体S创建客体O,则SO具有拥有权(每一客体O只有唯一的拥有者)。对O具有拥有权的主体必对O具有控制权,但反之则不然。

    4.自主访问控制

    是指对某个客体具有拥有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其它主体,并在随后的任何时刻将这些权限回收。

    自主访问控制是保护计算机系统资源不被非法访问的一种有效手段,但是,它有一个明显的缺点:这种控制是自主的,虽然这种自主性为用户提供了很大的灵活性,得同时也带来了严重的安全问题。为此人们认识到必须采取更强有力的访问控制手段,这就是强制访问控制。

    5.强制访问控制

          系统根据主体被信任的程度和客体所包含的信息的机密性或敏感程度来决定主体对客体的访问权,这种控制往往可以通过给主、客体赋以安全标记来实现。

          强制访问控制一般与自主访问控制结合使用,在自主访问控制的基础上,施加一些更强的访问限制。一个主体只有通过了自主与强制性访问控制检查后,才能访问某个客体。

          用户可以利用自主访问控制来防范其它用户对自己客体的攻击,强制访问则提供了一个不可逾越的、更强的安全保护层。

    二、自主访问控制(Discretionary Access Control

    1、自主访问控制的矩阵模型
        系统状态用一个有序三元组表示Q=(S,O,A)

    其中        S——主体的集合

                  O——客体的集合

                  A——访问矩阵,行对应于主体,列对应客体。A(i,j)项元素a­­­ij是一个集合,该集合中列出了主体Si对客体Oj所允许的访问权限。

    例:设S={s1,s2},O={m1,m2,f1,f2,s1,s2,}系统当前的状态如下:

    m1         m2         f1          f      s1    s2

           

    注:“拥有权”与“控制权”在有的系统中有区别。

    系统中设置监控程序用来监控主体对客体的访问,某一主体Si要对客体oj进行访问时,监控程序要检查aij以决定Si是否可对oj进行访问以及可以进行什么样的访问,当aij中不包含主体Si对客体oj的某种访问权时,监控程序就禁止Sioj进行相应的访问操作。监控程序可以由硬件、软件或者硬件与软件共同完成。

    系统状态的变化
          
    系统状态是在不断变化的,变化是由于用户的一系列操作引起来的,系统状态变化,则相应的访问控制矩阵也就要发生变化。引起状态变化的操作基本上有如下几种:

    1Enter p into aij         (oj拥有者授予主体SiOjp”访问权)

    2Delete p from aij        (oj拥有者撤销主体SiOjp”访问权)

    3. Create Subject s’

    4. Create Object o’

    5. Delete Subject s’

    6. Delete Object o’

    这些操作将引起访问控制矩阵的变化,且使得状态由Q=(S,O,A)转换到Q’=(S’,O’,A’)

    2、自主访问控制的实现方法

          为了实现自主访问控制,必须将访问控制矩阵所提供的信息以某种形式保存在计算机系统中,实际上在实现自主访问控制时,并不是将矩阵整个存放在系统中,这样做,效率是很低的,因为这个矩阵很可能是一个许多项都为空的一个稀疏矩阵,这对于存储空间和查询时间都是一个很大的浪费。

    实际上的实现方法可分为如下几类:

    基于行的自主访问控制——权力表

    每个主体Si都有一个相应的权力表,Si的权力表由访问控制矩阵中Si所对应的行中所有的非空项所组成,它是一张Si可以访问的所有客体的明细表。如:上例中

    O

    P

    m1

    m2

    f1

    {r,w,e}

    {r}

    {c,r,w}

    S1的权力表

    O

    P

    m1

    m2

    f1

    {r,w,e}

    {r}

    {c,r,e}

    S2的权力表

    根据每一主体Si的权力表,可决定该主体可否对客体进行访问以及可以进行哪种模式的访问。

    基于列的自主访问控制——授权表(或访问控制表)

    第一个客体都有一个相应的授权表,oj的授权表由访问控制矩阵中oj所对应的列中所有非空项所组成,它是一张可以访问oj的所有主体的明细表。如上例中

    S

    P

    S1

    S2

    {r,w,e}

    {r}

    m1的授权表

    S

    P

    S2

     

    {c,r,e}

    f2的授权表

    根据每一客体oj的授权表可以决定哪些主体可以访问该客体以及可以进行什么样的访问。

    3.授权的管理方式

          主体对客体的控制权“c“在系统中有两种管理方式:一种是集中式管理,一种是分散式管理。

    集中式管理

          一个主体si在创建某个客体oj后,该主体就获得了对这一客体的“c”权和其它所有可能权限。“c”权意味着可以将它对oj所有其它(除“c”权以外)的访问权限授予系统中任何一个主休,也可以撤销系统中任何主体对oj的其它访问权限。其它主体因为对oj不具有“c”权,因此即使他们对oj具有某些访问权限,但它们也无权将这些权限转授给别的主体、或撤销别的主体对oj的任何访问权限——在这种管理模式下,对于任一客体oj,哪些主体可以对其进行访问,可以进行什么样的访问,完全由oj的拥有者决定。(在此管理模式下,“拥有权”和“控制权”是一致的。)

    分散式管理

          在这种管理模式下,一个客体oj的拥有者不仅可以授予其它主体对oj的所有其它的访问权,而且还可以授予他们对oj的某些访问权的授予权,因此,对于一客体oj的访问权,不仅oj的拥有者可以授权,其他的主体也有可能得到全部或部分的授予权。

          例如:下图表示数据库中对某个关系X的授权情况:

    图中:ABCD分别表示四个主体,表示AB授权。10152030表示授权的时刻,R(y)表示所授予的权限R可以再转授别的主体,R(n)表示所授予的权

    D

    C

    A

    B

    10

    R(y),I(y)

    20

    R(y),I(y)

    30

    R(y),I(n)

    15

    R(n)

    A

    B


    R不允许再转授给别的主体。

          由图中可看出:在时刻15——时刻30之间的一段时间,D虽得到了对点系XRRead)访问权,但他不能将此权再授给其它主体。而在时刻30以后,C授予了DRI的权限后,D仅可将R权限授予其它的主体。

          在这种管理模式下,一个主体在撤销他所授予的对某个客体的某种权限时,必须将由于这一授权而引起的所有授权都予以撤销,系统的状态应该是好像该主体从来未对该权限授予过。

          例如:上例中,若时刻40后的某个时刻A撤销对B所授予的对关系XR权,则此时不公B失去了对XR权,且由此而引起CXR权,DXR权都被撤销,此时虽然D保留了由A处得到的R权,但D不能将此权转授出去。

          对授权提出分散式管理的模式虽然有它的实际需要,但是分散式管理的缺陷是,一旦oj的拥有者将对oj的访问权的授予权授予出去后,他便无法控制系统中哪些主体可对oj进行访问,哪些主体不能进行访问,哪些主体对oj具有授予权,哪些主体对oj不具有授予权。例如该例中的DA不让其具有R的授予权,但C却将R的授予授给了他。因此又有人提出了发“黑令牌”的方法,即oj的主体可对不允许访问oj的主体发放黑令牌。这样凡被发放黑令牌的主体,其它主体不得向他授权。(当然,可对某种访问权)

          在这种管理模式下,“拥有权”和“控制权”是不一致的。

    第三讲 安全策略与安全模型

    一、安全策略

    1、安全策略的概念

          计算机系统的安全策略是为了描述系统的安全需求而制定的对用户行为进行约束的一整套严谨的规则。这些规则规定系统中所有授权的访问,是实施访问控制的依据。

          一个计算机系统的安全策略应能说明系统在各种情形下,哪些主体对哪些信息的访问是允许的,什么样的访问是不允许的。

          相对于系统中实施安全策略的访问控制机制来说,安全策略是抽象的,指导性的原则,然而安全策略的制定是有强烈的实际背景的。

    2、安全策略举例

          以军事安全策略和商业安全策略为例来说明这一概念。军事部门的安全主要关心的是数据的保密性,而商业部门的安全主要关心的是数据的完整性,由于这一出发点不同使得他们的安全策略也有很大的不同。

    军事安全策略:

          分为两部分:自主安全策略(discretionary)和强制安全策略( mandatory

          ·自主安全策略:一个主体对客体的任何一种方式的访问都必须是该客体的拥有者事先对其进行了授权的。

    复习数学概念:

    1. 笛卡尔积:A×B

    2. 集合A的幂集:P(A)=2A={s|sA}

    3. 集合A上的偏序关系:集合A上的关系、自反、反对称、可传递的定义、次序图、偏序集、全序关系。

    4. 有用的结论:

    <A;><B;>是,定义A×B上的关系:对任意(a1,b1), (a2,b2) A×B当且仅当a1a2b1b2时,有(a1,b1)(a2,b2)。可以证明:<A×B;>也是一个偏序集。

    ·强制安全策略

           1.系统中每个主体和每个客体都有安全标记

          客体的安全级表示该客体所包含的信息的敏感程度或机密程度;

          主体的安全级表示该主休被信任的程度或访问信息的能力。

           2.安全标记由两个部分组成(密级,部门集)

          密级一般定义为四个级别:一般(U),秘密(C),机密(S)和绝密(TS)。

          用全序描述:一般≤秘密≤机密≤绝密。

          A={U,C,S,TS},则<A;>是一个偏序集

          设某单位的部门集如下:{科技处,干部处,生产处,情报处}

    B={科技处,干部处,生产处,情报处},则PB=2B={S|SB}PB中的元素均是B的子集,如{科技处,干部处}PB{科技处,生产处,情报处}PB<PB;>也是一个偏序集。

    定义笛卡尔积A×PB={(a,H)|aA,HPB}

    例如:(C{科技处}=class(o1)                           (可读)

            S{科技处,干部处}=class(u)

            (TS,{科技处,情报处,干部处})=class(o2)            (可写)

            C{情报处}=class(o3)                           (不读,不写)

    oi

    u

    oj

    均是A×PB中的元素,系统中主、客体的安全级由这些二元组来定义。

    3.访问权的控制原则(即安全策略)

          一个主体仅能读安全级比自已安全级低或相等的客体,即“向下读”。

                 一个主体仅能写安全级比自己高或相等的客体,即“向上写”。

           4.安全级如何比较高低

    <A;>是一个偏序集,<PB;>也是一个偏序集。

    在集合A×PB上定义关系≤:对于a1,H1,a2,H2)∈A×PB,a1,H1)≤(a2,H2)当且仅当a1a2H1H2,可以证明:≤是A×PB上的一个偏序关系,即<A×PB;>也构成一个偏序集。在此,若(a1,H1)≤(a2,H2)则称(a1,H1)低于(a2,H2)。

    例如:

    C{科技处})≤(S{科技处,干部处});

    S{科技处,干部处})≤(TS{科技处,情报处,干部处})。

    因此,(C{科技处})≤(TS{科技处,情报处,干部处});

    但(C{情报处})与(C{科技处})不可比,(C{情报处})与(S{科技处,干部处})不可比。

    对于上述控制原则具体化:若主体u和客体o的安全级满足

    class(u)class(o),u可“写”o,

    class(o)class(u),u可“读”o.

    于是上述u可读o1,u可写o2,uo3不能读,也不能写,又如,若class(o4)=(TS,{科技处}),则u不能读,也不能写。

    商业安全策略

    主要的目的是防欺诈,防错误,防篡改,保护信息的完整性。虽然它也要防止非授权的泄露,但没有必要像军事安全中那样复杂的要求,其安全策略主要体现在以下两个方面:

    良形事务(Well-formed transaction

    用户对数据的操纵不能任意进行,而应该按照可保证数据完整性的受控方式进行,即数据应该用规定的程序,按照定义好的约束进行处理。

    例:保存记录(包括修改数据的前后记录)

    双入口规则,保持帐面平衡。

    职责分散(Separation duty)

    把一个操作分成几个子操作,不同的子操作由不同的用户执行,使得任何一个职员都不具有完成该任务的所有权限,尽量减少出现欺诈和错误的机会。

    当然欺诈行为并不一定能就此消除,但它会在众多的职员的合作性行为中变得显而易见。

    例如,购买原材料、进货并付款的过程可分解为以下几个操作来完成:

    购买订单——记录到货——记录到货发票——付款

    最后一个步骤只有在前三个步骤完成后才执行。

    军事安全策略与商业安全策略的比较

    区别:

    1.军事安全策略——主要关心的是数据的机密性

       商业安全策略——主要关心的是数据的完整性

    2.军事安全策略——将数据与一个安全级相联系,通过数据的安全级来控制用户对数据的访问。

     商业安全策略——将数据与一组允许对其进行操作的程序相联系,通过这组程序来控制用户对数据的访问。

    3.军事安全策略——用户被授权去读或写某一数据。

    商业安全策略——用户被授权去执行与某一数据相关的程序。

           4.军事安全策略——用户只要获得了相应的访问权限,则他可以任意地去读或写访问该数据。

            商业安全策略——用户对数据的读、写方式不是任意的,而是隐含在那些被执行的程序动作之中。

           这一条使前者更容易受到病毒或特洛依木马的攻击。

    相同之处:

    1.计算机系统中必须有一种机制来保证系统实施了相应的安全策略;

    2.系统中的安全机制必须防止破坏,即防止非授权的修改。

    二、安全模型

    1.安全模型

           安全模型是对安全策略所表达的安全需求简单、抽象和无歧义的描述。它为安全系统的设计提供指导。

           安全模型应具有如下一些特点:

    它是精确的、无二义性的;

    它是简单、抽象的,也是易于理解的;

    它仅涉及安全性,不过分限制系统的功能及实现;

    它是安全策略的一个清晰的表达方式。

    分为:

    非形式化的安全模型:用自然语言对系统的安全性进行描述。其优点是直观、易于理解但不严谨,往往有二义性,表达不简洁。

    形式化的安全模型:使用数学语言精确地描述系统的安全性质或规则。优点是简洁、准确、严谨,可以从理论上进行严格的证明其安全性;缺点是抽象、难于理解。

    按照TCSEC的评估标准,B1级要求既有自主访问控制又要有强制访问控制,这也就是要求它要制定安全策略,即非形式化的安全模型,指导系统如何进行上述两种访问控制;B2级的计算机系统要求具有形式化的安全模型,A1级并要求对安全模型进行形式化的证明。

    由上可看出,若设计开发具有B类及以上的安全计算机系统必须要有安全模型作指导,对高安全级的计算机系统,形式化的安全模型则是不可少的必要条件。


    第三章 BLP模型(Bell-La Padula模型)

    是对安全策略形式化的第一个数学模型,是一个状态机模型,用状态变量表示系统的安全状态,用状态转换规则来描述系统的变化过程。

    一、模型的基本元素

    模型定义了如下的集合:

    S={s1,s2,,sn主体的集合,主体:用户或代表用户的进程,能使信息流动的实体。

    O={o1,o2,,om}客体的集合,客体:文件、程序、存贮器段等。(主体也看作客体SO

    C={c1,c2,,cq主体或客体的密级(元素之间呈全序关系),c1c2≤…≤cq.

    K={k1,k2,,kr部门或类别的集合

    A={r,w,e,a,c}   访问属性集,其中,r:只读;w:读写;e:执行;a:添加(只写);                          c:控制。

    RA={g,r,c,d}   请求元素集

                                gget(得到),give(赋予)

                                rrelease(释放),rescind(撤销)

                                cchange(改变客体的安全级),create(创建客体)

                                ddelete(删除客体)

    D={yes,no,error,?}判断集(结果集),其中

                                yes:请求被执行;

                                no请求被拒绝;

                                error:系统出错,有多个规则适合于这一请求;

                                ?  请求出错,规则不适用于这一请求。

    μ={M1,M2,,Mp访问矩阵集,其中元素Mk是一n×m的矩阵,Mk的元素MijA

    F=CS×CO×(PK)S×(PK)O,其中,

           CS={f1|f1SC}              f1给出每一主体的密级;

           CO={f2|f2OC}             f2给出每一客体的密级;

           (PK)S={f3|f3SPK} f3给出每一主体的部门集;

           (PK)O={f4|f4OPK}f4给出每一客体的部门集。

    其中,PK表示K的幂集(PK=2K)。

    F的元素记作f=(f1,f2,f3,f4),给出在某状态下每一主体的密级和部门集,每一客体的密级和部门集,即主体的许可证级(f1,f3),客体的安全级(f2,f4)。

    二、系统状态

    V=P(S×O×A)×μ×F是状态的集合,状态v=(b,M,f)用有序三元组表示,其中

           bS×O×A,是当前访问集。

           M是访问矩阵,它的第i行,第j列的元素MijA表示在当前状态下,主体Si对客体Oj所拥有的访问权限。

           f=(f1,f2,f3,f4),其中,f1(s)和f3(s)分别表示主体s的密级和部门集,f2(s)和f4(s)分别表示客体O的密级和部门集。

           


    三、安全特性

           自主安全性

           状态v=(b,M,f)满足自主安全性,当且仅当对所有的(si,oj,x)b,有xMij

           简单安全性

           状态v=(b,M,f)满足简单安全性,当且仅当对所有的(s,o,x)b,有

                  ix=ex=ax=c

              (ii) (x=rx=w)(f1(s)f2(o)f3(s)f4(o))

    S

    O

    e,c,a

    S

    ()

    O

    ()

    r,w

     

           *—性质

    S

    O1

    ()

    O2

    ()

    a

    r

    S

    O1

    ()

    O2

    ()

    a

    w


           状态v=(b,M,f)满足*—性质,当且仅当对所有的sS,若o1b(S:w,a)o2b(S:r,w),f2(o1)f2(o2)f4(o1)f4(o2),其中符号b(S:x1,,xn)表示b中主体s对其具有访问特权xi(1in)的所有客体的集合。

           解释:

    S

    O1

    ()

    O2

    ()

    w

    r

    S

    O1

    O2

    w

    w

    (级别)

    (级别)

    相等


           一个状态v如果满足上述三条性质,那么v才是安全状态。

    四、请求

           R=S+×RA×S+×O×请求集(不是请求元素集),它的元素是一个完整的请求。其中S+=S{}X=A{}F

           R中的元素是一个五元组,代表一次请求或一个操作。

           T={1,2,,t,离散时刻的集合(标识)。用作请求序列,结果序列和状态序列的下标;

    X=RT={x|x:TR},其中元素x可表示为x=xx2x3xt…是一个请求序列,每一时刻有一请求,构成一个请求序列,因此X是请求序列的集合;

    Y=DT={y|y:TD},其中元素y=y1y2y3yt…是一个结果序列,每一时刻的请求导致一个判断(或结果),构成一个结果序列,Y是结果序列的集合;

    Z=VT={z|z:TV},其中元素z=z1z2z3zt…是一个状态序列,每一ztV,表示时刻t时系统的状态。Z是状态序列的集合

    五、状态转换规则

           系统状态的转换由一组规则定义,一个规则P定义为:R×VD×V。其中:R是请求集,D为判断集,V是状态集。

           也就是说,P规定对于给定的一个状态和一个请求,系统产生一个判断和下一个状态,只有当D的取值为“yes”时,请求才被执行,状态才发生转换。

           BLP模型定义了十条基本规则(后来又有所扩充):

           规则1~规则4分别用于主体请求对客体的读(r),添加(a),执行(e)和写(w)的访问权。(φ,g,si,oj,r), (φ,g,si,oj,a), (φ,g,si,oj,e), (φ,g,si,oj,w)

           规则5用于主体释放它对某客体的访问权(包括r,或a,或e,或w)。(φ,r,si,oj,x)

           规则6和规则7分别用于一个主体授予和撤销另一个主体对某客体的访问权。

    (sλ,g,si,oj,r)     (sλ,r,si,oj,r)

           规则8用于改变静止客体的密级和类别集。(φ,c,φ,oj,f*)

           规则9和规则10分别用于创建和删除(使之成为静止)一个客体。

    (φ,c,sj, oj,e)     (φ,d, si,oj,φ)

    (φ,c, si,oj,φ)

    规则1:主体si请求得到对客体ojr访问权

    get-read P1(Rk,v)

           if σ1φ or γg or xr or σ2=φ then

                  P1(RK,v)=(?,v)

           if rMij or (f1(si)<f2(oj) or f3(si)    f4(oj))

                  then P(RK,v)=(no,v)

           if ={o|ob(si:w,a) and [f2(oj)>f2(o) or f4(oj) f4(o)]}= φ

                  then P(RK,v)=(yes,v*=(b{(si,oj,r)},M,f))

                  else P(RK,v)=(no,v)

           end

    规则2:主体si请求得到对客体oja访问权

    get-appendP2(RK,v)

           如果 σ1φ or γg or xa or σ2,则P2(RK,v)=(?,v)

           如果 aMij,则P2(RK,v)=(no,v)

           如果 ={o|ob(si:r,w) and [f2(oj)<f2(o) or f4(oj)f4(o)]}=φ

              P2(RK,v)=(yes,v*=(b{(si,oj,a)},M,f))

           否则 P2(RK,v)=(no,v)

           end

    规则3:主体si请求得到对客体oje访问权

    get-executeP3(RK,v)

           if σ1φ or γg or xe or σ2=φ then P3(RK,v)=(?,v)

           if eMij then P3(RK,v)=(no,v)

                          else P3(RK,v)=(yes,v*=(b{(si,oj,e)},M,f))

           end

    规则4:主体si请求得到对客体ojw访问权

    get-writeP4(RK,v)

           if σ1φ or γg or xw or σ2=φ then P4(RK,v)=(?,v)

           if wMij or [f1(s)<f2(oj) or f3(si) f4(oj)]

                  then P4(RK,v)=(no,v)

           if ={o|ob(si:r) and [f2(o)<f2(o) orf4(o)   f4(o)]}

                  {o|ob(si:a) and [f2(o)>f2(o) or f4(o) f4(o)]}

                  {o|ob(si:w) and [f2(o)f2(o) or f4(o)f4(o)]}=φ

           then P4(RK,v)=(yes,v*=(b{(si,oj,w)},M,f))

           else P4(RK,v)=(no,v)

           end

    规则5:主体si请求释放对客体ojrwea访问权

    release-read/write/append/executeP5(RK,v)

           if (σ1φ) or (γr) or (xr,w,a and e) or (σ2=φ)

                  then P5(RK,v)=(?,v)

                  else P5(RK,v)=(yes,v*=(b-{(si,oj,x)},M,f))

           end

    规则6:主体sλ请求授予主体si对客体ojrwea访问权

    give-read/write/append/execute P6(RK,v)

           if (σ1S) or (γg) or (xr,w,a and e) or (σ2=φ)

                  then P6(RK,v)=(?,v)

           if xMλj or cMλj then P6(RK,v)=(no,v)

                  else P6(RK,v)=(yes,(b,M[x]ij,f))

           end

    规则7:主体sλ请求撤销主体si对客体ojrwea访问权

    rescind-read/write/append/executeP7(RK,v)

           if (σ1S) or (γr) or (xr,w,a and e) or (σ2=φ) then

                  P7(RK,v)=(?,v)

           if xMλj or cMλj then P7(RK,v)=(no,v)

                  else P7(RK,v)=(yes, (b-{(si,oj,x)},M [x]ij,f))

           end

    规则8:改变静止客体的安全级

    change-fP8(RK,v)

           if (σ1φ) or (γc) or (σ2φ) or xF

    then P8(RK,v)=(?,v)

           if f1 or f3 or [(oj)f2(oj) or (oj)f4(oj) for jA(m)]

                                                           注:A(m)表示活动客体的集合

                  then P8(RK,v)=(no,v)

                  else P8(RK,v)=(yes,(b,M,f*))

           end

    规则9:主体s请求创建客体oj

    create-objectP9(RK,v)

           if σ1φ or γc or σ2=φ or (xe and φ) then

                  P9(RK,v)=(?,v)

           if jA(m) then P9(RK,v)=(no,v)

           if x=φ then P9(RK,v)=(yes,(b,M[{r,w,a,c}]ij,f))

                  else P9(RK,v)=(yes,(b,M[{r,w,a,c,e}]ij,f))

           end

    规则10:主体s请求删除客体oj

    delete-objectP10(RK,v)

           if σ1φ or γd or σ2=φ or xφ then

                  P10(RK,v)=(?,v)

           if cMij then P10(RK,v)=(no,v)

                  else P10(RK,v)=(yes,b,M [{r,w,a,c,e}]ij,1in,f))

           end

    六、系统的定义

    1R×D×V×V={(rK,dm,v*,v) | rKR,dmD,v*,vV}

           即,任意一个请求,任意一个结果(判断)和任意两个状态都可组成一个上述的有序四元组,这些有序四元组便构成集合R×D×V×V

           2.设ω={P1,P2,Ps}是一组规则的集合,定义W(ω)R×D×V×V.

                  (rk,?,v,v)W(ω) iff对每个i,1is,Pi(rk,v)=(?,v)

                  (rk,error,v,v)W(ω) iff存在i1,i2,1i1,i2s,使得对于任意的v*VPi1(rk,v)(?,v*)Pi2(rk,v)(?,v*)

    (rk,dm,v*,v)W(ω),dm?,dmerroriff存在唯一的i1is,使得对某个v*和任意的v**vPi(rk,v)(?,v**)Pi(rk,v)=(dm,v*)

    以上定义说明W(ω)只包含R×D×V×V中一部分四元组,或某些特定的四元组。若某(rk,dm,v*,v)W(ω),则说明该四元组一定满足上述定义中(3条)的某一条,亦即意味着在状态v下,发出某请求rk后,按照某条规则,其结果为dm,状态v转换成状态v*。因此W(ω)是由ω中的一组规则所定义的有序四元组所组成。

           3X×Y×Z={(x,y,z)|xX,yY,zZ},其中,

                  x=x1x2xt…是请求序列,X是请求序列集;

                  y=y1y2yt…是结果序列,Y是结果序列集;

                  z=z1z2zt…是状态序列,Z是状态序列集。

           任意一个请求序列,任意一个结果序列和任意一个状态序列均可组成一个有序三元组,X×Y×Z即由所有这样的有序三元组所构成。

           4.系统表示为∑(R,D,W(ω),z0),定义为:

           ∑(R,D,W(ω),z0)X×Y×Z,只含有其中一部分有序三元组,X×Y×Z中的有序三元组(x,y,z)∑(R,D,W(ω),z0),iff对每一个tT(xt,yt,zt,zt-1)W(ω)

           z0是系统的初始状态,通常表示为(φ,M,f)

              x=x1x2xt…是请求序列

                  y=y1y2yt…是结果序列;

                  z=z1z2zt…是状态序列

           (x,y,z)∑(R,D,W(ω),z0),则意味着对于所有的tT(xt,yt,zt,zt-1)W(ω),即符合ω所规定的操作规则。

    z0

    z1

    z2

    zt-1

    zt

    x1

    x2

    xt

    y1

    y2

    yt


           因此系统∑(R,D,W(ω),z0)是一个状态机,它从一个特定的初始状态z0开始,接受用户的一系列请求,按照W(ω)的规则给出相应的结果,并进行相应的状态转换,符合上述条件的所有可能的(x,y,z)组成系统。系统R就是由所有这些有序三元组(x,y,z)所组成。

           从初始状态z0出发,任何一个请求序列均可导致出一结果序列和状态序列,引起一系列的状态转换。

    七、系统安全的定义

           1.安全状态

                  一个状态v=(b,M,f)V,若它满足自主安全性,简单安全性和*—性质,那么这个状态就是安全的。

           2.安全状态序列

                  zZ是一状态序列,若对于每一个tTzt都是安全状态,则z是安全状态序列。

           3.系统的一次安全出现

                  (x,y,z)∑(R,D,W(ω),z0)称为系统的一次出现。

                  (x,y,z)是系统的一次出现,且z是一安全状态序列,则称(x,y,z)是系统∑(R,D,W(ω),z0)的一次安全出现。

           4.安全系统

                  若系统∑(R,D,W(ω),z0)的每次出现都是安全的,则称该系统是一安全系统。

    八、模型中的有关安全的结论

           BLP模型中证明了:

           1.这十条规则都是安全性保持的。(即若v是安全状态,则经过这十条规则转换后的状态v*也一定是安全状态)

           2.若z0是安全状态,ω是一组安全性保持的规则,则系统∑(R,D,W(ω),z0)是安全的。

           说明BLP模型所描述的系统是一个安全的系统。

    九、对BLP安全模型的评价

           BLP模型是最早的一种安全模型,也是最有名的多级安全策略模型。它给出了军事安全策略的一种数学描述,用计算机可实现的方式定义。它已为许多操作系统所使用。

           由于它描述的是军事安全策略,受到美国国防部的特别推崇,以致于在很长一段时期人们将多级安全策略等同于强制访问控制策略。

           优点:是一个最早地对多级安全策略进行描述的模型;

                   是一个严格形式化的模型,并给出了形式化的证明;

    是一个很安全的模型,既有自主访问控制,又有强制访问控制。

    控制信息只能由低向高流动,能满足军事部门等一类对数据保密性要求特别高的机构的需求。

                 

           1.总的来说,BLP模型“过于安全”。

                  上级对下级发文受到限制;

                  部门之间信息的横向流动被禁止;

                  缺乏灵活、安全的授权机制。

           不安全的地方:

                  低安全级的信息向高安全级流动,可能破坏高安全客体中数据完整性,被病毒和黑客利用。

    只要信息由低向高流动即合法(高读低),不管工作是否有需求,这不符合最小特权原则。

    高级别的信息大多是由低级别的信息通过组装而成的,要解决推理控制的问题。

    2.仔细分析BLP模型,其描述上尚有不安全的地方,还有待改进,缺乏记忆,造成不安全性。

    S

    r

    o2

    o3

    r

    时刻t1

    时刻t2

    释放对o2o3的访问权


    例如:设o1> o2> o3> o4S的安全级同o1

    S

    a

    o3

    o4

    r

    时刻t3

    S已含有o2o3的信息

    此时S可将o2的信息传送到o3

    (无记忆)

    又例如:

    oo

    r

    s2

    更高

    s1

    a


           改进:针对过安全:

    1.允许高安全级的主体在受控的情况下创建低安全级的客体。(解决从上到下流的问题)。

           .对客体安全级的动态约束,如(秘级,部门级,时限)。随客体内容进行动态约束(解决自上向下和横向)。

    .给主体发临时许可证,如(密级,部门级,时限)或(客体,权限,时限)。

           针对不安全问题:

           1.可否用“推”和“拉”来解决。用“拉”,而不用“推”。在计算机中“推”和“拉”如何实现?  “同级写”

           2.基于语义的动态控制;

           3.问题比较复杂。

    展开全文
  • 自主访问控制

    2018-11-12 09:03:26
    自主访问控制概述,介绍传统DAC模型,列举DAC的优势以及劣势
  • 传统自主访问控制DAC)不具有时间敏感性,也不支持权限委托策略,这使得DAC很难满足对时间敏感的需求,而且对授出权限使用的不可控也可能造成权限滥用而带来安全隐患。提出了带周期时间特性的自主访问控制委托树...
  • 访问控制模型

    2020-07-09 19:25:08
    自主访问控制模型(DAC) 用户有权对自身所创建的访问对象进行访问 可以授予或者收回其他用户对对象的访问权限 具体实现为ACL访问控制列表或者Capacity List 全能列表 主体权限太大,有无意间泄露信息的风险 不...

    自主访问控制模型(DAC)

    • 用户有权对自身所创建的访问对象进行访问
    • 可以授予或者收回其他用户对对象的访问权限
    • 具体实现为ACL访问控制列表或者Capacity List 全能列表
      • 主体权限太大,有无意间泄露信息的风险
      • 不能防止木马攻击ACL
      • 用户量多、管理数据量大时ACL体量庞大,维护困难

    强制访问控制模型

    • BLP模型
      • 1973年提出,第一个严格形式化的安全模型
      • 多级访问控制,用于保证系统信息的机密性
      • 包含自主安全策略和强制安全策略
      • 强制安全策略为每一个主体都分配了安全级
      • 根据安全级进行访问
      • 简单安全特性
        • 向下读向上写,同范畴可以读写,不同范畴不可读写
        • 读:绝密>机密>秘密
        • 写:绝密<机密<秘密
    • BIBA模型
      • 1977年提出
      • 多级访问控制模型,保护数据完整性
      • 为主体和客体都分配了完整级
      • 简单安全策略
        • 向下写,向上读
        • 写:极为重要>非常重要>重要
        • 读:极为重要<非常重要<重要
    • Clark-Wilson模型
      • 1987年提出
      • 确保商业数据完整性的访问控制模型
      • 要求每次操作前和操作后数据都必须满足一致性
    • Chinese Wall模型
      • 若干有竞争关系数据集构成利益冲突类
      • 同一个域里面的不同角色,不能赋予相同的权限
    • 基于角色的访问控制模型(RBAC)
      • 内置多个角色,权限与角色进行关联,赋予用户角色获得相应权限
      • 最小权限原则、责任分离原则、数据抽象原则
    • 基于属性的访问控制模型(ABAC)
      • ACL和RBAC是ABAC的子集,前者属性基于identity,后者属性基于角色
      • ABAC以面向对象的思想来进行更精细的访问控制,匹配复杂的业务场景

    展开全文
  • 早期访问控制模型

    2021-04-03 16:06:39
    文章目录访问控制基本概念早期访问控制模型自主访问控制模型DAC)强制访问控制模型(MAC)基于角色的访问控制模型(RBAC)基于属性的访问控制模型(ABAC)局限性分析 访问控制 访问控制是指控制对一台计算机或一个...

    访问控制

    访问控制是指控制对一台计算机或一个网络中的某个资源的访问,有了访问控制,用户在获取实际访问资源或进行操作之前,必须通过识别、验证、授权。

    基本概念

    访问主体:能够发起对资源的访问请求的主动实体,通常为系统的用户或进程
    访问客体:能够被操作的被动实体,通常是各类系统和数据资源
    访问控制策略:为了保护信息安全性而制定的策略规则,规定了主体对客体的访问约束需求的描述
    访问授权:访问控制系统按照访问控制策略进行访问权限的赋予

    早期访问控制模型

    自主访问控制模型(DAC)

    自主访问控制模型是根据自主访问控制策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体,某些用户还可以自主地把自己所拥有的客体的访问权限授予其他用户。
    特点:

    • 主体对它所属的对象和运行的程序拥有全部的控制权。

    Alice拥有一个叫mywork.doc的文件。她许可Bob和Sales group的成员来读这个文件,除此之外别的人都不可以。

    • 被某个用户执行的程序拥有与该用户相同的权限

    假设Alice对文件file1.doc拥有读写权限。Charlie,一个恶意攻击者,写了一个程序,这个程序在执行时生成文件file2.doc.这个程序授予Alice写权限和Charlike读权限。Charlie把这个程序伪装成合法的程序发给Alice。当Alice运行这个程序是,它就具有了和Alice相同的权限。它可以拷贝file1.doc到file2.doc,这样charlie就窃取了file1.doc的内容。

    DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主题的访问控制信息,从而达到对主体访问权限限制的目的。
    访问控制矩阵
    矩阵的列和行分别对应访问主体和访问客体,二者交叉位置的元素则代表着相应的主体对客体的操作规则
    在这里插入图片描述

    访问控制列表
    列表对应某个固定的客体,其中列表示能够对此课题进行一定操作的主体,第二列访问属性则表示二者对应的具体操作
    在这里插入图片描述

    缺点:
    1.由于权限可以进行委托,会导致资源管理比较分散,同时增加了系统的风险性。
    2.不能够适应多域安全策略环境,以及在环境策略变化的情况下无法保证整体的安全性。
    3.访问控制权限容易发生转移,同时,在主体与客体数量较多时,会给系统带来巨大开销,导致效率低下,不能很好的适应较大规模的网络环境。

    强制访问控制模型(MAC)

    特点:

    • 在MAC这种模型里,管理员管理访问控制。

    管理员指定策略,用户不能改变它。策略定义了哪个主体能访问哪个对象,这种访问控制模型可以增加安全级别,因为它基于策略,任何没有被显式授权的操作都不能执行。

    • 为主体及客体指定安全标签

    强制访问控制对访问主体和受控对象标识两个安全标签,一个是具有偏序关系的安全等级标签,另一个是非等级分类标签,他们是实施强制访问控制的依据。系统通过比较主体和客体的访问标签来决定一个主体是否能够访问某个客体。用户的程序不能改变他自己及任何其他客体的安全标签,只有管理源才能确定用户和组的访问权限
    MAC安全级别
    强制访问策略将每个主体及客体赋予一个访问级别,如,公开、秘密、机密、高密,系统根据主体和客体的安全标签来决定访问模式。
    在这里插入图片描述

    基于角色的访问控制模型(RBAC)

    管理员定义一系列角色并把它们赋予主体。系统进程和普通用户可能有不同的角色。设置对象为某个类型,主体具有相应的角色就可以访问它。这样就把管理员从定义每个用户的许可权限的繁冗工作中解放出来。
    特点:
    角色是RBAC的核心,是权限分配的载体。
    主体与客体并不是直接发生联系,而是增加了角色这一层次,先将访问操作的权限匹配给某些角色,然后在将这些特定的角色指定给相应的主体,通过这种方式主体就得到了对客体的访问权限。
    在这里插入图片描述

    基于属性的访问控制模型(ABAC)

    基于属性的访问控制模型是一种适用与开放环境下的访问控制技术,它通过安全属性来定义授权,而不需要预先知道访问者的身份。安全属性可以看做一些与安全相关的特征,可以有不同的属性权威分别定义和维护。
    特点:

    属性是ABAC的核心概念,用于描述实体的安全相关信息。
    用户在携带自身的属性值包括主题属性,资源属性,环境属性,然后向资源发送请求,授权引擎 会根据subject所携带的属性进行判断,然后会给出拒绝或者同意的结果给用户,然后就可以访问资源。
    在这里插入图片描述

    局限性分析

    1. 安全管理员的授权管理难度更大
      在访问控制系统中,哪些资源能够被哪些用户访问通常是由安全管理员定义的。一方面,大数据的规模和增长速度使得管理员进行权限管理的工作量极大地增加了。另一方面,开放式的大数据应用环境,使得安全管理员必须具备更多的领域知识来实施权限管理。
    2. 严格的访问控制策略难以适用
      若预先定义的访问控制策略过于严格,那么新的访问需求很可能由于不能完全符合允许访问的条件而被拒绝,从而影响大数据系统的可用性
    3. 外包存储环境下无法使用
      大数据的一种重要存储方式是外包存储,及数据所有者与数据存储服务提供者是不同的。这就产生了数据存储需求与安全需求之间的矛盾:一方面,数据所有者又利用数据存储服务进行数据存储和分享的需求;另一方面,又不具备在数据存储服务中采用上述访问控制技术来确保数据安全。
    展开全文
  • 访问控制模型综述

    2012-12-19 16:15:00
    以授权策略来划分, 访问控制模型可分为: 传统的访问控制模型(DAC\MAC\ACL)、基于角色的访问控制(RBAC) 模型、基于任务和工作流的访问控制(TBAC) 模型、基于任务和角色的访问控制(T-RBAC) 模型等。 1.传统的访问控制...

    访问控制模型综述

    访问控制的核心是授权策略。以授权策略来划分, 访问控制模型可分为: 传统的访问控制模型(DAC\MAC\ACL)基于角色的访问控制(RBAC) 模型基于任务和工作流的访问控制(TBAC) 模型基于任务和角色的访问控制(T-RBAC) 模型等。

    1.    传统的访问控制模型

    自主访问控制DAC

    自主访问控制是指由用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。

    特点

    授权的实施主体(1、可以授权的主体;2、管理授权的客体;3、授权组)自主负责赋予和回收其他主体对客体资源的访问权限。DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主体的访问控制信息,从而达到对主体访问权限的限制目的。

     ( ACL)是DAC 中常用的一种安全机制,系统安全管理员通过维护ACL(访问控制表)来控制用户访问有关数据。

    缺点

    主体的权限太大,无意间就可能泄露信息

    不能防备特洛伊木马的攻击访问控制表

    当用户数量多、管理数据量大时,ACL 就会很庞大。不易维护。

    强制访问控制MAC

    是一种强加给访问主体(即系统强制主体服从访问控制策略)的一种访问方式,它利用上读/下写来保证数据的完整性,利用下读/上写来保证数据的保密性。

    特点

    通过梯度安全标签实现信息的单向流通

    可以有效地阻止特洛伊木马的泄露

    缺陷

    主要在于实现工作量较大,管理不便,不够灵活,而且它过重强调保密性,对系统连续工作能力、授权的可管理性方面考虑不足。

    上读/下写下读/上写

    (1)向下读(rd,read down):主体安全级别高于客体信息资源的安全级别时允许查阅的读操作;

    (2)向上读(ru,read up):主体安全级别低于客体信息资源的安全级别时允许的读操作;

    (3)向下写(wd,write down):主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作;

    (4)向上写(wu,write up):主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作。

    MAC通过分级的安全标签实现了信息的单向流通,其中最著名的是Bell-LaPadula模型和Biba模型:Bell-LaPadula模型具有只允许向下读、向上写的特点,可以有效地防止机密信息向下级泄露;Biba模型则具有不允许向下读、向上写的特点,可以有效地保护数据的完整性。

    1).Lattice模型

    在Lattices模型中,每个资源和用户都服从于一个安全类别。这些安全类别我们称为安全级别,五个安全级别,TS,S,C,R,U。在整个安全模型中,信息资源对应一个安全类别,用户所对应的安全级别必须比可以使用的客体资源高才能进行访问。Lattices模型是实现安全分级的系统,这种方案非常适用于需要对信息资源进行明显分类的系统。

    2).Bell-LaPadula模型

    Bell-LaPadula模型通常是处理多级安全信息系统的设计基础,客体在处理绝密级数据和秘密级数据时,要防止处理绝密级数据的程序把信息泄露给处理秘密级数据的程序。BLP模型的出发点是维护系统的保密性,有效地防止信息泄露。

    Top Secret (TS), Secret (S),Confidential (C), and Unclassified (U),

     

    3).Biba模型

    Biba模型是和BLP模型相对立的模型,Biba模型改正了被BLP模型所忽略的信息完整性问题,但在一定程度上却忽视了保密性。

    integrity levels: Crucial (C),Important (I), and Unknown (U).

     

    2.    基于角色的访问控制模型RBAC

     

    基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权

    五个基本数据元素 :

    用户 users(USERS)、角色 roles(ROLES)、目标 objects(OBS)、操作 operations(OPS) 、许可权 permissions(PRMS)

    •      模型的优点

    o     通过角色配置用户及权限,增加了灵活性

    o     支持多管理员的分布式管理,管理比较方便

    o     支持由简到繁的层次模型,适合各种应用需要

    o     完全独立于其它安全手段,是策略中立的( policy-neutral )

    通过对resource的粒度控制,可以做到大到整个系统,小到数据库表字段的控制

    3.    基于任务和工作流的访问控制模型TBAC

    所谓任务(或活动) ,就是要进行的一个个操作的统称。TBAC 模型是一种基于任务、采用动态授权的主动安全模型

    基本思想

    (1) 将访问权限与任务相结合,每个任务的执行都被看作是主体使用相关访问权限访问客体的过程。在任务执行过程中, 权限被消耗,当权限用完时,主体就不能再访问客体了。

    (2) 系统授予给用户的访问权限,不仅仅与主体、客体有关,还与主体当前执行的任务、任务的状态有关。客体的访问控制权限并不是静止不变的, 而是随着执行任务的上下文环境

    的变化而变化。

    缺点

    TBAC 中并没有将角色与任务清楚地分离开来, 也不支持角色的层次等级;另外,TBAC并不支持被动访问控制, 需要与RBAC结合使用 。

    4.    基于任务和角色的访问控制模型T-RBAC

    T-RBAC 模型把任务和角色置于同等重要的地位, 它们是两个独立而又相互关联的重要概念。任务是RBAC 和TBAC能结合的基础。

    T-RBAC 模型中是先将访问权限分配给任务,再将任务分配给角色,角色通过任务与权限关联,任务是角色和权限交换信息的桥梁。

     

    在T-RBAC模型中, 任务具有权限,角色只有在执行任务时才具有权限, 当角色不执行任务时不具有权限;权限的分配和回收是动态进行的,任务根据流程动态到达角色, 权限随之赋予角色,当任务完成时,角色的权限也随之收回;角色在工作流中不需要赋予权限。这样, 不仅使角色的操作、维护和任务的管理变得简单方便, 也使得系统变得更为安全。

    5.    基于对象的访问控制模型

    控制策略和控制规则是OBAC访问控制系统的核心所在,在基于受控对象的访问控制模型中,将访问控制列表与受控对象或受控对象的属性相关联,并将访问控制选项设计成为用户、组或角色及其对应权限的集合;同时允许对策略和规则进行重用、继承和派生操作。这样,不仅可以对受控对象本身进行访问控制,受控对象的属性也可以进行访问控制,而且派生对象可以继承父对象的访问控制设置,这对于信息量巨大、信息内容更新变化频繁的管理信息系统非常有益,可以减轻由于信息资源的派生、演化和重组等带来的分配、设定角色权限等的工作量。

     

    OBAC从信息系统的数据差异变化和用户需求出发,有效地解决了信息数据量大、数据种类繁多、数据更新变化频繁的大型管理信息系统的安全管理。OBAC从受控对象的角度出发,将访问主体的访问权限直接与受控对象相关联,一方面定义对象的访问控制列表,增、删、修改访问控制项易于操作,另一方面,当受控对象的属性发生改变,或者受控对象发生继承和派生行为时,无须更新访问主体的权限,只需要修改受控对象的相应访问控制项即可,从而减少了访问主体的权限管理,降低了授权数据管理的复杂性。

    6.    下一代访问控制模型UCON

    使用控制( UsageControl:UCON) 模型 , 也称ABC模型。UCON模型包含三个基本元素: 主体、客体、权限和另外三个与授权有关的元素: 授权规则、条件、义务,如图3 所示。

     

    UCON模型中的主要元素如下:

    主体( Subjects)。它是具有某些属性和对客体(Objects)操作权限的实体。主体的属性包括身份、角色、安全级别、成员资格等。这些属性用于授权过程。客体( Objects) 。它是主体的操作对象,它也有属性,包括安全级别、所有者、等级等。这些属性也用于授权过程。

    权限( Rights)。它是主体拥有的对客体操作的一些特权。权限由一个主体对客体进行访问或使用的功能集组成。UCON中的权限可分成许多功能类, 如审计类、修改类等。

    授权规则( AuthorizationRules) 。它是允许主体对客体进行访问或使用前必须满足的一个需求集。授权规则是用来检查主体是否有资格访问客体的决策因素。

    条件( Conditions)。它是在使用授权规则进行授权过程中, 允许主体对客体进行访问权限前必须检验的一个决策因素集。条件是环境的或面向系统的决策因素。条件可用来检查存在的限制, 使用权限是否有效,哪些限制必须更新等。

    义务( Obligations)。它是一个主体在获得对客体的访问权限后必须履行的强制需求。分配了权限, 就应有执行这些权限的义务责任。

    在UCON模型中, 授权规则、条件、义务与授权过程相关,它们是决定一个主体是否有某种权限能对客体进行访问的决策因素。基于这些元素, UCON有四种可能的授权过程, 并由此可以证明:UCON模型不仅包含了DAC,MAC, RBAC, 而且还包含了数字版权管理(DRM)、信任管理等。UCON 模型涵盖了现代商务和信息系统需求中的安全和隐私这两个重要的问题。因此, UCON模型为研究下一代访问控制提供了一种有希望的方法, 被称作下一代访问控制模型。

    7.    基于属性的访问控制(ABAC)

    ABAC是一种为解决行业分布式应用可信关系访问控制模型,它利用相关实体(如主体、客体、环境)的属性作为授权的基础来研究如何进行访问控制。基于这样的目的,可将实体的属性分为主体属性、实体属性和环境属性,这与传统的基于身份的访问控制(IBAC)不同。在基于属性的访问控制中,访问判定是基于请求者和资源具有的属性,请求者和资源在ABAC 中通过特性来标识,而不像IBAC那样只通过ID来标识,这使得ABAC具有足够的灵活性和可扩展性,同时使得安全的匿名访问成为可能,这在大型分布式环境下是十分重要的。

    参考文献

    访问控制 http://www.cec-ceda.org.cn/information/book/info_6.htm

    Access Control: Plicies,Models, and Mechanisms

    沈海波等:访问控制模型研究综述

    转载于:https://www.cnblogs.com/ajian005/archive/2012/12/19/2841069.html

    展开全文
  • 2.自主访问控制模型DAC) 自主访问控制是指用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。 如:以 Linux 的文件权限为例...
  • 访问控制模型包括:自主访问控制模型DAC)、强制访问控制模型(MAC)、基于角色访问控制模型(RBAC)和基于属性访问控制模型(ABAC)(面向对象)。我们这里就简单介绍一下自主访问控制模型
  • 介绍了三种访问控制机制:自主访问控制DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC),并着重分析了RBAC的三种模型:RBAC96,EHRABC和ARBAC97。最后,给出了一个RBAC的实现模型
  • 本文首先从一般访问控制技术入手,介绍访问控制的基本要素和模型,以及自主访问控制的主要过程;然后介绍了包括传统DAC策略在内的多种自主访问控制策略;接下来列举了四种自主访问控制的实现技术和他们的优劣之处;...
  • 自主访问控制模型(DAC) 自主访问控制是指用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。 ACL权限命令列表 getfacl 文件名 ...
  • 第一章 访问控制的概念  访问控制分类  网络访问控制  主机/操作系统访问控制 ... 自主访问控制DAC) 第三章 访问控制模型  BELL-LAPADULA保密性模型  LATTICE安全模型  BIBA完整性模型  CLARK W...
  • 权限控制模型

    2019-09-14 19:58:00
    自主访问控制DAC: Discretionary Access Control) 强制访问控制(MAC: Mandatory Access Control) 基于角色的访问控制(RBAC: Role-Based Access Control) 基于属性的权限验证(ABAC: Attribute-Based Access ...
  • 访问控制

    2020-07-09 20:12:32
    2.自主访问控制模型DAC) 自主访问控制是指用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限 如:一Linux的文件权限为例,实现...
  • 访问控制模型包括如下模型: ...自主访问控制模型DAC):访问控制列表(ACL) 权能列表(capacity List) 强制访问控制模型(MAC):Bell-Lapudula模型 基于保密性 Biba模型 基于完整性 ...
  • 密码学访问控制

    2020-07-20 11:30:09
    一、访问控制模型 目的:1、为用户对系统资源提供最大限度... 自主访问控制模型DAC) 访问控制列表(ACL) 权能列表(Capacity List) 强制访问控制模型(MAC) ...
  • 形成理论的权限控制模型有:自主访问控制DAC: Discretionary Access Control)、强制访问控制(MAC: Mandatory Access Control)、基于属性的权限验证(ABAC: Attribute-Based Access Control)等。最常被开发者...
  • 密码学应用-访问控制

    2020-07-09 19:00:10
    自主访问控制模型DAC) 自主访问控制是指用户有权对自身创建的对象进行访问,并可将这些对象的访问权授予其他用户和从授予的用户中收回访问权限。 getfacl Filename #获取文件控制访问列表 setfacl -m u:USERNAME...
  • 图文详解基于角色的权限...形成理论的权限控制模型有:自主访问控制(DAC: Discretionary Access Control)、强制访问控制(MAC: Mandatory Access Control)、基于属性的权限验证(ABAC: Attribute-Based Access Contro...
  • 自主访问控制DAC: Discretionary Access Control) 自主访问控制中,产品中的操作对象被设置了权限等级。 在用户登陆时,系统识别用户,根据被操作对象(Subject)的权限控制列表(ACL: Access Control List...
  • 形成理论的权限控制模型有:自主访问控制DAC: Discretionary Access Control)、强制访问控制(MAC: Mandatory Access Control)、基于属性的权限验证(ABAC: Attribute-Based Access Control)等。最常被开发者...
  • 自主访问控制DAC)的特点是客体的创建者可以授予其他主体对客体的访问权限,十分灵活,实现方式有访问控制矩阵,访问控制列表,访问控制能力列表。访问控制矩阵是一个三元组,包括主体,客体和访问权限;访问控制...
  • 访问控制 访问控制是指在鉴别用户的合法身份后,通过某种途径准许或限制用户对数据信息的访问能力及范围,阻止未经授权的资源访问,包括阻止以未经授权的方式使用资源。...(1)自主访问控制(DAC) DAC是在
  • 访问控制是通过某种...目前流行的访问控制模型有自主访问控制模型(Discretionary Access Control,DAC)、强制访问控制模型(Mandatory Access Control, MAC)和基于角色的访问控制模型(Role-Based Access Control,RBAC)
  • 前言 这期分享一下几个权限模型,在设计系统的时候一...一,DAC 自主访问控制(Discretionary Access Control) DAC是使用中最常见的权限模型,特点是每项操作都有其对应的权限,所有的权限存储在系统的ACL表中,每个

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 142
精华内容 56
关键字:

自主访问控制模型dac