注:“拥有权”与“控制权”在有的系统中有区别。 系统中设置监控程序用来监控主体对客体的访问,某一主体Si要对客体oj进行访问时,监控程序要检查aij以决定Si是否可对oj进行访问以及可以进行什么样的访问,当aij中不包含主体Si对客体oj的某种访问权时,监控程序就禁止Si对oj进行相应的访问操作。监控程序可以由硬件、软件或者硬件与软件共同完成。 ⑵系统状态的变化 1.Enter p into aij (oj拥有者授予主体Si对Oj“p”访问权) 2.Delete p from aij (oj拥有者撤销主体Si对Oj“p”访问权) 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可以访问的所有客体的明细表。如:上例中
根据每一主体Si的权力表,可决定该主体可否对客体进行访问以及可以进行哪种模式的访问。 ⑵基于列的自主访问控制——授权表(或访问控制表) 第一个客体都有一个相应的授权表,oj的授权表由访问控制矩阵中oj所对应的列中所有非空项所组成,它是一张可以访问oj的所有主体的明细表。如上例中
根据每一客体oj的授权表可以决定哪些主体可以访问该客体以及可以进行什么样的访问。 3.授权的管理方式 主体对客体的控制权“c“在系统中有两种管理方式:一种是集中式管理,一种是分散式管理。 ⑴集中式管理 一个主体si在创建某个客体oj后,该主体就获得了对这一客体的“c”权和其它所有可能权限。“c”权意味着可以将它对oj所有其它(除“c”权以外)的访问权限授予系统中任何一个主休,也可以撤销系统中任何主体对oj的其它访问权限。其它主体因为对oj不具有“c”权,因此即使他们对oj具有某些访问权限,但它们也无权将这些权限转授给别的主体、或撤销别的主体对oj的任何访问权限——在这种管理模式下,对于任一客体oj,哪些主体可以对其进行访问,可以进行什么样的访问,完全由oj的拥有者决定。(在此管理模式下,“拥有权”和“控制权”是一致的。) ⑵分散式管理 在这种管理模式下,一个客体oj的拥有者不仅可以授予其它主体对oj的所有其它的访问权,而且还可以授予他们对oj的某些访问权的授予权,因此,对于一客体oj的访问权,不仅oj的拥有者可以授权,其他的主体也有可能得到全部或部分的授予权。 例如:下图表示数据库中对某个关系X的授权情况: 图中:A、B、C、D分别表示四个主体,表示A对B授权。10,15,20,30表示授权的时刻,R(y)表示所授予的权限R可以再转授别的主体,R(n)表示所授予的权
限R不允许再转授给别的主体。 由图中可看出:①在时刻15——时刻30之间的一段时间,D虽得到了对点系X的R(Read)访问权,但他不能将此权再授给其它主体。②而在时刻30以后,C授予了D的R和I的权限后,D仅可将R权限授予其它的主体。 在这种管理模式下,一个主体在撤销他所授予的对某个客体的某种权限时,必须将由于这一授权而引起的所有授权都予以撤销,系统的状态应该是好像该主体从来未对该权限授予过。 例如:上例中,若时刻40后的某个时刻A撤销对B所授予的对关系X的R权,则此时不公B失去了对X的R权,且由此而引起C对X的R权,D对X的R权都被撤销,此时虽然D保留了由A处得到的R权,但D不能将此权转授出去。 对授权提出分散式管理的模式虽然有它的实际需要,但是分散式管理的缺陷是,一旦oj的拥有者将对oj的访问权的授予权授予出去后,他便无法控制系统中哪些主体可对oj进行访问,哪些主体不能进行访问,哪些主体对oj具有授予权,哪些主体对oj不具有授予权。例如该例中的D,A不让其具有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当且仅当a1≤a2,b1≤b2时,有(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)|a∈A,H∈PB} 例如:(C,{科技处})=class(o1) (可读) (S,{科技处,干部处})=class(u) (TS,{科技处,情报处,干部处})=class(o2) (可写) (C,{情报处})=class(o3) (不读,不写)
3.访问权的控制原则(即安全策略) 一个主体仅能读安全级比自已安全级低或相等的客体,即“向下读”。 一个主体仅能写安全级比自己高或相等的客体,即“向上写”。 4.安全级如何比较高低 <A;≤>是一个偏序集,<PB;>也是一个偏序集。 在集合A×PB上定义关系≤:对于(a1,H1),(a2,H2)∈A×PB,(a1,H1)≤(a2,H2)当且仅当a1≤a2,H1H2,可以证明:≤是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,u对o3不能读,也不能写,又如,若class(o4)=(TS,{科技处}),则u不能读,也不能写。 ⑵商业安全策略 主要的目的是防欺诈,防错误,防篡改,保护信息的完整性。虽然它也要防止非授权的泄露,但没有必要像军事安全中那样复杂的要求,其安全策略主要体现在以下两个方面: ①良形事务(Well-formed transaction) 用户对数据的操纵不能任意进行,而应该按照可保证数据完整性的受控方式进行,即数据应该用规定的程序,按照定义好的约束进行处理。 例:保存记录(包括修改数据的前后记录) 双入口规则,保持帐面平衡。 ②职责分散(Separation duty) 把一个操作分成几个子操作,不同的子操作由不同的用户执行,使得任何一个职员都不具有完成该任务的所有权限,尽量减少出现欺诈和错误的机会。 当然欺诈行为并不一定能就此消除,但它会在众多的职员的合作性行为中变得显而易见。 例如,购买原材料、进货并付款的过程可分解为以下几个操作来完成: 购买订单——记录到货——记录到货发票——付款 最后一个步骤只有在前三个步骤完成后才执行。 ⑶军事安全策略与商业安全策略的比较 区别: 1.军事安全策略——主要关心的是数据的机密性 商业安全策略——主要关心的是数据的完整性 2.军事安全策略——将数据与一个安全级相联系,通过数据的安全级来控制用户对数据的访问。 商业安全策略——将数据与一组允许对其进行操作的程序相联系,通过这组程序来控制用户对数据的访问。 3.军事安全策略——用户被授权去读或写某一数据。 商业安全策略——用户被授权去执行与某一数据相关的程序。 4.军事安全策略——用户只要获得了相应的访问权限,则他可以任意地去读或写访问该数据。 商业安全策略——用户对数据的读、写方式不是任意的,而是隐含在那些被执行的程序动作之中。 这一条使前者更容易受到病毒或特洛依木马的攻击。 相同之处: 1.计算机系统中必须有一种机制来保证系统实施了相应的安全策略; 2.系统中的安全机制必须防止破坏,即防止非授权的修改。 二、安全模型1.安全模型 安全模型是对安全策略所表达的安全需求简单、抽象和无歧义的描述。它为安全系统的设计提供指导。 安全模型应具有如下一些特点: ①它是精确的、无二义性的; ②它是简单、抽象的,也是易于理解的; ③它仅涉及安全性,不过分限制系统的功能及实现; ④它是安全策略的一个清晰的表达方式。 分为: 非形式化的安全模型:用自然语言对系统的安全性进行描述。其优点是直观、易于理解但不严谨,往往有二义性,表达不简洁。 形式化的安全模型:使用数学语言精确地描述系统的安全性质或规则。优点是简洁、准确、严谨,可以从理论上进行严格的证明其安全性;缺点是抽象、难于理解。 按照TCSEC的评估标准,B1级要求既有自主访问控制又要有强制访问控制,这也就是要求它要制定安全策略,即非形式化的安全模型,指导系统如何进行上述两种访问控制;B2级的计算机系统要求具有形式化的安全模型,A1级并要求对安全模型进行形式化的证明。 由上可看出,若设计开发具有B类及以上的安全计算机系统必须要有安全模型作指导,对高安全级的计算机系统,形式化的安全模型则是不可少的必要条件。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
S |
|
O |
|
e,c,a |
|
S (高) |
|
O (低) |
|
r,w |
⑶*—性质
|
S |
|
O1 (高) |
|
O2 (低) |
|
a |
|
r |
|
S |
|
O1 (高) |
|
O2 (低) |
|
a |
|
w |
解释:
|
S |
|
O1 (高) |
|
O2 (低) |
|
w |
|
r |
|
S |
|
O1 |
|
O2 |
|
w |
|
w |
|
(级别) |
|
(级别) |
|
相等 |
一个状态v如果满足上述三条性质,那么v才是安全状态。
R=S+×RA×S+×O×X 请求集(不是请求元素集),它的元素是一个完整的请求。其中S+=S{},X=A{}F。
R中的元素是一个五元组,代表一次请求或一个操作。
T={1,2,…,t,…} 离散时刻的集合(标识)。用作请求序列,结果序列和状态序列的下标;
X=RT={x|x:T→R},其中元素x可表示为x=x1x2x3…xt…是一个请求序列,每一时刻有一请求,构成一个请求序列,因此X是请求序列的集合;
Y=DT={y|y:T→D},其中元素y=y1y2y3…yt…是一个结果序列,每一时刻的请求导致一个判断(或结果),构成一个结果序列,Y是结果序列的集合;
Z=VT={z|z:T→V},其中元素z=z1z2z3…zt…是一个状态序列,每一zt∈V,表示时刻t时系统的状态。Z是状态序列的集合
系统状态的转换由一组规则定义,一个规则P定义为:R×V→D×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请求得到对客体oj的r访问权
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 P1(RK,v)=(no,v)
if ={o|ob(si:w,a) and [f2(oj)>f2(o) or f4(oj) f4(o)]}= φ
then P1(RK,v)=(yes,v*=(b{(si,oj,r)},M,f))
else P1(RK,v)=(no,v)
end
规则2:主体si请求得到对客体oj的a访问权
get-append:P2(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请求得到对客体oj的e访问权
get-execute:P3(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请求得到对客体oj的w访问权
get-write:P4(RK,v)
if σ1φ or γg or xw or σ2=φ then P4(RK,v)=(?,v)
if wMij or [f1(si)<f2(oj) or f3(si) f4(oj)]
then P4(RK,v)=(no,v)
if ={o|ob(si:r) and [f2(oj)<f2(o) orf4(oj) f4(o)]}
{o|ob(si:a) and [f2(oj)>f2(o) or f4(oj) f4(o)]}
{o|ob(si:w) and [f2(oj)f2(o) or f4(oj)f4(o)]}=φ
then P4(RK,v)=(yes,v*=(b{(si,oj,w)},M,f))
else P4(RK,v)=(no,v)
end
规则5:主体si请求释放对客体oj的r或w或e或a访问权
release-read/write/append/execute:P5(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对客体oj的r或w或e或a访问权
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对客体oj的r或w或e或a访问权
rescind-read/write/append/execute:P7(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-f:P8(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-object:P9(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-object:P10(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,1≤i≤n,f))
end
1.R×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,1≤i≤s,Pi(rk,v)=(?,v)
⑵(rk,error,v,v)W(ω) iff存在i1,i2,1≤i1,i2≤s,使得对于任意的v*V有Pi1(rk,v)(?,v*)且Pi2(rk,v)(?,v*)。
⑶(rk,dm,v*,v)W(ω),dm?,dmerror,iff存在唯一的i,1≤i≤s,使得对某个v*和任意的v**v,Pi(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(ω)是由ω中的一组规则所定义的有序四元组所组成。
3.X×Y×Z={(x,y,z)|xX,yY,zZ},其中,
x=x1x2…xt…是请求序列,X是请求序列集;
y=y1y2…yt…是结果序列,Y是结果序列集;
z=z1z2…zt…是状态序列,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=x1x2…xt…是请求序列;
y=y1y2…yt…是结果序列;
z=z1z2…zt…是状态序列。
若(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是一状态序列,若对于每一个tT,zt都是安全状态,则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模型是最早的一种安全模型,也是最有名的多级安全策略模型。它给出了军事安全策略的一种数学描述,用计算机可实现的方式定义。它已为许多操作系统所使用。
由于它描述的是军事安全策略,受到美国国防部的特别推崇,以致于在很长一段时期人们将多级安全策略等同于强制访问控制策略。
优点:①是一个最早地对多级安全策略进行描述的模型;
②是一个严格形式化的模型,并给出了形式化的证明;
③是一个很安全的模型,既有自主访问控制,又有强制访问控制。
④控制信息只能由低向高流动,能满足军事部门等一类对数据保密性要求特别高的机构的需求。
1.总的来说,BLP模型“过于安全”。
①上级对下级发文受到限制;
②部门之间信息的横向流动被禁止;
③缺乏灵活、安全的授权机制。
不安全的地方:
①低安全级的信息向高安全级流动,可能破坏高安全客体中数据完整性,被病毒和黑客利用。
②只要信息由低向高流动即合法(高读低),不管工作是否有需求,这不符合最小特权原则。
③高级别的信息大多是由低级别的信息通过组装而成的,要解决推理控制的问题。
2.仔细分析BLP模型,其描述上尚有不安全的地方,还有待改进,缺乏记忆,造成不安全性。
|
S |
|
r |
|
o2 |
|
高 |
|
低 |
|
o3 |
|
r |
|
时刻t1 |
|
时刻t2 |
|
释放对o2,o3的访问权 |
|
S |
|
a |
|
o3 |
|
高 |
|
低 |
|
o4 |
|
r |
|
时刻t3 |
|
S已含有o2和o3的信息 |
|
此时S可将o2的信息传送到o3 |
|
(无记忆) |
|
oo |
|
r |
|
s2 |
|
高 |
|
更高 |
|
s1 |
|
a |
|
低 |
改进:针对过安全:
1.允许高安全级的主体在受控的情况下创建低安全级的客体。(解决从上到下流的问题)。
2.对客体安全级的动态约束,如(秘级,部门级,时限)。随客体内容进行动态约束(解决自上向下和横向)。
3.给主体发临时许可证,如(密级,部门级,时限)或(客体,权限,时限)。
针对不安全问题:
1.可否用“推”和“拉”来解决。用“拉”,而不用“推”。在计算机中“推”和“拉”如何实现? “同级写”
2.基于语义的动态控制;
3.问题比较复杂。