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

 

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

一、模型的基本元素

模型定义了如下的集合:

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

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

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

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

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

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

g:get(得到),give(赋予)

r:release(释放),rescind(撤销)

c:change(改变客体的安全级),create(创建客体)

d:delete(删除客体)

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

yes:请求被执行;

no: 请求被拒绝;

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

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

μ={M1,M2,…,Mp}  访问矩阵集,其中元素Mk是一n×m的矩阵,Mk的元素Mij A。

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

CS={f1|f1:S→C}              f1给出每一主体的密级;

CO={f2|f2:O→C}             f2给出每一客体的密级;

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

(PK)O={f4|f4:O→PK} 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)用有序三元组表示,其中

b S×O×A,是当前访问集。

M是访问矩阵,它的第i行,第j列的元素Mij A表示在当前状态下,主体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,有x∈Mij

       ⑵简单安全性

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

(i)x=e或x=a或x=c

或(ii) (x=r或x=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) 满足 * —性质,当且仅当对所有的 s ∈ S ,若 o1 ∈ b(S:w,a) , o2 ∈ b(S:r,w), 则 f2(o1) ≥ f2(o2) , f4(o1) f4(o2) ,其中符号 b(S:x1, … ,xn) 表示 b 中主体 s 对其具有访问特权 xi(1 ≤ i ≤ n) 的所有客体的集合。

解释:

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=xx2x3…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 x r or σ2=φ then

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

if  r Mij or (f1(si)<f2(oj) or f3(si)    f4(oj))

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

