IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

第二讲 传统的访问控制

Posted on 2007-11-21 17:29  Ady Lee  阅读(1284)  评论(0编辑  收藏  举报

一、基本概念

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

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类及以上的安全计算机系统必须要有安全模型作指导,对高安全级的计算机系统,形式化的安全模型则是不可少的必要条件。