if  ={o|o b(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请求得到对客体oj的a访问权

get-append:P2(RK,v)

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

如果 a Mij,则P2(RK,v)=(no,v)

如果 ={o|o b(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 x e or σ2=φ  then P3(RK,v)=(?,v)

if e Mij  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 x w or σ2=φ  then P4(RK,v)=(?,v)

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

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

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

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

{o|o b(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请求释放对客体oj的r或w或e或a访问权

release-read/write/append/execute:P5(RK,v)

if (σ1 φ) or (γ r) or (x r,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  (σ1 S) or (γ g) or (x r,w,a and e) or (σ2=φ)

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

if x Mλj or c Mλ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 (σ1 S) or (γ r) or (x r,w,a and e) or (σ2=φ) then

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

if x Mλj or c Mλ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 x F

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

if f1 or f3 or [ (oj) f2(oj) or (oj) f4(oj) for j A(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 (x e and φ) then

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

if  j A(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  c Mij then P10(RK,v)=(no,v)

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

end

六、系统的定义

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

即,任意一个请求,任意一个结果(判断)和任意两个状态都可组成一个上述的有序四元组,这些有序四元组便构成集合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 ?,dm error,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)|x X,y Y,z Z},其中,

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对每一个t T,(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),则意味着对于所有的t T,(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.安全状态序列

设z Z是一状态序列,若对于每一个t T,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安全模型的评价

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

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

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

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

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

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

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

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

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

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

不安全的地方:

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

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

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

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

S

r

o2

o3

r

时刻t1

时刻t2

释放对o2,o3的访问权

例如:设 o1> o2> o3> o4 , S 的安全级同 o1

S

a

o3

o4

r

时刻t3

S已含有o2和o3的信息

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

(无记忆)

又例如:

oo

r

s2

更高

s1

a

       改进:针对过安全:

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

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

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

       针对不安全问题:

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

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

3.问题比较复杂。

BLP模型(Bell-La Padula模型)相关推荐

  1. 信息安全--三:BLP模型(Bell-La Padula模型)

    第三章 BLP模型(Bell-La Padula模型) 是对安全策略形式化的第一个数学模型,是一个状态机模型,用状态变量表示系统的安全状态,用状态转换规则来描述系统的变化过程. 一.模型的基本元素 模 ...

  2. python blp模型 估计_第三章 BLP模型(Bell-La Padula模型) | 学步园

    是对安全策略形式化的第一个数学模型,是一个状态机模型,用状态变量表示系统的安全状态,用状态转换规则来描述系统的变化过程. 一.模型的基本元素 模型定义了如下的集合: S={s1,s2,-,sn}主体的 ...

  3. 4模型导出_项目模型规范总结 游戏模型制作的注意事项

    点击上方"3D天工坊"关注我本期我们来总结一下模型规范导出等~ 1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确 ...

  4. 基于pytorch的模型稀疏训练与模型剪枝示例

    基于pytorch的模型稀疏训练与模型剪枝示例 稀疏训练+模型剪枝代码下载地址:下载地址 CIFAR10-VGG16BN Baseline Trained with Sparsity (1e-4) P ...

  5. 朴素、Select、Poll和Epoll网络编程模型实现和分析——模型比较

    经过之前四篇博文的介绍,可以大致清楚各种模型的编程步骤.现在我们来回顾下各种模型(转载请指明出于breaksoftware的csdn博客) 模型编程步骤对比 <朴素.Select.Poll和Ep ...

  6. NLP通用模型诞生?一个模型搞定十大自然语言常见任务

    翻译 | 于之涵 编辑 | Leo 出品 | AI科技大本营 (公众号ID:rgznai100) AI科技大本营按:目前的NLP领域有一个问题:即使是再厉害的算法也只能针对特定的任务,比如适用于机器翻 ...

  7. R语言分类模型:逻辑回归模型LR、决策树DT、推理决策树CDT、随机森林RF、支持向量机SVM、Rattle可视化界面数据挖掘、分类模型评估指标(准确度、敏感度、特异度、PPV、NPV)

    R语言分类模型:逻辑回归模型LR.决策树DT.推理决策树CDT.随机森林RF.支持向量机SVM.Rattle可视化界面数据挖掘.分类模型评估指标(准确度.敏感度.特异度.PPV.NPV) 目录

  8. R语言机器学习Caret包(Caret包是分类和回归训练的简称)、数据划分、数据预处理、模型构建、模型调优、模型评估、多模型对比、模型预测推理

    R语言机器学习Caret包(Caret包是分类和回归训练的简称).数据划分.数据预处理.模型构建.模型调优.模型评估.多模型对比.模型预测推理 目录

  9. R语言使用lmPerm包应用于线性模型的置换方法(置换检验、permutation tests)、使用lm模型构建简单线性回归模型、使用lmp函数生成置换检验回归分析模型

    R语言使用lmPerm包应用于线性模型的置换方法(置换检验.permutation tests).使用lm模型构建简单线性回归模型.使用lmp函数生成置换检验回归分析模型(Permutation te ...

  10. R语言使用caretEnsemble包的caretStack函数把多个机器学习模型融合成一个模型、构建融合(集成)预测模型、使用融合模型进行预测推理

    R语言使用caretEnsemble包的caretStack函数把多个机器学习模型融合成一个模型.构建融合(集成)预测模型.自定义融合模型的trainControl参数.method参数.评估指标参数 ...

最新文章

  1. vue双向绑定原理源码解析
  2. 小小军团获取服务器配置文件,小小军团2资源攻略 六种办法让你不再缺资源
  3. 每天一道LeetCode-----将二叉树原地平铺成链式结构
  4. 免费都不管用,Win10升级在中国怎么就这么难?
  5. 【渝粤教育】国家开放大学2019年春季 0736-22T烹饪工艺学(2) 参考试题
  6. 开源评论:QQ真的会“开放”和“共享”吗?
  7. @RequestParam用法与@PathVariable用法的区别
  8. plc 上位机编译算法_什么是PLC与DDC PLC与DDC的区别
  9. 为什么要使用class.forname在DriverManager.getConnection之前
  10. java中的策略模式_简单了解Java中的策略模式
  11. 郝斌JAVASE大纲
  12. 零基础学习3d建模需要多久?
  13. 精算未来会被计算机代替吗,年薪过百万还不用加班?揭开精算专业的真面目(下篇)...
  14. 杭电题目分类及简单概况
  15. 推断车祸事件论文matlab,预测模型论文,关于基于优化GM(1,1)模型的水上交通事故预测相关参考文献资料-免费论文范文...
  16. 学计算机编程我有什么好处,学编程到底有什么好处?我发现了这三个秘密!
  17. 关于5G NR PRACH小区半径的计算
  18. 民政部:发展智慧服务生活圈,同时保留必要线下服务
  19. 用C轻松实现扫雷,简单,普通,困难模式快来学学吧
  20. java进阶开发-----Set集合、Map集合(接java集合)

热门文章

  1. 服务器2012怎么安装无线网卡驱动,如何安装usb无线网卡驱动,教您如何安装电脑usb驱动...
  2. html符号中文含义大全特殊,中文标点符号大全名称
  3. Zune软件教程 Windows Phone同步攻略
  4. SQLServer示例数据库AdventureWorks下载地址
  5. DirectShow 开启摄像头
  6. mysql数据抽取_史上最简单的数据抽取
  7. 用Python和Pygame写游戏-从入门到精通(实战三:植物大战僵尸1)
  8. linux 水印软件下载,水印美图滤镜相机
  9. 两台计算机小局域网,两台电脑连接局域网方法
  10. 市面常见存储卡的读写速度对比测试